my

Dependencies:   EthernetInterface FreescaleIAP WebSocketClient mbed-rtos mbed-src3

Committer:
zain_mbed
Date:
Wed Nov 23 11:58:46 2016 +0000
Revision:
0:e1b66b594d8c
ll

Who changed what in which revision?

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