Я создал script для мониторинга вывода последовательного порта, который получает 3-4 строки данных каждые полчаса - script работает отлично и захватывает все, что выходит из порта, который в конце день имеет значение...
Однако мне кажется, что использование процессора кажется довольно высоким для программы, которая контролирует только один последовательный порт, 1 ядро всегда будет на 100% использовать, пока этот script запущен.
В основном я использую модифицированную версию кода в этом вопросе: pyserial - Как читать последнюю строку, отправленную с серийного устройства
Я пробовал опрос функции inWaiting() через регулярные промежутки времени и спящий, когда inWaiting() равен 0 - я пробовал интервалы с 1 секунды до 0,001 секунды (в основном, как можно чаще, без подъема использование процессора) - это удастся захватить первую строку, но, похоже, пропустит остальную часть данных.
Настройка тайм-аута последовательного порта, похоже, не влияет на использование процессора, а также не помещает функцию прослушивания в собственный поток (не то, что я действительно ожидал разницы, но это стоило попробовать).
- Должен ли python/pyserial использовать этот много процессор? (это кажется излишним)
- Я трачу свое время на этот квест/Должен ли я просто укусить пулю и запланировать script, чтобы спать в течение периодов, которые, как я знаю, не будут поступать данными?