curses.echo()
	curses.endwin()

aparser = ArgumentParser()
aparser.add_argument('dongle_device')
aparser.add_argument('-c0', type=str, default="Channel 0")
aparser.add_argument('-c1', type=str, default="Channel 1")
aparser.add_argument('-c2', type=str, default="Channel 2")
aparser.add_argument('-c3', type=str, default="Channel 3")
aparser.add_argument('-c4', type=str, default="Channel 4")
aparser.add_argument('-c5', type=str, default="Channel 5")
aparser.add_argument('-c6', type=str, default="Channel 6")
aparser.add_argument('-c7', type=str, default="Channel 7")
args = aparser.parse_args()

board = OpenBCIBoard(port=args.dongle_device)
for c in 'svcd':
	board.ser.write(c)
	time.sleep(0.100)
time.sleep(0.100)

sampletime = 1.0/board.getSampleRate()
dirpath = os.path.dirname(os.path.realpath(__file__))

atexit.register(write_packets)
atexit.register(board.disconnect)
boardthread = threading.Thread(target=board.start_streaming, args=(label_packet, -1))
#board.start_streaming([label_packet], -1)
boardthread.daemon = True
boardthread.start()
Beispiel #2
0
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)
        [curve[i].setData(a[8], a[i])
         for i in range(numberofchannels)]  # set the curve with this data
        pg.QtGui.QApplication.processEvents()  # you MUST process the plot now

    ### MAIN PROGRAM #####
    # this is a brutal infinite loop calling your realtime data plot
    while True:
        update()

    ### END QtApp ####
    pg.QtGui.QApplication.exec_()  # you MUST put this at the end
    ##################


# Read serial information related to the electrodes
board = OpenBCIBoard()
board.print_register_settings()

numberofchannels = 8

# Montreal task
levelqueue = Queue()
question = Question(level=1, timer=20, levelqueue=levelqueue)

# Filtering setup
w = sg.firwin(256, [5, 50], pass_zero=False, fs=250, window="hann")
w = np.flip(
    w
)  # Change w0 to last position in order to multiply that last sample that came from queue

# File to save recordings in time domain