Bon et bien, je suis arrivé à un bout de quelque-chose...
//Carte Uno sous-marin
char commande[32];
void setup() {
Serial.begin(9600); //Lancer le mode série
pinMode(13, OUTPUT);
}
void loop() {
if(readCommande() != 0) {
Serial.println(commande);
if(strcmp(commande, "<on>")==0) {
digitalWrite(13, HIGH);
}
if(strcmp(commande, "<off>")==0) {
digitalWrite(13, LOW);
}
}
delay(20);
}
int readCommande() {
if(!Serial.available()) {
return 0;
}
int i=0;
while(Serial.available()) {
commande[i]=Serial.read();
i++;
}
commande[i] = 0;
return i;
}
Maintenant, il faut qu'au niveau de mon buffer, on puisse faire ceci:
"<" début de trame
">" fin de trame
"ordre, chiffre ou valeur" entre "<" ">"
Interdire tout autre traitement tant que le traitement en cours n'est pas effectif.