Sie sind auf Seite 1von 41

COMO USAR VISUAL BASIC 6.

0 PARA COMUNICARSE ATRAVEZ DE


COMANDOS AT CON UN TELEFONO MOVIL USB

Freddy León
Escuela de Ingeniería Electrónica
UNIVERSIDAD PEDAGOGICA Y TECNOLOGICA DE COLOMBIA
Sogamoso – Boyaca – Colombia

INTRODUCCION

Actualmente los nuevos teléfonos vienen dispuestos para conexión por puerto
USB debido a que en este se maneja una mayor velocidad en la transferencia de
datos comparado con los de puerto serial ,ya es común encontrar cables de
conexión de datos por USB para aquellos que venían para conexión serial. Luego
hay que estar preparados para estos nuevos cambios; además ;son muchas las
cosas que podemos hacer con nuestros celulares ,además de llamar ,recibir
llamadas ,enviar mensajes,etc,si lo conocemos un poco mas y lo manejamos
desde un computador.

Para este caso utilice la plataforma Windows Vista edición Home Premium,por una
razón :Tuve que Comprar un portátil hace poco(para mi proyecto de grado) y venia
con Vista instalado asi que hay que trabajar con lo que hay…ah.. y con lo actual .

Era mi primer contacto con Vista y como todo lo nuevo ,empeze a revisar
especialmente lo que necesitaba para mi proyecto (que aun estoy desarrollando
).Me di cuenta que no tenia el popular Hiperterminal usado para las conexiones y
pruebas por puerto serial por eso surgió la necesidad de desarrollar un pequeño
software (aunque lo necesitaba de todas maneras) que permitiera comunicarme
con el Sony Ericsson K310 (Que es el que estoy utlizando)

El k310 lo escogi porque necesitaba para mi proyecto el celular Sony Ericsson(


presentan buenas opciones y se encuentra soporte para los mismos) mas
económico que vendieran las empresas de telefonía de mi pais (Colombia …que
adoro!) y me vendieron ese(Pensaba comprarme el Sony Ericsson T290 pero ya lo
descontinuaron) ,asi que me puse a “cacharriarle” y descubri que tenia conexión
USB..(vaya lio.como empeze!)

El pequeño pero importante software lo desarrolle en Visual Basic 6.0,por que es


en el que me puedo desenvolver mas fácilmente ,además haciendo
comparaciones con otros lenguajes es mucho mas fácil de entender (desde mi
punto de vista) .

Asumo que no sabes nada o muy poco de lo que se trata todo esto, asi que todo
esta dispuesto para que empieces desde cero.

1
Bueno ,pero empecemos, menos Bla Bla Bla y mas trabajo porque lo que
necesitamos es aprender.

Lo que necesitamos es :

• Windows Vista (Aunque debe funcionar para la plataforma Windows que


sea…….Espero)

• Visual Basic 6.0

• El Sony Ericsson k310 o un teléfono móvil con conexión USB

• El cable de datos y el driver para Windows Vista del DCU-11 (que es el


cable de datos USB del Sony Ericsson k310)

• Y lo mas importante de todo:

“PACIENCIA Y MUCHAS GANAS DE HACER LAS COSAS”

PARTE 1.INSTALACION Y VERIFICACION DE FUNCIONAMIENTO


2
Cuando se conecta por primera vez el celular ,Windows Vista lo detecta y solicita
el driver para poder instalar el móvil ,este driver viene en el disco que entrega el
vendedor cuando se compra el cable de datos o se puede descargar de la pagina
de Sony Ericsson en la sección de Soporte.

El proceso de instalación es similar a instalar cualquier dispositivo USB.

Para el caso seleccionaremos la primera opción ,pues se asume que el driver se


encuentra en un disco de instalación.

Una vez se da clic en la opción resaltada aparece la siguiente ventana,la cual nos
brinda dos opciones

La primera es dar click en Next para que Windows busque el driver en el CD,la
segunda es si el driver ya se ha copiado y guardado en alguna parte del disco
duro ,para lo cual debemos seleccionar la ruta donde se encuentra el driver.

Para nuestro caso continuamos con la primera opción ,entonces daremos clic en
Next

3
Windows buscara el driver…..

4
Aquí se empieza a evidenciar el principal problema de Windows Vista :LA
INCOMPATIBILIDAD,Ya que la mayoría de driver están para Windows XP y
versiones anteriores(En este caso no tenia el driver para Vista). Entonces cada
vez que se quiera a instalar un dispositivo es necesario asegurarse que este tenga
los drivers compatibles para Vista de lo contario no se podrá instalar o si se
instala, el dispositivo no funcionara correctamente.

Cuando aparezca esta situación seleccionaremos la segunda opción y trataremos


