Serial Commands

Auteur

J.Soranzo

Association

Bricolab

Entity

VoRoBoTics 1

dépôt Bitbucket des sources doc

https://bitbucket.org/myarduinotemplates/docsource/src/master/

Dépôt BitBucket du code

https://bitbucket.org/myarduinotemplates/serialcommand

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.

_images/dccExLogo.png

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.