class OpenBCIThread(QtCore.QThread): newPacket = QtCore.Signal(object) def __init__(self, ttyPath = '/dev/ttyUSB0'): super(OpenBCIThread, self).__init__() self.board = OpenBCIBoard(ttyPath, scaled_output=False) def handlePacket(self, sample): self.newPacket.emit(sample.channel_data) QtGui.QApplication.instance().processEvents() def run(self): try: self.board.print_register_settings() self.board.start_streaming(self.handlePacket) # Important workaround for OSX: If the input is not kept on being read, the whole (input sub-)system freezes except Exception as e: print ("Exception", e) while True: self.board.ser.read()
del changather[:] self.sample_counter = 0 aparser = ArgumentParser() aparser.add_argument('dongle_device') aparser.add_argument('underlying_arduino') args = aparser.parse_args() load_waveform_samples() # make flexible board = OpenBCIBoard(port=args.dongle_device) arduino_slave = serial.Serial(args.underlying_arduino, 9600) #replace with serial rate for underlying arduino program #board.print_register_settings() for c in 'svcd': board.ser.write(c) time.sleep(0.100) time.sleep(0.100) atexit.register(board.disconnect) # collect the data in a separate thread # to prevent blocking classifying_thread = FFTBCIThread() classifying_thread.daemon = True classifying_thread.start() # handle grabbing board data on main thread board.start_streaming(handle_sample)
#signal.signal(signal.SIGINT, signal.SIG_DFL) sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ttyPath = '/dev/ttyUSB0' if len(sys.argv) > 1: ttyPath = sys.argv[1] last_packet = 0 def send_packet(packet): global last_packet expected = (last_packet + 1) % 256 if packet.id != expected: print 'lost packet', expected last_packet = packet.id data = json.dumps(packet.channel_data) sock.sendto(data.encode('utf-8'), ('localhost', 8888)) data = struct.pack('=f', packet.channel_data[0] * 0.022351744455307063) sock.sendto(data, ('localhost', 9999)) board = OpenBCIBoard(ttyPath, scaled_output=False) board.print_register_settings() board.start_streaming(send_packet)
from open_bci_v3 import OpenBCIBoard import sys, signal import socket import json import struct #app = QCoreApplication(sys.argv) #signal.signal(signal.SIGINT, signal.SIG_DFL) sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ttyPath = '/dev/ttyUSB0' if len(sys.argv) > 1: ttyPath = sys.argv[1] def send_packet(packet): data = json.dumps(packet.channel_data) sock.sendto(data.encode('utf-8'), ('localhost', 8888)) data = struct.pack('=f', packet.channel_data[0] * 0.022351744455307063) sock.sendto(data, ('localhost', 9999)) board = OpenBCIBoard(ttyPath, scaled_output=False) board.print_register_settings() board.start_streaming(send_packet)