Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Va Mdem GSM
1.NDICE
ndice
ndice
NDICE
1. NDICE.........................................................................................................3
2. PRESENTACIN-OBJETIVOS...............................................................7
3. SISTEMAS DE COMUNICACIN..........................................................9
3.1 Introduccin......................................................................................................10
3.2 SMS ...................................................................................................................10
3.2.1 Caractersticas................................................ .....................................10
3.2.2 Principales aplicaciones................................................ ... ..................10
3.3 Llamadas de VOZ.............................................................................................11
3.3.1 Caractersticas........................................... ..........................................11
3.3.2 Principales aplicaciones........................................... ...........................11
3.4 FACSIMIL...................................................................... .................................11
3.4.1 Caractersticas........................................... ..........................................11
3.5 HSCSD ...................................................................... .......................................12
3.5.1 Caractersticas........................................... ..........................................12
3.5.2 Principales aplicaciones........................................... ...........................12
3.5.3 Ventajas y desventajas........................................... .............................12
3.6 GPRS ...................................................................... .........................................13
3.6.1 Caractersticas de Funcionamiento........................................... ..........13
3.6.2 Principales aplicaciones........................................... ...........................13
3.7 Conclusiones...................................................................... ...............................14
4. COMANDOS AT.......................................................................................15
4.1 Introduccin...................................................................... ...............................16
4.2 Tipos de Comandos AT....................................................................................16
4.3 Modos De Funcionamiento Del MODEM......................................................16
4.4 Listado de comandos utilizados.......................................................................17
4.4.1 Control Errores....................................................................................17
4.4.2 Codigos De Acceso.............................................................................17
4.4.3 Mensajes Sms........................................... ..........................................17
4.4.4 Transferencia De Datos CSD-HSCSD................................................18
4.4.5 Lectura De La Agenda Y Del Registro Llamadas...............................19
4.4.6 Fecha Y Hora........................................... ...........................................19
4.4.7 Identificacin........................................... ...........................................20
ndice
7. DIAGRAMAS DE FLUJO.......................................................................34
7.1
7.2
7.3
7.4
7.5
Introduccin..................................... ...............................................................35
Funcionamiento General Del Programa.......................................................36
Formato Gene ral De Comunicacin PC-Mdem.........................................37
Enviar Tramas: Enviar Comando, Obtener Y Tratar Respuesta..............38
Espera De La Respuesta Completa...............................................................39
metodologa a) ........................................... .................................................39
metodologa b) ........................................... .................................................40
metodologa c) ........................................... .................................................41
metodologa d) ........................................... .................................................42
7.6 Tratar Respuesta (Procedimiento Treat_Responses) ..................................43
7.7 Configuracin Del Puerto Serie..................................... ...............................44
7.8 Control Del Cdigo De Acceso (Accin PIN_CONTROL) .........................45
7.9 Formulario De Introduccin Del Cdigo Pin................................................46
7.10 Tratar Respuesta Introduccin De Cdigo Pin (Accin Pin_Code) ........47
7.11 Formulario De Introduccin Del Cdigo PUK............................................48
7.12 Tratar Respuesta a la Introduccin De Cdigo PUK (PUK_Code) .........49
7.13 Men Principal............... ............... ............... ............... ............... ...............50
7.14 Cargar La Configuracin Del Programa............... ............... .....................51
7.15 Registro De Llamadas............... ............... ............... ............... ....................53
7.16 Lectura De La Memoria Del Mdem (Accin Phonebook_Read) ............54
7.17 Men De La Agenda Telefnica............... ............... ............... ....................56
7.18 Bsqueda Por Nombre En La Agenda Telefnica............... .......................57
7.19 Bsqueda Por Posicin En La Agenda Telefnica............... ......................59
7.20 Insertar Nueva Entrada En La Agenda Telefnica............... .....................60
7.21 Men Mensajes SMS............... ............... ............... ............... ......................61
7.22 Configuracin De Los Mensajes SMS............... ............... ..........................62
7.23 Accin Preferred Message Storage............... ............... ............... ...............64
7.24 Leer, Borrar y Reenviar SMS Desde Memoria............... ............... ...........65
7.25 Leer Mensaje (Accin Read_Message) ............... ............... ........................66
7.26 Formulario Escribir Mensajes (Guardar o Enviar) ............... ...................68
7.27 Enviar o Guardar (Accin SEND_OR_WRITE _MESSAGES) ...............69
7.28 Formulario Enviar Mensaje............... ............... ............... ..........................71
7.29 Formulario Transferencia De Datos CSD............... ............... ....................72
7.30 Finalizar Una Llamada, Colgar (Accion Hang Up) ............... ...................73
7.31 Transferencia De Datos CSD (Connected) ............... ............... ..............74
7.32 Acceso Al Modo Comandos (Accin Command Mode) ............... .............75
7.33 Configuracin De Parmetros Para La Transferencia CSD-HSCSD.......76
ndice
8. MANUAL DE USUARIO.........................................................................78
8.1 Introduccin............... ............... ............... ............... ............... ......................79
8.2 Configuracin Del Puerto Serie ............... ............... ............... .....................80
8.3 Control De Cdigos............... ............... ............... ............... ..........................81
8.4 Men Principal............... ............... ............... ............... ............... .................82
8.5 Agenda Telefnica............... ............... ............... ............... ............................83
8.6 Mensajes De Texto (SMS) ............... ............... ............... ............... ..............85
8.7 Transferencia De Datos............... ............... ............... ............... ....................88
8.8 Registro De Llamadas............... ............... ............... ............... ......................90
9. CONCLUSIONES.....................................................................................91
10. CDIGO FUENTE COMENTADO.....................................................94
10.1 Introduccin............... ............... ............... ............... ...................................95
10.2 Cdigo Fuente............... ............... ............... ............... ................................95
MDULOS DE FORMULARIO
10.2.1 PRESENTATION.frm........................................... ..............96
10.2.2 COM_PORT_CONFIGURATION.frm...............................97
10.2.3 PIN_CODE.frm........................................... ......................102
10.2.4 PUK_CODE.frm........................................... .....................103
10.2.5 MENU.frm........................................... ..............................104
10.2.6 CALL_REGISTER.frm......................................................109
10.2.7 DATA_TRANSFER_CSD_HSCSD.frm............................111
10.2.8 CSD_CONFIGURATION.frm...........................................114
10.2.9 PHONEBOOK.frm.......................................... ..................119
10.2.10 PHONEBOOK_NAME_SEARCH.frm.............................121
10.2.11 PHONEBOOK_POSITION_SEARCH.frm......................122
10.2.12 PHONEBOOK_SEARCH_RESULTS.frm.......................124
10.2.13 PHONEBOOK_WRITE.frm.............................................125
10.2.14 SMS.frm........................................... .................................127
10.2.15 SMS_CONFIGURATION.frm.........................................128
10.2.16 READ_SMS.frm.......................................... .....................134
10.2.17 WRITE_SMS.frm........................................... ..................136
10.2.18 SEND_SMS.frm........................................... ....................137
10.2.19 NEW_SMS_NOTIFY.frm.................................................139
10.2.20 CALL_NOTIFY.frm................................................. 140
10.2.21 MODULE_SIM_IDENTIFICATION.frm.........................141
10.2.22 TRAMAS_ENV_RECEPC.frm.........................................142
MDULOS ESTANDAR
10.2.23 VARIABLES.bas........................................... ...................143
10.2.24 PROCEDURES.bas........................................... ...............144
10.2.25 TREAT_RESPONSES.bas............................................... 153
10.2.26 Dxb.bas.................................... ............ ................ ...........161
10.2.27 sNi.bas........................................ ............ .............. ..........162
10.2.28 SOUNDS.bas............................... .....................................163
11. ANEXOS................................................................................................164
12. BIBLIOGRAFA..................................................................................166
6
Presentacin-Objetivos
2. PRESENTACIN-OBJETIVOS
Presentacin-Objetivos
PRESENTACIN - OBJETIVOS
El objetivo del presente proyecto es realizar una comunicacin entre dos terminales,
los cuales pueden ser o bien dos dispositivos mdem de tipo GSM, o entre un dispositivo
mvil (telfono mvil) y un mdem GSM.
Un mdem GSM es un dispositivo que se conecta a la red GSM para enviar y / o
recibir dicha informacin. Considerando que la red GSM es una red totalmente digital, no
es necesaria la utilizacin del mdem (que realizan una conversin analgico-digital
MOdulador-DEModulador), sino que se necesita slo un adaptador especial que adapta el
flujo de datos proveniente del PC, al flujo de datos utilizado en el enlace digital entre el
telfono y la red GSM.
Los mdem GSM empleados en este estudio son modelos GM29 de la compaa
SONY-ERICSSON, que han estado suministrados por el CITEE (Centre dInnovaci
Tecnolgica en Enginyeria Electrnica de Tarragona).
Se estudiaran diferentes tipos de comunicacin mediante la red GSM y se
implementaran dos de ellos: el mensaje de texto SMS (short message service) y la
transferencia de datos CSD (Circuit Switched Data).
Denotar que no nos adentraremos en el formato ni en el sistema de comunicacin
de la red GSM, sino que profundizaremo s en la comunicacin PC-MDEM, realizando
una interficie de usuario que gobierne dicho mdem. Todo ello con el propsito de
conseguir la comunicacin con otro terminal.
La comunicacin PC-MDEM se establece a travs del puerto serie, el cual ser
objeto de anlisis en cuanto a la forma de actuacin y estudio de su programacin y acceso
para controlar el dispositivo conectado a l.
El GM29 trabaja mediante un conjunto de instrucciones denominados comandos
AT (HAYES). El envo de estos comandos y la recepcin y posterior tratamiento de las
respuestas son la base de este proyecto.
Todo ello se realizar mediante la programacin en lenguaje VISUAL BASIC.
Sistemas de Comunicacin
3. SISTEMAS DE COMUNICACIN
Sistemas de Comunicacin
SISTEMAS DE COMUNICACIN
3.1 Introduccin
A continuacin presentaremos los diferentes tipos de comunicacin existentes, as
como una breve descripcin de sus caractersticas, funcionamiento y principales
aplicaciones de cada una de ellos.
Hablaremos de los mensajes de texto (SMS), de las llamadas de voz, del envo de
faxes, y finalmente de la trasferencia de datos y conexin a Internet (CSD-HSCSD,
GRPS).
3.2.1 Caractersticas
Hay varias caractersticas nicas del servicio de mensajes cortos (SMS), segn lo
definido dentro del estndar digital de telefona mvil GSM:
Un mensaje corto puede tener una longitud de hasta 160 caracteres. stos pueden
ser palabras, nmeros o una combinacin alfanumrica. Los mensajes cortos
basados en No-texto (por ejemplo, en formato binario) tambin se utilizan.
Los mensajes cortos no se envan directamente del remitente al receptor, sino que
se envan a travs de un centro de SMS. Cada red de telefona mvil que utiliza
SMS tiene uno o ms centros de mensajera para manejar los mensajes cortos.
10
Sistemas de Comunicacin
3.3.1 Caractersticas
En una comunicacin por voz es necesario una estacin mvil (telfono m vil,
mdem GSM, ...) que adems de permitir el acceso a la red a travs de la interfaz de radio
con funciones de procesado de seales y de radio frecuencia, debe ofrecer tambin una
interfaz al usuario humano (un micrfono, altavoz, display y tarjeta, para la gestin de las
llamadas de voz). Dicha tarjeta (SIM) nos permite el acceso a una operadora que nos preste
el servicio de la conexin.
Para efectuar una comunicacin, una red integrada de estaciones base debe
proporcionar la suficiente cobertura de radio a todas las estaciones mviles. Las estaciones
base, a su vez, deben estar conectadas a un eje central llamado Centro de Conmutacin
Mvil (MSC). El MSC proporciona conectividad entre la Red Telefnica de Conmutacin
Pblica (PSTN) y las numerosas estaciones base, y por ltimo, entre todos los abonados
mviles de un sistema. La PSTN forma la red de telecomunicaciones global que
interconecta los centros de conmutacin de telefona convencional (terrestres), llamados
oficinas centrales, con los MSCs de todo el mundo.
3.4 FACSIMIL
Su abreviatura es el FAX.
Sistema para el envo y recepcin de una pgina impresa entre lugares distantes.
3.4.1 Caractersticas
Bsicamente, estos dispositivos digitalizan una o ms hojas de papel, las convierten
en paquetes de datos que se transmiten a travs de una lnea de comunicacin (Internet,
BBS, GSM, cualquier red, etc...) a otro aparato de fax, e imprimen dicha informacin en un
papel para que el receptor del mensaje pueda leerlo. Las mquinas de fax se componen de
un escner, que digitaliza la pgina de papel, un mdem, que transmite la informacin, y
una impresora, que devuelve una copia en papel del documento recibido.
11
Sistemas de Comunicacin
Los mdems GSM para computadora son capaces de enviar y recibir facsmiles.
Los datos a enviar provienen de imgenes o textos almacenados en la computadora, y la
impresin de los documentos recibidos es opcional, ya que los podemos ver en pantalla. La
utilizacin de esta caracterstica requiere un software adicional especfico.
3.5.1 Caractersticas
HSCSD es una plataforma multi-canal para transmisin de datos a alta velocidad
mediante circuitos conmutados GSM. Elimina la barrera de las redes de bajo rendimiento,
proporcionando a los usuarios el mismo rendimiento, o incluso mayor, que las conexiones
fijas. HSCSD puede ofrecer transmisin de datos a una velocidad de hasta 57,6 kbit/s o
superior, cuando se combina con productos de compresin y filtro (combinando varios
canales de 9,6 Kbit/s o 14,4 Kbit/s.)
Con esta tecnologa el nmero de canales usados en cada instante por una
comunicacin de datos es variable dependiendo de la saturacin de la clula en la que est
operando el telfono mvil.
12
Sistemas de Comunicacin
13
Sistemas de Comunicacin
3.7 Conclusiones
Conocidos los diferentes sistemas de comunicacin posibles a travs de la red
GSM, en este proyecto se implementaran el sistema de envo de mensajes cortos (SMS) y
la transferencia de datos CSD-HSCSD (se diferencian en el nmero de slots utilizados, una
es ms rpida que la otra y por tanto ms cara), como comunicaciones significativas de las
anteriormente estudiadas.
La mensajera en formato SMS es un sistema consolidado y en constante auge, dada
su versatilidad y bajo coste, vlido para infinidad de aplicaciones y consideramos que una
comunicacin de este tipo es un modo muy representativo de nuestros tiempos.
La transferencia de datos va CSD nos permitir comunicarnos con otro mdem a
travs de la red inalmbrica desde cualquier punto donde alcance la cobertura suministrada
por la operadora, sin necesidad de la conexin a un sistema fijo. De este modo una
comunicacin de este tipo nos puede ser vlida para aquellos lugares a donde no alcance la
red fija convencional y sea necesario un constante contacto e intercambio de informacin.
Aunque, como hemos estudiado, el sistema GRPS gana usuarios en cuanto a
aplicaciones se implementan y los operadores de red lo potencian dado su optimizacin de
los recursos, su fundamento y su base radican en la transferencia CSD, y por ese motivo
optamos por llevar a cabo el caso prctico de esta ltima.
14
4. COMANDOS AT
15
Comandos AT
Comandos AT
4. COMANDOS AT
4.1 Introduccin
El control del mdem GSM a travs de la interfaz de usuario creada, se basa en el
uso de instrucciones o comandos denominados Hayes o AT, de los que exponemos
brevemente algunas referencias.
Hayes es el nombre de una empresa que en los orgenes de la comunicacin por
mdem defini una serie de comandos u rdenes para que el software de comunicaciones
pudiera comunicarse con el mdem, pudiendo controlar este ltimo.
Estos comandos tuvieron tanto xito que se convirtieron en el virtual estndar de
comunicaciones, y los mdems que los comprenden (el 99,99% de los mdems modernos)
se denominan compatibles Hayes.
Todos los comandos de este protocolo comienzan por AT y acaban por CR (aunque
este ltimo carcter es configurable).
16
Comandos AT
Comandos AT
b) ejecucin de acciones
18
Comandos AT
b) ejecucin de acciones
ATO (Return to Online Data Mode). Pasamos del modo comando al modo
en lnea.
19
Comandos AT
4.4.7 IDENTIFICACIN
Muestra informacin referente al mdem y a la tarjeta SIM.
20
21
22
BASE +6:
Modem Status Register (MSR): Registro de estado del mdem. Muestra el estado
del mismo.
BASE +7:
Scratch Register (SCR) :Registro residual.
CommPort
Indica el nmero del puerto serie usado. Cambiando esa propiedad podemos
cambiar el puerto de comunicacin que vamos a usar.
Su valor depender del puerto al que conectemos el dispositivo GM29.
Settings
Indica la velocidad, paridad, nmero de bits y bits de stop (parada) que se van a
usar en la comunicacin.
23
19200 y 28800
Handshaking
Especifica el mtodo de control sobre el flujo de informacin. En una
comunicacin serie se necesita conocer si el puerto puede enviar informacin (necesita
saber si el mdem est preparado para recibirla) y necesita indicarle al mdem que l est
preparado para recibir informacin. Establece las condiciones de control que uno va a tener
sobre otro.
El Control de Flujo puede hacerse de dos formas :
mediante las seales auxiliares del puerto (RTS, CTS, DSR, DTR), que son cables
adicionales que tendrn una tensin positiva respecto a los 0V del equipo si esa
seal est activada, o una tensin negativa si no lo est.
mediante seales especiales que se envan por los dos cables que transportan la
informacin. Mediante estas dos seales podemos controlar que el ordenador enve
informacin o deje de enviarla. De igual forma, podemos indicarle al mdem que
enve o no enve. Estas seales especiales se denominan X-ON y X-OFF.
La propiedad Handshaking controla la forma de realizar este proceso. Puede tomar los
siguientes valores :
0 - No existe Control de Flujo
1 - Control de Flujo mediante XON - XOFF
24
InBufferSize
Mediante esta propiedad establecemos el tamao del Buffer (almacn de datos) de
entrada. Este Buffer sirve para poder recibir datos sin que tenga que intervenir la
aplicacin continuamente para controlar el puerto de entrada.
Configuramos el buffer de entrada a 1024 caracteres. Valor suficiente para nuestra
aplicacin
OutBufferSize
Mediante esta propiedad controlamos el tamao del Buffer de salida.
El tamao de los Buffers depende de la aplicacin y de la velocidad de
comunicacin. Tanto ms grande cunta mayor sea la velocidad de transferencia de datos.
Configuramos el buffer de salida para 512 caract eres de capacidad. Valor
suficiente para nuestra aplicacin.
RThreshold, SThreshold
Estas dos propiedades especifican el nmero de caracteres que deben estar
presentes en los Buffers de Recepcin y Transmisin respectivamente, para que se
produzca el evento OnComm relativo a recepcin y transmisin de caracteres. (Eventos
EvReceive y EvSend)
Dado que la nuestra es una pequea aplicacin forzaremos que se genere el evento
a cada carcter que reciba o enve el puerto serie. De este modo, aunque se ejecutar un
procedimiento asociado a l cada vez que se genere dicho evento (lo que har perder
tiempo a la aplicacin, impidindole realizar otras funciones) hemos comprobado que no
perjudica a la evolucin normal del programa y as tenemos un control ms fiable de las
transferencias.
InputLen
Por defecto, cuando se lee el Buffer de recepcin, se leen todos los caracteres,
quedando el Buffer vaco. Si se le asigna a esta propiedad un valor distinto de 0, cada vez
que leamos el Buffer de recepcin leer un nmero de caracteres igual a esa cantidad,
permaneciendo los caracteres restantes en el Buffer a la espera de una nueva lectura.
25
Cada vez que se genere el evento de recepcin leeremos la totalidad del buffer,
dado que la transferencia va a ser discontinua y de tamaos variables cabra la
posibilidad de no leer caracteres del buffer si pusisemos un valor determinado. De este
modo nos aseguramos la lectura de todos los caracteres a medida los vayamos recibiendo.
ParityReplace
Si la comunicacin se realiza con bit de paridad (Par o Impar), en recepcin se
comprueba byte a byte la recepcin de la paridad correcta. Si se recibe un Byte que no
tiene paridad correcta, lo ms probable es que ese Byte (carcter) se haya recibido
defectuoso. Esta propiedad nos permite sustituir un carcter que ha llegado con bit de
paridad incorrecto por otro carcter ( ? predeterminado) o por una cadena de caracteres
(Error, por ejemplo).
Dado que no usaremos paridad alguna, este apartado podemos omitirlo.
RTSEnable
Activa (Pone a 1) la seal RTS (Request To Send - Peticin de envo). Esta seal
debe ponerse a 1 para indicar al mdem (o al equipo que va a recibir nuestra
comunicacin) que deseamos enviar datos. Debe estar activada durante toda la transmisin
de datos.
DTREnable
Activa (Pone a 1) la salida DTR (Data Terminal Ready - Terminal de Datos
Listo). Esta seal se emplea para decirle al mdem que el terminal (Ordenador) est
preparado para recibir datos.
PortOpen
Abre el puerto de comunicacin. Puede tener los valores True (para abrirlo) y False
(para cerrarlo).
(Mscomm1.PortOpen = True / False)
26
Output
Enva caracteres al Buffer de salida.
Input
Lee el Buffer de recepcin. Se leer un nmero de caracteres igual al valor de la
propiedad InputLen. Cuando la propiedad InputLen tiene el valor 0, el Buffer se lee
completo.
CommEvent
Devuelve el evento ms reciente que ha ocurrido para generar el evento general
OnComm
(MSComm.CommEvent)
ComEvReceive
Cuando se recibe un nmero igual o mayor de caracteres que el indicado en la
Propiedad Rthreshold
En el momento que recibimos un carcter, lo extraemos del puerto serie y lo
introducimos en una variable para su posterior uso y / o tratamiento.
27
ComEvSend
Cuando quedan en el bfer de transmisin menos caracteres que los indicados en la
Propiedad SThreshold
Se realiza una confirmacin de que el envo ha sido correcto. De este modo
tenemos la certeza de que el envo ha sido satisfactorio.
comEventBreak
Se ha recibido una seal de interrupcin. (Break)
ComEventOverrun
Se sobrepas la capacidad del Buffer de entrada sin haber ledo todos los caracteres.
Los caracteres no ledos se han perdido. Debemos aprovechar este evento para solicitar al
interlocutor una repeticin de los datos perdidos.
ComEventRxOver
Desbordamiento del bfer de recepcin. No hay espacio para ms datos en el bfer
de recepcin.
ComEventRxParity
Error de paridad. El hardware ha detectado un error de paridad.
No tratamos esta circunstancia ya que no utilizamos paridad
ComEventTxFull
Bfer de transmisin lleno. El bfer de transmisin estaba lleno cuando se ha
intentado agregar un carcter a la cola de transmisin.
28
29
30
6.2.3 Controles
Son los objetos grficos, como un cuadro de texto, o un botn de comando, que se
colocan en un formulario para mostrar datos, realizar una accin o facilitar la lectura del
formulario. Los controles tienen asociado un cdigo que se ejecuta cuando se activa un
determinado evento de dicho control.
Los controles que hemos usado en este estudio as como los eventos que provocan
la ejecucin del cdigo asociado son los comentados a continuacin.
(7)
(3)
(6)
(2)
(5)
(1)
(4)
Figura1. Controles
CommandButton (1)
Es un control que est asociado a un comando. El evento que lo acciona es el clic
(bien del ratn o mediante el teclado). Cuando se hace clic en el botn de comando en
tiempo de ejecucin, el cdigo asociado al botn se ejecuta.
Textbox (2)
Crea un cuadro de texto con el cual podemos interactuar. Mostrar un determinado
texto, introducir un nuevo valor con el que se podr modificar el contenido de una variable
asociada, etc. Son algunas de sus funciones.
Las propiedades utilizadas son
Text, es el texto que muestra la caja. Podemos mostrar un texto deseado o asociar
dicho texto a una variable.
31
Change : Indica que el contenido ha cambiado. Nos servir para saber cuando se ha
modificado una caja de texto y cuando debe asociarse a la variable.
Keypress Ocurre cuando el usuario presiona y suelta una tecla. Vlido para
discriminar posibles entradas errneas. En un texto slo numrico descartamos las
teclas que no se correspondan a este requerimiento.
Label
Es un control grfico que se puede usar para mostrar texto. Se diferencia del
textbox en que el usuario no podr cambiar directamente dicho texto, sino que ser a travs
de la ejecucin del programa.
Timer
Nos Permite Ejecutar cdigo a intervalos peridicos produciendo un evento Timer.
Se configura la frecuencia de ejecucin de ste (en milisegundos), y se asocia un cdigo
que se realizar cuando se produzca el evento.
Optionbutton
Pequeo botn redondo ms una etiqueta (explicativa) que selecciona una opcin.
Los controles de este tipo se utilizan en grupo para mostrar opciones entre las cuales el
usuario slo puede seleccionar una (agrupados dentro de un contenedor como un control
Frame). Cuando un usuario selecciona un OptionButton, los otros controles del mismo
grupo dejan de estar disponibles automticamente.
La opcin se selecciona mediante el evento clic del ratn o teclado.
Cuando un optionbutton est seccionado la propiedad value = verdadera,
mostrndose en el interior del botn una redonda negra.
Frame
Un control de este tipo proporciona un agrupamiento identificable para controles o
para subdividir un formulario funcionalmente; por ejemplo, para separar grupos de
controles OptionButton.
Utilizamos su propiedad enabled para habilitar (true) o deshabilitar (false) los
controles contenidos en l (para preservar su valor y no sea modificado involuntariamente).
32
Combobox
Nos permite introducir informacin en la parte del cuadro de texto o seleccionar
directamente un elemento de la lista desplegable. Se utiliza para seleccionar una opcin
entre las mostradas en dicha lista.
Mediante el evento clic se seleccionar una de las opciones y se efectuar el
tratamiento requerido asociado a dicho evento.
MsComm
Este control nos proporciona comunicarnos con el puerto serie para poder transmitir
y recibir datos a travs de l. Las propiedades y los diferentes eventos han sido
ampliamente comentados en el captulo anterior (5.Programacin del Puerto Serie).
Load
Ocurre cuando se carga un formulario. Utilizamos este evento para incluir cdigo
de inicializacin de un formulario (cdigo que especifica los valores predeterminados de
los controles, indica el contenido que se va a cargar en controles ComboBox e inicializa
variables a nivel del formulario).
Unload
Ocurre cuando un formulario est a punto de quitarse de la pantalla. Cuando ese
formulario se vuelve a cargar, el contenido de todos sus controles se reinicializa. Este
evento se desencadena cuando se cierra el formulario mediante el comando Cerrar del
men Control o una instruccin Unload.
Para visualizar u ocultar los formularios utilizamos la propiedad Visible, que estar
con valor true cuando queramos que sea visible y con valor false cuando deseemos
ocultarlo. Utilizaremos este mtodo para mostrar u ocultar el formulario sin necesidad de
descargarlo y volverlo a cargar de memoria.
33
Diagramas de Flujo
7. DIAGRAMAS DE FLUJO
34
Diagramas de Flujo
DIAGRAMAS DE FLUJO
7.1 Introduccin
Los diagramas de flujo son representaciones del flujo que siguen las instrucciones
de un programa.
Los diagramas de flujo fueron muy utilizados durante la dcada de los sesenta, pero
resultaron inadecuados como herramienta de modelado de sistemas, debido a que facilitan
la creacin de cdigo no estructurado y complejo. Frente a ellos, el pseudocdigo fue una
alternativa realmente mejor.
Pero si bien estos diagramas han cado en desuso para el diseo de programas, stos
nos resultaran tiles:
35
Diagramas de Flujo
INICIO
CARGAR CONFIGURACIN
PROGRAMA
MENU PRINCIPAL
Submenus?
MENSAJES (envio,
recepcin)
TRANSFERENCIA
DE DATOS
AGENDA
TELEFONICA
REGISTRO DE
LLAMADAS
FIN
La evolucin normal del programa sera una vez iniciado ste, configurar el puerto
serie al cual tenemos conectado el mdem.
Posteriormente, tras el anlisis de los cdigos de acceso y su posible necesidad de
introducirlos para acceder al sistema, se procede a la carga de la configuracin del
programa, que abarca aspectos de las llamadas, mensajes, informacin,...
Seguidamente estaremos en disposicin de efectuar cualquiera de las acciones
disponibles en el men principal, accediendo a los diferentes submens de agenda,
mensajes, transferencia de datos o registro de llamadas. Tambin se permite el acceso a
una aplicacin calculadora.
36
Diagramas de Flujo
ENVIAR
TRAMA
TRATAR
RESPUESTA
FIN
Figura 4. Formato General de Comunicacin PC-Mdem
37
Diagramas de Flujo
Timeout
Respuesta
Completa?
No
Si
TRATAR
TIMEOUT
TRATAR
RESPUESTA
FIN
Figura 5. Enviar Tramas
TIME_OUT. Una vez fuera del bucle debemos comprobar si la salida se produjo
por timeout. Se deshabilitar el timer y se reiniciar el contador hasta una nueva
llamada. Se tratar el caso de que se haya producido timeout.
38
Diagramas de Flujo
ACCIN WAIT_RESULT_CODES
INICIO
DoEvents
STRBUFFER
Condicion Fin
Respuesta
NO
SI
FIN
CONDICION= Instr(Len(str)+2,strBUFFER,vbCrLf)
39
Diagramas de Flujo
Mtodo b)
INICIO
DoEvents
STRBUFFER
straux=strBUFFER
Right(straux,8)
Condicion Fin
Respuesta
NO
SI
FIN
40
Diagramas de Flujo
Mtodo c)
Considerar que ha llegado la totalidad de la respuesta cuando coincida exactamente
con una de las respuestas posibles.
No se realiza un tratamiento a la respuesta sino que se compara en su totalidad.
Un ejemplo claro es la accin PIN CONTROL, no podemos utilizar ninguno de los
dos mtodos anteriormente mencionados ya que el formato de la respuesta no est
definido, puede tomar diferentes formatos.
STRBUFFER= cond X, donde condX puede tomar estos valores
condX = str(trama enviada)+CrLf+mensaje1+CrLf
condX = str(trama enviada)+CrLf+mensaje1+CrLf+CrLf+mensaje2+CrLf
...
DoEvents
STRBUFFER
ElseCase
Cond 1
strBUFFER ?
Cond 4
Cond 2
Cond 3
TRATAR
Condicion 1
TRATAR
Condicion 4
TRATAR
Condicion 2
TRATAR
Condicion 3
...
Figura 8. Metodologa tipo c)
41
Diagramas de Flujo
NOTIFICACIONES (POLLING)
Tambin destacar las notificaciones que nos enva el mdem cuando se recibe una
llamada o un nuevo mensaje de texto.
Son respuestas que debemos comprobar mediante polling cada vez que se reciban
caracteres al puerto serie. Dado que son notificaciones especficas y definidas, debemos
comparar el texto recibido con dichas notificaciones:
CrLf + RING + CrLf en caso de llamada entrante, y
CrLf + "+CMTI: " + mem3 + ",1" + CrLf en caso de recepcin de nuevo mensaje
Otras
PROPIEDAD?
EvReceived
Recibido caracter
TRATAR
PROPIEDAD
Read Buffer
(strBUFFER)
RING
(llamada?)
NEW SMS
(lleg msg?)
FIN
Figura 9. Tratamiento Polling
42
Diagramas de Flujo
OK
Results
Code?
TRATAR
OK
ERROR
TRATAR
ERROR
FIN
Figura 10. Tratar Respuesta
Diagramas de Flujo
Establecer
Configuracin
SALIR
Botn?
AbrirPuerto
CerrarPuerto
Ok
Si
No
No
Abierto?
Msg Error
Si
Cerrado?
ABRIR
CERRAR
Msg Error
PrepararTrama
AT+CMEE
TRAMA
TREAT
RESPONSE
M.EQUIP.ERROR
Controlar el cdigo
de acceso
FIN
Figura 12. Configurar Puerto Serie
Diagramas de Flujo
PrepararTrama
AT+CPIN?
SEND
COMMAND
DoEvents
STRBUFFER
Aux=1 or
Timeout
NO
SI
...Sim PIN...
SI
ElseCase
strBUFFER ?
Timeout?
...Sim PUK...
TRATAR
TIMEOUT
NO
...Sim Not
Inserted...
...READY...
CARGAR FORM
PIN. Aux=1
Introducir Tarjeta +
ACEPTAR
CARGAR FORM
PUK. Aux=1
CARGAR FORM
MENU. Aux=1
FIN
Figura 13. Control del Cdigo de Acceso (PIN_CONTROL)
Diagramas de Flujo
Text_PIN
Boton?
Salir
Introducir
cdigo PIN
Salir
Boton?
OK
PrepararTrama
AT+CPIN
TRAMA
TREAT
RESPONSE
PIN_CODE
FIN
Figura 14. Formulario Cdigo PIN
46
Diagramas de Flujo
INICIO
OK
Results
Code?
SIM PUK
Incorrect Psw
Cargar Form
MENU
Recargar
Form PIN
Cargar Form
PUK
FIN
Figura 15. Accin PIN_CODE
Tratamiento de la respuesta.
Dependiendo de la validez del cdigo PIN introducido podemos encontrarnos con 3
tipos de respuesta:
OK Cdigo correcto. Accederemos al men principal.
+CME ERROR: Incorrect password Cdigo incorrecto. Tenemos la posibilidad de
introducirlo de nuevo.
+CME ERROR: SIM PUK required: Hemos introducido errneamente 2 veces el
cdigo PIN. Accederemos al formualrio 03 con el fn de introducir el cdigo PUK.
47
Diagramas de Flujo
Text_PUK,Text_PIN
Boton?
Salir
Introducir
cdigo PUK
Introducir
cdigo PIN
Salir
Boton?
OK
PrepararTrama
AT+CPIN
TRAMA
TREAT
RESPONSE
PUK_CODE
FIN
Figura 16. Formulario Cdigo PUK
48
Diagramas de Flujo
INICIO
OK
Results
Code?
BLOCKED
Incorrect Psw
Cargar Form
MENU
Recargar
Form PUK
Msg ERROR
FIN
Figura 17. Accin PUK_CODE
Tratamiento de la respuesta.
Dependiendo de la validez del cdigo introducido podemos encontrarnos con 3
tipos de respuesta:
OK y accederemos al men principal
+CME ERROR: Incorrect password Contrasea incorrecta y tendremos la posibilidad
de introducirlo de nuevo.
BLOCKED hemos introducido errneamente 8 veces el cdigo PUK. Aparece un mensaje
de error y salimos del programa ya que la tarjeta SIM ha quedado bloqueada por la
operadora que presta el servicio.
49
Diagramas de Flujo
INICIO
CERRAR
FORMULARIOS
Cargar Config. Del
Programa (1 vez)
AGENDA
CALC
BOTON ?
SMS
CSD
CARGAR FORM
MENSAJES
CARGAR FORM
AGENDA
LLAMADAS
CARGAR FORM
INFO MODEM
SALIR
CARGAR FORM
TRANSFER. CSD
ACERCA del
MODEM
CARGAR FORM
Registro Llamadas
CARGAR
Aplicacin CALC
FIN
Figura 18. Formulario Men Principal
50
Diagramas de Flujo
PrepararTrama
AT+CCLK
TRAMA
TREAT
RESPONSE
SET_CLOCK
...
PREFERRED
MESSAGE
STORAGE
FIN
Figura 19. Cargar Configuracin del Programa
Diagramas de Flujo
AGENDA
Phonebook Storage, "AT+CPBS" (establece el lugar de almacenamiento de la
agenda telefnica: Mdem o tarjeta SIM)
MENSAJES
Service Centre Address, "AT+CSCA" (establece el nmero del centro de
mensajes, que canaliza el envo de los mensajes)
Message Format, "AT+CMGF" (establece el tipo de mensajes: texto o binario)
Message Text Time Max, "AT+CSMP" (se configura el tiempo mximo de
almacenamiento de mensajes)
Preferred Message Storage, (selecciona las diferentes memorias para las
diferentes acciones con los mensajes) NOTA: al tener un formato de respuesta que
combina
tipo
b)
y
c)
se
crea
una
accin
especifica
PREFERRED_MSG_STORAGE, donde se prepara y se trata la respuesta en la
misma accin
New Message Indication, "AT+CNMI configura el modo de alerta al recibir un
nuevo mensaje
LLAMADA-TRANSFERENCIA DE DATOS
Select Dialling, ATT o ATP (selecciona el modo de llamada: tono o pulsos)
Automatic Answer Control, "ATS0" (configura el modo de respuesta de llamada:
manual o automtico)
Select Bearer Service, "AT+CBST" configura la velocidad de la conexin
Escape Sequence Character, "ATS2" configura el carcter de escape del modo
online data mode
52
Diagramas de Flujo
BOTON ?
Recibidas
Enviadas
CARGAR
Call_reg=RC
FORMULARIO
Preparar TRAMA9
Call_reg=DC
Preparar TRAMA
Menu
Perdidas
Call_reg=MC
Preparar TRAMA
TRAMA
TREAT
RESPONSE
Ph_CallStorage
PhoneBook
READ
FIN
Figura 20. Formulario Registro de Llamadas
53
Diagramas de Flujo
SEND
COMMAND
DoEvents
STRBUFFER
Aux=1 or
Timeout
NO
SI
OTRA
StrBuffer?
SI
Timeout?
Cond1
Cond2
NO
No Resultados
(aux=1)
TRATAR
TIMEOUT
ERROR en la
Trama (aux=1)
straux=strBUFFER
Right(straux,8)
SI
Straux=cond3?
SHOW RESULTS
NO
En Form Llamadas
(aux=1)
i?
2
En Busqueda
Agenda (aux=1)
FIN
Figura 21. Accin PHONEBOOK_READ
Esta accin permite la lectura de la memoria del mdem. ste tiene varios registros
destinados cada uno de ellos a un almacenamiento de informacin determinada.
Por lo tanto, antes de realizar una lectura, debemos especificar que registro
queremos leer (comando AT+CPBS). Esta configuracin se realizar previamente a la
llamada de esta accin.
Nosotros implementaremos el acceso al registro de las llamadas y a la agenda.
Como la metodologa es la misma en ambos casos, hemos implementado una sola
accin que tendr acceso a cualquiera de los registros.
De este modo, pasaremos como parmetro el tipo de lectura queremos realizar
i=1 ser para leer el registro de llamadas e
i=2 para la agenda telefnica.
54
Diagramas de Flujo
55
Diagramas de Flujo
BOTON ?
Busq Nombre
Configuracin
memoria
Insertar New
Busq Posicion
CARGAR
FORMULARIO 9
Configurar
Memoria (ME-SM)
CARGAR
FORMULARIO 10
CARGAR
FORMULARIO 11
FIN
Figura 22. Formulario Agenda Telefnica
Para ello se debe acceder a los diferentes submens pulsando el botn correspondiente.
56
Diagramas de Flujo
PrepararTrama
AT+CPBS
TRAMA
TREAT
RESPONSE
PhBook Storage
Text
Boton?
Salir
Recoger TEXTO
BUSQUEDA
Salir
Boton?
OK
PrepararTrama
AT+CPBF
PhoneBook
READ
Salir
Boton?
Nueva Bsqueda
Ocultar Resultados
Anteriores
FIN
Figura 23. Formulario Bsqueda por nombre
Diagramas de Flujo
58
Diagramas de Flujo
PrepararTrama
AT+CPBS
TRAMA
TREAT
RESPONSE
PhBook Storage
Text
Boton?
Salir
Recoger RANGO
BUSQUEDA
Salir
Boton?
OK
PrepararTrama
AT+CPBR
PhoneBook
READ
Salir
Boton?
Nueva Bsqueda
O cultar Resultados
Anteriores
FIN
Figura 24. Formulario Bsqueda por Posicin
59
Diagramas de Flujo
PrepararTrama
AT+CPBS
TRAMA
TREAT
RESPONSE
PhBook Storage
Cancelar
Boton?
TextBoxs
RELLENAR
CAMPOS
Cancelar
Boton?
OK
TRAMA
TREAT
RESPONSE
PhoneBookwrite
FIN
Figura 25. Formulario Insertar Nueva Entrada
60
Diagramas de Flujo
INICIO
BOTON ?
Escribir
Leer
CARGAR
CARGAR
FORM
FORMULARIO
ESCRIBIR (16) 9
Configuracion
Menu
CARGAR FORM
LEER MSG (15)
CARGAR FORM
CONFIG (14)
FIN
Figura 26. Men Mensajes
61
Diagramas de Flujo
VISUALIZAR
CONFIG.
DESHABILITAR
CONTROLES
Modificar
Memoria Msgs
BOTON ?
Modificar N
Centro Servicio
Modificar
Formato Msg
Modificar
T.permanencia
HABILITAR
CONTROLES
HABILITAR
CONTROLES
HABILITAR
CONTROLES
HABILITAR
CONTROLES
MODIFICAR
PARMETROS
MODIFICAR
PARAMETROS
MODIFICAR
PARAMETROS
MODIFICAR
PARAMETROS
OK
PREFERRED
MESSAGE
STORAGE
OK
OK
OK
PREPARAR TRAMA
AT+CSMP
PREPARAR TRAMA
AT+CMGF
PREPARAR TRAMA
AT+CSCA
TRAMA
TRAMA
TRAMA
TREAT
RESPONSE
MSG_FORMAT
TREAT
RESPONSE
MSG_TIME_MAX
TREAT
RESPONSE
SERV_CENTRE
SMS-MENU
FIN
Figura 27. Configuracin de los Mensajes
62
Diagramas de Flujo
63
Diagramas de Flujo
PrepararTrama
AT+CPMS
SEND
COMMAND
DoEvents
STRBUFFER
Aux=1 or
Timeout
SI
SI
NO
straux=strBUFFER
Right(straux,8)
Timeout?
SI
Straux=cond1?
TRATAR
TIMEOUT
NO
NO
Tratar Envo
Correcto (aux=1)
SI
StrBuffer=cond2?
NO
FIN
Figura 28. Accin PREFERRED_MSGE_STORAGE
64
Diagramas de Flujo
READMsg
(true)
BOTON ?
Leer Anterior
Borrar
Reenviar
Index++
(Variable Lectura)
Leer Siguiente
CARGAR FORM
ENVIAR (17)
READMsg
(false)
Preparar TRAMA
AT+CMGD
Index-(Variable Lectura)
TRAMA
READMsg
(true)
TREAT
RESPONSE
DELETE
Menu SMS
FIN
Figura 29. Leer, Borrar y Reenviar Mensajes
Diagramas de Flujo
PrepararTrama
AT+CPMS
SEND
COMMAND
DoEvents
STRBUFFER
Aux=1 or
Timeout
SI
SI
NO
straux=strBUFFER
Right(straux,8)
Timeout?
SI
Straux=cond1?
TRATAR
TIMEOUT
NO
SHOW RESULTS
(aux=1)
NO
SI
StrBuffer=cond2?
NO
Posicin vacia
(aux=1)
Avanzar o
Retroceder index
FIN
Figura 30. Accin READ_MESSAGE
Diagramas de Flujo
67
Diagramas de Flujo
ESCRIBIR
TEXTO
Guardar
Boton?
PrepararTrama
CARGAR FORM
ENVIAR (17)
AT+CMGW
SEND OR
WRITE MSG
Enviar
Cancelar
FIN
Figura 31. Formulario Escribir Mensajes (guardar-enviar)
El formulario consta de una caja de texto en la cual escribimos el texto del mensaje.
ste puede ser guardado en la memoria (en la primera posicin libre) o bien ser enviado.
Cuando pulsamos guardar, se prepara la trama AT+CMGW y se ejecuta la accin
SEND_OR_WRITE_MESSAGE (dicha accin se puede ver detallada en la pg. siguiente).
Si queremos enviar, accederemos al formulario 17, en el que especificaremos el
nmero del destinatario primero y se enviar la trama correspondiente despus.
Se puede cancelar cualquiera de estos procesos y retornaremos al men de los
mensajes.
68
Diagramas de Flujo
SEND
COMMAND
DoEvents
STRBUFFER
Aux=1 or
Timeout
NO
SI
SI
StrBuffer=cond1?
SI
Timeout?
NO
NO
TRATAR
TIMEOUT
PrepararTrama
TEXTO+CrtlZ
SEND
COMMAND
DoEvents
STRBUFFER
Aux=1 or
Timeout
SI
SI
NO
straux=strBUFFER
Right(straux,8)
Timeout?
NO
TRATAR
TIMEOUT
Straux=cond2?
SI
NO
i?
SMS Guardado
(aux=1)
2
SMS Enviado
(aux=1)
SI
Straux=cond3?
NO
1
ERROR Guardar
(aux=1)
i?
2
ERROR Enviar
(aux=1)
FIN
Figura 32. Accin SEND_OR_WRITE_MESSAGES
69
Diagramas de Flujo
indicativo de que el sistema esta listo para la recepcin del texto. Dado que es una
respuesta concreta, debemos esperar a que se produzca la coincidencia en su totalidad
(metodologa tipo c).
Una vez se haya obtenido dicha respuesta o se haya producido timeout mientras se
esperaba la misma, se saldr del bucle de espera, y se tratar la posible incidencia de
timeout.
Posteriormente enviaremos la trama formada por el Texto del Mensaje + CRTL-Z
(carcter de finalizacin del texto), y esperaremos la respuesta final del mdem.
Esta puede acontecer de 2 formas, o un mensaje de error o de un correcto envo.
Ambas las trataremos del mismo modo, leyendo los ltimos 8 caracteres de la respuesta y
comparndolas con las siguientes condiciones:
Condicin2 = vbCrLf + vbCrLf + "OK" + vbCrLf
70
Diagramas de Flujo
INICIO
Agenda
Num Destinatario
Boton?
Salir
Escribir
Msg
CARGAR FORM
AGENDA (08)
Llamada
desde?
SEND OR
WRITE MSG
Reenviar
Msg
PrepararTrama
AT+CMSS
TRAMA
TREAT
RESPONSE
Send Storage
FIN
Figura 33. Formulario Enviar Mensaje
Para realizar el envo debemos aportar el nmero de telfono del destinatario con el
que se realizar la comunicacin. Este nmero puede ser consultado en la agenda de
telfonos (a la cual se tiene acceso mediante un pulsador) o introducindolo manualmente.
El envo puede tener 2 formas de proceder:
71
Diagramas de Flujo
INICIO
Dial
PrepararTrama
Aceptar
Llamada
BOTON ?
Rechazar
Llamada
Colgar
Opciones
ATD
Agenda
PrepararTrama
ATA
PrepararTrama
HANG UP
MENU
AT+CHUP
TRAMA
TREAT
RESPONSE
ATD
TRAMA
CARGAR FORM
CONFIG. CSD
CARGAR FORM
aGENDA
TRAMA
TREAT
RESPONSE
ANSWER
TREAT
RESPONSE
HANGUPCALL
FIN
Figura 34. Formulario Transferencia de Datos
72
Diagramas de Flujo
PrepararTrama
ATH
SEND
COMMAND
DoEvents
STRBUFFER
Aux=1 or
Timeout
NO
SI
SI
ElseCase
Timeout?
NO
TRATAR
TIMEOUT
StrBuffer?
Cond1
Cond3
Cond2
Fin de Llamada
(aux=1)
Ll. Interrumpida
(aux=1)
FIN
Figura 35. Accin HANG_UP
73
Diagramas de Flujo
Texto Enviar
ESCRIBIR
TEXTO
Modo
Comandos
ENVIAR
Modo en
linea
Colgar
Command
MODE
Texto Recibido
BOTON ?
HANG UP
GUARDAR
T.RECIBIDO
MOSTRAR
T.RECIBIDO
PrepararTrama
ATO=0
TRAMA
TREAT
RESPONSE
ONLINEDATA
FIN
Figura 36. Transferencia de Datos
Una vez est establecida la comunicacin con el interlocutor, podremos realizar las
siguientes acciones:
Para retornar al modo en lnea debemos enviar el comando ATO (se repite el
proceso preparar trama, envo y espera de respuesta, tratamiento-confirmacin del
nuevo modo de operacin).
74
Diagramas de Flujo
PrepararTrama
+++AT (seqEsc)
SEND
COMMAND
DoEvents
STRBUFFER
Aux=1 or
Timeout
NO
SI
SI
ElseCase
Timeout?
NO
TRATAR
TIMEOUT
StrBuffer?
Cond1
Cond2
modo comando
(aux=1)
error trama
(aux=1)
FIN
Figura 37. Accin COMMAND_MODE
Para pasar de modo en lnea a modo comando debemos enviar la trama +++AT
(denominada secuencia de escape donde + es el char(43), aunque es configurable).
Posteriormente debemos esperar y tratar la respuesta. Dado que las posibles respuestas son
Cond1 = vbCrLf + "OK" + vbCrLf
Cond2 = vbCrLf + "ERROR" + vbCrLf
75
Diagramas de Flujo
VISUALIZAR
CONFIG.
DESHABILITAR
CONTROLES
Modificar Velocidad
Conexion
BOTON ?
Modificar Modo
Llamada
Modificar
Carcter Escape
Modificar Modo
Respuesta
HABILITAR
CONTROLES
HABILITAR
CONTROLES
HABILITAR
CONTROLES
HABILITAR
CONTROLES
MODIFICAR
PARMETROS
MODIFICAR
PARAMETROS
MODIFICAR
PARAMETROS
MODIFICAR
PARAMETROS
OK
OK
OK
OK
PREPARAR TRAMA
AT+CBST
PREPARAR TRAMA
ATT/ATP
PREPARAR TRAMA
ATS0
PREPARAR TRAMA
ATS2
TRAMA
TRAMA
TRAMA
TRAMA
TREAT
RESPONSE
BEARER_SERV
TREAT
RESPONSE
SEL_DIALLING
TREAT
RESPONSE
ANSWER_MODE
TREAT
RESPONSE
ESC_SEQ_CHAR
CSD-MENU
FIN
Figura 38. Formulario Configuracin Transferencia de Datos
76
Diagramas de Flujo
77
Manual de Usuario
8. MANUAL DE USUARIO
78
Manual de Usuario
MANUAL DE USUARIO
8.1 Introduccin
Se presenta un pequeo manual explicativo de la aplicacin programada.
En l se contemplan las posibles acciones a realizar as como la asociacin de stas
a los controles de los formularios. De este modo ser mucho ms sencillo implementar una
accin, ya que stas estn desglosadas por pasos mostrando imgenes de la aplicacin e
indicando que controles deben pulsarse en cada ocasin.
El manual se desglosar en 7 apartados
Configuracin Del Puerto Serie
Control De Cdigos
Men Principal
Agenda Telefnica
Mensajes De Texto (SMS)
Transferencia De Datos
Registro De Llamadas
79
Manual de Usuario
Listas desplegables:
Seleccin del puerto
Velocidad
Paridad
Bits de informacin
Bits de stop
Acceder al mdem
Figura 39. Configuracin Puerto Serie
Recuerde que para efectuar cambios en la configuracin el puerto serie debe estar cerrado.
El fabricante expone en su manual la configuracin necesaria, aunque sta se puede
modificar. Es la siguiente:
Velocidad =9600 baudios,
Bits de Informacin = 8,
Paridad = ninguna,
Bits de parada =1.
80
Manual de Usuario
Introduzca aqu
el cdigo
Salir del programa
Introduzca aqu
el cdigo PUK
Introduzca aqu
un nuevo codigo PIN
Salir del programa
Aceptacin de cdigos
81
Manual de Usuario
Standby
Acceso a la
Agenda
Transferencia
de datos
Aplicacin extra
(calculadora)
Libre
Informacin del
mdem y SIM
Salir del
Programa
Mensajes (SMS)
Registro de llamadas
Esta pantalla puede estar en STANDBY, esto es, una vez no necesitamos operar
con la aplicacin pero queremos seguir conectados al servicio, sta se minimizar y
aparecer un icono en la barra de tareas para su posterior reapertura, y que aun estando
minimizado nos notificar los eventos que se produzcan, ya sea un llamada o un nuevo
mensaje recibido.
82
Manual de Usuario
Nueva Entrada
Salir de la
agenda
Figura 44. Men AGENDA
Campos
de texto
Cancelar
Insertar
Figura 45. Nueva Entrada AGENDA
Manual de Usuario
Texto de
bsqueda
Iniciar
Nueva
bsquela
Salir
Figura 46. Bsqueda por Nombre
Resultados de
la bsqueda
84
Manual de Usuario
Escritura y
almacenamiento
configuracin
retorno al men
Figura 49. Men de Mensajes SMS
Leer
Ahora
Cancelar
(1)
(2)
Reenviar
Men
Figura 51.Ventana LEER Mensaje
Borrar un mensaje
Acceda al men SMS
Pulse leer mensaje
Una vez mostrado el mensaje a borrar
Pulse borrar mensaje
85
Manual de Usuario
Escribir un mensaje
Enviar
Guardar
SI PULSA
GUARDAR, se guardar en la primera posicin libre de memoria
CANCELAR, se borra el texto y se retorna al MEN-SMS
ENVIAR, se abrir formulario de envo y deber:
o *introducir el nmero del destinatario y
o *pulsar ENVIAR, o
o *CANCELAR, para anular el envo
Num. Destino
Acceso a la agenda
Cancelar envo
Enviar mensaje
Figura 53. Enviar mensaje
Reenviar un mensaje
Acceda al men SMS
Pulse leer mensaje
Una vez mostrado el mensaje a reenviar
Pulse REENVIAR mensaje
Se abrir un formulario de envo y deber:
o *introducir el nmero del destinatario y
o *pulsar ENVIAR, o
o *CANCELAR, para anular el envo
86
Manual de Usuario
Formato
Memoria
Validar
cambios
Centro
Servicio
Permanencia
Modificar
Men
Figura 54. Ventana de Configuracin de los mensajes
Se puede configurar:
*Almacenamiento (mem1,mem2,mem3, ME o SIM)
Configura las memorias para el tratamiento de los mensajes. Seleccin entre ME (memoria
del MODEM GM29) y SIM (tarjeta)
La memoria 1 corresponde a la lectura y borrado de mensajes.
La memoria 2 para la escritura y envo.
La memoria 3 almacena los nuevos mensajes recibidos.
*Formato (tipo texto o PDU)
Determina el tipo de mensaje, modo texto o modo binario.
*Numero del centro de mensajes
Configura el nmero del centro que nos proporciona el servicio de mensajera SMS.
*Permanencia
Establece el tiempo mximo de validez de los mensajes. El tiempo mximo de
permanencia en el centro servidor hasta que sea posible el envo al destinatario (el envo
depende de la disponibilidad del receptor)
87
Manual de Usuario
(5)
(2)
(6)
(3)
(7)
(4)
(8)
(9)
(10)
(13)
(11)
(14)
(12)
Aceptar la llamada
Pulse Aceptar Llamada (5)
Rechazar la llamada
Pulse rechazar Llamada (8)
Para Establecer una comunicacin de transferencia de datos, acceda al
formulario a travs del Men principal:
Introduzca el nmero del destinatario(2)
Puede acceder a la Agenda si pulsa el botn (3)
Pulse Establecer conexin (1)
Finalizar la comunicacin
Pulse Colgar (4)
(si ha establecido una comunicacin, recuerde estar en modo comandos)
88
Manual de Usuario
(1)
(1)
(1)
(1)
(1)
Figura 57. Configuracin CSD-HSCSD
Se puede configurar:
*Velocidad de conexin
Establece o bien el modo automtico de velocidad (velocidad segn posibilidades) o bien
un valor de los mostrados en la lista desplegable.
89
Manual de Usuario
Ll. Recibidas
Resultados
Men Principal
Figura 58. Formulario de lectura del Registro de Llamadas
9. CONCLUSIONES
91
Conclusiones
Conclusiones
CONCLUSIONES
El objetivo de comunicar 2 terminales, sean mbos dos mdems GSM o un mdem
GSM y un telfono mvil, se ha conseguido establecer.
Las posibilidades que nos proporciona la red inalmbrica GSM ha permitido
establecer un tipo de comunicacin mvil que anteriormente no hubiese sido imposible
realizar.
Hace unos aos estbamos sometidos a un sistema fijo, esttico. El sistema
convencional de comunicacin telefnica limitaba las comunicaciones a la conexin de
una toma fija. sta poda o no existir, a causa de imposibilidades geogrficas, en aquellos
lugares donde era complicado el acceso y establecimiento de los sistemas de cableado y
centralitas (valles, montaas, etc).
Tambin exista la limitacin de que las comunicaciones deban hacerse desde dos
lugares concretos, estticos, siendo imposible la movilidad de los interlocutores.
Con la implantacin del sistema GSM y de las diferentes subestaciones que
proporcionan servicio o cobertura (actualmente existe cobertura GSM en el 87 % del
estado espaol y se permite la interaccin con el resto de redes mundiales) las
comunicaciones son mviles. Esto es, podremos realizar cualquier tipo de comunicacin
desde una oficina, un medio de transporte en movimiento, nuestro lugar de residencia o
vacaciones, y en lugares donde la red fija convencional no tiene alcance (alto de una
montaa, valle, etc).
La nter actuacin con el mdem se deba realizar mediante el puerto serie (RS232),
el cual se ha debido estudiar con anterioridad para conocer su funcionamiento.
92
Conclusiones
93
94
Cdigo Fuente
Cdigo Fuente
CDIGO FUENTE
10.1 Introduccin
En este apartadao incluiremos el cdigo fuente redactado para la ejecucin de la
aplicacin.
Presentamos el cdigo comentado extensamente haciendo referencia a las
particularidades y evolucin del mismo.
10.2 Cdigo
Divideremos el cdigo en 2 partes: mdulos de formulario y mdulos estndar.
La estructura de presentacin ser la compuesta por el diseo grfico de cada uno
de los mdulos de formulario (dado el carcter visual del lenguaje de programacin
utilizado,VISUAL BASIC) y el cdigo asociado a dicho mdulo y a los controles que lo
componen.
En los mdulos estndar se incluirn las acciones y funciones generales, que
pueden ser ejecutadas desde cualquier mdulo de formulario.
95
Cdigo Fuente
96
Cdigo Fuente
97
Cdigo Fuente
Combo_Parity.Text = parity
Combo_DataBits.Text = databits
Combo_StopBits.Text = stopbits
End Sub
************************************************************************
'SE GUARDAN LOS CAMBIOS EFECTUADOS EN LAS LISTAS DESPLEGABLES
Private Sub cmdSaveChanges_Click()
If MSComm1.PortOpen = True Then
'confirmacin si puerto esta abierto
MsgBox ("cierra primero el puerto")
Exit Sub
'salida de la rutina
End If
'se guardan los cambios en las variables correspondientes
port = Mid(Combo_Port.Text, 4)
baud = Combo_Baudrate.Text
parity = Combo_Parity.Text
databits = Combo_DataBits.Text
stopbits = Combo_StopBits.Text
End Sub
************************************************************************
'SE CARGA LA CONFIGURACIN PREDETERMINADA(RECOMENDADA POR EL FABRICANTE)
Private Sub cmdDefaultConfig_Click()
Combo_Port.Text = "COM1"
Combo_Baudrate.Text = "9600"
Combo_Parity.Text = "NONE"
Combo_DataBits.Text = "8"
Combo_StopBits.Text = "1"
End Sub
************************************************************************
'SE CONFIGURA Y SE ABRE EL PUERTO SERIE. SE TRATAN LOS POSIBLES ERRORES
Private Sub cmdOpenPort_Click()
On Error GoTo treat_errors
'tratamiento de errores
PORT_CONFIG
'configuracin del puerto serie
MSComm1.PortOpen = True
'abrimos el puerto
cmdOK.Enabled = True
'permitimos el acceso al siguiente form
GoTo salir
treat_errors:
MsgBox ("Error al intentar abrir COM") 'mensajes de error
detectados
MsgBox ("Error detectado por Visual Basic: " + Err.Description)
salir:
End Sub
************************************************************************
'CONFIGURACIN DEL PUERTO SERIE
Private Sub PORT_CONFIG()
Select Case parity
Case "NONE"
parity = "N"
Case "ODD"
parity = "O"
Case "EVEN"
parity = "E"
End Select
seleccin de paridad
With MSComm1
se configura Mscomm
.InputLen = 0
.InputMode = comInputModeText
98
Cdigo Fuente
.RThreshold = 1
.SThreshold = 1
.Handshaking = comNone
.InBufferSize = 1024
.OutBufferSize = 512
.Settings = baud + "," + parity + "," + databits + "," + stopbits
.CommPort = port
End With
End Sub
************************************************************************
'SE CIERRA EL PUERTO SERIE. SE TRATAN LOS POSIBLES ERRORES
Private Sub cmdClosePort_Click()
On Error GoTo treat_errors
'tratamiento de errores
MSComm1.PortOpen = False
'se cierra puerto serie
cmdOK.Enabled = False
'botn OK deshabilitado
GoTo salir
treat_errors:
MsgBox ("Error al intentar cerrar COM")
'mensajes de error
detectados
MsgBox ("Error detectado por Visual Basic: " + Err.Description)
salir:
End Sub
************************************************************************
'ENVO DE LA TRAMA DE MODO DE NOTIFICACIN DE ERRORES Y SE TRATA LA
RESPUESTA OBTENIDA + ENVO DE LA TRAMA DE CONTROL DEL CDIGO PIN
Private Sub cmdOK_Click()
'trama MOBILE_EQUIPMENT_ERROR,selecciona el modo de anuncio de errores
str = "AT+CMEE=2" + vbCr
TRAMA
'envo
MOBILE_EQUIPMENT_ERROR
'tratamiento de la respuesta
PIN_CONTROL
'envo AT+CPIN? + tratamiento respuesta
End Sub
************************************************************************
'SALIDA DEL PROGRAMA
Private Sub cmdEXIT_Click()
If MSComm1.PortOpen = True Then _
MSComm1.PortOpen = False
'se cierra el puerto si esta abierto
End
End Sub
************************************************************************
'CIERRE DEL FORMULARIO
Private Sub Form_Unload(Cancel As Integer)
SAVE_SETTINGS
End Sub
************************************************************************
'SE SALVAN LOS CAMBIOS EFECTUADOS EN LA CONFIGURACIN DEL PUERTO SERIE EN
EL REGISTRO DE WINDOWS
Private Sub SAVE_SETTINGS()
SaveSetting App.Title, "Mscomm", "puerto", port
SaveSetting App.Title, "Mscomm", "baudios", baud
SaveSetting App.Title, "Mscomm", "paridad", parity
SaveSetting App.Title, "Mscomm", "bitscar", databits
SaveSetting App.Title, "Mscomm", "bitsparada", stopbits
End Sub
************************************************************************
99
Cdigo Fuente
Case comEvRing
'INCOMPATIBILIDAD VISUAL BASIC - ERICSSON GM29
Case comEvCD
MsgBox ("Cambio en la lnea CD.")
Case comEvCTS
MsgBox ("Cambio en la lnea CTS.")
Case comEvDSR
MsgBox ("Cambio en la lnea DSR.")
' Errores
Case comBreak
MsgBox ("Se ha recibido una interrupcin.")
Case comEventFrame
MsgBox ("Error de trama.")
Case comEventOverrun
MsgBox ("Puerto desbordado. No se ley un carcter desde el
hardware antes de llegar otro carcter y el primero se ha perdido!!")
Case comEventRxOver
MsgBox ("Desbordamiento del bfer de recepcin.No hay espacio
suficiente en el bfer de recepcin.")
Case comEventRxParity
MsgBox ("Error de paridad.")
Case comEventTxFull
MsgBox ("Bfer de transmisin lleno. Se ha intentado colocar un
carcter ms en la cola mientras el bfer de transmisin estaba lleno.")
Case comEventDCB
MsgBox ("Error inesperado al recuperar el DCB.")
End Select
End Sub
************************************************************************
100
Cdigo Fuente
101
Cdigo Fuente
102
Cdigo Fuente
103
Cdigo Fuente
104
Cdigo Fuente
Unload Form15
Unload Form16
Unload Form17
Unload Form18
Unload Form19
Unload Form20
End Sub
************************************************************************
'posicin libre
'directorio actual
'CONFIGURACIN.alb = fichero
105
Cdigo Fuente
106
Cdigo Fuente
107
Cdigo Fuente
108
Cdigo Fuente
109
Cdigo Fuente
110
Cdigo Fuente
111
Cdigo Fuente
112
Cdigo Fuente
ruta = CurDir
'directorio actual
ruta = ruta + "\CSD_RECEIVE.alb "
'CSD_RECEIVE.alb nombre del
fichero
Open ruta For Output As #NUMFICH
'se abre para escritura
Write #NUMFICH, Text_CSDReceived.Text
'se escriben los datos recibidos
Close #NUMFICH
'cierre del fichero
End Sub
************************************************************************
'ACCESO A LA CONFIGURACIN DE LA TRANSFERENCIA CSD
Private Sub cmdCSDconfig_Click()
Unload Form19
Form07.Visible = True
End Sub
************************************************************************
'ACCESO AL MEN PRINCIPAL
Private Sub cmdMEN_Click()
Form04.Visible = True
End Sub
************************************************************************
113
Cdigo Fuente
114
Cdigo Fuente
= "2400 bps
V.22bis"
= "4800 bps
V.32"
= "9600 bps
V.32"
= "9600 bps
V.34"
= "19200 bps
V.34"
= "2400 bps
V.110 (ISDN)"
= "4800 bps
V.110 (ISDN)"
= "9600 bps
V.110 (ISDN)"
= "14400 bps
V.110 (ISDN)"
= "19200 bps
V.110 (ISDN)"
= "28800 bps
V.110 (ISDN)"
= "38400 bps
V.110 (ISDN)"
= "48000 bps
V.110 (ISDN)"
= "56000 bps
V.110 (ISDN)"
'modo de llamada
If config.dialling = "ATT" Then
Opt_Tone.Value = True
Else
Opt_Pulse.Value = True
End If
'tonos
'pulsos
'modo manual
'modo automatico,
'n de rings
'carcter de escape
Text_EscapeSEQ.Text = config.escape_sequence
End Sub
************************************************************************
'DESHABILITAR CONTROLES
'(de este modo no se pueden modificar valores involuntariamente)
Private Sub DISABLE_FRAMES()
FrmMODE_DIALLING.Enabled = False
cmdOKMODEDIAL.Enabled = False
FrmANSWER.Enabled = False
cmdOKANSWER.Enabled = False
FrmBEARER_SERVICE.Enabled = False
cmdOKBEARSERV.Enabled = False
FrmESCAPESEQ.Enabled = False
cmdOKESCSEQ.Enabled = False
115
Cdigo Fuente
End Sub
************************************************************************
'MODIFICAR MODO DE RESPUESTA A UNA LLAMADA ENTRANTE
Private Sub cmdModifyANSWER_Click()
FrmANSWER.Enabled = True
cmdOKANSWER.Enabled = True
End Sub
************************************************************************
'SELECCIN DE MODO MANUAL
Private Sub Opt_Manual_Answer_Click()
Text_AutoRings.Text = ""
config.answer_mode = "0"
End Sub
************************************************************************
'SELECCIN DE MODO AUTOMATICO
Private Sub Opt_Auto_Answer_Click()
config.answer_mode = Text_AutoRings.Text
'n rings
End Sub
************************************************************************
'CAPTACIN DEL VALOR DE RINGS
Private Sub Text_AutoRings_Change()
config.answer_mode = Text_AutoRings.Text
'n rings
End Sub
************************************************************************
'NMERO DE RINGS ES UN VALOR NUMRICO DEL 1 AL 7
'TAMBIN SE PERMITE LA TECLA BORRAR (8)
Private Sub Text_AutoRings_KeyPress(KeyAscii As Integer)
If (KeyAscii <> 8) And (KeyAscii < 49 Or KeyAscii > 55) Then
KeyAscii = 0
End If
End Sub
************************************************************************
'VALIDAR MODO DE RESPUESTA A UNA LLAMADA ENTRANTE
Private Sub cmdOKANSWER_Click()
FrmANSWER.Enabled = False
cmdOKANSWER.Enabled = False
'trama AUTOMATIC ANSWER CONTROL, configura modo de respuesta de llamada
str = "ATS0=" + config.answer_mode + vbCr
TRAMA
'envo
AUTOMATIC_ANSWER_CONTROL
'tratamiento de la respuesta
End Sub
************************************************************************
'MODIFICAR MODO DE LLAMADA
Private Sub cmdModifyMODEDIAL_Click()
FrmMODE_DIALLING.Enabled = True
cmdOKMODEDIAL.Enabled = True
End Sub
************************************************************************
'SELECCIN DE LLAMADA POR PULSOS
Private Sub Opt_Pulse_Click()
config.dialling = "ATP"
116
Cdigo Fuente
End Sub
************************************************************************
'SELECCIN DE LLAMADA POR TONOS
Private Sub Opt_Tone_Click()
config.dialling = "ATT"
End Sub
************************************************************************
'VALIDAR MODO DE LLAMADA
Private Sub cmdOKMODEDIAL_Click()
FrmMODE_DIALLING.Enabled = False
cmdOKMODEDIAL.Enabled = False
'trama SELECT DIALLING, selecciona el modo de llamada
str = config.dialling + vbCr
TRAMA
'envo
SELECT_DIALLING
'tratamiento de la respuesta
End Sub
************************************************************************
'MODIFICAR VELOCIDAD DE CONEXIN
Private Sub cmdModifyBEARSERV_Click()
FrmBEARER_SERVICE.Enabled = True
cmdOKBEARSERV.Enabled = True
End Sub
************************************************************************
'SELECCIN DE VELOCIDAD DE CONEXIN
Private Sub combo_speed_connection_Click()
Select Case combo_speed_connection.Text
Case "AUTO SELECTION OF BAUDRATE"
config.bearer_Service = "0"
Case "2400 bps V.22bis"
config.bearer_Service = "4"
Case "4800 bps V.32"
config.bearer_Service = "6"
Case "9600 bps V.32"
config.bearer_Service = "7"
Case "9600 bps V.34"
config.bearer_Service = "12"
Case "19200 bps V.34"
config.bearer_Service = "15"
Case "2400 bps V.110 (ISDN)"
config.bearer_Service = "68"
Case "4800 bps V.110 (ISDN)"
config.bearer_Service = "70"
Case "9600 bps V.110 (ISDN)"
config.bearer_Service = "71"
Case "14400 bps V.110 (ISDN)"
config.bearer_Service = "75"
Case "19200 bps V.110 (ISDN)"
config.bearer_Service = "79"
Case "28800 bps V.110 (ISDN)"
config.bearer_Service = "80"
Case "38400 bps V.110 (ISDN)"
config.bearer_Service = "81"
Case "48000 bps V.110 (ISDN)"
config.bearer_Service = "82"
Case "56000 bps V.110 (ISDN)"
config.bearer_Service = "83"
117
Cdigo Fuente
End Select
End Sub
************************************************************************
'VALIDAR VELOCIDAD DE CONEXIN
Private Sub cmdOKBEARSERV_Click()
FrmBEARER_SERVICE.Enabled = False
cmdOKBEARSERV.Enabled = False
'trama SELECT BEARER SERVICE, configura la velocidad de la conexin
str = "AT+CBST=" + config.bearer_Service + ",0,1" + vbCr
TRAMA
'envo
SELECT_BEARER_SERVICE
'tratamiento de la respuesta
End Sub
************************************************************************
'MODIFICAR CARCTER DE LA SECUENCIA DE ESCAPE
Private Sub cmdModifyESCSEQ_Click()
FrmESCAPESEQ.Enabled = True
cmdOKESCSEQ.Enabled = True
End Sub
************************************************************************
'CONFIGURACIN DEL CARCTER DE LA SECUENCIA DE ESCAPE
Private Sub Text_EscapeSEQ_Change()
config.escape_sequence = Text_EscapeSEQ.Text
End Sub
************************************************************************
'CARCTER DE ESCAPE ES UN VALOR NUMRICO. SE PERMITE LA TECLA BORRAR (8)
Private Sub Text_EscapeSEQ_KeyPress(KeyAscii As Integer)
If (KeyAscii <> 8) And (KeyAscii < 48 Or KeyAscii > 57) Then
KeyAscii = 0
End If
End Sub
************************************************************************
'VALIDAR CARCTER DE LA SECUENCIA DE ESCAPE
Private Sub cmdOKESCSEQ_Click()
FrmESCAPESEQ.Enabled = False
cmdOKESCSEQ.Enabled = False
'trama ESCAPE SEQUENCE CHARACTER, configura el carcter de escape del
'modo online data mode
str = "ATS2=" + config.escape_sequence + vbCr
TRAMA
'envo
ESCAPE_SEQUENCE_CHARACTER
'tratamiento de la respuesta
End Sub
************************************************************************
'RETORNA AL FORMULARIO CSD
Private Sub cmdReturnCSD_Click()
Form06.Visible = True
End Sub
************************************************************************
118
Cdigo Fuente
119
Cdigo Fuente
End Sub
************************************************************************
'INSERTAR NUEVA ENTRADA EN LA AGENDA
Private Sub cmdAddToPhoneBook_Click()
Form12.Visible = True
End Sub
************************************************************************
'SALIR DE LA AGENDA
Private Sub cmdSALIR_Click()
If Form06.Visible = True Or Form17.Visible = True Then
Unload Me
cerrar form08 y volver a CSD o envo SMS
Else
Form04.Visible = True
'ir al MEN principal
End If
End Sub
************************************************************************
120
Cdigo Fuente
SE CARGA EL FORMULARIO
Private Sub Form_Load()
DisableX Form09
121
Cdigo Fuente
122
Cdigo Fuente
'SALIR DE LA BSQUEDA
Private Sub cmdExitSearch_Click()
Unload Form11
If Form06.Visible = True Or Form17.Visible = True Then
Unload Me
'si proviene de CSD O de envo SMS, cerrar form
Else
Form04.Visible = True
'sino mostrar MEN principal
End If
End Sub
************************************************************************
123
Cdigo Fuente
SE CARGA EL FORMULARIO
Private Sub Form_Load()
DisableX Form11
'se deshabilita el botn CERRAR del formulario
End Sub
************************************************************************
124
Cdigo Fuente
'variables locales
position = Text_SavePosition.Text
'posicin en la agenda
number = Chr(34) + Text_SaveNumber.Text + Chr(34)
'num de telf
name = Chr(34) + Text_SaveName.Text + Chr(34)
'nombre
trama PHONEBOOK WRITE, aade un nuevo registro en la agenda de telf
str = "AT+CPBW=" + position + "," + number + ",," + name + vbCr
TRAMA
'envo
PHONEBOOK_WRITE
'tratamiento de la respuesta
End Sub
************************************************************************
'LA POSICIN EN LA AGENDA ES UN VALOR NUMRICO.
'TAMBIN SE PERMITE LA TECLA BORRAR (8)
Private Sub Text_SavePosition_KeyPress(KeyAscii As Integer)
If (KeyAscii <> 8) And (KeyAscii < 48 Or KeyAscii > 57) Then
KeyAscii = 0
End If
End Sub
************************************************************************
'EL NMERO DE TELFONO ES UN VALOR NUMRICO. TAMBIN SE PERMITE LA TECLA
BORRAR (8) Y EL PREFIJO + (43)
Private Sub Text_SaveNumber_KeyPress(KeyAscii As Integer)
125
Cdigo Fuente
126
Cdigo Fuente
127
Cdigo Fuente
128
Cdigo Fuente
'VISUALIZAR CONFIGURACIN
Private Sub VIEW_CONFIGURATION()
'Almacenamiento de mensajes
'3 MEMORIAS:mem1,mem2,mem3.2 TIPOS: SM(SIM), ME(GM29)
If config.mem1 = Chr(34) + "SM" + Chr(34) Then
Optm1SM.Value = True
Else
Optm1ME.Value = True
End If
If config.mem2 = Chr(34) + "SM" + Chr(34) Then
Optm2SM.Value = True
Else
Optm2ME.Value = True
End If
If config.mem3 = Chr(34) + "SM" + Chr(34) Then
Optm3SM.Value = True
Else
Optm3ME.Value = True
End If
'Numero del Centro de servicio de mensajes
Select Case config.SERV_CENT
Case "+34607003110"
Opt_Vodafone.Value = True
Case "+34609090909"
Opt_Movistar.Value = True
Case "+34656000311"
Opt_Amena.Value = True
Case Else
Opt_Other.Value = True
End Select
'Formato del mensaje
If config.MsgFormat = "1" Then
OptTEXT.Value = True
Else
OptPDU.Value = True
End If
'TEXT
'PDU
129
Cdigo Fuente
frmMEM2.Enabled = True
frmMEM3.Enabled = True
cmdOKPREFMES.Enabled = True
End Sub
************************************************************************
'SELECCIN DE ME PARA LA MEMORIA 1
Private Sub Optm1ME_Click()
config.mem1 = Chr(34) + "ME" + Chr(34)
End Sub
************************************************************************
'SELECCIN DE SM PARA LA MEMORIA 1
Private Sub Optm1SM_Click()
config.mem1 = Chr(34) + "SM" + Chr(34)
End Sub
************************************************************************
'SELECCIN DE ME PARA LA MEMORIA 2
Private Sub Optm2ME_Click()
config.mem2 = Chr(34) + "ME" + Chr(34)
End Sub
************************************************************************
'SELECCIN DE SM PARA LA MEMORIA 2
Private Sub Optm2SM_Click()
config.mem2 = Chr(34) + "SM" + Chr(34)
End Sub
************************************************************************
'SELECCIN DE ME PARA LA MEMORIA 3
Private Sub Optm3ME_Click()
config.mem3 = Chr(34) + "ME" + Chr(34)
End Sub
************************************************************************
'SELECCIN DE SM PARA LA MEMORIA 2
Private Sub Optm3SM_Click()
config.mem3 = Chr(34) + "SM" + Chr(34)
End Sub
************************************************************************
'VALIDAR CAMBIOS
Private Sub cmdOKPREFMES_Click()
frmMEM1.Enabled = False
'deshabilitar controles
frmMEM2.Enabled = False
frmMEM3.Enabled = False
'trama PREFERRED MESSAGE STORAGE,selecciona las diferentes memorias para
'los diferentes acciones con los mensajes. Se trata respuesta obtenida.
PREFERRED_MSG_STORAGE
cmdOKPREFMES.Enabled = False
End Sub
************************************************************************
'MODIFICAR NMERO DEL CENTRO DE SERVICIO
'se habilitan los controles correspondientes
Private Sub cmdModifySERVCENT_Click()
FrmSERV_CENT2.Enabled = True
cmdOKSERVCENT.Enabled = True
End Sub
************************************************************************
130
Cdigo Fuente
131
Cdigo Fuente
132
Cdigo Fuente
133
Cdigo Fuente
134
Cdigo Fuente
'BORRAR MENSAJE
Private Sub cmdDELETE_Click()
Dim index2 As String
index2 = CStr(index)
'Conversion de tipo integer a tipo string
'trama DELETE MESSAGE, borra un mensaje de una posicin determinada
str = "AT+CMGD=" + index2 + vbCr
TRAMA
'envo
DELETE_MESSAGE
'tratamiento de la respuesta
End Sub
************************************************************************
'REENVIAR MENSAJE
Private Sub cmdFORWARD_Click()
Form17.Visible = True
End Sub
************************************************************************
'RETORNAR AL MEN DE MENSAJES SMS
Private Sub CmdSMSMEN_Click()
Form13.Visible = True
End Sub
************************************************************************
135
Cdigo Fuente
136
Cdigo Fuente
'ENVIAR MENSAJE
Private Sub cmdSendSMS_Click()
'variables locales
Dim DestinationNumber As String
Dim index2 As String
'nmero de telfono
'posicin
137
Cdigo Fuente
138
Cdigo Fuente
DisableX Form18
End Sub
************************************************************************
'LEER MENSAJE
Private Sub cmdReadNOW_Click()
Form15.Visible = True
index = 1
'posicin de lectura
'trama READ MESSAGE, envo de la trama y lectura del mensaje SMS
READ_MESSAGE (True)
'true=sentido de lectura hacia adelante
End Sub
************************************************************************
139
Cdigo Fuente
140
Cdigo Fuente
141
Cdigo Fuente
142
Cdigo Fuente
de variables publicas
str As String
index As Integer
online_data As Boolean
strBUFFER As String
RINGS As Integer
timeout_cont As Integer
timeout As Boolean
'preparacion de tramas
'lectura de sms
'modo online o comand
'contiene datos del buffer
'nmero de rings (llamadas)
'contador de segundos (timeout)
'fuera de tiempo?
143
Cdigo Fuente
144
Cdigo Fuente
SIM
PIN,
145
Cdigo Fuente
straux = strBUFFER
straux = Right(straux, 8)
que
End Sub
************************************************************************
146
Cdigo Fuente
straux = strBUFFER
straux = Right(straux, 8)
ACERCA
DEL
MDEM",
End Sub
************************************************************************
147
LLAMADA
INTERRUMPE
Cdigo Fuente
UN
INTENTO
DE
ESTABLECER
UNA
End Sub
************************************************************************
'SE PASA DE MODO EN LINEA A MODO COMANDOS
Public Sub COMMAND_MODE()
'de este modo no enviamos al interlocutor la peticin de pasar a modo
comandos
online_data = False
strBUFFER = ""
'se prepara la trama +++AT, siendo + el carcter de escape
str = Chr(config.escape_sequence) + Chr(config.escape_sequence) +
Chr(config.escape_sequence) + "AT" + vbCr
SEND_COMMAND
INI_TIMER_OUT
148
Cdigo Fuente
149
Cdigo Fuente
ya
que
'siguiente
'anterior
150
Cdigo Fuente
151
Cdigo Fuente
152
Cdigo Fuente
153
Cdigo Fuente
Case "OK"
MsgBox "EL CDIGO PUK INTRODUCIDO ES CORRECTO", vbOKOnly +
vbInformation
Form04.Visible = True
Case "+CME ERROR: Incorrect password"
MsgBox "EL CDIGO PUK INTRODUCIDO ES INCORRECTO", vbOKOnly +
vbExclamation
Form03.TEXT_PUK = ""
Form03.TEXT_PIN = ""
Case "BLOCKED"
MsgBox "EL CDIGO PUK INTRODUCIDO ES INCORRECTO." + vbCrLf + _
"HA BLOQUEADO LA TARJETA.CONSULTE A SU DISTRIBUIDOR",
vbOKOnly + vbCritical
End
End Select
strBUFFER = ""
End Sub
'************************************************************************
154
Cdigo Fuente
155
Cdigo Fuente
Case "ERROR"
MsgBox "ERROR AL INTENTAR BORRAR EL SMS. INTNTELO DE NUEVO",
vbOKOnly + vbCritical
End Select
strBUFFER = ""
End Sub
'************************************************************************
156
Cdigo Fuente
157
Cdigo Fuente
Case "OK"
MsgBox "NOTIFICACION DE MENSAJES CONFIGURADA CORRECTAMENTE",
vbOKOnly + vbInformation
Case "ERROR"
MsgBox "ERROR AL CONFIGURAR LA NOTIFICACION DE MENSAJES", vbOKOnly
+ vbCritical
TRAMA
se vuelve a enviar
End Select
strBUFFER = ""
End Sub
'************************************************************************
158
Cdigo Fuente
159
Cdigo Fuente
'FUNCION QUE DEVUELVE EL TEXTO QUE NOS INTERESA DISCRIMINAR DE TODA LAS
'RESPUESTA OBTENIDA
'LEE A PARTIR DE LA TRAMA ENVIADA + CRLF HASTA QUE ENCUENTRA LOS
'CARACTERES FINALES CRLF
'DE ESTE MODO RETORNA EL MENSAJE OK, ERROR, CONNECT, BUSY,...
Public Function RESULT_CODE()
Dim Str2 As String
'declaracin de variables
Dim Str3 As String
Dim straux1 As String
Dim straux2 As String
Str2 = vbCr + vbCrLf
Str3 = vbCrLf
'tramas de comparacin
160
Cdigo Fuente
nCount = GetMenuItemCount(hMenu)
161
Cdigo Fuente
de constantes para
NIM_ADD = &H0
NIM_MODIFY = &H1
NIM_DELETE = &H2
162
163
Cdigo Fuente
11. ANEXOS
164
Anexo
Anexo
ANEXOS
11.1 Manual GM29
El GM29 Integrators Manual se adjunta en el CD-ROM anexo.
Este manual se divide en 3 sub-apartados en los que se trata:
Descripcin general del mdem
Integracin del mdem
Comandos AT
165
12. BIBLIOGRAFA
166
Bibliografa
Bibliografa
BIBLIOGRAFA
[1] Sony Ericsson.- GM29 Integrators Manual
200
[2] Seminario MATRIX:
Seminario 2003 GSM-GPRS M2M SonyEricsson-Telefonica Movistar
ABRIL 2003
[3] C.Tavernier. - Mdems. Tcnica y Realizacin.
Ed. Paraninfo 1991
[4] Enrique Maldonado Rollizo. - Comunicaciones con el PC. Mdems
Ed. Anaya Multimedia 1994
[5] Jorge Vasconcelos Santillan. - Manual de construccin de programas
Mxico 2000
[6] La Biblia de Visual Basic 6.0
Ed. Anaya Multimedia 199
[7] Juan Diego Gutierrez Gallardo.- Visual Basic 6
Ed. Anaya Multimedia 2000
[8] Fco. Javier Ceballos.- Enciclopedia de Microsoft Visual Basic 6.0.
Ed. Ra-Ma 1999.
[9] Francisco Charte Ojeda.- Programacin con Visual Basic 6.0
Ed. Anaya Multimedia 1998
[10] SONY-ERICSSON GM29
http://www.sonyericsson.com/m2m/spg.jsp?page=start
[11] Comunicaciones GSM
http://www.auladatos.movistar.com/Aula-de-Datos/Tutoriales-y-Documentacion
[12] Universo Digital Captulo 12.9. - EL PUERTO SERIE: UART 8250.
http://atc.ugr.es/docencia/udigital/1209.html
[13] MSDN Library Visual Studio 6.0 y la ayuda online
http://msdn.microsoft.com/library/
[14] Guillermo Llanderas.- Curso sobre Visual Basic
http://www.elguille.info/indice.asp
167