import cobibiopacimport csv, atexit,Chartimport socketimport sightlab_utils.sightlab as slfrom sightlab_utils.settings import *
TCP_IP = 'localhost'TCP_PORT = 6343
sightlab = sl.SightLab()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind((TCP_IP, TCP_PORT))s.listen(1)conn, addr = s.accept()conn.sendall(b'1')
# Create FNIR device objectdev1 = cobibiopac.fNIR()
# Connect to device (defaults to localhost)# Run this only once COBI is ready to broadcast:dev1.connect(port=TCP_PORT,timeout=2.0) # make sure the port matches COBI
fnir_data = dev1.getHemoglobinData()
if fnir_data: oxy1 = 0 i = 0 channel = 0 # select which channel to graph and then obtain data from that channel: oxy1 = fnir_data[channel][1] deoxy1 = fnir_data[channel][0]
for data_column in ["oxy", "deoxy", "cobi_flag"]: sightlab.addCustomTrialDataColumn(data_column)
def sightLabExperiment(): while True: yield viztask.waitKeyDown(' ') def get_additional_data(): fnir_data = dev1.getHemoglobinData() if fnir_data: oxy1 = 0 i = 0 channel = 0 # select which channel to graph and then obtain data from that channel: oxy1 = fnir_data[channel][1] deoxy1 = fnir_data[channel][0] print(deoxy1) print(oxy1) else: print("No data yet") sightlab.setCustomTrialData(str(oxy1), 'oxy1') sightlab.setCustomTrialData(str(deoxy1), 'deoxy1')
update_action = vizact.onupdate(0, get_additional_data) yield sightlab.startTrial() gazeFixatedmessage = 'gaze fixated: ' + e.name gazeStoppedmessage = 'gaze ended: ' + e.name gazeStartedmessage = 'gaze started: ' + e.name def onGazeFixated(e): sightlab.setCustomTrialData(conn.sendall(b'/' + gazeFixatedmessage.encode()), 'cobi_flag') def onGazeStopped(e): sightlab.setCustomTrialData(conn.sendall(b'/' + gazeStoppedmessage.encode()), 'cobi_flag') def onGazeStarted(e): sightlab.setCustomTrialData(conn.sendall(b'/' + gazeStartedmessage.encode()), 'cobi_flag') vizact.addCallback(sightlab.GAZE_TIME_EVENT, onGazeFixated) vizact.addCallback(sightlab.GAZE_END_EVENT, onGazeStopped) vizact.addCallback(sightlab.GAZE_BEGIN_EVENT, onGazeStarted) yield viztask.waitKeyDown(' ') yield sightlab.endTrial() viztask.schedule(sightlab.runExperiment)viztask.schedule(sightLabExperiment)viz.callback(viz.getEventID('ResetPosition'), sightlab.resetViewPoint)