COM-порт - как идентифицировать устройство (.net / c #) - PullRequest
1 голос
/ 17 мая 2010

Я программирую для Windows CE, и мне нужно подключиться к сканеру. Нет проблем - я знаю, что он находится на порте COM0, но если я подключу другое устройство раньше, он получит другой COM-порт ..., чтобы получить все com-порты, проще всего будет:

SerialPort.GetPortNames()

Но я не знаю, как определить устройство? Есть ли стандартный способ? Я не могу «пинговать» его, так как есть одно устройство, которое только отправляет данные… оно постоянно спамит данные… и я не знаю, как «пинговать» устройство ...

1 Ответ

4 голосов
/ 17 мая 2010

Проблема последовательного соединения заключается в том, что не имеет состояния . Вы не можете знать, слушает ли кто-то на другой стороне или кто слушает.

Чтобы узнать это, у вас есть несколько вариантов:

  • Чтобы узнать, если кто-то использует аппаратное рукопожатие (например, RTS, CTS и т. Д.), Если это возможно.
  • Чтобы узнать, кто там, вы обычно отправляете какое-то идентификационное сообщение, в котором знаете правильный ответ (например, на модем, который отправляете AT, и вы получаете OK.

Так что, если вы не можете использовать любой из вышеперечисленных методов, вы не можете автоматически определить, какой порт использовать. Таким образом, единственная рабочая модель - запрашивать у пользователя правильные настройки (например, ComboBox с доступными портами или значениями BaudRates, CheckBox для разных настроек логической конфигурации и т. Д.).

...