User Reference:Operator Module

From BCI2000 Wiki
Jump to navigation Jump to search

The operator module is the user interface seen by the experimentator. It allows to view and edit system parameters, save and load parameter files, and start and stop system operation.

Starting Up BCI2000

In addition to the operator module, BCI2000 consists of a number of core modules which must be started up together with the operator module. For a given experiment, data acquisition, signal processing, and application must be selected by combining appropriate modules at startup time. This can be done two ways:

  1. Using the batch scripts in the BCI2000/batch folder -- choose one of the available scripts, or modify one to fit your needs.
    Script files provide an easy way to customize BCI2000 behavior. They are written in the Operator Scripting language.
  2. Using BCI2000Launcher. This tool provides a GUI for module selection, and allows for automated loading of parameter files at startup.

Main Window

The Operator Module's Main Window

Operation Buttons

The main window contains four large buttons. These buttons correspond to the tasks that need to be performed during an experiment:

  • Config
opens the configuration window,
  • SetConfig
applies the current set of parameters to the system,
  • Start
starts system operation,
  • Quit
exits the system once the experiment has finished.

Not all buttons are functional all the time; availability of a function depends on system state, and is indicated by the button's "enabled" state.

Function Buttons

There are four function buttons that execute Operator Scripts. Scripts and button captions may be configured freely from the preferences dialog. When the Operator module is the frontmost application, button scripts may be executed using the F1-F4 keys on the keyboard.

Status Area

The status area, at the bottom of the main window, contains four fields. System status is displayed on the left, and module status is displayed in the three rightmost fields, in the order of core modules (Data Acquisition, Signal Processing, Application).

Main Menu Bar

File Menu

  • Preferences...
opens the Preferences Dialog.
  • Quit...
terminates BCI2000 after displaying a confirmation message. This menu entry is always available, even if the Quit button is dimmed.

View Menu

  • States...
displays a window that lists the state variables currently available in the system.
  • Operator Log
toggles visibility of the log window. The log window becomes automatically visible when there are error or warning messages; for informative messages, and debugging output, it is necessary to make it visible using this menu entry.
  • Connection Info
toggles visibility of the connection information window. This window displays information whether connections between operator and core modules are established, network addresses, and the number of messages that have been transferred so far.

Window Menu

  • System Log
toggles visibility of the system log window.
  • Watches
toggles visibility of the watches window.
  • Notes
toggles visibility of the notes window.
  • Visualizations
is a submenu that displays visualization windows with their visualization ID, and allows to toggle their visibility.

Help Menu

  • About...
displays extensive information about the operator module's version number, the source code revision it was built from, and the time of the build. This information is also kept inside the OperatorVersion parameter on the system tab, and written into data files along with all system parameters.

Preferences Dialog

The Preferences Dialog

On the left side, the preferences dialog allows you to associate operator scripts with events, and on the top right, you may configure the main window's function buttons using operator script commands. Please see the User Reference:Operator Module Scripting page for scripting details.

Scripts may be specified from the command line at startup.

On the bottom right, you may specify the global User Level to be one of beginner, intermediate, or advanced. When the user level is set to advanced, a similar ruler control is displayed for each individual parameter in the Parameter Configuration Dialog. For each parameter, its user level is compared to the global user level setting, and the parameter is displayed only if its user level is equal to or below the global setting. Thus, it is possible to simplify the configuration dialog for less experienced users, or for your own convenience, in sitations where full access to configuration options is not necessary. As a typical example, once you have set up a stimulation experiment, you will only change the SubjectName and SubjectRun parameters. Setting these two parameter's user levels to beginner, and leaving the other's at advanced, you may now switch the global user level to beginner, and will only see the two selected parameters displayed in the configuration dialog.

Parameter Configuration Window

The Parameter Configuration Window

On the left side, this window displays a number of register tabs that correspond to parameter sections. Clicking on a tab will display the parameters from the corresponding section.

Within a section, parameters are grouped according to subsections. In most cases, subsections correspond to individual filters; however, filters with a large number of parameters might choose to group them into subsections to make configuration easier. Within subsections, the order of parameter display depends on the order in which parameters are published by the filter.

For single-valued parameters, an edit field is displayed that holds the parameter's value. This is also true for list parameters; there, list entries must be separated by white space. Within entries, space characters may be encoded as '%20'. For some parameters, drop-down menus, checkboxes, or chooser buttons are displayed to make it more convenient for the user to enter parameter values. (For programmers, this feature is explained on the Technical Reference:Parameter Definition page.) Matrix-valued parameters display a button to load or save a matrix in ASCII format, and an Edit button that opens up a Matrix Editor Window.

