Я пишу код для извлечения данных с физиологического монитора через Bluetooth на последовательный порт в Python. Мне нужно отправить шестнадцатеричный код на монитор, чтобы получить данные. Я успешно подключился к порту, но у меня проблемы с отправкой шестнадцатеричного кода. Шестнадцатеричная строка была дана мне, но она взята из C#, и я не знаю, нужно ли ее преобразовывать, чтобы Python мог ее прочитать. Когда я выполняю приведенный ниже код, мое сообщение об ошибке гласит:
TypeError: fromhex() takes exactly one argument (61 given)
Это строка в C нотации
{0x7E,0x00,0x3A,0x00,0x00,0x00,0x00,0x80,0xDE,0xFB,0x2C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,#0x00,0x09,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x05,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE2,0x7E}
, ниже моя программа в Python3
import serial
ser = serial.Serial(
port='/dev/cu.PARANISERIAL-GenericSer',
baudrate=9600,
timeout= 10,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
message_bytes = bytes.fromhex(0x7E0x00/0x3A/0x00/0x00/0x00/0x00/0x80/0xDE/0xFB/0x2C/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x09/0x00/0x00/0x00/0x00/0xFF/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x01/0x05/0x00/0x0C/0x00/0x00/0x00/0x00/0x00/0x04/0x05/0x00/0x00/0x00/0x00/0x00/0x00/0x00/0xE2/0x7E)
ser.write(message_bytes)
print (ser.is_open) # True for opened
if ser.is_open:
while True:
data = ser.read(10)
print(data)
print(str(data.decode()))
else:
print('no data')
time.sleep(1)
else:
print('z1serial not open')
s = ser.read(100)
print(str(s.decode()))
ser.close()
print(ser.isOpen())
Любое руководство будет с благодарностью. Спасибо