1
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: septembre 19, 2024, 10:44:52 am »
Voici une nouvelle version du gestionnaire expérimental json en C/C++. Beaucoup de bugs ont étés éliminés, mais il en reste encore. Comme la précédente version, cette version est prévue pour tourner sur un ORDINATEUR, elle fonctionne comme la version en Processing (Java) en utilisant un TCO en Processing pour faire les tests.
La version Processing et cette version C/C++ sont quasiment équivalentes, mais il y a quelques différences entre la version Processing et la version C/C++ (dans le but de préparer la version tournant sur Arduino), voici les changements de la version C/C++ :
- le transit souple n'est pas encore mis en oeuvre (il faut juste traduire le code de Java vers C/C++ et tester)
- des "bus" ont étés introduits, le gestionnaire communique avec le réseau, le TCO, les manettes, la centrale (box), … par un ou plusieurs "bus", ces bus peuvent êtres très variés : ethernet, wifi, I2C, USB/série, CAN, … . Pour l'instant les messages comportent tous trois octets et ne sont pas répétés (on peut envisager des codes de détection d'erreurs comme un CRC, voire un numéro de message).
Pour passer à une version Arduino il va falloir faire quelques adaptations :
- la bibliothèque json utilisée existe sur Arduino (c'est pour cela quelle a été choisie) on pourra supprimer l'onglet et utiliser un "include" à la place (le changement de bibliothèque a représenté le plus gros du travail pour passer de Processing à C/C++)
- remplacer les structures de données, genre "vector", par des versions adaptée à l'Arduino et faire attention à la gestion mémoire
- choisir le ou les bus et les implémenter
- régler les problèmes d'initialisation du gestionnaire comme il a été discuté dans le post n° #461 et les suivants de ce fil
- prévoir un moyen de dialogue avec le gestionnaire pour l'affichage de ses messages et l'obtention des informations sur les trains, voir aussi le post n° #461 à ce sujet
- choisir où mettre le "fichier" json, sur carte SD ou en mémoire RAM ou FLASH (PROGMEM)
Les fichiers joints sont tout à fait fonctionnels, mais assez difficiles à mettre en oeuvre, c'est juste une version avant de passer à l'Arduino.
Pierre
La version Processing et cette version C/C++ sont quasiment équivalentes, mais il y a quelques différences entre la version Processing et la version C/C++ (dans le but de préparer la version tournant sur Arduino), voici les changements de la version C/C++ :
- le transit souple n'est pas encore mis en oeuvre (il faut juste traduire le code de Java vers C/C++ et tester)
- des "bus" ont étés introduits, le gestionnaire communique avec le réseau, le TCO, les manettes, la centrale (box), … par un ou plusieurs "bus", ces bus peuvent êtres très variés : ethernet, wifi, I2C, USB/série, CAN, … . Pour l'instant les messages comportent tous trois octets et ne sont pas répétés (on peut envisager des codes de détection d'erreurs comme un CRC, voire un numéro de message).
Pour passer à une version Arduino il va falloir faire quelques adaptations :
- la bibliothèque json utilisée existe sur Arduino (c'est pour cela quelle a été choisie) on pourra supprimer l'onglet et utiliser un "include" à la place (le changement de bibliothèque a représenté le plus gros du travail pour passer de Processing à C/C++)
- remplacer les structures de données, genre "vector", par des versions adaptée à l'Arduino et faire attention à la gestion mémoire
- choisir le ou les bus et les implémenter
- régler les problèmes d'initialisation du gestionnaire comme il a été discuté dans le post n° #461 et les suivants de ce fil
- prévoir un moyen de dialogue avec le gestionnaire pour l'affichage de ses messages et l'obtention des informations sur les trains, voir aussi le post n° #461 à ce sujet
- choisir où mettre le "fichier" json, sur carte SD ou en mémoire RAM ou FLASH (PROGMEM)
Les fichiers joints sont tout à fait fonctionnels, mais assez difficiles à mettre en oeuvre, c'est juste une version avant de passer à l'Arduino.
Pierre