125khz rfid Reader - char* / char[]

Kleiner Einspruch: Sicher können auf seriellen Leitungen Zeichen verloren gehen.
read() blockiert aber nicht, sondern liefert -1, was zu einem ungültigen Code führt und sich mit der nächsten Start-Kennung ( 0x02 ) wieder synchronisiert.

Stimme ich grundsätzlich zu, aber die ungültigen Codes sind ja gerade sein Problem (deshalb die mehrfachen roten Blinksignale). Oder habe ich das immer noch falsch verstanden? Wenn ein Byte als -1 eingelesen wird, dann wird ein gültiges Tag zu einem ungültigen (rotes Blinksignal), das nächste richtige Einlesen des gültigen Tags führt dann wieder zu einem grünen Signal, ein -1 an einer anderen Stelle zu einem erneuten roten Signal. Nach seiner Beschreibung sieht er genau diese Symptome.