Bonjour bonjour,
Après avoir lu attentivement le topic d'Oliver17 et ayant moi même pour objectif de mettre en place le même type de com, je poste ici pour pas polluer son topic ( http://www.robot-maker.com/forum/topic/11890-gcom-communication-pi-arduino/?p=92084).
Je me suis documenté sur l'UART et j'ai des idées que je voudrais partager avant de me lancer dans le code ^^. Ca me permettra aussi de vérifier que j'ai bien compris le principe.
Grosso modo les liaisons UART ne sont pas réellement structurées (par opposition à l'i2c par exemple). La ligne est à 1 au repos, quand quelqu'un prends la parole il fait un silence et ensuite transmet un octet.
A l'autre bout de la ligne on va donc recevoir un octet qu'on va stocker dans un buffer que le programme va traiter dans un second temps. Le hic c'est qu'on ne sait pas ce que cet octet représente (ni même le type de variable). Dans le cas d'une info sur plusieurs octets on se sait même pas où est la fin de l'information.
Ceci dit, l'intérêt de l'UART c'est qu'on en fait ce qu'on veut ( ou presque, l'UART cuira pas ma pizza).
Du coup est il imaginable de structurer mes messages de la façon suivante :
Octet 1 : integer de 0 à 255 indiquant un type d'information :
A la façon d'une ENUM on a une table de correspondance dans le soft, par exemple :
001 : commande de déplacement
002 : information du sonar
003 : angle du servo tartampion
Octet 2 : Integer de 0 à 255 indiquant le nombre d'octets qui vont suivre...
Octet 3 à i : l'information en elle même.
Comme ça quand je lis le buffer, je sais ce que je lis. Qu'en pensez vous ?