Communication du PC vers Arduino

Description

RunF est une librairie simplifiant le « parsing » de commandes et de paramètres envoyés depuis la console série (ou autre) sous la forme de caractères ASCII.

Exemple d’utilisation

Soit une fonction nommée « start » dans votre code Arduino :

<br />
...<br />
 void start(long *vars, int qt){<br />
   Serial.println(&quot;start : &quot;);<br />
   for(int i; i&lt;qt; i++){<br />
     Serial.println(vars[i]);<br />
   }<br />
 }<br />
 ...<br />

Depuis la zone de saisie de la console série :


start(-1, 220, 50000)

La console affiche :


 start :
 -1
 220
 50000

Exemple complet de code Arduino

<br />
#include &lt;RunF.h&gt;</p>
<p>typedef void (*typeF)(long*, int);<br />
char *listFname[] = {&quot;start&quot;, &quot;stop&quot;, &quot;hu&quot;};<br />
typeF listF[] = {start, stopp, hu};<br />
RunF cmd(listF, listFname);</p>
<p>void setup() {<br />
  Serial.begin(115200);<br />
}</p>
<p>void loop() {<br />
  cmd.waiting();<br />
}</p>
<p>void start(long *vars, int qt){<br />
  Serial.println(&quot;start : &quot;);<br />
  for(int i; i&lt;qt; i++){<br />
    Serial.println(vars[i]);<br />
  }<br />
}</p>
<p>void stopp(long *vars, int qt){<br />
  Serial.println(&quot;stop : &quot;);<br />
  for(int i; i&lt;qt; i++){<br />
    Serial.println(vars[i]);<br />
  }<br />
}</p>
<p>void hu(long *vars, int qt){<br />
  Serial.println(&quot;hu : &quot;);<br />
  for(int i; i&lt;qt; i++){<br />
    Serial.println(vars[i]);<br />
  }<br />
}<br />

Notes

Les paramètres sont reçus sous la forme d’un tableau de variables de type long. Le nombre de paramètres envoyés n’est donc pas limité, sauf par la mémoire disponible de l’Arduino.

Les caractères de fin de lignes et d’espaces ne sont pas pris en compte, c’est le caractère « ) » qui déclenche l’exécution de la fonction appelée. Les paramètres doivent être séparés par des « , ».

Le nom des fonctions et les fonctions correspondantes sont déclarées lors de la création de l’objet de type RunF et bien sur, peuvent être supprimées ou rajoutées à volonté. Les fonctions appelées doivent respecter ce format : ne rien renvoyer (être de type void) et posséder 2 paramètres : un tableau de long qui contiendra les variables envoyées et un int qui contiendra le nombre de ces variables.

La librairie ne possède qu’une seule méthode publique : waiting(). Qui se contente d’attendre la réception de caractères depuis le port série pour les traiter.

Téléchargement

http://code.google.com/p/arduino-runf-library/downloads/list

Laisser un commentaire