CarApp
Notificaciones a celulares al detectar la alarma del auto activada.
 Todo Estructuras de Datos Archivos Funciones Variables Enumeraciones Valores de enumeraciones 'defines'
Referencia del Archivo gsm.c

Módulo que maneja la comunicación del micro con el módem. En este módulo se implementan las máquinas de estados para realizar llamadas, enviar mensajes y configurar el modem. Además, se definen los celulares de notificación junto con las funciones necesarias para modificarlos y consultarlos. Define un proceso que filtra los comandos recibidos desde la Uart. Más...

#include "uart.h"
#include "gsm.h"
#include "shell.h"
#include "timer.h"
#include "car-app.h"
#include <string.h>

Ir al código fuente de este archivo.

Enumeraciones

enum  sms_state { SEND_PHONE_NUMBER = 1, SEND_TEXT }
 Define los estados de la máquina de estados encargada de enviar los SMS. Más...
enum  state_call { DO_CALL = 1, WAIT_ANSWER }
 Define los estados de la máquina de estados encargada de realizar llamadas de voz. Más...
enum  conf_state {
  ATEO = 1, CMGF, CNMI, CLIP,
  END_C
}
 Define los estados de la máquina de estados encargada de configurar el módem. Más...

Funciones

void send_sms (char *phone_number, char *msj_text)
 Prepara el mensaje a ser enviado.
void continue_sending_sms ()
 Máquina de estados que termina de enviar el sms preparado por send_sms(). Envía información al modem gsm, y espera respuesta del mismo para continuar con el flujo de información esperado.
void call ()
 Máquina de estados encargada de realizar las llamadas. Envía comando AT para realizar la llamada y espera que la llamada finalice.
void config_modem ()
 Esta función es la máquina de estados que realiza la configuración inicial del modem. Configura el modem en modo texto, que reenvíe mensajes recibidos por el puerto serie, que no mande ID de llamante, y que no mande por el puerto serial un eco de lo recibido por el mismo.
void stream_deco ()
 Función que se encarga de filtrar lo obtenido por la uart, para luego llamar al proceso correspondiente. Si recibe un comando se encarga de ejecutar el shell. Si lo que recibe no es un comando, no modifica lo recibido y llama a la máquina de estados necesaria para continuar con el flujo. No recibe parámetros de entrada, sin embargo, modifica el buffer de recepción.
void set_first_phone (char *cel)
 Configura el celular principal.
void set_second_phone (char *cel)
 Configura el celular secundario.
char * get_first_phone ()
 Función pública que retorna el celular primario.
char * get_second_phone ()
 Función pública que retorna el celular secundario.

Variables

int estado
 Variable tipo int que indica el estado del envío del SMS.
int estate_config_modem = ATEO
 Variable tipo int que indica el estado en que se encuentra la configuración del módem.
int call_state = DO_CALL
 Variable tipo int que indica el estado de la llamada de voz.
char msj_text [70]
 Variable tipo arreglo de caracteres usada para guardar el texto del SMS a enviar.
char recibed_info [70]
 Variable tipo arreglo de caracteres usada para almacenar el mensaje de texto que se recibe.
char text_to_send [100]
 Variable tipo arreglo de caracteres donde se guarda el texto a enviar al módem.
char * modem_response
 Variable tipo char* usada para almacenar la respuesta del módem.
buffer RXbuffer
 Variable tipo buffer para la recepción.

Descripción detallada

Módulo que maneja la comunicación del micro con el módem. En este módulo se implementan las máquinas de estados para realizar llamadas, enviar mensajes y configurar el modem. Además, se definen los celulares de notificación junto con las funciones necesarias para modificarlos y consultarlos. Define un proceso que filtra los comandos recibidos desde la Uart.

Autor:
Juan Martín Ortega, Ramiro Barrón, Andrea Cukerman
Fecha:
Junio 2012

Definición en el archivo gsm.c.


Documentación de las enumeraciones

enum conf_state

