Serial Commands¶
- Auteur
- J.Soranzo 
- Association
- Bricolab 
- Entity
- dépôt Bitbucket des sources doc
- https://bitbucket.org/myarduinotemplates/docsource/src/master/ 
- Dépôt BitBucket du code
- Création
- 05/2024 
Présentation¶
Il s’agit d’un petit interpréteur de commandes simple.
Je l’ai découvert dans le cadre du projet jamais terminé : Le petit train du VoLAB 2
Et plus particulièrement DccPlusPlus 4 de Gregg E. Berman dont le site semble-t-il a disparu. On peut néanmoins citer le projet DCC-EX 3 qui découle de ses travaux. DCC++ n’est aujourd’hui plus maintenu.
 
J’ai utilisé cette base à maintes reprises dans mes projets car elle est simple à mettre en oeuvre…
Elle consiste principalement en 2 fichiers :
- SerialCommand.cpp 
- SerialCommand.h 
Auxquels, je me suis permis d’en ajouter un troisième SerialCommandHelpMessages.h. Un des derniers exemple de mise en oeuvre de ce modèle peut être trouvé sur le projet BrasRobot avec interface WEB - travaux 2023 5
C’est ce mini interpréteur de commande qui fait l’objet du présent article.
Mode d’emploi¶
Implémentation¶
Cet interpréteur est basé sur 3 fonctions static d’une structure en C:
- init() 
- process() 
- parse() 
Comme il s’agit de méthodes statiques pas besoin d’instancier la structure. L’appel de ces méthodes se fait par SerialCommand::init(); et SerialCommand::process();
Même si 3 fonctions sont disponibles seules 2 sont à utiliser dans le code init et process. Parse qui est la fonction principale qui fait quasiment tout le boulot est appelée par process.
Utilisation¶
Les commandes:
Elle sont constituées d'une seule lettre encadrée des caractères < >. Exemple : <H> pour help.
Ces commandes peuvent avoir des paramètres séparés pas des espaces. Dans le dépôt du code, j’ai laissé des exemples de commandes avec paramètres notamment la commande <M 1 2> à 2 paramètres.