CarApp
Notificaciones a celulares al detectar la alarma del auto activada.
 Todo Estructuras de Datos Archivos Funciones Variables Enumeraciones Valores de enumeraciones 'defines'
car-app.c
Ir a la documentación de este archivo.
1 //******************************************************************************
2 // Nombre: car-app.c
3 // Versión: 1.0
4 // Descripción: Módulo que contiene el programa principal del sistema. Desde
5 // su bucle infinito se van chequando las banderas e invocando
6 // según estas a las funciones pertinentes de los diferentes módulos.
7 // Autores: Juan Martín Ortega, Ramiro Barrón, Andrea Cukerman
8 // IIE, Facultad de Ingeniería, UdelaR
9 // Uruguay
10 // Fecha: Junio 2012
11 //******************************************************************************
12 
22 #include <string.h>
23 #include "gsm.h"
24 #include "uart.h"
25 #include "shell.h"
26 #include "control_alarma.h"
27 #include "car-app.h"
28 #include "timer.h"
29 
30 /*
31  * Declaración de variables Privadas
32  */
33 
38 static int control_flag = 0;
39 
44 static int flagActive = 1;
45 
50 static int flagConfigurando;
51 
56 static int sendingFlag = 0;
57 
62 static int continue_sending = 0;
63 
68 static int calling = 0;
69 
74 static int continue_calling = 0;
75 
80 static int continue_config;
81 
82 
83 
88 void main()
89  {
90  WDTCTL = WDTPW + WDTHOLD; // Deshabilita watchdog
91  BCSCTL1 = CALBC1_1MHZ; // Calibra el Basic Clock System para trabajar a 1MHz
92  DCOCTL = CALDCO_1MHZ; // Calibra la frecuencia del DCO en 1MHz
93  conf_control_timer( ); // Configura el timer de control
94  conf_timeout(); // Configura el timer de timeout
95  conf_alarm_control(); // Configura el control de la alarma
96  init_UART(); // Inicializa UART
97  init_conf(); // Inicializa variables
98  __enable_interrupt(); // Habilita las interrupciones
99  set_first_phone("099939633"); // Configura celular prioritario
100  set_second_phone("099939633"); // Configura celular secundario
101  while(1) // Lazo infinito de aplicación
102  {
103  if(flagConfigurando && continue_config) // Verifica si está en modo de configuración
104  { //
105  continue_config = 0; //
106  config_modem(); //
107  } //
108  if(calling && continue_calling) //
109  { //
110  continue_calling = 0; //
111  call(); //
112  } //
113  if(sendingFlag && continue_sending && !calling) //
114  { //
115  continue_sending = 0; //
117  }// End GSM //
118  if(control_flag && !sendingFlag && !calling) //
119  { //
120  control_flag = 0; //
121  alarm_control(); //
122  }// End Control //
123  if(get_flagRX()) //
124  { //
125  reset_flagRX(); //
126  stream_deco(); //
127  }
128  }// End lazo infinito
129  }
130 
135 void init_conf()
136  {
137  flagConfigurando = 1; // Setea bandera de configuración
138  continue_config = 1; // Setea bandera de continuar configurando
139  }//end init_conf
140 
146  {
147  flagActive = 1; // Setea la bandera de notificación de alarma
148  }//end activate_alarm
149 
155  {
156  flagActive = 0; // Resetea la bandera de notificación de alarma
157  }//end deactivate_alarm
158 
165  {
166  return flagActive; // Retorna la bandera de control
167  }//end get_status_flag
168 
174  {
175  control_flag = 1; // Setea la bandera de control
176  }//end set_control_flag
177 
184  {
185  return sendingFlag; // Retorna la bandera que indica que se está enviando un SMS
186  }//end get_sendingFlag
187 
193  {
194  sendingFlag = 1; // Setea la bandera que indica que se está enviando un SMS
195  }//end set_sendingFlag
196 
202  {
203  calling = 1; // Setea la bandera de llamada en curso
204  }//end set_calling
205 
211  {
212  calling = 0; // Resetea la bandera que indica llamada en curso
213  }//end reset_calling
214 
220  {
221  continue_config = 1; // Setea la bandera para continuar configurando
222  }//end set_continue_config
223 
230  {
231  return flagConfigurando; // Retorna la bandera que indica que se está configurando
232  }//end get_flagConfigurando
233 
239  {
240  flagConfigurando = 1; // Setea la bandera que indica que se está configurando
241  }//end set_flagConfigurando
242 
248  {
249  flagConfigurando = 0; // Resetea la bandera que indica que se está configurando
250  }//end reset_flaConfigurando
251 
257  {
258  sendingFlag = 0; // Resetea la bandera de notificación de alarmaque indica que se está enviando un SMS
259  }//end reset_sendingFlag
260 
266  {
267  continue_sending = 1; // Setea la bandera para continuar con el envío de SMS
268  }//end set_continue_sending
269 
276  {
277  return calling; // Retorna la bandera que indica que se está realizando una llamada
278  }//end get_calling
279 
285  {
286  continue_calling = 1; // Setea la bandera de continuar llamada
287  }//end set_continue_calling