On the right side, there is a pair of Save/Load Parameters buttons that allows saving and retrieving the current configuration to/from parameter files. Behavior of the load/save operation may be fine-tuned using the Configure Load and Configure Save buttons. These buttons both display a list of parameter names, allowing to select parameters to be ignored during load/save operations. This is especially useful to save only a subset of parameters, and thus factor out partial configurations depending on, e.g., the data acquisition module used rather than the experiment itself.

Below these buttons, there is another button labeled "Help". Clicking this button will change the mouse cursor into a question mark. Then, a click on a parameter name or edit field will open the appropriate help page when available. This help button is available only when a recent version of the BCI2000 doc directory is present along with the prog directory where the operator module resides.

Matrix Editor Window

The Matrix Editor Window

The matrix editor allows you to

  • modify the values in matrix-valued parameters
-- click an entry to edit it;
  • change the size of the matrix
-- change the "number of rows" or "number of columns" fields, and click the "Set new matrix size" button;
  • edit row and column titles (labels)
-- double-click a row or column title to edit it;
  • convert matrix entries into sub-matrices and back into single entries
-- use the context menu's "Convert to sub-matrix"/"Replace by single cell" items;
  • open another matrix editor to edit the contents of a sub-matrix
-- use the context menu's "Edit sub-matrix" item.

Visualization Windows

A Visualization Window

Visualization windows may be moved and resized, and remember their positions across sessions.


In a context menu, the following options are available:

  • adjusting signal amplitude,
  • adjusting the time interval displayed in the window,
  • choosing signal colors,
  • choosing the number of signals displayed,
  • applying highpass, lowpass, and notch filter combination to the displayed signal,
  • switching between signal display as lines, and colored blocks ("display mode"),
  • switching signal baselines, and unit display on and off.

For signal visualizations, the arrow keys and page up/page down keys may be used to scroll through channels. The full set of keyboard shortcuts is:

up/down back/forward one channel,
page-up/page-down back/forward one screenful of channels,
'b'/space same as page-up/page-down ('less'-like shortcuts),
-/+ reduce/enlarge the signal,
,/. fewer/more channels,
left/right slow down/speed up the time sweep,
home/end jump to the first/last screenful of channels,
typing a number and pressing return (or 'g') jump to the specified channel number.

Unit Display

When the signal's physical unit is displayed, it is represented as a white bar:

SignalUnitDisplay.PNG

In the example, there are white markers above and below the bar, indicating the range corresponding to the value written in the bar. These markers may be missing; then the range corresponds to the height of the bar itself.

Finally, the physical unit may be displayed with a white marker attached to the bar:

SignalUnitDisplay2.PNG

This display is used for nonnegative signals. Here, the physical unit corresponds to the distance of the white marker to the signal's baseline.

Choosing Signal Colors

Signal colors may be chosen by right-clicking on one or more channels in the channel list at the right of the visualization window. If no channel list is present, right-click on the visualization window and choose "Show channel list" to display the channel list.

After right-clicking on a channel (or group of selected channels), click "Choose color...". A color chooser dialog will appear and allow you to select the selected channels' color.

Note that you may also set colors from a BCI2000 startup script using the SET VISPROPERTY scripting command.

Watches Window

The Operator module maintains a set of "Watches" which are user-defined expressions that are evaluated permanently, and triggered on any change. Watches may be created through the VISUALIZE WATCH scripting command but also entered interactively into the watches window. The watches window may be opened from the Windows menu.

The Watches Window

In the Expression column, you may enter one or more Expressions separated with commas. For example, to visualize the difference between the StimulusTime and the SourceTime state, you may enter

StimulusTime-SourceTime

To visualize both the StimulusTime and the SourceTime state in the same plot, enter

{SourceTime, StimulusTime}

In the Decim column, it is possible to specify a watch's decimation behavior. By default, it is set to "auto" which means that there is no restriction in evaluation but display is restricted to no more than two data points per millisecond.

A value of "1" means that no decimation takes place; for multiple expressions that change often (e.g., once per sample at 10kHz), this may exceed your machine's capacity and result in a sluggish or seemingly blocked Operator module.

Values larger than "1" mean that only every Nth sample is evaluated. Obviously, this implies that short-lived changes will be ignored, i.e. not displayed in the plot.

The Value column displays current expression values, and the Range column displays minimum and maximum values over the time period visualized in the plot.

Double-clicking the heading of the Plot column allows you to change the duration of past time that is displayed in the plot.

See also

Technical Reference:System Design, User Reference:Operator Module Scripting, User Reference:Operator.ini, User Reference:Module Command Line Options, User Reference:Timing, User Reference:Operator Notes