de instalar el driver ayudándonos del software Sony Ericsson PC Suite (El
programa debe instalarse con anterioridad asegurándose que sea la versión para
Windows Vista,también se puede descargar de la pagina www.sonyericsson.com
seccion soporte )

Y Windows tratara de instalar de recolectar la información necesaria para instalar


el software de forma automática………

5
Al lograrlo se mostrara el puerto en el cual quedo instalado el cable USB del Movil
(DCU-11)

7
7

6
Y en la barra de inicio aparecerá un mensaje como el siguiente:

Y acto seguido se presentara la ventana de conexión de teléfonos del Sony


Ericsson PC Suite,y daremos clic en Siguiente

Ahora aparece una opción que permite darle un nombre al teléfono ,por defecto
aparece Mi K310,Despues de ubicar un nombre finalizaremos este proceso

7
Para verificar lo que acabamos de hacer damos doble clic en el icono Monitor de
teléfonos ubicado en la barra de Inicio de Vista(Si no se encuentra podemos ir a
panel de Control y doble clic en el icono respectivo)

Aquí aparecerán los teléfonos instalados,SIMs,Opciones de Configuracion,etc

Terminado el proceso de instalación del telefono ,debemos desconectar y


conectarlo nuevamente para que Windows lo detecte .Cuando se conecta el K310
al computador ,se muestra en la pantalla del celular dos opciones:

1. Trans arch (Transferencia de Archivos) y


2. Mod Teléfono (Modo Teléfono o Modem)

En el primero se utiliza el teléfono como memoria USB con una capacidad de 15


MB ,que como su nombre lo indica se puede grabar y leer cualquier tipo de
archivos .En este modo es donde se puede descargar las fotos y videos del
celular, cargarle canciones, archivos etc.

Para poder utilizar el teléfono como modem seleccionamos la opción dos:


Mod Teléfono ,(usado para conexión a internet)

8
Una vez seleccionamos se visualiza en la pantalla del teléfono el siguiente
mensaje:

El teléfono esta listo para su uso con la computadora

Para verificar esto podemos dar doble clic en el icono de Sony Ericsson PC Suite
,ubicado en la barra de inicio

Y efectivamente nos muestra que el K310 esta conectado en modo Telefono


(como Modem)

Ahora Pulsamos el botón de inicio como se presenta en la figura y vamos a


acceder al panel de control de Windows Vista Home Premium.

9
Damos clic en Inicio y aparecerá la siguiente ventana de la cual seleccionamos
Control Panel.

Una vez estemos en la ventana del Panel de Control se nos presentan diferentes
iconos de los cuales daremos doble clic en: Device Manager (Administrador de
dispositivos)

10
Una vez realizada la operación ,se abrirá una ventana mostrando el hardware
instalado en nuestro computador.

11
Como lo que necesitamos es probar el modem que debió haberse instalado con
el Sony Ericsson K310 , Elegimos la opción Modems

Y efectivamente nos muestra que hay 3 modem conectados,El del computador y


dos que se instalan con el teléfono Sony Ericsson K310

Damos clic derecho en la opción Sony Ericsson Device 125 WMC Data Modem

y nos muestra la ventana de propiedades del modem de datos del Sony Ericsson
k310 que nos dice que :

El tipo de dispositivo es un Modem, el fabricante es Sony Ericsson y que esta


localizado en el Sony Ericsson K310

Para probar el Modem K310 ,damos clic en la pestaña Diagnostics y después


en la opción Query Modem (Preguntar,Diagosticar,Probar al modem )

12
Mientas se realiza la prueba nos presenta……..

Y después de unos segundos obtenemos la respuesta a varios comandos AT


enviados al teléfono

13
Si queremos ver los Comandos AT de prueba que se enviaron al K310 ,damos
click en View Log y se mostraran en el bloc de notas .

Ahora ya comprobamos que el Modem del K310 esta funcionando correctamente


pero no sabemos ,en que puerto se instalo, ni las propiedades con las que esta
funcionando como la Velocidad, Paridad, Bits de parada etc.

Para esto cerramos la ventana anterior y en Manager Device damos click en


Ports COM & LPT (Puertos seriales y paralelos)

14
Aquí vemos que están conectados a los puertos COM7 Y COM 6 (Estos son
puertos seriales virtuales que se generan automáticamente y que simulan el
puerto USB al cual se conecto el Teléfono Celular USB)

Damos click derecho en la opción resaltada en azul Sony Ericsson Device 125
USB WMC Device Management,que es la que nos interesa(Las otras opciones
generan algún error cuando se prueban desde el software, además cuando finalizo
el proceso de instalación,el DCU -11 quedo en el COM 7 )

