Входным сигналом RS232 C является CTS / DSR / RI / CD.
Возможно, вы и ваши участники проекта неправильно понимаете спецификации RS232 C.
RTS / DTR выходной сигнал управляется программой, которую вы создаете, а не входной сигнал.
Вы можете знать, что вы установили, или каково состояние по умолчанию, даже если вы не установили его, но оно не изменяется из-за внешние факторы.
pySerial API
Возможно, что сигнальная линия RTS / DTR может измениться нежелательно из-за аппаратной проблемы, такой как обрыв линии или короткое замыкание с чем-то, но программа не может знать это, и она не находится в состоянии, когда связь возможна.
Другая возможность состоит в том, что аппаратное управление потоком включено, и входной буфер последовательного порта установлен маленьким, или даже если буфер установлен большим, одноранговый узел отправляет больше данных.
Драйвер устройства автоматически контролирует сигнальные линии, чтобы предотвратить переполнение входных данных.
Это происходит из-за недостаточного учета настроек последовательного порта и спецификаций программы, и считается правильным программированием для максимально возможного предотвращения таких изменений состояния.
Кажется, что есть нет интерфейса событийного программирования для PySerial.
cts
dsr
Вы писали, что хотите вызывать функцию при включенном CTS / DSR, но наоборот Вы можете проверить состояние CTS / DSR при вызове функции?
Если вы действительно хотите выполнять управляемое событиями программирование с сигналами CTS / DSR, это метод создания программного обеспечения l oop, которое отслеживает сигналы CTS / DSR в качестве основной процедуры, определяет время, когда Сигнал CTS / DSR меняется с OFF на ON и вызывает соответствующую функцию.
Обратите внимание, что если мониторинг сигнала CTS / DSR основной подпрограммой не выполняется периодически между засыпаниями, ЦП будет занят и система не будет работать должным образом.