biosignal-device-interface 0.1.1a0__tar.gz → 0.1.2__tar.gz

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 (40) hide show
  1. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/PKG-INFO +3 -15
  2. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/README.md +2 -13
  3. {biosignal_device_interface-0.1.1a0/biosignal_device_interface → biosignal_device_interface-0.1.2/biosignal_device_interface/constants/devices}/__init__.py +0 -1
  4. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/constants/devices/otb/otb_muovi_constants.py +3 -3
  5. biosignal_device_interface-0.1.2/biosignal_device_interface/devices/__init__.py +15 -0
  6. biosignal_device_interface-0.1.2/biosignal_device_interface/devices/core/__init__.py +0 -0
  7. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/devices/core/base_device.py +3 -6
  8. biosignal_device_interface-0.1.2/biosignal_device_interface/devices/otb/__init__.py +21 -0
  9. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/devices/otb/otb_muovi.py +5 -5
  10. biosignal_device_interface-0.1.1a0/biosignal_device_interface/devices/otb/otb_quattrocento.py → biosignal_device_interface-0.1.2/biosignal_device_interface/devices/otb/otb_quattrocento_light.py +19 -41
  11. biosignal_device_interface-0.1.2/biosignal_device_interface/gui/device_template_widgets/__init__.py +0 -0
  12. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/device_template_widgets/all_devices_widget.py +11 -7
  13. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/device_template_widgets/core/base_multiple_devices_widget.py +7 -4
  14. biosignal_device_interface-0.1.2/biosignal_device_interface/gui/device_template_widgets/otb/__init__.py +0 -0
  15. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/device_template_widgets/otb/otb_devices_widget.py +12 -8
  16. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_plus_widget.py +3 -3
  17. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_widget.py +3 -3
  18. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_light_widget.py +3 -3
  19. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/plot_widgets/biosignal_plot_widget.py +2 -2
  20. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/pyproject.toml +5 -3
  21. biosignal_device_interface-0.1.1a0/biosignal_device_interface/devices/__init__.py +0 -9
  22. biosignal_device_interface-0.1.1a0/biosignal_device_interface/devices/otb/__init__.py +0 -9
  23. biosignal_device_interface-0.1.1a0/biosignal_device_interface/gui/device_template_widgets/__init__.py +0 -6
  24. biosignal_device_interface-0.1.1a0/biosignal_device_interface/gui/device_template_widgets/otb/__init__.py +0 -10
  25. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/LICENSE +0 -0
  26. {biosignal_device_interface-0.1.1a0/biosignal_device_interface/constants → biosignal_device_interface-0.1.2/biosignal_device_interface}/__init__.py +0 -0
  27. {biosignal_device_interface-0.1.1a0/biosignal_device_interface/constants/devices → biosignal_device_interface-0.1.2/biosignal_device_interface/constants}/__init__.py +0 -0
  28. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/constants/devices/core/base_device_constants.py +0 -0
  29. /biosignal_device_interface-0.1.1a0/biosignal_device_interface/devices/core/__init__.py → /biosignal_device_interface-0.1.2/biosignal_device_interface/constants/devices/otb/otb_constants.py +0 -0
  30. /biosignal_device_interface-0.1.1a0/biosignal_device_interface/constants/devices/otb/otb_quattrocento_constants.py → /biosignal_device_interface-0.1.2/biosignal_device_interface/constants/devices/otb/otb_quattrocento_light_constants.py +0 -0
  31. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/constants/plots/color_palette.py +0 -0
  32. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/device_template_widgets/core/base_device_widget.py +0 -0
  33. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/ui/devices_template_widget.ui +0 -0
  34. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/ui/otb_muovi_plus_template_widget.ui +0 -0
  35. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/ui/otb_muovi_template_widget.ui +0 -0
  36. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/ui/otb_quattrocento_light_template_widget.ui +0 -0
  37. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/ui_compiled/devices_template_widget.py +0 -0
  38. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/ui_compiled/otb_muovi_plus_template_widget.py +0 -0
  39. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/ui_compiled/otb_muovi_template_widget.py +0 -0
  40. {biosignal_device_interface-0.1.1a0 → biosignal_device_interface-0.1.2}/biosignal_device_interface/gui/ui_compiled/otb_quattrocento_light_template_widget.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: biosignal-device-interface
