Как общаться с модемом USB 3G?

У меня есть модем 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-портов не работает. И я до сих пор не знаю, какую скорость использовать. Я очень смущен и заперт здесь - что я мог сделать, чтобы понять это?

Ответ 1

Хорошо, спасибо вам за все ваши мысли и за вклад. Я сделал еще несколько исследований, и, наконец, я понял, что для того, чтобы делать то, что я хотел, мне не приходилось беспокоиться о последовательных портах и ​​AT-командах. Все, что было необходимо, это сделать несколько вызовов Windows RAS.

Если бы я был немного более конкретным в своем вопросе о том, что я хотел делать с моими AT-командами, вы наверняка рассказали бы мне о RAS давно!

Я нашел хорошую DLL DLL (DotRas), которая переносит родной Windows RAS для использования из управляемого кода, и, похоже, это делает только то, что мне нужно (наберите 3G-модемное соединение из кода, с любым типом 3G-модема, который я прикрепляю).

Еще раз спасибо за ваше время.