Python support for BrainProducts hardware.
Here we have implemented support for the Remote Control Server application, which allows you to control recordings, send annotations etc. all from Python.
RemoteControlServer(host='127.0.0.1', port=6700, timeout=1.0, testMode=False)¶
Provides a remote-control interface to BrainProducts Recorder.
import time from psychopy import logging from psychopy.hardware import brainproducts logging.console.setLevel(logging.DEBUG) rcs = brainproducts.RemoteControlServer() rcs.open('testExp', workspace='C:/Vision/Workfiles/Standard Workspace.rwksp', participant='S0021') rcs.openRecorder() time.sleep(2) rcs.mode = 'monitor' # or 'impedence', or 'default' rcs.startRecording() time.sleep(2) rcs.sendAnnotation('124', 'STIM') time.sleep(1) rcs.pauseRecording() time.sleep(1) rcs.resumeRecording() time.sleep(1) rcs.stopRecording() time.sleep(1) rcs.mode = 'default' # stops monitoring mode
To initialize the remote control recorder.
host (string, optional) – The IP address or hostname of the computer running RCS.
port (int, optional) – The port on which RCS is listening for a connection on the
EEG computer. This should usually not need to be changed.
timeout (float, optional) – The timeout (in seconds) to wait for sending/receivign commands
testMode (bool, optional) – If
True, the network connection to the RCS computer will
not actually be initialized.
Get/set the amplifier to use
Closes the recording and deletes all associated workspace variables (e.g. when a participant has been completed)
Use this to reset any DC offset that might have accumulated if you aren’t using a high-pass filter
Get/set the name of the experiment or study (string)
The name will make up the first part of the EEG filename.
rcs.expName = 'MyTestStudy'
Get/set the current mode.
Mode is a string that can be one of:
‘default’ or ‘def’ or None will exit special modes
‘impedance’ or ‘imp’ for impedance checking
‘monitoring’ or ‘mon’
‘test’ or ‘tes’ to go into test view
open(expName, participant, workspace)¶
Opens a study/workspace on the RCS server
expName (str) – Name of the experiment. Will make up the first part of the EEG filename.
participant (str) – Participant identifier. Will make up the second part of the EEG filename.
workspace (str) – The full path to the workspace file (.rwksp), with forward slashes as path separators. e.g. “c:/myFolder/mySetup.rwksp”
Opens the Recorder application from the Remote Control.
Get/set whether the
Get/set the participant identifier (a string or numeric).
This identifier will make up the center part of the EEG filename.
Pause recording EEG without ending the session.
Resume a paused recording
Sends a message to be logged on the Recorder.
The timing of annotations may be imprecise and this should not be trusted as a method of sending sync triggers.
Annotations can contain any ASCII characters except for “;”
annotation (string) – The desription text to be sent in the annotation.
annType (string) – The category of the annotation which are user-defined strings (e.g. stimulus, response)
:param Example usage::: rcs.sendAnnotation(“face003”, “stimulus”)
A helper function to send raw messages (strings) to the RCS.
This is normally only used for debugging purposes and is not needed by most users.
message (string) – The string that will be sent
checkOutput (string (default='OK')) – If a value is provided then this will be checked for by this function. If no check is needed then set checkOutput=None
Start recording EEG.
Stop recording EEG.
What is a reasonable timeout in seconds (initially set to 0.5)
For some systems (e.g. when the RCS is the same machine) you might want to set this to a lower value. For an unpredictable or slow network connection you might want to set this to a higher value.
Get/set the path to the workspace file. An absolute path is required.
rcs.workspace = 'C:/Vision/Worksfiles/testing.rwksp'