Merci Auteur de t'interessé à mon petit problème.
Oui ce bloc est dans le loop.
DetectKb , initialisé à false, devient true lors d'un interrupt généré par mon clavier de saisie.
enSaisie est initialisé à false aussi.
ton tableau contient j+2 éléments mais son dernier index est j+1 pas j+2
Oui il contient j+1 élément du premier tableau et j'ajoute '\0' pour terminer le tableau.
Le code contenu dans le else est exécuté si une des deux conditions de if(detectKb && enSaisie)
non le else est exécuté si j'ai reçu le caractère 'C' de fin de saisie.
Mon C++ est un peu rouillé, mais un static uint8_t sur une variable n'a pas d'intérêt. Déclare là en tant que variable globale.
Si je suis obligé de mettre static car cette variable dois s'initialiser à zéro puis s'incrémenter à chaque nouvelle saisie d'un caractère.
Je viens de modifier ma façon de lire les variables par le Serial ainsi;
Serial.print(saisiKb[i]); Serial.print(" "); Serial.println(sais[i]);
Et maintenant je vois que les caractères sont bons. Alors mon problème est ailleurs, sûrement dans ma procédure gestionCommandes(char *com) .
Je continue mes recherches.
****************
Le problème est dans la dernière ligne de ce paragraphe:
sBt.printf("%s %c","Message reçu",commande);
sBt est une instance Bluetooth et n'étant pas connecté cela bloque le fonctionnement.
Alors j'ai modifié ainsi:
if(sBt.connected()) sBt.printf("%s %c","Message reçu",commande);
et tout fonctionne parfaitement.
Désolé de vous avoir sollicité pour rien.
Merci encore
Partager