biosignal-device-interface 0.2.2__py3-none-any.whl → 0.2.3__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 (23) hide show
  1. biosignal_device_interface/gui/device_template_widgets/core/base_multiple_devices_widget.py +17 -0
  2. biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_plus_widget.py +16 -0
  3. biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_widget.py +16 -0
  4. biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_light_widget.py +7 -0
  5. biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_widget.py +31 -0
  6. biosignal_device_interface/gui/device_template_widgets/otb/otb_syncstation_widget.py +7 -0
  7. biosignal_device_interface/gui/plot_widgets/biosignal_plot_widget.py +53 -4
  8. biosignal_device_interface/gui/ui/devices_template_widget.ui +99 -4
  9. biosignal_device_interface/gui/ui/otb_muovi_plus_template_widget.ui +7 -1
  10. biosignal_device_interface/gui/ui/otb_muovi_template_widget.ui +7 -1
  11. biosignal_device_interface/gui/ui/otb_quattrocento_light_template_widget.ui +7 -1
  12. biosignal_device_interface/gui/ui/otb_quattrocento_template_widget.ui +13 -1
  13. biosignal_device_interface/gui/ui/otb_syncstation_template_widget.ui +24 -18
  14. biosignal_device_interface/gui/ui_compiled/devices_template_widget.py +53 -5
  15. biosignal_device_interface/gui/ui_compiled/otb_muovi_plus_template_widget.py +5 -4
  16. biosignal_device_interface/gui/ui_compiled/otb_muovi_template_widget.py +5 -4
  17. biosignal_device_interface/gui/ui_compiled/otb_quattrocento_light_template_widget.py +6 -5
  18. biosignal_device_interface/gui/ui_compiled/otb_quattrocento_template_widget.py +4 -2
  19. biosignal_device_interface/gui/ui_compiled/otb_syncstation_template_widget.py +20 -19
  20. {biosignal_device_interface-0.2.2.dist-info → biosignal_device_interface-0.2.3.dist-info}/METADATA +1 -1
  21. {biosignal_device_interface-0.2.2.dist-info → biosignal_device_interface-0.2.3.dist-info}/RECORD +23 -23
  22. {biosignal_device_interface-0.2.2.dist-info → biosignal_device_interface-0.2.3.dist-info}/WHEEL +1 -1
  23. {biosignal_device_interface-0.2.2.dist-info → biosignal_device_interface-0.2.3.dist-info}/licenses/LICENSE +0 -0
@@ -50,6 +50,23 @@ class BaseMultipleDevicesWidget(QWidget):
50
50
  self.device_stacked_widget = self.ui.deviceStackedWidget
51
51
  self.device_selection_combo_box = self.ui.deviceSelectionComboBox
52
52
 
53
+ # Sync external scrollbar with scroll area's internal scrollbar
54
+ internal_scrollbar = self.ui.deviceScrollArea.verticalScrollBar()
55
+ external_scrollbar = self.ui.deviceScrollBar
56
+
57
+ # Sync scrollbar values bidirectionally
58
+ internal_scrollbar.valueChanged.connect(external_scrollbar.setValue)
59
+ external_scrollbar.valueChanged.connect(internal_scrollbar.setValue)
60
+
61
+ # Sync scrollbar range and visibility when content changes
62
+ def update_scrollbar_range(min_val: int, max_val: int):
63
+ external_scrollbar.setRange(min_val, max_val)
64
+ external_scrollbar.setVisible(max_val > min_val)
65
+
66
+ internal_scrollbar.rangeChanged.connect(update_scrollbar_range)
67
+ # Initialize visibility
68
+ external_scrollbar.setVisible(internal_scrollbar.maximum() > internal_scrollbar.minimum())
69
+
53
70
  def get_device_information(self) -> Dict[str, Union[str, int]]:
54
71
  return self._get_current_widget().get_device_information()
55
72
 
@@ -50,12 +50,15 @@ class OTBMuoviPlusWidget(BaseDeviceWidget):
50
50
  self.connect_push_button.setText("Disconnect")
51
51
  self.connect_push_button.setChecked(True)
52
52
  self.configure_push_button.setEnabled(True)
53
+ self.configure_push_button.setToolTip("Step 2: Configure device settings")
53
54
  self.connection_group_box.setEnabled(False)
54
55
  else:
55
56
  self.connect_push_button.setText("Connect")
56
57
  self.connect_push_button.setChecked(False)
57
58
  self.configure_push_button.setEnabled(False)
59
+ self.configure_push_button.setToolTip("Step 2: Configure device settings (connect first)")
58
60
  self.stream_push_button.setEnabled(False)
61
+ self.stream_push_button.setToolTip("Step 3: Start data streaming (configure first)")
59
62
  self.connection_group_box.setEnabled(True)
60
63
 
61
64
  self.connect_toggled.emit(is_connected)
@@ -73,6 +76,7 @@ class OTBMuoviPlusWidget(BaseDeviceWidget):
73
76
  def _configuration_toggled(self, is_configured: bool) -> None:
74
77
  if is_configured:
75
78
  self.stream_push_button.setEnabled(True)
79
+ self.stream_push_button.setToolTip("Step 3: Start data streaming")
76
80
 
77
81
  self.configure_toggled.emit(is_configured)
78
82
 
@@ -112,16 +116,19 @@ class OTBMuoviPlusWidget(BaseDeviceWidget):
112
116
  # Command Push Buttons
113
117
  self.connect_push_button: QPushButton = self.ui.commandConnectionPushButton
114
118
  self.connect_push_button.clicked.connect(self._toggle_connection)
119
+ self.connect_push_button.setToolTip("Step 1: Connect to the Muovi+ device")
115
120
  self._device.connect_toggled.connect(self._connection_toggled)
116
121
 
117
122
  self.configure_push_button: QPushButton = self.ui.commandConfigurationPushButton
118
123
  self.configure_push_button.clicked.connect(self._toggle_configuration)
119
124
  self.configure_push_button.setEnabled(False)
125
+ self.configure_push_button.setToolTip("Step 2: Configure device settings (connect first)")
120
126
  self._device.configure_toggled.connect(self._configuration_toggled)
121
127
 
122
128
  self.stream_push_button: QPushButton = self.ui.commandStreamPushButton
123
129
  self.stream_push_button.clicked.connect(self._toggle_stream)
124
130
  self.stream_push_button.setEnabled(False)
131
+ self.stream_push_button.setToolTip("Step 3: Start data streaming (configure first)")
125
132
  self._device.stream_toggled.connect(self._stream_toggled)
126
133
 
127
134
  # Connection parameters
@@ -148,9 +155,18 @@ class OTBMuoviPlusWidget(BaseDeviceWidget):
148
155
  # Input parameters
149
156
  self.input_parameters_group_box: QGroupBox = self.ui.inputGroupBox
150
157
  self.input_working_mode_combo_box: QComboBox = self.ui.inputWorkingModeComboBox
158
+ self.input_working_mode_combo_box.setToolTip(
159
+ "EMG: Electromyography for muscle signals\nEEG: Electroencephalography for brain signals"
160
+ )
151
161
  self.input_detection_mode_combo_box: QComboBox = (
152
162
  self.ui.inputDetectionModeComboBox
153
163
  )
164
+ self.input_detection_mode_combo_box.setToolTip(
165
+ "High Gain: Better for weak signals\nLow Gain: Better for strong signals\nImpedance Check: Verify electrode contact"
166
+ )
167
+
168
+ # Add tooltip for update button
169
+ self.connection_update_push_button.setToolTip("Refresh available device IP addresses")
154
170
 
155
171
  # Configuration parameters
