Stage 6: Special Functions – Setting Timing Modes, and Graceful Abort
There are two additional considerations that should become a standard part of any experimental design work for a computerized experiment, as shown in the table below:
|Stage 6: Special Functions – Setting Timing Modes, and Graceful Abort|
|1) Checking the Timing Modes|
|2) Providing Early Graceful Abort of a Block|
Stage 6, Step 1: Checking the Timing Modes
There are the primary timing modes that each E-Object can use:
Event mode – maintain the duration for start to end of duration to be as specified. If there are delays (e.g., due to waiting for the screen refresh), lengthen the inter-stimulus interval to compensate for any delays.
Cumulative mode – maintain the duration from the start of one stimulus to the start of the next stimulus to be the specified duration. If there are any delays (e.g., waiting for the screen refresh), shorten the interstimulus interval so the second stimulus occurs at the requested time in relation to the intended display of the first stimulus. This maintains the interstimulus interval.
Custom mode - timing is maintained by the user.
The “Time Audit Only” option in the Data Logging field logs the duration information for later analysis (i.e., OnsetTime, OnsetDelay, DurationError). The Time Audit Only option should be used on critical displays without responses, such as the Fixation and Prime Displays. Objects collecting a response (e.g., Probe) should set Data Logging to “Standard” in order to collect the response data in addition to the duration related data.
NOTE: Refer to INFO: Event vs. Cumulative Mode Timing  for more information on the timing modes described above.
Stage 6, Step 2: Providing early graceful abort of an experiment
There is one elaboration to consider adding to the existing experiment to allow for a more graceful, early termination of the experiment. When running an experiment, one normally runs from the start to the finish of the experiment with the automatic selection of trials. However, E-Prime permits an experiment to be aborted prior to the normal termination of trials by pressing the Ctrl+Alt+Shift keys simultaneously. This method is fine for debugging and aborts the experiment immediately. However, when the Ctrl+Alt+Shift method is used to abort an experiment, no data file is created. Therefore, any data for previously presented trials and blocks is not saved. This should not create problems when the escape sequence is used as intended, e.g. as a debugging tool during experiment development.
E-Prime provides another method for putting in script to check to see if a different, special key sequence has been entered. If so, a List object can be terminated at the end of a trial or block, and all of the accumulated data collected to the current point of the experiment can be saved. This alternative methoduses a special function, GetUserBreakState, which returns a “1” if the Ctrl+Shift keys have been set, and “0” if not. After the user selects Ctrl+Shift, then the value of GetUserBreakState is set to 1 until the experiment explicitly resets the state to zero with the following script:
To check if the user has pressed the Ctrl+Shift combination, we add an Inline object at the end of the TrialProc and check the state of GetUserBreakState. If it is “1”, meaning the user has pressed the abort experiment early key sequence, then the DesignList that is running and driving the current set of trials is terminated using the DesignList.Terminate ```command. This results in the currently block of trials being completed. Experiment control moves to the parent object that was called the DesignList, the BlockList object. The UserBreakState is then reset to zero to run the next block.
NOTE: The Conditional Exit may also be used in E-Prime 2.0 Professional and E-Prime 3.0. Please refer to INFO: Conditional Exit (Graceful Abort) .