y seleccionamos Properties (Propiedades),Aparece los siguiente:

15
Ya sabemos que debemos conectarnos por el COM 7 !

Damos clik en la pestaña Port Setting, Y nos muestra los ajustes del puerto USB
(Puerto Serial Virtual) con las que se debe conectar el Modem del K310,si las
queremos cambiar basta con ir a Advanced (Avanzadas)

16
De aquí extractamos las propiedades de conexión del Modem del k310:
Bits Por Segundo=115200
Bits de datos=8
Paridad=Ninguna
Bits de Parada=1
Control de Flujo =Ninguno
Con estos datos ahora si nos disponemos a realizar la interfaz grafica en Visual
Basic 6.0 que permita comunicarnos con el teléfono y centraremos ahora nuestra
atención en el desarrollo del software en Visual Basic

PARTE 2. DESARROLLO DEL SOFTWARE EN VISUAL BASIC 6.0


Para iniciar un nuevo proyecto Nuevo sigue los siguientes pasos:

1. Clic en inicio
2. Clic todos los programas
3. Clic en el icono Microsoft Visual Basic
4. Clic en EXE estándar
5. Clic en Abrir

El proyecto va a necesitar 2 TextBox ,5 Command Button , 2 Label y 1 Mscomm,


los cuales los seleccionas del cuadro de herramientas (si no esta visualizado da
click en la pestaña Ver y pulsa la tecla h)

TextBox

Label

CommandButton

17
Ahora tienes que dar click en cada uno de los controles ( CommandButton, Label y
Textbox) , ubícate sobre el formulario( el Mouse adoptara forma de cruz) mantén
oprimido el botón izquierdo y arrastra hasta dar forma al botón en el formulario,
Después de esto libera el botón izquierdo.

El paso siguiente es colocar las propiedades de cada control, para esto da click en
cada botón, vas a la ventana de propiedades(si no esta visualizada pulsa f4),y
busca las propiedades que aparecen abajo y coloca el valor respectivo para cada
uno.

CONTROL PROPIEDAD VALOR

Text Vacio
Text1
Nombre txtTextoenviar

Nombre txtTexto

Multiline True
Text2
ScrollBars 3-Both

Text Vacio

Nombre cmdConectar
CommandButton1
Caption CONECTAR

Nombre cmdLimpiar
CommandButton2
Caption LIMPIAR PANTALLA

Nombre cmdEnviar
CommandButton3
Caption ENVIAR

Nombre cmdDesconectar
CommandButton4
Caption DESCONECTAR

Nombre cmdSalir
CommandButton5
Caption Salir

Label1 Caption Terminal de Comunicacion

Label2 Caption Ingrese el Comando

18
Para Colocar en el proyecto el componente Mscomm que es el que permite la
comunicación por el puerto serial sigue los siguientes pasos:

1.Vas a la pestaña Proyecto y en escoge Componentes

Ubícate en la opción Controles y elije Microsoft Comm Control 6.0

19
Al dar clic en OK, se mostrara en el cuadro de herramientas un icono en forma de
teléfono, el cual seleccionaremos y arrastraremos hasta nuestro proyecto.

Hasta este punto debemos tener una interfaz similar a esta:

20
Ahora que tenemos los controles(Botones) ya listos, damos doble clic en cada uno
de ellos y escribimos el código como sigue :

Para el boton CONECTAR :


