HEX naar String

Goeiendag,

Volgende code gebruik ik om bytes van een RFID lezer binnen te halen.

 byte i = 0;
  while (Serial1.available() > 0 ) {
    delay(20);
    byte c = Serial1.read();
    if ( c < 16) Serial.write('0');
    Serial.print (c,HEX);
    Serial.write(' ');
    kaart[i] = c;
    if (i < 3) i++;  
  }
  if ( i > 0 ) Serial.println(); 
  
  
  kaart[i] = 0;

De 5 hexidecimale waarden (bijvoorbeeld 84 00 34 CD 42) zou ik graag in één String zetten zodat ik die makkelijk tegen een String array kan vergelijken. Ik kom er echter niet achter hoe ik de HEX waarden in de String kan zetten.

Ik zou ze niet in een string array zetten maar in een integer array. Daar kan de Arduino prima mee overweg.

int myID[5] = { 0x84, 0x00, 0x34, 0xCD, 0x42 };
int kaart[5];

byte i = 0;
while (Serial1.available() > 0 ) 
{
    delay(20);
    c = Serial1.read();
    if ( c < 16) Serial.write('0');
    Serial.print (c,HEX);
    Serial.write(' ');
    kaart[i] = c;
   i++; 
}

bool RFIDequal(int ar1[], int ar2[], int size)   // call with if (RFIDequal(kaart, myID, 5) { ....
{
  for (int i=0; i< size; i++)  if (ar1[i] != ar2[i]) return false;
  return true;
}

Hoi Rob, dank voor je reactie!

Ik wil echter de inkomende bytes vergelijken tegen een stuk of 30/40 codes. Mijn idee was om het dan als volgt te doen:

String users[] = {
  "",
  "840034CD42",
  "840022BE12",
  "enz"
};

dmv

for (int i=0; t < aantal; i++){
if ("inkomende string" == users[t]) uitvoeren;

}

Hier een thread waarbij ze sprintf gebruiken : c - Converting hex into a string using 'sprintf' - Stack Overflow

gebruik char array's en de functie strcmp() als je als tekst wil vergelijken. (google for details)