Lecteur RFID

Bonjour,

J'essaye tant bien que mal de créer un lecteur RFID, voici mon code:

void serialEvent2()
{
    if (Serial2.available())             
    {
      while(Serial2.available())     
      {
        buffer[count++]=Serial2.read(); 
        if(!Serial2.available())
        {
                break;
        }
      }
      Serial.print(buffer);
      clearBufferArray();
      count = 0;
    }
}

Donc quand je passe un badge, je reçois bien son numéro CEPENDANT, je dois utiliser ce badge après pour le comparer à d'autres badges enregistrés dans un fichier, tout cela est déja fonctionnel mais le problème, et qu'avant de pouvoir envoyer le badge scanné, je ne peux pas l'utiliser car il s'agit d'un char et je dois le transformer en String.

J'ai donc fais cela:

String badgefinal(buffer);

Et quand je fais donc un print, cela m'affiche encore bien mon badge MAIS, quand je fais Serial.printLN(badgefinal) (ou Serial.printLN(buffer)), cela me renvois quelque chose comme ça:

AA
BB
CC
DD
E
FF
FF

En gros, ça saute des lignes et je ne sais pas pourquoi...

Que faire ? (en gros, j'aimerai savoir comment faire pour avoir un String de cette forme: AKFFEKFEKK exploitable !)

Le module que j'utilise: http://www.seeedstudio.com/wiki/Grove_-_125KHz_RFID_Reader

C'est normal, puisque buffer est un tableau d'octets.

Pour manipuler ce tableau il faut faire une boucle qui balaye tous ses éléments.

J’ai fais ceci:

String badgefinal;
for(int i = 0; i<sizeof(buffer); i++)
{
     badgefinal[i] = buffer[i];
}

Mais badgefinal affiche 12 ligne de “rien”, c’est vide…

Salut,

car il s'agit d'un char et je dois le transformer en String.

Mouais enfin ce qu'on fait avec des String on peut toujours le faire avec des tableaux de char. En plus c'est fiable au moins :slight_smile:

Ensuite ça :

        if(!Serial2.available())
        {
                break;
        }

Bin ça sert à rien puisque c'est la condition inverse du while dans laquelle il est inclu.

Après pour ton problème je vois pas bien vu que les string je m'en passe très bien :slight_smile:

Si c'est pour une comparaison que tu as besoin de String, ça existe aussi avec les chaines de caractères : strstr() et strcmp()

bonjour
Ton UID (identification de badge) renvoyé par ton lecteur est de quelle longueur ?