Недавно я создал скрипт, который считывает данные из порта UART и помещает полученные данные в файл. Я продолжаю читать, пока получаю пустой элемент, поскольку я использую ord ().
while (value == []) or (value == ''):
value = ser.read(size = 1)
Я попробовал это и отправил данные с журналами, как HTerm, и не получил никаких проблем.
И Когда я использую его с другим скриптом, я замечаю, что иногда отсутствует байт, который сдвигает все данные. Чтобы прояснить, что происходит, я добавил отладку, которая отображает рамку и положение в кадре. Для размера кадра 1:
Frame 1 : 255,1
Frame 2 : 255,1
Frame 3 : 1
Frame 4 : 255,1
...
То же самое происходит с рамкой размера N, затем я получаю две позиции
Frame 1 : 255,1,255,2,3,255,4, ...
Скорость передачи данных установлена на 115 200 бод на обоих устройствах.
Разве while
l oop не должен ли избежать этого случая (тайм-аут, я полагаю?)?
Версия Python: Python 2.7.13
Спасибо!