3
- Version: 0.1.1a0
3
+ Version: 0.1.2
4
4
  Summary: Python communication interface to many biosignal devices manufactured by several companies to easy integration in custom PySide6 applications.
5
5
  License: CC BY-SA 4.0
6
6
  Author: Dominik I. Braun
@@ -12,7 +12,6 @@ Classifier: Programming Language :: Python :: 3.10
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Requires-Dist: aenum (>=3.1.15,<4.0.0)
14
14
  Requires-Dist: matplotlib (>=3.9.0,<4.0.0)
15
- Requires-Dist: mindrove (>=0.0.10,<0.0.11)
16
15
  Requires-Dist: numpy (>=1.26.4,<2.0.0)
17
16
  Requires-Dist: psutil (>=5.9.8,<6.0.0)
18
17
  Requires-Dist: pyside6 (>=6.7.0,<7.0.0)
@@ -34,7 +33,7 @@ Description-Content-Type: text/markdown
34
33
  <p align="center">
35
34
  Python communication interface to many biosignal devices manufactured by several companies to easy integration in custom PySide6 applications.
36
35
  <br />
37
- <a href="https://github.com/NsquaredLab/Biosignal-Device-Interface/-/wikis/home"><strong>Explore the docs »</strong></a>
36
+ <a href="https://nsquaredlab.github.io/Biosignal-Device-Interface/"><strong>Explore the docs »</strong></a>
38
37
  </p>
39
38
  </div>
40
39
 
@@ -46,9 +45,6 @@ Description-Content-Type: text/markdown
46
45
  <ol>
47
46
  <li>
48
47
  <a href="#about-the-project">About The Project</a>
49
- <ul>
50
- <li><a href="#built-with">Built With</a></li>
51
- </ul>
52
48
  </li>
53
49
  <li><a href="#contact">Contact</a></li>
54
50
  <li>
@@ -69,14 +65,6 @@ Description-Content-Type: text/markdown
69
65
 
70
66
  Give a brief introduction into the project.
71
67
 
72
-
73
-
74
- ### Built With
75
-
76
- * Python 3.10 / 3.11
77
- * PySide6 - Version ^6.7.0
78
- * Vispy - Version ^0.14.0
79
-
80
68
  <!-- CONTACT -->
81
69
  ### Contact
82
70
 
@@ -120,7 +108,7 @@ pip install git+https://github.com/NsquaredLab/Biosignal-Device-Interface.git
120
108
  <!-- USAGE EXAMPLES -->
121
109
  ## Usage
122
110
 
