-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlsl_inlet_example.py
45 lines (35 loc) · 1.34 KB
/
lsl_inlet_example.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from typing import Optional
import ezmsg.core as ez
from ezmsg.lsl.units import LSLInletUnit, LSLInletSettings
from ezmsg.util.debuglog import DebugLog, DebugLogSettings
# from ezmsg.util.messagelogger import MessageLogger, MessageLoggerSettings
class LSLDemoSystemSettings(ez.Settings):
stream_name: str = ""
stream_type: str = "EEG"
logger_name: str = "DEBUG" # Useful name for logger
logger_max_length: Optional[int] = 400 # No limit if `None``
class LSLDemoSystem(ez.Collection):
SETTINGS: LSLDemoSystemSettings
INLET = LSLInletUnit()
LOGGER = DebugLog()
# LOGGER = MessageLogger()
def configure(self) -> None:
self.INLET.apply_settings(
LSLInletSettings(
stream_name=self.SETTINGS.stream_name,
stream_type=self.SETTINGS.stream_type,
)
)
self.LOGGER.apply_settings(
DebugLogSettings(
name=self.SETTINGS.logger_name,
max_length=self.SETTINGS.logger_max_length,
)
)
def network(self) -> ez.NetworkDefinition:
return ((self.INLET.OUTPUT_SIGNAL, self.LOGGER.INPUT),)
if __name__ == "__main__":
# Run the websocket system
system = LSLDemoSystem()
system.apply_settings(LSLDemoSystemSettings(stream_name="", stream_type="EEG"))
ez.run(SYSTEM=system)