Programa Prototipo Setex

Dependencies:   BatteryPanel-prot-prod Slave-prot-prod mbed GraphicLCD-prot-prod ThermalPrinter-prot-prod LimitSwitches-prot-prod ParkingMeter-prot-prod

Files at this revision

API Documentation at this revision

Comitter:
pabloandres2906
Date:
Mon Jul 22 22:11:36 2019 +0000
Parent:
0:a1ce6cdc3045
Commit message:
Programa Prototipo produccion

Changed in this revision

Slave.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r a1ce6cdc3045 -r 4cdf726a3497 Slave.lib
--- a/Slave.lib	Tue Jun 04 19:53:44 2019 +0000
+++ b/Slave.lib	Mon Jul 22 22:11:36 2019 +0000
@@ -1,1 +1,1 @@
-https://os.mbed.com/users/williequesada/code/Slave-prot-prod/#016d66eb147e
+https://os.mbed.com/users/williequesada/code/Slave-prot-prod/#1141f1fb0761
diff -r a1ce6cdc3045 -r 4cdf726a3497 main.cpp
--- a/main.cpp	Tue Jun 04 19:53:44 2019 +0000
+++ b/main.cpp	Mon Jul 22 22:11:36 2019 +0000
@@ -224,7 +224,7 @@
 char Espacio[6];
 char Track2[38]="0000000000000000000000000000000000000";
 
-char Parquimetro[5]="1069";
+char Parquimetro[5]="1068";
 char Municipio[9]="San Jose";//"San Jose";
 char CodigoMunicipio[3]="01";
 
@@ -237,7 +237,7 @@
 char PapelDisponible[5]="0000";
 char Clave[4]= {'4','3','2','2'};
 char Progreso[3];
-int  Precio=300;
+int  Precio=420;
 int  Papel=4000;
 bool MantenimientoInterruption=0;
 uint8_t Message[] ="{\"municipio\":\"Santa Ana\",\"id\":1068,\"place\":\"2222\",\"time\":120,\"t2\":\"%5303105315252296=2108?\"}";
