2012-06-22 37 views
11

Tengo un módem USB D-Link DWM-156 3G al que deseo enviar comandos AT desde mi aplicación (C# .NET 4.0 ejecutándose en Windows XP SP3).¿Cómo comunicarse con el módem USB 3G?

Después de plug-in y la instalación de los conductores el módem muestra así:

En Administrador de dispositivos, se añaden dos puertos serie:

  • D-Link HSPADataCard Diagnóstico Interface (COM4)
  • D-Link HSPADataCard NMEA Device (COM5)

En Panel de control, Opciones de teléfono y módem, se añade un nuevo módem:

  • módem patentada USB D-Link HSPADataCard (que se adjunta a COM19)

PREGUNTA: ¿Qué puerto de comunicación debo usar para enviar comandos AT ya qué velocidad?


He tratado de los tres puertos a diferentes velocidades, pero sin suerte alguna.

Con el fin de aprender, a continuación, instala el "Free Serial Port Monitor" aplicación sniffer, con la esperanza de ser capaz de controlar la comunicación con el ustility D-Link, ya que abre y cierra la conexión a Internet (que funciona bien)

En principio, la aplicación sniffer me pregunta qué puerto para supervisar y me ofrece los siguientes nombres de puertos para elegir:

  • "Agere Systems HDA Modem",
  • "D-Link HSPADataCard USB patentado módem",
  • "COM3",
  • "COM4",
  • "COM5"
  • ... y varios más, incluyendo "COM19".

La elección de la "D-Link ..." nombre funciona bien, ahora se puede ver toda la comandos AT se utiliza a medida que ocurren, pero no puedo determinar a qué velocidad de transmisión se utiliza el puerto. Además, ni COM4, ​​COM5 ni COM19 funcionan para olfatear de esta manera (nada parece suceder en esos puertos).

Ahora me gustaría utilizar la clase SerialPort en .NET para abrir el "D-Link ..." puerto y hablar con el módem USB, pero la claseSerialPort requiere el nombre del puerto de comience con "COM", de lo contrario se lanza una excepción. Pero ninguno de los puertos COM ordinarios funciona. Y todavía no sé qué velocidad de transmisión usar.Estoy bastante confundido y encerrado aquí. ¿Qué podría hacer para llegar al fondo de esto?

+0

El módem HDA de Agere Systems es COM1 y el módem USB propietario de HSPADataCard de D-Link probablemente sea COM2. Siempre puede ponerse en contacto con D-Link con estas preguntas, ya que es poco probable que le proporcionemos soluciones exactas, a menos que tengamos el dispositivo en nuestras manos. –

+1

+1: También necesito hacer algo similar con ZTE MF190. – menjaraz

Respuesta

7

Ok, gracias por todos sus pensamientos y su entrada. He investigado un poco más y, finalmente, me di cuenta de que, para hacer lo que quería, no tenía que preocuparme por los puertos serie y los comandos AT. Todo lo que se necesitaba era hacer algunas llamadas de RAS de Windows.

Si hubiera sido un poco más específico en mi pregunta sobre lo que quería hacer con mis comandos AT, ¡seguramente me habría hablado de RAS hace mucho tiempo!

Encontré una buena .Net DLL (DotRas) que envuelve Windows RAS nativo para usar desde código administrado, y parece hacer justo lo que necesito (marcar una conexión de módem 3G desde el código, con cualquier tipo de módem 3G I adjuntar).

Gracias de nuevo por su tiempo.

+1

+1: Algún código de fragmento haciéndolo de la manera DotRas es bienvenido :-) – menjaraz

+0

¿Puedes publicar un código de ejemplo para enviar comandos AT usando DotRas? –

+0

DotRas no expone la capa de serie, Answer_42. Usar las clases .NET SerialPort es suficiente. Por lo que vale 9600 bps parece ser una velocidad "falsa" común para los módems celulares USB. –

Cuestiones relacionadas