![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
_Slave_Prototipo
Dependencies: mbed Queue-slave
main.cpp
- Committer:
- pabloandres2906
- Date:
- 2019-11-28
- Revision:
- 1:525f26ef832b
- Parent:
- 0:c025e4fdbffb
File content as of revision 1:525f26ef832b:
#include "mbed.h" #include "Queue.h" #define COMMAND_ON 0X70 #define COMMAND_INIT 0X71 #define COMMAND_GPRS 0X72 #define COMMAND_DATA 0X73 #define COMMAND_POST 0X74 #define COMMAND_ANSWER 0X75 #define COMMAND_SIGNAL 0X76 #define COMMAND_CONNECT 0X77 #define COMMAND_OFF 0X78 #define HOSTING_STEP1 0x79 #define HOSTING_STEP2 0x7A #define HOSTING_STEP3 0x7B #define HOSTING_STEP4 0x7C #define HOSTING_STEP5 0x7D #define HOSTING_STEP6 0x7E #define HOSTING_STEP7 0x7F #define HOSTING_STEP8 0x80 #define HOSTING_STEP9 0x81 #define HOSTING_STEP10 0x82 #define HOSTING_STEP11 0x83 #define HOSTING_OFF 0x84 #define NEXT_STEP 0x85 #define NEXT_SLEEP 0x86 #define NO_DATA 0x87 #define COMMAND_END 0X88 RawSerial Computer(SERIAL_TX, SERIAL_RX,9600); // tx, rx RawSerial Master(PC_1, PC_0,9600); RawSerial Gsm(PA_0,PA_1,19200); DigitalOut EnableSIM900(PB_0); DigitalOut ResetSIM900(PA_10); DigitalOut Led(LED2); DigitalIn Button(USER_BUTTON); Timer BaseClock; QUEUE MasterCommand; char Command; int Sim900_Counter=0; char Sim900_Buffer[1000]; unsigned long Inicio, Fin, Transcurrido; char HostingData[]="{\"municipio\":\"San Jose\",\"id\":\"1068\",\"alerts\":\"AAAAAA\"}\r\n";//"municipio":"San Jose","id":1068, "alerts":"AAAAAA"} char HostingAnswer[]="OK+000+00:00"; char Encrypt[174]; void Interrupt_Sim900() { if(Gsm.readable()) { Sim900_Buffer[Sim900_Counter]=Gsm.getc(); Sim900_Counter++; } } void Interrupt_Master() { if(Master.readable()) { MasterCommand.Put(Master.getc()); } } void PrintSerialRepeat(char Command[],char Answer[],uint32_t Espera,uint32_t Delay)// { if(Gsm.writeable()) { Gsm.printf("%s",Command); } Sim900_Counter=0; bool TimeOut=0; bool RightAnswer1=0; bool RightAnswer2=0; Inicio=BaseClock.read_ms(); while(true) { // Esta funcion detiene el programa y espera una respuesta Fin=BaseClock.read_ms(); Transcurrido=Fin-Inicio; if(Sim900_Counter>5) { TimeOut=1; break; } if(Transcurrido>Espera) { TimeOut=0; break; } } wait_ms(Delay); if(TimeOut) { for(int i=0; i<Sim900_Counter; i++) { Computer.putc(Sim900_Buffer[i]); if(Sim900_Buffer[i]==Answer[0]) { RightAnswer1=1; } if(Sim900_Buffer[i]==Answer[1]) { RightAnswer2=1; } } if(RightAnswer1 && RightAnswer2) { Computer.printf("OK-> Respuesta correcta\n"); } else { Computer.printf("ERROR-> Respuesta incorrecta\n"); wait_ms(2000); Gsm.printf("%s",Command); Sim900_Counter=0; TimeOut=0; RightAnswer1=0; RightAnswer2=0; Inicio=BaseClock.read_ms(); while(true) { // Esta funcion detiene el programa y espera una respuesta Fin=BaseClock.read_ms(); Transcurrido=Fin-Inicio; if(Sim900_Counter>0) { TimeOut=1; break; } if(Transcurrido>Espera) { TimeOut=0; break; } } wait_ms(Delay); if(TimeOut) { for(int i=0; i<Sim900_Counter; i++) { Computer.putc(Sim900_Buffer[i]); if(Sim900_Buffer[i]==Answer[0]) { RightAnswer1=1; } if(Sim900_Buffer[i]==Answer[1]) { RightAnswer2=1; } } if(RightAnswer1 && RightAnswer2) { Computer.printf("OK-> Respuesta correcta\n"); } else { Computer.printf("ERROR-> Respuesta incorrecta\n"); } } else { Computer.printf("ERROR-> Sin respuesta\n"); } } } else { Computer.printf("ERROR-> Sin respuesta\n"); } } void EncenderSIM900() { Sim900_Counter=0; if(Gsm.writeable()) { Gsm.printf("AT\r\n"); } wait_ms(100); if(Sim900_Counter==0) { Sim900_Counter=0; EnableSIM900 = 1; wait_ms(600); EnableSIM900 = 0; wait_ms(1000); bool TimeOut=0; bool RightAnswer1=0; bool RightAnswer2=0; bool WrongAnswer1=0; bool WrongAnswer2=0; Inicio=BaseClock.read_ms(); while(true) { // Esta funcion detiene el programa y espera una respuesta Fin=BaseClock.read_ms(); Transcurrido=Fin-Inicio; if(Sim900_Counter>5) { TimeOut=1; break; } if(Transcurrido>1000) { TimeOut=0; break; } } wait_ms(500); if(TimeOut) { for(int i=0; i<Sim900_Counter; i++) { Computer.putc(Sim900_Buffer[i]); if(Sim900_Buffer[i]=='F') { RightAnswer1=1; } if(Sim900_Buffer[i]=='I') { RightAnswer2=1; } if(Sim900_Buffer[i]=='O') { WrongAnswer1=1; } if(Sim900_Buffer[i]=='W') { WrongAnswer2=1; } } if(RightAnswer1 && RightAnswer2) { Computer.printf("OK-> Encendido correctamente\n"); wait_ms(3500); } else { if(WrongAnswer1 && WrongAnswer2) { Computer.printf("OK-> Apagado error\n"); wait_ms(4000); Sim900_Counter=0; EnableSIM900 = 1; wait_ms(600); EnableSIM900 = 0; wait_ms(5000); } } } } else { for(int i=0; i<=Sim900_Counter; i++) { Computer.putc(Sim900_Buffer[i]); } } } void IniciarSIM900() { PrintSerialRepeat("AT+CPIN?\r\n","OK",500,75); // Respuesta +CPIN: READY\n\nOK PrintSerialRepeat("AT+CSQ\r\n","OK",500,100); // Respuesta +Señal Disponible OK PrintSerialRepeat("AT+CREG=1\r\n","OK",500,250); // Peticion de conexion GPRS OK wait(2); } void ConexionGPRS() { PrintSerialRepeat("AT+CGATT=1\r\n","OK",2000,1000); PrintSerialRepeat("AT+SAPBR=1,1\r\n","OK",500,1000); if(Master.writeable()) { Master.putc(NEXT_STEP); } } void ApagarSIM900() { PrintSerialRepeat("AT+CPOWD=1\r\n","WD",500,500); wait_ms(1000); Sim900_Counter=0; if(Gsm.writeable()) { Gsm.printf("AT\r\n"); } wait_ms(100); if(Sim900_Counter>5) { EnableSIM900 = 1; wait_ms(600); EnableSIM900 = 0; } } void PostEncryptHTTP() { PrintSerialRepeat("AT+HTTPINIT\r\n","OK",500,50); // Iniciar servicio HTTP, Respuesta OK //PrintSerialRepeat("AT+HTTPPARA=\"CID\",1\r\n","OK",500,50); PrintSerialRepeat("AT+HTTPPARA=\"URL\",\"http://52.39.146.172:8181/AIGRest/AIGService/parkPQ\"\r\n","OK",1500,140); // AT+HTTPPARA="URL","http://34.211.174.1:8080/AIGRest/AIGService/parkPQ" //PrintSerialRepeat("AT+HTTPPARA=\"URL\",\"http://34.211.174.1:8080/AIGRest/AIGService/parkPQ\"\r\n","OK",1500,140); //PrintSerialData("AT+HTTPPARA=\"URL\",\"https://www.e-park.cr/AIGRest/AIGService/parkPQ\"\r\n","OK",1500,140); // AT+HTTPPARA="URL","http://34.211.174.1:8080/AIGRest/AIGService/parkPQ" PrintSerialRepeat("AT+HTTPPARA=\"CONTENT\",\"application/json\"\r\n","OK",500,75); // AT+HTTPPARA="CONTENT","application/json" char Len[24]; sprintf(Len,"AT+HTTPDATA=%i,10000\r\n",(strlen(Encrypt))); if(Gsm.writeable()) { Gsm.printf("%s",Len); } // Envio de parametros de la informacion, Respuesta DOWNLOAD OK wait_ms(200); if(Gsm.writeable()) { for(int i=0; i<174; i++) { Gsm.putc(Encrypt[i]); } } // Envio de informacion al web servicio wait_ms(500); for(int i=0; i<=Sim900_Counter; i++) { Computer.putc(Sim900_Buffer[i]); } wait_ms(500); PrintSerialRepeat("AT+HTTPACTION=1\r\n","OK",8000,1800); // Respuesta OK +HTTPACTION:1,200,7 } void PrintEncryption() { Computer.printf("Mensaje: "); for(int i=0; i<173; i++) { Computer.putc(Encrypt[i]); } } void RespuestaHTTP() { PrintSerialRepeat("AT+HTTPREAD=0,9000\r\n","OK",500,150); Sim900_Counter=0; Inicio=BaseClock.read_ms(); while(true) { // Esta funcion detiene el programa y espera una respuesta Fin=BaseClock.read_ms(); Transcurrido=Fin-Inicio; if(Sim900_Counter>10) { break; } if(Transcurrido>20000) { break; } } wait_ms(150); Sim900_Counter=0; // +HTTPREAD:7 OKAlpha, OK+310325+10:29+2018-04-10 bool RightAnswer1=0; bool RightAnswer2=0; bool RightAnswer3=0; int RightAnswer4=0; bool WrongAnswer1=0; int WrongAnswer2=0; if(Gsm.writeable()) { Gsm.printf("AT+HTTPREAD=0,9000\r\n"); } wait_ms(250); for(int i=0; i<Sim900_Counter; i++) { Computer.printf("%c",Sim900_Buffer[i]); if(Sim900_Buffer[i]=='O') { RightAnswer1=1; } if(Sim900_Buffer[i]=='K') { RightAnswer2=1; } if(Sim900_Buffer[i]=='-') { RightAnswer3=1; } if(Sim900_Buffer[i]=='E') { WrongAnswer1=1; } if(Sim900_Buffer[i]=='R') { WrongAnswer2++; } if(Sim900_Buffer[i]=='+') { RightAnswer4++; } } if(RightAnswer4==1&&WrongAnswer2==1) { Computer.printf("Respuesta incompleta %s\n",RightAnswer4 ); PrintSerialRepeat("AT+HTTPREAD=0,9000\r\n","OK",500,150); Sim900_Counter=0; Computer.printf("Esperando respuesta\n"); Inicio=BaseClock.read_ms(); while(true) { // Esta funcion detiene el programa y espera una respuesta Fin=BaseClock.read_ms(); Transcurrido=Fin-Inicio; if(Sim900_Counter>10) { break; } if(Transcurrido>20000) { break; } } wait_ms(250); // +HTTPREAD:7 OKAlpha, OK+310325+10:29+2018-04-10 RightAnswer1=0; RightAnswer2=0; RightAnswer3=0; RightAnswer4=0; PrintSerialRepeat("AT+HTTPREAD=0,9000\r\n","OK",500,250); for(int i=0; i<Sim900_Counter; i++) { Computer.printf("%c",Sim900_Buffer[i]); if(Sim900_Buffer[i]=='O') { RightAnswer1=1; } if(Sim900_Buffer[i]=='K') { RightAnswer2=1; } if(Sim900_Buffer[i]=='-') { RightAnswer3=1; } if(Sim900_Buffer[i]=='+') { RightAnswer4++; } } } if(RightAnswer3&&RightAnswer2&&RightAnswer1) { Computer.printf("Aceptada\n"); if(Master.writeable()) { Computer.printf("<--"); for(int i=37; i<=(Sim900_Counter-6); i++) { Master.putc(Sim900_Buffer[i]); Computer.putc(Sim900_Buffer[i]); } Master.putc('A'); Computer.printf("-->"); } } else if(WrongAnswer1&&(WrongAnswer2>1)) { Computer.printf("Rechazada\n"); if(Master.writeable()) { Master.printf("Rechazada"); Master.putc('R'); } } else { Computer.printf("Sin respuesta\n"); if(Master.writeable()) { Master.printf("Rechazada"); Master.putc('R'); } } PrintSerialRepeat("AT+HTTPTERM\r\n","OK",500,50); PrintSerialRepeat("AT+SAPBR=0,1\r\n","OK",500,50); } void FinalizarComunicacion() { PrintSerialRepeat("AT+SAPBR=0,1\r\n","OK",500,50); } void ReadUsuario() { Computer.printf("Read Usuario\n"); wait_ms(1000); for(int i=0; i<172; i++) { Encrypt[i]=MasterCommand.Get(); Computer.printf("-%c-",Encrypt[i]); } Encrypt[173]='\r'; if(Master.writeable()) { Master.putc(NEXT_STEP); } } void ConexionSIM900() { Sim900_Counter=0; EnableSIM900 = 1; wait_ms(600); EnableSIM900 = 0; char ConectionEnable; Inicio=BaseClock.read_ms(); while (true) { Fin=BaseClock.read_ms(); Transcurrido=Fin-Inicio; if(Sim900_Counter>0) { Computer.printf("Conectado\n"); ConectionEnable='A'; break; } if(Transcurrido>5000) { Computer.printf("Desconectado\n"); ConectionEnable='E'; break; } } if(Master.writeable()) { Master.putc(ConectionEnable); } wait(5); ApagarSIM900(); } void CoberturaSIM900() { Sim900_Counter=0; EnableSIM900 = 1; wait_ms(600); EnableSIM900 = 0; wait_ms(6000); Sim900_Counter=0; if(Gsm.writeable()) { Gsm.printf("AT+CSQ\r\n"); } Inicio=BaseClock.read_ms(); while (true) { Fin=BaseClock.read_ms(); Transcurrido=Fin-Inicio; if(Sim900_Counter>0) { wait_ms(75); break; } if(Transcurrido>1000) { break; } } if(Sim900_Counter>0) { for(int i=0; i<Sim900_Counter; i++) { Computer.printf("%c",Sim900_Buffer[i]); if(((uint8_t)Sim900_Buffer[i]>=0x30)&&((uint8_t)Sim900_Buffer[i]<0x3A)) { if(Master.writeable()) { Master.putc(Sim900_Buffer[i]); } } Computer.putc(Sim900_Buffer[i]); } if(Master.writeable()) { Master.putc('A'); } } else { if(Master.writeable()) { Master.putc('E'); } } ApagarSIM900(); wait_ms(3900); } void Step1() { Computer.printf("Encender\n"); EncenderSIM900(); wait(5); if(Master.writeable()) { Master.putc(NEXT_STEP); } } void Step2(){ PrintSerialRepeat("AT+CPIN?\r\n","OK",500,75); // Respuesta +CPIN: READY\n\nOK PrintSerialRepeat("AT+CSQ\r\n","OK",500,100); PrintSerialRepeat("AT+CREG=1\r\n","OK",500,250); PrintSerialRepeat("AT+CIPSHUT\r\n","OK",500,150); // Respuesta OK if(Master.writeable()) { Master.putc(NEXT_STEP); } } void Step3() { PrintSerialRepeat("AT+CIPSTATUS\r\n","OK",500,100); // Respuesta OK STATE: IP INITIAL PrintSerialRepeat("AT+CIPMUX=0\r\n","OK",500,100); // Respuesta OK wait(4); PrintSerialRepeat("AT+CGATT=1\r\n","OK",2000,3000); if(Master.writeable()) { Master.putc(NEXT_STEP); } } void Step4() { wait(3); if(Master.writeable()) { Master.putc(NEXT_STEP); } } void Step5() { //PrintSerialRepeat("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n","OK",500,100); // Respuesta OK //PrintSerialRepeat("AT+SAPBR=3,1,\"APN\",\"\"\r\n","OK",500,100); // Respuesta OK, AT+SAPBR=3,1,"APN","" wait(3); if(Master.writeable()) { Master.putc(NEXT_STEP); } } void Step6() { PrintSerialRepeat("AT+SAPBR=1,1\r\n","OK",500,1000); // Respuesta OK //PrintSerialRepeat("AT+SAPBR=2,1\r\n","OK",500,1000); if(Master.writeable()) { Master.putc(NEXT_STEP); } } void Step7() { PrintSerialRepeat("AT+HTTPINIT\r\n","OK",500,50); //PrintSerialRepeat("AT+HTTPPARA=\"CID\",1\r\n","OK",500,50); //PrintSerialRepeat("AT+HTTPPARA=\"REDIR\",1\r\n","OK",1500,140); PrintSerialRepeat("AT+HTTPPARA=\"URL\",\"http://52.39.146.172:8181/AIGRest/AIGService/alertPQ\"\r\n","OK",1500,140); //PrintSerialRepeat("AT+HTTPPARA=\"URL\",\"http://34.211.174.1:8080/AIGRest/AIGService/alertPQ\"\r\n","OK",1500,140); if(Master.writeable()) { Master.putc(NEXT_STEP); } } void Step8() { //char HostingData[]="{\"municipio\":\"Santa Ana\",\"id\":0000, \"alerts\":\"000000\"}\r\n"; Computer.printf("%s\n",HostingData); wait_ms(100); // Municipio HostingData[14]=MasterCommand.Get(); HostingData[15]=MasterCommand.Get(); HostingData[16]=MasterCommand.Get(); HostingData[17]=MasterCommand.Get(); HostingData[18]=MasterCommand.Get(); HostingData[19]=MasterCommand.Get(); HostingData[20]=MasterCommand.Get(); HostingData[21]=MasterCommand.Get(); // Alarmas HostingData[46]=MasterCommand.Get(); HostingData[47]=MasterCommand.Get(); HostingData[48]=MasterCommand.Get(); HostingData[49]=MasterCommand.Get(); HostingData[50]=MasterCommand.Get(); HostingData[51]=MasterCommand.Get(); // Identificador HostingData[30]=MasterCommand.Get(); HostingData[31]=MasterCommand.Get(); HostingData[32]=MasterCommand.Get(); HostingData[33]=MasterCommand.Get(); Computer.printf("%s\n",HostingData); PrintSerialRepeat("AT+HTTPPARA=\"CONTENT\",\"application/json\"\r\n","OK",500,75); // AT+HTTPPARA="CONTENT","application/json" if(Master.writeable()) { Master.putc(NEXT_STEP); } } void Step9() { Computer.printf("-1-\n"); char Len[23]; Sim900_Counter=0; sprintf(Len,"AT+HTTPDATA=%i,10000\r\n",(strlen(HostingData))); if(Gsm.writeable()) { Gsm.printf("%s",Len); } // Envio de parametros de la informacion, Respuesta DOWNLOAD OK Computer.printf("-2-\n"); wait_ms(200); if(Gsm.writeable()) { Gsm.printf("%s",HostingData); } // Envio de informacion al web servicio wait_ms(200); for(int i=0; i<=Sim900_Counter; i++) { Computer.putc(Sim900_Buffer[i]); } Computer.printf("-3-\n"); //PrintSerialRepeat("AT+HTTPSCONT?\r\n","OK",8000,1800); PrintSerialRepeat("AT+HTTPACTION=1\r\n","OK",8000,1800); if(Master.writeable()) { Master.putc(NEXT_STEP); } Computer.printf("-4-\n"); } void Step10() { PrintSerialRepeat("AT+HTTPREAD=0,9000\r\n","OK",150,50); Sim900_Counter=0; Computer.printf("Esperando respuesta\n"); Inicio=BaseClock.read_ms(); while(true) { // Esta funcion detiene el programa y espera una respuesta Fin=BaseClock.read_ms(); Transcurrido=Fin-Inicio; if(Sim900_Counter>10) { Computer.printf("Recibido\n"); break; } if(Transcurrido>9000) { Computer.printf("Tiempo\n"); break; } } wait_ms(50); bool RightAnswer1=0; bool RightAnswer2=0; bool RightAnswer3=0; Sim900_Counter=0; if(Gsm.writeable()) { Gsm.printf("AT+HTTPREAD=0,9000\r\n"); } wait_ms(100); for(int i=0; i<Sim900_Counter; i++) { Computer.putc(Sim900_Buffer[i]); if(Sim900_Buffer[i]=='O') { RightAnswer1=1; } if(Sim900_Buffer[i]=='K') { RightAnswer2=1; } if(Sim900_Buffer[i]=='+') { RightAnswer3=1; } } if(RightAnswer3&&RightAnswer2&&RightAnswer1) { HostingAnswer[0]=Sim900_Buffer[36]; HostingAnswer[1]=Sim900_Buffer[37]; HostingAnswer[2]=Sim900_Buffer[38]; HostingAnswer[3]=Sim900_Buffer[39]; HostingAnswer[4]=Sim900_Buffer[40]; HostingAnswer[5]=Sim900_Buffer[41]; HostingAnswer[6]=Sim900_Buffer[42]; HostingAnswer[7]=Sim900_Buffer[43]; HostingAnswer[8]=Sim900_Buffer[44]; HostingAnswer[9]=Sim900_Buffer[45]; HostingAnswer[10]=Sim900_Buffer[46]; HostingAnswer[11]=Sim900_Buffer[47]; Computer.printf("Aceptada\n"); Computer.printf("<--%s-->\n",HostingAnswer); } else { Computer.printf("Rechazada\n"); } if(Master.writeable()) { Master.putc(NEXT_STEP); } } void Step11() { if(Master.writeable()) { Master.printf("%s",HostingAnswer); Computer.printf("<--%s-->",HostingAnswer); } //PrintSerialRepeat("AT+HTTPSCONT?\r\n","OK",2000,2000); //PrintSerialRepeat("AT+HTTPPARA?\r\n","OK",2000,2000); //PrintSerialRepeat("AT+SAPBR=4,1\r\n","OK",500,50); PrintSerialRepeat("AT+HTTPTERM\r\n","OK",500,50); PrintSerialRepeat("AT+SAPBR=0,1\r\n","OK",500,50); if(Master.writeable()) { Master.putc(NEXT_STEP); } HostingAnswer[0]='0'; HostingAnswer[1]='0'; HostingAnswer[2]='0'; HostingAnswer[3]='0'; HostingAnswer[4]='0'; HostingAnswer[5]='0'; wait_ms(3900); } int main() { Gsm.attach(&Interrupt_Sim900); Master.attach(&Interrupt_Master); BaseClock.start(); Computer.printf("Paquimetro 1067 Produccion\n"); Led=0; ResetSIM900=0; while(1) { if(Button==0) { Led=1; BaseClock.start(); BaseClock.reset(); Computer.printf("Button\n"); EncenderSIM900(); BaseClock.stop(); Led=0; } while(MasterCommand.Available()>0) { Command=MasterCommand.Get(); switch (Command) { case COMMAND_ON: Computer.printf("-> -> Encender\n"); BaseClock.start(); BaseClock.reset(); EncenderSIM900(); break; case COMMAND_INIT: Computer.printf("-> -> Iniciar\n"); IniciarSIM900(); break; case COMMAND_GPRS: Computer.printf("-> -> GPRS\n"); ConexionGPRS(); break; case COMMAND_DATA: Computer.printf("-> -> Datos\n"); ReadUsuario(); break; case COMMAND_POST: Computer.printf("-> -> Post HTTP\n"); PostEncryptHTTP(); break; case COMMAND_ANSWER: Computer.printf("-> -> Respuesta\n"); RespuestaHTTP(); break; case COMMAND_END : Computer.printf("-> -> finalizar tiempo\n"); FinalizarComunicacion(); break; case COMMAND_SIGNAL: Computer.printf("Cobertura Sim900\n"); BaseClock.start(); BaseClock.reset(); CoberturaSIM900(); BaseClock.stop(); break; case COMMAND_CONNECT: Computer.printf("Conexion Sim900\n"); BaseClock.start(); BaseClock.reset(); ConexionSIM900(); BaseClock.stop(); break; case COMMAND_OFF: Computer.printf("-> -> Apagar\n"); MasterCommand.Flush(); ApagarSIM900(); wait_ms(4000); BaseClock.stop(); break; case HOSTING_STEP1: Computer.printf("Paso 1\n"); BaseClock.start(); BaseClock.reset(); Step1(); break; case HOSTING_STEP2: Computer.printf("Paso 2\n"); // Respuesta SHUT OK Step2(); break; case HOSTING_STEP3: Computer.printf("Paso 3\n"); Step3(); break; case HOSTING_STEP4: Computer.printf("Paso 4\n"); Step4(); // Respuesta OK break; case HOSTING_STEP5: Computer.printf("Paso 5\n"); Step5(); break; case HOSTING_STEP6: Computer.printf("Paso 6\n"); Step6(); break; case HOSTING_STEP7: Computer.printf("Paso 7\n"); Step7(); break; case HOSTING_STEP8: Computer.printf("Paso 8\n"); Step8(); break; case HOSTING_STEP9: Computer.printf("Paso 9\n"); Step9(); break; case HOSTING_STEP10: Computer.printf("Paso 10\n"); Step10(); break; case HOSTING_STEP11: Computer.printf("Paso 11\n"); MasterCommand.Flush(); Step11(); BaseClock.stop(); break; case HOSTING_OFF: Computer.printf("Paso salida\n"); PrintSerialRepeat("AT+HTTPTERM\r\n","OK",500,50); break; } } } } // Proceso Usuario, lista de comandos que se deben enviar: // 1.COMMAND_ON ---> Encerder el modulo. // 2.COMMAND_INIT ---> Cargar configuracion del modulo. // 3.COMMAND_GPRS ---> Iniciar conexion GPRS. // 4.COMMAND_DATA ---> Enviar datos [Tiempo,Identificador,Espacio] y se espera confirmacion. // 5.COMMAND_POST ---> Realizar post HTTP. // 6.COMMAND_ANSWER ---> Recibir respuesta del servicio. // 7.COMMAND_OFF ---> Apagar el modulo. // Proceso Hosting, lista de comando que se deben enviar: // 1.HOSTING_STEP1 ---> Encerder el modulo. // 2.HOSTING_STEP2 ---> Comandos CREG Y CIPSHUT. // 3.HOSTING_STEP3 ---> Comandos CIPSTATUS Y CIPMUX. // 4.HOSTING_STEP4 ---> Comando CGATT. // 5.HOSTING_STEP5 ---> Comandos SAPBR GPRS y APN. // 6.HOSTING_STEP6 ---> Comando SAPBR 1,1. // 7.HOSTING_STEP7 ---> Comandos HTTPINIT y HTTPPARA. // 8.HOSTING_STEP8 ---> Se envian los datos [Indentificador, Alarmas] y HTTPPARA JSON. // 9.HOSTING_STEP9 ---> Comandos HTTPDATA y HTTPACTION. // 10.HOSTING_STEP10 ---> Comando HTTPREAD y se espera respuesta. // 11.HOSTING_STEP11 ---> Comandos HTTPTERM y se enviar respuesta, y se apaga modulo. // 12.HOSTING_OFF ---> Comando HTTPTERM en caso de choque con usuario.