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.
- biosignal_device_interface/gui/device_template_widgets/core/base_multiple_devices_widget.py +17 -0
- biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_plus_widget.py +16 -0
- biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_widget.py +16 -0
- biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_light_widget.py +7 -0
- biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_widget.py +31 -0
- biosignal_device_interface/gui/device_template_widgets/otb/otb_syncstation_widget.py +7 -0
- biosignal_device_interface/gui/plot_widgets/biosignal_plot_widget.py +53 -4
- biosignal_device_interface/gui/ui/devices_template_widget.ui +99 -4
- biosignal_device_interface/gui/ui/otb_muovi_plus_template_widget.ui +7 -1
- biosignal_device_interface/gui/ui/otb_muovi_template_widget.ui +7 -1
- biosignal_device_interface/gui/ui/otb_quattrocento_light_template_widget.ui +7 -1
- biosignal_device_interface/gui/ui/otb_quattrocento_template_widget.ui +13 -1
- biosignal_device_interface/gui/ui/otb_syncstation_template_widget.ui +24 -18
- biosignal_device_interface/gui/ui_compiled/devices_template_widget.py +53 -5
- biosignal_device_interface/gui/ui_compiled/otb_muovi_plus_template_widget.py +5 -4
- biosignal_device_interface/gui/ui_compiled/otb_muovi_template_widget.py +5 -4
- biosignal_device_interface/gui/ui_compiled/otb_quattrocento_light_template_widget.py +6 -5
- biosignal_device_interface/gui/ui_compiled/otb_quattrocento_template_widget.py +4 -2
- biosignal_device_interface/gui/ui_compiled/otb_syncstation_template_widget.py +20 -19
- {biosignal_device_interface-0.2.2.dist-info → biosignal_device_interface-0.2.3.dist-info}/METADATA +1 -1
- {biosignal_device_interface-0.2.2.dist-info → biosignal_device_interface-0.2.3.dist-info}/RECORD +23 -23
- {biosignal_device_interface-0.2.2.dist-info → biosignal_device_interface-0.2.3.dist-info}/WHEEL +1 -1
- {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
|
|
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
|
-
<
|
|
29
|
-
<property name="
|
|
30
|
-
<number
|
|
34
|
+
<layout class="QHBoxLayout" name="scrollAreaLayout">
|
|
35
|
+
<property name="spacing">
|
|
36
|
+
<number>6</number>
|
|
31
37
|
</property>
|
|
32
|
-
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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
|
+
## 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,
|
|
19
|
-
|
|
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.
|
|
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.
|
|
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 '
|
|
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
|
+
## 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(
|
|
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 '
|
|
4
|
+
## Form generated from reading UI file 'otb_muovi_template_widget.ui'
|
|
5
5
|
##
|
|
6
|
-
## Created by: Qt User Interface Compiler version 6.
|
|
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(
|
|
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 '
|
|
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
|
+
## 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(
|
|
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.
|
|
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(
|
|
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.
|
|
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(
|
|
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,
|
|
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"
|
|
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"
|
|
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"
|
|
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"
|
|
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+
|
|
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+
|
|
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+
|
|
425
|
-
self.duePlusProbeTenEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+
|
|
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+
|
|
447
|
-
self.duePlusProbeSixEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+
|
|
448
|
-
self.duePlusProbeEightEnableCheckBox.setText(QCoreApplication.translate("SyncStationForm", u"Due+
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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+
|
|
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))
|
{biosignal_device_interface-0.2.2.dist-info → biosignal_device_interface-0.2.3.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: biosignal-device-interface
|
|
3
|
-
Version: 0.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
|
{biosignal_device_interface-0.2.2.dist-info → biosignal_device_interface-0.2.3.dist-info}/RECORD
RENAMED
|
@@ -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=
|
|
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=
|
|
26
|
-
biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_widget.py,sha256=
|
|
27
|
-
biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_light_widget.py,sha256=
|
|
28
|
-
biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_widget.py,sha256=
|
|
29
|
-
biosignal_device_interface/gui/device_template_widgets/otb/otb_syncstation_widget.py,sha256=
|
|
30
|
-
biosignal_device_interface/gui/plot_widgets/biosignal_plot_widget.py,sha256=
|
|
31
|
-
biosignal_device_interface/gui/ui/devices_template_widget.ui,sha256=
|
|
32
|
-
biosignal_device_interface/gui/ui/otb_muovi_plus_template_widget.ui,sha256=
|
|
33
|
-
biosignal_device_interface/gui/ui/otb_muovi_template_widget.ui,sha256=
|
|
34
|
-
biosignal_device_interface/gui/ui/otb_quattrocento_light_template_widget.ui,sha256=
|
|
35
|
-
biosignal_device_interface/gui/ui/otb_quattrocento_template_widget.ui,sha256=
|
|
36
|
-
biosignal_device_interface/gui/ui/otb_syncstation_template_widget.ui,sha256=
|
|
37
|
-
biosignal_device_interface/gui/ui_compiled/devices_template_widget.py,sha256=
|
|
38
|
-
biosignal_device_interface/gui/ui_compiled/otb_muovi_plus_template_widget.py,sha256=
|
|
39
|
-
biosignal_device_interface/gui/ui_compiled/otb_muovi_template_widget.py,sha256=
|
|
40
|
-
biosignal_device_interface/gui/ui_compiled/otb_quattrocento_light_template_widget.py,sha256=
|
|
41
|
-
biosignal_device_interface/gui/ui_compiled/otb_quattrocento_template_widget.py,sha256=
|
|
42
|
-
biosignal_device_interface/gui/ui_compiled/otb_syncstation_template_widget.py,sha256=
|
|
43
|
-
biosignal_device_interface-0.2.
|
|
44
|
-
biosignal_device_interface-0.2.
|
|
45
|
-
biosignal_device_interface-0.2.
|
|
46
|
-
biosignal_device_interface-0.2.
|
|
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,,
|
|
File without changes
|