biosignal-device-interface 0.1.12b0__tar.gz → 0.1.311__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 (73) hide show
  1. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/PKG-INFO +3 -15
  2. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/README.md +2 -13
  3. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/devices/core/base_device.py +3 -6
  4. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/devices/otb/otb_quattrocento_light.py +12 -10
  5. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/device_template_widgets/core/base_multiple_devices_widget.py +7 -4
  6. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/plot_widgets/biosignal_plot_widget.py +7 -3
  7. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/pyproject.toml +5 -3
  8. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/__pycache__/__init__.cpython-311.pyc +0 -0
  9. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/devices/__pycache__/__init__.cpython-311.pyc +0 -0
  10. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/devices/__pycache__/base_device_constants.cpython-311.pyc +0 -0
  11. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/devices/__pycache__/otb_muovi_constants.cpython-311.pyc +0 -0
  12. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/devices/__pycache__/otb_quattrocento_constants.cpython-311.pyc +0 -0
  13. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/devices/core/__pycache__/base_device_constants.cpython-311.pyc +0 -0
  14. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/devices/otb/__pycache__/otb_constants.cpython-311.pyc +0 -0
  15. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/devices/otb/__pycache__/otb_muovi_constants.cpython-311.pyc +0 -0
  16. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/devices/otb/__pycache__/otb_quattrocento_constants.cpython-311.pyc +0 -0
  17. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/devices/otb/__pycache__/otb_quattrocento_light_constants.cpython-311.pyc +0 -0
  18. biosignal_device_interface-0.1.12b0/biosignal_device_interface/constants/plots/__pycache__/color_palette.cpython-311.pyc +0 -0
  19. biosignal_device_interface-0.1.12b0/biosignal_device_interface/devices/__pycache__/__init__.cpython-311.pyc +0 -0
  20. biosignal_device_interface-0.1.12b0/biosignal_device_interface/devices/__pycache__/otb_muovi.cpython-311.pyc +0 -0
  21. biosignal_device_interface-0.1.12b0/biosignal_device_interface/devices/__pycache__/otb_quattrocento.cpython-311.pyc +0 -0
  22. biosignal_device_interface-0.1.12b0/biosignal_device_interface/devices/core/__pycache__/__init__.cpython-311.pyc +0 -0
  23. biosignal_device_interface-0.1.12b0/biosignal_device_interface/devices/core/__pycache__/base_device.cpython-311.pyc +0 -0
  24. biosignal_device_interface-0.1.12b0/biosignal_device_interface/devices/otb/__pycache__/__init__.cpython-311.pyc +0 -0
  25. biosignal_device_interface-0.1.12b0/biosignal_device_interface/devices/otb/__pycache__/otb_light_quattrocento.cpython-311.pyc +0 -0
  26. biosignal_device_interface-0.1.12b0/biosignal_device_interface/devices/otb/__pycache__/otb_muovi.cpython-311.pyc +0 -0
  27. biosignal_device_interface-0.1.12b0/biosignal_device_interface/devices/otb/__pycache__/otb_quattrocento.cpython-311.pyc +0 -0
  28. biosignal_device_interface-0.1.12b0/biosignal_device_interface/devices/otb/__pycache__/otb_quattrocento_light.cpython-311.pyc +0 -0
  29. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/__pycache__/__init__.cpython-311.pyc +0 -0
  30. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/__pycache__/all_devices_widget.cpython-311.pyc +0 -0
  31. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/__pycache__/otb_muovi_plus_widget.cpython-311.pyc +0 -0
  32. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/__pycache__/otb_muovi_widget.cpython-311.pyc +0 -0
  33. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/__pycache__/otb_quattrocento_light_widget.cpython-311.pyc +0 -0
  34. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/core/__pycache__/base_device_widget.cpython-311.pyc +0 -0
  35. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/core/__pycache__/base_multiple_devices_widget.cpython-311.pyc +0 -0
  36. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/otb/__pycache__/__init__.cpython-311.pyc +0 -0
  37. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/otb/__pycache__/otb_devices_widget.cpython-311.pyc +0 -0
  38. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/otb/__pycache__/otb_muovi_plus_widget.cpython-311.pyc +0 -0
  39. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/otb/__pycache__/otb_muovi_widget.cpython-311.pyc +0 -0
  40. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/device_template_widgets/otb/__pycache__/otb_quattrocento_light_widget.cpython-311.pyc +0 -0
  41. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/plot_widgets/__pycache__/biosignal_plot_widget.cpython-311.pyc +0 -0
  42. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/ui_compiled/__pycache__/devices_template_widget.cpython-311.pyc +0 -0
  43. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/ui_compiled/__pycache__/otb_muovi_template_widget.cpython-311.pyc +0 -0
  44. biosignal_device_interface-0.1.12b0/biosignal_device_interface/gui/ui_compiled/__pycache__/otb_quattrocento_light_template_widget.cpython-311.pyc +0 -0
  45. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/LICENSE +0 -0
  46. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/__init__.py +0 -0
  47. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/constants/__init__.py +0 -0
  48. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/constants/devices/__init__.py +0 -0
  49. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/constants/devices/core/base_device_constants.py +0 -0
  50. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/constants/devices/otb/otb_constants.py +0 -0
  51. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/constants/devices/otb/otb_muovi_constants.py +0 -0
  52. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/constants/devices/otb/otb_quattrocento_light_constants.py +0 -0
  53. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/constants/plots/color_palette.py +0 -0
  54. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/devices/__init__.py +0 -0
  55. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/devices/core/__init__.py +0 -0
  56. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/devices/otb/__init__.py +0 -0
  57. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/devices/otb/otb_muovi.py +0 -0
  58. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/device_template_widgets/__init__.py +0 -0
  59. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/device_template_widgets/all_devices_widget.py +0 -0
  60. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/device_template_widgets/core/base_device_widget.py +0 -0
  61. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/device_template_widgets/otb/__init__.py +0 -0
  62. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/device_template_widgets/otb/otb_devices_widget.py +0 -0
  63. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_plus_widget.py +0 -0
  64. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_widget.py +0 -0
  65. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_light_widget.py +0 -0
  66. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/ui/devices_template_widget.ui +0 -0
  67. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/ui/otb_muovi_plus_template_widget.ui +0 -0
  68. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/ui/otb_muovi_template_widget.ui +0 -0
  69. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/ui/otb_quattrocento_light_template_widget.ui +0 -0
  70. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/ui_compiled/devices_template_widget.py +0 -0
  71. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/ui_compiled/otb_muovi_plus_template_widget.py +0 -0
  72. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/biosignal_device_interface/gui/ui_compiled/otb_muovi_template_widget.py +0 -0
  73. {biosignal_device_interface-0.1.12b0 → biosignal_device_interface-0.1.311}/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.12b0
