"Cannot implicitly convert type 'int' to 'byte'. An explicit conversion exists (are you missing a cast)" error
This will generat the error:
TxData[ByteIndex++] = (byte)TagIdCharacter[0] | 0x80;
Its because the result of the IOR operation does not result in a byte, so you need to use parenthesis:
TxData[ByteIndex++] = (byte)(TagIdCharacter[0] | 0x80);
