biosignal-device-interface 0.2.1a1__py3-none-any.whl → 0.2.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. biosignal_device_interface/constants/devices/__init__.py +3 -3
  2. biosignal_device_interface/constants/devices/core/base_device_constants.py +61 -61
  3. biosignal_device_interface/constants/devices/otb/otb_muovi_constants.py +129 -129
  4. biosignal_device_interface/constants/devices/otb/otb_quattrocento_constants.py +313 -313
  5. biosignal_device_interface/constants/devices/otb/otb_quattrocento_light_constants.py +59 -59
  6. biosignal_device_interface/constants/devices/otb/otb_syncstation_constants.py +233 -233
  7. biosignal_device_interface/constants/plots/color_palette.py +59 -59
  8. biosignal_device_interface/devices/__init__.py +17 -17
  9. biosignal_device_interface/devices/core/base_device.py +424 -412
  10. biosignal_device_interface/devices/otb/__init__.py +29 -29
  11. biosignal_device_interface/devices/otb/otb_muovi.py +290 -290
  12. biosignal_device_interface/devices/otb/otb_quattrocento.py +332 -332
  13. biosignal_device_interface/devices/otb/otb_quattrocento_light.py +210 -210
  14. biosignal_device_interface/devices/otb/otb_syncstation.py +407 -407
  15. biosignal_device_interface/gui/device_template_widgets/all_devices_widget.py +51 -51
  16. biosignal_device_interface/gui/device_template_widgets/core/base_device_widget.py +130 -130
  17. biosignal_device_interface/gui/device_template_widgets/core/base_multiple_devices_widget.py +108 -108
  18. biosignal_device_interface/gui/device_template_widgets/otb/otb_devices_widget.py +44 -44
  19. biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_plus_widget.py +158 -158
  20. biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_widget.py +158 -158
  21. biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_light_widget.py +174 -174
  22. biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_widget.py +260 -260
  23. biosignal_device_interface/gui/device_template_widgets/otb/otb_syncstation_widget.py +262 -262
  24. biosignal_device_interface/gui/plot_widgets/biosignal_plot_widget.py +500 -501
  25. biosignal_device_interface/gui/ui/devices_template_widget.ui +38 -38
  26. biosignal_device_interface/gui/ui/otb_muovi_plus_template_widget.ui +171 -171
  27. biosignal_device_interface/gui/ui/otb_muovi_template_widget.ui +171 -171
  28. biosignal_device_interface/gui/ui/otb_quattrocento_light_template_widget.ui +266 -266
  29. biosignal_device_interface/gui/ui/otb_quattrocento_template_widget.ui +415 -415
  30. biosignal_device_interface/gui/ui/otb_syncstation_template_widget.ui +732 -732
  31. biosignal_device_interface/gui/ui_compiled/devices_template_widget.py +56 -56
  32. biosignal_device_interface/gui/ui_compiled/otb_muovi_plus_template_widget.py +153 -153
  33. biosignal_device_interface/gui/ui_compiled/otb_muovi_template_widget.py +153 -153
  34. biosignal_device_interface/gui/ui_compiled/otb_quattrocento_light_template_widget.py +217 -217
  35. biosignal_device_interface/gui/ui_compiled/otb_quattrocento_template_widget.py +318 -318
  36. biosignal_device_interface/gui/ui_compiled/otb_syncstation_template_widget.py +495 -495
  37. {biosignal_device_interface-0.2.1a1.dist-info → biosignal_device_interface-0.2.2.dist-info}/METADATA +3 -2
  38. biosignal_device_interface-0.2.2.dist-info/RECORD +46 -0
  39. {biosignal_device_interface-0.2.1a1.dist-info → biosignal_device_interface-0.2.2.dist-info}/WHEEL +1 -1
  40. {biosignal_device_interface-0.2.1a1.dist-info → biosignal_device_interface-0.2.2.dist-info/licenses}/LICENSE +675 -675
  41. biosignal_device_interface-0.2.1a1.dist-info/RECORD +0 -46
