Я работаю над приложением C32 для Win32, для которого я пытаюсь по существу «автоматически определить», было ли устройство подключено к одному из портов RS232, а затем, если оно было отключено.
Проверка подключенного устройства достаточно проста, потому что мой вариант использования позволяет предположить, что именно этот поток будет первым, кто попытается инициировать связь с портом. Я могу сканировать доступные порты каждую минуту или около того, и как только я нашел порт с устройством на нем, я отмечаю, что порт имеет устройство, закрывает порт, затем устанавливает событие так, чтобы процесс, который на самом деле будет использовать устройство знает, что теперь он может подключиться к этому порту.
Обнаружение разъединения - то, где я сталкиваюсь с проблемой. Когда я сканирую подключенные устройства, я на самом деле могу отправить данные в порт, чтобы убедиться, что, если есть устройство, это именно то устройство, которое я ищу. Но после подключения этот порт будет уже открыт другим процессом, и я больше не могу открыть этот порт из потока обнаружения. Поэтому я ищу способ открыть порт в «режиме прослушивания» или что-то в этом роде, чтобы я мог просто увидеть, есть ли еще устройство.
Я кратко наткнулся на что-то о просмотре линии DSR или DTR или что-то в этом роде ... но больше не мог найти или как на самом деле это сделать.
Есть предложения?
Редактировать: Похоже, мне нужно уточнить немного больше ... Для обнаружения разъединения я не может отправлять данные на порт RS232 любым способом. Кроме того, я не могу предположить, что у другого приложения фактически открыт порт. Устройство может быть физически подключено, но без и открыть соединение ... но я все еще не могу рисковать отправкой данных на него. Я надеялся, что есть способ просто проверить, есть ли еще питание на этом порту или что-то в этом роде.