Page History: Reporter Element
Compare Page Revisions
Page Revision: 2013/06/10 05:37
|
Reporter
|
Info |
Category: |
Scenario Control |
|
AddIn: |
Base Elements |
Creator: |
OkazoLab Team |
|
Scope: |
Parent Event |
Owns Snippets: |
no |
|
Usage: |
Runtime Screen,Snippets |
The Reporter element offers a simple and flexible way to control data collection in EventIDE experiments.
Description
EventIDE has an core mechanism for data collection, which is called
Data Report. The mechanism is very flexible, because you can always code what data will be written and when it will be done in the course of an experiment. To remove a need to write such data collection code in standard scenarios, the Reporter element is introduced. The element provides a visual designer, where you can select a list of
global variables and
Proxy Variables for recording. With the Reporter's designer you can define the variable order, value formats and preview the expected results.
At runtime, the Reporter element automatically makes a snapshot of the selected variables, builds a text block with collected variables' values (either in a line or columns) and records the block into the Data Report. This operation is done either on onset or on offset the parent event, which helps to implement repeated data drops, when the parent event is included in a trial loop.
Multiple Reporter elements can be used elsewhere in an experiment, when different blocks of the data have to be recorded separately. The element can also create a header line containing names of the selected variables. The header is automatically placed at the top of the data report, before actual data collection starts.
Snapshots
Snapshot 1
| Snapshot 2 |
Practical Use
Using Reporter for collecting trial data into a multi-line table
- Check a logic of your experiment to choose variables whose values you want to collect in each trial.
- Add the Reporter element to the event, in which you want to collect data. Typically, it is the last event in a trial loop.
- Set the Recording Point property of Reporter. You can define there when data will be collected, either on onset or offset of the parent event. The default option is the event
offset, because you may need to calculate a trial outcome, after onset of the last trial event but before trial data is recorded. - Open the Reporter designer by clicking on the corresponding property.
- Using a drop-down list on the left-top of the designer, select and add all variables whose values you want to record in each trial:
{|
| Dropdown selection of variables
|} - In the Layout Option panel set the layout of variables to "in rows" and choose a character that will be used a column separator.
- Check the report preview at the bottom of the designer
- Close the designer and run an experiment for several trial loops.
- Open or export the resulting data report, and check how trial data is recorded. You should see data organized in a table, for example:
Participant Code;Block Number;Trial Number;Target Position;Target Color;Target Shape;SOA Duration;Trial Result;Trial RT;
Participant 01;1;1;180;Blue;1;100;True;881;
Participant 01;1;2;180;Yellow;2;400;True;564;
Participant 01;1;3;180;Blue;2;300;False;0;
Participant 01;1;4;0;Blue;2;600;True;867;
Participant 01;1;5;180;Red;2;200;True;760;
Using Reporter for collecting data into a record list
- Repeat steps 1-5 from the previous technique except for selection of the parent event. The record list is usually added once per run, at the start of the experiment.
- Set the layout of variables to "in columns" in the Layout Option panel of Reporter's designer. If you do not want variables' names to be included in a record list, uncheck the 'Append variables's headers' option.
- Set the layout of variables to "in columns" in the Layout Option panel of Reporter's designer. If you do not want variables' names to be included in a record list, uncheck the 'Append variables's headers' option. Otherwise, select a character that will separate variable's name and value in each row.
- Check the report preview at the bottom of the designer
- Close the designer and run an experiment for several trial loops.
- Open or export the resulting data report, and check how trial data is recorded. You should see data organized in a list, for example:
Participant Code;Participant 01;
Condition; AA05;
Key Map; 01;
Element's internal actions aligned with epochs of the parent event
Epoche | Actions |
---|
After onset | if the Recording Point property is set to 'On Onset', Reporter saves selected variables into Data Report |
Before offset | if the Recording Point property is set to 'On Offset', Reporter saves selected variables into Data Report |
Notes
- You can use multiple Reporter elements elsewhere in an experiment but be aware of the order, in which they save data into Data Report.
- You can use multiple Reporter elements elsewhere in an experiment but be aware of the order, in which they save data into Data Report.
Properties
Generic Properties
Name | Description | Attributes | Value Type | Proxy Reflex |
---|
Category Name |
Fill it | Fill it | Fill it | Fill it | Fill it |
+=== Properties inherited from clVisualElement ===
Name | Description | Constraints | Value Type | Upon Runtime Change |
---|
VISUAL APPEARANCE |
Alpha Masking | Defines whether the visual content rendered by this element will be used as an opacity mask which is applied onto the given event surface. The active opacity mask allows one to expose pixels of the parent event surface through a solid background of the given event. If the value is true, the darker pixels of the content will make more transparent holes on the entire event surface. | | Boolean | |
AntiAliasing | If true, the rendered content will be anti-aliased for smoother visual appearance. If false, rendering will be authentic to its source, e.g. a bitmap. | | Boolean | |
Position | Defines the position of the element viewport on the screen. The position can be set in any of three coordinate systems: a) pixels, b) polar, c) central. | | clPoint | |
Size | Defines the size of the element viewport on the screen. The size can be set in any of three coordinate systems: a) pixels, b) visual degrees, c) 'relative-to-screen' size. | | clSize | |
Z Order | Indicates the current depth order of the element viewport on the surface of the parent event. The greatest number corresponds to the top position. The order can be changed by moving the element up and down in the element list. | | Int32 | |
Pivot Point | Defines the pivot point (coordinate and the rotation centers) within the element viewport. | | stAlignment or Int32 | |
Visible | Defines whether the element is currently visible on the event surface. The property is convenient for switching visual content on and off. | | Boolean | |
Rotation | Defines the rotation angle (in degrees) of element viewport relative to the its pivot point. | | Double in the range 0..360 | |
EFFECTS |
Transparent Color | The color of the original pixels of rendered content that will be set as transparent. | | stColor | |
Transparency Tolerance | Tolerance ratio for choosing colors that become transparent. Zero means that effect is not applied, 1 denotes that all colors will become trasparent. | | Int32, range (0..100) | |
Color Mask | Produces a multiplicative combination of the original pixels and the selected mask color (except the alpha channel). The effect emulates a look through a colored glass. White or transparent mask color doesn't change the original pixels. | | stColor | |
Opacity | Opacity of the rendered content. | | Int32, range (0..100) | |
Contrast | Contrast of the rendered content. | | Int32, range (-100..100) | |
Brightness | Defines the brighness of the rendered content. | | Int32, range (-100..100) | |
Saturation | Saturation of the rendered content. | | Double | |
Pixelation | Defines the pixel scale of the rendering. | | Int32, range (0..100) | |
Blurring | The radius used in the gaussian blur of rendered content, as a pixel-based factor. The default is 0 which means no blurring. | | Int32 | |
POSITIONAL JITTER |
Reset Jitter | Set to true at runtime to reset the current positional jitter. | | Boolean, set true for action | |
Current Jitter | Jitter range, in pixels (non inclusive). | . | clSize | |
Jitter Range | Jitter range, centered at the original position of the element. | . | clSize | |
+=== Properties inherited from clLibraryElement ===
Name | Description | Constraints | Value Type | Upon Runtime Change |
---|
Material List |
Selected Index | Defines the index of the active item in the material list of the element. | | Int32 | A change causes the current item to be reloaded and an update of the element. |
Selected Item | Defines the name of the active item in the material list of the element. The name matches to a name of item in the Material Library | | String | A change causes the current item to be reloaded and an update of the element. |
Item Count | Returns the total number of items in the material list of the element. | | Int32 |
Equalize RGB | The property is only available in the visual element. If the value is true, the average RGB pixel intensity will be equalized across all items in the material list. You can turn on this property, when you need to obtain a luminance-balanced set of visual stimulus. | | Boolean | |
+=== Properties inherited from clSerialPortElement ===
Inherited properties of clSerialPort
Name | Description | Constraints | Value Type | Upon Runtime Change |
---|
Settings |
Working Mode | Defines a working mode for the element. Select 'Auto Output' mode for sending data synchronously with an onset of the parent event, 'Input Detection' mode for catching the particular pattern in port input and 'Manual Output'/'Input Listener' modes for custom writing/reading scenarios controlled via snippets. | | Struct,Int32 |
Encoding | The encoding method that is used to convert raw port bytes into text strings and vice verse. The default encoding is ByteChar which converts each byte of data to a single char. | | Struct,Int32 |
Buffer Size | Size of the input circular buffer (in bytes) that stores all incoming port data, when the element works in the 'Input Listener' mode. If the buffer is small, a part of the data can be lost before it is read by the program. | | Int32 |
Output |
Test Output | Initiates a single output transfer through the port by sending the current content of the Output Buffer property | |
Output Buffer | Text buffer that accumulates data meant to be sent through the port. | | String |
Send Now | Runtime action that initiates an instant transfer of the current output value through the port. Manual runtime calls of this action are required if the element works in the Manual Output mode. | | Boolean | Assigning "true" to the linked Proxy in snippets initiates a single action call |
Input |
Test Input | Start a dialog window that monitors arriving port input in realtime. Useп for verification of the selected port settings and encoding method. | |
Input | Returns the most recent content of the circular input buffer, when the element works in the Input Listener. The property is refreshed automatically on each OnRunning cycle, therefore, a property value should be read in the Running snippet. | | String |
Triggering Input | When the element works in the 'Input Detection' mode, the value of this property defines the 'catching' input string. If such string is detected an incoming input at some moment, the element registers the detection time and becomes triggered. This property is essential for time-accurate registration of the specific input, e.g button press, coming out of a external device. | | String |
Trigger Once | Defines whether the element can be triggered multiple times, while the parent event is active. If the property value is 'true', only the first triggering is registered. Triggering can occur only in the 'Input Detection' working mode | | Boolean |
Runtime Status |
Is Input Lost | Indicates that a part of the input has been lost due to large amount of incoming data at runtime or due to an insufficient size of the input buffer. Try to increase the buffer size or reduce a processing load when the element is active. | | Boolean |
Is Triggered | Indicates whether the element has been triggered at least once, since activation of the parent event. Triggering can occur only in the 'Input Detection' working mode | | Boolean |
Trigger Time | Indicates the local event time of the last element triggering. Triggering can occur only in the 'Input Detection' working mode. | | UInt64 |
+=== Properties inherited from clParallelPortElement ===
Inherited properties of clParallelPort
Name | Description | Constraints | Value Type | Upon Runtime Change |
---|
Port Settings |
Working Mode | Defines a working mode for the element.Select the 'Output on event onset' mode for sending signals synchronously with an onset of the parent event,or 'Triggering on input' mode for catching the particular pattern in port input. For custom reading/writing scenarios use the 'Manual IO' mode, in which port communications can be controlled by your code. | | Int32 |
Output |
Test Output | Sends a test output signal through the port using the selected signal profile and the current Output Value. | |
Signal Profile | Defines the time-amplitude profile of the output signal. The 'Level Change', 'Pulse' and 'TTL' profiles are available. Last two can be used to send the EEG triggers. | | Int32 | |
Preface Duration | Defines the duration (ms) of the guarantied zero preface interval for the TTL or Pulse signals. Increase the preface duration marginally, if your recording hardware does not detect port signals. Note that a non-zero preface delays the onset of the actual signal. | | Double | |
Pulse Duration | Duration of an output pulse in ms. The value is applied only, if the Pulse signal profile is selected. | | UInt64 |
Output Value | Value to be sent through the port. Can be defined in integer or binary format, e.g. Output='01010000'; or Output=255; | | clBinaryInteger |
Send Now | Runtime command that that initiates an instant transfer of the current output value through the port. Manual command calls at runtime are only required, if the element works in the Manual I/O mode. | | Boolean | Execute the command by assigning true in code: SendNow=true; |
Input |
Test Input | Open a input monitor window showing real-time port input with the current settings. Use it for testing at designtime. | |
Input Value | Returns the current state of the port input lines. The property is not updated automatically. Manual reading of the property value in snippets is required to obtain the current input. The value can be read either to the integer or binary formats, e.g. 'string S=Input;' may return '01010101'. | | clBinaryInteger |
Triggering Input | eturns the current state of the port input lines. The property is not updated automatically. Manual reading of the property value in snippets is required to obtain the current input. The value can be read either to the integer or binary formats, e.g. 'string S=Input;' may return '01010101'. | | String |
Trigger Once | Returns the current state of the port input lines. The property is not updated automatically. Manual reading of the property value in snippets is required to obtain the current input. The value can be read either to the integer or binary formats, e.g. 'string S=Input;' may return '01010101' | | Boolean |
Runtime Status |
Is Triggered | Indicates whether the element has been triggered at least once, since activation of the parent event. Triggering occurs only in the 'Input Detection' working mode. | | Boolean |
Trigger Time | Indicates the local event time of the last element triggering. Triggering occurs only in the 'Input Detection' working mode. | | UInt64 |
+=== Properties inherited from clTrackerElement ===
Name | Description | Constraints | Type | Upon Runtime Change |
---|
GLM Calibration |
Run GLM Calibration | Runs the GLM calibration procedure, which calculates two pairs of linear coefficients for mapping of the tracker input into the screen coordinates. The calculated coefficients are automatically applied at runtime. | | Boolean |
Gain X | Defines the gain coefficient for the X axis in the GLM calibration model: X='GainX'*x+OffsetX | | Double | |
Gain Y | Defines the gain coefficient for the Y axis in the GLM calibration model: Y=GainY*y+OffsetY | | Double |
Offset X | Defines the offset coefficient for the X axis in the GLM calibration model: X=GainX*x+OffsetX | | Double | |
Offset Y | Defines the offset coefficient for the Y axis in the GLM calibration model: Y=GainY*y+OffsetY | | Double | |
Drift Correction |
Recalibrate Now | Runtime command that helps to correct drifts in tracking data.Correction is done by recalibration of the latest tracker position into a custom screen point defined by the 'Recalibration Point' property.nAs result, the offsets of the GLM calibration get adjusted (but not gains) to compensate a drift in further data. | | Boolean |
Recalibration Point | Defines the screen point to which the tracker position will be recalibrated on calling 'Recalibrate Now' action. The default auto value always denotes the screen center. | | clPoint |
Logging |
Log Folder | Opens the dialog for selecting a local folder that will hold all tracking logs | | String |
Open Log Designer | Opens a designer window where the log format can be defined. | | Boolean |
Is Logging | Defines whether logging is turn on/off. The value can be changed at any moment at runtime allowing selective logging during the relevant periods only. | | Boolean | |
User Field | Defines the custom user data that is added to every line in the log file. The property can be used for recording varying status information (e.g. trial number) together with the tracker data. The string value may contains multiple fields separated by delimiter. | | String | Once a string value is assigned, it is added to every new upcoming line in the log until a new assignment is made. |
+=== Properties inherited from clElement ===
Inherited properties of clElement
Name | Description | Constraints | Value Type | Upon Change |
---|
Control |
Is Enabled | If set to false the element is completely omitted when the experiment is run. | | Boolean |
|
Title | Title of the element. | | String |
|