У нас есть встроенное устройство на базе Debian. Он запускает приложение, которое обменивается данными с другим встроенным оборудованием через последовательный порт (RS-232, / dev / ttyS *). Обычно это работает нормально. Но, конечно, иногда что-то идет не так, и хотя наше приложение все еще может отправлять байты без ошибок, с другой стороны ничего не возвращается.
Теперь я хотел бы уметь различать
[A] Последовательное соединение активно / установлено / установлено (я знаю, что, вероятно, использую неподходящую терминологию) в том смысле, что другое устройство получает наши данные. Но по какой-то причине приложение на другом устройстве не отвечает нам (например, потому что оно разбилось).
[B] Последовательное соединение не живые / новые / установленные, например из-за того, что кабель был отключен или другое устройство потеряло питание.
Есть ли способ сделать это? (например, с подключением Ethernet, где действительно просто определить, есть ли у него связь)
Некоторые детали:
Нет, это невозможно. Последовательные соединения полностью не зависят от состояния как с электрической, так и с программной точки зрения.
Просто чтобы дать совершенно противоречивый ответ ... если ваше программное обеспечение поддерживает это и ваше соединение имеет больше, чем минимальное количество контактов, соединения RS-232 жестяная банка иметь рукопожатие и управление потоком. Ваше приложение мог проверьте соединение перед отправкой, но похоже, что это не так.