The Procedure object as it appears in the Toolbox.
The Procedure object is used to present a sequence of events. Events occur in sequential order, unless another control mechanism is imposed (e.g., jumps). Experiments are usually comprised of multiple Procedures (e.g., session, block and trial level Procedures) defining the levels of the experiment.
The Procedure object window consists of a single procedural timeline. Objects may be dragged and dropped onto the timeline to determine the sequence of events defining the Procedure.
In the image above, the procedural timeline consists of three objects. The order of the objects, left to right, represents the sequence of events for the Procedure. In this example, the first event will be the TextDisplay object named Welcome, followed by the trials run by the TrialList and finally the TextDisplay object called Goodbye.
Procedures can be nested (i.e., a Procedure can contain other Procedure objects as part of the timeline). However, Procedures are not referenced directly by another Procedure, and in fact, it is not possible to add a Procedure object directly to a procedural timeline. It is necessary to use a List object to launch a Procedure. For example, as shown in the example below, the BlockList runs the block Procedure (BlockProc), which in turn calls the TrialList to run the trial Procedure (TrialProc).
Like all objects within E-Studio, the Procedure object features a set of tabbed Property pages. The Property pages are accessible via the Properties window. Click the ellipsis (…) in the Property pages field to display the Property pages. The Procedure object’s Property pages contain three tabs: Common, General, and Task Events.
The General tab features a checkbox option to set the status of data logging. When the Log Data box is checked, data will be logged for the Procedure. By default, all Procedures are set to log data.
If the LogData checkbox is unchecked, no data will be logged for the Procedure. For situations in which contingent logging is required, it is possible to log data manually using the Log method of the Context object (i.e., c.Log).
If the FlushDataLog box is checkmarked then the object will flush its log data after logging. Specifying 'Yes' to GenerateLabels will generate labels in the Full Script. Lastly, ProcessPendingInputMasks determines whether or not this procedure will process none, last only, or all pending input masks.
The following are the specific properties of the Procedure object:
|(Name)||String values||Represents the name or label of the selected object.|
|(About)||None||Reveals version information for the Procedure object.|
|(Property Pages)||None||Reveals the property page interface to specify the properties for the selected object.|
|FlushDataLog||Yes, No||Determines whether or not the object will flush its log data after logging.|
|GenerateLabels||Yes, No||Determines whether or not the object will generate labels in the full script.|
|GeneratePostRun||Inherit, EndOfProcedure, AfterObjectRun||Where the postrun part of this object is generated in the script.|
|GeneratePreRun||Inherit, TopOfProcedure, BeforeObjectRun||Where the prerun part of this object is generated in the script.|
|Handles ConditionalExit||Yes, No||Determines whether or not the object responds to the conditional exit event.|
|LogData||Yes, No||Determines if data is logged for the Procedure.|
|Notes||String values||User-entered text useful for storing information or comments related to an object.|
|ProcessPendingInputMasks||All, Last, None||Determines whether or not this procedure will process none, last only, or all pending input masks.|
|Tag||String values, Attribute references||User-defined string that is useful for associating information with the object.|