Jochen Arndt
Не существует надежного метода обнаружения неисправных или отключенных кабелей, кроме использования выделенных линий управления или аппаратного обнаружения (обычно реализуемого в ИС последовательного драйвера, измеряющей уровни напряжения).
Когда связь использует аппаратное управление потоком, обнаружение уже существует. Просто проверьте состояние используемых линий управления.
Когда вы не используете аппаратное рукопожатие и имеете доступ к устройству, которое может установить одну из линий DSR, CTS или DCD на определенный уровень (жесткий провод или под программным управлением), а программное обеспечение ПК может проверить состояние соответствующей линии. Жесткий провод означает управление входом микросхемы драйвера для соответствующей выходной линии. Это позволит обнаружить не подключенные и не запитанные устройства. Когда один и тот же вход управляется микроконтроллером, он может быть, например, также использован для обнаружения того, что устройство занято.
Когда не используется аппаратное рукопожатие и нет доступа к внутренним устройствам устройства, обнаружение может быть реализовано путем зацикливания управляющих сигналов. Например, подключите контакты CTS и RTS к штекеру устройства. Затем ПК может установить выход RTS и проверить вход CTS. Это позволит определить, подключен ли кабель и подключено ли конкретное устройство,но не обнаружит, выключено ли устройство.
Если вы не используете один из вышеперечисленных методов, все, что вы можете сделать, это обработать условия тайм-аута (отсутствие ответа от устройства), которые также зависят от используемого протокола связи.