If o non if , it is the problem...

Il byte va spaccato in 8 bit perché l'informatica non è una religione ma una scienza esatta :wink:
Ad esempio, ricordati che la seriale spedisce 1 byte alla volta. Quindi se spedisci una stringa, essa verrà scomposta nei singoli caratteri. Se spedisci "982" verranno spediti i 3 caratteri "9", "8" e "2".
Tu poi non fai un confronto su valori numeri ma su caratteri, '2' indica il carattere ASCII 50, non il valore 2, quindi mi viene da pensare che tu spedisca stringhe. Se spedisci il carattere ',' il controllo sarà valido lo stesso perché nella tabella ASCII ',' è minore di '4'