megamicros 3.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. megamicros-3.0.3/.gitignore +166 -0
  2. megamicros-3.0.3/CHANGELOG +274 -0
  3. megamicros-3.0.3/LICENSE +21 -0
  4. megamicros-3.0.3/MANIFEST.in +1 -0
  5. megamicros-3.0.3/PKG-INFO +125 -0
  6. megamicros-3.0.3/README.md +89 -0
  7. megamicros-3.0.3/VERSION +1 -0
  8. megamicros-3.0.3/gitpush.sh +8 -0
  9. megamicros-3.0.3/javascripts/mathjax.js +17 -0
  10. megamicros-3.0.3/meta.yaml +23 -0
  11. megamicros-3.0.3/mkrelease.sh +70 -0
  12. megamicros-3.0.3/notebooks/.DS_Store +0 -0
  13. megamicros-3.0.3/notebooks/01_getstarted_MemsArray.ipynb +314 -0
  14. megamicros-3.0.3/notebooks/02_getstarted_usb.ipynb +65 -0
  15. megamicros-3.0.3/notebooks/03_getstarted_Megamicros.ipynb +376 -0
  16. megamicros-3.0.3/notebooks/04_getstarted_BMF.ipynb +239 -0
  17. megamicros-3.0.3/notebooks/05_getstarted_BMF_square_antenna.ipynb +317 -0
  18. megamicros-3.0.3/notebooks/06_getstarted_Muh5.ipynb +169 -0
  19. megamicros-3.0.3/notebooks/ParisParcGeoCalibDiffuse.ipynb +1471 -0
  20. megamicros-3.0.3/notebooks/assets/AntenneParsiParc.png +0 -0
  21. megamicros-3.0.3/notebooks/assets/FRFMemsHOSMAAvg.json +1 -0
  22. megamicros-3.0.3/notebooks/assets/antenna-mosellerie-leprehaut.py +196 -0
  23. megamicros-3.0.3/notebooks/calibrate.py +603 -0
  24. megamicros-3.0.3/notebooks/covariancegpu.py +493 -0
  25. megamicros-3.0.3/notebooks/locations.json +1 -0
  26. megamicros-3.0.3/notebooks/mems_position_square_absolute.json +5 -0
  27. megamicros-3.0.3/notebooks/mems_position_square_relative.json +1 -0
  28. megamicros-3.0.3/notebooks/mems_positions.json +1 -0
  29. megamicros-3.0.3/notebooks/signal.json +1 -0
  30. megamicros-3.0.3/notebooks/signal_square.json +1 -0
  31. megamicros-3.0.3/notebooks/using_spectral_correction.ipynb +160 -0
  32. megamicros-3.0.3/pyproject.toml +60 -0
  33. megamicros-3.0.3/requirements.txt +6 -0
  34. megamicros-3.0.3/setup.cfg +4 -0
  35. megamicros-3.0.3/src/megamicros/__init__.py +7 -0
  36. megamicros-3.0.3/src/megamicros/acoustics/__init__.py +0 -0
  37. megamicros-3.0.3/src/megamicros/acoustics/bmf.py +489 -0
  38. megamicros-3.0.3/src/megamicros/acoustics/omp.py +258 -0
  39. megamicros-3.0.3/src/megamicros/acoustics/sgcal_ambient.py +193 -0
  40. megamicros-3.0.3/src/megamicros/acoustics/sgcal_cov_gpu.py +493 -0
  41. megamicros-3.0.3/src/megamicros/acoustics/sgcal_example.py +79 -0
  42. megamicros-3.0.3/src/megamicros/apps/__init__.py +0 -0
  43. megamicros-3.0.3/src/megamicros/apps/main.py +82 -0
  44. megamicros-3.0.3/src/megamicros/apps/version.py +23 -0
  45. megamicros-3.0.3/src/megamicros/core/__init__.py +0 -0
  46. megamicros-3.0.3/src/megamicros/core/base.py +590 -0
  47. megamicros-3.0.3/src/megamicros/core/mu.py +1242 -0
  48. megamicros-3.0.3/src/megamicros/data/__init__.py +398 -0
  49. megamicros-3.0.3/src/megamicros/exception.py +31 -0
  50. megamicros-3.0.3/src/megamicros/geometry.py +98 -0
  51. megamicros-3.0.3/src/megamicros/log.py +207 -0
  52. megamicros-3.0.3/src/megamicros/mqtt.py +165 -0
  53. megamicros-3.0.3/src/megamicros/muh5.py +233 -0
  54. megamicros-3.0.3/src/megamicros/signal/__init__.py +248 -0
  55. megamicros-3.0.3/src/megamicros/usb.py +562 -0
  56. megamicros-3.0.3/src/megamicros.egg-info/PKG-INFO +125 -0
  57. megamicros-3.0.3/src/megamicros.egg-info/SOURCES.txt +59 -0
  58. megamicros-3.0.3/src/megamicros.egg-info/dependency_links.txt +1 -0
  59. megamicros-3.0.3/src/megamicros.egg-info/entry_points.txt +3 -0
  60. megamicros-3.0.3/src/megamicros.egg-info/requires.txt +6 -0
  61. megamicros-3.0.3/src/megamicros.egg-info/top_level.txt +1 -0
