Я запутался в обработке байта.
Мой фон кода связан с rs485-связью с измерителем тока.
hex_string - это команда, отправленная метру.
Я хочубайты конвертируются в строковую запись recv, пытаясь использовать recv.decode ("utf-8") в этом методе, но он недействителен.
Это переменная содержимого recv:
b '\ x05\ x03 \ x03 \ x00 \ x15 \ x88K '(байты) -> 0503020015884b (шестнадцатеричный)
Я хочу разобраться с этим абзацем: 0503020015884b (шестнадцатеричный).
Удалить 050302 и 884b,держите середину 0015 и конвертируйте 0015 в десятичную.
Как мне поступить?
#!/usr/bin/env python3.7
import serial,time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(40,GPIO.OUT)
GPIO.output(40,GPIO.LOW)
ser = serial.Serial(port='/dev/ttyS0',baurdate=9600,parity='N',bytesize=8,stopbits=2,timeout=1)
hex_string = '0503010000018472'
print ('\nType-hex_string',type(hex_string))
ser.reset_input_buffer()
ser.reset_output_buffer()
GPIO.output(40,GPIO.HIGH)
ser.write(bytes.fromehex(hex_string))
time.sleep(0.01)
GPIO.output(40,GPIO.LOW)
recv = ser.read(11)
print ('\nOrigin:',recv)
print ('\nType-Origin:,'type(recv))
print ('\nHex:',recv.hex())
print ('\nType-recv.hex():',type(recv))