@@ -542,10 +542,10 @@
 {
     uint8_t PositionPlace=0;
     
-    sprintf(Espacio,"_    ");
+    sprintf(Espacio,"_    ");             //char Espacio que contiene la posicion para parquear
 
     Screen.Limits();
-    Screen.PutString(15,12,"Numero de espacio:");
+    Screen.PutString(15,12,"Numero de espacio:");            // interactua con el usuario a traves de la pantalla y el puerto usb
     Screen.PutChar(28,11,'!');
     Screen.PutString(15,34,Espacio);
     Screen.Show();
@@ -554,24 +554,24 @@
     Computer.printf("%s\n",Espacio);
 
     Inicio=BaseClock.read_ms();
-    Keypad_Init();
+    Keypad_Init();                                  //inicia teclado
     while(true) {
-        Fin=BaseClock.read_ms();
+        Fin=BaseClock.read_ms();      
         Transcurrido=Fin-Inicio;
-        if(Transcurrido>TimeOut) {
+        if(Transcurrido>TimeOut) {                  //si se supera el timeout sin presionar teclas se finaliza la operacion de usuario
             Screen.Clean();
             return USER_FINISH;
         }
 
         Tecla=KeyPad_Read();
-        if (Tecla!=NO_KEY) {                                        // Se valida que se ingrese una tecla valida
-            Inicio=BaseClock.read_ms();
+        if (Tecla!=NO_KEY) {                                        // Se verifica que se ingrese una tecla valida
+            Inicio=BaseClock.read_ms();                             //se reinicia la cuenta de tiempo 
             if (((Tecla=='0')||(Tecla=='1')||(Tecla=='2')||(Tecla=='3')||(Tecla=='4')||(Tecla=='5')||(Tecla=='6')||(Tecla=='7')||(Tecla=='8')||(Tecla=='9'))&&(PositionPlace<4)) {                      //Agregar un digito
                 Espacio[PositionPlace]=Tecla;
                 PositionPlace++;
                 Espacio[PositionPlace]='_';
                 Espacio[4]=' ';
-                Espacio[5]='\0';
+                Espacio[5]='\0';                            //agrega el numero correspondiente a Espacio
             }
             if ((Tecla=='B')&&(PositionPlace>0)) {                   //Borrar el ultimo digito
                 Espacio[PositionPlace]=' ';
@@ -580,7 +580,7 @@
                 Espacio[4]=' ';
                 Espacio[5]='\0';
             }                                
-            if (Tecla=='C') {                                       //Cancelar operacion
+            if (Tecla=='C') {                                       //Cancelar operacion, finaliza operacion de usuario
                 Screen.Clean();
                 return USER_FINISH;
             }         
@@ -1456,22 +1456,23 @@
     }
 }
 
-void Usuario(uint8_t Entrada)
+void Usuario(uint8_t Entrada)             //lleva a cabo de las operaciones necesarias para la interaccion con el usuario
 {
     int PrinterState;
-    uint8_t Comando=Entrada;
-    if(Comando==USER_INIT) {
+    uint8_t Comando=Entrada;              //cada paso se va dando por comandos empezando por USER_INIT
+    if(Comando==USER_INIT) {  
         Host.detach();//1800 30 minutosHost.attach(&Interrupt_Host,5);//1800 30 minutos
+        //durante la operacion de usuario se deshabilita la interrupcion de host
         Computer.printf("Usuario iniciar 1\n");
         ParkingMeter.Max232(1);
         Impresora.PowerMax(1);
         Screen.On();
         Screen.Init();
-        Slave.Awake();
-        Slave.Command(COMMAND_ON);
+        Slave.Awake();                          // "despierta" al esclavo 
+        Slave.Command(COMMAND_ON);              //habilita la comunicación con el modem
         BaseClock.start();
         BaseClock.reset();
-        Comando=USER_PLACE;
+        Comando=USER_PLACE;                    //nos envia a la opcion de que el usuario coloque la posicion en que desea parquear
     }
 
     if(Comando==USER_INIT2) {
@@ -1521,18 +1522,18 @@
 
     if(Comando==USER_PLACE) {
         Computer.printf("Usuario espacio\n");
-        CardReaderPower=1;
-        Comando=GetPlace(USER_CARD,15000);        
+        CardReaderPower=1;                   //mientras tanto se va encendiendo la lectora de tarjeta
+        Comando=GetPlace(USER_CARD,15000);   //si se lee sin problema el espacio de parqueo ahora Comando permite leer la tarjeta      
         if(Comando==USER_CARD) {
-            Slave.Command(COMMAND_INIT);
+            Slave.Command(COMMAND_INIT);     //se va iniciando la conexion a la red celular
         }
     }
     
     if(Comando==USER_CARD) {
         Computer.printf("Usuario tarjeta\n");
-        Comando=GetCard(USER_TIME,20000,5000);
+        Comando=GetCard(USER_TIME,20000,5000);  //si se lee sin problema la tarjeta ahora Comando permite leer el tiempo de parqueo
         if(Comando==USER_TIME) {
-            Slave.Command(COMMAND_GPRS);
+            Slave.Command(COMMAND_GPRS);        //va estableciendo conexión a la red de internet
         }
     }
     
@@ -1543,15 +1544,15 @@
 
     if(Comando==USER_TIME) {
         Computer.printf("Usuario tiempo\n");
-        CardReaderPower=0;
-        Comando=GetTime(USER_DATA,15000);
+        CardReaderPower=0;                              //se apaga el lector 
+        Comando=GetTime(USER_DATA,15000);//si se lee sin problema el tiempo de parqueo ahora Comando permite encriptar y enviar los datos al esclavo
         if (Comando==USER_FINISH){
             Slave.Command(COMMAND_END);
         }
         Comando=Continuar(Comando,8000);
     }
 
-    if(Comando==USER_DATA) {
+    if(Comando==USER_DATA) {                      // se encriptan los datos y se envían al esclavo
         Computer.printf("Usuario datos\n");
         Slave.Command(COMMAND_DATA);
         Slave.Encryption_Data(Parquimetro,Municipio,TiempoMinutos,Espacio,Track2);
@@ -1562,7 +1563,7 @@
         Computer.printf("Municipio: %s\n",Municipio);
         Computer.printf("Espacio: %s\n",Espacio);
         Computer.printf("Track2: %s\n",Track2);
-        Comando=Continuar(USER_POST,20000);
+        Comando=Continuar(USER_POST,20000);//una vez que el esclavo tenga los datos con userpost se envían al servidor
         if (Comando==USER_FINISH){
             Slave.Command(COMMAND_END);
         }        
@@ -1572,10 +1573,10 @@
         Computer.printf("Usuario operacion\n");
         Slave.Command(COMMAND_POST);
         Slave.Encryption_Print();
-        Comando=Respuesta1(USER_ANSWER,50);
+        Comando=Respuesta1(USER_ANSWER,50);// imprime en pantalla "realizando operación" y Comando=Useranswer
     }
 
-    if(Comando==USER_ANSWER) {
+    if(Comando==USER_ANSWER) {           //
         Computer.printf("Usuario respuesta\n");
         Slave.Command(COMMAND_ANSWER);
         PrinterState = ImpresoraIniciar();
@@ -3587,19 +3588,19 @@
     Screen.Off();
 }
 
-void InitSistema(){
+void InitSistema(){//iniciar el sistema
     Regulator5V=1;
     wait_ms(50);
-    Screen.On();
+    Screen.On();//encender, iniciar y limpiar pantalla
     Screen.Init();
     Screen.Clean();
-    Keypad_C1.rise(&KeyPad_InterruptDisable);
+    Keypad_C1.rise(&KeyPad_InterruptDisable);//desactivando interrupciones para el teclado
     Keypad_C2.rise(&KeyPad_InterruptDisable);
     Keypad_C3.rise(&KeyPad_InterruptDisable);
     Keypad_C4.rise(&KeyPad_InterruptDisable);
-    Configuracion.rise(&Interrupt_Mantenimiento);
-    CardReader.attach(&Interrupt_CardReader);
-    Host.attach(&Interrupt_Host,5);//1800 30 minutos
+    Configuracion.rise(&Interrupt_Mantenimiento);//activando interrupcion para el modo de configuracion
+    CardReader.attach(&Interrupt_CardReader);//activando interrupcion para el lector de tarjeta
+    Host.attach(&Interrupt_Host,5);//1800 30 minutos interrupcion hosting
     Computer.printf("Prototipo Completo 4\n");
     Screen.Off(); 
     Regulator5V=0;   
@@ -3607,18 +3608,18 @@
 
 int main()
 {
-    InitSistema(); 
+    InitSistema(); //iniciar el sistema
     while(1) {
-        KeyPad_InterruptEnable();
-        Doors.InterruptEnable();
+        KeyPad_InterruptEnable();                //activando interrupciones para el teclado
+        Doors.InterruptEnable();                   //activando interrupciones para los switches de las puertas
         
-        hal_sleep();
+        hal_sleep();                              //en cada ciclo se manda la placa a dormir esperando las interrupciones
         
-        if(KeyPad_Read() != NO_KEY) {
+        if(KeyPad_Read() != NO_KEY) {             //si se detecta alguna tecla presionada
             Regulator5V=1;
             wait_ms(50);
-            ParkingMeter.LedUsuario(1); 
-            Usuario(USER_INIT); 
+            ParkingMeter.LedUsuario(1);           //activa LED3 (rojo) indicando operacion de usuario 
+            Usuario(USER_INIT);                    //empieza operacion de usuario 
             EsperarSim900(5000);
             Host.attach(&Interrupt_Host,5);
             ParkingMeter.LedUsuario(0);