biosignal-device-interface 0.2.3__py3-none-any.whl → 0.2.5__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.
@@ -0,0 +1,241 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ################################################################################
4
+ ## Form generated from reading UI file 'otb_sessantaquattro_template_widget.ui'
5
+ ##
6
+ ## Created by: Qt User Interface Compiler version 6.10.1
7
+ ##
8
+ ## WARNING! All changes made in this file will be lost when recompiling UI file!
9
+ ################################################################################
10
+
11
+ from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
12
+ QMetaObject, QObject, QPoint, QRect,
13
+ QSize, QTime, QUrl, Qt)
14
+ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
15
+ QFont, QFontDatabase, QGradient, QIcon,
16
+ QImage, QKeySequence, QLinearGradient, QPainter,
17
+ QPalette, QPixmap, QRadialGradient, QTransform)
18
+ from PySide6.QtWidgets import (QApplication, QComboBox, QGridLayout, QGroupBox,
19
+ QLabel, QLineEdit, QPushButton, QRadioButton,
20
+ QSizePolicy, QSpacerItem, QWidget)
21
+
22
+ class Ui_SessantaquattroForm(object):
23
+ def setupUi(self, SessantaquattroForm):
24
+ if not SessantaquattroForm.objectName():
25
+ SessantaquattroForm.setObjectName(u"SessantaquattroForm")
26
+ SessantaquattroForm.resize(340, 486)
27
+ SessantaquattroForm.setMinimumSize(QSize(0, 400))
28
+ SessantaquattroForm.setMaximumSize(QSize(340, 16777215))
29
+ self.gridLayout_2 = QGridLayout(SessantaquattroForm)
30
+ self.gridLayout_2.setObjectName(u"gridLayout_2")
31
+ self.widget = QWidget(SessantaquattroForm)
32
+ self.widget.setObjectName(u"widget")
33
+ self.gridLayout_5 = QGridLayout(self.widget)
34
+ self.gridLayout_5.setObjectName(u"gridLayout_5")
35
+ self.inputParametersGroupBox = QGroupBox(self.widget)
36
+ self.inputParametersGroupBox.setObjectName(u"inputParametersGroupBox")
37
+ self.gridLayout_4 = QGridLayout(self.inputParametersGroupBox)
38
+ self.gridLayout_4.setObjectName(u"gridLayout_4")
39
+ self.label_10 = QLabel(self.inputParametersGroupBox)
40
+ self.label_10.setObjectName(u"label_10")
41
+
42
+ self.gridLayout_4.addWidget(self.label_10, 2, 0, 1, 1)
43
+
44
+ self.inputDetectionModeComboBox = QComboBox(self.inputParametersGroupBox)
45
+ self.inputDetectionModeComboBox.addItem("")
46
+ self.inputDetectionModeComboBox.addItem("")
47
+ self.inputDetectionModeComboBox.addItem("")
48
+ self.inputDetectionModeComboBox.addItem("")
49
+ self.inputDetectionModeComboBox.addItem("")
50
+ self.inputDetectionModeComboBox.addItem("")
51
+ self.inputDetectionModeComboBox.addItem("")
52
+ self.inputDetectionModeComboBox.addItem("")
53
+ self.inputDetectionModeComboBox.setObjectName(u"inputDetectionModeComboBox")
54
+
55
+ self.gridLayout_4.addWidget(self.inputDetectionModeComboBox, 2, 1, 1, 1)
56
+
57
+ self.inputLowResolutionRadioButton = QRadioButton(self.inputParametersGroupBox)
58
+ self.inputLowResolutionRadioButton.setObjectName(u"inputLowResolutionRadioButton")
59
+ self.inputLowResolutionRadioButton.setChecked(True)
60
+
61
+ self.gridLayout_4.addWidget(self.inputLowResolutionRadioButton, 1, 0, 1, 1)
62
+
63
+ self.label_4 = QLabel(self.inputParametersGroupBox)
64
+ self.label_4.setObjectName(u"label_4")
65
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
66
+ sizePolicy.setHorizontalStretch(0)
67
+ sizePolicy.setVerticalStretch(0)
68
+ sizePolicy.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth())
69
+ self.label_4.setSizePolicy(sizePolicy)
70
+
71
+ self.gridLayout_4.addWidget(self.label_4, 0, 0, 1, 2)
72
+
73
+ self.inputHighResolutionRadioButton = QRadioButton(self.inputParametersGroupBox)
74
+ self.inputHighResolutionRadioButton.setObjectName(u"inputHighResolutionRadioButton")
75
+
76
+ self.gridLayout_4.addWidget(self.inputHighResolutionRadioButton, 1, 1, 1, 1)
77
+
78
+ self.label_5 = QLabel(self.inputParametersGroupBox)
79
+ self.label_5.setObjectName(u"label_5")
80
+
81
+ self.gridLayout_4.addWidget(self.label_5, 3, 0, 1, 1)
82
+
83
+ self.inputGainModeComboBox = QComboBox(self.inputParametersGroupBox)
84
+ self.inputGainModeComboBox.addItem("")
85
+ self.inputGainModeComboBox.addItem("")
86
+ self.inputGainModeComboBox.addItem("")
87
+ self.inputGainModeComboBox.addItem("")
88
+ self.inputGainModeComboBox.setObjectName(u"inputGainModeComboBox")
89
+
90
+ self.gridLayout_4.addWidget(self.inputGainModeComboBox, 3, 1, 1, 1)
91
+
92
+
93
+ self.gridLayout_5.addWidget(self.inputParametersGroupBox, 2, 0, 1, 1)
94
+
95
+ self.commandsGroupBox = QGroupBox(self.widget)
96
+ self.commandsGroupBox.setObjectName(u"commandsGroupBox")
97
+ self.gridLayout_3 = QGridLayout(self.commandsGroupBox)
98
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
99
+ self.commandConnectionPushButton = QPushButton(self.commandsGroupBox)
100
+ self.commandConnectionPushButton.setObjectName(u"commandConnectionPushButton")
101
+
102
+ self.gridLayout_3.addWidget(self.commandConnectionPushButton, 0, 0, 1, 1)
103
+
104
+ self.commandConfigurationPushButton = QPushButton(self.commandsGroupBox)
105
+ self.commandConfigurationPushButton.setObjectName(u"commandConfigurationPushButton")
106
+
107
+ self.gridLayout_3.addWidget(self.commandConfigurationPushButton, 1, 0, 1, 1)
108
+
109
+ self.commandStreamPushButton = QPushButton(self.commandsGroupBox)
110
+ self.commandStreamPushButton.setObjectName(u"commandStreamPushButton")
111
+
112
+ self.gridLayout_3.addWidget(self.commandStreamPushButton, 2, 0, 1, 1)
113
+
114
+
115
+ self.gridLayout_5.addWidget(self.commandsGroupBox, 3, 0, 1, 1)
116
+
117
+ self.acquisitionGroupBox = QGroupBox(self.widget)
118
+ self.acquisitionGroupBox.setObjectName(u"acquisitionGroupBox")
119
+ self.gridLayout = QGridLayout(self.acquisitionGroupBox)
120
+ self.gridLayout.setObjectName(u"gridLayout")
121
+ self.label_2 = QLabel(self.acquisitionGroupBox)
122
+ self.label_2.setObjectName(u"label_2")
123
+
124
+ self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
125
+
126
+ self.acquisitionSamplingFrequencyModeComboBox = QComboBox(self.acquisitionGroupBox)
127
+ self.acquisitionSamplingFrequencyModeComboBox.addItem("")
128
+ self.acquisitionSamplingFrequencyModeComboBox.addItem("")
129
+ self.acquisitionSamplingFrequencyModeComboBox.addItem("")
130
+ self.acquisitionSamplingFrequencyModeComboBox.addItem("")
131
+ self.acquisitionSamplingFrequencyModeComboBox.setObjectName(u"acquisitionSamplingFrequencyModeComboBox")
132
+
133
+ self.gridLayout.addWidget(self.acquisitionSamplingFrequencyModeComboBox, 0, 1, 1, 1)
134
+
135
+ self.acquisitionChannelModeComboBox = QComboBox(self.acquisitionGroupBox)
136
+ self.acquisitionChannelModeComboBox.addItem("")
137
+ self.acquisitionChannelModeComboBox.addItem("")
138
+ self.acquisitionChannelModeComboBox.addItem("")
139
+ self.acquisitionChannelModeComboBox.addItem("")
140
+ self.acquisitionChannelModeComboBox.setObjectName(u"acquisitionChannelModeComboBox")
141
+
142
+ self.gridLayout.addWidget(self.acquisitionChannelModeComboBox, 1, 1, 1, 1)
143
+
144
+ self.label = QLabel(self.acquisitionGroupBox)
145
+ self.label.setObjectName(u"label")
146
+
147
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
148
+
149
+
150
+ self.gridLayout_5.addWidget(self.acquisitionGroupBox, 1, 0, 1, 1)
151
+
152
+ self.connectionGroupBox = QGroupBox(self.widget)
153
+ self.connectionGroupBox.setObjectName(u"connectionGroupBox")
154
+ self.gridLayout_7 = QGridLayout(self.connectionGroupBox)
155
+ self.gridLayout_7.setObjectName(u"gridLayout_7")
156
+ self.label_6 = QLabel(self.connectionGroupBox)
157
+ self.label_6.setObjectName(u"label_6")
158
+
159
+ self.gridLayout_7.addWidget(self.label_6, 0, 0, 1, 1)
160
+
161
+ self.connectionIPLineEdit = QLineEdit(self.connectionGroupBox)
162
+ self.connectionIPLineEdit.setObjectName(u"connectionIPLineEdit")
163
+
164
+ self.gridLayout_7.addWidget(self.connectionIPLineEdit, 0, 1, 1, 1)
165
+
166
+ self.label_7 = QLabel(self.connectionGroupBox)
167
+ self.label_7.setObjectName(u"label_7")
168
+
169
+ self.gridLayout_7.addWidget(self.label_7, 1, 0, 1, 1)
170
+
171
+ self.connectionPortLineEdit = QLineEdit(self.connectionGroupBox)
172
+ self.connectionPortLineEdit.setObjectName(u"connectionPortLineEdit")
173
+
174
+ self.gridLayout_7.addWidget(self.connectionPortLineEdit, 1, 1, 1, 1)
175
+
176
+
177
+ self.gridLayout_5.addWidget(self.connectionGroupBox, 0, 0, 1, 1)
178
+
179
+
180
+ self.gridLayout_2.addWidget(self.widget, 0, 0, 1, 1)
181
+
182
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
183
+
184
+ self.gridLayout_2.addItem(self.verticalSpacer, 1, 0, 1, 1)
185
+
186
+
187
+ self.retranslateUi(SessantaquattroForm)
188
+
189
+ self.acquisitionSamplingFrequencyModeComboBox.setCurrentIndex(2)
190
+ self.acquisitionChannelModeComboBox.setCurrentIndex(3)
191
+
192
+
193
+ QMetaObject.connectSlotsByName(SessantaquattroForm)
194
+ # setupUi
195
+
196
+ def retranslateUi(self, SessantaquattroForm):
197
+ SessantaquattroForm.setWindowTitle(QCoreApplication.translate("SessantaquattroForm", u"Form", None))
198
+ self.inputParametersGroupBox.setTitle(QCoreApplication.translate("SessantaquattroForm", u"Input Parameters", None))
199
+ self.label_10.setText(QCoreApplication.translate("SessantaquattroForm", u"Mode", None))
200
+ self.inputDetectionModeComboBox.setItemText(0, QCoreApplication.translate("SessantaquattroForm", u"Monopolar", None))
201
+ self.inputDetectionModeComboBox.setItemText(1, QCoreApplication.translate("SessantaquattroForm", u"Bipolar", None))
202
+ self.inputDetectionModeComboBox.setItemText(2, QCoreApplication.translate("SessantaquattroForm", u"Differential", None))
203
+ self.inputDetectionModeComboBox.setItemText(3, QCoreApplication.translate("SessantaquattroForm", u"Accelerometer", None))
204
+ self.inputDetectionModeComboBox.setItemText(4, QCoreApplication.translate("SessantaquattroForm", u"Undefined", None))
205
+ self.inputDetectionModeComboBox.setItemText(5, QCoreApplication.translate("SessantaquattroForm", u"Impedance (Advanced)", None))
206
+ self.inputDetectionModeComboBox.setItemText(6, QCoreApplication.translate("SessantaquattroForm", u"Impedance", None))
207
+ self.inputDetectionModeComboBox.setItemText(7, QCoreApplication.translate("SessantaquattroForm", u"Test", None))
208
+
209
+ self.inputLowResolutionRadioButton.setText(QCoreApplication.translate("SessantaquattroForm", u"16 Bit", None))
210
+ self.label_4.setText(QCoreApplication.translate("SessantaquattroForm", u"Resolution", None))
211
+ self.inputHighResolutionRadioButton.setText(QCoreApplication.translate("SessantaquattroForm", u"24 Bit", None))
212
+ self.label_5.setText(QCoreApplication.translate("SessantaquattroForm", u"Gain", None))
213
+ self.inputGainModeComboBox.setItemText(0, QCoreApplication.translate("SessantaquattroForm", u"Default", None))
214
+ self.inputGainModeComboBox.setItemText(1, QCoreApplication.translate("SessantaquattroForm", u"Gain 4", None))
215
+ self.inputGainModeComboBox.setItemText(2, QCoreApplication.translate("SessantaquattroForm", u"Gain 6", None))
216
+ self.inputGainModeComboBox.setItemText(3, QCoreApplication.translate("SessantaquattroForm", u"Gain 8", None))
217
+
218
+ self.commandsGroupBox.setTitle(QCoreApplication.translate("SessantaquattroForm", u"Commands", None))
219
+ self.commandConnectionPushButton.setText(QCoreApplication.translate("SessantaquattroForm", u"Connect", None))
220
+ self.commandConfigurationPushButton.setText(QCoreApplication.translate("SessantaquattroForm", u"Configure", None))
221
+ self.commandStreamPushButton.setText(QCoreApplication.translate("SessantaquattroForm", u"Stream", None))
222
+ self.acquisitionGroupBox.setTitle(QCoreApplication.translate("SessantaquattroForm", u"Acquisiton Parameters", None))
223
+ self.label_2.setText(QCoreApplication.translate("SessantaquattroForm", u"Number of Channels", None))
224
+ self.acquisitionSamplingFrequencyModeComboBox.setItemText(0, QCoreApplication.translate("SessantaquattroForm", u"500", None))
225
+ self.acquisitionSamplingFrequencyModeComboBox.setItemText(1, QCoreApplication.translate("SessantaquattroForm", u"1000", None))
226
+ self.acquisitionSamplingFrequencyModeComboBox.setItemText(2, QCoreApplication.translate("SessantaquattroForm", u"2000", None))
227
+ self.acquisitionSamplingFrequencyModeComboBox.setItemText(3, QCoreApplication.translate("SessantaquattroForm", u"4000", None))
228
+
229
+ self.acquisitionChannelModeComboBox.setItemText(0, QCoreApplication.translate("SessantaquattroForm", u"8 Bio + 2 AUX + 2 ACC", None))
230
+ self.acquisitionChannelModeComboBox.setItemText(1, QCoreApplication.translate("SessantaquattroForm", u"16 Bio + 2 AUX + 2 ACC", None))
231
+ self.acquisitionChannelModeComboBox.setItemText(2, QCoreApplication.translate("SessantaquattroForm", u"32 Bio + 2 AUX + 2 ACC", None))
232
+ self.acquisitionChannelModeComboBox.setItemText(3, QCoreApplication.translate("SessantaquattroForm", u"64 Bio + 2 AUX + 2 ACC", None))
233
+
234
+ self.label.setText(QCoreApplication.translate("SessantaquattroForm", u"Sampling Frequency", None))
235
+ self.connectionGroupBox.setTitle(QCoreApplication.translate("SessantaquattroForm", u"Connection parameters", None))
236
+ self.label_6.setText(QCoreApplication.translate("SessantaquattroForm", u"IP", None))
237
+ self.connectionIPLineEdit.setText(QCoreApplication.translate("SessantaquattroForm", u"0.0.0.0", None))
238
+ self.label_7.setText(QCoreApplication.translate("SessantaquattroForm", u"Port", None))
239
+ self.connectionPortLineEdit.setText(QCoreApplication.translate("SessantaquattroForm", u"45454", None))
240
+ # retranslateUi
241
+
@@ -0,0 +1,130 @@
1
+ Metadata-Version: 2.4
2
+ Name: biosignal-device-interface
3
+ Version: 0.2.5
4
+ Summary: Python communication interface to many biosignal devices manufactured by several companies to easy integration in custom PySide6 applications.
5
+ Author-email: "Dominik I. Braun" <dome.braun@fau.de>, "Raul C. Sîmpetru" <raul.simpetru@fau.de>
6
+ License: GPL-3.0
7
+ License-File: LICENSE
8
+ Requires-Python: <3.13,>=3.10
9
+ Requires-Dist: aenum>=3.1.15
10
+ Requires-Dist: matplotlib>=3.9.0
11
+ Requires-Dist: numpy>=1.26.4
12
+ Requires-Dist: psutil>=5.9.8
13
+ Requires-Dist: pyside6>=6.7.0
14
+ Requires-Dist: scipy>=1.14.0
15
+ Requires-Dist: tornado>=6.4.2
16
+ Requires-Dist: vispy>=0.14.3
17
+ Description-Content-Type: text/markdown
18
+
19
+ # Biosignal-Device-Interface
20
+
21
+ <!-- PROJECT LOGO -->
22
+ <br />
23
+ <div align="center">
24
+ <a href="https://github.com/NsquaredLab/Biosignal-Device-Interface">
25
+ <img src="images/logo.png" alt="Logo" width="80" height="80">
26
+ </a>
27
+
28
+ <h3 align="center">Biosignal Device Interface</h3>
29
+
30
+ <p align="center">
31
+ Python communication interface to many biosignal devices manufactured by several companies for easy integration in custom PySide6 applications.
32
+ <br />
33
+ <a href="https://nsquaredlab.github.io/Biosignal-Device-Interface/"><strong>Explore the docs »</strong></a>
34
+ </p>
35
+
36
+ [![PyPI version](https://img.shields.io/pypi/v/biosignal-device-interface.svg)](https://pypi.org/project/biosignal-device-interface/)
37
+ [![Python versions](https://img.shields.io/pypi/pyversions/biosignal-device-interface.svg)](https://pypi.org/project/biosignal-device-interface/)
38
+ [![License](https://img.shields.io/badge/license-GPL--3.0-blue.svg)](LICENSE)
39
+
40
+ </div>
41
+
42
+
43
+
44
+ <!-- TABLE OF CONTENTS -->
45
+ <details>
46
+ <summary>Table of Contents</summary>
47
+ <ol>
48
+ <li><a href="#about-the-project">About The Project</a></li>
49
+ <li><a href="#supported-devices">Supported Devices</a></li>
50
+ <li>
51
+ <a href="#getting-started">Getting Started</a>
52
+ <ul>
53
+ <li><a href="#installation">Installation</a></li>
54
+ <li><a href="#development-installation">Development Installation</a></li>
55
+ </ul>
56
+ </li>
57
+ <li><a href="#usage">Usage</a></li>
58
+ <li><a href="#license">License</a></li>
59
+ <li><a href="#contact">Contact</a></li>
60
+ <li><a href="#acknowledgments">Acknowledgments</a></li>
61
+ </ol>
62
+ </details>
63
+
64
+
65
+ ## About The Project
66
+
67
+ Biosignal Device Interface provides a unified Python API for communicating with biosignal acquisition devices from multiple manufacturers. It includes ready-to-use PySide6 widgets for device configuration and data streaming, making it easy to integrate biosignal acquisition into custom applications.
68
+
69
+ ## Supported Devices
70
+
71
+ ### OT Bioelettronica
72
+ - **Quattrocento** - 400+ channel EMG/EEG amplifier
73
+ - **Quattrocento Light** - Compact version of Quattrocento
74
+ - **Muovi** - Wearable EMG sensor
75
+ - **Muovi+** - Enhanced wearable EMG sensor
76
+ - **SyncStation** - Multi-device synchronization hub (Muovi, Muovi+, Due+)
77
+
78
+ ### Other Devices
79
+ - More devices coming soon...
80
+
81
+ <!-- GETTING STARTED -->
82
+ ## Getting Started
83
+
84
+ ### Installation
85
+
86
+ Install from PyPI:
87
+ ```bash
88
+ pip install biosignal-device-interface
89
+ ```
90
+
91
+ Or with Poetry:
92
+ ```bash
93
+ poetry add biosignal-device-interface
94
+ ```
95
+
96
+ ### Development Installation
97
+
98
+ Clone the repository and install with development dependencies:
99
+
100
+ ```bash
101
+ git clone https://github.com/NsquaredLab/Biosignal-Device-Interface.git
102
+ cd Biosignal-Device-Interface
103
+ poetry install --with dev,docs
104
+ ```
105
+
106
+ <!-- USAGE EXAMPLES -->
107
+ ## Usage
108
+
109
+ Examples of how you can use this package can be found in our [examples gallery](https://nsquaredlab.github.io/Biosignal-Device-Interface/auto_examples/index.html).
110
+
111
+ <!-- LICENSE -->
112
+ ## License
113
+
114
+ Distributed under the GPL-3.0 License. See `LICENSE` for more information.
115
+
116
+ <!-- CONTACT -->
117
+ ## Contact
118
+
119
+ - [Dominik I. Braun](https://www.nsquared.tf.fau.de/person/dominik-braun/) - dome.braun@fau.de
120
+ - [Raul C. Sîmpetru](https://www.nsquared.tf.fau.de/person/raul-simpetru/) - raul.simpetru@fau.de
121
+
122
+ Project Link: [https://github.com/NsquaredLab/Biosignal-Device-Interface](https://github.com/NsquaredLab/Biosignal-Device-Interface)
123
+
124
+ <!-- ACKNOWLEDGMENTS -->
125
+ ## Acknowledgments
126
+ * Find available Python and Matlab implementations of OT Bioelettronica's devices on their [website](https://otbioelettronica.it/en/download/).
127
+ <br>
128
+ Note: The example scripts do not provide you with the same level of utility for GUI implementations.
129
+
130
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
@@ -1,31 +1,34 @@
1
1
  biosignal_device_interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  biosignal_device_interface/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  biosignal_device_interface/constants/devices/__init__.py,sha256=4D3NJh21L_4yLJhS-S3vRJlHLTWawWx4WIt6vKDUrcw,104
4
- biosignal_device_interface/constants/devices/core/base_device_constants.py,sha256=nT0hwmT9AZr41siAZ32zODQLP-KSJOiXmRM7eOtausM,1782
4
+ biosignal_device_interface/constants/devices/core/base_device_constants.py,sha256=1ZAtSMuiD7-g40j7qp2uCDH8a7nJ5wxIz9TN-eUYZ1g,2009
5
5
  biosignal_device_interface/constants/devices/otb/otb_constants.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  biosignal_device_interface/constants/devices/otb/otb_muovi_constants.py,sha256=CbguakBkbP5uF1QHACwhZLOsay84-Rtg-8hbrYkDHik,4190
7
7
  biosignal_device_interface/constants/devices/otb/otb_quattrocento_constants.py,sha256=ZT6m73yJlGl0EDjVF0CN0m2UxeWg90pCU1JO901VM9M,9642
8
8
  biosignal_device_interface/constants/devices/otb/otb_quattrocento_light_constants.py,sha256=tLx58_-fxvsfDRdvIPpQ2SSNZREjJVRZ2oHpxQUqlrI,1653
9
+ biosignal_device_interface/constants/devices/otb/otb_sessantaquattro_constants.py,sha256=zXykOWN-oi0PZ9bJOf6pBYQt6PVDoF_hks0BWTTA1mo,7573
9
10
  biosignal_device_interface/constants/devices/otb/otb_syncstation_constants.py,sha256=J7zUiQ-EMvoDvFQOrVG5tDJXJZLtS1pDEvbjJ-qa3bg,7541
10
11
  biosignal_device_interface/constants/plots/color_palette.py,sha256=VpD0MI4V_2pTCo6Hjw7nZ2OQfRmLQRQCtQo55kUmmMs,998
11
- biosignal_device_interface/devices/__init__.py,sha256=kyMHMt90bmPwcq2l7g7hep-dlTFYMpyLDs05-tf9Irc,493
12
+ biosignal_device_interface/devices/__init__.py,sha256=u6LeUiTmGCxsVjV78hRSNrSoNTdZkJIueEhzFG4FEYE,547
12
13
  biosignal_device_interface/devices/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
14
  biosignal_device_interface/devices/core/base_device.py,sha256=WfTqJGxPoRdIORIWqenreoowP27TrjRixZpMfe_z8XM,14155
14
- biosignal_device_interface/devices/otb/__init__.py,sha256=Tel78U32m-Bqqpe4Vp23jCdZICRllPVWakLCTX0L2gM,1145
15
- biosignal_device_interface/devices/otb/otb_muovi.py,sha256=GPK_UUawMq6YIj8oNFRF8rYT2pGmAKORSAUaSujOiDE,10026
15
+ biosignal_device_interface/devices/otb/__init__.py,sha256=bcjVd7pLeq8p9UR5EyBSpBOg-cVZgmosoCdw21ua974,1376
16
+ biosignal_device_interface/devices/otb/otb_muovi.py,sha256=GR5gEbqL3pPX6ClS_BF9c1V3ViDTEq6cObU5kcR3hwU,10073
16
17
  biosignal_device_interface/devices/otb/otb_quattrocento.py,sha256=Cv8FsGlIP9ni_GP0HxhcFz-2aAQJMAoqV4FAn8BmQTg,11677
17
18
  biosignal_device_interface/devices/otb/otb_quattrocento_light.py,sha256=YX3GlFZE1glMGQQvgL_7SFf7z5vHBBZb4zcNTiy7hjY,7080
19
+ biosignal_device_interface/devices/otb/otb_sessantaquattro.py,sha256=zSi6vmjc3iNGgieenFI2gXUHPx3vYe7yB1TbT_gXkI8,13160
18
20
  biosignal_device_interface/devices/otb/otb_syncstation.py,sha256=bRsJeNSYRNfmcfNojKD7QZwXhkKiWAwsRXgv5VvKYUA,14396
19
21
  biosignal_device_interface/gui/device_template_widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- biosignal_device_interface/gui/device_template_widgets/all_devices_widget.py,sha256=QBQDqgHqk_6eqUZZuGywd8fL3f5mRM7EtwwB96UvBbs,1940
22
+ biosignal_device_interface/gui/device_template_widgets/all_devices_widget.py,sha256=jdfrdrP5_xVBaTHcmrohrRZbFxuUgf8JDL9QgWi3TQc,2148
21
23
  biosignal_device_interface/gui/device_template_widgets/core/base_device_widget.py,sha256=6SeXoAd4yss7JepfqyCplxQMHAZ7V8XgqfDBhwRwV_A,3790
22
24
  biosignal_device_interface/gui/device_template_widgets/core/base_multiple_devices_widget.py,sha256=ZTf9I0rIExLWR1uATMvn7j8CDa8OU_T8YrMEXkEeS2w,4829
23
25
  biosignal_device_interface/gui/device_template_widgets/otb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- biosignal_device_interface/gui/device_template_widgets/otb/otb_devices_widget.py,sha256=MWgd5KWqZIiZM3NdSqMHCvftkTScGH8pD9iPJUxM6es,1765
26
+ biosignal_device_interface/gui/device_template_widgets/otb/otb_devices_widget.py,sha256=qPVEycfE4uhJ18_uFVFXJsT48govqdpHbct1Yg202Rg,1973
25
27
  biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_plus_widget.py,sha256=i3u9jWbRW_iqyOMeRjfNxdqPwhFJmWgKiiRFgRy0X2E,7096
26
28
  biosignal_device_interface/gui/device_template_widgets/otb/otb_muovi_widget.py,sha256=oKS4KbEBvrXNjkGvrw9fhPucn1ZSuWdbwPSN7zOL9TU,7071
27
29
  biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_light_widget.py,sha256=tSn426Ul5eiiMeToPzSWKqjzM2Q0o8kC_PW1a4FsXQo,7291
28
30
  biosignal_device_interface/gui/device_template_widgets/otb/otb_quattrocento_widget.py,sha256=Z1H4Gq17yA62h8vSzXowit6n968qbIXH_VX0YiFiI-o,12072
31
+ biosignal_device_interface/gui/device_template_widgets/otb/otb_sessantaquattro_widget.py,sha256=zGJdzL2JSIRDyBNFqNlc9UMM7Je1JJfLPy1-Tk0QrKE,10436
29
32
  biosignal_device_interface/gui/device_template_widgets/otb/otb_syncstation_widget.py,sha256=MJqGJobCGoKGdorwPkE2FgNiOu_g3wlML6wBkrs4nPg,11856
30
33
  biosignal_device_interface/gui/plot_widgets/biosignal_plot_widget.py,sha256=yH0nlLugbAJw6U775DvlAeHk53tm7LlA9mAGr8RTKVw,20306
31
34
  biosignal_device_interface/gui/ui/devices_template_widget.ui,sha256=w3HsbMXkWYouE11LjcPeOjlqGw6sgH83U3S3X781huw,3827
@@ -33,14 +36,16 @@ biosignal_device_interface/gui/ui/otb_muovi_plus_template_widget.ui,sha256=1QUam
33
36
  biosignal_device_interface/gui/ui/otb_muovi_template_widget.ui,sha256=fcL-u7Nd1sdee4XkVtHLjc14J2ZQ8TsHSuMc6k6HnX4,4855
34
37
  biosignal_device_interface/gui/ui/otb_quattrocento_light_template_widget.ui,sha256=bc_OlwKDVMqb2o03hAaV942RhMEbAguxLczaJszVRoQ,8275
35
38
  biosignal_device_interface/gui/ui/otb_quattrocento_template_widget.ui,sha256=iSKXuEMEloD7yOXYgX9FEvD5qHELKJhjzjedHh-TTu0,12783
39
+ biosignal_device_interface/gui/ui/otb_sessantaquattro_template_widget.ui,sha256=jafGKcUSC4Ar65qHj-ct-Wsw17vYDYA91bl8GEjjYkc,9412
36
40
  biosignal_device_interface/gui/ui/otb_syncstation_template_widget.ui,sha256=VRq9sz-lkrw6Ne4abO5dciPP9onZqU6H_h3oruRmh_Y,22948
37
41
  biosignal_device_interface/gui/ui_compiled/devices_template_widget.py,sha256=M7Q59uIv5hQtiIuQbWlGoAILC2Es95Yph7CwXNXFl-w,4889
38
42
  biosignal_device_interface/gui/ui_compiled/otb_muovi_plus_template_widget.py,sha256=WY-5QkorbovWlUdIIZmAGX35xnmK7amO6-_UV5od4XI,7632
39
43
  biosignal_device_interface/gui/ui_compiled/otb_muovi_template_widget.py,sha256=agpo9OwXCpllIB6KuyBfd7NFXQNgxTy5g3IapUhQimI,7487
40
44
  biosignal_device_interface/gui/ui_compiled/otb_quattrocento_light_template_widget.py,sha256=J_neLi-Mrqoo9feKHd9SNohxbEBqJY2YW11dJG_203k,12031
41
45
  biosignal_device_interface/gui/ui_compiled/otb_quattrocento_template_widget.py,sha256=wJQCrRhGm-_Dj3y81BkCprGoTGErVlQTDS7GNdm_xDs,17439
46
+ biosignal_device_interface/gui/ui_compiled/otb_sessantaquattro_template_widget.py,sha256=2dBzffy0S2BMntcsSuCkqDQQ4XxxYEWkNzrC78i8-k4,13618
42
47
  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,,
48
+ biosignal_device_interface-0.2.5.dist-info/METADATA,sha256=yKfmPi39WRdvID9PJMvrcMt48AmmAADGrzC1C1688lc,4411
49
+ biosignal_device_interface-0.2.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
50
+ biosignal_device_interface-0.2.5.dist-info/licenses/LICENSE,sha256=zFRw_u1mGSOH8GrpOu0L1P765aX9fB5UpKz06mTxAos,34893
51
+ biosignal_device_interface-0.2.5.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.3.1
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,129 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: biosignal-device-interface
3
- Version: 0.2.3
4
- Summary: Python communication interface to many biosignal devices manufactured by several companies to easy integration in custom PySide6 applications.
5
- License: CC BY-SA 4.0
6
- License-File: LICENSE
7
- Author: Dominik I. Braun
8
- Author-email: dome.braun@fau.de
9
- Requires-Python: >=3.10,<3.13
10
- Classifier: License :: Other/Proprietary License
11
- Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.10
13
- Classifier: Programming Language :: Python :: 3.11
14
- Classifier: Programming Language :: Python :: 3.12
15
- Requires-Dist: aenum (>=3.1.15,<4.0.0)
16
- Requires-Dist: matplotlib (>=3.9.0,<4.0.0)
17
- Requires-Dist: numpy (>=1.26.4,<2.0.0)
18
- Requires-Dist: psutil (>=5.9.8,<6.0.0)
19
- Requires-Dist: pyside6 (>=6.7.0,<7.0.0)
20
- Requires-Dist: scipy (>=1.14.0,<2.0.0)
21
- Requires-Dist: tornado (>=6.4.2,<7.0.0)
22
- Requires-Dist: vispy (>=0.14.3,<0.15.0)
23
- Description-Content-Type: text/markdown
24
-
25
- # Biosignal-Device-Interface
26
-
27
- <!-- PROJECT LOGO -->
28
- <br />
29
- <div align="center">
30
- <a href="https://github.com/NsquaredLab/Biosignal-Device-Interface">
31
- <img src="images/logo.png" alt="Logo" width="80" height="80">
32
- </a>
33
-
34
- <h3 align="center">Biosignal Device Interface</h3>
35
-
36
- <p align="center">
37
- Python communication interface to many biosignal devices manufactured by several companies to easy integration in custom PySide6 applications.
38
- <br />
39
- <a href="https://nsquaredlab.github.io/Biosignal-Device-Interface/"><strong>Explore the docs »</strong></a>
40
- </p>
41
- </div>
42
-
43
-
44
-
45
- <!-- TABLE OF CONTENTS -->
46
- <details>
47
- <summary>Table of Contents</summary>
48
- <ol>
49
- <li>
50
- <a href="#about-the-project">About The Project</a>
51
- </li>
52
- <li><a href="#contact">Contact</a></li>
53
- <li>
54
- <a href="#getting-started">Getting Started</a>
55
- <ul>
56
- <li><a href="#development-installation">Development Installation</a></li>
57
- <li><a href="#package-installation">Package Installation</a></li>
58
- </ul>
59
- </li>
60
- <li><a href="#usage">Usage</a></li>
61
- <li><a href="#license">License</a></li>
62
- <li><a href="#acknowledgments">Acknowledgments</a></li>
63
- </ol>
64
- </details>
65
-
66
-
67
- ## About The Project
68
-
69
- Give a brief introduction into the project.
70
-
71
- <!-- CONTACT -->
72
- ### Contact
73
-
74
- [Dominik I. Braun](https://www.nsquared.tf.fau.de/person/dominik-braun/) - dome.braun@fau.de
75
-
76
- Project Link: [https://github.com/NsquaredLab/Biosignal-Device-Interface](https://github.com/NsquaredLab/Biosignal-Device-Interface)
77
-
78
-
79
- <!-- GETTING STARTED -->
80
- ## Getting Started
81
-
82
- The local set up is made using [Poetry](https://python-poetry.org/). You can install Poetry using the following command.
83
- Note: It is recommeded to install it globally.
84
- ```bash
85
- pip install poetry
86
- ```
87
-
88
- Then, you can install the dependencies in your work area using the following command:
89
- ```bash
90
- poetry install
91
- ```
92
-
93
- ### Development installation
94
- If you want to contribute to the project, you can install the development dependencies using the following command:
95
- ```bash
96
- poetry install --with dev,docs
97
- ```
98
-
99
- ### Package Installation
100
- Poetry
101
- ```Bash
102
- poetry add git+https://github.com/NsquaredLab/Biosignal-Device-Interface.git
103
- ```
104
-
105
- PIP
106
- ```sh
107
- pip install git+https://github.com/NsquaredLab/Biosignal-Device-Interface.git
108
- ```
109
-
110
-
111
- <!-- USAGE EXAMPLES -->
112
- ## Usage
113
-
114
- Examples of how you can use this package can be found in our [examples gallery](https://nsquaredlab.github.io/Biosignal-Device-Interface/auto_examples/index.html).
115
-
116
-
117
- <!-- LICENSE -->
118
- ## License
119
-
120
- Distributed under the GPL-3.0 license License. See `LICENSE.txt` for more information.
121
-
122
- <!-- ACKNOWLEDGMENTS -->
123
- ## Acknowledgments
124
- * Find available Python and Matlab implementations of OT Bioelettronica's devices on their [website](https://otbioelettronica.it/en/download/).
125
- <br>
126
- Note: The example scripts does not provide you with the same level of utility for GUI implementations.
127
-
128
- <p align="right">(<a href="#readme-top">back to top</a>)</p>
129
-