У меня есть модем D-Link DWM-156 3G USB, который я хочу отправить AT-командам из моего приложения (С#.NET 4.0, работающего под Windows XP SP3).
После подключения и установки драйверов модем отображается следующим образом:
В диспетчере устройств добавлены два последовательных порта:
- Диагностический интерфейс D-Link HSPADataCard (COM4)
- D-Link HSPADataCard Устройство NMEA (COM5)
В панели управления, телефона и модема добавлен новый модем:
- Собственный USB-модем D-Link HSPADataCard (прилагается к COM19)
ВОПРОС: Какой COM-порт следует использовать для отправки AT-команд и с какой скоростью?
Я пробовал все три порта с разной скоростью, но не везет.
Чтобы узнать, я тогда установил сниффер приложения "Free Serial Port Monitor", надеясь, что сможет контролировать связь с помощью утилиты D-Link при ее открытии и закрывает интернет-соединение (которое работает нормально).
В начале приложение-сниффер спрашивает меня, какой порт отслеживать, и предлагает мне следующие имена портов на выбор:
- "Модем Agera Systems HDA",
- "Защищенный USB-модем D-Link HSPADataCard",
- "COM3",
- "COM4",
- "СОМ5"
- ... и еще несколько, включая "COM19".
Выбор имени "D-Link..." работает нормально, теперь я могу наблюдать за всеми AT-командами, которые используются, как они есть, но я не могу определить, при какой скорости передачи используется порт. Кроме того, ни COM4, ни COM5, ни COM19 не работают для обнюхивания таким образом (ничего не происходит на этих портах).
Теперь я хотел бы использовать класс SerialPort в .NET, чтобы открыть порт "D-Link..." и поговорить с USB-модемом, но для класса SerialPort требуется, чтобы имя порта начиналось с "COM", иначе генерируется исключение. Но ни один из обычных COM-портов не работает. И я до сих пор не знаю, какую скорость использовать. Я очень смущен и заперт здесь - что я мог сделать, чтобы понять это?