повторная сортировка потока данных с использованием Python - PullRequest
0 голосов
/ 02 мая 2018

В настоящее время я работаю над потоком шестнадцатеричных данных, таких как:

FIX230000010056A898
FIX230000020067A898
FIX230000030067A898
...

и так далее, я получил его с выхода микроконтроллера. Но каким-то образом, если есть ошибка, данные смещаются, поэтому поток данных становится таким:

00010067A898FIX2300
00020067A898FIX2300
00030067A898FIX2300

, что беспокоит меня, когда я пытаюсь декодировать данные. Я должен сделать так, чтобы символы FIX2300 снова были в начале данных, но это слишком хлопотно. Итак, я хотел написать программу на Python ... но, к сожалению, понятия не имею. Есть кто-нибудь, кто знает об этом? большое спасибо!

1 Ответ

0 голосов
/ 02 мая 2018

Как то так?

import binascii

myStr = "00010067A898FIX2300"

#or
myHex = b'30303031303036374138393846495832333030'
myStr2 = binascii.unhexlify(myHex).decode('utf8')
# NOTE: myStr2 = myStr

# convert stream data to string
myStr3 = myStr[-7:]+myStr[:-7] # or myStr2[-7:]+myStr2[:-7]

#convert stream data back to hex, if needed
myHex2 = binascii.hexlify(myStr.encode('utf8'))

Вы также можете использовать кодек ascii вместо utf8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...