У меня есть код Python, который читает последовательные данные.Формат, в котором это происходит:
e\x00\x01\x01\xff\xff\xff
То, что на самом деле предполагается хранить здесь, это id определенного компонента, который был выбран на аппаратном устройстве, к которому я получаю доступ черезпоследовательный.Тип id Я считаю, что это целое число, потому что он генерируется автоматически, я не могу изменить его, и он получает значения, как 1, 2, 3 и т. Д. ... для каждого компонента (кнопки).
Мой сериал настроен так:
ser = serial.Serial(port='/dev/serial0',baudrate=9600,timeout=1.0)
Итак, если бы я нажал кнопку с идентификатором 1
, я бы получил => e \ x00 \x01
\ x01 \ xff\ xff \ xff
Если я нажал кнопку с идентификатором 2
=> e \ x00 \x02
\ x01 \ xff \ xff \ xff
и если идентификатор был 10
=> e \ x00 \x0A
\ x01 \ xff \ xff \ xff
Всегда есть конечные символы \xff\xff\xff
, а начальные e
.
Мой вопрос: Как я могу последовательно прочитать такой ввод и извлечь этот бит из всего массива, который приносит мне ценность? Из того, что я увидел в интернете, я мог бы использовать пакет Python struct ираспакуйте такую вещь (e\x00\x01\x01\xff\xff\xff
), но для этого мне нужно как-то узнать / определить ее формат.
То, что я хотел бы прочитать, это первые два целых числа (в шестнадцатеричном коде)после e
.