Je dois comprendre comment envoyer un message au format hexadécimal de UART par exemple: msg = '99' + « 70b4c55ad8cdb7806a7b043069c4e0d8 »comment envoyer un hexadécimal de python à l'UART?
« 99'is distingue, le début du message et le reste est les données. Comme importation série temps d'importation
#serial port
ser = serial.Serial(
port='COM4',\
baudrate=230400,\
parity=serial.PARITY_NONE,\
stopbits=serial.STOPBITS_ONE,\
bytesize=serial.EIGHTBITS,\
timeout=0)
msg=b'\x99\x70\xb4\xc5\x5a\xd8\xcd\xb7\x80\x6a\x7b\x04\x30\x69\xc4\xe0\xd8'
ser.write(msg)
time.sleep(0.4)
while True:
print(ser.read(30))
ser.close() # close ports
Mais je ne unerstand e erreur:
msg= b'\x99\x70\xb4\xc5\x5a\xd8\xcd\xb7\x80\x6a\x7b\x04\x30\x69\xc4\xe0\xd8'
^
IndentationError: unexpected indent
Il me faut ensuite comparer en utilisant c langage, pour comparer le premier octet reçu 99 avec 0x99 .
int lenght = dev_uart_ptr->uart_read((void*)buffer,34);
if (lenght<34)
{
if buffer [0]='0x99'
}
Merci d'avance.
Vous vous rendez compte que 99 est un nombre hexadécimal valide, non? Cela en fait un mauvais marqueur de départ. –
@MarkRansom, je commence à utiliser hexadécimal, uart et c très récemment, je suis ouvert à tous conseil et suggestion – tssmokey46
Vous avez une bonne réponse sur l'utilisation d'un objet octets, mais si vous avez une chaîne hexagonale pour commencer, vous pouvez 'binascii.unhexlify ('99 '+' 70b4c55ad8cdb7806a7b043069c4e0d8 ')'. – tdelaney