Это первый раз, когда мне приходится подключаться к устройству через последовательный порт RS232 для чтения / записи данных, и я застрял в процедурах кодирования / декодирования.
Я делаю все в Python 3 с использованием библиотеки " pyserial ". Вот что я сделал до сих пор:
import serial
ser = serial.Serial()
ser.port = '/dev/ttyUSB0'
ser.baudrate = 115200
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE
ser.timeout = 3
ser.open()
device_write = ser.write(bytearray.fromhex('AA 55 00 00 07 00 12 19 00'))
device_read = ser.read_until()
Соединение / связь, кажется, работает как задумано. Вывод device_read
равен
b'M1830130A2IMU v3.2.9.1 26.04.19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x0527641\x00\x00\x00IMHF R.1.0.0 10.28.2018 td: 6.500ms\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00'
, и вот где я застрял. Я не знаю, как это интерпретировать. Прикрепленное изображение из таблицы данных, которая объясняет, что должны представлять выходные данные.
В таблице указано, что поля в байтах с 98 по 164 пусты «для устройства у меня есть. Может ли кто-нибудь помочь мне понять, что нужно сделать, чтобы преобразовать вывод ser.read_until()
в форму, которая «читаема человеком» и представляет данные на изображении? Мне не нужно, чтобы кто-то писал код для меня, но я даже не уверен, с чего начать. Опять же, я делаю это впервые, так что я немного растерялся.