@@ -0,0 +1,166 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ #poetry.lock
103
+
104
+ # pdm
105
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106
+ #pdm.lock
107
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108
+ # in version control.
109
+ # https://pdm.fming.dev/#use-with-ide
110
+ .pdm.toml
111
+
112
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113
+ __pypackages__/
114
+
115
+ # Celery stuff
116
+ celerybeat-schedule
117
+ celerybeat.pid
118
+
119
+ # SageMath parsed files
120
+ *.sage.py
121
+
122
+ # Environments
123
+ .env
124
+ .venv
125
+ env/
126
+ venv/
127
+ ENV/
128
+ env.bak/
129
+ venv.bak/
130
+
131
+ # Spyder project settings
132
+ .spyderproject
133
+ .spyproject
134
+
135
+ # Rope project settings
136
+ .ropeproject
137
+
138
+ # mkdocs documentation
139
+ /site
140
+
141
+ # mypy
142
+ .mypy_cache/
143
+ .dmypy.json
144
+ dmypy.json
145
+
146
+ # Pyre type checker
147
+ .pyre/
148
+
149
+ # pytype static type analyzer
150
+ .pytype/
151
+
152
+ # Cython debug symbols
153
+ cython_debug/
154
+
155
+ # PyCharm
156
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
159
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160
+ #.idea/
161
+
162
+ # Misc
163
+ tmp/
164
+ persist/
165
+ .DS_Store
166
+ migrations/
@@ -0,0 +1,274 @@
1
+ V3 - 2025
2
+ ### 3.0.2
3
+
4
+ * Add Data classes for signal and video
5
+ * Define the default sensibility of analogs to 0.33 (see megaicros.core.mu)
6
+
7
+ ### 3.0.1
8
+
9
+ * Add the sgcal diffuse antenna calibration of Charles Vanwynsberghe(see: https://github.com/cvanwynsberghe/sgcal-jasa).
10
+ * Add the `ParisParcGeoCalibDiffuse` Notebook as example of geocalibrating using `calibrate.py` and `covariancegpu.py` on the Sorbonne University Innovation City construction site (to be revized).
11
+
12
+ ### 3.0.0
13
+
14
+ New major release
15
+
16
+ * Usb interface Refactoring
17
+
18
+ ### 2.1.30-2.1.34
19
+
20
+ The next minor release (2.2) is comming soon.
21
+ The core of megamicros will not change but most of the tools will be reorganized
22
+
23
+ * Update the release making process
24
+ * Import mqtt and muh5 from the ol library megamicros_tools
25
+
26
+ ### 2.1.29
27
+
28
+ * Minor updates on megamicros.mu
29
+
30
+ ### 2.1.13-2.1.28
31
+
32
+ * Prepare the next major release
33
+ * Transform megamicros_tools package in megamicros.tools sub package
34
+ * Major updates in tools/acoustics/location.py
35
+ * Add BFE on limited frequency bandwith
36
+ * Add getBFE function in core/h5 to get BFE data from MµH5 files
37
+ * fix bug in tools/signal.py: `megamicros.exception` instead of `import exception`.
38
+
39
+ ### 2.1.12
40
+
41
+ * Fix `get()` method error when getting signals from H5 file
42
+
43
+ ### 2.1.11
44
+
45
+ * Fix the issue of H5 file bad recording
46
+
47
+ ### 2.1.10
48
+
49
+ * Add system_type property to Mµ antenna systems
50
+
51
+ ### 2.1.5 - 2.1.9
52
+
53
+ * Fix compatibility problems with libusb (Zadig) under windows
54
+
55
+ ### 2.1.3 - 2.1.4
56
+
57
+ * Add the `megamicros` program
58
+
59
+ ### 2.1.1 - 2.1.2
60
+
61
+ * Minor modifications
62
+
63
+ ### 2.1.0
64
+
65
+ * Remove the aidb application from the package in favor of the megamicros-aidb new package
66
+ * Remove the aiboard application from the package in favor of the megamicros-aiboard new package
67
+ * megamicros-tools becomes a dependency of megamicros
68
+ * Remove log, mqtt, muh5, exception, previously moved in megamicros-tools
69
+ * Please use in your code `from megamicros_tools.log import log` instead of `from megamicros.log import log`
70
+ * Same with `exception`, `mqtt` and `muh5`.
71
+
72
+ ### 2.0.75
73
+
74
+ * Remove docs form this repository. Documentation is now available on its on repository (megamicros-doc)
75
+
76
+ ### 2.0.74
77
+
78
+ * Add 'real_time' option in MesmArrayH5 for playing H5 files
79
+ * There is still a bug to fix wen 'real_time=True': the delay which is imposed for real time respect leads to problem in the queue management
80
+
81
+ ### 2.0.72 to 2.0.73
82
+
83
+ * Add download of H5 files as wav files du dbAi
84
+
85
+ ### 2.0.71
86
+
87
+ * Add the megamicros base library for Megamicros device monitoring
88
+
89
+ ### 2.0.70
90
+
91
+ * Fix bug in dataset concerning bad reshape when samples are shorter than split size
92
+
93
+ ### 2.0.56 to 2.0.69
94
+
95
+ * Update aidb dataset by adding instance storing
96
+ * Update aiboard to work fine with the nexw dataset
97
+
98
+ ### 2.0.55
99
+
100
+ * fix the download error in dataset samples duration
101
+
102
+ ### 2.0.54
103
+
104
+ * update http address for aiboard
105
+
106
+ ### 2.0.53
107
+
108
+ * ailab/sataset updated for data split and temporal zero padding
109
+
110
+ ### 2.0.48, 2.0.49, 2.0.50, 2.0.51, 2.0.51, 2.0.52
111
+
112
+ * New Dataset view and serializer for AiDB
113
+
114
+ ### 2.0.47
115
+
116
+ ### 2.0.46
117
+
118
+ * Fix dataset error for entry removing in AiDB
119
+
120
+ ### 2.0.45
121
+
122
+ * Fix error made by the default limit=20 for label downloading
123
+
124
+ ### 2.0.44
125
+
126
+ * Create torch dataset for AiDB signals
127
+
128
+ ### 2.0.43
129
+
130
+ * Add dbchantier database to megamicros-aiboard program configuration
131
+
132
+ ### 2.0.42
133
+
134
+ * Compute power in decibels on database signals
135
+
136
+ ### 2.0.41
137
+
138
+ * Add the `fft` datatype for getting fft signals from the Megamicros broadcast server using the `run` method
139
+
140
+ ### 2.0.40
141
+
142
+ * Add database endpoint for extracting samples (sourcefile/samples) and the library tools that comes with
143
+
144
+ ### 2.0.39
145
+
146
+ * Add direct signal samples extraction from AI database
147
+
148
+ ### 2.0.38
149
+
150
+ * Fix bug `TypeError: MemsArray.setAvailableAnalogs() got an unexpected keyword argument 'available_analogs_number'` in db.py
151
+
152
+ ### 2.0.37
153
+
154
+ * Fix bug `TypeError: MemsArray.setAvailableMems() got an unexpected keyword argument 'available_mems_number'` in db.py
155
+
156
+ ### 2.0.36
157
+
158
+ * Some updates
159
+
160
+ ### 2.0.35
161
+
162
+ * Fix bug in H5 files reading
163
+
164
+ ### 2.0.34
165
+
166
+ * Corrections in MemsArrayWS for using methods `settings()` and `selftest()` as *async* methods
167
+
168
+ ### 2.0.33
169
+
170
+ ### 2.0.32
171
+
172
+ * Before correcting DB_PROCESSING_DELAY_RATE issue, skip the realtime process
173
+
174
+ ### 2.0.31
175
+
176
+ * Change the DB_PROCESSING_DELAY_RATE value needed for realtime simulation from 3/10 to 2/10
177
+
178
+ ## Pypi
179
+
180
+ ```bash
181
+ # Installer les outils nécessaires
182
+ pip install --upgrade build twine
183
+ ```
184
+
185
+ Créez aussi un compte sur <https://test.pypi.org> pour tester d'abord.
186
+
187
+ Créez un fichier `~/.pypirc` :
188
+
189
+ ```bash
190
+ [pypi]
191
+ username = __token__
192
+ password = pypi-YOUR_API_TOKEN_HERE
193
+
194
+ [testpypi]
195
+ username = __token__
196
+ password = pypi-YOUR_TEST_API_TOKEN_HERE
197
+ ```
198
+
199
+ Remarque : Il est recommandé d'utiliser des tokens API plutôt que votre mot de passe. Générez-les depuis votre compte PyPI dans : Account Settings → API tokens.
200
+
201
+ ### Builder le package
202
+
203
+ ```bash
204
+ # Depuis la racine de votre projet
205
+ python -m build
206
+ ```
207
+
208
+ Cela créera deux fichiers dans le dossier dist/ :
209
+
210
+ * `megamicros-X.X.X.tar.gz` (source distribution)
211
+ * `megamicros-X.X.X-py3-none-any.whl` (wheel distribution)
212
+
213
+ (Optionnel) Tester sur TestPyPI d'abord
214
+
215
+ ```bash
216
+ # Upload sur TestPyPI
217
+ python -m twine upload --repository testpypi dist/*
218
+
219
+ # Tester l'installation
220
+ pip install --index-url https://test.pypi.org/simple/ megamicros
221
+ ```
222
+
223
+ Uploader sur PyPI officiel
224
+
225
+ ```bash
226
+ # Vérifier les distributions
227
+ python -m twine check dist/*
228
+
229
+ # Upload sur PyPI
230
+ python -m twine upload dist/*
231
+ ```
232
+
233
+ Vérifier
234
+
235
+ Après l'upload, votre package sera disponible à :
236
+
237
+ https://pypi.org/project/megamicros/
238
+ Et installable via :
239
+
240
+ ```bash
241
+ pip install megamicros
242
+ ```
243
+
244
+ Points importants à vérifier avant l'upload
245
+
246
+ 1. Version unique : Assurez-vous que le numéro de version dans VERSION n'a jamais été uploadé
247
+ 2. README.md : Doit être bien formaté (sera affiché sur PyPI)
248
+ 3. Licence : Vérifiez que votre licence GPL est correctement spécifiée
249
+ 4. Nom du package : "megamicros" doit être disponible sur PyPI (vérifiez d'abord)
250
+
251
+ Workflow recommandé pour les mises à jour futures
252
+
253
+ ```bash
254
+ # 1. Mettre à jour VERSION
255
+ echo "3.0.2" > VERSION
256
+
257
+ # 2. Nettoyer les anciens builds
258
+ rm -rf dist/ build/ src/megamicros.egg-info/
259
+
260
+ # 3. Builder
261
+ python -m build
262
+
263
+ # 4. Vérifier
264
+ python -m twine check dist/*
265
+
266
+ # 5. Uploader
267
+ python -m twine upload dist/*
268
+ ```
269
+
270
+ Note : Une fois un package uploadé avec une version donnée, vous ne pouvez plus modifier ou re-uploader cette version. Vous devez incrémenter le numéro de version pour chaque nouveau upload.
271
+
272
+ Token (bimea-token):
273
+
274
+ pypi-AgEIcHlwaS5vcmcCJGI0N2E3YmUzLTQ5MTctNGNjOS1iMjdkLWQ1MmUxNjdlMjI0YwACKlszLCI4MjBlZjBkMi04MGM4LTQ3MzAtODNlNS0wODRhYzg2NjQyYmIiXQAABiBi9AFbwpQiJ4hSEsOWQ6rlf1g7x9OQ1LQcIt8KQgQP5Q
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024-2025 Bimea
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ include VERSION
@@ -0,0 +1,125 @@
1
+ Metadata-Version: 2.4
2
+ Name: megamicros
3
+ Version: 3.0.3
4
+ Summary: Megamicros Mems array library
5
+ Author-email: Bruno Gas <bruno.gas@bimea.io>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/bimea/megamicros
8
+ Project-URL: Documentation, https://readthedoc.bimea.io
9
+ Project-URL: Source, https://github.com/bimea/megamicros/
10
+ Keywords: MEMs,antenna,beamforming,acoustics,Machine Learninge
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Topic :: Software Development :: Build Tools
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Classifier: Programming Language :: Python :: 3.7
19
+ Classifier: Programming Language :: Python :: 3.8
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: Implementation :: CPython
25
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
26
+ Requires-Python: >=3.7
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Requires-Dist: numpy
30
+ Requires-Dist: scipy
31
+ Requires-Dist: matplotlib
32
+ Requires-Dist: libusb1
33
+ Requires-Dist: h5py
34
+ Requires-Dist: imageio
35
+ Dynamic: license-file
36
+
37
+ # megamicros
38
+
39
+ Megamicros Mems array library
40
+
41
+ ## Install
42
+
43
+ You can install *Megamicros* using the Phyton pip utility or from the GitHub repository.
44
+
45
+ ### Using pip install
46
+
47
+ First create your virtual environnement, then install:
48
+
49
+ ```bash
50
+ > virtualenv venv
51
+ > source venv/bin/activate
52
+ (venv) > pip install megamicros
53
+ ```
54
+
55
+ Upgrading:
56
+
57
+ ```bash
58
+ > pip install --upgrade megamicros
59
+ ```
60
+
61
+ ### Installing from the GitHub repository
62
+
63
+ Clone the *Megamicros* GitHub repository:
64
+
65
+ ```bash
66
+ > cd path_to_project
67
+ > git clone https://github.com/bimea/megamicros.git
68
+ ```
69
+
70
+ Create a virtual environnement in the ``megamicros`` repository and install the Python libraries needed for *Megamicros* to work:
71
+
72
+ ```bash
73
+ > cd path_to_project/megamicros
74
+ > virtualenv venv
75
+ > source venv/bin/activate
76
+ > pip install -r requirements.txt
77
+ ```
78
+
79
+ ## Issues with usb access
80
+
81
+ ### On windows systems
82
+
83
+ Before using the megamicros python library you must install the *Zadig* usb driver.
84
+
85
+ ### On MacOs / Linux systems
86
+
87
+ In some Linux distributions, only the root user has access to the USB port, so the following message may appear:
88
+
89
+ ```bash
90
+ ...
91
+ aborting: LIBUSB_ERROR_ACCESS [-3]
92
+ ```
93
+
94
+ The USB devices are probably not accessible to users (test under root should be ok).
95
+ You must then give user access to the usb port by creating a new device rules file:
96
+
97
+ ```bash
98
+ > sudo vi /etc/udev/rules.d/99-megamicros-devices.rules
99
+ # Insert next lines which give access to the Megamicros devices (Mu32-usb2, Mu32-usb3, Mu256, Mu1024):
100
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="fe27", ATTRS{idProduct}=="ac00", MODE="0666"
101
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="fe27", ATTRS{idProduct}=="ac01", MODE="0666"
102
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="fe27", ATTRS{idProduct}=="ac03", MODE="0666"
103
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="fe27", ATTRS{idProduct}=="ac02", MODE="0666"
104
+ ```
105
+
106
+ User should be also in the ``plugdev`` group. Check the group file:
107
+
108
+ ```bash
109
+ > vi /etc/group
110
+ ...
111
+ plugdev:x:46:user_account_login
112
+ ...
113
+ ```
114
+
115
+ If there is no entry with your user account (``user_account_login`` above), then add your user account in the ``plugdev`` group.
116
+ Unplugg and plugg your usb device. All should be fine.
117
+
118
+ !!! Note
119
+
120
+ Don't forget that if you run your Python programs on a virtual machine, usb ports should be declared as accessible on your VM.
121
+
122
+
123
+ ## Megamicros documentation
124
+
125
+ You can also consult the *Megamicros* project web page at [readthedoc.bimea.io](https://readthedoc.biimea.io).
@@ -0,0 +1,89 @@
1
+ # megamicros
2
+
3
+ Megamicros Mems array library
4
+
5
+ ## Install
6
+
7
+ You can install *Megamicros* using the Phyton pip utility or from the GitHub repository.
8
+
9
+ ### Using pip install
10
+
11
+ First create your virtual environnement, then install:
12
+
13
+ ```bash
14
+ > virtualenv venv
15
+ > source venv/bin/activate
16
+ (venv) > pip install megamicros
17
+ ```
18
+
19
+ Upgrading:
20
+
21
+ ```bash
22
+ > pip install --upgrade megamicros
23
+ ```
24
+
25
+ ### Installing from the GitHub repository
26
+
27
+ Clone the *Megamicros* GitHub repository:
28
+
29
+ ```bash
30
+ > cd path_to_project
31
+ > git clone https://github.com/bimea/megamicros.git
32
+ ```
33
+
34
+ Create a virtual environnement in the ``megamicros`` repository and install the Python libraries needed for *Megamicros* to work:
35
+
36
+ ```bash
37
+ > cd path_to_project/megamicros
38
+ > virtualenv venv
39
+ > source venv/bin/activate
40
+ > pip install -r requirements.txt
41
+ ```
42
+
43
+ ## Issues with usb access
44
+
45
+ ### On windows systems
46
+
47
+ Before using the megamicros python library you must install the *Zadig* usb driver.
48
+
49
+ ### On MacOs / Linux systems
50
+
51
+ In some Linux distributions, only the root user has access to the USB port, so the following message may appear:
52
+
53
+ ```bash
54
+ ...
55
+ aborting: LIBUSB_ERROR_ACCESS [-3]
56
+ ```
57
+
58
+ The USB devices are probably not accessible to users (test under root should be ok).
59
+ You must then give user access to the usb port by creating a new device rules file:
60
+
61
+ ```bash
62
+ > sudo vi /etc/udev/rules.d/99-megamicros-devices.rules
63
+ # Insert next lines which give access to the Megamicros devices (Mu32-usb2, Mu32-usb3, Mu256, Mu1024):
64
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="fe27", ATTRS{idProduct}=="ac00", MODE="0666"
65
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="fe27", ATTRS{idProduct}=="ac01", MODE="0666"
66
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="fe27", ATTRS{idProduct}=="ac03", MODE="0666"
67
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="fe27", ATTRS{idProduct}=="ac02", MODE="0666"
68
+ ```
69
+
70
+ User should be also in the ``plugdev`` group. Check the group file:
71
+
72
+ ```bash
73
+ > vi /etc/group
74
+ ...
75
+ plugdev:x:46:user_account_login
76
+ ...
77
+ ```
78
+
79
+ If there is no entry with your user account (``user_account_login`` above), then add your user account in the ``plugdev`` group.
80
+ Unplugg and plugg your usb device. All should be fine.
81
+
82
+ !!! Note
83
+
84
+ Don't forget that if you run your Python programs on a virtual machine, usb ports should be declared as accessible on your VM.
85
+
86
+
87
+ ## Megamicros documentation
88
+
89
+ You can also consult the *Megamicros* project web page at [readthedoc.bimea.io](https://readthedoc.biimea.io).
@@ -0,0 +1 @@
1
+ 3.0.3
@@ -0,0 +1,8 @@
1
+ #! /bin/bash
2
+ # This script is used to push the package on the project git repository
3
+ # It will update the git with a "update" commit.
4
+ # Usage: ./gitpush.sh
5
+
6
+ echo 'git push on repository...'
7
+ git add . && git commit -m "update" && git push
8
+
@@ -0,0 +1,17 @@
1
+ window.MathJax = {
2
+ tex: {
3
+ inlineMath: [["\\(", "\\)"]],
4
+ displayMath: [["\\[", "\\]"]],
5
+ processEscapes: true,
6
+ processEnvironments: true
7
+ },
8
+ options: {
9
+ ignoreHtmlClass: ".*|",
10
+ processHtmlClass: "arithmatex"
11
+ }
12
+ };
13
+
14
+ document$.subscribe(() => {
15
+ MathJax.typesetPromise()
16
+ })
17
+