Programa Prototipo Setex
Dependencies: BatteryPanel-prot-prod Slave-prot-prod mbed GraphicLCD-prot-prod ThermalPrinter-prot-prod LimitSwitches-prot-prod ParkingMeter-prot-prod
Revision 1:4cdf726a3497, committed 2019-07-22
- 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);