ezmsg.lsl.inlet#
Classes
- class LSLInfo(name: str = '', type: str = '', host: str = '', channel_count: int | None = None, nominal_srate: float = 0.0, channel_format: str | None = None)[source]#
Bases:
object- Parameters:
- class LSLInletGenerator(*args, **kwargs)[source]#
Bases:
LSLInletProducerDeprecated: use LSLInletProducer instead.
- class LSLInletProducer(*args, settings=None, **kwargs)[source]#
Bases:
BaseStatefulProducer[LSLInletSettings,AxisArray|None,LSLInletProducerState]- Parameters:
settings (SettingsType)
- __init__(*args, settings=None, **kwargs)[source]#
- Parameters:
settings (LSLInletSettings | None)
- class LSLInletSettings(info: LSLInfo = <factory>, local_buffer_dur: float = 1.0, use_arrival_time: bool = False, use_lsl_clock: bool = False, processing_flags: int = 15, pull_timeout: float = 0.1, max_pull_samples: int | None = None)[source]#
Bases:
Settings- Parameters:
- use_arrival_time: bool = False#
Whether to ignore the LSL timestamps and use the time.time of the pull (True). If False (default), the LSL (send) timestamps are used. Send times may be converted from LSL clock to time.time clock. See use_lsl_clock.
- use_lsl_clock: bool = False#
Whether the AxisArray.Axis.offset should use LSL’s clock (True) or time.time’s clock (False – default).
- processing_flags: int = 15#
The processing flags option passed to pylsl.StreamInlet. Default is proc_ALL which includes all flags. Many users will want to set this to pylsl.proc_clocksync to disable dejittering.
- pull_timeout: float = 0.1#
Maximum seconds to wait for the first sample during each steady-state pull. Once a sample arrives,
pull_chunk(min_samples=1)immediately drains any other available samples up tomax_pull_sampleswithout waiting for the buffer to fill. The 0.1 second default therefore reduces idle wakeups without adding batching latency.Pulling runs on a worker thread via
asyncio.to_thread; the liblsl C call releases the GIL, so the event loop stays free while the inlet waits.
- max_pull_samples: int | None = None#
Total cap on samples returned per
pull_chunk.None(default) uses the full local fetch buffer. The inlet waits only for the first sample and then drains immediately available data up to this cap; it does not wait for the cap to be reached. A smaller value limits message size when clearing a large backlog, but may split that backlog across successive messages.
- __init__(info=<factory>, local_buffer_dur=1.0, use_arrival_time=False, use_lsl_clock=False, processing_flags=15, pull_timeout=0.1, max_pull_samples=None)#
- class LSLInletUnit(*args, settings=None, **kwargs)[source]#
Bases:
BaseProducerUnit[LSLInletSettings,AxisArray|None,LSLInletProducer]Represents a node in a graph that creates an LSL inlet and forwards the pulled data to the unit’s output.
- Parameters:
stream_name – The name of the created LSL outlet.
stream_type – The type of the created LSL outlet.
settings (Settings | None)
- SETTINGS#
alias of
LSLInletSettings
- create_producer()[source]#
Create the producer instance from settings.
Closes the previous producer first (if any), so resources held by it — sockets, file handles, hardware sessions — are released deterministically rather than being left to garbage collection.
- Return type:
None
- shutdown()[source]#
Runs when the Unit terminates.
This is called from within the same process this unit will live in. This lifecycle hook can be overridden. It can be run as async functions by simply adding the async keyword when overriding.
This method is where you should clean up resources and perform any necessary shutdown procedures.
- Return type:
None
- class LSLInfo(name: str = '', type: str = '', host: str = '', channel_count: int | None = None, nominal_srate: float = 0.0, channel_format: str | None = None)[source]#
Bases:
object- Parameters:
- class LSLInletSettings(info: LSLInfo = <factory>, local_buffer_dur: float = 1.0, use_arrival_time: bool = False, use_lsl_clock: bool = False, processing_flags: int = 15, pull_timeout: float = 0.1, max_pull_samples: int | None = None)[source]#
Bases:
Settings- Parameters:
- use_arrival_time: bool = False#
Whether to ignore the LSL timestamps and use the time.time of the pull (True). If False (default), the LSL (send) timestamps are used. Send times may be converted from LSL clock to time.time clock. See use_lsl_clock.
- use_lsl_clock: bool = False#
Whether the AxisArray.Axis.offset should use LSL’s clock (True) or time.time’s clock (False – default).
- processing_flags: int = 15#
The processing flags option passed to pylsl.StreamInlet. Default is proc_ALL which includes all flags. Many users will want to set this to pylsl.proc_clocksync to disable dejittering.
- pull_timeout: float = 0.1#
Maximum seconds to wait for the first sample during each steady-state pull. Once a sample arrives,
pull_chunk(min_samples=1)immediately drains any other available samples up tomax_pull_sampleswithout waiting for the buffer to fill. The 0.1 second default therefore reduces idle wakeups without adding batching latency.Pulling runs on a worker thread via
asyncio.to_thread; the liblsl C call releases the GIL, so the event loop stays free while the inlet waits.
- max_pull_samples: int | None = None#
Total cap on samples returned per
pull_chunk.None(default) uses the full local fetch buffer. The inlet waits only for the first sample and then drains immediately available data up to this cap; it does not wait for the cap to be reached. A smaller value limits message size when clearing a large backlog, but may split that backlog across successive messages.
- __init__(info=<factory>, local_buffer_dur=1.0, use_arrival_time=False, use_lsl_clock=False, processing_flags=15, pull_timeout=0.1, max_pull_samples=None)#
- class LSLInletProducer(*args, settings=None, **kwargs)[source]#
Bases:
BaseStatefulProducer[LSLInletSettings,AxisArray|None,LSLInletProducerState]- Parameters:
settings (SettingsType)
- __init__(*args, settings=None, **kwargs)[source]#
- Parameters:
settings (LSLInletSettings | None)
- class LSLInletGenerator(*args, **kwargs)[source]#
Bases:
LSLInletProducerDeprecated: use LSLInletProducer instead.
- class LSLInletUnit(*args, settings=None, **kwargs)[source]#
Bases:
BaseProducerUnit[LSLInletSettings,AxisArray|None,LSLInletProducer]Represents a node in a graph that creates an LSL inlet and forwards the pulled data to the unit’s output.
- Parameters:
stream_name – The name of the created LSL outlet.
stream_type – The type of the created LSL outlet.
settings (Settings | None)
- SETTINGS#
alias of
LSLInletSettings
- create_producer()[source]#
Create the producer instance from settings.
Closes the previous producer first (if any), so resources held by it — sockets, file handles, hardware sessions — are released deterministically rather than being left to garbage collection.
- Return type:
None
- shutdown()[source]#
Runs when the Unit terminates.
This is called from within the same process this unit will live in. This lifecycle hook can be overridden. It can be run as async functions by simply adding the async keyword when overriding.
This method is where you should clean up resources and perform any necessary shutdown procedures.
- Return type:
None