none
Ayuda con comandos AT con C# RRS feed

  • Pregunta

  • Hola, estoy desarrollando una aplicación bien sencilla en la cual quiero comunicarme con el puerto COM de un gps con GSM y GPRS, estuve leyendo algunos temas relacionados y he intentado desarrollar un código, de momento lo que trato es de escribir algo en el puerto(un comando AT) y de leer la respuesta de este. El manual del dispositivo especifica que el COM3 es el utilizado para GSM/GPRS. Para escribir sobre el puerto no he tenido problema, he creado un objeto serialPort, le he adjudicado como nombre COM3 y especifique la velocidad sugerida en el manual, y he utilizado la función write("ComandoAT"), pero no logro obtener respuesta, según he leído el puerto debería responderme algo, como por ejemplo "OK" o cualquier otra cosa. Agradecería mucho la ayuda, Saludos, Pablo.
    lunes, 26 de septiembre de 2011 18:27

Todas las respuestas

  • Hola Pablo,

    Es muy sencillo...

    Una vez abierto el puerto, por ejemplo para llamar a un numero de telefono el comando es "DT" entonces debes ejecutar el mandato como sigue :

    SerialPort1.WriteLine("ATDT888999111")

    Todos los comandos van precedidos de "AT", en el caso "DT" signigica "Dial Tone". Para probar si la conexion y el cable es correcto puedes lanzar "ATZ" y el dispositivo debe responder "Ok" siempre y cuando no tenga inhibida el retorno de respuestas en texto.

    Recuerda no debes anteponer la cadena "Comando" a "AT", simplemente es "AT".

    Saludos,
    PepLluis,


    MVP - Visual Developer
    • Propuesto como respuesta Roberto5152 viernes, 6 de enero de 2012 21:41
    miércoles, 28 de septiembre de 2011 15:45
    Moderador
  • Hola PepLuis,

    Primero que nada muchas gracias por responder, creo que no me he especificado correctamente. Paso a describir mi problema mas profundamente para que sea entendible.

     

    Estoy interesado en poder controlar el modem interno de un gps, mediante comandos at. Mi intension es desarrollar un programa simple que se ejecutara en winCe 5.0(SO del GPS), estoy desarrollandolo en c#. El programa se corre en el gps.

    De momento lo que hago es crear un objeto serialport con el PortName COM3, y le especifico 115200 como bauldrate, hasta aqui ningun problema, se crea el puerto, luego trato de escribir algo en el puerto utilizando la funcion WriteLine, pero el modem no me responde y no hace nada.

    He probado escribiendo ATZ, y tantas otras cosas.

    Como dato te puedo pasar que si llamo de un telefono cualquiera al numero asociado con el sim que tiene el gps me atiende la contestadora.

     

    Saludos,

    Pablo

    • Propuesto como respuesta Roger Luis jueves, 6 de noviembre de 2014 4:59
    miércoles, 28 de septiembre de 2011 17:10
  • No te reconoce nada porque WriteLine envía caracteres Unicode, que son de 16 bits y el modem espera caracteres de 8 bits, del tipo byte.

    Lo que tienes que enviarle es un array de bytes conteniendo la cadena en cuestión.


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    miércoles, 19 de octubre de 2011 14:39