k

Dependencies:   FreescaleIAP WebSocketClient mbed-rtos mbed

Committer:
zain_mbed
Date:
Mon Jun 13 08:31:57 2016 +0000
Revision:
0:24f2f4c9363b
k

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zain_mbed 0:24f2f4c9363b 1 #include "mbed.h"
zain_mbed 0:24f2f4c9363b 2 #include "EthernetInterface.h"
zain_mbed 0:24f2f4c9363b 3 #include "Websocket.h"
zain_mbed 0:24f2f4c9363b 4 #include "FreescaleIAP.h"
zain_mbed 0:24f2f4c9363b 5 #define ECHO_SERVER_PORT 560
zain_mbed 0:24f2f4c9363b 6 extern "C" void mbed_reset();
zain_mbed 0:24f2f4c9363b 7 extern "C" void mbed_mac_address(char *mac);
zain_mbed 0:24f2f4c9363b 8 TCPSocketServer server2;
zain_mbed 0:24f2f4c9363b 9 TCPSocketConnection client;
zain_mbed 0:24f2f4c9363b 10 DigitalOut green(LED_GREEN);
zain_mbed 0:24f2f4c9363b 11 DigitalOut red(LED_RED);
zain_mbed 0:24f2f4c9363b 12 DigitalOut blue(LED_BLUE);
zain_mbed 0:24f2f4c9363b 13 DigitalOut inpin(PTC2);
zain_mbed 0:24f2f4c9363b 14 InterruptIn pb(PTC3);
zain_mbed 0:24f2f4c9363b 15 Serial pc(USBTX, USBRX);
zain_mbed 0:24f2f4c9363b 16 Serial xbee(PTC17,PTC16); // uart rx
zain_mbed 0:24f2f4c9363b 17 bool flag=false;
zain_mbed 0:24f2f4c9363b 18 int i=0;
zain_mbed 0:24f2f4c9363b 19
zain_mbed 0:24f2f4c9363b 20 EthernetInterface eth;
zain_mbed 0:24f2f4c9363b 21
zain_mbed 0:24f2f4c9363b 22 char *sourceip;
zain_mbed 0:24f2f4c9363b 23 char *swebsocket=NULL;
zain_mbed 0:24f2f4c9363b 24 char *sip=NULL;
zain_mbed 0:24f2f4c9363b 25 char *ssubnet=NULL;
zain_mbed 0:24f2f4c9363b 26 char *sgw=NULL;
zain_mbed 0:24f2f4c9363b 27 char *spch=NULL;
zain_mbed 0:24f2f4c9363b 28 int counter=0;
zain_mbed 0:24f2f4c9363b 29 int k=0;
zain_mbed 0:24f2f4c9363b 30 char id[20];
zain_mbed 0:24f2f4c9363b 31
zain_mbed 0:24f2f4c9363b 32
zain_mbed 0:24f2f4c9363b 33
zain_mbed 0:24f2f4c9363b 34
zain_mbed 0:24f2f4c9363b 35
zain_mbed 0:24f2f4c9363b 36 void pb_hit_interrupt (void) {
zain_mbed 0:24f2f4c9363b 37 inpin=0;
zain_mbed 0:24f2f4c9363b 38 int address = flash_size() - SECTOR_SIZE;
zain_mbed 0:24f2f4c9363b 39 erase_sector(address);
zain_mbed 0:24f2f4c9363b 40 green=1;
zain_mbed 0:24f2f4c9363b 41 red=1;
zain_mbed 0:24f2f4c9363b 42 blue=0;
zain_mbed 0:24f2f4c9363b 43 wait(3);
zain_mbed 0:24f2f4c9363b 44
zain_mbed 0:24f2f4c9363b 45 NVIC_SystemReset();
zain_mbed 0:24f2f4c9363b 46 }
zain_mbed 0:24f2f4c9363b 47
zain_mbed 0:24f2f4c9363b 48
zain_mbed 0:24f2f4c9363b 49 string memory()
zain_mbed 0:24f2f4c9363b 50 {
zain_mbed 0:24f2f4c9363b 51 inpin=0;
zain_mbed 0:24f2f4c9363b 52
zain_mbed 0:24f2f4c9363b 53 pb.mode(PullUp);
zain_mbed 0:24f2f4c9363b 54 // Delay for initial pullup to take effect
zain_mbed 0:24f2f4c9363b 55 wait(.01);
zain_mbed 0:24f2f4c9363b 56 // Attach the address of the interrupt handler routine for pushbutton
zain_mbed 0:24f2f4c9363b 57 pb.fall(&pb_hit_interrupt);
zain_mbed 0:24f2f4c9363b 58 printf("in memory \n");
zain_mbed 0:24f2f4c9363b 59 int address = flash_size() - SECTOR_SIZE; //Write in last sector
zain_mbed 0:24f2f4c9363b 60 char *data = (char *)address;
zain_mbed 0:24f2f4c9363b 61 char back[65];
zain_mbed 0:24f2f4c9363b 62 strncpy(back,data,65);
zain_mbed 0:24f2f4c9363b 63 back[strlen(back)]='\0';
zain_mbed 0:24f2f4c9363b 64 //printf("back %s \n",back);
zain_mbed 0:24f2f4c9363b 65 int length=strlen(back);
zain_mbed 0:24f2f4c9363b 66 printf("\n length: %d \n",length);
zain_mbed 0:24f2f4c9363b 67 // char c=".";
zain_mbed 0:24f2f4c9363b 68 int k=0;
zain_mbed 0:24f2f4c9363b 69 for (int i=0;i<60;i++)
zain_mbed 0:24f2f4c9363b 70 {
zain_mbed 0:24f2f4c9363b 71 printf("%c",data[i]);
zain_mbed 0:24f2f4c9363b 72 if(data[i]=='.')
zain_mbed 0:24f2f4c9363b 73 {
zain_mbed 0:24f2f4c9363b 74 k++;
zain_mbed 0:24f2f4c9363b 75 }
zain_mbed 0:24f2f4c9363b 76
zain_mbed 0:24f2f4c9363b 77 }
zain_mbed 0:24f2f4c9363b 78 printf("\n k %d \n",k);
zain_mbed 0:24f2f4c9363b 79 if (k>5){
zain_mbed 0:24f2f4c9363b 80
zain_mbed 0:24f2f4c9363b 81 spch = strtok (back,",");
zain_mbed 0:24f2f4c9363b 82 swebsocket=spch;
zain_mbed 0:24f2f4c9363b 83 swebsocket[strlen(swebsocket)]='\0';
zain_mbed 0:24f2f4c9363b 84
zain_mbed 0:24f2f4c9363b 85 spch = strtok (NULL, ",");
zain_mbed 0:24f2f4c9363b 86 sip=spch;
zain_mbed 0:24f2f4c9363b 87 sip[strlen(sip)]='\0';
zain_mbed 0:24f2f4c9363b 88 spch = strtok (NULL, ",");
zain_mbed 0:24f2f4c9363b 89 ssubnet=spch;
zain_mbed 0:24f2f4c9363b 90 ssubnet[strlen(ssubnet)]='\0';
zain_mbed 0:24f2f4c9363b 91 spch = strtok (NULL, ",");
zain_mbed 0:24f2f4c9363b 92 sgw=spch;
zain_mbed 0:24f2f4c9363b 93 spch = strtok (NULL, ",");
zain_mbed 0:24f2f4c9363b 94
zain_mbed 0:24f2f4c9363b 95 printf(swebsocket);
zain_mbed 0:24f2f4c9363b 96 printf("\n");
zain_mbed 0:24f2f4c9363b 97
zain_mbed 0:24f2f4c9363b 98 printf(sip);
zain_mbed 0:24f2f4c9363b 99 printf("\n");
zain_mbed 0:24f2f4c9363b 100
zain_mbed 0:24f2f4c9363b 101 printf(ssubnet);
zain_mbed 0:24f2f4c9363b 102 printf("\n");
zain_mbed 0:24f2f4c9363b 103
zain_mbed 0:24f2f4c9363b 104 printf(sgw);
zain_mbed 0:24f2f4c9363b 105 printf("\n");
zain_mbed 0:24f2f4c9363b 106
zain_mbed 0:24f2f4c9363b 107 eth.init(sip,ssubnet,sgw);
zain_mbed 0:24f2f4c9363b 108 eth.connect();
zain_mbed 0:24f2f4c9363b 109 char *mac;
zain_mbed 0:24f2f4c9363b 110 mac=eth.getMACAddress();
zain_mbed 0:24f2f4c9363b 111 sourceip=eth.getIPAddress();
zain_mbed 0:24f2f4c9363b 112 pc.printf("mac - ddress: %s \r\n",mac);
zain_mbed 0:24f2f4c9363b 113 pc.printf("Connected - IP address: %s \r\n",eth.getIPAddress());
zain_mbed 0:24f2f4c9363b 114 printf("swebsocket length %d \n",strlen(swebsocket));
zain_mbed 0:24f2f4c9363b 115
zain_mbed 0:24f2f4c9363b 116 }
zain_mbed 0:24f2f4c9363b 117
zain_mbed 0:24f2f4c9363b 118 return swebsocket;
zain_mbed 0:24f2f4c9363b 119 }
zain_mbed 0:24f2f4c9363b 120
zain_mbed 0:24f2f4c9363b 121 void ftc()
zain_mbed 0:24f2f4c9363b 122 { inpin=0;
zain_mbed 0:24f2f4c9363b 123 printf("\n first time configuration \n");
zain_mbed 0:24f2f4c9363b 124 eth.init("192.168.68.100","255.255.0.0","192.168.68.1");
zain_mbed 0:24f2f4c9363b 125 char *mac;
zain_mbed 0:24f2f4c9363b 126 mac=eth.getMACAddress();
zain_mbed 0:24f2f4c9363b 127 sourceip=eth.getIPAddress();
zain_mbed 0:24f2f4c9363b 128 eth.connect();
zain_mbed 0:24f2f4c9363b 129 pc.printf("mac - ddress: %s \r\n",mac);
zain_mbed 0:24f2f4c9363b 130 pc.printf("Connected - IP address: %s \r\n",sourceip);
zain_mbed 0:24f2f4c9363b 131 server2.bind(ECHO_SERVER_PORT);
zain_mbed 0:24f2f4c9363b 132 server2.listen();
zain_mbed 0:24f2f4c9363b 133 printf("Waiting for connection \n");;
zain_mbed 0:24f2f4c9363b 134 server2.accept(client);
zain_mbed 0:24f2f4c9363b 135 // client.set_blocking(false, 1500); // Timeout after (1.5)s
zain_mbed 0:24f2f4c9363b 136
zain_mbed 0:24f2f4c9363b 137 printf("Connection from: %s\n", client.get_address());
zain_mbed 0:24f2f4c9363b 138 //
zain_mbed 0:24f2f4c9363b 139 char buffer[256];
zain_mbed 0:24f2f4c9363b 140 while (true) {
zain_mbed 0:24f2f4c9363b 141 strcat(mac,".");
zain_mbed 0:24f2f4c9363b 142 client.send(mac, strlen(mac));
zain_mbed 0:24f2f4c9363b 143 int n = client.receive(buffer, sizeof(buffer));
zain_mbed 0:24f2f4c9363b 144 if (n <= 0) break;
zain_mbed 0:24f2f4c9363b 145
zain_mbed 0:24f2f4c9363b 146 // print received message to terminal
zain_mbed 0:24f2f4c9363b 147 buffer[n] = '\0';
zain_mbed 0:24f2f4c9363b 148 printf("Received message from Client :'%s'\n",buffer);
zain_mbed 0:24f2f4c9363b 149 int kn=strlen(buffer);
zain_mbed 0:24f2f4c9363b 150 if (kn>5)
zain_mbed 0:24f2f4c9363b 151 {
zain_mbed 0:24f2f4c9363b 152 printf("actual message from Client :'%s'\n",buffer);
zain_mbed 0:24f2f4c9363b 153 int address = flash_size() - SECTOR_SIZE; //Write in last sector
zain_mbed 0:24f2f4c9363b 154 printf("address %d \n",address);
zain_mbed 0:24f2f4c9363b 155 char *data = (char *)address;
zain_mbed 0:24f2f4c9363b 156 printf(" \n Starting\r\n");
zain_mbed 0:24f2f4c9363b 157 erase_sector(address);
zain_mbed 0:24f2f4c9363b 158
zain_mbed 0:24f2f4c9363b 159 int len=strlen(buffer);
zain_mbed 0:24f2f4c9363b 160 printf("store length %d \n",len);
zain_mbed 0:24f2f4c9363b 161 program_flash(address, buffer,len); //10 integers of 4 bytes each: 40 bytes length
zain_mbed 0:24f2f4c9363b 162 printf("Resulting flash: \r\n");
zain_mbed 0:24f2f4c9363b 163 printf("stored data %s\r\n", data);
zain_mbed 0:24f2f4c9363b 164 printf("Done\r\n\n");
zain_mbed 0:24f2f4c9363b 165 client.send("received", 9);
zain_mbed 0:24f2f4c9363b 166 NVIC_SystemReset();
zain_mbed 0:24f2f4c9363b 167 }
zain_mbed 0:24f2f4c9363b 168 // reverse the message
zain_mbed 0:24f2f4c9363b 169
zain_mbed 0:24f2f4c9363b 170 if (n <= 0) break;
zain_mbed 0:24f2f4c9363b 171 }
zain_mbed 0:24f2f4c9363b 172
zain_mbed 0:24f2f4c9363b 173 client.close();
zain_mbed 0:24f2f4c9363b 174
zain_mbed 0:24f2f4c9363b 175 NVIC_SystemReset();
zain_mbed 0:24f2f4c9363b 176 }
zain_mbed 0:24f2f4c9363b 177
zain_mbed 0:24f2f4c9363b 178
zain_mbed 0:24f2f4c9363b 179
zain_mbed 0:24f2f4c9363b 180
zain_mbed 0:24f2f4c9363b 181
zain_mbed 0:24f2f4c9363b 182
zain_mbed 0:24f2f4c9363b 183 int main()
zain_mbed 0:24f2f4c9363b 184 {
zain_mbed 0:24f2f4c9363b 185 inpin=0;
zain_mbed 0:24f2f4c9363b 186 pb.mode(PullUp);
zain_mbed 0:24f2f4c9363b 187 // Delay for initial pullup to take effect
zain_mbed 0:24f2f4c9363b 188 wait(.01);
zain_mbed 0:24f2f4c9363b 189 // Attach the address of the interrupt handler routine for pushbutton
zain_mbed 0:24f2f4c9363b 190 pb.fall(&pb_hit_interrupt);
zain_mbed 0:24f2f4c9363b 191
zain_mbed 0:24f2f4c9363b 192 printf("Hello World\n");
zain_mbed 0:24f2f4c9363b 193 char macc[6];
zain_mbed 0:24f2f4c9363b 194 mbed_mac_address(macc);
zain_mbed 0:24f2f4c9363b 195 sprintf(id,"%02X:%02X:%02X:%02X:%02X:%02X",macc[0],macc[1],macc[2],macc[3],macc[4],macc[5]);
zain_mbed 0:24f2f4c9363b 196 printf("mac_addr is %s \n",id);
zain_mbed 0:24f2f4c9363b 197
zain_mbed 0:24f2f4c9363b 198 char *w_socket_addr=new char [50];
zain_mbed 0:24f2f4c9363b 199 wait(3);
zain_mbed 0:24f2f4c9363b 200 string wes= memory();
zain_mbed 0:24f2f4c9363b 201 const char *web_socket_ip=wes.c_str();
zain_mbed 0:24f2f4c9363b 202 printf("return string %s \n",web_socket_ip);
zain_mbed 0:24f2f4c9363b 203 int hkh=strlen(web_socket_ip);
zain_mbed 0:24f2f4c9363b 204 printf("string length %d \n",hkh);
zain_mbed 0:24f2f4c9363b 205
zain_mbed 0:24f2f4c9363b 206 char buf[200];
zain_mbed 0:24f2f4c9363b 207
zain_mbed 0:24f2f4c9363b 208 xbee.baud(9600);
zain_mbed 0:24f2f4c9363b 209
zain_mbed 0:24f2f4c9363b 210
zain_mbed 0:24f2f4c9363b 211
zain_mbed 0:24f2f4c9363b 212
zain_mbed 0:24f2f4c9363b 213 if (hkh>0)
zain_mbed 0:24f2f4c9363b 214 {
zain_mbed 0:24f2f4c9363b 215 strcpy(w_socket_addr,"ws://");
zain_mbed 0:24f2f4c9363b 216 strcat(w_socket_addr,web_socket_ip);
zain_mbed 0:24f2f4c9363b 217 strcat(w_socket_addr,"/EchoChamber/echo");
zain_mbed 0:24f2f4c9363b 218
zain_mbed 0:24f2f4c9363b 219 }
zain_mbed 0:24f2f4c9363b 220 else
zain_mbed 0:24f2f4c9363b 221 {
zain_mbed 0:24f2f4c9363b 222
zain_mbed 0:24f2f4c9363b 223 ftc();
zain_mbed 0:24f2f4c9363b 224 }
zain_mbed 0:24f2f4c9363b 225 w_socket_addr[strlen(w_socket_addr)]='\0';
zain_mbed 0:24f2f4c9363b 226 Websocket ws(w_socket_addr);
zain_mbed 0:24f2f4c9363b 227 printf("connecting to webserver \n");
zain_mbed 0:24f2f4c9363b 228 ws.connect();
zain_mbed 0:24f2f4c9363b 229 printf("connected \n");
zain_mbed 0:24f2f4c9363b 230
zain_mbed 0:24f2f4c9363b 231 xbee.printf("ar\n");
zain_mbed 0:24f2f4c9363b 232 if(xbee.readable())
zain_mbed 0:24f2f4c9363b 233 {xbee.gets(buf,25);
zain_mbed 0:24f2f4c9363b 234 printf(buf);
zain_mbed 0:24f2f4c9363b 235 }
zain_mbed 0:24f2f4c9363b 236 wait(1);
zain_mbed 0:24f2f4c9363b 237 xbee.printf("AT$sr\n");
zain_mbed 0:24f2f4c9363b 238 char *ip=NULL;
zain_mbed 0:24f2f4c9363b 239 char *subnet=NULL;
zain_mbed 0:24f2f4c9363b 240 char *gw=NULL;
zain_mbed 0:24f2f4c9363b 241
zain_mbed 0:24f2f4c9363b 242 char *rxid;
zain_mbed 0:24f2f4c9363b 243
zain_mbed 0:24f2f4c9363b 244 char m[100];
zain_mbed 0:24f2f4c9363b 245 char *pch;
zain_mbed 0:24f2f4c9363b 246 wait(1);
zain_mbed 0:24f2f4c9363b 247 bool a;
zain_mbed 0:24f2f4c9363b 248
zain_mbed 0:24f2f4c9363b 249
zain_mbed 0:24f2f4c9363b 250
zain_mbed 0:24f2f4c9363b 251
zain_mbed 0:24f2f4c9363b 252
zain_mbed 0:24f2f4c9363b 253 while(1)
zain_mbed 0:24f2f4c9363b 254 { green=1;
zain_mbed 0:24f2f4c9363b 255 red=0;
zain_mbed 0:24f2f4c9363b 256 blue=1;
zain_mbed 0:24f2f4c9363b 257 if (i>=455000)
zain_mbed 0:24f2f4c9363b 258 {
zain_mbed 0:24f2f4c9363b 259
zain_mbed 0:24f2f4c9363b 260 if(ws.is_connected())
zain_mbed 0:24f2f4c9363b 261 { counter=counter+1;
zain_mbed 0:24f2f4c9363b 262 printf("keep alive \n");
zain_mbed 0:24f2f4c9363b 263 ws.send("keep alive");
zain_mbed 0:24f2f4c9363b 264
zain_mbed 0:24f2f4c9363b 265 //printf(ws);
zain_mbed 0:24f2f4c9363b 266 }
zain_mbed 0:24f2f4c9363b 267
zain_mbed 0:24f2f4c9363b 268 if(!ws.is_connected())
zain_mbed 0:24f2f4c9363b 269 { printf("not alive \n");
zain_mbed 0:24f2f4c9363b 270
zain_mbed 0:24f2f4c9363b 271 NVIC_SystemReset();
zain_mbed 0:24f2f4c9363b 272 }
zain_mbed 0:24f2f4c9363b 273
zain_mbed 0:24f2f4c9363b 274 i=0;
zain_mbed 0:24f2f4c9363b 275
zain_mbed 0:24f2f4c9363b 276 }
zain_mbed 0:24f2f4c9363b 277 i++;
zain_mbed 0:24f2f4c9363b 278 if (counter>=2)
zain_mbed 0:24f2f4c9363b 279 {
zain_mbed 0:24f2f4c9363b 280 printf("counter %d \n",counter);;
zain_mbed 0:24f2f4c9363b 281 printf("reset \n");
zain_mbed 0:24f2f4c9363b 282
zain_mbed 0:24f2f4c9363b 283 // ws.fillFields("ws://192.168.0.54:8080/EchoChamber/echo");
zain_mbed 0:24f2f4c9363b 284 NVIC_SystemReset();
zain_mbed 0:24f2f4c9363b 285 ws.close();
zain_mbed 0:24f2f4c9363b 286 // eth.disconnect();
zain_mbed 0:24f2f4c9363b 287
zain_mbed 0:24f2f4c9363b 288
zain_mbed 0:24f2f4c9363b 289
zain_mbed 0:24f2f4c9363b 290
zain_mbed 0:24f2f4c9363b 291 }
zain_mbed 0:24f2f4c9363b 292
zain_mbed 0:24f2f4c9363b 293
zain_mbed 0:24f2f4c9363b 294
zain_mbed 0:24f2f4c9363b 295 if(xbee.readable())
zain_mbed 0:24f2f4c9363b 296 {
zain_mbed 0:24f2f4c9363b 297 green=0;
zain_mbed 0:24f2f4c9363b 298 red=1;
zain_mbed 0:24f2f4c9363b 299 blue=1;
zain_mbed 0:24f2f4c9363b 300 memset(buf, 0, sizeof(buf));
zain_mbed 0:24f2f4c9363b 301 xbee.gets(buf,27);
zain_mbed 0:24f2f4c9363b 302 char end[5]="end";
zain_mbed 0:24f2f4c9363b 303 printf(" \n received buffer %s \n",buf);
zain_mbed 0:24f2f4c9363b 304 printf("counter %d \n",counter);
zain_mbed 0:24f2f4c9363b 305
zain_mbed 0:24f2f4c9363b 306 strcat(buf,id);
zain_mbed 0:24f2f4c9363b 307 strcat(buf,end);
zain_mbed 0:24f2f4c9363b 308 printf("\n buffer is %s \n",id);
zain_mbed 0:24f2f4c9363b 309 char start[100]="start";
zain_mbed 0:24f2f4c9363b 310 int tsy=strlen(buf);
zain_mbed 0:24f2f4c9363b 311 printf("len %d \n",tsy);
zain_mbed 0:24f2f4c9363b 312 if (tsy>10)
zain_mbed 0:24f2f4c9363b 313 {printf("\n id is %s \n",buf);
zain_mbed 0:24f2f4c9363b 314 strcat(start,sourceip);
zain_mbed 0:24f2f4c9363b 315 strcat(start,"}");
zain_mbed 0:24f2f4c9363b 316 strcat(start,buf);
zain_mbed 0:24f2f4c9363b 317 printf("sending %s \n",start);
zain_mbed 0:24f2f4c9363b 318 if (ws.is_connected()){
zain_mbed 0:24f2f4c9363b 319 ws.send(start);
zain_mbed 0:24f2f4c9363b 320 memset(start, 0, sizeof(start));
zain_mbed 0:24f2f4c9363b 321 memset(buf, 0, sizeof(buf));
zain_mbed 0:24f2f4c9363b 322 printf("clear %s \n",start);
zain_mbed 0:24f2f4c9363b 323 printf("buf %s \n",buf);
zain_mbed 0:24f2f4c9363b 324 }
zain_mbed 0:24f2f4c9363b 325 else{
zain_mbed 0:24f2f4c9363b 326 printf("closed \n");
zain_mbed 0:24f2f4c9363b 327 NVIC_SystemReset();
zain_mbed 0:24f2f4c9363b 328
zain_mbed 0:24f2f4c9363b 329 }
zain_mbed 0:24f2f4c9363b 330
zain_mbed 0:24f2f4c9363b 331
zain_mbed 0:24f2f4c9363b 332 printf("\n");
zain_mbed 0:24f2f4c9363b 333 }
zain_mbed 0:24f2f4c9363b 334 }
zain_mbed 0:24f2f4c9363b 335 memset(m, 0, sizeof(m));
zain_mbed 0:24f2f4c9363b 336 a=ws.read(m);
zain_mbed 0:24f2f4c9363b 337
zain_mbed 0:24f2f4c9363b 338 k=strlen(m);
zain_mbed 0:24f2f4c9363b 339
zain_mbed 0:24f2f4c9363b 340
zain_mbed 0:24f2f4c9363b 341 if (strcmp(m,"stay alive")==0)
zain_mbed 0:24f2f4c9363b 342 { printf(m);
zain_mbed 0:24f2f4c9363b 343 printf("\n");
zain_mbed 0:24f2f4c9363b 344 counter--;
zain_mbed 0:24f2f4c9363b 345 }
zain_mbed 0:24f2f4c9363b 346
zain_mbed 0:24f2f4c9363b 347
zain_mbed 0:24f2f4c9363b 348 if (a==true && k>5 && k<35){
zain_mbed 0:24f2f4c9363b 349 printf("received ipstring %s",m);
zain_mbed 0:24f2f4c9363b 350 printf("\n");
zain_mbed 0:24f2f4c9363b 351 }
zain_mbed 0:24f2f4c9363b 352 if (a==true && k>=40 && k<62)
zain_mbed 0:24f2f4c9363b 353 {
zain_mbed 0:24f2f4c9363b 354 pch = strtok (m,"+");
zain_mbed 0:24f2f4c9363b 355 rxid=pch;
zain_mbed 0:24f2f4c9363b 356 if(strcmp(rxid,id)==0)
zain_mbed 0:24f2f4c9363b 357 {
zain_mbed 0:24f2f4c9363b 358 printf("matched \n");
zain_mbed 0:24f2f4c9363b 359 printf("websocket %s \n",wes);
zain_mbed 0:24f2f4c9363b 360 printf(id);
zain_mbed 0:24f2f4c9363b 361 printf("\n");
zain_mbed 0:24f2f4c9363b 362 pch = strtok (NULL, "+");
zain_mbed 0:24f2f4c9363b 363 ip=pch;
zain_mbed 0:24f2f4c9363b 364 printf(ip);
zain_mbed 0:24f2f4c9363b 365 printf("\n");
zain_mbed 0:24f2f4c9363b 366 pch = strtok (NULL, "+");
zain_mbed 0:24f2f4c9363b 367 subnet=pch;
zain_mbed 0:24f2f4c9363b 368 printf("%s\n",subnet);
zain_mbed 0:24f2f4c9363b 369 pch = strtok (NULL, "+");
zain_mbed 0:24f2f4c9363b 370 gw=pch;
zain_mbed 0:24f2f4c9363b 371 printf(gw);
zain_mbed 0:24f2f4c9363b 372 printf("\n");
zain_mbed 0:24f2f4c9363b 373 char *store=new char[60];
zain_mbed 0:24f2f4c9363b 374 strcat(store,web_socket_ip);
zain_mbed 0:24f2f4c9363b 375 strcat(store,",");
zain_mbed 0:24f2f4c9363b 376 strcat(store,ip);
zain_mbed 0:24f2f4c9363b 377 strcat(store,",");
zain_mbed 0:24f2f4c9363b 378 strcat(store,subnet);
zain_mbed 0:24f2f4c9363b 379 strcat(store,",");
zain_mbed 0:24f2f4c9363b 380 strcat(store,gw);
zain_mbed 0:24f2f4c9363b 381 strcat(store,",");
zain_mbed 0:24f2f4c9363b 382 printf("cat data %s \n",store);
zain_mbed 0:24f2f4c9363b 383
zain_mbed 0:24f2f4c9363b 384 int address = flash_size() - SECTOR_SIZE; //Write in last sector
zain_mbed 0:24f2f4c9363b 385 printf("address %d \n",address);
zain_mbed 0:24f2f4c9363b 386
zain_mbed 0:24f2f4c9363b 387 printf(" \n Starting\r\n");
zain_mbed 0:24f2f4c9363b 388 erase_sector(address);
zain_mbed 0:24f2f4c9363b 389
zain_mbed 0:24f2f4c9363b 390 int len=strlen(store);
zain_mbed 0:24f2f4c9363b 391 printf("store length %d \n",len);
zain_mbed 0:24f2f4c9363b 392 program_flash(address, store,len); //10 integers of 4 bytes each: 40 bytes length
zain_mbed 0:24f2f4c9363b 393 printf("Resulting flash: \r\n");
zain_mbed 0:24f2f4c9363b 394 // printf("stored data %s\r\n", data);
zain_mbed 0:24f2f4c9363b 395 printf("Done\r\n\n");
zain_mbed 0:24f2f4c9363b 396 NVIC_SystemReset();
zain_mbed 0:24f2f4c9363b 397
zain_mbed 0:24f2f4c9363b 398 wait(1);
zain_mbed 0:24f2f4c9363b 399 }
zain_mbed 0:24f2f4c9363b 400
zain_mbed 0:24f2f4c9363b 401 }
zain_mbed 0:24f2f4c9363b 402
zain_mbed 0:24f2f4c9363b 403 memset(&m[0], 0, sizeof(m));
zain_mbed 0:24f2f4c9363b 404 }//loop is ending here
zain_mbed 0:24f2f4c9363b 405
zain_mbed 0:24f2f4c9363b 406
zain_mbed 0:24f2f4c9363b 407
zain_mbed 0:24f2f4c9363b 408
zain_mbed 0:24f2f4c9363b 409 }
zain_mbed 0:24f2f4c9363b 410