If MSComm1.PortOpen = True Then
M = MsgBox("EL PUERTO YA ESTA ABIERTO", vbExclamation, "PRECAUCION PUERTO
ABIERTO")
Else
Mscomm1.commport= 7 'se establece el puerto 7 para la conexión
MSComm1.Settings = "115200,N,8,1" 'Los datos que obtuvimos anteriormente
MSComm1.InputLen = 0 'lee todo el buffer de entrada para que quede vacio
MSComm1.RThreshold = 2 'Para que se efectué el evento Comm cuando se reciban 2
caracteres
MSComm1.PortOpen = True 'Abre el puerto seleccionado
Me.Caption = "Conectado por el puerto " & MSComm1.CommPort
End If

Para el botón DESCONECTAR:


If MSComm1.PortOpen= True Then 'Si el puerto esta abierto entonces
MSComm1.PortOpen = False 'cierra el puerto
Me.Caption = "Desconectado" 'Avisar que se ha desconectado
End If

Para el botón LIMPIAR PANTALLA:


texto.Text = " " 'Muestra en la caja de texto un espacio en blanco
textoenviar.Text = " " '

Para el botón ENVIAR


If MSComm1.PortOpen = True Then
MSComm1.Output = textoenviar.Text + vbCrLf 'Envia el comando AT escrito
textoenviar.SetFocus
Else
M = MsgBox("AUN NO SE HA CONECTADO CON EL TELEFONO", vbExclamation, "ERROR
DE CONEXION") '
End If

NOTA: El vbCrLf es equivalente a pulsar la tecla Enter o retorno de carro(CR)


y avance de línea(LF)

Para el botón DESCONECTAR


If MSComm1.PortOpen Then
'cierra el puerto
MSComm1.PortOpen = False
Me.Caption = "Desconectado"
End If

Para el boton SALIR


End

21
Listo, hasta aquí ya tenemos la mayoría del programa desarrollado, lo que falta es
como recibir la respuesta del celular .

Para recibir la respuesta del teléfono, vamos a utilizar el evento On Comm que
se genera siempre que cambia el valor de la propiedad CommEvent e indica que
se ha producido un evento o un error en la comunicación.

Específicamente utilizaremos el evento comEvReceive Número de caracteres


RThreshold recibidos ,que lo pusimos en 2 en el código para el botón
CONECTAR (MSComm1.RThreshold = 2).Este evento se genera continuamente
hasta que se usa la propiedad Input para quitar datos del búfer de recepción.

Entonces damos doble click en el control Mscomm1 y escribimos:

Dim valor as string 'Definimos una variable para recibir los datos
'pregunta si se ejecuto el evento de recibir igual o mas de 2 caracteres
If MSComm1.CommEvent = comEvReceive Then
valor = valor & MSComm1.Input 'recoge el valor de entrada
texto.Text = texto.Text & vbCrLf & valor 'pase el valor recibido a la pantalla
Else
texto.Text = "NO HAY RESPUESTA DEL MODEM "
End If

Hasta aquí tenemos toda la interfaz de nuestro Terminal de Comunicaciones para


el K310, y hemos desarrollado todo el programa para que funcione.
Lo que queda es compilarlo pulsando F5 o en el botón que aparece en la figura

Si no hubo errores ,el software esta listo para usarlo ,si no revisa cuidadosamente
el código.
Ahora ya podemos empezar a probar el teléfono…………. ,

22
PARTE3. PROBANDO CONEXIÓN CON EL K310

Damos click en el botón CONECTAR,si todo esta bien debe aparecer en la parte
superior izquierda :Conectado por el puerto 7 ,
Ingresamos el comando AT y damos click en ENVIAR,se debe recibir AT OK

Si recibimos la respuesta AT OK podemos continuar probando los comando AT


para el modem del K310,de lo contario hay que revisar el código o en su defecto
las conexiones .

A continuación encontraras una lista de Comandos AT usados para la


comunicación con el K310 y enviados desde nuestro terminal ,una pequeña
explicación, y un respectivo ejemplo .La explicación de la respuesta corre por tu
cuenta (Esta todo dicho!.. solo hay que leer detenidamente!)

La interfaz se muestra un poquito diferente ya que se le agrego la opción de elegir


el Puerto con un ComboBox (Cargado en el proceso de carga del formulario) y en
la pantalla se muestra lo que envió el COMPUTADOR y lo que respondió el
CELULAR.

Pero en el terminal debe aparecer la respuesta del celular

23
PARTE 4.USANDO COMANDOS AT PARA COMUNICARNOS CON EL K310

1.COMANDOS AT DE LLAMADA

AT (Atention Command)
• Descripcion: Verifica si existe algún modem conectado
• Sintaxis:AT
• Ejemplo:

NOTA:siempre que el modem realiza un acción correcta devolverá la


cadena OK

D Dial Command

• Descripcion: Inicia una llamada telefónica


• Sintaxis: ATD<numero telefonico >

Las siguientes son las respuestas si no hubo conexión:

ERROR Un error desconocido a ocurrido mientras se establecia la


conexion.

NO DIALTONE La linea esta ocupada.

NO CARRIER El telefono al que se marco no esta registrado.

24
• Ejemplo:

H Hook control

• Description: Termina una conexión y devuelve un OK cuando se


desconecta
• Sintaxis :ATH
• Ejemplo:

A Answer
• Descripcion: Comando para contestar una llamada su respuesta es OK si
existe una llamada entrante de lo contario su respuesta será NO CARRIER
• Sintaxis:ATA
• Ejemplo:

25
2.COMANDOS AT PARA GESTIÓN DE SMS

+CPMS Preferred SMS message storage

• Descripcion:Selecciona la forma de almacenamiento de sms <mem1>

<mem2> and <mem3> usadas para lectura , escritura y

almacenamiento de sms

• Sintaxis: +CPMS=<mem1>,[<mem2>],[<mem3>]
• Opciones: <mem1> Memoria desde donde los mensajes son leidos y
borrados
“ME” ME o memoria del telefono.

“SM” SIM o memoria de la simcard.

<mem2> Memoria para operaciones de escritura y envio

“ME” ME o Memoria del telefono.

“SM” SIM o memoria de la simcard.

Por defecto se encuentra="SM"

<mem3> Memoria usada para recepcion

“ME” ME o memoria del telefono.

Respuesta: +CPMS:<usada1>,<total1>,<usada2>,<total2><usada3>,<total3>

Donde: <used1>,<used2>,<used3> Total de mensajes almacenados en cada


memoria.y <total1>,<total2>,<total3> Capacidad de almacenamiento por cada
memoria.

• Ejemplo :

26
+CMGF: [Message Format]

1) AT+CMGF=?

• Informa de los formatos de mensaje soportados por el teléfono


• Sintaxis: AT+CMGF=? | +CMGF: (0,1)
o modo = 0 indica formato de mensajes en modo PDU
o modo = 1 indica formato de mensajes en modo TEXTO

2) AT+CMGF?

