What the heck is this supposed to be doing?
The RFID reader terminates with a CR, so the bytes are read until a CR is found, and stored as a string
Why are you stuffing the char pointer that is returned into a String?
not sure, it works this way
This is crap. The 2nd argument to toCharArray() is the size of the array being written to. The method KNOWS how much data is in the instance that it is called for. It REALLY doesn't need you to tell it that.
Maybe so. I did this because you cannot cast a string to unit8_t so i converted the string to char array. If I change how read the RFID tag by using a Serial.read and read byte by byte into are char array and then cast to unit8_t for sending.