Pages

lundi 4 décembre 2017

Exploiter une chaîne de caractères en Arduino-Partie 1

Utilisation d'un tableau de caractères

De très nombreux périphériques communiquent avec les microcontrôleurs via le port RS232-UART. C'est très facile de lire une seule valeur comme "A" pour "allume" ou "S" pour "stop".
Mais qu'en est-il des envois de données complexes ? C'est-à-dire, des chaînes de caractères.....


Il existe plusieurs méthodes, plus ou moins simples et plus ou moins efficaces ou pratiques.

La plus simple est de récupérer les données entrantes dans le port série dans un tableau déclaré comme cela :

 ici, le tableau est constitué de caractères inconnus et sa taille est indéfinie. Pas évident à gérer, le compilateur ne connaît pas la taille mémoire à allouer et donc on risque d’avoir des surprises lors de la compilation (et à l'usage) si le programme total est très lourd.....

On peut aussi déclarer ainsi :

Maintenant, on a limité l'occupation mémoire à 12 emplacements (+1 avec le caractère "null").
Cette méthode fonctionne très bien quand on connaît précisément la taille et l'emplacement des valeurs que l'on veut récupérer. Il faut que tout soit figé à l'avance.
Par exemple, on reçoit cette chaîne :
"AAAASSSAAAAS"
ou bien :
   "SSSAAASSSSSS"


Dans ces deux cas, il est facile de trouver l'emplacement d'un caractère et de le traiter :


Il suffit dans ce cas de donner l'emplacement du caractère et on teste, on traite, on transforme...... Ici, c'est le quatrième emplacement.