• Informa del formato de mensajes que está siendo utilizado actualmente


para los comandos enviar, listar, leer y escribir.
• Sintaxis: AT+CMGF? | +CMGF: <modo>
o modo = 0 indica formato de mensajes en modo PDU
o modo = 1 indica formato de mensajes en modo TEXTO

3) AT+CMGF=<modo>

• Establece el formato a utilizar para la entrada y salida de mensajes.


• Sintaxis: AT+CMGF=<modo>
o modo = 0 indica formato de mensajes en modo PDU
o modo = 1 indica formato de mensajes en modo TEXTO
• Ejemplo:

El Sony Ericsson K310 solamente soporta el modo PDU ,entonces de aqui en


adelante los ejemplos se desarrollaran en este modo.

27
+CMGL: [List Messages]
• Retorna la lista de mensajes segun el parametro <estado>

• +CMGL: <index>,<stat>,[<alpha>],<length>,<pdu><CR><LF>

1) AT+CMGL=?

• Informa de los posibles estados de un mensaje en la memoria que el


teléfono puede soportar.
• Sintaxis: (+CMGF=0) AT+CMGL=? | +CMGL: (0-4) (+CMGF=1)
AT+CMGL=? | +CMGL: ("REC UNREAD", "REC READ", "STO UNSENT",
"STO SENT", "ALL")
o <estados>:
 0 | "REC UNREAD": Almacenado en Bandeja de entrada y sin
leer.
 1 | "REC READ": Almacenado en Bandeja de entrada y leído.
 2 | "STO UNSENT": Almacenado en Bandeja de salida y sin
enviar.
 3 | "STO SENT": Almacenado en Bandeja de salida y enviado.
 4 | "ALL": Todos los mensajes almacenados.

2) AT+CMGL=<estado>

• Lista todos los mensajes almacenados correspondientes al estado


especificado.
• Sintaxis: AT+CMGL=<estado> | +CGML: <índice>, <estado>, [alpha] ,
<longitud> <pdu><<CR><LF>
o <indice> Posición que ocupa el mensaje SMS en la memoria.
o <estado> Estado del mensaje.
o <alpha> Carácter que separa las cadenas de texto
o <longitud> Longitud de la trama PDU en octetos
o . <pdu>Cuerpo del mensaje en formato PDU
o <CR><LF> Retorno de carro y salto de linea.
o
• Ejemplo:

28
Para Teléfonos Móviles, SMS usa el codificado PDU en el cual el mensaje es

encapsulado. Esta estructura se le da al Teléfono Móvil para realizar el evento

de enviar o recibir mensajes SMS.

AT+CMGR: [Read Message]

• Permite leer mensajes SMS de la bandeja de entrada.


• Sintaxis: AT+CMGR=<índice> | +CMGR: <estado>, [alpha],
<Longitud><pdu>
o <índice> Posición que ocupa el mensaje SMS en la memoria.
o <estado> Estado del mensaje.
o <alpha> Carácter que separa las cadenas de texto.
o <longitud> Longitud de la PDU
o <pdu>Cuerpo del mensaje en formato PDU
o <CR><LF> Retorno de carro y salto de linea

Ejemplo:

29
PARTE 5.COMPRENDIENDO UN MENSAJE EN PDU

La siguiente es la trama recibida en formato PDU para mensaje leído de la posición 2


del ejemplo anterior.

079175130600013404039128F70100700132122465004C45366816B3D172351C4E1
60385D9A078BD0C62B3C3EDF09C5E06E5C3A0791954768FEB65375D1E0691D3
73F8DB9D16B3CB2E50714E2F83DA7335A83C079DE5617A7A0E

El SMS recibido puede ser decodificado en base a la siguiente estructura.

