pybci.Utils.PseudoDevice import PseudoDeviceController
- class PseudoDeviceController(is_multiprocessing=True, markerConfigStrings=['Marker1', 'Marker2', 'Marker3'], pseudoMarkerDataConfigs=None, createMarkers=True, pseudoMarkerConfig=PseudoMarkerConfig, dataStreamName='PyBCIPseudoDataStream', dataStreamType='EMG', sampleRate=250, channelCount=8, logger=Logger(Logger.INFO), log_queue=None)
The PseudoDeviceController class is designed for generating pseudo EMG signals and markers, simulating a Lab Streaming Layer (LSL) device. It supports both multiprocessing and threading environments, depending on the is_multiprocessing parameter.
- Parameters:
is_multiprocessing – bool: Indicates if the class instance operates in a multiprocessing environment. Default is True.
markerConfigStrings – list(str): Marker strings for generating marker data. Default is [“Marker1”, “Marker2”, “Marker3”].
pseudoMarkerDataConfigs – list: Configurations for pseudo EMG signals. Uses default configurations if None.
createMarkers – bool: Flag to determine if markers should be created. Default is True.
pseudoMarkerConfig – PseudoMarkerConfig: Settings for pseudo markers.
dataStreamName – string: Name for the data stream.
dataStreamType – string: Data stream type (e.g., “EMG”).
sampleRate – int: Sample rate in Hz.
channelCount – int: Number of channels.
logger – Logger: Logger object for logging.
log_queue – multiprocessing.Queue or queue.Queue: Queue object for logging.
Note
The sample rate is not exact and may vary with CPU strain.
- BeginStreaming()
Initiates streaming of pseudo EMG data and markers. This method should be called to start the device’s operation.
- StopStreaming()
Stops the data and marker streaming, signaling the termination.
- log_message(level='INFO', message='')
Logs a message to the log_queue or directly, based on the operation mode.
- Parameters:
level – string: Log message level (e.g., “INFO”, “ERROR”).
message – string: Message to log.
Note
Ensure a graceful shutdown by calling StopStreaming().
Note
The PseudoDeviceController is suitable for simulations and testing purposes. It may require specific setup for multiprocessing or threading environments.