![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
_Slave_Prototipo
Dependencies: mbed Queue-slave
main.cpp@0:c025e4fdbffb, 2019-06-04 (annotated)
- Committer:
- williequesada
- Date:
- Tue Jun 04 19:39:47 2019 +0000
- Revision:
- 0:c025e4fdbffb
pablo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
williequesada | 0:c025e4fdbffb | 1 | #include "mbed.h" |
williequesada | 0:c025e4fdbffb | 2 | #include "Queue.h" |
williequesada | 0:c025e4fdbffb | 3 | |
williequesada | 0:c025e4fdbffb | 4 | #define COMMAND_ON 0X70 |
williequesada | 0:c025e4fdbffb | 5 | #define COMMAND_INIT 0X71 |
williequesada | 0:c025e4fdbffb | 6 | #define COMMAND_GPRS 0X72 |
williequesada | 0:c025e4fdbffb | 7 | #define COMMAND_DATA 0X73 |
williequesada | 0:c025e4fdbffb | 8 | #define COMMAND_POST 0X74 |
williequesada | 0:c025e4fdbffb | 9 | #define COMMAND_ANSWER 0X75 |
williequesada | 0:c025e4fdbffb | 10 | #define COMMAND_SIGNAL 0X76 |
williequesada | 0:c025e4fdbffb | 11 | #define COMMAND_CONNECT 0X77 |
williequesada | 0:c025e4fdbffb | 12 | #define COMMAND_OFF 0X78 |
williequesada | 0:c025e4fdbffb | 13 | #define HOSTING_STEP1 0x79 |
williequesada | 0:c025e4fdbffb | 14 | #define HOSTING_STEP2 0x7A |
williequesada | 0:c025e4fdbffb | 15 | #define HOSTING_STEP3 0x7B |
williequesada | 0:c025e4fdbffb | 16 | #define HOSTING_STEP4 0x7C |
williequesada | 0:c025e4fdbffb | 17 | #define HOSTING_STEP5 0x7D |
williequesada | 0:c025e4fdbffb | 18 | #define HOSTING_STEP6 0x7E |
williequesada | 0:c025e4fdbffb | 19 | #define HOSTING_STEP7 0x7F |
williequesada | 0:c025e4fdbffb | 20 | #define HOSTING_STEP8 0x80 |
williequesada | 0:c025e4fdbffb | 21 | #define HOSTING_STEP9 0x81 |
williequesada | 0:c025e4fdbffb | 22 | #define HOSTING_STEP10 0x82 |
williequesada | 0:c025e4fdbffb | 23 | #define HOSTING_STEP11 0x83 |
williequesada | 0:c025e4fdbffb | 24 | #define HOSTING_OFF 0x84 |
williequesada | 0:c025e4fdbffb | 25 | #define NEXT_STEP 0x85 |
williequesada | 0:c025e4fdbffb | 26 | #define NEXT_SLEEP 0x86 |
williequesada | 0:c025e4fdbffb | 27 | #define NO_DATA 0x87 |
williequesada | 0:c025e4fdbffb | 28 | #define COMMAND_END 0X88 |
williequesada | 0:c025e4fdbffb | 29 | |
williequesada | 0:c025e4fdbffb | 30 | RawSerial Computer(SERIAL_TX, SERIAL_RX,9600); // tx, rx |
williequesada | 0:c025e4fdbffb | 31 | RawSerial Master(PC_1, PC_0,9600); |
williequesada | 0:c025e4fdbffb | 32 | RawSerial Gsm(PA_0,PA_1,19200); |
williequesada | 0:c025e4fdbffb | 33 | |
williequesada | 0:c025e4fdbffb | 34 | DigitalOut EnableSIM900(PB_0); |
williequesada | 0:c025e4fdbffb | 35 | DigitalOut ResetSIM900(PA_10); |
williequesada | 0:c025e4fdbffb | 36 | DigitalOut Led(LED2); |
williequesada | 0:c025e4fdbffb | 37 | DigitalIn Button(USER_BUTTON); |
williequesada | 0:c025e4fdbffb | 38 | |
williequesada | 0:c025e4fdbffb | 39 | Timer BaseClock; |
williequesada | 0:c025e4fdbffb | 40 | QUEUE MasterCommand; |
williequesada | 0:c025e4fdbffb | 41 | |
williequesada | 0:c025e4fdbffb | 42 | char Command; |
williequesada | 0:c025e4fdbffb | 43 | int Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 44 | char Sim900_Buffer[1000]; |
williequesada | 0:c025e4fdbffb | 45 | unsigned long Inicio, Fin, Transcurrido; |
williequesada | 0:c025e4fdbffb | 46 | char HostingData[]="{\"municipio\":\"San Jose\",\"id\":\"1068\",\"alerts\":\"AAAAAA\"}\r\n";//"municipio":"San Jose","id":1068, "alerts":"AAAAAA"} |
williequesada | 0:c025e4fdbffb | 47 | char HostingAnswer[]="OK+000+00:00"; |
williequesada | 0:c025e4fdbffb | 48 | char Encrypt[174]; |
williequesada | 0:c025e4fdbffb | 49 | |
williequesada | 0:c025e4fdbffb | 50 | void Interrupt_Sim900() |
williequesada | 0:c025e4fdbffb | 51 | { |
williequesada | 0:c025e4fdbffb | 52 | if(Gsm.readable()) { |
williequesada | 0:c025e4fdbffb | 53 | Sim900_Buffer[Sim900_Counter]=Gsm.getc(); |
williequesada | 0:c025e4fdbffb | 54 | Sim900_Counter++; |
williequesada | 0:c025e4fdbffb | 55 | } |
williequesada | 0:c025e4fdbffb | 56 | } |
williequesada | 0:c025e4fdbffb | 57 | |
williequesada | 0:c025e4fdbffb | 58 | void Interrupt_Master() |
williequesada | 0:c025e4fdbffb | 59 | { |
williequesada | 0:c025e4fdbffb | 60 | if(Master.readable()) { |
williequesada | 0:c025e4fdbffb | 61 | MasterCommand.Put(Master.getc()); |
williequesada | 0:c025e4fdbffb | 62 | } |
williequesada | 0:c025e4fdbffb | 63 | } |
williequesada | 0:c025e4fdbffb | 64 | |
williequesada | 0:c025e4fdbffb | 65 | void PrintSerialRepeat(char Command[],char Answer[],uint32_t Espera,uint32_t Delay)// |
williequesada | 0:c025e4fdbffb | 66 | { |
williequesada | 0:c025e4fdbffb | 67 | if(Gsm.writeable()) { |
williequesada | 0:c025e4fdbffb | 68 | Gsm.printf("%s",Command); |
williequesada | 0:c025e4fdbffb | 69 | } |
williequesada | 0:c025e4fdbffb | 70 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 71 | bool TimeOut=0; |
williequesada | 0:c025e4fdbffb | 72 | bool RightAnswer1=0; |
williequesada | 0:c025e4fdbffb | 73 | bool RightAnswer2=0; |
williequesada | 0:c025e4fdbffb | 74 | Inicio=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 75 | |
williequesada | 0:c025e4fdbffb | 76 | while(true) { // Esta funcion detiene el programa y espera una respuesta |
williequesada | 0:c025e4fdbffb | 77 | Fin=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 78 | Transcurrido=Fin-Inicio; |
williequesada | 0:c025e4fdbffb | 79 | if(Sim900_Counter>5) { |
williequesada | 0:c025e4fdbffb | 80 | TimeOut=1; |
williequesada | 0:c025e4fdbffb | 81 | break; |
williequesada | 0:c025e4fdbffb | 82 | } |
williequesada | 0:c025e4fdbffb | 83 | if(Transcurrido>Espera) { |
williequesada | 0:c025e4fdbffb | 84 | TimeOut=0; |
williequesada | 0:c025e4fdbffb | 85 | break; |
williequesada | 0:c025e4fdbffb | 86 | } |
williequesada | 0:c025e4fdbffb | 87 | } |
williequesada | 0:c025e4fdbffb | 88 | wait_ms(Delay); |
williequesada | 0:c025e4fdbffb | 89 | if(TimeOut) { |
williequesada | 0:c025e4fdbffb | 90 | for(int i=0; i<Sim900_Counter; i++) { |
williequesada | 0:c025e4fdbffb | 91 | Computer.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 92 | if(Sim900_Buffer[i]==Answer[0]) { |
williequesada | 0:c025e4fdbffb | 93 | RightAnswer1=1; |
williequesada | 0:c025e4fdbffb | 94 | } |
williequesada | 0:c025e4fdbffb | 95 | if(Sim900_Buffer[i]==Answer[1]) { |
williequesada | 0:c025e4fdbffb | 96 | RightAnswer2=1; |
williequesada | 0:c025e4fdbffb | 97 | } |
williequesada | 0:c025e4fdbffb | 98 | } |
williequesada | 0:c025e4fdbffb | 99 | if(RightAnswer1 && RightAnswer2) { |
williequesada | 0:c025e4fdbffb | 100 | Computer.printf("OK-> Respuesta correcta\n"); |
williequesada | 0:c025e4fdbffb | 101 | } else { |
williequesada | 0:c025e4fdbffb | 102 | Computer.printf("ERROR-> Respuesta incorrecta\n"); |
williequesada | 0:c025e4fdbffb | 103 | wait_ms(2000); |
williequesada | 0:c025e4fdbffb | 104 | |
williequesada | 0:c025e4fdbffb | 105 | Gsm.printf("%s",Command); |
williequesada | 0:c025e4fdbffb | 106 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 107 | TimeOut=0; |
williequesada | 0:c025e4fdbffb | 108 | RightAnswer1=0; |
williequesada | 0:c025e4fdbffb | 109 | RightAnswer2=0; |
williequesada | 0:c025e4fdbffb | 110 | Inicio=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 111 | |
williequesada | 0:c025e4fdbffb | 112 | while(true) { // Esta funcion detiene el programa y espera una respuesta |
williequesada | 0:c025e4fdbffb | 113 | Fin=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 114 | Transcurrido=Fin-Inicio; |
williequesada | 0:c025e4fdbffb | 115 | if(Sim900_Counter>0) { |
williequesada | 0:c025e4fdbffb | 116 | TimeOut=1; |
williequesada | 0:c025e4fdbffb | 117 | break; |
williequesada | 0:c025e4fdbffb | 118 | } |
williequesada | 0:c025e4fdbffb | 119 | if(Transcurrido>Espera) { |
williequesada | 0:c025e4fdbffb | 120 | TimeOut=0; |
williequesada | 0:c025e4fdbffb | 121 | break; |
williequesada | 0:c025e4fdbffb | 122 | } |
williequesada | 0:c025e4fdbffb | 123 | } |
williequesada | 0:c025e4fdbffb | 124 | wait_ms(Delay); |
williequesada | 0:c025e4fdbffb | 125 | if(TimeOut) { |
williequesada | 0:c025e4fdbffb | 126 | for(int i=0; i<Sim900_Counter; i++) { |
williequesada | 0:c025e4fdbffb | 127 | Computer.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 128 | if(Sim900_Buffer[i]==Answer[0]) { |
williequesada | 0:c025e4fdbffb | 129 | RightAnswer1=1; |
williequesada | 0:c025e4fdbffb | 130 | } |
williequesada | 0:c025e4fdbffb | 131 | if(Sim900_Buffer[i]==Answer[1]) { |
williequesada | 0:c025e4fdbffb | 132 | RightAnswer2=1; |
williequesada | 0:c025e4fdbffb | 133 | } |
williequesada | 0:c025e4fdbffb | 134 | } |
williequesada | 0:c025e4fdbffb | 135 | if(RightAnswer1 && RightAnswer2) { |
williequesada | 0:c025e4fdbffb | 136 | Computer.printf("OK-> Respuesta correcta\n"); |
williequesada | 0:c025e4fdbffb | 137 | } else { |
williequesada | 0:c025e4fdbffb | 138 | Computer.printf("ERROR-> Respuesta incorrecta\n"); |
williequesada | 0:c025e4fdbffb | 139 | } |
williequesada | 0:c025e4fdbffb | 140 | } else { |
williequesada | 0:c025e4fdbffb | 141 | Computer.printf("ERROR-> Sin respuesta\n"); |
williequesada | 0:c025e4fdbffb | 142 | } |
williequesada | 0:c025e4fdbffb | 143 | } |
williequesada | 0:c025e4fdbffb | 144 | } else { |
williequesada | 0:c025e4fdbffb | 145 | Computer.printf("ERROR-> Sin respuesta\n"); |
williequesada | 0:c025e4fdbffb | 146 | } |
williequesada | 0:c025e4fdbffb | 147 | } |
williequesada | 0:c025e4fdbffb | 148 | |
williequesada | 0:c025e4fdbffb | 149 | void EncenderSIM900() |
williequesada | 0:c025e4fdbffb | 150 | { |
williequesada | 0:c025e4fdbffb | 151 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 152 | if(Gsm.writeable()) { |
williequesada | 0:c025e4fdbffb | 153 | Gsm.printf("AT\r\n"); |
williequesada | 0:c025e4fdbffb | 154 | } |
williequesada | 0:c025e4fdbffb | 155 | wait_ms(100); |
williequesada | 0:c025e4fdbffb | 156 | |
williequesada | 0:c025e4fdbffb | 157 | if(Sim900_Counter==0) { |
williequesada | 0:c025e4fdbffb | 158 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 159 | EnableSIM900 = 1; |
williequesada | 0:c025e4fdbffb | 160 | wait_ms(600); |
williequesada | 0:c025e4fdbffb | 161 | EnableSIM900 = 0; |
williequesada | 0:c025e4fdbffb | 162 | wait_ms(1000); |
williequesada | 0:c025e4fdbffb | 163 | |
williequesada | 0:c025e4fdbffb | 164 | bool TimeOut=0; |
williequesada | 0:c025e4fdbffb | 165 | bool RightAnswer1=0; |
williequesada | 0:c025e4fdbffb | 166 | bool RightAnswer2=0; |
williequesada | 0:c025e4fdbffb | 167 | bool WrongAnswer1=0; |
williequesada | 0:c025e4fdbffb | 168 | bool WrongAnswer2=0; |
williequesada | 0:c025e4fdbffb | 169 | Inicio=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 170 | |
williequesada | 0:c025e4fdbffb | 171 | while(true) { // Esta funcion detiene el programa y espera una respuesta |
williequesada | 0:c025e4fdbffb | 172 | Fin=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 173 | Transcurrido=Fin-Inicio; |
williequesada | 0:c025e4fdbffb | 174 | if(Sim900_Counter>5) { |
williequesada | 0:c025e4fdbffb | 175 | TimeOut=1; |
williequesada | 0:c025e4fdbffb | 176 | break; |
williequesada | 0:c025e4fdbffb | 177 | } |
williequesada | 0:c025e4fdbffb | 178 | if(Transcurrido>1000) { |
williequesada | 0:c025e4fdbffb | 179 | TimeOut=0; |
williequesada | 0:c025e4fdbffb | 180 | break; |
williequesada | 0:c025e4fdbffb | 181 | } |
williequesada | 0:c025e4fdbffb | 182 | } |
williequesada | 0:c025e4fdbffb | 183 | wait_ms(500); |
williequesada | 0:c025e4fdbffb | 184 | if(TimeOut) { |
williequesada | 0:c025e4fdbffb | 185 | for(int i=0; i<Sim900_Counter; i++) { |
williequesada | 0:c025e4fdbffb | 186 | Computer.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 187 | if(Sim900_Buffer[i]=='F') { |
williequesada | 0:c025e4fdbffb | 188 | RightAnswer1=1; |
williequesada | 0:c025e4fdbffb | 189 | } |
williequesada | 0:c025e4fdbffb | 190 | if(Sim900_Buffer[i]=='I') { |
williequesada | 0:c025e4fdbffb | 191 | RightAnswer2=1; |
williequesada | 0:c025e4fdbffb | 192 | } |
williequesada | 0:c025e4fdbffb | 193 | if(Sim900_Buffer[i]=='O') { |
williequesada | 0:c025e4fdbffb | 194 | WrongAnswer1=1; |
williequesada | 0:c025e4fdbffb | 195 | } |
williequesada | 0:c025e4fdbffb | 196 | if(Sim900_Buffer[i]=='W') { |
williequesada | 0:c025e4fdbffb | 197 | WrongAnswer2=1; |
williequesada | 0:c025e4fdbffb | 198 | } |
williequesada | 0:c025e4fdbffb | 199 | } |
williequesada | 0:c025e4fdbffb | 200 | if(RightAnswer1 && RightAnswer2) { |
williequesada | 0:c025e4fdbffb | 201 | Computer.printf("OK-> Encendido correctamente\n"); |
williequesada | 0:c025e4fdbffb | 202 | wait_ms(3500); |
williequesada | 0:c025e4fdbffb | 203 | } else { |
williequesada | 0:c025e4fdbffb | 204 | if(WrongAnswer1 && WrongAnswer2) { |
williequesada | 0:c025e4fdbffb | 205 | Computer.printf("OK-> Apagado error\n"); |
williequesada | 0:c025e4fdbffb | 206 | wait_ms(4000); |
williequesada | 0:c025e4fdbffb | 207 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 208 | EnableSIM900 = 1; |
williequesada | 0:c025e4fdbffb | 209 | wait_ms(600); |
williequesada | 0:c025e4fdbffb | 210 | EnableSIM900 = 0; |
williequesada | 0:c025e4fdbffb | 211 | wait_ms(5000); |
williequesada | 0:c025e4fdbffb | 212 | } |
williequesada | 0:c025e4fdbffb | 213 | } |
williequesada | 0:c025e4fdbffb | 214 | } |
williequesada | 0:c025e4fdbffb | 215 | } else { |
williequesada | 0:c025e4fdbffb | 216 | for(int i=0; i<=Sim900_Counter; i++) { |
williequesada | 0:c025e4fdbffb | 217 | Computer.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 218 | } |
williequesada | 0:c025e4fdbffb | 219 | } |
williequesada | 0:c025e4fdbffb | 220 | |
williequesada | 0:c025e4fdbffb | 221 | } |
williequesada | 0:c025e4fdbffb | 222 | |
williequesada | 0:c025e4fdbffb | 223 | void IniciarSIM900() |
williequesada | 0:c025e4fdbffb | 224 | { |
williequesada | 0:c025e4fdbffb | 225 | PrintSerialRepeat("AT+CPIN?\r\n","OK",500,75); // Respuesta +CPIN: READY\n\nOK |
williequesada | 0:c025e4fdbffb | 226 | PrintSerialRepeat("AT+CSQ\r\n","OK",500,100); // Respuesta +Señal Disponible OK |
williequesada | 0:c025e4fdbffb | 227 | PrintSerialRepeat("AT+CREG=1\r\n","OK",500,250); // Peticion de conexion GPRS OK |
williequesada | 0:c025e4fdbffb | 228 | wait(2); |
williequesada | 0:c025e4fdbffb | 229 | } |
williequesada | 0:c025e4fdbffb | 230 | |
williequesada | 0:c025e4fdbffb | 231 | void ConexionGPRS() |
williequesada | 0:c025e4fdbffb | 232 | { |
williequesada | 0:c025e4fdbffb | 233 | PrintSerialRepeat("AT+CGATT=1\r\n","OK",2000,1000); |
williequesada | 0:c025e4fdbffb | 234 | PrintSerialRepeat("AT+SAPBR=1,1\r\n","OK",500,1000); |
williequesada | 0:c025e4fdbffb | 235 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 236 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 237 | } |
williequesada | 0:c025e4fdbffb | 238 | } |
williequesada | 0:c025e4fdbffb | 239 | |
williequesada | 0:c025e4fdbffb | 240 | void ApagarSIM900() |
williequesada | 0:c025e4fdbffb | 241 | { |
williequesada | 0:c025e4fdbffb | 242 | PrintSerialRepeat("AT+CPOWD=1\r\n","WD",500,500); |
williequesada | 0:c025e4fdbffb | 243 | wait_ms(1000); |
williequesada | 0:c025e4fdbffb | 244 | |
williequesada | 0:c025e4fdbffb | 245 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 246 | if(Gsm.writeable()) { |
williequesada | 0:c025e4fdbffb | 247 | Gsm.printf("AT\r\n"); |
williequesada | 0:c025e4fdbffb | 248 | } |
williequesada | 0:c025e4fdbffb | 249 | wait_ms(100); |
williequesada | 0:c025e4fdbffb | 250 | |
williequesada | 0:c025e4fdbffb | 251 | if(Sim900_Counter>5) { |
williequesada | 0:c025e4fdbffb | 252 | EnableSIM900 = 1; |
williequesada | 0:c025e4fdbffb | 253 | wait_ms(600); |
williequesada | 0:c025e4fdbffb | 254 | EnableSIM900 = 0; |
williequesada | 0:c025e4fdbffb | 255 | } |
williequesada | 0:c025e4fdbffb | 256 | } |
williequesada | 0:c025e4fdbffb | 257 | |
williequesada | 0:c025e4fdbffb | 258 | void PostEncryptHTTP() |
williequesada | 0:c025e4fdbffb | 259 | { |
williequesada | 0:c025e4fdbffb | 260 | PrintSerialRepeat("AT+HTTPINIT\r\n","OK",500,50); // Iniciar servicio HTTP, Respuesta OK |
williequesada | 0:c025e4fdbffb | 261 | //PrintSerialRepeat("AT+HTTPPARA=\"CID\",1\r\n","OK",500,50); |
williequesada | 0:c025e4fdbffb | 262 | 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" |
williequesada | 0:c025e4fdbffb | 263 | //PrintSerialRepeat("AT+HTTPPARA=\"URL\",\"http://34.211.174.1:8080/AIGRest/AIGService/parkPQ\"\r\n","OK",1500,140); |
williequesada | 0:c025e4fdbffb | 264 | //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" |
williequesada | 0:c025e4fdbffb | 265 | PrintSerialRepeat("AT+HTTPPARA=\"CONTENT\",\"application/json\"\r\n","OK",500,75); // AT+HTTPPARA="CONTENT","application/json" |
williequesada | 0:c025e4fdbffb | 266 | char Len[24]; |
williequesada | 0:c025e4fdbffb | 267 | sprintf(Len,"AT+HTTPDATA=%i,10000\r\n",(strlen(Encrypt))); |
williequesada | 0:c025e4fdbffb | 268 | if(Gsm.writeable()) { |
williequesada | 0:c025e4fdbffb | 269 | Gsm.printf("%s",Len); |
williequesada | 0:c025e4fdbffb | 270 | } // Envio de parametros de la informacion, Respuesta DOWNLOAD OK |
williequesada | 0:c025e4fdbffb | 271 | wait_ms(200); |
williequesada | 0:c025e4fdbffb | 272 | if(Gsm.writeable()) { |
williequesada | 0:c025e4fdbffb | 273 | for(int i=0; i<174; i++) { |
williequesada | 0:c025e4fdbffb | 274 | Gsm.putc(Encrypt[i]); |
williequesada | 0:c025e4fdbffb | 275 | } |
williequesada | 0:c025e4fdbffb | 276 | } // Envio de informacion al web servicio |
williequesada | 0:c025e4fdbffb | 277 | wait_ms(500); |
williequesada | 0:c025e4fdbffb | 278 | for(int i=0; i<=Sim900_Counter; i++) { |
williequesada | 0:c025e4fdbffb | 279 | Computer.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 280 | } |
williequesada | 0:c025e4fdbffb | 281 | wait_ms(500); |
williequesada | 0:c025e4fdbffb | 282 | PrintSerialRepeat("AT+HTTPACTION=1\r\n","OK",8000,1800); // Respuesta OK +HTTPACTION:1,200,7 |
williequesada | 0:c025e4fdbffb | 283 | } |
williequesada | 0:c025e4fdbffb | 284 | |
williequesada | 0:c025e4fdbffb | 285 | void PrintEncryption() |
williequesada | 0:c025e4fdbffb | 286 | { |
williequesada | 0:c025e4fdbffb | 287 | Computer.printf("Mensaje: "); |
williequesada | 0:c025e4fdbffb | 288 | for(int i=0; i<173; i++) { |
williequesada | 0:c025e4fdbffb | 289 | Computer.putc(Encrypt[i]); |
williequesada | 0:c025e4fdbffb | 290 | } |
williequesada | 0:c025e4fdbffb | 291 | } |
williequesada | 0:c025e4fdbffb | 292 | |
williequesada | 0:c025e4fdbffb | 293 | void RespuestaHTTP() |
williequesada | 0:c025e4fdbffb | 294 | { |
williequesada | 0:c025e4fdbffb | 295 | PrintSerialRepeat("AT+HTTPREAD=0,9000\r\n","OK",500,150); |
williequesada | 0:c025e4fdbffb | 296 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 297 | Inicio=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 298 | while(true) { // Esta funcion detiene el programa y espera una respuesta |
williequesada | 0:c025e4fdbffb | 299 | Fin=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 300 | Transcurrido=Fin-Inicio; |
williequesada | 0:c025e4fdbffb | 301 | if(Sim900_Counter>10) { |
williequesada | 0:c025e4fdbffb | 302 | break; |
williequesada | 0:c025e4fdbffb | 303 | } |
williequesada | 0:c025e4fdbffb | 304 | if(Transcurrido>20000) { |
williequesada | 0:c025e4fdbffb | 305 | break; |
williequesada | 0:c025e4fdbffb | 306 | } |
williequesada | 0:c025e4fdbffb | 307 | } |
williequesada | 0:c025e4fdbffb | 308 | wait_ms(150); |
williequesada | 0:c025e4fdbffb | 309 | Sim900_Counter=0; // +HTTPREAD:7 OKAlpha, OK+310325+10:29+2018-04-10 |
williequesada | 0:c025e4fdbffb | 310 | bool RightAnswer1=0; |
williequesada | 0:c025e4fdbffb | 311 | bool RightAnswer2=0; |
williequesada | 0:c025e4fdbffb | 312 | bool RightAnswer3=0; |
williequesada | 0:c025e4fdbffb | 313 | int RightAnswer4=0; |
williequesada | 0:c025e4fdbffb | 314 | bool WrongAnswer1=0; |
williequesada | 0:c025e4fdbffb | 315 | int WrongAnswer2=0; |
williequesada | 0:c025e4fdbffb | 316 | |
williequesada | 0:c025e4fdbffb | 317 | |
williequesada | 0:c025e4fdbffb | 318 | if(Gsm.writeable()) { |
williequesada | 0:c025e4fdbffb | 319 | Gsm.printf("AT+HTTPREAD=0,9000\r\n"); |
williequesada | 0:c025e4fdbffb | 320 | } |
williequesada | 0:c025e4fdbffb | 321 | wait_ms(250); |
williequesada | 0:c025e4fdbffb | 322 | for(int i=0; i<Sim900_Counter; i++) { |
williequesada | 0:c025e4fdbffb | 323 | Computer.printf("%c",Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 324 | if(Sim900_Buffer[i]=='O') { |
williequesada | 0:c025e4fdbffb | 325 | RightAnswer1=1; |
williequesada | 0:c025e4fdbffb | 326 | } |
williequesada | 0:c025e4fdbffb | 327 | if(Sim900_Buffer[i]=='K') { |
williequesada | 0:c025e4fdbffb | 328 | RightAnswer2=1; |
williequesada | 0:c025e4fdbffb | 329 | } |
williequesada | 0:c025e4fdbffb | 330 | if(Sim900_Buffer[i]=='-') { |
williequesada | 0:c025e4fdbffb | 331 | RightAnswer3=1; |
williequesada | 0:c025e4fdbffb | 332 | } |
williequesada | 0:c025e4fdbffb | 333 | if(Sim900_Buffer[i]=='E') { |
williequesada | 0:c025e4fdbffb | 334 | WrongAnswer1=1; |
williequesada | 0:c025e4fdbffb | 335 | } |
williequesada | 0:c025e4fdbffb | 336 | if(Sim900_Buffer[i]=='R') { |
williequesada | 0:c025e4fdbffb | 337 | WrongAnswer2++; |
williequesada | 0:c025e4fdbffb | 338 | } |
williequesada | 0:c025e4fdbffb | 339 | if(Sim900_Buffer[i]=='+') { |
williequesada | 0:c025e4fdbffb | 340 | RightAnswer4++; |
williequesada | 0:c025e4fdbffb | 341 | } |
williequesada | 0:c025e4fdbffb | 342 | } |
williequesada | 0:c025e4fdbffb | 343 | |
williequesada | 0:c025e4fdbffb | 344 | if(RightAnswer4==1&&WrongAnswer2==1) { |
williequesada | 0:c025e4fdbffb | 345 | Computer.printf("Respuesta incompleta %s\n",RightAnswer4 ); |
williequesada | 0:c025e4fdbffb | 346 | PrintSerialRepeat("AT+HTTPREAD=0,9000\r\n","OK",500,150); |
williequesada | 0:c025e4fdbffb | 347 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 348 | Computer.printf("Esperando respuesta\n"); |
williequesada | 0:c025e4fdbffb | 349 | Inicio=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 350 | while(true) { // Esta funcion detiene el programa y espera una respuesta |
williequesada | 0:c025e4fdbffb | 351 | Fin=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 352 | Transcurrido=Fin-Inicio; |
williequesada | 0:c025e4fdbffb | 353 | if(Sim900_Counter>10) { |
williequesada | 0:c025e4fdbffb | 354 | break; |
williequesada | 0:c025e4fdbffb | 355 | } |
williequesada | 0:c025e4fdbffb | 356 | if(Transcurrido>20000) { |
williequesada | 0:c025e4fdbffb | 357 | break; |
williequesada | 0:c025e4fdbffb | 358 | } |
williequesada | 0:c025e4fdbffb | 359 | } |
williequesada | 0:c025e4fdbffb | 360 | wait_ms(250); // +HTTPREAD:7 OKAlpha, OK+310325+10:29+2018-04-10 |
williequesada | 0:c025e4fdbffb | 361 | RightAnswer1=0; |
williequesada | 0:c025e4fdbffb | 362 | RightAnswer2=0; |
williequesada | 0:c025e4fdbffb | 363 | RightAnswer3=0; |
williequesada | 0:c025e4fdbffb | 364 | RightAnswer4=0; |
williequesada | 0:c025e4fdbffb | 365 | |
williequesada | 0:c025e4fdbffb | 366 | PrintSerialRepeat("AT+HTTPREAD=0,9000\r\n","OK",500,250); |
williequesada | 0:c025e4fdbffb | 367 | for(int i=0; i<Sim900_Counter; i++) { |
williequesada | 0:c025e4fdbffb | 368 | Computer.printf("%c",Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 369 | if(Sim900_Buffer[i]=='O') { |
williequesada | 0:c025e4fdbffb | 370 | RightAnswer1=1; |
williequesada | 0:c025e4fdbffb | 371 | } |
williequesada | 0:c025e4fdbffb | 372 | if(Sim900_Buffer[i]=='K') { |
williequesada | 0:c025e4fdbffb | 373 | RightAnswer2=1; |
williequesada | 0:c025e4fdbffb | 374 | } |
williequesada | 0:c025e4fdbffb | 375 | if(Sim900_Buffer[i]=='-') { |
williequesada | 0:c025e4fdbffb | 376 | RightAnswer3=1; |
williequesada | 0:c025e4fdbffb | 377 | } |
williequesada | 0:c025e4fdbffb | 378 | if(Sim900_Buffer[i]=='+') { |
williequesada | 0:c025e4fdbffb | 379 | RightAnswer4++; |
williequesada | 0:c025e4fdbffb | 380 | } |
williequesada | 0:c025e4fdbffb | 381 | } |
williequesada | 0:c025e4fdbffb | 382 | } |
williequesada | 0:c025e4fdbffb | 383 | |
williequesada | 0:c025e4fdbffb | 384 | if(RightAnswer3&&RightAnswer2&&RightAnswer1) { |
williequesada | 0:c025e4fdbffb | 385 | Computer.printf("Aceptada\n"); |
williequesada | 0:c025e4fdbffb | 386 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 387 | Computer.printf("<--"); |
williequesada | 0:c025e4fdbffb | 388 | for(int i=37; i<=(Sim900_Counter-6); i++) { |
williequesada | 0:c025e4fdbffb | 389 | Master.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 390 | Computer.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 391 | } |
williequesada | 0:c025e4fdbffb | 392 | Master.putc('A'); |
williequesada | 0:c025e4fdbffb | 393 | Computer.printf("-->"); |
williequesada | 0:c025e4fdbffb | 394 | } |
williequesada | 0:c025e4fdbffb | 395 | } else if(WrongAnswer1&&(WrongAnswer2>1)) { |
williequesada | 0:c025e4fdbffb | 396 | Computer.printf("Rechazada\n"); |
williequesada | 0:c025e4fdbffb | 397 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 398 | Master.printf("Rechazada"); |
williequesada | 0:c025e4fdbffb | 399 | Master.putc('R'); |
williequesada | 0:c025e4fdbffb | 400 | } |
williequesada | 0:c025e4fdbffb | 401 | } else { |
williequesada | 0:c025e4fdbffb | 402 | Computer.printf("Sin respuesta\n"); |
williequesada | 0:c025e4fdbffb | 403 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 404 | Master.printf("Rechazada"); |
williequesada | 0:c025e4fdbffb | 405 | Master.putc('R'); |
williequesada | 0:c025e4fdbffb | 406 | } |
williequesada | 0:c025e4fdbffb | 407 | } |
williequesada | 0:c025e4fdbffb | 408 | PrintSerialRepeat("AT+HTTPTERM\r\n","OK",500,50); |
williequesada | 0:c025e4fdbffb | 409 | PrintSerialRepeat("AT+SAPBR=0,1\r\n","OK",500,50); |
williequesada | 0:c025e4fdbffb | 410 | } |
williequesada | 0:c025e4fdbffb | 411 | |
williequesada | 0:c025e4fdbffb | 412 | |
williequesada | 0:c025e4fdbffb | 413 | void FinalizarComunicacion() |
williequesada | 0:c025e4fdbffb | 414 | { |
williequesada | 0:c025e4fdbffb | 415 | PrintSerialRepeat("AT+SAPBR=0,1\r\n","OK",500,50); |
williequesada | 0:c025e4fdbffb | 416 | } |
williequesada | 0:c025e4fdbffb | 417 | |
williequesada | 0:c025e4fdbffb | 418 | void ReadUsuario() |
williequesada | 0:c025e4fdbffb | 419 | { |
williequesada | 0:c025e4fdbffb | 420 | Computer.printf("Read Usuario\n"); |
williequesada | 0:c025e4fdbffb | 421 | wait_ms(1000); |
williequesada | 0:c025e4fdbffb | 422 | for(int i=0; i<172; i++) { |
williequesada | 0:c025e4fdbffb | 423 | Encrypt[i]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 424 | Computer.printf("-%c-",Encrypt[i]); |
williequesada | 0:c025e4fdbffb | 425 | } |
williequesada | 0:c025e4fdbffb | 426 | Encrypt[173]='\r'; |
williequesada | 0:c025e4fdbffb | 427 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 428 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 429 | } |
williequesada | 0:c025e4fdbffb | 430 | } |
williequesada | 0:c025e4fdbffb | 431 | |
williequesada | 0:c025e4fdbffb | 432 | void ConexionSIM900() |
williequesada | 0:c025e4fdbffb | 433 | { |
williequesada | 0:c025e4fdbffb | 434 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 435 | EnableSIM900 = 1; |
williequesada | 0:c025e4fdbffb | 436 | wait_ms(600); |
williequesada | 0:c025e4fdbffb | 437 | EnableSIM900 = 0; |
williequesada | 0:c025e4fdbffb | 438 | char ConectionEnable; |
williequesada | 0:c025e4fdbffb | 439 | Inicio=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 440 | while (true) { |
williequesada | 0:c025e4fdbffb | 441 | Fin=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 442 | Transcurrido=Fin-Inicio; |
williequesada | 0:c025e4fdbffb | 443 | if(Sim900_Counter>0) { |
williequesada | 0:c025e4fdbffb | 444 | Computer.printf("Conectado\n"); |
williequesada | 0:c025e4fdbffb | 445 | ConectionEnable='A'; |
williequesada | 0:c025e4fdbffb | 446 | break; |
williequesada | 0:c025e4fdbffb | 447 | } |
williequesada | 0:c025e4fdbffb | 448 | if(Transcurrido>5000) { |
williequesada | 0:c025e4fdbffb | 449 | Computer.printf("Desconectado\n"); |
williequesada | 0:c025e4fdbffb | 450 | ConectionEnable='E'; |
williequesada | 0:c025e4fdbffb | 451 | break; |
williequesada | 0:c025e4fdbffb | 452 | } |
williequesada | 0:c025e4fdbffb | 453 | } |
williequesada | 0:c025e4fdbffb | 454 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 455 | Master.putc(ConectionEnable); |
williequesada | 0:c025e4fdbffb | 456 | } |
williequesada | 0:c025e4fdbffb | 457 | wait(5); |
williequesada | 0:c025e4fdbffb | 458 | ApagarSIM900(); |
williequesada | 0:c025e4fdbffb | 459 | } |
williequesada | 0:c025e4fdbffb | 460 | |
williequesada | 0:c025e4fdbffb | 461 | void CoberturaSIM900() |
williequesada | 0:c025e4fdbffb | 462 | { |
williequesada | 0:c025e4fdbffb | 463 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 464 | EnableSIM900 = 1; |
williequesada | 0:c025e4fdbffb | 465 | wait_ms(600); |
williequesada | 0:c025e4fdbffb | 466 | EnableSIM900 = 0; |
williequesada | 0:c025e4fdbffb | 467 | wait_ms(6000); |
williequesada | 0:c025e4fdbffb | 468 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 469 | |
williequesada | 0:c025e4fdbffb | 470 | if(Gsm.writeable()) { |
williequesada | 0:c025e4fdbffb | 471 | Gsm.printf("AT+CSQ\r\n"); |
williequesada | 0:c025e4fdbffb | 472 | } |
williequesada | 0:c025e4fdbffb | 473 | |
williequesada | 0:c025e4fdbffb | 474 | Inicio=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 475 | while (true) { |
williequesada | 0:c025e4fdbffb | 476 | Fin=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 477 | Transcurrido=Fin-Inicio; |
williequesada | 0:c025e4fdbffb | 478 | if(Sim900_Counter>0) { |
williequesada | 0:c025e4fdbffb | 479 | wait_ms(75); |
williequesada | 0:c025e4fdbffb | 480 | break; |
williequesada | 0:c025e4fdbffb | 481 | } |
williequesada | 0:c025e4fdbffb | 482 | if(Transcurrido>1000) { |
williequesada | 0:c025e4fdbffb | 483 | break; |
williequesada | 0:c025e4fdbffb | 484 | } |
williequesada | 0:c025e4fdbffb | 485 | } |
williequesada | 0:c025e4fdbffb | 486 | if(Sim900_Counter>0) { |
williequesada | 0:c025e4fdbffb | 487 | for(int i=0; i<Sim900_Counter; i++) { |
williequesada | 0:c025e4fdbffb | 488 | Computer.printf("%c",Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 489 | if(((uint8_t)Sim900_Buffer[i]>=0x30)&&((uint8_t)Sim900_Buffer[i]<0x3A)) { |
williequesada | 0:c025e4fdbffb | 490 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 491 | Master.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 492 | } |
williequesada | 0:c025e4fdbffb | 493 | } |
williequesada | 0:c025e4fdbffb | 494 | Computer.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 495 | } |
williequesada | 0:c025e4fdbffb | 496 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 497 | Master.putc('A'); |
williequesada | 0:c025e4fdbffb | 498 | } |
williequesada | 0:c025e4fdbffb | 499 | } else { |
williequesada | 0:c025e4fdbffb | 500 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 501 | Master.putc('E'); |
williequesada | 0:c025e4fdbffb | 502 | } |
williequesada | 0:c025e4fdbffb | 503 | } |
williequesada | 0:c025e4fdbffb | 504 | ApagarSIM900(); |
williequesada | 0:c025e4fdbffb | 505 | wait_ms(3900); |
williequesada | 0:c025e4fdbffb | 506 | } |
williequesada | 0:c025e4fdbffb | 507 | void Step1() |
williequesada | 0:c025e4fdbffb | 508 | { |
williequesada | 0:c025e4fdbffb | 509 | Computer.printf("Encender\n"); |
williequesada | 0:c025e4fdbffb | 510 | EncenderSIM900(); |
williequesada | 0:c025e4fdbffb | 511 | wait(5); |
williequesada | 0:c025e4fdbffb | 512 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 513 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 514 | } |
williequesada | 0:c025e4fdbffb | 515 | } |
williequesada | 0:c025e4fdbffb | 516 | |
williequesada | 0:c025e4fdbffb | 517 | void Step2(){ |
williequesada | 0:c025e4fdbffb | 518 | PrintSerialRepeat("AT+CPIN?\r\n","OK",500,75); // Respuesta +CPIN: READY\n\nOK |
williequesada | 0:c025e4fdbffb | 519 | PrintSerialRepeat("AT+CSQ\r\n","OK",500,100); |
williequesada | 0:c025e4fdbffb | 520 | PrintSerialRepeat("AT+CREG=1\r\n","OK",500,250); |
williequesada | 0:c025e4fdbffb | 521 | PrintSerialRepeat("AT+CIPSHUT\r\n","OK",500,150); // Respuesta OK |
williequesada | 0:c025e4fdbffb | 522 | |
williequesada | 0:c025e4fdbffb | 523 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 524 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 525 | } |
williequesada | 0:c025e4fdbffb | 526 | } |
williequesada | 0:c025e4fdbffb | 527 | |
williequesada | 0:c025e4fdbffb | 528 | void Step3() |
williequesada | 0:c025e4fdbffb | 529 | { |
williequesada | 0:c025e4fdbffb | 530 | PrintSerialRepeat("AT+CIPSTATUS\r\n","OK",500,100); // Respuesta OK STATE: IP INITIAL |
williequesada | 0:c025e4fdbffb | 531 | PrintSerialRepeat("AT+CIPMUX=0\r\n","OK",500,100); // Respuesta OK |
williequesada | 0:c025e4fdbffb | 532 | wait(4); |
williequesada | 0:c025e4fdbffb | 533 | PrintSerialRepeat("AT+CGATT=1\r\n","OK",2000,3000); |
williequesada | 0:c025e4fdbffb | 534 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 535 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 536 | } |
williequesada | 0:c025e4fdbffb | 537 | } |
williequesada | 0:c025e4fdbffb | 538 | |
williequesada | 0:c025e4fdbffb | 539 | void Step4() |
williequesada | 0:c025e4fdbffb | 540 | { |
williequesada | 0:c025e4fdbffb | 541 | wait(3); |
williequesada | 0:c025e4fdbffb | 542 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 543 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 544 | } |
williequesada | 0:c025e4fdbffb | 545 | } |
williequesada | 0:c025e4fdbffb | 546 | |
williequesada | 0:c025e4fdbffb | 547 | void Step5() |
williequesada | 0:c025e4fdbffb | 548 | { |
williequesada | 0:c025e4fdbffb | 549 | //PrintSerialRepeat("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n","OK",500,100); // Respuesta OK |
williequesada | 0:c025e4fdbffb | 550 | //PrintSerialRepeat("AT+SAPBR=3,1,\"APN\",\"\"\r\n","OK",500,100); // Respuesta OK, AT+SAPBR=3,1,"APN","" |
williequesada | 0:c025e4fdbffb | 551 | wait(3); |
williequesada | 0:c025e4fdbffb | 552 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 553 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 554 | } |
williequesada | 0:c025e4fdbffb | 555 | } |
williequesada | 0:c025e4fdbffb | 556 | void Step6() |
williequesada | 0:c025e4fdbffb | 557 | { |
williequesada | 0:c025e4fdbffb | 558 | PrintSerialRepeat("AT+SAPBR=1,1\r\n","OK",500,1000); // Respuesta OK |
williequesada | 0:c025e4fdbffb | 559 | //PrintSerialRepeat("AT+SAPBR=2,1\r\n","OK",500,1000); |
williequesada | 0:c025e4fdbffb | 560 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 561 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 562 | } |
williequesada | 0:c025e4fdbffb | 563 | } |
williequesada | 0:c025e4fdbffb | 564 | |
williequesada | 0:c025e4fdbffb | 565 | void Step7() |
williequesada | 0:c025e4fdbffb | 566 | { |
williequesada | 0:c025e4fdbffb | 567 | PrintSerialRepeat("AT+HTTPINIT\r\n","OK",500,50); |
williequesada | 0:c025e4fdbffb | 568 | //PrintSerialRepeat("AT+HTTPPARA=\"CID\",1\r\n","OK",500,50); |
williequesada | 0:c025e4fdbffb | 569 | //PrintSerialRepeat("AT+HTTPPARA=\"REDIR\",1\r\n","OK",1500,140); |
williequesada | 0:c025e4fdbffb | 570 | PrintSerialRepeat("AT+HTTPPARA=\"URL\",\"http://52.39.146.172:8181/AIGRest/AIGService/alertPQ\"\r\n","OK",1500,140); |
williequesada | 0:c025e4fdbffb | 571 | //PrintSerialRepeat("AT+HTTPPARA=\"URL\",\"http://34.211.174.1:8080/AIGRest/AIGService/alertPQ\"\r\n","OK",1500,140); |
williequesada | 0:c025e4fdbffb | 572 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 573 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 574 | } |
williequesada | 0:c025e4fdbffb | 575 | } |
williequesada | 0:c025e4fdbffb | 576 | |
williequesada | 0:c025e4fdbffb | 577 | void Step8() |
williequesada | 0:c025e4fdbffb | 578 | { |
williequesada | 0:c025e4fdbffb | 579 | //char HostingData[]="{\"municipio\":\"Santa Ana\",\"id\":0000, \"alerts\":\"000000\"}\r\n"; |
williequesada | 0:c025e4fdbffb | 580 | Computer.printf("%s\n",HostingData); |
williequesada | 0:c025e4fdbffb | 581 | wait_ms(100); |
williequesada | 0:c025e4fdbffb | 582 | // Municipio |
williequesada | 0:c025e4fdbffb | 583 | HostingData[14]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 584 | HostingData[15]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 585 | HostingData[16]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 586 | HostingData[17]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 587 | HostingData[18]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 588 | HostingData[19]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 589 | HostingData[20]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 590 | HostingData[21]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 591 | // Alarmas |
williequesada | 0:c025e4fdbffb | 592 | HostingData[46]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 593 | HostingData[47]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 594 | HostingData[48]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 595 | HostingData[49]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 596 | HostingData[50]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 597 | HostingData[51]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 598 | // Identificador |
williequesada | 0:c025e4fdbffb | 599 | HostingData[30]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 600 | HostingData[31]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 601 | HostingData[32]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 602 | HostingData[33]=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 603 | Computer.printf("%s\n",HostingData); |
williequesada | 0:c025e4fdbffb | 604 | PrintSerialRepeat("AT+HTTPPARA=\"CONTENT\",\"application/json\"\r\n","OK",500,75); // AT+HTTPPARA="CONTENT","application/json" |
williequesada | 0:c025e4fdbffb | 605 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 606 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 607 | } |
williequesada | 0:c025e4fdbffb | 608 | } |
williequesada | 0:c025e4fdbffb | 609 | |
williequesada | 0:c025e4fdbffb | 610 | void Step9() |
williequesada | 0:c025e4fdbffb | 611 | { |
williequesada | 0:c025e4fdbffb | 612 | Computer.printf("-1-\n"); |
williequesada | 0:c025e4fdbffb | 613 | char Len[23]; |
williequesada | 0:c025e4fdbffb | 614 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 615 | sprintf(Len,"AT+HTTPDATA=%i,10000\r\n",(strlen(HostingData))); |
williequesada | 0:c025e4fdbffb | 616 | if(Gsm.writeable()) { |
williequesada | 0:c025e4fdbffb | 617 | Gsm.printf("%s",Len); |
williequesada | 0:c025e4fdbffb | 618 | } // Envio de parametros de la informacion, Respuesta DOWNLOAD OK |
williequesada | 0:c025e4fdbffb | 619 | Computer.printf("-2-\n"); |
williequesada | 0:c025e4fdbffb | 620 | wait_ms(200); |
williequesada | 0:c025e4fdbffb | 621 | if(Gsm.writeable()) { |
williequesada | 0:c025e4fdbffb | 622 | Gsm.printf("%s",HostingData); |
williequesada | 0:c025e4fdbffb | 623 | } // Envio de informacion al web servicio |
williequesada | 0:c025e4fdbffb | 624 | wait_ms(200); |
williequesada | 0:c025e4fdbffb | 625 | for(int i=0; i<=Sim900_Counter; i++) { |
williequesada | 0:c025e4fdbffb | 626 | Computer.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 627 | } |
williequesada | 0:c025e4fdbffb | 628 | Computer.printf("-3-\n"); |
williequesada | 0:c025e4fdbffb | 629 | //PrintSerialRepeat("AT+HTTPSCONT?\r\n","OK",8000,1800); |
williequesada | 0:c025e4fdbffb | 630 | PrintSerialRepeat("AT+HTTPACTION=1\r\n","OK",8000,1800); |
williequesada | 0:c025e4fdbffb | 631 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 632 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 633 | } |
williequesada | 0:c025e4fdbffb | 634 | Computer.printf("-4-\n"); |
williequesada | 0:c025e4fdbffb | 635 | } |
williequesada | 0:c025e4fdbffb | 636 | |
williequesada | 0:c025e4fdbffb | 637 | void Step10() |
williequesada | 0:c025e4fdbffb | 638 | { |
williequesada | 0:c025e4fdbffb | 639 | PrintSerialRepeat("AT+HTTPREAD=0,9000\r\n","OK",150,50); |
williequesada | 0:c025e4fdbffb | 640 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 641 | Computer.printf("Esperando respuesta\n"); |
williequesada | 0:c025e4fdbffb | 642 | Inicio=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 643 | while(true) { // Esta funcion detiene el programa y espera una respuesta |
williequesada | 0:c025e4fdbffb | 644 | Fin=BaseClock.read_ms(); |
williequesada | 0:c025e4fdbffb | 645 | Transcurrido=Fin-Inicio; |
williequesada | 0:c025e4fdbffb | 646 | if(Sim900_Counter>10) { |
williequesada | 0:c025e4fdbffb | 647 | Computer.printf("Recibido\n"); |
williequesada | 0:c025e4fdbffb | 648 | break; |
williequesada | 0:c025e4fdbffb | 649 | } |
williequesada | 0:c025e4fdbffb | 650 | if(Transcurrido>9000) { |
williequesada | 0:c025e4fdbffb | 651 | Computer.printf("Tiempo\n"); |
williequesada | 0:c025e4fdbffb | 652 | break; |
williequesada | 0:c025e4fdbffb | 653 | } |
williequesada | 0:c025e4fdbffb | 654 | } |
williequesada | 0:c025e4fdbffb | 655 | wait_ms(50); |
williequesada | 0:c025e4fdbffb | 656 | |
williequesada | 0:c025e4fdbffb | 657 | bool RightAnswer1=0; |
williequesada | 0:c025e4fdbffb | 658 | bool RightAnswer2=0; |
williequesada | 0:c025e4fdbffb | 659 | bool RightAnswer3=0; |
williequesada | 0:c025e4fdbffb | 660 | Sim900_Counter=0; |
williequesada | 0:c025e4fdbffb | 661 | if(Gsm.writeable()) { |
williequesada | 0:c025e4fdbffb | 662 | Gsm.printf("AT+HTTPREAD=0,9000\r\n"); |
williequesada | 0:c025e4fdbffb | 663 | } |
williequesada | 0:c025e4fdbffb | 664 | wait_ms(100); |
williequesada | 0:c025e4fdbffb | 665 | |
williequesada | 0:c025e4fdbffb | 666 | for(int i=0; i<Sim900_Counter; i++) { |
williequesada | 0:c025e4fdbffb | 667 | Computer.putc(Sim900_Buffer[i]); |
williequesada | 0:c025e4fdbffb | 668 | if(Sim900_Buffer[i]=='O') { |
williequesada | 0:c025e4fdbffb | 669 | RightAnswer1=1; |
williequesada | 0:c025e4fdbffb | 670 | } |
williequesada | 0:c025e4fdbffb | 671 | if(Sim900_Buffer[i]=='K') { |
williequesada | 0:c025e4fdbffb | 672 | RightAnswer2=1; |
williequesada | 0:c025e4fdbffb | 673 | } |
williequesada | 0:c025e4fdbffb | 674 | if(Sim900_Buffer[i]=='+') { |
williequesada | 0:c025e4fdbffb | 675 | RightAnswer3=1; |
williequesada | 0:c025e4fdbffb | 676 | } |
williequesada | 0:c025e4fdbffb | 677 | } |
williequesada | 0:c025e4fdbffb | 678 | if(RightAnswer3&&RightAnswer2&&RightAnswer1) { |
williequesada | 0:c025e4fdbffb | 679 | HostingAnswer[0]=Sim900_Buffer[36]; |
williequesada | 0:c025e4fdbffb | 680 | HostingAnswer[1]=Sim900_Buffer[37]; |
williequesada | 0:c025e4fdbffb | 681 | HostingAnswer[2]=Sim900_Buffer[38]; |
williequesada | 0:c025e4fdbffb | 682 | HostingAnswer[3]=Sim900_Buffer[39]; |
williequesada | 0:c025e4fdbffb | 683 | HostingAnswer[4]=Sim900_Buffer[40]; |
williequesada | 0:c025e4fdbffb | 684 | HostingAnswer[5]=Sim900_Buffer[41]; |
williequesada | 0:c025e4fdbffb | 685 | HostingAnswer[6]=Sim900_Buffer[42]; |
williequesada | 0:c025e4fdbffb | 686 | HostingAnswer[7]=Sim900_Buffer[43]; |
williequesada | 0:c025e4fdbffb | 687 | HostingAnswer[8]=Sim900_Buffer[44]; |
williequesada | 0:c025e4fdbffb | 688 | HostingAnswer[9]=Sim900_Buffer[45]; |
williequesada | 0:c025e4fdbffb | 689 | HostingAnswer[10]=Sim900_Buffer[46]; |
williequesada | 0:c025e4fdbffb | 690 | HostingAnswer[11]=Sim900_Buffer[47]; |
williequesada | 0:c025e4fdbffb | 691 | Computer.printf("Aceptada\n"); |
williequesada | 0:c025e4fdbffb | 692 | Computer.printf("<--%s-->\n",HostingAnswer); |
williequesada | 0:c025e4fdbffb | 693 | } else { |
williequesada | 0:c025e4fdbffb | 694 | Computer.printf("Rechazada\n"); |
williequesada | 0:c025e4fdbffb | 695 | } |
williequesada | 0:c025e4fdbffb | 696 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 697 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 698 | } |
williequesada | 0:c025e4fdbffb | 699 | } |
williequesada | 0:c025e4fdbffb | 700 | |
williequesada | 0:c025e4fdbffb | 701 | void Step11() |
williequesada | 0:c025e4fdbffb | 702 | { |
williequesada | 0:c025e4fdbffb | 703 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 704 | Master.printf("%s",HostingAnswer); |
williequesada | 0:c025e4fdbffb | 705 | Computer.printf("<--%s-->",HostingAnswer); |
williequesada | 0:c025e4fdbffb | 706 | } |
williequesada | 0:c025e4fdbffb | 707 | //PrintSerialRepeat("AT+HTTPSCONT?\r\n","OK",2000,2000); |
williequesada | 0:c025e4fdbffb | 708 | //PrintSerialRepeat("AT+HTTPPARA?\r\n","OK",2000,2000); |
williequesada | 0:c025e4fdbffb | 709 | //PrintSerialRepeat("AT+SAPBR=4,1\r\n","OK",500,50); |
williequesada | 0:c025e4fdbffb | 710 | PrintSerialRepeat("AT+HTTPTERM\r\n","OK",500,50); |
williequesada | 0:c025e4fdbffb | 711 | PrintSerialRepeat("AT+SAPBR=0,1\r\n","OK",500,50); |
williequesada | 0:c025e4fdbffb | 712 | if(Master.writeable()) { |
williequesada | 0:c025e4fdbffb | 713 | Master.putc(NEXT_STEP); |
williequesada | 0:c025e4fdbffb | 714 | } |
williequesada | 0:c025e4fdbffb | 715 | HostingAnswer[0]='0'; |
williequesada | 0:c025e4fdbffb | 716 | HostingAnswer[1]='0'; |
williequesada | 0:c025e4fdbffb | 717 | HostingAnswer[2]='0'; |
williequesada | 0:c025e4fdbffb | 718 | HostingAnswer[3]='0'; |
williequesada | 0:c025e4fdbffb | 719 | HostingAnswer[4]='0'; |
williequesada | 0:c025e4fdbffb | 720 | HostingAnswer[5]='0'; |
williequesada | 0:c025e4fdbffb | 721 | wait_ms(3900); |
williequesada | 0:c025e4fdbffb | 722 | } |
williequesada | 0:c025e4fdbffb | 723 | |
williequesada | 0:c025e4fdbffb | 724 | int main() |
williequesada | 0:c025e4fdbffb | 725 | { |
williequesada | 0:c025e4fdbffb | 726 | Gsm.attach(&Interrupt_Sim900); |
williequesada | 0:c025e4fdbffb | 727 | Master.attach(&Interrupt_Master); |
williequesada | 0:c025e4fdbffb | 728 | BaseClock.start(); |
williequesada | 0:c025e4fdbffb | 729 | Computer.printf("Paquimetro 1067 Produccion\n"); |
williequesada | 0:c025e4fdbffb | 730 | Led=0; |
williequesada | 0:c025e4fdbffb | 731 | ResetSIM900=0; |
williequesada | 0:c025e4fdbffb | 732 | while(1) { |
williequesada | 0:c025e4fdbffb | 733 | if(Button==0) { |
williequesada | 0:c025e4fdbffb | 734 | Led=1; |
williequesada | 0:c025e4fdbffb | 735 | BaseClock.start(); |
williequesada | 0:c025e4fdbffb | 736 | BaseClock.reset(); |
williequesada | 0:c025e4fdbffb | 737 | Computer.printf("Button\n"); |
williequesada | 0:c025e4fdbffb | 738 | EncenderSIM900(); |
williequesada | 0:c025e4fdbffb | 739 | BaseClock.stop(); |
williequesada | 0:c025e4fdbffb | 740 | Led=0; |
williequesada | 0:c025e4fdbffb | 741 | } |
williequesada | 0:c025e4fdbffb | 742 | while(MasterCommand.Available()>0) { |
williequesada | 0:c025e4fdbffb | 743 | Command=MasterCommand.Get(); |
williequesada | 0:c025e4fdbffb | 744 | switch (Command) { |
williequesada | 0:c025e4fdbffb | 745 | case COMMAND_ON: |
williequesada | 0:c025e4fdbffb | 746 | Computer.printf("-> -> Encender\n"); |
williequesada | 0:c025e4fdbffb | 747 | BaseClock.start(); |
williequesada | 0:c025e4fdbffb | 748 | BaseClock.reset(); |
williequesada | 0:c025e4fdbffb | 749 | EncenderSIM900(); |
williequesada | 0:c025e4fdbffb | 750 | break; |
williequesada | 0:c025e4fdbffb | 751 | |
williequesada | 0:c025e4fdbffb | 752 | case COMMAND_INIT: |
williequesada | 0:c025e4fdbffb | 753 | Computer.printf("-> -> Iniciar\n"); |
williequesada | 0:c025e4fdbffb | 754 | IniciarSIM900(); |
williequesada | 0:c025e4fdbffb | 755 | break; |
williequesada | 0:c025e4fdbffb | 756 | |
williequesada | 0:c025e4fdbffb | 757 | case COMMAND_GPRS: |
williequesada | 0:c025e4fdbffb | 758 | Computer.printf("-> -> GPRS\n"); |
williequesada | 0:c025e4fdbffb | 759 | ConexionGPRS(); |
williequesada | 0:c025e4fdbffb | 760 | break; |
williequesada | 0:c025e4fdbffb | 761 | |
williequesada | 0:c025e4fdbffb | 762 | case COMMAND_DATA: |
williequesada | 0:c025e4fdbffb | 763 | Computer.printf("-> -> Datos\n"); |
williequesada | 0:c025e4fdbffb | 764 | ReadUsuario(); |
williequesada | 0:c025e4fdbffb | 765 | break; |
williequesada | 0:c025e4fdbffb | 766 | |
williequesada | 0:c025e4fdbffb | 767 | case COMMAND_POST: |
williequesada | 0:c025e4fdbffb | 768 | Computer.printf("-> -> Post HTTP\n"); |
williequesada | 0:c025e4fdbffb | 769 | PostEncryptHTTP(); |
williequesada | 0:c025e4fdbffb | 770 | break; |
williequesada | 0:c025e4fdbffb | 771 | |
williequesada | 0:c025e4fdbffb | 772 | case COMMAND_ANSWER: |
williequesada | 0:c025e4fdbffb | 773 | Computer.printf("-> -> Respuesta\n"); |
williequesada | 0:c025e4fdbffb | 774 | RespuestaHTTP(); |
williequesada | 0:c025e4fdbffb | 775 | break; |
williequesada | 0:c025e4fdbffb | 776 | |
williequesada | 0:c025e4fdbffb | 777 | case COMMAND_END : |
williequesada | 0:c025e4fdbffb | 778 | Computer.printf("-> -> finalizar tiempo\n"); |
williequesada | 0:c025e4fdbffb | 779 | FinalizarComunicacion(); |
williequesada | 0:c025e4fdbffb | 780 | break; |
williequesada | 0:c025e4fdbffb | 781 | |
williequesada | 0:c025e4fdbffb | 782 | case COMMAND_SIGNAL: |
williequesada | 0:c025e4fdbffb | 783 | Computer.printf("Cobertura Sim900\n"); |
williequesada | 0:c025e4fdbffb | 784 | BaseClock.start(); |
williequesada | 0:c025e4fdbffb | 785 | BaseClock.reset(); |
williequesada | 0:c025e4fdbffb | 786 | CoberturaSIM900(); |
williequesada | 0:c025e4fdbffb | 787 | BaseClock.stop(); |
williequesada | 0:c025e4fdbffb | 788 | break; |
williequesada | 0:c025e4fdbffb | 789 | |
williequesada | 0:c025e4fdbffb | 790 | case COMMAND_CONNECT: |
williequesada | 0:c025e4fdbffb | 791 | Computer.printf("Conexion Sim900\n"); |
williequesada | 0:c025e4fdbffb | 792 | BaseClock.start(); |
williequesada | 0:c025e4fdbffb | 793 | BaseClock.reset(); |
williequesada | 0:c025e4fdbffb | 794 | ConexionSIM900(); |
williequesada | 0:c025e4fdbffb | 795 | BaseClock.stop(); |
williequesada | 0:c025e4fdbffb | 796 | break; |
williequesada | 0:c025e4fdbffb | 797 | |
williequesada | 0:c025e4fdbffb | 798 | case COMMAND_OFF: |
williequesada | 0:c025e4fdbffb | 799 | Computer.printf("-> -> Apagar\n"); |
williequesada | 0:c025e4fdbffb | 800 | MasterCommand.Flush(); |
williequesada | 0:c025e4fdbffb | 801 | ApagarSIM900(); |
williequesada | 0:c025e4fdbffb | 802 | wait_ms(4000); |
williequesada | 0:c025e4fdbffb | 803 | BaseClock.stop(); |
williequesada | 0:c025e4fdbffb | 804 | break; |
williequesada | 0:c025e4fdbffb | 805 | |
williequesada | 0:c025e4fdbffb | 806 | case HOSTING_STEP1: |
williequesada | 0:c025e4fdbffb | 807 | Computer.printf("Paso 1\n"); |
williequesada | 0:c025e4fdbffb | 808 | BaseClock.start(); |
williequesada | 0:c025e4fdbffb | 809 | BaseClock.reset(); |
williequesada | 0:c025e4fdbffb | 810 | Step1(); |
williequesada | 0:c025e4fdbffb | 811 | break; |
williequesada | 0:c025e4fdbffb | 812 | |
williequesada | 0:c025e4fdbffb | 813 | case HOSTING_STEP2: |
williequesada | 0:c025e4fdbffb | 814 | Computer.printf("Paso 2\n"); // Respuesta SHUT OK |
williequesada | 0:c025e4fdbffb | 815 | Step2(); |
williequesada | 0:c025e4fdbffb | 816 | break; |
williequesada | 0:c025e4fdbffb | 817 | |
williequesada | 0:c025e4fdbffb | 818 | case HOSTING_STEP3: |
williequesada | 0:c025e4fdbffb | 819 | Computer.printf("Paso 3\n"); |
williequesada | 0:c025e4fdbffb | 820 | Step3(); |
williequesada | 0:c025e4fdbffb | 821 | break; |
williequesada | 0:c025e4fdbffb | 822 | |
williequesada | 0:c025e4fdbffb | 823 | case HOSTING_STEP4: |
williequesada | 0:c025e4fdbffb | 824 | Computer.printf("Paso 4\n"); |
williequesada | 0:c025e4fdbffb | 825 | Step4(); // Respuesta OK |
williequesada | 0:c025e4fdbffb | 826 | break; |
williequesada | 0:c025e4fdbffb | 827 | |
williequesada | 0:c025e4fdbffb | 828 | case HOSTING_STEP5: |
williequesada | 0:c025e4fdbffb | 829 | Computer.printf("Paso 5\n"); |
williequesada | 0:c025e4fdbffb | 830 | Step5(); |
williequesada | 0:c025e4fdbffb | 831 | break; |
williequesada | 0:c025e4fdbffb | 832 | |
williequesada | 0:c025e4fdbffb | 833 | case HOSTING_STEP6: |
williequesada | 0:c025e4fdbffb | 834 | Computer.printf("Paso 6\n"); |
williequesada | 0:c025e4fdbffb | 835 | Step6(); |
williequesada | 0:c025e4fdbffb | 836 | break; |
williequesada | 0:c025e4fdbffb | 837 | |
williequesada | 0:c025e4fdbffb | 838 | case HOSTING_STEP7: |
williequesada | 0:c025e4fdbffb | 839 | Computer.printf("Paso 7\n"); |
williequesada | 0:c025e4fdbffb | 840 | Step7(); |
williequesada | 0:c025e4fdbffb | 841 | break; |
williequesada | 0:c025e4fdbffb | 842 | |
williequesada | 0:c025e4fdbffb | 843 | case HOSTING_STEP8: |
williequesada | 0:c025e4fdbffb | 844 | Computer.printf("Paso 8\n"); |
williequesada | 0:c025e4fdbffb | 845 | Step8(); |
williequesada | 0:c025e4fdbffb | 846 | break; |
williequesada | 0:c025e4fdbffb | 847 | |
williequesada | 0:c025e4fdbffb | 848 | case HOSTING_STEP9: |
williequesada | 0:c025e4fdbffb | 849 | Computer.printf("Paso 9\n"); |
williequesada | 0:c025e4fdbffb | 850 | Step9(); |
williequesada | 0:c025e4fdbffb | 851 | break; |
williequesada | 0:c025e4fdbffb | 852 | |
williequesada | 0:c025e4fdbffb | 853 | case HOSTING_STEP10: |
williequesada | 0:c025e4fdbffb | 854 | Computer.printf("Paso 10\n"); |
williequesada | 0:c025e4fdbffb | 855 | Step10(); |
williequesada | 0:c025e4fdbffb | 856 | break; |
williequesada | 0:c025e4fdbffb | 857 | |
williequesada | 0:c025e4fdbffb | 858 | case HOSTING_STEP11: |
williequesada | 0:c025e4fdbffb | 859 | Computer.printf("Paso 11\n"); |
williequesada | 0:c025e4fdbffb | 860 | MasterCommand.Flush(); |
williequesada | 0:c025e4fdbffb | 861 | Step11(); |
williequesada | 0:c025e4fdbffb | 862 | BaseClock.stop(); |
williequesada | 0:c025e4fdbffb | 863 | break; |
williequesada | 0:c025e4fdbffb | 864 | |
williequesada | 0:c025e4fdbffb | 865 | case HOSTING_OFF: |
williequesada | 0:c025e4fdbffb | 866 | Computer.printf("Paso salida\n"); |
williequesada | 0:c025e4fdbffb | 867 | PrintSerialRepeat("AT+HTTPTERM\r\n","OK",500,50); |
williequesada | 0:c025e4fdbffb | 868 | break; |
williequesada | 0:c025e4fdbffb | 869 | } |
williequesada | 0:c025e4fdbffb | 870 | } |
williequesada | 0:c025e4fdbffb | 871 | } |
williequesada | 0:c025e4fdbffb | 872 | } |
williequesada | 0:c025e4fdbffb | 873 | // Proceso Usuario, lista de comandos que se deben enviar: |
williequesada | 0:c025e4fdbffb | 874 | // 1.COMMAND_ON ---> Encerder el modulo. |
williequesada | 0:c025e4fdbffb | 875 | // 2.COMMAND_INIT ---> Cargar configuracion del modulo. |
williequesada | 0:c025e4fdbffb | 876 | // 3.COMMAND_GPRS ---> Iniciar conexion GPRS. |
williequesada | 0:c025e4fdbffb | 877 | // 4.COMMAND_DATA ---> Enviar datos [Tiempo,Identificador,Espacio] y se espera confirmacion. |
williequesada | 0:c025e4fdbffb | 878 | // 5.COMMAND_POST ---> Realizar post HTTP. |
williequesada | 0:c025e4fdbffb | 879 | // 6.COMMAND_ANSWER ---> Recibir respuesta del servicio. |
williequesada | 0:c025e4fdbffb | 880 | // 7.COMMAND_OFF ---> Apagar el modulo. |
williequesada | 0:c025e4fdbffb | 881 | |
williequesada | 0:c025e4fdbffb | 882 | // Proceso Hosting, lista de comando que se deben enviar: |
williequesada | 0:c025e4fdbffb | 883 | // 1.HOSTING_STEP1 ---> Encerder el modulo. |
williequesada | 0:c025e4fdbffb | 884 | // 2.HOSTING_STEP2 ---> Comandos CREG Y CIPSHUT. |
williequesada | 0:c025e4fdbffb | 885 | // 3.HOSTING_STEP3 ---> Comandos CIPSTATUS Y CIPMUX. |
williequesada | 0:c025e4fdbffb | 886 | // 4.HOSTING_STEP4 ---> Comando CGATT. |
williequesada | 0:c025e4fdbffb | 887 | // 5.HOSTING_STEP5 ---> Comandos SAPBR GPRS y APN. |
williequesada | 0:c025e4fdbffb | 888 | // 6.HOSTING_STEP6 ---> Comando SAPBR 1,1. |
williequesada | 0:c025e4fdbffb | 889 | // 7.HOSTING_STEP7 ---> Comandos HTTPINIT y HTTPPARA. |
williequesada | 0:c025e4fdbffb | 890 | // 8.HOSTING_STEP8 ---> Se envian los datos [Indentificador, Alarmas] y HTTPPARA JSON. |
williequesada | 0:c025e4fdbffb | 891 | // 9.HOSTING_STEP9 ---> Comandos HTTPDATA y HTTPACTION. |
williequesada | 0:c025e4fdbffb | 892 | // 10.HOSTING_STEP10 ---> Comando HTTPREAD y se espera respuesta. |
williequesada | 0:c025e4fdbffb | 893 | // 11.HOSTING_STEP11 ---> Comandos HTTPTERM y se enviar respuesta, y se apaga modulo. |
williequesada | 0:c025e4fdbffb | 894 | // 12.HOSTING_OFF ---> Comando HTTPTERM en caso de choque con usuario. |