BYTE DATO DECODIFICACION DESCRIPCION

0 07 Longitud del SMSC ( 7 octets)

1 91 Numero internacional

2-7 751306000134 +573160001043 Numero del centro de servicio

8 04 Entregado

9 03 Longitud del remitente : 3 bytes

10 91 Dirección del remitente Inter/nal

11-12 28F7 +827 Numero del remitente

13 01 Protocolo Identificador

14 00 Esquema de codificacion de datos


de datos

00-Codificacion en 7 Bit

01-Hexadecimal

15-21 70013212246500 07-10-23 Fecha : 23 de Octubre de 2007

21:42:56:00 Hora : 9 pm,42 min,56 seg,00 cent

22 4C Longitud del mensaje en


hexadecimal :67

23- 45366816B3D172351C4E16038 Texto del mensaje


5D9A078BD0C62B3C3EDF09C5
E06E5C3A0791954768FEB6537
5D1E0691D373F8DB9D16B3CB
2E50714E2F83DA7335A83C07
9DE5617A7A0E

30
A continuación encontraras el proceso de decodificación del mensaje codificado
en 7 bits (Esta paso a paso y bien explicado…. como alguna vez quize
encontrarlo!).

El mensaje codificad en 7 bits es:

45366816B3D172351C4E160385D9A078BD0C62B3C3EDF09C5E06E5C3A0791954768FEB6
5375D1E0691D373F8DB9D16B3CB2E50714E2F83DA7335A83C079DE5617A7A0E

El proceso de decodificación es:

Paso 1.Separar el mensaje PDU por bytes (cada 2 caracteres) :

Paso 2.Convertir cada byte a su equivalente en binario

Paso3.Tomar los 7 ultimos bits del primer byte y ese es el primer carácter en 7
Bits

Paso4.Tomar los 6 últimos bits del segundo byte y unirlo con el primer bit del
primer byte para formar el segundo carácter.

Paso 5.Tomar los 5 últimos bits del tercer byte y unirlo con los 2 primeros bits del
segundo byte para formar el tercer carácter.

Paso 6.Tomar los 4 ultimos bits del cuarto byte y unirlo con los 3 primero bits del
tercer byte para formar el cuarto carácter.

Paso7.Tomar los 3 ultimos bits del quinto byte y unirlo con los 4 primeros bits del
cuarto byte para formar el quinto carácter.

Paso8.Tomar los 2 ultimos bits del sexto byte y unirlo con los 5 primeros bits del
quinto byte para formar el sexto carácter.

Paso9.Tomar el ultimo bit del séptimo byte y unirlo con los 6 primeros bits del
sexto byte. para formar el septimo carácter.

Paso 10.Tomar los 7 primeros bits del séptimo byte para formar el octavo carácter

Paso11.Repetir el proceso desde el paso tres con el siguiente byte hasta


terminar.

31
A continuación se presenta en forma practica la decodificación del mensaje leído
de la posición 2 de la memoria del móvil celular k310 (No el ejemplo que siempre
sacan por ahí de “Hello Hello” o “Hello World” u” Hola Mundo”..! uno de verdad!)

1 2 3 4 5 6 7
1.En HEX 45 36 68 16 B3 D1 72
2.En BIN 01000101 00110110 01101000 00010110 10110011 11010001 01110010
3.En 7 Bit 1000101 1101100 0100000 0110011 0110001 0110110 0110100
0x45 0x6C
CARACTER E l SP 3 1 6 4

El código de 7 BITS que queda es 0111001 que es el carácter “9”,y empezamos nuevamente el proceso….

8 9 10 11 12 13 14
En HEX 35 1C 4E 16 03 85 D9
En BIN 00110101 00011100 01001110 00010110 00000011 10000101 11011001
En 7 Bit 0110101 0111000 0111000 0110010 0110001 0100000 1100001

CARACTER 5 8 8 2 1 SP a

El código que queda es 1101100 que es el carácter “l”

15 16 17 18 19 20 21
En HEX A0 78 BD 0C 62 B3 C3
En BIN 10100000 01111000 10111101 00001100 01100010 10110011 11000011
En 7 Bit 0100000 1110001 1110101 1100101 0100000 1101100 1101100

CARACTER SP q u e SP l l

El código de 7 bits que queda es 1100001 que es el carácter “a”

22 23 24 25 26 27 28
En HEX ED F0 9C 5E 06 E5 C3
En BIN 11101101 11110000 10011100 01011110 00000110 11100101 11000011
En 7 Bit 1101101 1100001 1110011 1110100 1100101 0100000 1111001

CARACTER m a s t e SP y

El código de 7 bit que queda es 1100001 que es el carácter “a”

