bonsoir
Voila j'ai reçu le lecteur RFID
apres un rapide test , je vois bien les codes RFID ,mais je n'arrive pas a faire une comparaison pour autoriser tels ou tels badge
char code[10];
char tag1[10] = {'2','8','0','0','1','D','5','3','5','7'}; //define tag 1
et je tente la comparaison comme cela
if(strcmp(code, tag1) == 1) //compare tag1 to the tag read
{
digitalWrite(ledPin, HIGH);
Serial.print("bingo trouvé ");
}
Oups j'avais pas fait attention à la première lecture, tes tableaux ne sont pas bien définis.
strcmp travaille avec des chaines. Les chaines doivent se terminer par un \0.
Donc:
il faut 1 élément de plus à tes tableaux
il faut penser à ajouter le terminateur
char code[11];
char tag1[11] = {'2','8','0','0','1','D','5','3','5','7','\0'}; //define tag 1
A mon avis si ton programme te répond OK sur un badge c'est un coup de bol ou un bug.
Cette librairie n'est utilisable que pour faire des impressions. Là le problème c'est du traitement sur les chaines.
Maintenant, si lastiko rencontre des problèmes d'occupation mémoire (la librairie String est assez volumineuse) et qu'il n'utilise que strcmp la fonction peut être réécrite.
Merci B@tto, je m'étais arrêté au titre et aux premières lignes de description de la librairie et je n'avais pas vu les opérateurs.
Cette librairie est intéressante, je crois bien que je vais la récupérer.
char tag1[11] = {'2','8','0','0','1','D','5','3','5','7','\0'}; //define tag 1
Les chaines doivent se terminer par un \0.
ca correspond a quoi ?
Ça correspond à la définition d'une chaine en C.
En C une chaine de caractères doit se terminer par un null.
Le null peut s'écrire de différentes façon.
caractère '\0'
byte 0
Donc on peut écrire:
char tag1[11] = {'2','8','0','0','1','D','5','3','5','7','\0'};
ou
char tag1[11] = {'2','8','0','0','1','D','5','3','5','7',0};
Une chaine vide c'est:
char tag1[11] = {'\0'};
Quand on définit une chaine avec des guillemets, le \0 est implicitement ajouté par le compilateur.
un grand merci a B@tto , ca marche nikel avec Pstring
Par contre je n'ai pas réussi avec le code précédent et l'histoire de 0 a la fin
si quelqu'un a le courage de me montrer un code qui compare avec cette methode je suis preneur , histoire de comprendre et de ne plus poser cette question a l'avenir