156
172
  self.configuration_group_boxes: list[QGroupBox] = [
@@ -50,12 +50,15 @@ class OTBMuoviWidget(BaseDeviceWidget):
50
50
  self.connect_push_button.setText("Disconnect")
51
51
  self.connect_push_button.setChecked(True)
52
52
  self.configure_push_button.setEnabled(True)
53
+ self.configure_push_button.setToolTip("Step 2: Configure device settings")
53
54
  self.connection_group_box.setEnabled(False)
54
55
  else:
55
56
  self.connect_push_button.setText("Connect")
56
57
  self.connect_push_button.setChecked(False)
57
58
  self.configure_push_button.setEnabled(False)
59
+ self.configure_push_button.setToolTip("Step 2: Configure device settings (connect first)")
58
60
  self.stream_push_button.setEnabled(False)
61
+ self.stream_push_button.setToolTip("Step 3: Start data streaming (configure first)")
59
62
  self.connection_group_box.setEnabled(True)
60
63
 
61
64
  self.connect_toggled.emit(is_connected)
@@ -73,6 +76,7 @@ class OTBMuoviWidget(BaseDeviceWidget):
73
76
  def _configuration_toggled(self, is_configured: bool) -> None:
74
77
  if is_configured:
75
78
  self.stream_push_button.setEnabled(True)
79
+ self.stream_push_button.setToolTip("Step 3: Start data streaming")
76
80
 
77
81
  self.configure_toggled.emit(is_configured)
78
82
 
@@ -112,16 +116,19 @@ class OTBMuoviWidget(BaseDeviceWidget):
112
116
  # Command Push Buttons
113
117
  self.connect_push_button: QPushButton = self.ui.commandConnectionPushButton
114
118
  self.connect_push_button.clicked.connect(self._toggle_connection)
119
+ self.connect_push_button.setToolTip("Step 1: Connect to the Muovi device")
115
120
  self._device.connect_toggled.connect(self._connection_toggled)
116
121
 
117
122
  self.configure_push_button: QPushButton = self.ui.commandConfigurationPushButton
118
123
  self.configure_push_button.clicked.connect(self._toggle_configuration)
119
124
  self.configure_push_button.setEnabled(False)
125
+ self.configure_push_button.setToolTip("Step 2: Configure device settings (connect first)")
120
126
  self._device.configure_toggled.connect(self._configuration_toggled)
121
127
 
122
128
  self.stream_push_button: QPushButton = self.ui.commandStreamPushButton
123
129
  self.stream_push_button.clicked.connect(self._toggle_stream)
124
130
  self.stream_push_button.setEnabled(False)
131
+ self.stream_push_button.setToolTip("Step 3: Start data streaming (configure first)")
125
132
  self._device.stream_toggled.connect(self._stream_toggled)
126
133
 
127
134
  # Connection parameters
@@ -148,9 +155,18 @@ class OTBMuoviWidget(BaseDeviceWidget):
148
155
  # Input parameters
149
156
  self.input_parameters_group_box: QGroupBox = self.ui.inputGroupBox
150
157
  self.input_working_mode_combo_box: QComboBox = self.ui.inputWorkingModeComboBox
158
+ self.input_working_mode_combo_box.setToolTip(
159
+ "EMG: Electromyography for muscle signals\nEEG: Electroencephalography for brain signals"
160
+ )
151
161
  self.input_detection_mode_combo_box: QComboBox = (
152
162
  self.ui.inputDetectionModeComboBox
153
163
  )
164
+ self.input_detection_mode_combo_box.setToolTip(
165
+ "High Gain: Better for weak signals\nLow Gain: Better for strong signals\nImpedance Check: Verify electrode contact"
166
+ )
167
+
168
+ # Add tooltip for update button
169
+ self.connection_update_push_button.setToolTip("Refresh available device IP addresses")
154
170
 
155
171
  # Configuration parameters
156
172
  self.configuration_group_boxes: list[QGroupBox] = [
@@ -48,12 +48,15 @@ class OTBQuattrocentoLightWidget(BaseDeviceWidget):
48
48
  self._connect_push_button.setText("Disconnect")
49
49
  self._connect_push_button.setChecked(True)
50
50
  self._configure_push_button.setEnabled(True)
51
+ self._configure_push_button.setToolTip("Step 2: Configure device settings")
51
52
  self._connection_group_box.setEnabled(False)
52
53
  else:
53
54
  self._connect_push_button.setText("Connect")
54
55
  self._connect_push_button.setChecked(False)
55
56
  self._configure_push_button.setEnabled(False)
57
+ self._configure_push_button.setToolTip("Step 2: Configure device settings (connect first)")
56
58
  self._stream_push_button.setEnabled(False)
59
+ self._stream_push_button.setToolTip("Step 3: Start data streaming (configure first)")
57
60
  self._connection_group_box.setEnabled(True)
58
61
 
59
62
  self.connect_toggled.emit(is_connected)
@@ -81,6 +84,7 @@ class OTBQuattrocentoLightWidget(BaseDeviceWidget):
81
84
  def _configuration_toggled(self, is_configured: bool) -> None:
82
85
  if is_configured:
83
86
  self._stream_push_button.setEnabled(True)
87
+ self._stream_push_button.setToolTip("Step 3: Start data streaming")
84
88
 
85
89
  self.configure_toggled.emit(is_configured)
86
90
 
@@ -121,6 +125,7 @@ class OTBQuattrocentoLightWidget(BaseDeviceWidget):
121
125
  # Command Push Buttons
122
126
  self._connect_push_button: QPushButton = self.ui.commandConnectionPushButton
123
127
  self._connect_push_button.clicked.connect(self._toggle_connection)
128
+ self._connect_push_button.setToolTip("Step 1: Connect to the Quattrocento Light device")
124
129
  self._device.connect_toggled.connect(self._connection_toggled)
125
130
 
126
131
  self._configure_push_button: QPushButton = (
@@ -128,11 +133,13 @@ class OTBQuattrocentoLightWidget(BaseDeviceWidget):
128
133
  )
129
134
  self._configure_push_button.clicked.connect(self._toggle_configuration)
130
135
  self._configure_push_button.setEnabled(False)
136
+ self._configure_push_button.setToolTip("Step 2: Configure device settings (connect first)")
131
137
  self._device.configure_toggled.connect(self._configuration_toggled)
132
138
 
133
139
  self._stream_push_button: QPushButton = self.ui.commandStreamPushButton
134
140
  self._stream_push_button.clicked.connect(self._toggle_stream)
135
141
  self._stream_push_button.setEnabled(False)
142
+ self._stream_push_button.setToolTip("Step 3: Start data streaming (configure first)")
136
143
  self._device.stream_toggled.connect(self._stream_toggled)
137
144
 
138
145
  # Connection parameters
@@ -70,12 +70,15 @@ class OTBQuattrocentoWidget(BaseDeviceWidget):
70
70
  self._connect_push_button.setText("Disconnect")
71
71
  self._connect_push_button.setChecked(True)
72
72
  self._configure_push_button.setEnabled(True)
73
+ self._configure_push_button.setToolTip("Step 2: Configure device settings")
73
74
  self._connection_group_box.setEnabled(False)
74
75
  else:
75
76
  self._connect_push_button.setText("Connect")
76
77
  self._connect_push_button.setChecked(False)
77
78
  self._configure_push_button.setEnabled(False)
79
+ self._configure_push_button.setToolTip("Step 2: Configure device settings (connect first)")
78
80
  self._stream_push_button.setEnabled(False)
81
+ self._stream_push_button.setToolTip("Step 3: Start data streaming (configure first)")
79
82
  self._connection_group_box.setEnabled(True)
80
83
 
81
84
  self.connect_toggled.emit(is_connected)
@@ -131,6 +134,7 @@ class OTBQuattrocentoWidget(BaseDeviceWidget):
131
134
  def _configuration_toggled(self, is_configured: bool) -> None:
132
135
  if is_configured:
133
136
  self._stream_push_button.setEnabled(True)
137
+ self._stream_push_button.setToolTip("Step 3: Start data streaming")
134
138
 
135
139
  self.configure_toggled.emit(is_configured)
136
140
 
@@ -174,6 +178,7 @@ class OTBQuattrocentoWidget(BaseDeviceWidget):
174
178
  # Command Push Buttons
175
179
  self._connect_push_button: QPushButton = self.ui.commandConnectionPushButton
176
180
  self._connect_push_button.clicked.connect(self._toggle_connection)
181
+ self._connect_push_button.setToolTip("Step 1: Connect to the Quattrocento device")
177
182
  self._device.connect_toggled.connect(self._connection_toggled)
178
183
 
179
184
  self._configure_push_button: QPushButton = (
@@ -181,11 +186,13 @@ class OTBQuattrocentoWidget(BaseDeviceWidget):
181
186
  )
182
187
  self._configure_push_button.clicked.connect(self._toggle_configuration)
183
188
  self._configure_push_button.setEnabled(False)
189
+ self._configure_push_button.setToolTip("Step 2: Configure device settings (connect first)")
184
190
  self._device.configure_toggled.connect(self._configuration_toggled)
185
191
 
186
192
  self._stream_push_button: QPushButton = self.ui.commandStreamPushButton
187
193
  self._stream_push_button.clicked.connect(self._toggle_stream)
188
194
  self._stream_push_button.setEnabled(False)
195
+ self._stream_push_button.setToolTip("Step 3: Start data streaming (configure first)")
189
196
  self._device.stream_toggled.connect(self._stream_toggled)
190
197
 
191
198
  # Connection parameters
@@ -214,18 +221,33 @@ class OTBQuattrocentoWidget(BaseDeviceWidget):
214
221
  self._acquisition_sampling_frequency_combo_box: QComboBox = (
215
222
  self.ui.acquisitionSamplingFrequencyComboBox
216
223
  )
224
+ self._acquisition_sampling_frequency_combo_box.setToolTip(
225
+ "Higher frequencies capture more detail but generate more data"
226
+ )
217
227
  self._acquisition_number_of_channels_combo_box: QComboBox = (
218
228
  self.ui.acquisitionNumberOfChannelsComboBox
219
229
  )
230
+ self._acquisition_number_of_channels_combo_box.setToolTip(
231
+ "Number of EMG channels to record from"
232
+ )
220
233
  self._acquisition_decimator_check_box: QCheckBox = (
221
234
  self.ui.acquisitionDecimatorCheckBox
222
235
  )
236
+ self._acquisition_decimator_check_box.setToolTip(
237
+ "Reduce sampling rate by averaging samples (reduces data size)"
238
+ )
223
239
  self._acquisition_recording_check_box: QCheckBox = (
224
240
  self.ui.acquisitionRecordingCheckBox
225
241
  )
242
+ self._acquisition_recording_check_box.setToolTip(
243
+ "Enable on-device recording to SD card"
244
+ )
226
245
 
227
246
  # Grid selection
228
247
  self._grid_selection_group_box: QGroupBox = self.ui.gridSelectionGroupBox
248
+ self._grid_selection_group_box.setToolTip(
249
+ "Select which electrode grids to use for recording"
250
+ )
229
251
  self._grid_selection_check_box_list: list[QCheckBox] = [
230
252
  self.ui.gridOneCheckBox,
231
253
  self.ui.gridTwoCheckBox,
@@ -244,14 +266,23 @@ class OTBQuattrocentoWidget(BaseDeviceWidget):
244
266
  self._input_group_box: QGroupBox = self.ui.inputGroupBox
245
267
  self._input_channel_combo_box: QComboBox = self.ui.inputChannelComboBox
246
268
  self._input_low_pass_filter_combo_box: QComboBox = self.ui.inputLowPassComboBox
269
+ self._input_low_pass_filter_combo_box.setToolTip(
270
+ "Low-pass filter removes high-frequency noise"
271
+ )
247
272
  self._input_low_pass_default = self.ui.inputLowPassComboBox.currentIndex()
248
273
  self._input_high_pass_filter_combo_box: QComboBox = (
249
274
  self.ui.inputHighPassComboBox
250
275
  )
276
+ self._input_high_pass_filter_combo_box.setToolTip(
277
+ "High-pass filter removes low-frequency drift and motion artifacts"
278
+ )
251
279
  self._input_high_pass_default = self.ui.inputHighPassComboBox.currentIndex()
252
280
  self._input_detection_mode_combo_box: QComboBox = (
253
281
  self.ui.inputDetectionModeComboBox
254
282
  )
283
+ self._input_detection_mode_combo_box.setToolTip(
284
+ "Monopolar: Each electrode vs reference\nDifferential: Difference between adjacent electrodes"
285
+ )
255
286
 
256
287
  self._configuration_group_boxes: list[QGroupBox] = [
257
288
  self._acquisition_group_box,
@@ -59,12 +59,15 @@ class OTBSyncStationWidget(BaseDeviceWidget):
59
59
  self._command_connect_push_button.setText("Disconnect")
60
60
  self._command_connect_push_button.setChecked(True)
61
61
  self._command_configure_push_button.setEnabled(True)
62
+ self._command_configure_push_button.setToolTip("Step 2: Configure device settings")
62
63
  self._connection_group_box.setEnabled(False)
63
64
  else:
64
65
  self._command_connect_push_button.setText("Connect")
65
66
  self._command_connect_push_button.setChecked(False)
66
67
  self._command_configure_push_button.setEnabled(False)
68
+ self._command_configure_push_button.setToolTip("Step 2: Configure device settings (connect first)")
67
69
  self._command_stream_push_button.setEnabled(False)
70
+ self._command_stream_push_button.setToolTip("Step 3: Start data streaming (configure first)")
68
71
  self._connection_group_box.setEnabled(True)
69
72
 
70
73
  self.connect_toggled.emit(is_connected)
@@ -94,6 +97,7 @@ class OTBSyncStationWidget(BaseDeviceWidget):
94
97
  def _configuration_toggled(self, is_configured: bool) -> None:
95
98
  if is_configured:
96
99
  self._command_stream_push_button.setEnabled(True)
100
+ self._command_stream_push_button.setToolTip("Step 3: Start data streaming")
97
101
 
98
102
  self.configure_toggled.emit(is_configured)
99
103
 
@@ -156,6 +160,7 @@ class OTBSyncStationWidget(BaseDeviceWidget):
156
160
  self.ui.commandConnectionPushButton
157
161
  )
158
162
  self._command_connect_push_button.clicked.connect(self._toggle_connection)
163
+ self._command_connect_push_button.setToolTip("Step 1: Connect to the SyncStation device")
159
164
  self._device.connect_toggled.connect(self._connection_toggled)
160
165
 
161
166
  self._command_configure_push_button: QPushButton = (
@@ -163,11 +168,13 @@ class OTBSyncStationWidget(BaseDeviceWidget):
163
168
  )
164
169
  self._command_configure_push_button.clicked.connect(self._toggle_configuration)
165
170
  self._command_configure_push_button.setEnabled(False)
171
+ self._command_configure_push_button.setToolTip("Step 2: Configure device settings (connect first)")
166
172
  self._device.configure_toggled.connect(self._configuration_toggled)
167
173
 
168
174
  self._command_stream_push_button: QPushButton = self.ui.commandStreamPushButton
169
175
  self._command_stream_push_button.clicked.connect(self._toggle_stream)
170
176
  self._command_stream_push_button.setEnabled(False)
177
+ self._command_stream_push_button.setToolTip("Step 3: Start data streaming (configure first)")
171
178
  self._device.stream_toggled.connect(self._stream_toggled)
172
179
 
173
180
  # Connection Paramters
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
  from functools import partial
3
3
  from typing import TYPE_CHECKING
4
4
 
5
- from PySide6.QtGui import QResizeEvent, QWheelEvent
5
+ from PySide6.QtGui import QResizeEvent, QWheelEvent, QFont
6
6
  from vispy import app, gloo
7
7
  from PySide6.QtWidgets import (
8
8
  QVBoxLayout,
@@ -11,6 +11,8 @@ from PySide6.QtWidgets import (
11
11
  QCheckBox,
12
12
  QGridLayout,
13
13
  QSizePolicy,
14
+ QLabel,
15
+ QFrame,
14
16
  )
15
17
  from PySide6.QtCore import Qt, Signal, QPoint
16
18
  import matplotlib.colors as mcolors
@@ -50,7 +52,45 @@ class BiosignalPlotWidget(QWidget):
50
52
  self.is_configured: bool = False
51
53
 
52
54
  def _configure_widget(self):
53
- # Create scroll_area
55
+ # Create main layout
56
+ self.setLayout(QVBoxLayout())
57
+ self.layout().setContentsMargins(0, 0, 0, 0)
58
+
59
+ # Create placeholder widget (shown when not configured)
60
+ self.placeholder_widget = QFrame(self)
61
+ self.placeholder_widget.setStyleSheet("""
62
+ QFrame {
63
+ background-color: rgba(18, 18, 18, 1);
64
+ border: 2px dashed rgba(100, 100, 100, 0.5);
65
+ border-radius: 8px;
66
+ }
67
+ """)
68
+ placeholder_layout = QVBoxLayout(self.placeholder_widget)
69
+ placeholder_layout.setAlignment(Qt.AlignCenter)
70
+
71
+ # Placeholder icon/text
72
+ self.placeholder_label = QLabel("📊")
73
+ self.placeholder_label.setStyleSheet("font-size: 48px; border: none;")
74
+ self.placeholder_label.setAlignment(Qt.AlignCenter)
75
+
76
+ self.placeholder_text = QLabel("EMG Signal Plot")
77
+ self.placeholder_text.setStyleSheet("color: rgba(150, 150, 150, 1); font-size: 16px; font-weight: bold; border: none;")
78
+ self.placeholder_text.setAlignment(Qt.AlignCenter)
79
+
80
+ self.placeholder_hint = QLabel("Connect and configure a device to view signals")
81
+ self.placeholder_hint.setStyleSheet("color: rgba(100, 100, 100, 1); font-size: 12px; border: none;")
82
+ self.placeholder_hint.setAlignment(Qt.AlignCenter)
83
+ self.placeholder_hint.setWordWrap(True)
84
+
85
+ placeholder_layout.addStretch()
86
+ placeholder_layout.addWidget(self.placeholder_label)
87
+ placeholder_layout.addWidget(self.placeholder_text)
88
+ placeholder_layout.addWidget(self.placeholder_hint)
89
+ placeholder_layout.addStretch()
90
+
91
+ self.layout().addWidget(self.placeholder_widget)
92
+
93
+ # Create scroll_area (hidden initially)
54
94
  self.scroll_area = QScrollArea(self)
55
95
  self.scroll_area.setHorizontalScrollBarPolicy(
56
96
  Qt.ScrollBarAlwaysOff
@@ -58,9 +98,8 @@ class BiosignalPlotWidget(QWidget):
58
98
  self.scroll_area.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
59
99
  self.scroll_area.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
60
100
  self.scroll_area.setLayoutDirection(Qt.RightToLeft)
101
+ self.scroll_area.hide() # Hidden until configured
61
102
 
62
- # Create a layout for the VispyFastPlotWidget
63
- self.setLayout(QVBoxLayout())
64
103
  # Add the scroll_area to the layout
65
104
  self.layout().addWidget(self.scroll_area)
66
105
 
@@ -176,6 +215,10 @@ class BiosignalPlotWidget(QWidget):
176
215
  else:
177
216
  self.container_widget_layout.setRowMinimumHeight(i, 0)
178
217
 
218
+ # Show plot, hide placeholder
219
+ self.placeholder_widget.hide()
220
+ self.scroll_area.show()
221
+
179
222
  self.is_configured = True
180
223
 
181
224
  def update_plot(self, input_data: np.ndarray) -> None:
@@ -202,6 +245,12 @@ class BiosignalPlotWidget(QWidget):
202
245
  def reset_data(self) -> None:
203
246
  self.canvas.on_reset()
204
247
 
248
+ def show_placeholder(self) -> None:
249
+ """Show the placeholder and hide the plot."""
250
+ self.scroll_area.hide()
251
+ self.placeholder_widget.show()
252
+ self.is_configured = False
253
+
205
254
  def _toggle_line(self, line_number: int, state: int) -> None:
206
255
  is_checked = state == 2
207
256
  self.lines_enabled[line_number] = is_checked
@@ -10,6 +10,12 @@
10
10
  <height>300</height>
11
11
  </rect>
12
12
  </property>
13
+ <property name="sizePolicy">
14
+ <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
15
+ <horstretch>0</horstretch>
16
+ <verstretch>1</verstretch>
17
+ </sizepolicy>
18
+ </property>
13
19
  <property name="windowTitle">
14
20
  <string>Form</string>
15
21
  </property>
@@ -25,11 +31,100 @@
25
31
  <widget class="QComboBox" name="deviceSelectionComboBox"/>
26
32
  </item>
27
33
  <item row="1" column="0" colspan="2">
28
- <widget class="QStackedWidget" name="deviceStackedWidget">
29
- <property name="currentIndex">
30
- <number>-1</number>
34
+ <layout class="QHBoxLayout" name="scrollAreaLayout">
35
+ <property name="spacing">
36
+ <number>6</number>
31
37
  </property>
32
- </widget>
38
+ <property name="leftMargin">
39
+ <number>20</number>
40
+ </property>
41
+ <item>
42
+ <widget class="QScrollArea" name="deviceScrollArea">
43
+ <property name="sizePolicy">
44
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
45
+ <horstretch>0</horstretch>
46
+ <verstretch>1</verstretch>
47
+ </sizepolicy>
48
+ </property>
49
+ <property name="frameShape">
50
+ <enum>QFrame::Shape::NoFrame</enum>
51
+ </property>
52
+ <property name="horizontalScrollBarPolicy">
53
+ <enum>Qt::ScrollBarPolicy::ScrollBarAlwaysOff</enum>
54
+ </property>
55
+ <property name="verticalScrollBarPolicy">
56
+ <enum>Qt::ScrollBarPolicy::ScrollBarAlwaysOff</enum>
57
+ </property>
58
+ <property name="widgetResizable">
59
+ <bool>true</bool>
60
+ </property>
61
+ <widget class="QWidget" name="deviceScrollAreaContents">
62
+ <property name="geometry">
63
+ <rect>
64
+ <x>0</x>
65
+ <y>0</y>
66
+ <width>100</width>
67
+ <height>30</height>
68
+ </rect>
69
+ </property>
70
+ <layout class="QHBoxLayout" name="deviceScrollAreaLayout">
71
+ <property name="leftMargin">
72
+ <number>0</number>
73
+ </property>
74
+ <property name="topMargin">
75
+ <number>0</number>
76
+ </property>
77
+ <property name="rightMargin">
78
+ <number>0</number>
79
+ </property>
80
+ <property name="bottomMargin">
81
+ <number>0</number>
82
+ </property>
83
+ <item>
84
+ <spacer name="horizontalSpacerLeft">
85
+ <property name="orientation">
86
+ <enum>Qt::Horizontal</enum>
87
+ </property>
88
+ <property name="sizeHint" stdset="0">
89
+ <size>
90
+ <width>0</width>
91
+ <height>0</height>
92
+ </size>
93
+ </property>
94
+ </spacer>
95
+ </item>
96
+ <item>
97
+ <widget class="QStackedWidget" name="deviceStackedWidget">
98
+ <property name="currentIndex">
99
+ <number>-1</number>
100
+ </property>
101
+ </widget>
102
+ </item>
103
+ <item>
104
+ <spacer name="horizontalSpacerRight">
105
+ <property name="orientation">
106
+ <enum>Qt::Horizontal</enum>
107
+ </property>
108
+ <property name="sizeHint" stdset="0">
109
+ <size>
110
+ <width>0</width>
111
+ <height>0</height>
112
+ </size>
113
+ </property>
114
+ </spacer>
115
+ </item>
116
+ </layout>
117
+ </widget>
118
+ </widget>
119
+ </item>
120
+ <item>
121
+ <widget class="QScrollBar" name="deviceScrollBar">
122
+ <property name="orientation">
123
+ <enum>Qt::Orientation::Vertical</enum>
124
+ </property>
125
+ </widget>
126
+ </item>
127
+ </layout>
33
128
  </item>
34
129
  </layout>
35
130
  </widget>
@@ -6,13 +6,19 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>400</width>
9
+ <width>340</width>
10
10
  <height>324</height>
11
11
  </rect>
12
12
  </property>
13
13
  <property name="windowTitle">
14
14
  <string>MuoviPlusForm</string>
15
15
  </property>
16
+ <property name="maximumSize">
17
+ <size>
18
+ <width>340</width>
19
+ <height>16777215</height>
20
+ </size>
21
+ </property>
16
22
  <layout class="QGridLayout" name="gridLayout">
17
23
  <item row="4" column="0">
18
24
  <spacer name="verticalSpacer">
@@ -6,13 +6,19 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>400</width>
9
+ <width>340</width>
10
10
  <height>324</height>
11
11
  </rect>
12
12
  </property>
13
13
  <property name="windowTitle">
14
14
  <string>MuoviForm</string>
15
15
  </property>
16
+ <property name="maximumSize">
17
+ <size>
18
+ <width>340</width>
19
+ <height>16777215</height>
20
+ </size>
21
+ </property>
16
22
  <layout class="QGridLayout" name="gridLayout">
17
23
  <item row="4" column="0">
18
24
  <spacer name="verticalSpacer">
@@ -6,13 +6,19 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>400</width>
9
+ <width>340</width>
10
10
  <height>422</height>
11
11
  </rect>
12
12
  </property>
13
13
  <property name="windowTitle">
14
14
  <string>Form</string>
15
15
  </property>
16
+ <property name="maximumSize">
17
+ <size>
18
+ <width>340</width>
19
+ <height>16777215</height>
20
+ </size>
21
+ </property>
16
22
  <layout class="QGridLayout" name="gridLayout_2">
17
23
  <item row="0" column="0">
18
24
  <widget class="QWidget" name="widget" native="true">
@@ -6,10 +6,22 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>400</width>
9
+ <width>340</width>
10
10
  <height>638</height>
11
11
  </rect>
12
12
  </property>
13
+ <property name="minimumSize">
14
+ <size>
15
+ <width>0</width>
16
+ <height>550</height>
17
+ </size>
18
+ </property>
19
+ <property name="maximumSize">
20
+ <size>
21
+ <width>340</width>
22
+ <height>16777215</height>
23
+ </size>
24
+ </property>
13
25
  <property name="windowTitle">
14
26
  <string>Form</string>
15
27
  </property>
@@ -6,13 +6,19 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>350</width>
9
+ <width>340</width>
10
10
  <height>608</height>
11
11
  </rect>
12
12
  </property>
13
13
  <property name="windowTitle">
14
14
  <string>SyncStationForm</string>
15
15
  </property>
16
+ <property name="maximumSize">
17
+ <size>
18
+ <width>340</width>
19
+ <height>16777215</height>
20
+ </size>
21
+ </property>
16
22
  <layout class="QGridLayout" name="gridLayout">
17
23
  <item row="1" column="0">
18
24
  <widget class="QGroupBox" name="inputGroupBox">
@@ -57,7 +63,7 @@
57
63
  <item row="0" column="0">
58
64
  <widget class="QCheckBox" name="muoviProbeOneEnableCheckBox">
59
65
  <property name="text">
60
- <string>Muovi Probe 1</string>
66
+ <string>Muovi1</string>
61
67
  </property>
62
68
  </widget>
63
69
  </item>
@@ -91,7 +97,7 @@
91
97
  <item row="1" column="0">
92
98
  <widget class="QCheckBox" name="muoviProbeTwoEnableCheckBox">
93
99
  <property name="text">
94
- <string>Muovi Probe 2</string>
100
+ <string>Muovi2</string>
95
101
  </property>
96
102
  </widget>
97
103
  </item>
@@ -125,7 +131,7 @@
125
131
  <item row="2" column="0">
126
132
  <widget class="QCheckBox" name="muoviProbeThreeEnableCheckBox">
127
133
  <property name="text">
128
- <string>Muovi Probe 3</string>
134
+ <string>Muovi3</string>
129
135
  </property>
130
136
  </widget>
131
137
  </item>
@@ -159,7 +165,7 @@
159
165
  <item row="3" column="0">
160
166
  <widget class="QCheckBox" name="muoviProbeFourEnableCheckBox">
161
167
  <property name="text">
162
- <string>Muovi Probe 4</string>
168
+ <string>Muovi4</string>
163
169
  </property>
164
170
  </widget>
165
171
  </item>
@@ -198,7 +204,7 @@
198
204
  <property name="sizeHint" stdset="0">
199
205
  <size>
200
206
  <width>20</width>
201
- <height>154</height>
207
+ <height>40</height>
202
208
  </size>
203
209
  </property>
204
210
  </spacer>
@@ -213,7 +219,7 @@
213
219
  <item row="0" column="0">
214
220
  <widget class="QCheckBox" name="muoviPlusProbeOneEnableCheckBox">
215
221
  <property name="text">
216
- <string>Muovi+ Probe 1</string>
222
+ <string>Muovi+1</string>
217
223
  </property>
218
224
  </widget>
219
225
  </item>
@@ -247,7 +253,7 @@
247
253
  <item row="1" column="0">
248
254
  <widget class="QCheckBox" name="muoviPlusProbeTwoEnableCheckBox">
249
255
  <property name="text">
250
- <string>Muovi+ Probe 2</string>
256
+ <string>Muovi+2</string>
251
257
  </property>
252
258
  </widget>
253
259
  </item>
@@ -301,14 +307,14 @@
301
307
  <item row="9" column="0">
302
308
  <widget class="QCheckBox" name="duePlusProbeNineEnableCheckBox">
303
309
  <property name="text">
304
- <string>Due+ Probe 9</string>
310
+ <string>Due+9</string>
305
311
  </property>
306
312
  </widget>
307
313
  </item>
308
314
  <item row="10" column="0">
309
315
  <widget class="QCheckBox" name="duePlusProbeTenEnableCheckBox">
310
316
  <property name="text">
311
- <string>Due+ Probe 10</string>
317
+ <string>Due+10</string>
312
318
  </property>
313
319
  </widget>
314
320
  </item>
@@ -423,21 +429,21 @@
423
429
  <item row="3" column="0">
424
430
  <widget class="QCheckBox" name="duePlusProbeThreeEnableCheckBox">
425
431
  <property name="text">
426
- <string>Due+ Probe 3</string>
432
+ <string>Due+3</string>
427
433
  </property>
428
434
  </widget>
429
435
  </item>
430
436
  <item row="6" column="0">
431
437
  <widget class="QCheckBox" name="duePlusProbeSixEnableCheckBox">
432
438
  <property name="text">
433
- <string>Due+ Probe 6</string>
439
+ <string>Due+6</string>
434
440
  </property>
435
441
  </widget>
436
442
  </item>
437
443
  <item row="8" column="0">
438
444
  <widget class="QCheckBox" name="duePlusProbeEightEnableCheckBox">
439
445
  <property name="text">
440
- <string>Due+ Probe 8</string>
446
+ <string>Due+8</string>
441
447
  </property>
442
448
  </widget>
443
449
  </item>
@@ -471,7 +477,7 @@
471
477
  <item row="7" column="0">
472
478
  <widget class="QCheckBox" name="duePlusProbeSevenEnableCheckBox">
473
479
  <property name="text">
474
- <string>Due+ Probe 7</string>
480
+ <string>Due+7</string>
475
481
  </property>
476
482
  </widget>
477
483
  </item>
@@ -505,7 +511,7 @@
505
511
  <item row="2" column="0">
506
512
  <widget class="QCheckBox" name="duePlusProbeTwoEnableCheckBox">
507
513
  <property name="text">
508
- <string>Due+ Probe 2</string>
514
+ <string>Due+2</string>
509
515
  </property>
510
516
  </widget>
511
517
  </item>
@@ -566,7 +572,7 @@
566
572
  <item row="4" column="0">
567
573
  <widget class="QCheckBox" name="duePlusProbeFourEnableCheckBox">
568
574
  <property name="text">
569
- <string>Due+ Probe 4</string>
575
+ <string>Due+4</string>
570
576
  </property>
571
577
  </widget>
572
578
  </item>
@@ -600,7 +606,7 @@
600
606
  <item row="5" column="0">
601
607
  <widget class="QCheckBox" name="duePlusProbeFiveEnableCheckBox">
602
608
  <property name="text">
603
- <string>Due+ Probe 5</string>
609
+ <string>Due+5</string>
604
610
  </property>
605
611
  </widget>
606
612
  </item>
@@ -634,7 +640,7 @@
634
640
  <item row="0" column="0">
635
641
  <widget class="QCheckBox" name="duePlusProbeOneEnableCheckBox">
636
642
  <property name="text">
637
- <string>Due+ Probe 1</string>
643
+ <string>Due+1</string>
638
644
  </property>
639
645
  </widget>
640
646
  </item>
@@ -3,7 +3,7 @@
3
3
  ################################################################################
4
4
  ## Form generated from reading UI file 'devices_template_widget.ui'
5
5
  ##
6
- ## Created by: Qt User Interface Compiler version 6.6.0
6
+ ## Created by: Qt User Interface Compiler version 6.10.1
7
7
  ##
8
8
  ## WARNING! All changes made in this file will be lost when recompiling UI file!
9
9
  ################################################################################
@@ -15,14 +15,20 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
15
15
  QFont, QFontDatabase, QGradient, QIcon,
16
16
  QImage, QKeySequence, QLinearGradient, QPainter,
17
17
  QPalette, QPixmap, QRadialGradient, QTransform)
18
- from PySide6.QtWidgets import (QApplication, QComboBox, QGridLayout, QLabel,
19
- QSizePolicy, QStackedWidget, QWidget)
18
+ from PySide6.QtWidgets import (QApplication, QComboBox, QFrame, QGridLayout,
19
+ QHBoxLayout, QLabel, QScrollArea, QScrollBar,
20
+ QSizePolicy, QSpacerItem, QStackedWidget, QWidget)
20
21
 
21
22
  class Ui_DeviceWidgetForm(object):
22
23
  def setupUi(self, DeviceWidgetForm):
23
24
  if not DeviceWidgetForm.objectName():
24
25
  DeviceWidgetForm.setObjectName(u"DeviceWidgetForm")
25
26
  DeviceWidgetForm.resize(400, 300)
27
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
28
+ sizePolicy.setHorizontalStretch(0)
29
+ sizePolicy.setVerticalStretch(1)
30
+ sizePolicy.setHeightForWidth(DeviceWidgetForm.sizePolicy().hasHeightForWidth())
31
+ DeviceWidgetForm.setSizePolicy(sizePolicy)
26
32
  self.gridLayout = QGridLayout(DeviceWidgetForm)
27
33
  self.gridLayout.setObjectName(u"gridLayout")
28
34
  self.label = QLabel(DeviceWidgetForm)
@@ -35,10 +41,52 @@ class Ui_DeviceWidgetForm(object):
35
41
 
36
42
  self.gridLayout.addWidget(self.deviceSelectionComboBox, 0, 1, 1, 1)
37
43
 
38
- self.deviceStackedWidget = QStackedWidget(DeviceWidgetForm)
44
+ self.scrollAreaLayout = QHBoxLayout()
45
+ self.scrollAreaLayout.setSpacing(6)
46
+ self.scrollAreaLayout.setObjectName(u"scrollAreaLayout")
47
+ self.scrollAreaLayout.setContentsMargins(20, -1, -1, -1)
48
+ self.deviceScrollArea = QScrollArea(DeviceWidgetForm)
49
+ self.deviceScrollArea.setObjectName(u"deviceScrollArea")
50
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
51
+ sizePolicy1.setHorizontalStretch(0)
52
+ sizePolicy1.setVerticalStretch(1)
53
+ sizePolicy1.setHeightForWidth(self.deviceScrollArea.sizePolicy().hasHeightForWidth())
54
+ self.deviceScrollArea.setSizePolicy(sizePolicy1)
55
+ self.deviceScrollArea.setFrameShape(QFrame.Shape.NoFrame)
56
+ self.deviceScrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
57
+ self.deviceScrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
58
+ self.deviceScrollArea.setWidgetResizable(True)
59
+ self.deviceScrollAreaContents = QWidget()
60
+ self.deviceScrollAreaContents.setObjectName(u"deviceScrollAreaContents")
61
+ self.deviceScrollAreaContents.setGeometry(QRect(0, 0, 100, 30))
62
+ self.deviceScrollAreaLayout = QHBoxLayout(self.deviceScrollAreaContents)
63
+ self.deviceScrollAreaLayout.setObjectName(u"deviceScrollAreaLayout")
64
+ self.deviceScrollAreaLayout.setContentsMargins(0, 0, 0, 0)
65
+ self.horizontalSpacerLeft = QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
66
+
67
+ self.deviceScrollAreaLayout.addItem(self.horizontalSpacerLeft)
68
+
69
+ self.deviceStackedWidget = QStackedWidget(self.deviceScrollAreaContents)
39
70
  self.deviceStackedWidget.setObjectName(u"deviceStackedWidget")
40
71
 
41
- self.gridLayout.addWidget(self.deviceStackedWidget, 1, 0, 1, 2)
72
+ self.deviceScrollAreaLayout.addWidget(self.deviceStackedWidget)
73
+
74
+ self.horizontalSpacerRight = QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
75
+
76
+ self.deviceScrollAreaLayout.addItem(self.horizontalSpacerRight)
77
+
78
+ self.deviceScrollArea.setWidget(self.deviceScrollAreaContents)
79
+
80
+ self.scrollAreaLayout.addWidget(self.deviceScrollArea)
81
+
82
+ self.deviceScrollBar = QScrollBar(DeviceWidgetForm)
83
+ self.deviceScrollBar.setObjectName(u"deviceScrollBar")
84
+ self.deviceScrollBar.setOrientation(Qt.Orientation.Vertical)
85
+
86
+ self.scrollAreaLayout.addWidget(self.deviceScrollBar)
87
+
88
+
89
+ self.gridLayout.addLayout(self.scrollAreaLayout, 1, 0, 1, 2)
42
90
 
43
91
 
44
92
  self.retranslateUi(DeviceWidgetForm)
@@ -1,9 +1,9 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ################################################################################
4
- ## Form generated from reading UI file 'muovi_plus_template_widget.ui'
4
+ ## Form generated from reading UI file 'otb_muovi_plus_template_widget.ui'
5
5
  ##
6
- ## Created by: Qt User Interface Compiler version 6.6.0
6
+ ## Created by: Qt User Interface Compiler version 6.10.1
7
7
  ##
8
8
  ## WARNING! All changes made in this file will be lost when recompiling UI file!
9
9
  ################################################################################
@@ -23,10 +23,11 @@ class Ui_MuoviPlusForm(object):
23
23
  def setupUi(self, MuoviPlusForm):
24
24
  if not MuoviPlusForm.objectName():
25
25
  MuoviPlusForm.setObjectName(u"MuoviPlusForm")
26
- MuoviPlusForm.resize(400, 324)
26
+ MuoviPlusForm.resize(340, 324)
27
+ MuoviPlusForm.setMaximumSize(QSize(340, 16777215))
27
28
  self.gridLayout = QGridLayout(MuoviPlusForm)
28
29
  self.gridLayout.setObjectName(u"gridLayout")
29
- self.verticalSpacer = QSpacerItem(20, 86, QSizePolicy.Minimum, QSizePolicy.Expanding)
30
+ self.verticalSpacer = QSpacerItem(20, 86, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
30
31
 
31
32
  self.gridLayout.addItem(self.verticalSpacer, 4, 0, 1, 1)
32
33
 
@@ -1,9 +1,9 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ################################################################################
4
- ## Form generated from reading UI file 'muovi_template_widget.ui'
4
+ ## Form generated from reading UI file 'otb_muovi_template_widget.ui'
5
5
  ##
6
- ## Created by: Qt User Interface Compiler version 6.6.0
6
+ ## Created by: Qt User Interface Compiler version 6.10.1
7
7
  ##
8
8
  ## WARNING! All changes made in this file will be lost when recompiling UI file!
9
9
  ################################################################################
@@ -23,10 +23,11 @@ class Ui_MuoviForm(object):
23
23
  def setupUi(self, MuoviForm):
24
24
  if not MuoviForm.objectName():
25
25
  MuoviForm.setObjectName(u"MuoviForm")
26
- MuoviForm.resize(400, 324)
26
+ MuoviForm.resize(340, 324)
27
+ MuoviForm.setMaximumSize(QSize(340, 16777215))
27
28
  self.gridLayout = QGridLayout(MuoviForm)
28
29
  self.gridLayout.setObjectName(u"gridLayout")
29
- self.verticalSpacer = QSpacerItem(20, 86, QSizePolicy.Minimum, QSizePolicy.Expanding)
30
+ self.verticalSpacer = QSpacerItem(20, 86, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
30
31
 
31
32
  self.gridLayout.addItem(self.verticalSpacer, 4, 0, 1, 1)
32
33
 
@@ -1,9 +1,9 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ################################################################################
4
- ## Form generated from reading UI file 'quattrocento_light_template_widget.ui'
4
+ ## Form generated from reading UI file 'otb_quattrocento_light_template_widget.ui'
5
5
  ##
6
- ## Created by: Qt User Interface Compiler version 6.6.0
6
+ ## Created by: Qt User Interface Compiler version 6.10.1
7
7
  ##
8
8
  ## WARNING! All changes made in this file will be lost when recompiling UI file!
9
9
  ################################################################################
@@ -23,7 +23,8 @@ class Ui_QuattrocentoLightForm(object):
23
23
  def setupUi(self, QuattrocentoLightForm):
24
24
  if not QuattrocentoLightForm.objectName():
25
25
  QuattrocentoLightForm.setObjectName(u"QuattrocentoLightForm")
26
- QuattrocentoLightForm.resize(400, 422)
26
+ QuattrocentoLightForm.resize(340, 422)
27
+ QuattrocentoLightForm.setMaximumSize(QSize(340, 16777215))
27
28
  self.gridLayout_2 = QGridLayout(QuattrocentoLightForm)
28
29
  self.gridLayout_2.setObjectName(u"gridLayout_2")
29
30
  self.widget = QWidget(QuattrocentoLightForm)
@@ -36,7 +37,7 @@ class Ui_QuattrocentoLightForm(object):
36
37
  self.gridLayout_3.setObjectName(u"gridLayout_3")
37
38
  self.commandConnectionPushButton = QPushButton(self.commandsGroupBox)
38
39
  self.commandConnectionPushButton.setObjectName(u"commandConnectionPushButton")
39
- sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
40
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Preferred)
40
41
  sizePolicy.setHorizontalStretch(0)
41
42
  sizePolicy.setVerticalStretch(0)
42
43
  sizePolicy.setHeightForWidth(self.commandConnectionPushButton.sizePolicy().hasHeightForWidth())
@@ -166,7 +167,7 @@ class Ui_QuattrocentoLightForm(object):
166
167
 
167
168
  self.gridLayout_2.addWidget(self.widget, 0, 0, 1, 1)
168
169
 
169
- self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
170
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
170
171
 
171
172
  self.gridLayout_2.addItem(self.verticalSpacer, 1, 0, 1, 1)
172
173
 
@@ -3,7 +3,7 @@
3
3
  ################################################################################
4
4
  ## Form generated from reading UI file 'otb_quattrocento_template_widget.ui'
5
5
  ##
6
- ## Created by: Qt User Interface Compiler version 6.7.0
6
+ ## Created by: Qt User Interface Compiler version 6.10.1
7
7
  ##
8
8
  ## WARNING! All changes made in this file will be lost when recompiling UI file!
9
9
  ################################################################################
@@ -23,7 +23,9 @@ class Ui_QuattrocentoForm(object):
23
23
  def setupUi(self, QuattrocentoForm):
24
24
  if not QuattrocentoForm.objectName():
25
25
  QuattrocentoForm.setObjectName(u"QuattrocentoForm")
26
- QuattrocentoForm.resize(400, 638)
26
+ QuattrocentoForm.resize(340, 638)
27
+ QuattrocentoForm.setMinimumSize(QSize(0, 550))
28
+ QuattrocentoForm.setMaximumSize(QSize(340, 16777215))
27
29
  self.gridLayout_2 = QGridLayout(QuattrocentoForm)
28
30
  self.gridLayout_2.setObjectName(u"gridLayout_2")
29
31
  self.widget = QWidget(QuattrocentoForm)
@@ -3,7 +3,7 @@
3
3
  ################################################################################
4
4
  ## Form generated from reading UI file 'otb_syncstation_template_widget.ui'
5
5
  ##
6
- ## Created by: Qt User Interface Compiler version 6.7.0
6
+ ## Created by: Qt User Interface Compiler version 6.10.1
7
7
  ##
8
8
  ## WARNING! All changes made in this file will be lost when recompiling UI file!
9
9
  ################################################################################
@@ -23,7 +23,8 @@ class Ui_SyncStationForm(object):
23
23
  def setupUi(self, SyncStationForm):
24
24
  if not SyncStationForm.objectName():
25
25
  SyncStationForm.setObjectName(u"SyncStationForm")
26
- SyncStationForm.resize(350, 608)
26
+ SyncStationForm.resize(340, 608)
27
+ SyncStationForm.setMaximumSize(QSize(340, 16777215))
27
28
  self.gridLayout = QGridLayout(SyncStationForm)
28
29
  self.gridLayout.setObjectName(u"gridLayout")
29
30
  self.inputGroupBox = QGroupBox(SyncStationForm)
@@ -104,7 +105,7 @@ class Ui_SyncStationForm(object):
104
105
 
105
106
  self.gridLayout_5.addWidget(self.muoviProbeFourDetectionModeComboBox, 3, 1, 1, 1)
106
107
 
107
- self.verticalSpacer_2 = QSpacerItem(20, 154, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
108
+ self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
108
109
 
109
110
  self.gridLayout_5.addItem(self.verticalSpacer_2, 4, 0, 1, 1)
110
111
 
@@ -383,46 +384,46 @@ class Ui_SyncStationForm(object):
383
384
  self.inputWorkingModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"EMG", None))
384
385
 
385
386
  self.label_5.setText(QCoreApplication.translate("SyncStationForm", u"Working Mode", None))
386
- self.muoviProbeOneEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi Probe 1", None))
387
+ self.muoviProbeOneEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi1", None))
387
388
  self.muoviProbeOneDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
388
389
  self.muoviProbeOneDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
389
390
  self.muoviProbeOneDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
390
391
  self.muoviProbeOneDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
391
392
 
392
- self.muoviProbeTwoEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi Probe 2", None))
393
+ self.muoviProbeTwoEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi2", None))
393
394
  self.muoviProbeTwoDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
394
395
  self.muoviProbeTwoDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
395
396
  self.muoviProbeTwoDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
396
397
  self.muoviProbeTwoDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
397
398
 
398
- self.muoviProbeThreeEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi Probe 3", None))
399
+ self.muoviProbeThreeEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi3", None))
399
400
  self.muoviProbeThreeDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
400
401
  self.muoviProbeThreeDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
401
402
  self.muoviProbeThreeDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
402
403
  self.muoviProbeThreeDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
403
404
 
404
- self.muoviProbeFourEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi Probe 4", None))
405
+ self.muoviProbeFourEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi4", None))
405
406
  self.muoviProbeFourDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
406
407
  self.muoviProbeFourDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
407
408
  self.muoviProbeFourDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
408
409
  self.muoviProbeFourDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
409
410
 
410
411
  self.probesTabWidget.setTabText(self.probesTabWidget.indexOf(self.muoviWidget), QCoreApplication.translate("SyncStationForm", u"Muovi", None))
411
- self.muoviPlusProbeOneEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi+ Probe 1", None))
412
+ self.muoviPlusProbeOneEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi+1", None))
412
413
  self.muoviPlusProbeOneDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
413
414
  self.muoviPlusProbeOneDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
414
415
  self.muoviPlusProbeOneDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
415
416
  self.muoviPlusProbeOneDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
416
417
 
417
- self.muoviPlusProbeTwoEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi+ Probe 2", None))
418
+ self.muoviPlusProbeTwoEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Muovi+2", None))
418
419
  self.muoviPlusProbeTwoDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
419
420
  self.muoviPlusProbeTwoDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
420
421
  self.muoviPlusProbeTwoDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
421
422
  self.muoviPlusProbeTwoDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
422
423
 
423
424
  self.probesTabWidget.setTabText(self.probesTabWidget.indexOf(self.muoviPlusWidget), QCoreApplication.translate("SyncStationForm", u"Muovi+", None))
424
- self.duePlusProbeNineEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+ Probe 9", None))
425
- self.duePlusProbeTenEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+ Probe 10", None))
425
+ self.duePlusProbeNineEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+9", None))
426
+ self.duePlusProbeTenEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+10", None))
426
427
  self.duePlusProbeSixDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
427
428
  self.duePlusProbeSixDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
428
429
  self.duePlusProbeSixDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
@@ -443,21 +444,21 @@ class Ui_SyncStationForm(object):
443
444
  self.duePlusProbeFourDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
444
445
  self.duePlusProbeFourDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
445
446
 
446
- self.duePlusProbeThreeEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+ Probe 3", None))
447
- self.duePlusProbeSixEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+ Probe 6", None))
448
- self.duePlusProbeEightEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+ Probe 8", None))
447
+ self.duePlusProbeThreeEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+3", None))
448
+ self.duePlusProbeSixEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+6", None))
449
+ self.duePlusProbeEightEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+8", None))
449
450
  self.duePlusProbeThreeDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
450
451
  self.duePlusProbeThreeDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
451
452
  self.duePlusProbeThreeDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
452
453
  self.duePlusProbeThreeDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
453
454
 
454
- self.duePlusProbeSevenEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+ Probe 7", None))
455
+ self.duePlusProbeSevenEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+7", None))
455
456
  self.duePlusProbeTwoDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
456
457
  self.duePlusProbeTwoDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
457
458
  self.duePlusProbeTwoDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
458
459
  self.duePlusProbeTwoDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
459
460
 
460
- self.duePlusProbeTwoEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+ Probe 2", None))
461
+ self.duePlusProbeTwoEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+2", None))
461
462
  self.duePlusProbeEightDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
462
463
  self.duePlusProbeEightDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
463
464
  self.duePlusProbeEightDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
@@ -468,19 +469,19 @@ class Ui_SyncStationForm(object):
468
469
  self.duePlusProbeSevenDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
469
470
  self.duePlusProbeSevenDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
470
471
 
471
- self.duePlusProbeFourEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+ Probe 4", None))
472
+ self.duePlusProbeFourEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+4", None))
472
473
  self.duePlusProbeFiveDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
473
474
  self.duePlusProbeFiveDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
474
475
  self.duePlusProbeFiveDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
475
476
  self.duePlusProbeFiveDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
476
477
 
477
- self.duePlusProbeFiveEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+ Probe 5", None))
478
+ self.duePlusProbeFiveEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+5", None))
478
479
  self.duePlusProbeOneDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 8)", None))
479
480
  self.duePlusProbeOneDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SyncStationForm", u"Monopolar (Gain 4)", None))
480
481
  self.duePlusProbeOneDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SyncStationForm", u"Impedance Check", None))
481
482
  self.duePlusProbeOneDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SyncStationForm", u"Test", None))
482
483
 
483
- self.duePlusProbeOneEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+ Probe 1", None))
484
+ self.duePlusProbeOneEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+1", None))
484
485
  self.probesTabWidget.setTabText(self.probesTabWidget.indexOf(self.duePlusWidget), QCoreApplication.translate("SyncStationForm", u"Due+", None))
485
486
  self.commandsGroupBox.setTitle(QCoreApplication.translate("SyncStationForm", u"Commands", None))
486
487
  self.commandConnectionPushButton.setText(QCoreApplication.translate("SyncStationForm", u"Connect", None))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: biosignal-device-interface
3
- Version: 0.2.2
3
+ Version: 0.2.3
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
  License-File: LICENSE
@@ -19,28 +19,28 @@ biosignal_device_interface/devices/otb/otb_syncstation.py,sha256=bRsJeNSYRNfmcfN
19
19
  biosignal_device_interface/gui/device_template_widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  biosignal_device_interface/gui/device_template_widgets/all_devices_widget.py,sha256=QBQDqgHqk_6eqUZZuGywd8fL3f5mRM7EtwwB96UvBbs,1940
21
21
  biosignal_device_interface/gui/device_template_widgets/core/base_device_widget.py,sha256=6SeXoAd4yss7JepfqyCplxQMHAZ7V8XgqfDBhwRwV_A,3790
22
- biosignal_device_interface/gui/device_template_widgets/core/base_multiple_devices_widget.py,sha256=Z3z5vbzYO6Oj6DiefX5kBXWlUCRGFy8zabhvXBFxRJE,3971
22
+ biosignal_device_interface/gui/device_template_widgets/core/base_multiple_devices_widget.py,sha256=ZTf9I0rIExLWR1uATMvn7j8CDa8OU_T8YrMEXkEeS2w,4829
23
23
  biosignal_device_interface/gui/device_template_widgets/otb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  biosignal_device_interface/gui/device_template_widgets/otb/otb_devices_widget.py,sha256=MWgd5KWqZIiZM3NdSqMHCvftkTScGH8pD9iPJUxM6es,1765
25
- biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_plus_widget.py,sha256=DSKQpYmTGLz4YsAbj81AWVW8octc0dxqZU1lwR-ICFU,5957
26
- biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_widget.py,sha256=ZDhRehNt_VgTLFQMOIhcbqDRGB2LnfvRkg_urcFeAs4,5933
27
- biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_light_widget.py,sha256=dGvPvlmQ5pm9sXHeSwKxfB1RrKmKoR8O2eaepSzZUoc,6630
28
- biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_widget.py,sha256=pU9iV5VIdxgjObxV21pUVEHc9xZfkEZn8-BLpJHwx4Q,10296
29
- biosignal_device_interface/gui/device_template_widgets/otb/otb_syncstation_widget.py,sha256=eaEfH9tWzpHzqSOyPs-7DN_97asIeEh7WH0htShxF3A,11146
30
- biosignal_device_interface/gui/plot_widgets/biosignal_plot_widget.py,sha256=Buu8k5n14E6CDGR9lAXwjmJ4ShFfdxHlBMJJ05GMgF4,18281
31
- biosignal_device_interface/gui/ui/devices_template_widget.ui,sha256=nLG2GprRG5b2dC2HrRyEstsob8VMYI4mmvKm2yrGbWc,939
32
- biosignal_device_interface/gui/ui/otb_muovi_plus_template_widget.ui,sha256=NnRkQzcQ6anaxgXPM-ovBIqAzELELf9YUQUtvMOGnvo,4747
33
- biosignal_device_interface/gui/ui/otb_muovi_template_widget.ui,sha256=nsB9oC5oYrT-X26nMUFgdBrzPqnuEhQ_OEorhJMuAyE,4735
34
- biosignal_device_interface/gui/ui/otb_quattrocento_light_template_widget.ui,sha256=dXSydZiZ0YvBrn-FTilethoNmfDNjWRNwkhGmlgkJ9Q,8155
35
- biosignal_device_interface/gui/ui/otb_quattrocento_template_widget.ui,sha256=l77u32XVZ_GHHCnLiVJPxl4QjKZYdxgTJqJgaRRCq4Y,12550
36
- biosignal_device_interface/gui/ui/otb_syncstation_template_widget.ui,sha256=hWrJEEkux5CmidoG34OxyFp64WtAWPt4rZK0BSaFsvw,22941
37
- biosignal_device_interface/gui/ui_compiled/devices_template_widget.py,sha256=eR08JM7NAvnDV_WIChTs4DRUDSpPjt1MEoLNuhXFORU,2240
38
- biosignal_device_interface/gui/ui_compiled/otb_muovi_plus_template_widget.py,sha256=POFrhVcUhRdM2hMlWXZ1CWszUQMo359yKFLyKQ5xwNI,7554
39
- biosignal_device_interface/gui/ui_compiled/otb_muovi_template_widget.py,sha256=kgao7GsKqZr44cVlTLwTWC8BnptttSUB8JIC3VaY3Zc,7413
40
- biosignal_device_interface/gui/ui_compiled/otb_quattrocento_light_template_widget.py,sha256=FT_SOrjGCneeO5KMLrDwxkZcDqhlB1olw6r-aXS5Ncw,11931
41
- biosignal_device_interface/gui/ui_compiled/otb_quattrocento_template_widget.py,sha256=FNyYDg6oYd9lTT00zKhLl2HDPHiZogTQf7Ayz97l0co,17321
42
- biosignal_device_interface/gui/ui_compiled/otb_syncstation_template_widget.py,sha256=RBRpiIrBvNMviOPszCV5HpRGEGnyFMkpagfpyXnt12s,32508
43
- biosignal_device_interface-0.2.2.dist-info/METADATA,sha256=xEAkCTVTs5gdQkVksYFIaPyEjBkuJOY_bFAQiNf8_GQ,3936
44
- biosignal_device_interface-0.2.2.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
45
- biosignal_device_interface-0.2.2.dist-info/licenses/LICENSE,sha256=zFRw_u1mGSOH8GrpOu0L1P765aX9fB5UpKz06mTxAos,34893
46
- biosignal_device_interface-0.2.2.dist-info/RECORD,,
25
+ biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_plus_widget.py,sha256=i3u9jWbRW_iqyOMeRjfNxdqPwhFJmWgKiiRFgRy0X2E,7096
26
+ biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_widget.py,sha256=oKS4KbEBvrXNjkGvrw9fhPucn1ZSuWdbwPSN7zOL9TU,7071
27
+ biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_light_widget.py,sha256=tSn426Ul5eiiMeToPzSWKqjzM2Q0o8kC_PW1a4FsXQo,7291
28
+ biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_widget.py,sha256=Z1H4Gq17yA62h8vSzXowit6n968qbIXH_VX0YiFiI-o,12072
29
+ biosignal_device_interface/gui/device_template_widgets/otb/otb_syncstation_widget.py,sha256=MJqGJobCGoKGdorwPkE2FgNiOu_g3wlML6wBkrs4nPg,11856
30
+ biosignal_device_interface/gui/plot_widgets/biosignal_plot_widget.py,sha256=yH0nlLugbAJw6U775DvlAeHk53tm7LlA9mAGr8RTKVw,20306
31
+ biosignal_device_interface/gui/ui/devices_template_widget.ui,sha256=w3HsbMXkWYouE11LjcPeOjlqGw6sgH83U3S3X781huw,3827
32
+ biosignal_device_interface/gui/ui/otb_muovi_plus_template_widget.ui,sha256=1QUamvBk_nSDdFwppZJXBu7xJP4o0XyPMPIJJGwUylc,4867
33
+ biosignal_device_interface/gui/ui/otb_muovi_template_widget.ui,sha256=fcL-u7Nd1sdee4XkVtHLjc14J2ZQ8TsHSuMc6k6HnX4,4855
34
+ biosignal_device_interface/gui/ui/otb_quattrocento_light_template_widget.ui,sha256=bc_OlwKDVMqb2o03hAaV942RhMEbAguxLczaJszVRoQ,8275
35
+ biosignal_device_interface/gui/ui/otb_quattrocento_template_widget.ui,sha256=iSKXuEMEloD7yOXYgX9FEvD5qHELKJhjzjedHh-TTu0,12783
36
+ biosignal_device_interface/gui/ui/otb_syncstation_template_widget.ui,sha256=VRq9sz-lkrw6Ne4abO5dciPP9onZqU6H_h3oruRmh_Y,22948
37
+ biosignal_device_interface/gui/ui_compiled/devices_template_widget.py,sha256=M7Q59uIv5hQtiIuQbWlGoAILC2Es95Yph7CwXNXFl-w,4889
38
+ biosignal_device_interface/gui/ui_compiled/otb_muovi_plus_template_widget.py,sha256=WY-5QkorbovWlUdIIZmAGX35xnmK7amO6-_UV5od4XI,7632
39
+ biosignal_device_interface/gui/ui_compiled/otb_muovi_template_widget.py,sha256=agpo9OwXCpllIB6KuyBfd7NFXQNgxTy5g3IapUhQimI,7487
40
+ biosignal_device_interface/gui/ui_compiled/otb_quattrocento_light_template_widget.py,sha256=J_neLi-Mrqoo9feKHd9SNohxbEBqJY2YW11dJG_203k,12031
41
+ biosignal_device_interface/gui/ui_compiled/otb_quattrocento_template_widget.py,sha256=wJQCrRhGm-_Dj3y81BkCprGoTGErVlQTDS7GNdm_xDs,17439
42
+ biosignal_device_interface/gui/ui_compiled/otb_syncstation_template_widget.py,sha256=x_-ApMy8hVU8XCBMW6DEgH2rb1Cbk_zYmjDoaFd7r-I,32457
43
+ biosignal_device_interface-0.2.3.dist-info/METADATA,sha256=33u0EUw0TSmkhrw3dUVvbUH1A0zWdp0xCRZEbo6nQhQ,3936
44
+ biosignal_device_interface-0.2.3.dist-info/WHEEL,sha256=kJCRJT_g0adfAJzTx2GUMmS80rTJIVHRCfG0DQgLq3o,88
45
+ biosignal_device_interface-0.2.3.dist-info/licenses/LICENSE,sha256=zFRw_u1mGSOH8GrpOu0L1P765aX9fB5UpKz06mTxAos,34893
46
+ biosignal_device_interface-0.2.3.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.2.1
2
+ Generator: poetry-core 2.3.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any