32
29 30 31 32 33 34 35
En HEX A0 79 19 54 76 8F EB
En BIN 10100000 01111001 00011001 01010100 01110110 10001111 11101011
En 7 Bit 0100000 1110011 1100101 0100000 1100101 1101110 1100011

CARACTER SP s e SP e n c

El código de 7 bit que queda es 1110101 que es el carácter “u”

36 37 38 39 40 41 42
En HEX 65 37 5D 1E 06 91 D3
En BIN 01100101 00110111 01011101 00011110 00000110 10010001 11010011
En 7 Bit 1100101 1101110 1110100 1110010 1100001 0100000 1100100

CARACTER e n t r a SP d

El código de 7 bit que queda es 1101001 que es el carácter “i”

43 44 45 46 47 48 49
En HEX 73 F8 DB 9D 16 B3 CB
En BIN 01110011 11111000 11011011 10011101 00010110 10110011 11001011
En 7 Bit 1110011 1110000 1101111 1101110 1101001 1100010 1101100

CARACTER s p o n i b l

El código de 7 bit que queda es 1100101 que es el carácter “e”

50 51 52 53 54 55 56
En HEX 2E 50 71 4E 2F 83 DA
En BIN 00101110 01010000 01110001 01001110 00101111 10000011 11011010
En 7 Bit 0101110 0100000 1000101 1110011 1110100 1100101 010000

CARACTER . SP E s t e SP

El código de 7 bit que queda es 1101101 que es el carácter “m”

33
57 58 59 60 61 62 63
En HEX 73 35 A8 3C 07 9D E5
En BIN 01110011 00110101 10101000 00111100 00000111 10011101 11100101
En 7 Bit 1110011 1101010 0100000 1100101 1110011 0100000 1100111

CARACTER s j SP e s SP g

El código de 7 bit que queda es 1110010 que es el carácter “r”

64 65 66 67
En HEX 61 7A 7A 0E
En BIN 01100001 01111010 01111010 00001110
En 7 Bit 1100001 1110100 1101001 1110011

CARACTER a t i s

El mensaje ya decodificado tiene 79 caracteres y es:

El 3164958821 al que llamaste ya se encuentra disponible. Este msj es gratis

Que tal?....hemos avanzado.si o no?..continuemos,para borrar un mensaje:

34
AT+CMGD: [Delete Message]
1) AT+CMGD=?

• Muestra la implementación del comando.


• Sintaxis: AT+CMGD=? | +CMGD: (lista de índices soportados)[,(lista de delflags
soportadas)]
• Respuesta: +CMGD: (1-200),(0-4) //1-15 indica que la memoria SIM puede
almacenar de 1 a 200 mensajes SMS

2) AT+CMGD=<índice>

• Elimina el mensaje de índice especificado.


• Sintaxis: AT+CMGD=5 elimina el mensaje con índice 5, es decir, el Quinto
mensaje de la bandeja de entrada de mensajes SMS.

35
PARTE 6.ENVIANDO UN MENSAJE EN MODO PDU

Para probar los siguientes comandos usados para escritura en memoria y enviar
un SMS ,suma al proyecto un Textbox , un Commandbutton (CTRL-Z) y Un label
(Cuerpo del mensaje)
En el código del commandbutton es el siguiente:

MSComm1.Output = Text1.Text + Chr(26)

El text1.text es el que acabas de colocar en el proyecto,Esto para cuando se


reciba el carácter “>” ,(Que indica que el celular esta esperando el cuerpo del
mensaje).Esta seria la interfaz con los nuevos componentes:

AT+CMGW: [Write Message]

• Permite escribir un mensaje SMS en memoria (Bandeja de salida).


• Sintaxis: AT+CMGW=<Longitud de la PDU> [Presionar CR]
o > Escribimos el cuerpo del mensaje en PDU. [Presionar Ctrl-Z]
o +CMGW <Indice que ocupara en la memoria memoria>
• Ejemplo: AT+CMGW= 18 [Presionar CR]
o > 0011000C917513778954530000AA0B04D2E2N006 [Ctrl-Z]

+CMGW :24

36
AT+CMGS: [Send Message]

• Permite enviar un mensaje SMS.


• Sintaxis: AT+CMGS=<Longitud de la PDU> [Presionar CR]
o > Cuerpo del mensaje en PDU. [Presionar Ctrl-Z]
• Ejemplo: AT+CMGS=27 (CR)

>0791751306000112B1380A81137789545300008F11CDB27B1E569741E
432082EAF97C561.( Ctrl- Z)

Respuesta :+CMGS :13

NOTA: Enter se representa con el caracter 13 o sea Chr(13) o VbCr para VB, Ctrl-Z se
representa con el carácter 26 es decir Chr(26) y ESC con el Chr(27) usado para cancelar
un envio o una acción.

