\x02
- это код ASCII для гексагона 02, который равен STX
(начало текста).
\x32
- это ASCII для цифры 2
.
Если SData
является целой или любой (не двоичной) строкой, не забудьте преобразовать ее в строку с str(SData)
.
Также в общем b'A' != 'A'
. Вы хотите использовать .encode('ascii')
для преобразования строки Python в двоичную строку ASCII.
>>> binary_A_from_string = 'A'.encode('ascii')
>>> binary_A_from_string
b'A'
>>> binary_A = '\x41' # ASCII 41 (dec 65) is 'A'
>>> binary_A
b'A'
>>> binary_A == 'A'
False
>>> binary_A == binary_A_from_string
True
Это потому, что Python видит двоичные строки ASCII в отличие от стандартных строк Python.
Кроме того, убедитесь, что прочитанная информация действительно имеет длину в один байт.