@@ -1,59 +1,59 @@
1
- from aenum import Enum, auto
2
-
3
-
4
- # Quattrocento Light constants
5
- ############# COMMANDS #############
6
- COMMAND_START_STREAMING = b"startTX"
7
- COMMAND_STOP_STREAMING = b"stopTX"
8
- CONNECTION_RESPONSE = b"OTBioLab"
9
-
10
-
11
- ############# QUATTROCENTO LIGHT #############
12
- class QuattrocentoLightSamplingFrequency(Enum):
13
- """
14
- Enum class for the sampling frequencies of the Quattrocento Light device.
15
- """
16
-
17
- _init_ = "value __doc__"
18
-
19
- LOW = auto(), "512 Hz"
20
- MEDIUM = auto(), "2048 Hz"
21
- HIGH = auto(), "5120 Hz"
22
- ULTRA = auto(), "10240 Hz"
23
-
24
-
25
- class QuattrocentoLightStreamingFrequency(Enum):
26
- """
27
- Enum class for the streaming frequencies of the Quattrocento Light device.
28
- """
29
-
30
- _init_ = "value __doc__"
31
-
32
- ONE = auto(), "1 Hz"
33
- TWO = auto(), "2 Hz"
34
- FOUR = auto(), "4 Hz"
35
- EIGHT = auto(), "8 Hz"
36
- SIXTEEN = auto(), "16 Hz"
37
- THIRTYTWO = auto(), "32 Hz"
38
-
39
-
40
- QUATTROCENTO_SAMPLING_FREQUENCY_DICT: dict[QuattrocentoLightSamplingFrequency, int] = {
41
- QuattrocentoLightSamplingFrequency.LOW: 512,
42
- QuattrocentoLightSamplingFrequency.MEDIUM: 2048,
43
- QuattrocentoLightSamplingFrequency.HIGH: 5120,
44
- QuattrocentoLightSamplingFrequency.ULTRA: 10240,
45
- }
46
- """
47
- Dictionary to get sampling frequency for each mode.
48
- """
49
-
50
- QUATTROCENTO_LIGHT_STREAMING_FREQUENCY_DICT: dict[
51
- QuattrocentoLightStreamingFrequency, int
52
- ] = {
53
- QuattrocentoLightStreamingFrequency.ONE: 1,
54
- QuattrocentoLightStreamingFrequency.TWO: 2,
55
- QuattrocentoLightStreamingFrequency.FOUR: 4,
56
- QuattrocentoLightStreamingFrequency.EIGHT: 8,
57
- QuattrocentoLightStreamingFrequency.SIXTEEN: 16,
58
- QuattrocentoLightStreamingFrequency.THIRTYTWO: 32,
59
- }
1
+ from aenum import Enum, auto
2
+
3
+
4
+ # Quattrocento Light constants
5
+ ############# COMMANDS #############
6
+ COMMAND_START_STREAMING = b"startTX"
7
+ COMMAND_STOP_STREAMING = b"stopTX"
8
+ CONNECTION_RESPONSE = b"OTBioLab"
9
+
10
+
11
+ ############# QUATTROCENTO LIGHT #############
12
+ class QuattrocentoLightSamplingFrequency(Enum):
13
+ """
14
+ Enum class for the sampling frequencies of the Quattrocento Light device.
15
+ """
16
+
17
+ _init_ = "value __doc__"
18
+
19
+ LOW = auto(), "512 Hz"
20
+ MEDIUM = auto(), "2048 Hz"
21
+ HIGH = auto(), "5120 Hz"
22
+ ULTRA = auto(), "10240 Hz"
23
+
24
+
25
+ class QuattrocentoLightStreamingFrequency(Enum):
26
+ """
27
+ Enum class for the streaming frequencies of the Quattrocento Light device.
28
+ """
29
+
30
+ _init_ = "value __doc__"
31
+
32
+ ONE = auto(), "1 Hz"
33
+ TWO = auto(), "2 Hz"
34
+ FOUR = auto(), "4 Hz"
35
+ EIGHT = auto(), "8 Hz"
36
+ SIXTEEN = auto(), "16 Hz"
37
+ THIRTYTWO = auto(), "32 Hz"
38
+
39
+
40
+ QUATTROCENTO_SAMPLING_FREQUENCY_DICT: dict[QuattrocentoLightSamplingFrequency, int] = {
41
+ QuattrocentoLightSamplingFrequency.LOW: 512,
42
+ QuattrocentoLightSamplingFrequency.MEDIUM: 2048,
43
+ QuattrocentoLightSamplingFrequency.HIGH: 5120,
44
+ QuattrocentoLightSamplingFrequency.ULTRA: 10240,
45
+ }
46
+ """
47
+ Dictionary to get sampling frequency for each mode.
48
+ """
49
+
50
+ QUATTROCENTO_LIGHT_STREAMING_FREQUENCY_DICT: dict[
51
+ QuattrocentoLightStreamingFrequency, int
52
+ ] = {
53
+ QuattrocentoLightStreamingFrequency.ONE: 1,
54
+ QuattrocentoLightStreamingFrequency.TWO: 2,
55
+ QuattrocentoLightStreamingFrequency.FOUR: 4,
56
+ QuattrocentoLightStreamingFrequency.EIGHT: 8,
57
+ QuattrocentoLightStreamingFrequency.SIXTEEN: 16,
58
+ QuattrocentoLightStreamingFrequency.THIRTYTWO: 32,
59
+ }
@@ -1,233 +1,233 @@
1
- """
2
- Device class for real-time interfacing the OTB Syncstation device.
3
- Developer: Dominik I. Braun
4
- Contact: dome.braun@fau.de
5
- Last Update: 2025-01-09
6
- """
7
-
8
- from typing import Dict, Union
9
- from aenum import Enum, auto
10
- from biosignal_device_interface.constants.devices.core.base_device_constants import (
11
- DeviceType,
12
- DeviceChannelTypes,
13
- )
14
- from biosignal_device_interface.constants.devices.otb.otb_muovi_constants import (
15
- MUOVI_AVAILABLE_CHANNELS_DICT,
16
- )
17
-
18
-
19
- class SyncStationRecOnMode(Enum):
20
- """
21
- Enum class for the recording on mode of the SyncStation device.
22
- """
23
-
24
- _init_ = "value __doc__"
25
-
26
- OFF = auto(), (
27
- "The PC is not recording the received signals from SyncStation."
28
- "If the Timestapms.log is closed if it was previously opened."
29
- )
30
- ON = auto(), (
31
- "The PC is recording the signals received by the SyncStation."
32
- "When triggered, this bit reset the internal timer for the"
33
- "ramp counter sent on the Accessory Ch2 and start the log of"
34
- "the timestamps on the internal timestamps.log file"
35
- )
36
-
37
-
38
- class SyncStationWorkingMode(Enum):
39
- """
40
- Enum class for the sampling frequency mode of the SyncStation device.
41
- """
42
-
43
- _init_ = "value __doc__"
44
-
45
- NONE = 0, "No working mode set."
46
- EEG = auto(), "EEG Mode Fsamp 500 Hz, DC coupled, 24 bit resolution."
47
- EMG = (
48
- auto(),
49
- "EMG Mode Fsamp 2000 Hz, high pass filter at 10 Hz*, 16 bit resolution",
50
- )
51
-
52
-
53
- class SyncStationDetectionMode(Enum):
54
- """
55
- Enum class for the detection mode of the SyncStation device.
56
- """
57
-
58
- _init_ = "value __doc__"
59
-
60
- NONE = 0, "No detection mode set."
61
- MONOPOLAR_GAIN_HIGH = auto(), (
62
- "Monopolar Mode. High gain. 32 monopolar bioelectrical signals + 6 accessory signals. "
63
- "Resolution is 286.1 nV and range +/-9.375 mV."
64
- )
65
- MONOPOLAR_GAIN_LOW = auto(), (
66
- "Monopolar Mode. Low gain. 32 monopolar bioelectrical signals + 6 accessory signals. "
67
- "Resolution is 572.2nV and range +/-18.75 mV."
68
- )
69
- IMPEDANCE_CHECK = auto(), "Impedance Check on all 32 + 6 channels."
70
- TEST = auto(), "Ramps on all 32 + 6 channels."
71
-
72
-
73
- class SyncStationProbeConfigMode(Enum):
74
- """
75
- Enum class for the probe configuration mode of the SyncStation device.
76
- """
77
-
78
- _init_ = "value __doc__"
79
-
80
- NONE = 0, "No probe configuration mode set."
81
- MUOVI_PROBE_ONE = auto(), "Probe configuration mode for Muovi probe one."
82
- MUOVI_PROBE_TWO = auto(), "Probe configuration mode for Muovi probe two."
83
- MUOVI_PROBE_THREE = auto(), "Probe configuration mode for Muovi probe three."
84
- MUOVI_PROBE_FOUR = auto(), "Probe configuration mode for Muovi probe four."
85
- MUOVI_PLUS_PROBE_ONE = auto(), "Probe configuration mode for Muovi Plus probe one."
86
- MUOVI_PLUS_PROBE_TWO = auto(), "Probe configuration mode for Muovi Plus probe two."
87
- DUE_PLUS_PROBE_ONE = (
88
- auto(),
89
- "Probe configuration mode for Due Plus probe one.",
90
- )
91
- DUE_PLUS_PROBE_TWO = (
92
- auto(),
93
- "Probe configuration mode for Due Plus probe two.",
94
- )
95
- DUE_PLUS_PROBE_THREE = (
96
- auto(),
97
- "Probe configuration mode for Due Plus probe three.",
98
- )
99
- DUE_PLUS_PROBE_FOUR = (
100
- auto(),
101
- "Probe configuration mode for Due Plus probe four.",
102
- )
103
- DUE_PLUS_PROBE_FIVE = (
104
- auto(),
105
- "Probe configuration mode for Due Plus probe five.",
106
- )
107
- DUE_PLUS_PROBE_SIX = (
108
- auto(),
109
- "Probe configuration mode for Due Plus probe six.",
110
- )
111
- DUE_PLUS_PROBE_SEVEN = (
112
- auto(),
113
- "Probe configuration mode for Due Plus probe seven.",
114
- )
115
- DUE_PLUS_PROBE_EIGHT = (
116
- auto(),
117
- "Probe configuration mode for Due Plus probe eight.",
118
- )
119
- DUE_PLUS_PROBE_NINE = (
120
- auto(),
121
- "Probe configuration mode for Due Plus probe nine.",
122
- )
123
- DUE_PLUS_PROBE_TEN = (
124
- auto(),
125
- "Probe configuration mode for Due Plus probe ten.",
126
- )
127
-
128
-
129
- # DICTS
130
-
131
- SYNCSTATION_CHARACTERISTICS_DICT: Dict[str, int] = {
132
- DeviceChannelTypes.ALL: 6,
133
- "bytes_per_sample": 2,
134
- "channel_information": {
135
- SyncStationWorkingMode.EEG: {
136
- "sampling_frequency": 500,
137
- "bytes_per_sample": 3,
138
- "frame_size": 5,
139
- },
140
- SyncStationWorkingMode.EMG: {
141
- "sampling_frequency": 2000,
142
- "bytes_per_sample": 2,
143
- "frame_size": 10,
144
- },
145
- },
146
- "number_of_packages": 32,
147
- "package_size": 1460,
148
- "FPS": 50,
149
- }
150
-
151
- # TODO: Load information from Device Constants directly!
152
- PROBE_CHARACTERISTICS_DICT: Dict[
153
- SyncStationProbeConfigMode, Dict[str, Union[str, int]]
154
- ] = {
155
- SyncStationProbeConfigMode.MUOVI_PROBE_ONE: MUOVI_AVAILABLE_CHANNELS_DICT[
156
- DeviceType.OTB_MUOVI
157
- ],
158
- SyncStationProbeConfigMode.MUOVI_PROBE_TWO: MUOVI_AVAILABLE_CHANNELS_DICT[
159
- DeviceType.OTB_MUOVI
160
- ],
161
- SyncStationProbeConfigMode.MUOVI_PROBE_THREE: MUOVI_AVAILABLE_CHANNELS_DICT[
162
- DeviceType.OTB_MUOVI
163
- ],
164
- SyncStationProbeConfigMode.MUOVI_PROBE_FOUR: MUOVI_AVAILABLE_CHANNELS_DICT[
165
- DeviceType.OTB_MUOVI
166
- ],
167
- SyncStationProbeConfigMode.MUOVI_PLUS_PROBE_ONE: MUOVI_AVAILABLE_CHANNELS_DICT[
168
- DeviceType.OTB_MUOVI_PLUS
169
- ],
170
- SyncStationProbeConfigMode.MUOVI_PLUS_PROBE_TWO: MUOVI_AVAILABLE_CHANNELS_DICT[
171
- DeviceType.OTB_MUOVI_PLUS
172
- ],
173
- SyncStationProbeConfigMode.DUE_PLUS_PROBE_ONE: {
174
- DeviceChannelTypes.ALL: 8,
175
- DeviceChannelTypes.BIOSIGNAL: 2,
176
- DeviceChannelTypes.AUXILIARY: 6,
177
- },
178
- SyncStationProbeConfigMode.DUE_PLUS_PROBE_TWO: {
179
- DeviceChannelTypes.ALL: 8,
180
- DeviceChannelTypes.BIOSIGNAL: 2,
181
- DeviceChannelTypes.AUXILIARY: 6,
182
- },
183
- SyncStationProbeConfigMode.DUE_PLUS_PROBE_THREE: {
184
- DeviceChannelTypes.ALL: 8,
185
- DeviceChannelTypes.BIOSIGNAL: 2,
186
- DeviceChannelTypes.AUXILIARY: 6,
187
- },
188
- SyncStationProbeConfigMode.DUE_PLUS_PROBE_FOUR: {
189
- DeviceChannelTypes.ALL: 8,
190
- DeviceChannelTypes.BIOSIGNAL: 2,
191
- DeviceChannelTypes.AUXILIARY: 6,
192
- },
193
- SyncStationProbeConfigMode.DUE_PLUS_PROBE_FIVE: {
194
- DeviceChannelTypes.ALL: 8,
195
- DeviceChannelTypes.BIOSIGNAL: 2,
196
- DeviceChannelTypes.AUXILIARY: 6,
197
- },
198
- SyncStationProbeConfigMode.DUE_PLUS_PROBE_SIX: {
199
- DeviceChannelTypes.ALL: 8,
200
- DeviceChannelTypes.BIOSIGNAL: 2,
201
- DeviceChannelTypes.AUXILIARY: 6,
202
- },
203
- SyncStationProbeConfigMode.DUE_PLUS_PROBE_SEVEN: {
204
- DeviceChannelTypes.ALL: 8,
205
- DeviceChannelTypes.BIOSIGNAL: 2,
206
- DeviceChannelTypes.AUXILIARY: 6,
207
- },
208
- SyncStationProbeConfigMode.DUE_PLUS_PROBE_EIGHT: {
209
- DeviceChannelTypes.ALL: 8,
210
- DeviceChannelTypes.BIOSIGNAL: 2,
211
- DeviceChannelTypes.AUXILIARY: 6,
212
- },
213
- SyncStationProbeConfigMode.DUE_PLUS_PROBE_NINE: {
214
- DeviceChannelTypes.ALL: 8,
215
- DeviceChannelTypes.BIOSIGNAL: 2,
216
- DeviceChannelTypes.AUXILIARY: 6,
217
- },
218
- SyncStationProbeConfigMode.DUE_PLUS_PROBE_TEN: {
219
- DeviceChannelTypes.ALL: 8,
220
- DeviceChannelTypes.BIOSIGNAL: 2,
221
- DeviceChannelTypes.AUXILIARY: 6,
222
- },
223
- }
224
-
225
- SYNCSTATION_CONVERSION_FACTOR_DICT: dict[SyncStationDetectionMode, int] = {
226
- SyncStationDetectionMode.MONOPOLAR_GAIN_HIGH: 572.2e-6,
227
- SyncStationDetectionMode.MONOPOLAR_GAIN_LOW: 286.1e-6,
228
- }
229
- """
230
- Dictionary to get the gain of the Muovi detection mode. \\
231
- The keys are the detection modes of the Muovi device. \\
232
- The values are the gain of the detection mode in V.
233
- """
1
+ """
2
+ Device class for real-time interfacing the OTB Syncstation device.
3
+ Developer: Dominik I. Braun
4
+ Contact: dome.braun@fau.de
5
+ Last Update: 2025-01-09
6
+ """
7
+
8
+ from typing import Dict, Union
9
+ from aenum import Enum, auto
10
+ from biosignal_device_interface.constants.devices.core.base_device_constants import (
11
+ DeviceType,
12
+ DeviceChannelTypes,
13
+ )
14
+ from biosignal_device_interface.constants.devices.otb.otb_muovi_constants import (
15
+ MUOVI_AVAILABLE_CHANNELS_DICT,
16
+ )
17
+
18
+
19
+ class SyncStationRecOnMode(Enum):
20
+ """
21
+ Enum class for the recording on mode of the SyncStation device.
22
+ """
23
+
24
+ _init_ = "value __doc__"
25
+
26
+ OFF = auto(), (
27
+ "The PC is not recording the received signals from SyncStation."
28
+ "If the Timestapms.log is closed if it was previously opened."
29
+ )
30
+ ON = auto(), (
31
+ "The PC is recording the signals received by the SyncStation."
32
+ "When triggered, this bit reset the internal timer for the"
33
+ "ramp counter sent on the Accessory Ch2 and start the log of"
34
+ "the timestamps on the internal timestamps.log file"
35
+ )
36
+
37
+
38
+ class SyncStationWorkingMode(Enum):
39
+ """
40
+ Enum class for the sampling frequency mode of the SyncStation device.
41
+ """
42
+
43
+ _init_ = "value __doc__"
44
+
45
+ NONE = 0, "No working mode set."
46
+ EEG = auto(), "EEG Mode Fsamp 500 Hz, DC coupled, 24 bit resolution."
47
+ EMG = (
48
+ auto(),
49
+ "EMG Mode Fsamp 2000 Hz, high pass filter at 10 Hz*, 16 bit resolution",
50
+ )
51
+
52
+
53
+ class SyncStationDetectionMode(Enum):
54
+ """
55
+ Enum class for the detection mode of the SyncStation device.
56
+ """
57
+
58
+ _init_ = "value __doc__"
59
+
60
+ NONE = 0, "No detection mode set."
61
+ MONOPOLAR_GAIN_HIGH = auto(), (
62
+ "Monopolar Mode. High gain. 32 monopolar bioelectrical signals + 6 accessory signals. "
63
+ "Resolution is 286.1 nV and range +/-9.375 mV."
64
+ )
65
+ MONOPOLAR_GAIN_LOW = auto(), (
66
+ "Monopolar Mode. Low gain. 32 monopolar bioelectrical signals + 6 accessory signals. "
67
+ "Resolution is 572.2nV and range +/-18.75 mV."
68
+ )
69
+ IMPEDANCE_CHECK = auto(), "Impedance Check on all 32 + 6 channels."
70
+ TEST = auto(), "Ramps on all 32 + 6 channels."
71
+
72
+
73
+ class SyncStationProbeConfigMode(Enum):
74
+ """
75
+ Enum class for the probe configuration mode of the SyncStation device.
76
+ """
77
+
78
+ _init_ = "value __doc__"
79
+
80
+ NONE = 0, "No probe configuration mode set."
81
+ MUOVI_PROBE_ONE = auto(), "Probe configuration mode for Muovi probe one."
82
+ MUOVI_PROBE_TWO = auto(), "Probe configuration mode for Muovi probe two."
83
+ MUOVI_PROBE_THREE = auto(), "Probe configuration mode for Muovi probe three."
84
+ MUOVI_PROBE_FOUR = auto(), "Probe configuration mode for Muovi probe four."
85
+ MUOVI_PLUS_PROBE_ONE = auto(), "Probe configuration mode for Muovi Plus probe one."
86
+ MUOVI_PLUS_PROBE_TWO = auto(), "Probe configuration mode for Muovi Plus probe two."
87
+ DUE_PLUS_PROBE_ONE = (
88
+ auto(),
89
+ "Probe configuration mode for Due Plus probe one.",
90
+ )
91
+ DUE_PLUS_PROBE_TWO = (
92
+ auto(),
93
+ "Probe configuration mode for Due Plus probe two.",
94
+ )
95
+ DUE_PLUS_PROBE_THREE = (
96
+ auto(),
97
+ "Probe configuration mode for Due Plus probe three.",
98
+ )
99
+ DUE_PLUS_PROBE_FOUR = (
100
+ auto(),
101
+ "Probe configuration mode for Due Plus probe four.",
102
+ )
103
+ DUE_PLUS_PROBE_FIVE = (
104
+ auto(),
105
+ "Probe configuration mode for Due Plus probe five.",
106
+ )
107
+ DUE_PLUS_PROBE_SIX = (
108
+ auto(),
109
+ "Probe configuration mode for Due Plus probe six.",
110
+ )
111
+ DUE_PLUS_PROBE_SEVEN = (
112
+ auto(),
113
+ "Probe configuration mode for Due Plus probe seven.",
114
+ )
115
+ DUE_PLUS_PROBE_EIGHT = (
116
+ auto(),
117
+ "Probe configuration mode for Due Plus probe eight.",
118
+ )
119
+ DUE_PLUS_PROBE_NINE = (
120
+ auto(),
121
+ "Probe configuration mode for Due Plus probe nine.",
122
+ )
123
+ DUE_PLUS_PROBE_TEN = (
124
+ auto(),
125
+ "Probe configuration mode for Due Plus probe ten.",
126
+ )
127
+
128
+
129
+ # DICTS
130
+
131
+ SYNCSTATION_CHARACTERISTICS_DICT: Dict[str, int] = {
132
+ DeviceChannelTypes.ALL: 6,
133
+ "bytes_per_sample": 2,
134
+ "channel_information": {
135
+ SyncStationWorkingMode.EEG: {
136
+ "sampling_frequency": 500,
137
+ "bytes_per_sample": 3,
138
+ "frame_size": 5,
139
+ },
140
+ SyncStationWorkingMode.EMG: {
141
+ "sampling_frequency": 2000,
142
+ "bytes_per_sample": 2,
143
+ "frame_size": 10,
144
+ },
145
+ },
146
+ "number_of_packages": 32,
147
+ "package_size": 1460,
148
+ "FPS": 50,
149
+ }
150
+
151
+ # TODO: Load information from Device Constants directly!
152
+ PROBE_CHARACTERISTICS_DICT: Dict[
153
+ SyncStationProbeConfigMode, Dict[str, Union[str, int]]
154
+ ] = {
155
+ SyncStationProbeConfigMode.MUOVI_PROBE_ONE: MUOVI_AVAILABLE_CHANNELS_DICT[
156
+ DeviceType.OTB_MUOVI
157
+ ],
158
+ SyncStationProbeConfigMode.MUOVI_PROBE_TWO: MUOVI_AVAILABLE_CHANNELS_DICT[
159
+ DeviceType.OTB_MUOVI
160
+ ],
161
+ SyncStationProbeConfigMode.MUOVI_PROBE_THREE: MUOVI_AVAILABLE_CHANNELS_DICT[
162
+ DeviceType.OTB_MUOVI
163
+ ],
164
+ SyncStationProbeConfigMode.MUOVI_PROBE_FOUR: MUOVI_AVAILABLE_CHANNELS_DICT[
165
+ DeviceType.OTB_MUOVI
166
+ ],
167
+ SyncStationProbeConfigMode.MUOVI_PLUS_PROBE_ONE: MUOVI_AVAILABLE_CHANNELS_DICT[
168
+ DeviceType.OTB_MUOVI_PLUS
169
+ ],
170
+ SyncStationProbeConfigMode.MUOVI_PLUS_PROBE_TWO: MUOVI_AVAILABLE_CHANNELS_DICT[
171
+ DeviceType.OTB_MUOVI_PLUS
172
+ ],
173
+ SyncStationProbeConfigMode.DUE_PLUS_PROBE_ONE: {
174
+ DeviceChannelTypes.ALL: 8,
175
+ DeviceChannelTypes.BIOSIGNAL: 2,
176
+ DeviceChannelTypes.AUXILIARY: 6,
177
+ },
178
+ SyncStationProbeConfigMode.DUE_PLUS_PROBE_TWO: {
179
+ DeviceChannelTypes.ALL: 8,
180
+ DeviceChannelTypes.BIOSIGNAL: 2,
181
+ DeviceChannelTypes.AUXILIARY: 6,
182
+ },
183
+ SyncStationProbeConfigMode.DUE_PLUS_PROBE_THREE: {
184
+ DeviceChannelTypes.ALL: 8,
185
+ DeviceChannelTypes.BIOSIGNAL: 2,
186
+ DeviceChannelTypes.AUXILIARY: 6,
187
+ },
188
+ SyncStationProbeConfigMode.DUE_PLUS_PROBE_FOUR: {
189
+ DeviceChannelTypes.ALL: 8,
190
+ DeviceChannelTypes.BIOSIGNAL: 2,
191
+ DeviceChannelTypes.AUXILIARY: 6,
192
+ },
193
+ SyncStationProbeConfigMode.DUE_PLUS_PROBE_FIVE: {
194
+ DeviceChannelTypes.ALL: 8,
195
+ DeviceChannelTypes.BIOSIGNAL: 2,
196
+ DeviceChannelTypes.AUXILIARY: 6,
197
+ },
198
+ SyncStationProbeConfigMode.DUE_PLUS_PROBE_SIX: {
199
+ DeviceChannelTypes.ALL: 8,
200
+ DeviceChannelTypes.BIOSIGNAL: 2,
201
+ DeviceChannelTypes.AUXILIARY: 6,
202
+ },
203
+ SyncStationProbeConfigMode.DUE_PLUS_PROBE_SEVEN: {
204
+ DeviceChannelTypes.ALL: 8,
205
+ DeviceChannelTypes.BIOSIGNAL: 2,
206
+ DeviceChannelTypes.AUXILIARY: 6,
207
+ },
208
+ SyncStationProbeConfigMode.DUE_PLUS_PROBE_EIGHT: {
209
+ DeviceChannelTypes.ALL: 8,
210
+ DeviceChannelTypes.BIOSIGNAL: 2,
211
+ DeviceChannelTypes.AUXILIARY: 6,
212
+ },
213
+ SyncStationProbeConfigMode.DUE_PLUS_PROBE_NINE: {
214
+ DeviceChannelTypes.ALL: 8,
215
+ DeviceChannelTypes.BIOSIGNAL: 2,
216
+ DeviceChannelTypes.AUXILIARY: 6,
217
+ },
218
+ SyncStationProbeConfigMode.DUE_PLUS_PROBE_TEN: {
219
+ DeviceChannelTypes.ALL: 8,
220
+ DeviceChannelTypes.BIOSIGNAL: 2,
221
+ DeviceChannelTypes.AUXILIARY: 6,
222
+ },
223
+ }
224
+
225
+ SYNCSTATION_CONVERSION_FACTOR_DICT: dict[SyncStationDetectionMode, int] = {
226
+ SyncStationDetectionMode.MONOPOLAR_GAIN_HIGH: 572.2e-6,
227
+ SyncStationDetectionMode.MONOPOLAR_GAIN_LOW: 286.1e-6,
228
+ }
229
+ """
230
+ Dictionary to get the gain of the Muovi detection mode. \\
231
+ The keys are the detection modes of the Muovi device. \\
232
+ The values are the gain of the detection mode in V.
233
+ """