for block in range(1, totBlocks + 1): # set counter totMissed = 0 # set block conditions random.shuffle(conditions) logging.info(f"{block} / {totBlocks}") # start block for trial, condition in enumerate(conditions): logging.info('Starting trial #%s with %s stimuli', trial + 1, condition[0]) triggerId = trigger.sendTriggerId() datalog["triggerID"] = triggerId ############### # Wait a little screen.show_blank() # start delay delayTimer = core.CountdownTimer(CONF["pause"]["duration"]) logging.info("starting delay of %s", delayTimer) extraKeys = [] while delayTimer.getTime() > 0: # Record any extra key presses during wait key = kb.getKeys()
trigger.send("StartBlank") core.wait(CONF["timing"]["rest"]) trigger.send("EndBlank") # Cue start of the experiment screen.show_cue("START") trigger.send("Start") core.wait(CONF["timing"]["cue"]) ################# # Main experiment ################# # customize datalog["trialID"] = trigger.sendTriggerId() eyetracker.send_trigger("Stim", {"id": 1, "condition": "sample"}) datalog["pupilSize"] = eyetracker.getPupildiameter() # save data to file datalog.flush() ########### # Concluion ########### # End main experiment screen.show_cue("DONE!") trigger.send("End") core.wait(CONF["timing"]["cue"])
# Optionally, display instructions if CONF["showInstructions"]: screen.show_instructions() key = event.waitKeys() quitExperimentIf(key[0] == 'q') eyetracker.start_recording( os.path.join(CONF["participant"], CONF["task"]["name"], CONF["session"])) ################# # Main experiment ################# mwtTimer = core.CountdownTimer(CONF["task"]["duration"]) screen.show_blank() while mwtTimer.getTime() > 0: # send a trigger to both the EEG and the eyetracker triggerID = trigger.sendTriggerId() eyetracker.send_trigger("sync", {"trigger": triggerID}) # wait a minute minuteTimer = core.CountdownTimer(CONF["task"]["triggerFrequency"]) while minuteTimer.getTime() > 0: key = kb.getKeys() if key: quitExperimentIf(key[0].name == 'q') core.wait(1)