Entonces para enviar un SMS desde el software con un teléfono que esta en
modo PDU seria algo asi:

Después de Ingresar el comando AT+CMGS=27 se da clic en enviar y el celular


responde con:”>”

Paso seguido copiar la trama PDU en Cuerpo del mensaje y dar clic en el Botón
CTRL-Z

37
Mi trama PDU quedo algo mal por lo que me devolvió un error (No todo puede ser
perfecto en la vida).. es +CMS ERROR: 304 Invalid PDU mode parameter
(parámetro invalido en la PDU)

Estos son los comandos para envío y escritura Para teléfonos que aceptan modo
TEXTO.

AT+CMGW: [Write Message]

• Permite escribir un mensaje SMS en memoria (Bandeja de salida).


• Sintaxis: AT+CMGW=<número que vamos a enviar el SMS> [Presionar CR]
o > Escribimos el cuerpo del mensaje. [Presionar Ctrl-Z]
o Respuesta +CMGW <Indice que ocupara en la memoria memoria>
• Ejemplo: AT+CMGW="679123456" [Presionar CR]
o > Estamos trabajando duro y con paciencia. [Ctrl-Z]
o +CMGW :21

AT+CMGS: [Send Message]

• Permite enviar un mensaje SMS.


• Sintaxis: AT+CMGS=<número> [Presionar CR]
o > Escribimos el cuerpo del mensaje. [Presionar Ctrl-Z]
o <número> Cadena de texto con el número de teléfono destino del mensaje.
• Ejemplo: AT+CMGS=”3164987643”(Presionar CR)

>Este mensaje lo envie desde mi software en VB.(presionar Ctrl -Z)

Respuesta :+CMGS : 13
38
Para los demás ejemplos se siguen los mismos pasos solo hay que leer
detenidamente.

No sufras mas buscando ..aqui tienes la Tabla Completa de CODIFICACIÓN EN


7 BITS!

Un ultimo apunte ………..

Usa el comando AT+CALA para colocar la alarma del celular,Por ejemplo


:AT+CALA=.”14:22”,Hay que usar el formato 24 Horas ,colocala al minuto siguiente

39
que vayas a ingresar el comando ….Veras que se siente ver como da fruto nuestro
trabajo!

Y el comando AT+GMM ..! por si algún dia quieres reconocer automáticamente el


teléfono que esta conectado…..!.

Bueno, lo que te queda es seguir probando nuevos comandos AT,probar otros


teléfonos (que soporten comandos at por supuesto) y desarrollar tu propia
aplicación, ya sabes el proceso de decodificación PDU, sigue esos pasos y
puedes realizar un programa para decodificación de PDU, hasta este punto ya
tienes las suficientes herramientas para continuar solo ..

Hemos terminado ,por ahora, se que vendrán mas cosas y muy seguramente
estarás agradecido por la información ,te va ser de mucha utilidad y la vas a
guardar como un tesoro porque aqui has encontrado condensadas muchas cosas
que están por aquí ,por allí…..

Quería compartir mi avances pues se que muchos están como yo hace tiempo
,han sido muchas noches y días enteros de trabajo y paciencia porque a veces las
cosas no salen fácilmente empezando por la tan anhelada respuesta OK que me
costo tanto entender, lo de las tramas tramas PDU ,los comandos AT,la
programación en VB, lo de ….bueno muchas cosas!.(Despues que uno las hace
le parecen fáciles pero antes…..)

Ha sido trabajo de búsqueda de información en internet, en foros ,paginas de


Visual Basic ,preguntar por internet ,pensar,analizar,volver a pensar y analizar
,cosas de las que he aprendido muchísimo y a las cuales agradezco .

Te invito a que no solo utilices la red para conseguir tus fines y obtener
información que otros te brindan, desarrollar algo y cerrar la opción de
compartirlo, no digo que compartas todo claro, pero con algo que podamos ayudar
,es suficiente.

40
Por ultimo, si desarrollas alguna aplicación ;en la cual hayas usado todo esto que
aprendiste, no dudes en comentarme!, para saber que mi esfuerzo y mi trabajo
valieron la pena .Espero que utilices esta información adecuadamente y si vas a
compartirla … POR FAVOR:

¡ACUERDATE DE LOS CREDITOS Y DERECHOS DE AUTOR!

Es la 1:49 am del día Martes 13 de Noviembre de 2007 .

¡Suerte y Pulso dice mi PAPA!

Saludos desde Sogamoso-Boyaca-Colombia!


Freddy León
Fraln7@gmail.com

41

Das könnte Ihnen auch gefallen