Define los estados de la máquina de estados encargada de configurar el módem.

Valores de enumeraciones:
ATEO 
CMGF 
CNMI 
CLIP 
END_C 

Definición en la línea 54 del archivo gsm.c.

enum sms_state

Define los estados de la máquina de estados encargada de enviar los SMS.

Valores de enumeraciones:
SEND_PHONE_NUMBER 
SEND_TEXT 

Definición en la línea 42 del archivo gsm.c.

enum state_call

Define los estados de la máquina de estados encargada de realizar llamadas de voz.

Valores de enumeraciones:
DO_CALL 
WAIT_ANSWER 

Definición en la línea 48 del archivo gsm.c.


Documentación de las funciones

void call ( )

Máquina de estados encargada de realizar las llamadas. Envía comando AT para realizar la llamada y espera que la llamada finalice.

Definición en la línea 197 del archivo gsm.c.

void config_modem ( )

Esta función es la máquina de estados que realiza la configuración inicial del modem. Configura el modem en modo texto, que reenvíe mensajes recibidos por el puerto serie, que no mande ID de llamante, y que no mande por el puerto serial un eco de lo recibido por el mismo.

Definición en la línea 236 del archivo gsm.c.

void continue_sending_sms ( )

Máquina de estados que termina de enviar el sms preparado por send_sms(). Envía información al modem gsm, y espera respuesta del mismo para continuar con el flujo de información esperado.

Definición en la línea 151 del archivo gsm.c.

char * get_first_phone ( )

Función pública que retorna el celular primario.

Devuelve:
Celular primario.

Definición en la línea 384 del archivo gsm.c.

char * get_second_phone ( )

Función pública que retorna el celular secundario.

Devuelve:
Celular secundario.

Definición en la línea 396 del archivo gsm.c.

void send_sms ( char *  phone_number,
char *  msj_text 
)

Prepara el mensaje a ser enviado.

Parámetros:
phone_numberDestinatario del mensaje.
msj_textContenido del mensaje.

Definición en la línea 131 del archivo gsm.c.

void set_first_phone ( char *  cel)

Configura el celular principal.

Parámetros:
celCelular principal.

Definición en la línea 344 del archivo gsm.c.

void set_second_phone ( char *  cel)

Configura el celular secundario.

Parámetros:
celCelular secundario.

Definición en la línea 364 del archivo gsm.c.

void stream_deco ( )

Función que se encarga de filtrar lo obtenido por la uart, para luego llamar al proceso correspondiente. Si recibe un comando se encarga de ejecutar el shell. Si lo que recibe no es un comando, no modifica lo recibido y llama a la máquina de estados necesaria para continuar con el flujo. No recibe parámetros de entrada, sin embargo, modifica el buffer de recepción.

Definición en la línea 307 del archivo gsm.c.


Documentación de las variables

call_state = DO_CALL

Variable tipo int que indica el estado de la llamada de voz.

Definición en la línea 89 del archivo gsm.c.

estado

Variable tipo int que indica el estado del envío del SMS.

Definición en la línea 77 del archivo gsm.c.

estate_config_modem = ATEO

Variable tipo int que indica el estado en que se encuentra la configuración del módem.

Definición en la línea 83 del archivo gsm.c.

modem_response

Variable tipo char* usada para almacenar la respuesta del módem.

Definición en la línea 113 del archivo gsm.c.

msj_text[70]

Variable tipo arreglo de caracteres usada para guardar el texto del SMS a enviar.

Definición en la línea 95 del archivo gsm.c.

recibed_info[70]

Variable tipo arreglo de caracteres usada para almacenar el mensaje de texto que se recibe.

Definición en la línea 101 del archivo gsm.c.

RXbuffer

Variable tipo buffer para la recepción.

Definición en la línea 79 del archivo uart.c.

text_to_send[100]

Variable tipo arreglo de caracteres donde se guarda el texto a enviar al módem.

Definición en la línea 107 del archivo gsm.c.