Para empezar tenemos que tener un hardware específico, que en mi caso es un módem modelo MC35i, tiene una salida para una antena con un imán en la base para fijarla firmemente a un soporte, en la parte de atrás tiene un conector DB9 que es el puerto COM del equipo, que tendremos que unir a la salida del puerto serie del PC, una ranura para insertar la tarjeta SIM que nos la proporcionará nuestro operador de telefonía y por último una salida para poder conectar un teléfono.
Aquí tenéis algunas fotos:
Pues una vez que hemos conectado el módem al PC por el puerto serie y le hemos encendido (parpadeará un led verde), vamos a configurarlo:
En este caso he utilizado Delphi 7 y Turbo Power Async Pro (o cualquier otra utilidad que os permita enviar y recibir texto por un puerto serie)
Instalamos Turbo Power y ponemos el objeto ApdComPort1 en el Form de nuestra aplicación, con las siguientes propiedades:
AutoOpen=TRUE, para que se active cuando iniciamos el programa.
Baud=9600 se podría poner a 19200 con este módem, pero he visto que trabaja mejor a esta velocidad.
ComNumber=8 es el número de puerto COM
DataBits=8, StopBits=1, SWFlowOption=swfNone
El Form contendrá un botón (Caption=INICIO) y un Grid, donde mostraremos fila por fila los parámetros de inicialización del módem
La inicialización del módem se hace utilizando comandos AT .
Existen cuatro formatos de ejecución para cada comando AT. Cada
formato se determina generalmente por la sintaxis según se presenta en la
siguiente tabla:
Comandos de prueba | AT+CXXX=? | Devuelve una lista de los posibles parámetros que se pueden introducir con el correspondiente parámetro de escritura. |
Comandos de lectura | AT+CXXX? | Devuelve el parámetro o conjunto de parámetros actualmente establecidos. |
Comandos de escritura | AT+CXXX=<...> | Establece el valor a los parámetros introducido por el usuario. |
Comandos de ejecución | AT+CXXX | Este comando utiliza parámetros predefinidos en caso de que no hayan sido modificados con el correspondiente comando de escritura. |
La respuesta dada por el módem a cada comando es distinta dependiendo del formato, incluso a pesar de que el comando sea el mismo.
Al final de cada comando se debe incluir un retorno de carro.
Los comandos para el MC35i son los siguientes:
Comandos
generales.
Comando | Sintaxis / Respuesta | Descripción |
AT | AT OK | Verifica que la comunicación se ha establecido pero no realiza ninguna acción. La respuesta del terminal es OK. De ahora en adelante se marcara en rojo la respuesta del terminal. |
AT+CPIN | AT+CPIN= OK CPIN=? READY | Permite introducir el código PIN para poder utilizar la tarjeta SIM. Una vez lo hemos introducido se puede comprobar si es correcto ejecutando el correspondiente comando de lectura. |
AT+CGMI | AT+CGMI | Identifica al fabricante del terminal. |
AT+CGMM | AT+CGMM | Identifica el modelo del terminal. |
AT+CVIB | AT+CVIB=1 OK ERROR | Activa el modo vibración. Sólo está disponible para terminales que tengan vibrador incorporado. Si el modo vibrador se ha activado correctamente Si el modo vibrador no esta disponible |
Comandos para
control de llamadas.
Comando | Sintaxis / Respuesta | Descripción |
ATD Ó ATDT | ATD OK NO DIALTONE BUSY | Realiza una llamada de teléfono al número dado por n. Es importante enviar ; al terminar, en caso contrario la llamada será una llamada de datos. cadena de caracteres. Siempre se recibe esta respuesta. Se recibe además de la anterior sino hay tono. Si el interlocutor esta ocupado. |
ATA | ATA OK CONNECT NO CARRIER | Responder a una llamada. En el caso de llamada de voz. En el caso de llamada de datos. En el caso de que lo haya fallo de conexión. |
ATH | ATH OK | Finalizar la llamada en curso. Llamada finalizada con éxito. |
ATDL | ATDL ERROR | Rellamada. No hay ningún número como último número marcado. |
Comandos para
gestión de la memoria.
Comando | Sintaxis / Respuesta | Descripción |
AT+CPBS | AT+CPBS= OK AT+CPBS=? +CPBS: lista posible OK | Selecciona la memoria activa dada por storage. Storage es una cadena de caracteres. Consulta la lista de las posibles unidades de almacenamiento. Devuelve dicha lista. |
AT+CPBR | AT+CPBR= | Lee de la memoria activa la entrada en dicha agenda situada en la posición dada por el entero location. Si dicho entero supera el límite de almacenamiento se devolverá un error. |
AT^SDLD | AT^SDLD OK ERROR | Borra el número establecido como último número marcado. |
Comandos para el envío y recepción de SMS.
Comando | Sintaxis / Respuesta | Descripción |
AT+CMGF | AT+CMGF OK | Activa/Desactiva el modo texto. Con el correspondiente comando de prueba se puede consultar el estado: 1, activado, 0, desactivado |
AT+CMGR | AT+CMGR= OK | Lee el mensaje almacenado en la posición de la memoria activa, dada por el entero n. |
AT+CMGD | AT+CMGR= OK | Borra el mensaje almacenado en la posición de la memoria activa, dada por el entero n. |
AT+CMSS | AT+CMSS= OK | Reenvía el mensaje, anteriormente enviado, almacenado en la posición de la memoria activa dada por el entero n. |
AT+CMGS | AT+CMGS=” > +CMGS: 149 OK | Envia un mensaje SMS al numero de teléfono indicado en n. n es una cadena de caracteres. Si n incluye el prefijo internacional el tipo de destino puede dejarse en blanco. El modem responde con > y enviamos el cuerpo del mensaje, texto, seguido de ^z (Ctrl z) |
En siguientes posts veremos cómo preparar al módem para enviar y recibir SMS
No hay comentarios:
Publicar un comentario