Orateur
Description
Le projet Nyx est un écosystème logiciel léger destiné au contrôle-commande d’instruments scientifiques distribués, avec plusieurs devices et plusieurs clients. Il est conçu pour être simple et rapide à prendre en main. Les messages de contrôle-commande sont encodés en JSON et transportés via MQTT.
La pile Nyx est développée en C11 et dispose de couches pour POSIX, Windows et Arduino. Des encapsulations en C++ et Python sont également fournies. Sa faible empreinte permet son utilisation aussi bien sur des ordinateurs classiques que sur des microcontrôleurs tels que les ESP32 ou Cortex-M.
Les devices Nyx sont autodescriptifs : ils exposent eux-mêmes la structure de leur interface de contrôle-commande. Cette interface peut être conçue graphiquement à l’aide de Nyx Assistant, qui génère automatiquement le squelette du code, laissant au développeur l’implémentation du code métier.
Le projet comprend également Nyx Lab, une interface desktop et Web permettant de piloter les devices Nyx. Les interfaces utilisateur sont elles aussi composées graphiquement. Un système d’addons permet d’ajouter des contrôles graphics ou des panels applicatifs.
Nyx est à l’origine un projet personnel inspiré d’INDI (Instrument Neutral Distributed Interface), un protocole issu du monde de l’astronomie amateur qui repose sur des échanges XML sur TCP. Une passerelle bidirectionnelle Nyx ↔ INDI assure l’interopérabilité entre les deux protocoles.