Welcome Guest, you are in: Login

EventIDE Wiki

RSSRSS

Navigation




Search the wiki


PoweredBy

Page History: Properties

Compare Page Revisions



« Older Revision - Back to Page History - Newer Revision »


Page Revision: 2014/05/30 23:04



Description

While designing experiments in EventIDE, you operate with three types of design objects: experiments, events and elements. The experiment object is a root container for everything. The events are time blocks that define the experiment scenario and, in addition, host the elements. The elements handle various singular functions in an experiment, for example, some elements present stimuli, some register responses and other communicate with hardware.

Every design object has a fixed list of properties that represent object's status. In the first approach, the properties are variables (fields) of simple data types, e.g: string, boolean, integer and so on. For example, the event has a property called ‘Background Color’, which can be used to set a color of the event background. Another event's property, 'Elapsed time', returns the amount of milliseconds that have passed since the event's onset. This property can be read and used as a local timer in user code. When a design object is selected in the EventIDE designer, its properties are shown in the property grid (on the right of the main window) and can be modified there (see the screenshots below). The most relevant properties are marked in orange.

Property Interface

The properties provide a simple, unified and very intuitive interface for controlling data and functions of the design objects. The properties can be accessed both in the EventIDE designer and in the code snippets at runtime. EventIDE automatically handles all necessary updates on every property change. For instance, after you change the Position property of the Text element, the associated text block will be immediately removed and redrawn at the new position on the screen. There is no need to call any drawing function for this operation, because the properties combine concepts of data variables and functions. Due to that combination, you should be careful as you change properties at runtime. Property update processing can be time consuming, which can harm timing accuracy at critical moments. For example, it is recommended to complete all trial preparations (via the properties) before the stimulus presentation is started.

Some properties are designed to return the current state of a design object at runtime. For example, you can check whether a keyboard button is in the down or up state by reading the boolean IsDown property of the Button element. The status properties can be naturally used as flags to control the flow of your experiment.

Property usage attributes

Property attributes determine how properties can be accessed and used. Although most of properties are available for use in code snippets through the parameters functionality, the property attributes can impose a specific mode.

Ordinal properties

The most of the object properties in EventIDE have no special access attributes, which means that they can be changed both at design and run-time.

Status properties

The status properties return certain information about the current object's status. Note that the status properties are read-only and can not be modified by a user. They are updated internally, by its parent object. The status properties names often start with 'Is', e.g. IsTriggered and IsDown properties of the Button element. Another group of the status properties return various online statistics, e.g. actual durations of events (Actual Duration on the event object) or time of a button press (Triggering Time of the Button element)

Runtime-action properties

Few EventIDE objects have actions that can be called explicitly. For example, when you want to send manually a trigger via the parallel port, you can use the Send Now property on the LPT port element. Names of the runtime-action properties often end with 'Now' indication the command logic.

Designtime-action properties

These properties can not objects have actions that can be called explicitly. For example, when you want to send manually a trigger via the parallel port, you can use the Send Now property on the LPT port element. Names of the runtime-action properties often end with 'Now' indication the command logic.



Generic data types

Most of the properties of EventIDE design objects have standard data type, such as boolean, int, double, string.

EventIDE build-in data types

There are several new data type that are introduced by EventIDE. For example, the Position property has a type, called clPoint. clPoint is a csutom struct that provide screen coordinates in the three coordinate systems: pixel, visual degrees and proportion to the screen size.

Property attributes

Property attributes determine how it can be accessed. Although most properties are available for use in code snippets through the parameters functionality,the property attributes can impose certain restictions on such interactions.
  1. Not attributed: The most of the properties has no access attributes, which means that they can be changed both at design and run-time.
  2. Run-time: This attribute indicates that the property can be accessed only in the run-time. Such a property can be used only in conjunction with parameters functionality with property values to be read and written in code snippets.
  3. Status: The status properties returns status information. For example, it can be timing statistics collected through a experiment run. The status properties are typically read-only and can not be changed.
  4. Design-time: The design-time properties can be adjusted only at design-time. When the experiment is run, their values are fixed or not accessible. The design-time properties include, for example, an event titles or some settings, such as the display resolution. Design-time properties cannot be turn into proxy variables.

ScrewTurn Wiki version 5.2.0.8. Some of the icons created by FamFamFam.