Bonjour à tous
Je suis un peu étonné d'un truc...
Afin de résoudre un probleme, j'ai supprimé toutes les fonctions qui ne sont pas utile à lire les positions GPS.
Donc quand j'y suis, il va continuelle (loop()) écouter ce qu'il se passe dans mon Serial1 et m'afficher ce qu'il lit.
Ca fonction partiellement, car plus il avance plus il est lent à la réaction, mais l'affichage est ce que j'attend.
Par exemple quand je décoche la checkbox "Autoscroll", il met plusieurs secondess pour etre decoché.
Aussi quand je veux fermer le monitor, il freeze légérement pour se fermer 1-2 minutes plus tard, voir plus.
Des fois je dois forcer la fermeture d'Arduino pour reprendre mon travail.
J'ai donc relu my fonction et voici mes commentaires que je mets en majuscule.
PS Baute rate est à 9600.
#define COORDSSIZE 400
char coords[COORDSSIZE];
int x =0;
void loop()
{
// S IL Y A QUELQUE CHOSE DANS SERIAL1, CONTINUE
if(Serial1.available() > 0){
// TANT QUE X EST PLUS PETIT QUE LA TAILLE DU BUUFER coords, CONTINUE
if(x < COORDSSIZE-1) // Do not fill the buffer more the it size
{
// REMPLIE LE BUFFER
coords[x] = Serial1.read();
x++; // INCREMENTE POUR METTRE LA PROCHIANE LETTRE DANS LA POS SUIVANTE
// check if the desired answer is in the response of the module
//Serial.print(F("Res:")); Serial.println(response);
//Serial.print(F("Expt:")); Serial.println(expected_answer1);
//Serial.println(response);
}
}
// APRES SERIAL1, AFFICHE LE RESULTAT
Serial.println(coords);
}
En fait, je pense qu'il y a des fautes dans ce code. je suis aussi confu.
x est incrémenté a chaque passage dans loop(), mais a quel moment il est remis à 0, puisqu'il est déclaré en dehor de loop()
Ou alors, 'coords', "explose" quans il dépasse 400, car a aucun moment il est vider. Il devrait être vider quand je passe loop(). Car a chaque passe de loop c'est une nouvelle lecture des positions GPS. Donc il y a un truc qui tourne pas rond.
Aussi j'ai penseé vider le buffer coords comme ceci
[..code..]
// APRES SERIAL1, AFFICHE LE RESULTAT
Serial.println(coords);
coords[0]='\0';
}
En fait, je suis confus avec cette Serial1.available() qui un peu une base
:.
Ou es-ce qu'il y a un defaut?
Milles mercis