Repository navigation
Open
Description
Suivi des PR ouvertes en septembre 2026 : correctifs, CI, packaging, compilation multiplateforme de la lib C, et nouvelles fonctionnalités P24. Analyse et issues détaillées sur le fork : https://github.com/mickaelbegon/pyScienceMode/issues
pytest --port COMx -m p24 / -m rehastim2 (disponibles une fois #27 fusionnée).
1. Correctifs et infra (dans cet ordre)
- Infra: CI GitHub Actions + séparation des tests matériel #27 CI GitHub Actions (Win/Linux/macOS) et séparation des tests matériel, en premier : les PR suivantes seront validées par la CI après rebase
- Infra : fusion Examples/ → examples/ et retrait des __pycache__ #28 Fusion
Examples/→examples/, retrait des.pyc - Infra : packaging unifié dans pyproject.toml + extra [p24] #29 Packaging unifié (
pyproject.tomlseul, extra[p24]) - Lever une ImportError explicite si sciencemode manque (P24) #30 ImportError explicite si la lib P24 manque
- Fix validation Channel : bornes de set_frequency et aliasing des Points #31 Validation
Channel(bornes de fréquence, aliasing desPoint) - Fix décodage MOTOmed : 256*MSB + LSB et XOR sur l'octet bourré seul #32 Décodage MOTOmed (
256*MSB + (LSB ^ KEY)) - Corrige le signe inversé de loop_duration dans _thread_catch_ack #33 Signe de
loop_duration - Fix cycle de vie des threads Rehastim2 (disconnect, watchdog, daemon) #34 Cycle de vie des threads Rehastim2
- Timeout configurable sur l'attente des acks #35 Timeout sur les acks
#33, #34 et #35 modifient toutes les trois sciencemode.py : rebaser entre chaque fusion.
2. Lib C et roues multiplateformes (après #29)
- Compiler la lib C ScienceMode4 avec scikit-build-core + cffi #38 Lib C ScienceMode4 en sous-module, compilée avec scikit-build-core et cffi
- Roues multiplateformes via cibuildwheel #39 Roues cibuildwheel (Windows, Linux x86/ARM, macOS Intel/ARM, Python 3.10–3.13) et publication PyPI
Actions mainteneur pour #39 :
- Configurer un trusted publisher PyPI :
s2mLab/pyScienceMode, workflowwheels.yml, environnementpypi. - Créer l'environnement
pypidans les réglages du dépôt. - Pour publier, pousser un tag
vX.Y.Z. - Mettre à jour la recette conda-forge selon
docs/packaging.md.
Bug trouvé dans la lib HASOMED et contourné dans #38 : ScienceMode/ScienceMode4_c_library#4
3. Fonctionnalités P24
- P24 : stimulation mid-level continue non bloquante avec mises à jour à chaud #36 Stimulation non bloquante et changement de paramètres à chaud, base des suivantes
- Journal d'événements de stimulation horodaté + marqueurs LSL optionnels #26 Journal horodaté des stimulations et marqueurs LSL (petits conflits avec P24 : stimulation mid-level continue non bloquante avec mises à jour à chaud #36 dans
p24_interface.py) - Closed-loop control API (ClosedLoopController) with biosiglive integration #37 Boucle fermée (
ClosedLoopController, intégration biosiglive), empilée sur P24 : stimulation mid-level continue non bloquante avec mises à jour à chaud #36 - Pont cocofest → P24 : profils de stimulation optimisés et lecteur non bloquant #40 Pont cocofest (profils optimisés FES vers P24), empilée sur P24 : stimulation mid-level continue non bloquante avec mises à jour à chaud #36
Conflits attendus :
- Closed-loop control API (ClosedLoopController) with biosiglive integration #37 et Pont cocofest → P24 : profils de stimulation optimisés et lecteur non bloquant #40 :
__init__.py, résolution triviale. - Timeout configurable sur l'attente des acks #35 et P24 : stimulation mid-level continue non bloquante avec mises à jour à chaud #36 : chacune a son propre timeout d'ack, à unifier.
Points à trancher
- Fréquence max de
set_frequency: 1000 Hz (docstring) ou 2000 Hz (validation) ? (Fix validation Channel : bornes de set_frequency et aliasing des Points #31) - Timeout d'ack par défaut de 5 s (Timeout configurable sur l'attente des acks #35)
- Limites de sécurité obligatoires dans
ClosedLoopController? (Closed-loop control API (ClosedLoopController) with biosiglive integration #37) - Correspondance largeur d'impulsion ↔ impulsion dans les solutions cocofest, à confirmer avec les auteurs de cocofest (Pont cocofest → P24 : profils de stimulation optimisés et lecteur non bloquant #40)
🤖 Generated with Claude Code
Metadata
Metadata
Assignees
Labels
No labels
Activity