3
+ Version: 0.1.311
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 -->
@@ -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
@@ -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
@@ -204,8 +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))
206
+
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)
209
211
 
210
212
  def get_device_information(self) -> Dict[str, Enum | int | float | str]: # type: ignore
211
213
  return super().get_device_information()
@@ -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()
@@ -95,12 +95,16 @@ 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
+ plot_sampling_frequency: int | None = None,
99
100
  display_time: int = 10,
101
+ line_height: int = 50,
100
102
  background_color: np.ndarray = np.array([18.0, 18.0, 18.0, 1]),
101
103
  ):
102
104
  self.number_of_lines = lines
103
- self.external_sampling_frequency = sampling_freuqency
105
+ self.external_sampling_frequency = sampling_frequency
106
+ if plot_sampling_frequency is not None:
107
+ self.internal_sampling_frequency_threshold = plot_sampling_frequency
104
108
 
105
109
  if (
106
110
  self.external_sampling_frequency
@@ -129,7 +133,7 @@ class BiosignalPlotWidget(QWidget):
129
133
  )
130
134
 
131
135
  self.space_for_each_line = min(
132
- int(self.max_texture_size // self.number_of_lines // 1.5), 50
136
+ int(self.max_texture_size // self.number_of_lines // 1.5), line_height
133
137
  )
134
138
 
135
139
  self.canvas.configure(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "biosignal-device-interface"
3
- version = "0.1.12b"
3
+ version = "0.1.311"
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"