Micropython Xbee - Как получить серийный номер Xbee и преобразовать его в строку? - PullRequest
0 голосов
/ 28 сентября 2019

Я использую Xbee3 pro с микропифоном.Я пытаюсь преобразовать серийный номер устройства в строку.Вот код

import xbee
from time import sleep


serial = xbee.atcmd("SL")
serial = serial.decode("utf-8") 
while True:
    print("Sending broadcast data >> %s" % serial)

    try:
        xbee.transmit(xbee.ADDR_BROADCAST, serial)
        print("Data sent successfully")
    except Exception as e:
        print("Transmit failure: %s" % str(e))
    sleep(2)

Данные передаются успешно, но я получаю только три ужасных символа, которые невозможно прочитать.

Результат:

serial = xbee.atcmd("SL")
print(serial)

равен

'A\x92\xa4\xbf' 

Мне просто нужно преобразовать 'A \ x92 \ xa4 \ xbf' в 4192A4BF.

1 Ответ

0 голосов
/ 30 сентября 2019

Я считаю, что это должно работать:

''.join('{:02x}'.format(x).upper() for x in xbee.atcmd("SL")

Вы берете каждый байт массива байтов (for x in ...) и форматируете его как два шестнадцатеричных символа в верхнем регистре ('{:02x}'.format().upper()), а затем соединить их вместе, ничего между ними (''.join()).

...