123
- Examples of how you can use this package can be found in our [examples gallery](https://github.com/NsquaredLab/Biosignal-Device-Interface).
111
+ Examples of how you can use this package can be found in our [examples gallery](https://nsquaredlab.github.io/Biosignal-Device-Interface/auto_examples/index.html).
124
112
 
125
113
 
126
114
  <!-- LICENSE -->
@@ -12,7 +12,7 @@
12
12
  <p align="center">
13
13
  Python communication interface to many biosignal devices manufactured by several companies to easy integration in custom PySide6 applications.
14
14
  <br />
15
- <a href="https://github.com/NsquaredLab/Biosignal-Device-Interface/-/wikis/home"><strong>Explore the docs »</strong></a>
15
+ <a href="https://nsquaredlab.github.io/Biosignal-Device-Interface/"><strong>Explore the docs »</strong></a>
16
16
  </p>
17
17
  </div>
18
18
 
@@ -24,9 +24,6 @@
24
24
  <ol>
25
25
  <li>
26
26
  <a href="#about-the-project">About The Project</a>
27
- <ul>
28
- <li><a href="#built-with">Built With</a></li>
29
- </ul>
30
27
  </li>
31
28
  <li><a href="#contact">Contact</a></li>
32
29
  <li>
@@ -47,14 +44,6 @@
47
44
 
48
45
  Give a brief introduction into the project.
49
46
 
50
-
51
-
52
- ### Built With
53
-
54
- * Python 3.10 / 3.11
55
- * PySide6 - Version ^6.7.0
56
- * Vispy - Version ^0.14.0
57
-
58
47
  <!-- CONTACT -->
59
48
  ### Contact
60
49
 
@@ -98,7 +87,7 @@ pip install git+https://github.com/NsquaredLab/Biosignal-Device-Interface.git
98
87
  <!-- USAGE EXAMPLES -->
99
88
  ## Usage
100
89
 
101
- Examples of how you can use this package can be found in our [examples gallery](https://github.com/NsquaredLab/Biosignal-Device-Interface).
90
+ Examples of how you can use this package can be found in our [examples gallery](https://nsquaredlab.github.io/Biosignal-Device-Interface/auto_examples/index.html).
102
91
 
103
92
 
104
93
  <!-- LICENSE -->
@@ -1,4 +1,3 @@
1
- from biosignal_device_interface.devices import otb
2
1
  from biosignal_device_interface.constants.devices.core.base_device_constants import (
3
2
  DeviceType,
4
3
  )
@@ -99,7 +99,7 @@ The values are dictionaries with the following keys:
99
99
 
100
100
  MUOVI_AVAILABLE_CHANNELS_DICT: dict[DeviceType, dict[DeviceChannelTypes, int]] = {
101
101
  DeviceType.OTB_MUOVI: {
102
- DeviceChannelTypes.ALL: 70,
102
+ DeviceChannelTypes.ALL: 38,
103
103
  DeviceChannelTypes.BIOSIGNAL: 32,
104
104
  DeviceChannelTypes.AUXILIARY: 6,
105
105
  },
@@ -115,8 +115,8 @@ MUOVI_AVAILABLE_CHANNELS_DICT: dict[DeviceType, dict[DeviceChannelTypes, int]] =
115
115
  """
116
116
 
117
117
  MUOVI_CONVERSION_FACTOR_DICT: dict[MuoviDetectionMode, int] = {
118
- MuoviDetectionMode.MONOPOLAR_GAIN_8: 572.2e-9,
119
- MuoviDetectionMode.MONOPOLAR_GAIN_4: 286.1e-9,
118
+ MuoviDetectionMode.MONOPOLAR_GAIN_8: 572.2e-6,
119
+ MuoviDetectionMode.MONOPOLAR_GAIN_4: 286.1e-6,
120
120
  }
121
121
  """
122
122
  Dictionary to get the gain of the Muovi detection mode. \\
@@ -0,0 +1,15 @@
1
+ # Import Devices to be used from biosignal_device_interface.devices
2
+ # import Muovi, MindRoveBracelet, Quattrocento, QuattrocentoLight, ...
3
+
4
+ from biosignal_device_interface.devices.otb import (
5
+ OTBMuoviWidget,
6
+ OTBMuoviPlusWidget,
7
+ OTBQuattrocentoLightWidget,
8
+ OTBMuovi,
9
+ OTBQuattrocentoLight,
10
+ OTBDevicesWidget,
11
+ )
12
+
13
+ from biosignal_device_interface.gui.device_template_widgets.all_devices_widget import (
14
+ AllDevicesWidget,
15
+ )
@@ -247,13 +247,10 @@ class BaseDevice(QObject):
247
247
  np.ndarray:
248
248
  Extracted biosignal channels.
249
249
  """
250
-
250
+ biosignal_data = data[self._biosignal_channel_indices]
251
251
  if milli_volts:
252
- return (
253
- data[self._biosignal_channel_indices]
254
- * self._conversion_factor_biosignal
255
- )
256
- return data[self._biosignal_channel_indices]
252
+ return biosignal_data * self._conversion_factor_biosignal
253
+ return biosignal_data
257
254
 
258
255
  def _extract_auxiliary_data(
259
256
  self, data: np.ndarray, milli_volts: bool = True
@@ -0,0 +1,21 @@
1
+ from biosignal_device_interface.devices.otb.otb_quattrocento_light import (
2
+ OTBQuattrocentoLight,
3
+ )
4
+ from biosignal_device_interface.devices.otb.otb_muovi import OTBMuovi
5
+
6
+ # Widgets
7
+ # All OTB Devices Widget
8
+ from biosignal_device_interface.gui.device_template_widgets.otb.otb_devices_widget import (
9
+ OTBDevicesWidget,
10
+ )
11
+
12
+ # Individual OTB Device Widgets
13
+ from biosignal_device_interface.gui.device_template_widgets.otb.otb_muovi_widget import (
14
+ OTBMuoviWidget,
15
+ )
16
+ from biosignal_device_interface.gui.device_template_widgets.otb.otb_muovi_plus_widget import (
17
+ OTBMuoviPlusWidget,
18
+ )
19
+ from biosignal_device_interface.gui.device_template_widgets.otb.otb_quattrocento_light_widget import (
20
+ OTBQuattrocentoLightWidget,
21
+ )
@@ -126,9 +126,9 @@ class OTBMuovi(BaseDevice):
126
126
  return True
127
127
 
128
128
  def configure_device(
129
- self, settings: Dict[str, Union[Enum, Dict[str, Enum]]] # type: ignore
129
+ self, params: Dict[str, Union[Enum, Dict[str, Enum]]] # type: ignore
130
130
  ) -> None:
131
- super().configure_device(settings)
131
+ super().configure_device(params)
132
132
 
133
133
  if not self._is_connected or self._client_socket is None:
134
134
  return
@@ -233,10 +233,10 @@ class OTBMuovi(BaseDevice):
233
233
  self._process_data(data_to_process)
234
234
  self._received_bytes = self._received_bytes[self._buffer_size :]
235
235
 
236
- def _process_data(self, data: bytearray) -> None:
237
- super()._process_data(data)
236
+ def _process_data(self, input: bytearray) -> None:
237
+ super()._process_data(input)
238
238
 
239
- decoded_data = self._bytes_to_integers(data)
239
+ decoded_data = self._bytes_to_integers(input)
240
240
 
241
241
  processed_data = decoded_data.reshape(
242
242
  self._number_of_channels, -1, order="F"
@@ -22,7 +22,7 @@ from biosignal_device_interface.devices.core.base_device import BaseDevice
22
22
  from biosignal_device_interface.constants.devices.core.base_device_constants import (
23
23
  DeviceType,
24
24
  )
25
- from biosignal_device_interface.constants.devices.otb.otb_quattrocento_constants import (
25
+ from biosignal_device_interface.constants.devices.otb.otb_quattrocento_light_constants import (
26
26
  COMMAND_START_STREAMING,
27
27
  COMMAND_STOP_STREAMING,
28
28
  CONNECTION_RESPONSE,
@@ -110,9 +110,9 @@ class OTBQuattrocentoLight(BaseDevice):
110
110
  self._interface.close()
111
111
 
112
112
  def configure_device(
113
- self, settings: Dict[str, Union[Enum, Dict[str, Enum]]] # type: ignore
113
+ self, params: Dict[str, Union[Enum, Dict[str, Enum]]] # type: ignore
114
114
  ) -> None:
115
- super().configure_device(settings)
115
+ super().configure_device(params)
116
116
 
117
117
  # Configure the device
118
118
  self._number_of_biosignal_channels = len(self._grids) * self._grid_size
@@ -167,14 +167,13 @@ class OTBQuattrocentoLight(BaseDevice):
167
167
  super()._read_data()
168
168
 
169
169
  # Wait for connection response
170
- if not self._is_connected:
171
- if self._interface.bytesAvailable() == len(CONNECTION_RESPONSE):
172
- if self._interface.readAll() == CONNECTION_RESPONSE:
173
-
174
- self._is_connected = True
175
- self.connect_toggled.emit(True)
176
- return
177
-
170
+ if not self._is_connected and (
171
+ self._interface.bytesAvailable() == len(CONNECTION_RESPONSE)
172
+ and self._interface.readAll() == CONNECTION_RESPONSE
173
+ ):
174
+ self._is_connected = True
175
+ self.connect_toggled.emit(True)
176
+ return
178
177
  if not self._is_streaming:
179
178
  self.clear_socket()
180
179
  return
@@ -191,11 +190,11 @@ class OTBQuattrocentoLight(BaseDevice):
191
190
  self._process_data(data_to_process)
192
191
  self._received_bytes = self._received_bytes[self._buffer_size :]
193
192
 
194
- def _process_data(self, data: bytearray) -> None:
195
- super()._process_data(data)
193
+ def _process_data(self, input: bytearray) -> None:
194
+ super()._process_data(input)
196
195
 
197
196
  # Decode the data
198
- decoded_data = np.frombuffer(data, dtype=np.int16)
197
+ decoded_data = np.frombuffer(input, dtype=np.int16)
199
198
 
200
199
  # Reshape it to the correct format
201
200
  processed_data = decoded_data.reshape(
@@ -204,32 +203,11 @@ class OTBQuattrocentoLight(BaseDevice):
204
203
 
205
204
  # Emit the data
206
205
  self.data_available.emit(processed_data)
207
- self.biosignal_data_available.emit(self._extract_biosignal_data(processed_data))
208
- self.auxiliary_data_available.emit(self._extract_auxiliary_data(processed_data))
209
-
210
- def get_device_information(self) -> Dict[str, Enum | int | float | str]:
211
- return super().get_device_information()
212
-
213
-
214
- class OTBQuattrocento(BaseDevice):
215
- """
216
- Quattrocento device class derived from BaseDevice class.
217
-
218
- The Quattrocento class is using a TCP/IP protocol to communicate with the device.
219
- """
220
-
221
- def __init__(
222
- self,
223
- parent: Union[QMainWindow, QWidget] = None,
224
- ) -> None:
225
- super().__init__(parent)
226
206
 
227
- # Device Parameters
228
- self._device_type: DeviceType = DeviceType.OTB_QUATTROCENTO
207
+ biosignal_data = self._extract_biosignal_data(processed_data)
208
+ self.biosignal_data_available.emit(biosignal_data)
209
+ auxiliary_data = self._extract_auxiliary_data(processed_data)
210
+ self.auxiliary_data_available.emit(auxiliary_data)
229
211
 
230
- # Device Information
231
- self._conversion_factor_biosignal: float = 5 / (2**16) / 150 * 1000
232
- self._conversion_factor_auxiliary: float = 5 / (2**16) / 0.5
233
-
234
- # Connection Parameters
235
- self._interface: QTcpSocket = QTcpSocket()
212
+ def get_device_information(self) -> Dict[str, Enum | int | float | str]: # type: ignore
213
+ return super().get_device_information()
@@ -14,10 +14,14 @@ from biosignal_device_interface.gui.device_template_widgets.core.base_multiple_d
14
14
  from biosignal_device_interface.constants.devices.core.base_device_constants import (
15
15
  DeviceType,
16
16
  )
17
- from biosignal_device_interface.gui.device_template_widgets import (
18
- MuoviPlusWidget,
19
- MuoviWidget,
20
- QuattrocentoLightWidget,
17
+ from biosignal_device_interface.gui.device_template_widgets.otb.otb_muovi_plus_widget import (
18
+ OTBMuoviPlusWidget,
19
+ )
20
+ from biosignal_device_interface.gui.device_template_widgets.otb.otb_muovi_widget import (
21
+ OTBMuoviWidget,
22
+ )
23
+ from biosignal_device_interface.gui.device_template_widgets.otb.otb_quattrocento_light_widget import (
24
+ OTBQuattrocentoLightWidget,
21
25
  )
22
26
 
23
27
  if TYPE_CHECKING:
@@ -32,8 +36,8 @@ class AllDevicesWidget(BaseMultipleDevicesWidget):
32
36
  super().__init__(parent)
33
37
 
34
38
  self._device_selection: Dict[DeviceType, BaseDeviceWidget] = {
35
- DeviceType.OTB_QUATTROCENTO_LIGHT: QuattrocentoLightWidget(self),
36
- DeviceType.OTB_MUOVI: MuoviWidget(self),
37
- DeviceType.OTB_MUOVI_PLUS: MuoviPlusWidget(self),
39
+ DeviceType.OTB_QUATTROCENTO_LIGHT: OTBQuattrocentoLightWidget(self),
40
+ DeviceType.OTB_MUOVI: OTBMuoviWidget(self),
41
+ DeviceType.OTB_MUOVI_PLUS: OTBMuoviPlusWidget(self),
38
42
  }
39
43
  self._set_devices(self._device_selection)
@@ -49,9 +49,6 @@ class BaseMultipleDevicesWidget(QWidget):
49
49
 
50
50
  self.device_stacked_widget = self.ui.deviceStackedWidget
51
51
  self.device_selection_combo_box = self.ui.deviceSelectionComboBox
52
- self.device_selection_combo_box.currentIndexChanged.connect(
53
- self._update_stacked_widget
54
- )
55
52
 
56
53
  def get_device_information(self) -> Dict[str, Union[str, int]]:
57
54
  return self._get_current_widget().get_device_information()
@@ -76,13 +73,16 @@ class BaseMultipleDevicesWidget(QWidget):
76
73
  current_widget.stream_toggled.disconnect(self.stream_toggled)
77
74
 
78
75
  except (TypeError, RuntimeError):
79
- pass
76
+ ...
80
77
 
81
78
  self.device_stacked_widget.setCurrentIndex(index)
82
79
  current_widget = self._get_current_widget()
83
80
 
81
+ # Data arrived
84
82
  current_widget.data_arrived.connect(self.data_arrived.emit)
83
+ # Biosignal data arrived
85
84
  current_widget.biosignal_data_arrived.connect(self.biosignal_data_arrived.emit)
85
+ # Auxiliary data arrived
86
86
  current_widget.auxiliary_data_arrived.connect(self.auxiliary_data_arrived.emit)
87
87
 
88
88
  current_widget.connect_toggled.connect(self.connect_toggled)
@@ -97,6 +97,9 @@ class BaseMultipleDevicesWidget(QWidget):
97
97
  self.device_selection_combo_box.addItem(DEVICE_NAME_DICT[device_type])
98
98
 
99
99
  self._update_stacked_widget(0)
100
+ self.device_selection_combo_box.currentIndexChanged.connect(
101
+ self._update_stacked_widget
102
+ )
100
103
 
101
104
  def _get_current_widget(self) -> BaseDeviceWidget:
102
105
  return self.device_stacked_widget.currentWidget()
@@ -7,10 +7,14 @@ from biosignal_device_interface.gui.device_template_widgets.core.base_multiple_d
7
7
  from biosignal_device_interface.constants.devices.core.base_device_constants import (
8
8
  DeviceType,
9
9
  )
10
- from biosignal_device_interface.gui.device_template_widgets.otb import (
11
- MuoviPlusWidget,
12
- MuoviWidget,
13
- QuattrocentoLightWidget,
10
+ from biosignal_device_interface.gui.device_template_widgets.otb.otb_muovi_plus_widget import (
11
+ OTBMuoviPlusWidget,
12
+ )
13
+ from biosignal_device_interface.gui.device_template_widgets.otb.otb_muovi_widget import (
14
+ OTBMuoviWidget,
15
+ )
16
+ from biosignal_device_interface.gui.device_template_widgets.otb.otb_quattrocento_light_widget import (
17
+ OTBQuattrocentoLightWidget,
14
18
  )
15
19
 
16
20
  if TYPE_CHECKING:
@@ -20,13 +24,13 @@ if TYPE_CHECKING:
20
24
  )
21
25
 
22
26
 
23
- class AllDevicesWidget(BaseMultipleDevicesWidget):
27
+ class OTBDevicesWidget(BaseMultipleDevicesWidget):
24
28
  def __init__(self, parent: QWidget | QMainWindow | None = None):
25
29
  super().__init__(parent)
26
30
 
27
31
  self._device_selection: Dict[DeviceType, BaseDeviceWidget] = {
28
- DeviceType.OTB_QUATTROCENTO_LIGHT: QuattrocentoLightWidget(self),
29
- DeviceType.OTB_MUOVI: MuoviWidget(self),
30
- DeviceType.OTB_MUOVI_PLUS: MuoviPlusWidget(self),
32
+ DeviceType.OTB_QUATTROCENTO_LIGHT: OTBQuattrocentoLightWidget(self),
33
+ DeviceType.OTB_MUOVI: OTBMuoviWidget(self),
34
+ DeviceType.OTB_MUOVI_PLUS: OTBMuoviPlusWidget(self),
31
35
  }
32
36
  self._set_devices(self._device_selection)
@@ -7,10 +7,10 @@ from biosignal_device_interface.gui.device_template_widgets.core.base_device_wid
7
7
  from biosignal_device_interface.gui.ui_compiled.otb_muovi_template_widget import (
8
8
  Ui_MuoviForm,
9
9
  )
10
- from biosignal_device_interface.devices import OTBMuovi
10
+ from biosignal_device_interface.devices.otb.otb_muovi import OTBMuovi
11
11
 
12
12
  # Constants
13
- from biosignal_device_interface.constants.devices.otb_muovi_constants import (
13
+ from biosignal_device_interface.constants.devices.otb.otb_muovi_constants import (
14
14
  MuoviWorkingMode,
15
15
  MuoviDetectionMode,
16
16
  MUOVI_NETWORK_PORT,
@@ -27,7 +27,7 @@ if TYPE_CHECKING:
27
27
  )
28
28
 
29
29
 
30
- class OTBMuoviWidget(BaseDeviceWidget):
30
+ class OTBMuoviPlusWidget(BaseDeviceWidget):
31
31
  def __init__(self, parent: QWidget | QMainWindow | None = None):
32
32
  super().__init__(parent)
33
33
 
@@ -7,10 +7,10 @@ from biosignal_device_interface.gui.device_template_widgets.core.base_device_wid
7
7
  from biosignal_device_interface.gui.ui_compiled.otb_muovi_template_widget import (
8
8
  Ui_MuoviForm,
9
9
  )
10
- from biosignal_device_interface.devices import OTBMuovi
10
+ from biosignal_device_interface.devices.otb.otb_muovi import OTBMuovi
11
11
 
12
12
  # Constants
13
- from biosignal_device_interface.constants.devices.otb_muovi_constants import (
13
+ from biosignal_device_interface.constants.devices.otb.otb_muovi_constants import (
14
14
  MuoviWorkingMode,
15
15
  MuoviDetectionMode,
16
16
  MUOVI_NETWORK_PORT,
@@ -27,7 +27,7 @@ if TYPE_CHECKING:
27
27
  )
28
28
 
29
29
 
30
- class MuoviWidget(BaseDeviceWidget):
30
+ class OTBMuoviWidget(BaseDeviceWidget):
31
31
  def __init__(self, parent: QWidget | QMainWindow | None = None):
32
32
  super().__init__(parent)
33
33
 
@@ -7,10 +7,10 @@ from biosignal_device_interface.gui.device_template_widgets.core.base_device_wid
7
7
  from biosignal_device_interface.gui.ui_compiled.otb_quattrocento_light_template_widget import (
8
8
  Ui_QuattrocentoLightForm,
9
9
  )
10
- from biosignal_device_interface.devices import OTBQuattrocentoLight
10
+ from biosignal_device_interface.devices.otb.otb_quattrocento_light import OTBQuattrocentoLight
11
11
 
12
12
  # Constants
13
- from biosignal_device_interface.constants.devices.otb_quattrocento_constants import (
13
+ from biosignal_device_interface.constants.devices.otb.otb_quattrocento_light_constants import (
14
14
  QuattrocentoLightSamplingFrequency,
15
15
  QuattrocentoLightStreamingFrequency,
16
16
  )
@@ -27,7 +27,7 @@ if TYPE_CHECKING:
27
27
  )
28
28
 
29
29
 
30
- class QuattrocentoLightWidget(BaseDeviceWidget):
30
+ class OTBQuattrocentoLightWidget(BaseDeviceWidget):
31
31
  def __init__(self, parent: QWidget | QMainWindow | None = None):
32
32
  super().__init__(parent)
33
33
  self._set_device(OTBQuattrocentoLight(self))
@@ -95,12 +95,12 @@ class BiosignalPlotWidget(QWidget):
95
95
  def configure(
96
96
  self,
97
97
  lines: int,
98
- sampling_freuqency: int = 2000,
98
+ sampling_frequency: int = 2000,
99
99
  display_time: int = 10,
100
100
  background_color: np.ndarray = np.array([18.0, 18.0, 18.0, 1]),
101
101
  ):
102
102
  self.number_of_lines = lines
103
- self.external_sampling_frequency = sampling_freuqency
103
+ self.external_sampling_frequency = sampling_frequency
104
104
 
105
105
  if (
106
106
  self.external_sampling_frequency
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "biosignal-device-interface"
3
- version = "0.1.1a"
3
+ version = "0.1.2"
4
4
  description = "Python communication interface to many biosignal devices manufactured by several companies to easy integration in custom PySide6 applications."
5
5
  authors = ["Dominik I. Braun <dome.braun@fau.de>"]
6
6
  license = "CC BY-SA 4.0"
@@ -11,16 +11,19 @@ python = ">=3.10,<3.12"
11
11
  pyside6 = "^6.7.0"
12
12
  numpy = "^1.26.4"
13
13
  psutil = "^5.9.8"
14
- mindrove = "^0.0.10"
15
14
  aenum = "^3.1.15"
16
15
  vispy = "^0.14.3"
17
16
  scipy = "^1.14.0"
18
17
  matplotlib = "^3.9.0"
19
18
 
20
19
 
20
+ [tool.poetry.group.dev]
21
+ optional = true
21
22
  [tool.poetry.group.dev.dependencies]
22
23
  ipykernel = "^6.29.5"
23
24
 
25
+ [tool.poetry.group.docs]
26
+ optional = true
24
27
  [tool.poetry.group.docs.dependencies]
25
28
  sphinx = "^7.4.6"
26
29
  rinohtype = "^0.5.5"
@@ -32,7 +35,6 @@ enum-tools = {extras = ["sphinx"], version = "^0.12.0"}
32
35
  sphinx-autodoc-typehints = "^2.2.3"
33
36
 
34
37
 
35
-
36
38
  [build-system]
37
39
  requires = ["poetry-core"]
38
40
  build-backend = "poetry.core.masonry.api"
@@ -1,9 +0,0 @@
1
- # Import Devices to be used from biosignal_device_interface.devices
2
- # import Muovi, MindRoveBracelet, Quattrocento, QuattrocentoLight, ...
3
-
4
- # OTB Devices
5
- from biosignal_device_interface.devices.otb.otb_quattrocento import (
6
- OTBQuattrocento,
7
- OTBQuattrocentoLight,
8
- )
9
- from biosignal_device_interface.devices.otb.otb_muovi import OTBMuovi
@@ -1,9 +0,0 @@
1
- # Import OTB Devices to be used from biosignal_device_interface.devices
2
- # import Muovi, Quattrocento, QuattrocentoLight, ...
3
-
4
- # OTB Devices
5
- from biosignal_device_interface.devices.otb.otb_quattrocento import (
6
- OTBQuattrocento as Quattrocento,
7
- OTBQuattrocentoLight as QuattrocentoLight,
8
- )
9
- from biosignal_device_interface.devices.otb.otb_muovi import OTBMuovi as Muovi
@@ -1,6 +0,0 @@
1
- # OTB Devices
2
- from biosignal_device_interface.gui.device_template_widgets.otb import (
3
- MuoviWidget,
4
- MuoviPlusWidget,
5
- QuattrocentoLightWidget,
6
- )
@@ -1,10 +0,0 @@
1
- # OTB Devices
2
- from biosignal_device_interface.gui.device_template_widgets.otb.otb_muovi_widget import (
3
- MuoviWidget,
4
- )
5
- from biosignal_device_interface.gui.device_template_widgets.otb.otb_muovi_plus_widget import (
6
- OTBMuoviWidget as MuoviPlusWidget,
7
- )
8
- from biosignal_device_interface.gui.device_template_widgets.otb.otb_quattrocento_light_widget import (
9
- QuattrocentoLightWidget,
10
- )