Bonjour,
Me voilà bien embêté j'essai depuis 1 heure à pouvoir lire le buffer de mon Arduino.
void setup()
{
Serial.begin(9600);
pinMode(2, OUTPUT);
int incomingNumber = 0; // numero du bloc
unsigned char incomingDecimal = 0; // octet en decimal
byte SerialOK = 0;
Serial.println("BAES VERSION MANCHESTER 3 --");
Serial.println("Programme de simulation du code lumineux envoye par un BAES");
Serial.println("10 ms par etat(niveau de tension)");
Serial.println("=> suite de 5 '01'");
Serial.println("=> 2 octets pour le numero du bloc (LSBytes puis MSByte");
Serial.println("pour chaque octet, envoi d'abord du LSByte par exemple 0xSF => 1111 1000");
Serial.println("=> 1 octet d'etat");
Serial.println("=> 2 octets de CRC16 (LSB puis MSB)");
Serial.println("========================================================================");
Serial.println("Separation entre 2 trames : Vcc pendant 5 etats");
Serial.println("Saisir le numero du bloc (1...32767) :");
while(SerialOK==0)
{
if(Serial.available() > 0)
{
incomingNumber = Serial.read()-48;
if(incomingNumber > 0)
{
SerialOK = 1;
}
}
}
SerialOK = 0;
while(Serial.read() != -1);
Serial.println("Saisir en decimal l'octet d'etat (0...255): ");
while(SerialOK==0)
{
if(Serial.available() > 0)
{
incomingDecimal = Serial.read()-48;
if(incomingNumber > 0)
{
SerialOK = 1;
}
}
}
SerialOK = 0;
Serial.println("========================= Valeur saisie ==============================");
Serial.print("Numero du bloc : ");
Serial.println(incomingNumber);
Serial.print("Octet d'etat : ");
Serial.println(incomingDecimal);
Serial.println("========================================================================");
Mon problème est dès que je met par exemple "12" dans mon buffer et que j'appuie sur la touche entrer il ne me propose pas une deuxième fois à entrer un nombre, et se permet de m'afficher 1 et 2 en valeur saisie. A l'exception que si je rentre un nombre inférieur à "10" il le fait.
Du coup je vois quel est le problème c'est qu'il ne lit pas tout le buffer avant que j'entre un deuxième nombre et il prend ça pour 2 chiffres indépendant. Et je ne trouve toujours pas le moyen de faire en sorte qu'il lise tout le buffer puis une deuxième fois.
Une idée ?