У меня есть проблема с pyserialПрочитайте вывод из серии с помощью pyserial.
Во-первых, установить соединение:
ser = serial.Serial(
device,
baudrate=115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
Если я нажать клавишу меню появится (я не могу видеть это меню, но я знаю, что если нажать «1» получить дамп данных):
0=Cfg
1=Dump
2=Erase
3=Cal
In->
В моем коде нажмите '1':
cmd = "1"
ser.write(cmd.encode('ascii'))
S О, когда я нажимаю «1» последовательный результат очень длинный список номера, как это:
816 81e 81e
828 820 820
816 816 81a
82a 826 824
816 80e 81a
81e 824 820
820 81a 80e
816 80e 81e
82a 81c 824
... and many other
Я стараюсь читать выход с этой командой после 60 секунд: (60 секунд о времени прокрутить все строки)
time.sleep(60)
dumpfile.write(str(ser.read_all()))
Но в dumpfile у меня всего несколько строк. Как я могу читать общий вывод серийного номера?
спать? или использовать подопечного, чтобы ждать некоторой последовательности, которая сигнализирует, что это сделано? –
Я пытаюсь увеличить сон, но я думаю, это проблема с буфером. Лучшее решение, может быть, читается линейкой, но я не знаю, как это сделать !! – karmax
Что такое ser.read_all()? Он не указан в документах pySerial API: https://pythonhosted.org/pyserial/pyserial_api.html – Neil