This section describes how synchronization is achieved.
Synchronization is enabled by sending state and trial information from monkeypsych to TDT (Online communication). Both state and trial information is sent through the same 8 pins, a little trick allows using the same channel for both purposes (State signal ). For combining both, we first convert TDT data to trial format (function TDT_trial_struct.m) preferentially using epocs store (Tnum and SVal) information. There is a flag in TDT_trial_struct for using the continous state information stream (stream_state_info), but it is permanently turned off, as the epoc information is already extracted from the continuous state information within the TDT circuit (see RCO ) Finally, when fitting TDT data into a trial structure, certain timing conventions have proved useful: Trial structure timing
Note that pins are only switched either to send trial information or after a state change (AND after the flip happened!) The idea is that both trial information and state information can be sent via the same channel. Details are described below.
Values of 252 to 255 are preserved for indicating start of trial/state information and in-between trial information stoppers:
Note that due to preserved values, a trial information package maximum value is limited. For example, to encode the date first package would be first 2 digits of the year, second package the last 2 digits of the year, third package the month and fourth package the day. That way none of the packages reaches a value of over 100. Trial information is sent during INI (state 1), during the other states the stat value reflects the current state.
Importantly, trial start reference is STATE 2 (fixation acquisition). Trial end is STATE 2 of the next trial.
Therefore, ITI between trial 1 and 2 as well as STATE 1 (initiation) of trial 2 are found at the end of trial 1.
This also means that data recorded before 1st trial's state 2 can not be stored in the trial structure and is saved in a separate variable (First_trial_INI) instead. Everything before first trials INI is discarded.