Pyserial конвертирует байты в обычную строку

Вопрос:

Я получаю пакет через последовательный порт, но когда я получаю пакет, он имеет байты класса и выглядит так:

b'>0011581158NNNNYNNN  +6\r'

Как преобразовать это в обычную строку? Когда я пытаюсь взять информацию из этой строки, она появляется как десятичное представление, которое появляется.

Ответ №1

Вы можете вызвать decode в объекте bytes, чтобы преобразовать его в строку, но это работает только в том случае, если объект байтов фактически представляет текст:

>>> bs = b'>0011581158NNNNYNNN  +6\r'
>>> bs.decode('utf-8')
'>0011581158NNNNYNNN  +6\r'

Чтобы действительно разобрать вход, вам нужно знать формат и то, что он на самом деле означает. Для этого определите устройство, подключенное к последовательному порту (сканер “Робот”? Какой-то приемник?). И посмотрите протокол. В вашем случае это может быть текстовый протокол, но вы часто обнаружите, что байты стоят за цифры, в которых вы, вероятно, захотите взглянуть на struct модуль.

Оцените статью
TechArks.Ru
Добавить комментарий