mbed_robotcar / Mbed 2 deprecated WiFi_Finish

Dependencies:   mbed

Committer:
molberry
Date:
Mon Aug 03 08:34:03 2020 +0000
Revision:
0:04482d11976f
Child:
1:479303f0e488
endWiFi;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
molberry 0:04482d11976f 1 #include "mbed.h"
molberry 0:04482d11976f 2
molberry 0:04482d11976f 3 Serial pc(USBTX, USBRX);
molberry 0:04482d11976f 4 Serial esp(p13, p14); // tx, rx
molberry 0:04482d11976f 5
molberry 0:04482d11976f 6 enum MODE {
molberry 0:04482d11976f 7 READY = -1,
molberry 0:04482d11976f 8 ADVANCE = 1,
molberry 0:04482d11976f 9 RIGHT,
molberry 0:04482d11976f 10 LEFT,
molberry 0:04482d11976f 11 BACK,
molberry 0:04482d11976f 12 STOP,
molberry 0:04482d11976f 13 LINE_TRACE, // 6:ライントレース
molberry 0:04482d11976f 14 AVOIDANCE, // 7:障害物回避
molberry 0:04482d11976f 15 SPEED, // 8:スピード制御
molberry 0:04482d11976f 16 };
molberry 0:04482d11976f 17
molberry 0:04482d11976f 18 // Standard Mbed LED definitions
molberry 0:04482d11976f 19 DigitalOut led1(LED1);
molberry 0:04482d11976f 20 DigitalOut led2(LED2);
molberry 0:04482d11976f 21 DigitalOut led3(LED3);
molberry 0:04482d11976f 22 DigitalOut led4(LED4);
molberry 0:04482d11976f 23
molberry 0:04482d11976f 24 Timer t1;
molberry 0:04482d11976f 25 Timer t2;
molberry 0:04482d11976f 26
molberry 0:04482d11976f 27 struct tm t;
molberry 0:04482d11976f 28
molberry 0:04482d11976f 29 int flag_sp = 0;
molberry 0:04482d11976f 30 int mode = ADVANCE;
molberry 0:04482d11976f 31 int beforeMode = mode;
molberry 0:04482d11976f 32
molberry 0:04482d11976f 33 int bufflen, DataRX, count, getcount, replycount, servreq, timeout;
molberry 0:04482d11976f 34 int bufl, ipdLen, linkID, weberror, webcounter,click_flag;
molberry 0:04482d11976f 35 float temperature, AdcIn, Ht;
molberry 0:04482d11976f 36 float R1=100000, R2=10000; // resistor values to give a 10:1 reduction of measured AnalogIn voltage
molberry 0:04482d11976f 37 char Vcc[10];
molberry 0:04482d11976f 38 char webcount[8];
molberry 0:04482d11976f 39 char type[16];
molberry 0:04482d11976f 40 char type1[16];
molberry 0:04482d11976f 41 char channel[2];
molberry 0:04482d11976f 42 char cmdbuff[32];
molberry 0:04482d11976f 43 char replybuff[1024];
molberry 0:04482d11976f 44
molberry 0:04482d11976f 45 char webdata[1024]; // This may need to be bigger depending on WEB browser used
molberry 0:04482d11976f 46 char webbuff[4096*4]; // Currently using 1986 characters, Increase this if more web page data added
molberry 0:04482d11976f 47
molberry 0:04482d11976f 48
molberry 0:04482d11976f 49 void SendCMD(),getreply(),ReadWebData(),startserver(),sendpage(),SendWEB(),sendcheck(),touchuan();
molberry 0:04482d11976f 50
molberry 0:04482d11976f 51
molberry 0:04482d11976f 52 int port =80; // set server port
molberry 0:04482d11976f 53 int SERVtimeout =5; // set server timeout in seconds in case link breaks.
molberry 0:04482d11976f 54
molberry 0:04482d11976f 55 char ssid[32] = "mbed02"; // enter WiFi router ssid inside the quotes
molberry 0:04482d11976f 56 char pwd [32] = "0123456789a"; // enter WiFi router password inside the quotes
molberry 0:04482d11976f 57
molberry 0:04482d11976f 58 // Serial Interrupt read ESP data
molberry 0:04482d11976f 59 void callback()
molberry 0:04482d11976f 60 {
molberry 0:04482d11976f 61 //pc.printf("\n\r------------ callback is being called --------------\n\r");
molberry 0:04482d11976f 62 led3=1;
molberry 0:04482d11976f 63 while (esp.readable()) {
molberry 0:04482d11976f 64 webbuff[count] = esp.getc();
molberry 0:04482d11976f 65 count++;
molberry 0:04482d11976f 66 }
molberry 0:04482d11976f 67 if(strlen(webbuff)>bufflen) {
molberry 0:04482d11976f 68 pc.printf("\f\n\r------------ webbuff over bufflen --------------\n\r");
molberry 0:04482d11976f 69 DataRX=1;
molberry 0:04482d11976f 70 led3=0;
molberry 0:04482d11976f 71 }
molberry 0:04482d11976f 72 }
molberry 0:04482d11976f 73
molberry 0:04482d11976f 74 int main()
molberry 0:04482d11976f 75 {
molberry 0:04482d11976f 76 pc.baud(115200);
molberry 0:04482d11976f 77
molberry 0:04482d11976f 78 pc.printf("\f\n\r------------ ESP8266 Hardware Reset psq --------------\n\r");
molberry 0:04482d11976f 79 wait(0.5);
molberry 0:04482d11976f 80 led1=1,led2=0,led3=0;
molberry 0:04482d11976f 81 timeout=6000;
molberry 0:04482d11976f 82 getcount=500;
molberry 0:04482d11976f 83 getreply();
molberry 0:04482d11976f 84 esp.baud(115200); // ESP8266 baudrate. Maximum on KLxx' is 115200, 230400 works on K20 and K22F
molberry 0:04482d11976f 85 startserver();
molberry 0:04482d11976f 86
molberry 0:04482d11976f 87 while(1) {
molberry 0:04482d11976f 88 if(DataRX==1) {
molberry 0:04482d11976f 89 pc.printf("\f\n\r------------ main while > if --------------\n\r");
molberry 0:04482d11976f 90 click_flag = 1;
molberry 0:04482d11976f 91 ReadWebData();
molberry 0:04482d11976f 92 pc.printf("\f\n\r------------ click_flag=%d --------------\n\r",click_flag);
molberry 0:04482d11976f 93 //if ((servreq == 1 && weberror == 0) && click_flag == 1) {
molberry 0:04482d11976f 94 if (servreq == 1 && weberror == 0) {
molberry 0:04482d11976f 95 pc.printf("\f\n\r------------ befor send page --------------\n\r");
molberry 0:04482d11976f 96 sendpage();
molberry 0:04482d11976f 97 }
molberry 0:04482d11976f 98 pc.printf("\f\n\r------------ send_check begin --------------\n\r");
molberry 0:04482d11976f 99
molberry 0:04482d11976f 100 //sendcheck();
molberry 0:04482d11976f 101 pc.printf("\f\n\r------------ ssend_check end--------------\n\r");
molberry 0:04482d11976f 102
molberry 0:04482d11976f 103 esp.attach(&callback);
molberry 0:04482d11976f 104 pc.printf(" IPD Data:\r\n\n Link ID = %d,\r\n IPD Header Length = %d \r\n IPD Type = %s\r\n", linkID, ipdLen, type);
molberry 0:04482d11976f 105 pc.printf("\n\n HTTP Packet: \n\n%s\n", webdata);
molberry 0:04482d11976f 106 pc.printf(" Web Characters sent : %d\n\n", bufl);
molberry 0:04482d11976f 107 pc.printf(" -------------------------------------\n\n");
molberry 0:04482d11976f 108 servreq=0;
molberry 0:04482d11976f 109 }
molberry 0:04482d11976f 110 }
molberry 0:04482d11976f 111 }
molberry 0:04482d11976f 112 // Static WEB page
molberry 0:04482d11976f 113 void sendpage()
molberry 0:04482d11976f 114 {
molberry 0:04482d11976f 115 // WEB page data
molberry 0:04482d11976f 116
molberry 0:04482d11976f 117 strcpy(webbuff, "<!DOCTYPE html>");
molberry 0:04482d11976f 118 strcat(webbuff, "<html><head><title>RobotCar</title><meta name='viewport' content='width=device-width'/>");
molberry 0:04482d11976f 119 strcat(webbuff, "<style type=\"text/css\">.noselect{ width:100px;height:60px;}.light{ width:100px;height:60px;background-color:00ff66;}</style>");
molberry 0:04482d11976f 120 strcat(webbuff, "</head><body><center><p><strong>Robot Car Remot Controller");
molberry 0:04482d11976f 121 strcat(webbuff, "</strong></p><td style='vertical-align:top;'><strong>Battery level ");
molberry 0:04482d11976f 122 strcat(webbuff, "<input type=\"text\" id=\"leftms\" size=4 value=250>%</strong>");
molberry 0:04482d11976f 123 strcat(webbuff, "</td></p>");
molberry 0:04482d11976f 124 strcat(webbuff, "<br>");
molberry 0:04482d11976f 125 strcat(webbuff, "<table><tr><td></td><td>");
molberry 0:04482d11976f 126
molberry 0:04482d11976f 127 switch(mode) {
molberry 0:04482d11976f 128 case ADVANCE:
molberry 0:04482d11976f 129 strcat(webbuff, "<button id='gobtn' type='button' class=\"light\" value=\"GO\" onClick='send_mes(this.id,this.value)'>GO");
molberry 0:04482d11976f 130 strcat(webbuff, "</button></td><td></td></tr><tr><td>");
molberry 0:04482d11976f 131 strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\" onClick='send_mes(this.id,this.value)' >LEFT");
molberry 0:04482d11976f 132 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 133 strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\" onClick='send_mes(this.id,this.value)' >STOP");
molberry 0:04482d11976f 134 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 135 strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\" onClick='send_mes(this.id,this.value)' >RIGHT");
molberry 0:04482d11976f 136 strcat(webbuff, "</button></td></tr><td></td><td>");
molberry 0:04482d11976f 137 strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
molberry 0:04482d11976f 138 strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
molberry 0:04482d11976f 139 strcat(webbuff, "<strong>Mode</strong>");
molberry 0:04482d11976f 140 strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\" onClick='send_mes_fun(this.id,this.value)' >");
molberry 0:04482d11976f 141 strcat(webbuff, "AVOIDANCE</button></td><td>");
molberry 0:04482d11976f 142 strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\" onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
molberry 0:04482d11976f 143 break;
molberry 0:04482d11976f 144 case LEFT:
molberry 0:04482d11976f 145 strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\" value=\"GO\" onClick='send_mes(this.id,this.value)'>GO");
molberry 0:04482d11976f 146 strcat(webbuff, "</button></td><td></td></tr><tr><td>");
molberry 0:04482d11976f 147 strcat(webbuff, "<button id='leftbtn' type='button' class=\"light\" value=\"LEFT\" onClick='send_mes(this.id,this.value)' >LEFT");
molberry 0:04482d11976f 148 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 149 strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\" onClick='send_mes(this.id,this.value)' >STOP");
molberry 0:04482d11976f 150 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 151 strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\" onClick='send_mes(this.id,this.value)' >RIGHT");
molberry 0:04482d11976f 152 strcat(webbuff, "</button></td></tr><td></td><td>");
molberry 0:04482d11976f 153 strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
molberry 0:04482d11976f 154 strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
molberry 0:04482d11976f 155 strcat(webbuff, "<strong>Mode</strong>");
molberry 0:04482d11976f 156 strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\" onClick='send_mes_fun(this.id,this.value)' >");
molberry 0:04482d11976f 157 strcat(webbuff, "AVOIDANCE</button></td><td>");
molberry 0:04482d11976f 158 strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\" onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
molberry 0:04482d11976f 159 break;
molberry 0:04482d11976f 160 case STOP:
molberry 0:04482d11976f 161 strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\" value=\"GO\" onClick='send_mes(this.id,this.value)'>GO");
molberry 0:04482d11976f 162 strcat(webbuff, "</button></td><td></td></tr><tr><td>");
molberry 0:04482d11976f 163 strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\" onClick='send_mes(this.id,this.value)' >LEFT");
molberry 0:04482d11976f 164 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 165 strcat(webbuff, "<button id='stopbtn' type='button' class=\"light\" value=\"STOP\" onClick='send_mes(this.id,this.value)' >STOP");
molberry 0:04482d11976f 166 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 167 strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\" onClick='send_mes(this.id,this.value)' >RIGHT");
molberry 0:04482d11976f 168 strcat(webbuff, "</button></td></tr><td></td><td>");
molberry 0:04482d11976f 169 strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
molberry 0:04482d11976f 170 strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
molberry 0:04482d11976f 171 strcat(webbuff, "<strong>Mode</strong>");
molberry 0:04482d11976f 172 strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\" onClick='send_mes_fun(this.id,this.value)' >");
molberry 0:04482d11976f 173 strcat(webbuff, "AVOIDANCE</button></td><td>");
molberry 0:04482d11976f 174 strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\" onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
molberry 0:04482d11976f 175 break;
molberry 0:04482d11976f 176 case RIGHT:
molberry 0:04482d11976f 177 strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\" value=\"GO\" onClick='send_mes(this.id,this.value)'>GO");
molberry 0:04482d11976f 178 strcat(webbuff, "</button></td><td></td></tr><tr><td>");
molberry 0:04482d11976f 179 strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\" onClick='send_mes(this.id,this.value)' >LEFT");
molberry 0:04482d11976f 180 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 181 strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\" onClick='send_mes(this.id,this.value)' >STOP");
molberry 0:04482d11976f 182 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 183 strcat(webbuff, "<button id='rightbtn' type='button' class=\"light\" value=\"RIGHT\" onClick='send_mes(this.id,this.value)' >RIGHT");
molberry 0:04482d11976f 184 strcat(webbuff, "</button></td></tr><td></td><td>");
molberry 0:04482d11976f 185 strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
molberry 0:04482d11976f 186 strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
molberry 0:04482d11976f 187 strcat(webbuff, "<strong>Mode</strong>");
molberry 0:04482d11976f 188 strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\" onClick='send_mes_fun(this.id,this.value)' >");
molberry 0:04482d11976f 189 strcat(webbuff, "AVOIDANCE</button></td><td>");
molberry 0:04482d11976f 190 strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\" onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
molberry 0:04482d11976f 191 break;
molberry 0:04482d11976f 192 case BACK:
molberry 0:04482d11976f 193 strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\" value=\"GO\" onClick='send_mes(this.id,this.value)'>GO");
molberry 0:04482d11976f 194 strcat(webbuff, "</button></td><td></td></tr><tr><td>");
molberry 0:04482d11976f 195 strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\" onClick='send_mes(this.id,this.value)' >LEFT");
molberry 0:04482d11976f 196 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 197 strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\" onClick='send_mes(this.id,this.value)' >STOP");
molberry 0:04482d11976f 198 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 199 strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\" onClick='send_mes(this.id,this.value)' >RIGHT");
molberry 0:04482d11976f 200 strcat(webbuff, "</button></td></tr><td></td><td>");
molberry 0:04482d11976f 201 strcat(webbuff, "<button id='backbtn' type='button' class=\"light\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
molberry 0:04482d11976f 202 strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr><td>");
molberry 0:04482d11976f 203 strcat(webbuff, "<strong>Mode</strong>");
molberry 0:04482d11976f 204 strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\" onClick='send_mes_fun(this.id,this.value)' >");
molberry 0:04482d11976f 205 strcat(webbuff, "AVOIDANCE</button></td><td>");
molberry 0:04482d11976f 206 strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\" onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
molberry 0:04482d11976f 207 break;
molberry 0:04482d11976f 208 case AVOIDANCE:
molberry 0:04482d11976f 209 strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\" value=\"GO\" onClick='send_mes(this.id,this.value)'>GO");
molberry 0:04482d11976f 210 strcat(webbuff, "</button></td><td></td></tr><tr><td>");
molberry 0:04482d11976f 211 strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\" onClick='send_mes(this.id,this.value)' >LEFT");
molberry 0:04482d11976f 212 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 213 strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\" onClick='send_mes(this.id,this.value)' >STOP");
molberry 0:04482d11976f 214 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 215 strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\" onClick='send_mes(this.id,this.value)' >RIGHT");
molberry 0:04482d11976f 216 strcat(webbuff, "</button></td></tr><td></td><td>");
molberry 0:04482d11976f 217 strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
molberry 0:04482d11976f 218 strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
molberry 0:04482d11976f 219 strcat(webbuff, "<strong>Mode</strong>");
molberry 0:04482d11976f 220 strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"light\" value=\"AVOIDANCE\" onClick='send_mes_fun(this.id,this.value)' >");
molberry 0:04482d11976f 221 strcat(webbuff, "AVOIDANCE</button></td><td>");
molberry 0:04482d11976f 222 strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\" onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
molberry 0:04482d11976f 223 break;
molberry 0:04482d11976f 224 case LINE_TRACE:
molberry 0:04482d11976f 225 strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\" value=\"GO\" onClick='send_mes(this.id,this.value)'>GO");
molberry 0:04482d11976f 226 strcat(webbuff, "</button></td><td></td></tr><tr><td>");
molberry 0:04482d11976f 227 strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\" onClick='send_mes(this.id,this.value)' >LEFT");
molberry 0:04482d11976f 228 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 229 strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\" onClick='send_mes(this.id,this.value)' >STOP");
molberry 0:04482d11976f 230 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 231 strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\" onClick='send_mes(this.id,this.value)' >RIGHT");
molberry 0:04482d11976f 232 strcat(webbuff, "</button></td></tr><td></td><td>");
molberry 0:04482d11976f 233 strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
molberry 0:04482d11976f 234 strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
molberry 0:04482d11976f 235 strcat(webbuff, "<strong>Mode</strong>");
molberry 0:04482d11976f 236 strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\" onClick='send_mes_fun(this.id,this.value)' >");
molberry 0:04482d11976f 237 strcat(webbuff, "AVOIDANCE</button></td><td>");
molberry 0:04482d11976f 238 strcat(webbuff, "<button id='tracebtn' type='button' class=\"light\" value=\"LINE TRACE\" onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
molberry 0:04482d11976f 239 break;
molberry 0:04482d11976f 240 default:
molberry 0:04482d11976f 241 strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\" value=\"GO\" onClick='send_mes(this.id,this.value)'>GO");
molberry 0:04482d11976f 242 strcat(webbuff, "</button></td><td></td></tr><tr><td>");
molberry 0:04482d11976f 243 strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\" onClick='send_mes(this.id,this.value)' >LEFT");
molberry 0:04482d11976f 244 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 245 strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\" onClick='send_mes(this.id,this.value)' >STOP");
molberry 0:04482d11976f 246 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 247 strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\" onClick='send_mes(this.id,this.value)' >RIGHT");
molberry 0:04482d11976f 248 strcat(webbuff, "</button></td></tr><td></td><td>");
molberry 0:04482d11976f 249 strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
molberry 0:04482d11976f 250 strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
molberry 0:04482d11976f 251 strcat(webbuff, "<strong>Mode</strong>");
molberry 0:04482d11976f 252 strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\" onClick='send_mes_fun(this.id,this.value)' >");
molberry 0:04482d11976f 253 strcat(webbuff, "AVOIDANCE</button></td><td>");
molberry 0:04482d11976f 254 strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\" onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
molberry 0:04482d11976f 255 break;
molberry 0:04482d11976f 256 }
molberry 0:04482d11976f 257 strcat(webbuff, "</button></td></tr></table>");
molberry 0:04482d11976f 258 strcat(webbuff, "<strong>Speed</strong>");
molberry 0:04482d11976f 259 strcat(webbuff, "<table><tr><td>");
molberry 0:04482d11976f 260 //ready示速度だけ点灯
molberry 0:04482d11976f 261 switch (flag_sp) {
molberry 0:04482d11976f 262 case 0:
molberry 0:04482d11976f 263 strcat(webbuff, "<button id='sp1btn' type='button' class=\"light\" value=\"SLOW\" onClick='send_mes_spe(this.id,this.value)' >SLOW");
molberry 0:04482d11976f 264 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 265 strcat(webbuff, "<button id='sp2btn' type='button' class=\"noselect\" value=\"FAST\" onClick='send_mes_spe(this.id,this.value)' >FAST");
molberry 0:04482d11976f 266 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 267 strcat(webbuff, "<button id='sp3btn' type='button' class=\"noselect\" value=\"FLY\" onClick='send_mes_spe(this.id,this.value)' >FLY");
molberry 0:04482d11976f 268 break;
molberry 0:04482d11976f 269 case 1:
molberry 0:04482d11976f 270 strcat(webbuff, "<button id='sp1btn' type='button' class=\"noselect\" value=\"SLOW\" onClick='send_mes_spe(this.id,this.value)' >SLOW");
molberry 0:04482d11976f 271 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 272 strcat(webbuff, "<button id='sp2btn' type='button' class=\"light\" value=\"FAST\" onClick='send_mes_spe(this.id,this.value)' >FAST");
molberry 0:04482d11976f 273 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 274 strcat(webbuff, "<button id='sp3btn' type='button' class=\"noselect\" value=\"FLY\" onClick='send_mes_spe(this.id,this.value)' >FLY");
molberry 0:04482d11976f 275 break;
molberry 0:04482d11976f 276 case 2:
molberry 0:04482d11976f 277 strcat(webbuff, "<button id='sp1btn' type='button' class=\"noselect\" value=\"SLOW\" onClick='send_mes_spe(this.id,this.value)' >SLOW");
molberry 0:04482d11976f 278 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 279 strcat(webbuff, "<button id='sp2btn' type='button' class=\"noselect\" value=\"FAST\" onClick='send_mes_spe(this.id,this.value)' >FAST");
molberry 0:04482d11976f 280 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 281 strcat(webbuff, "<button id='sp3btn' type='button' class=\"light\" value=\"FLY\" onClick='send_mes_spe(this.id,this.value)' >FLY");
molberry 0:04482d11976f 282 break;
molberry 0:04482d11976f 283 default:
molberry 0:04482d11976f 284 strcat(webbuff, "<button id='sp1btn' type='button' class=\"noselect\" value=\"SLOW\" onClick='send_mes_spe(this.id,this.value)' >SLOW");
molberry 0:04482d11976f 285 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 286 strcat(webbuff, "<button id='sp2btn' type='button' class=\"noselect\" value=\"FAST\" onClick='send_mes_spe(this.id,this.value)' >FAST");
molberry 0:04482d11976f 287 strcat(webbuff, "</button></td><td>");
molberry 0:04482d11976f 288 strcat(webbuff, "<button id='sp3btn' type='button' class=\"noselect\" value=\"FLY\" onClick='send_mes_spe(this.id,this.value)' >FLY");
molberry 0:04482d11976f 289 break;
molberry 0:04482d11976f 290 }
molberry 0:04482d11976f 291 strcat(webbuff, "</button></td></tr></table>");
molberry 0:04482d11976f 292
molberry 0:04482d11976f 293 strcat(webbuff, "</center>");
molberry 0:04482d11976f 294 strcat(webbuff, "</body>");
molberry 0:04482d11976f 295 strcat(webbuff, "</html>");
molberry 0:04482d11976f 296 strcat(webbuff, "<script language=\"javascript\" type=\"text/javascript\">");
molberry 0:04482d11976f 297 strcat(webbuff, "function htmlacs(url) {");
molberry 0:04482d11976f 298 strcat(webbuff, "var xhr = new XMLHttpRequest();");
molberry 0:04482d11976f 299 strcat(webbuff, "xhr.open(\"GET\", url);");
molberry 0:04482d11976f 300 strcat(webbuff, "xhr.send(\"\");");
molberry 0:04482d11976f 301 strcat(webbuff, "}");
molberry 0:04482d11976f 302 strcat(webbuff, "function send_mes(btnmes,btnval){");
molberry 0:04482d11976f 303 strcat(webbuff, "var url = \"http://\" + window.location.hostname + \"/cargo?a=\" + btnval;");
molberry 0:04482d11976f 304 strcat(webbuff, "htmlacs(url);");
molberry 0:04482d11976f 305 strcat(webbuff, "console.log(url);");
molberry 0:04482d11976f 306 strcat(webbuff, "}");
molberry 0:04482d11976f 307 strcat(webbuff, "function send_mes_spe(btnmes,btnval){");
molberry 0:04482d11976f 308 strcat(webbuff, "var url = \"http://\" + window.location.hostname + \"/cargo?a=\" + btnval;");
molberry 0:04482d11976f 309 strcat(webbuff, "htmlacs(url);");
molberry 0:04482d11976f 310 strcat(webbuff, "console.log(url);");
molberry 0:04482d11976f 311 strcat(webbuff, "}");
molberry 0:04482d11976f 312 strcat(webbuff, "function send_mes_fun(btnmes,btnval){");
molberry 0:04482d11976f 313 strcat(webbuff, "var url = \"http://\" + window.location.hostname + \"/cargo?a=\" + btnval;");
molberry 0:04482d11976f 314 strcat(webbuff, "htmlacs(url);");
molberry 0:04482d11976f 315 strcat(webbuff, "console.log(url);");
molberry 0:04482d11976f 316 strcat(webbuff, "}");
molberry 0:04482d11976f 317 strcat(webbuff, "</script>");
molberry 0:04482d11976f 318 // end of WEB page data
molberry 0:04482d11976f 319 bufl = strlen(webbuff); // get total page buffer length
molberry 0:04482d11976f 320 //sprintf(cmdbuff,"AT+CIPSEND=%d,%d\r\n", linkID, bufl); // send IPD link channel and buffer character length.
molberry 0:04482d11976f 321
molberry 0:04482d11976f 322 sprintf(cmdbuff,"AT+CIPSENDBUF=%d,%d\r\n", linkID, (bufl>2048?2048:bufl)); // send IPD link channel and buffer character length.
molberry 0:04482d11976f 323 timeout=500;
molberry 0:04482d11976f 324 getcount=40;
molberry 0:04482d11976f 325 SendCMD();
molberry 0:04482d11976f 326 getreply();
molberry 0:04482d11976f 327 pc.printf(replybuff);
molberry 0:04482d11976f 328 pc.printf("\n++++++++++ AT+CIPSENDBUF=%d,%d+++++++++\r\n", linkID, (bufl>2048?2048:bufl));
molberry 0:04482d11976f 329
molberry 0:04482d11976f 330 pc.printf("\n++++++++++ bufl is %d ++++++++++\r\n",bufl);
molberry 0:04482d11976f 331
molberry 0:04482d11976f 332 //pastthrough mode
molberry 0:04482d11976f 333 SendWEB(); // send web page
molberry 0:04482d11976f 334 pc.printf("\n++++++++++ webbuff clear ++++++++++\r\n");
molberry 0:04482d11976f 335
molberry 0:04482d11976f 336 memset(webbuff, '\0', sizeof(webbuff));
molberry 0:04482d11976f 337 sendcheck();
molberry 0:04482d11976f 338 }
molberry 0:04482d11976f 339
molberry 0:04482d11976f 340 // Large WEB buffer data send
molberry 0:04482d11976f 341 void SendWEB()
molberry 0:04482d11976f 342 {
molberry 0:04482d11976f 343 int i=0;
molberry 0:04482d11976f 344 if(esp.writeable()) {
molberry 0:04482d11976f 345 while(webbuff[i]!='\0') {
molberry 0:04482d11976f 346 esp.putc(webbuff[i]);
molberry 0:04482d11976f 347
molberry 0:04482d11976f 348 //****
molberry 0:04482d11976f 349 //output at command when 2000
molberry 0:04482d11976f 350 if(((i%2047)==0) && (i>0)){
molberry 0:04482d11976f 351 //wait_ms(10);
molberry 0:04482d11976f 352 sprintf(cmdbuff,"AT+CIPSENDBUF=%d,%d\r\n", linkID, (bufl-2048)>2048?2048:(bufl-2048)); // send IPD link channel and buffer character length.
molberry 0:04482d11976f 353 pc.printf("\r\n++++++++++ AT+CIPSENDBUF=%d,%d ++++++++++\r\n", linkID, (bufl-2048)>2048?2048:(bufl-2048));
molberry 0:04482d11976f 354 timeout=600;
molberry 0:04482d11976f 355 getcount=50;
molberry 0:04482d11976f 356 SendCMD();
molberry 0:04482d11976f 357 getreply();
molberry 0:04482d11976f 358 pc.printf(replybuff);
molberry 0:04482d11976f 359 pc.printf("\r\n+++++++++++++++++++\r\n");
molberry 0:04482d11976f 360 }
molberry 0:04482d11976f 361 //****
molberry 0:04482d11976f 362 i++;
molberry 0:04482d11976f 363 pc.printf("%c",webbuff[i]);
molberry 0:04482d11976f 364 }
molberry 0:04482d11976f 365 }
molberry 0:04482d11976f 366 pc.printf("\n++++++++++ send web i= %dinfo ++++++++++\r\n",i);
molberry 0:04482d11976f 367 }
molberry 0:04482d11976f 368
molberry 0:04482d11976f 369
molberry 0:04482d11976f 370
molberry 0:04482d11976f 371 void sendcheck()
molberry 0:04482d11976f 372 {
molberry 0:04482d11976f 373 weberror=1;
molberry 0:04482d11976f 374 timeout=500;
molberry 0:04482d11976f 375 getcount=24;
molberry 0:04482d11976f 376 t2.reset();
molberry 0:04482d11976f 377 t2.start();
molberry 0:04482d11976f 378
molberry 0:04482d11976f 379 /*
molberry 0:04482d11976f 380 while(weberror==1 && t2.read() <5) {
molberry 0:04482d11976f 381 getreply();
molberry 0:04482d11976f 382 if (strstr(replybuff, "SEND OK") != NULL) {
molberry 0:04482d11976f 383 weberror=0; // wait for valid SEND OK
molberry 0:04482d11976f 384 }
molberry 0:04482d11976f 385 }
molberry 0:04482d11976f 386 */
molberry 0:04482d11976f 387 if(weberror==1) { // restart connection
molberry 0:04482d11976f 388 strcpy(cmdbuff, "AT+CIPMUX=1\r\n");
molberry 0:04482d11976f 389 timeout=500;
molberry 0:04482d11976f 390 getcount=10;
molberry 0:04482d11976f 391 SendCMD();
molberry 0:04482d11976f 392 getreply();
molberry 0:04482d11976f 393 pc.printf(replybuff);
molberry 0:04482d11976f 394 sprintf(cmdbuff,"AT+CIPSERVER=1,%d\r\n", port);
molberry 0:04482d11976f 395 timeout=500;
molberry 0:04482d11976f 396 getcount=10;
molberry 0:04482d11976f 397 SendCMD();
molberry 0:04482d11976f 398 getreply();
molberry 0:04482d11976f 399 pc.printf(replybuff);
molberry 0:04482d11976f 400 } else {
molberry 0:04482d11976f 401 sprintf(cmdbuff, "AT+CIPCLOSE=%s\r\n",channel); // close current connection
molberry 0:04482d11976f 402 SendCMD();
molberry 0:04482d11976f 403 getreply();
molberry 0:04482d11976f 404 pc.printf(replybuff);
molberry 0:04482d11976f 405 }
molberry 0:04482d11976f 406 t2.reset();
molberry 0:04482d11976f 407 }
molberry 0:04482d11976f 408
molberry 0:04482d11976f 409 // Reads and processes GET and POST web data
molberry 0:04482d11976f 410 void ReadWebData()
molberry 0:04482d11976f 411 {
molberry 0:04482d11976f 412 pc.printf("+++++++++++++++++Read Web Data+++++++++++++++++++++\r\n");
molberry 0:04482d11976f 413 wait_ms(200);
molberry 0:04482d11976f 414 esp.attach(NULL);
molberry 0:04482d11976f 415 count=0;
molberry 0:04482d11976f 416 DataRX=0;
molberry 0:04482d11976f 417 weberror=0;
molberry 0:04482d11976f 418 memset(webdata, '\0', sizeof(webdata));
molberry 0:04482d11976f 419 int x = strcspn (webbuff,"+");
molberry 0:04482d11976f 420 if(x) {
molberry 0:04482d11976f 421 strcpy(webdata, webbuff + x);
molberry 0:04482d11976f 422 weberror=0;
molberry 0:04482d11976f 423 int numMatched = sscanf(webdata,"+IPD,%d,%d:%s", &linkID, &ipdLen, type);
molberry 0:04482d11976f 424 //int i=0;
molberry 0:04482d11976f 425 pc.printf("+++++++++++++++++succed rec begin+++++++++++++++++++++\r\n");
molberry 0:04482d11976f 426 pc.printf("%s",webdata);
molberry 0:04482d11976f 427 pc.printf("+++++++++++++++++succed rec end+++++++++++++++++++++\r\n");
molberry 0:04482d11976f 428 if( strstr(webdata, "GO") != NULL ) {
molberry 0:04482d11976f 429 pc.printf("+++++++++++++++++前進+++++++++++++++++++++\r\n");
molberry 0:04482d11976f 430 //run = ADVANCE; // 前進
molberry 0:04482d11976f 431 mode = READY; // モードs変更
molberry 0:04482d11976f 432 // display(); // ディスプレイ表示
molberry 0:04482d11976f 433
molberry 0:04482d11976f 434 }
molberry 0:04482d11976f 435
molberry 0:04482d11976f 436 if( strstr(webdata, "LEFT") != NULL ) {
molberry 0:04482d11976f 437 pc.printf("+++++++++++++++++左折+++++++++++++++++++++\r\n");
molberry 0:04482d11976f 438 //run = LEFT;
molberry 0:04482d11976f 439 mode = READY;
molberry 0:04482d11976f 440 // display(); // ディスプレイ表示
molberry 0:04482d11976f 441 }
molberry 0:04482d11976f 442
molberry 0:04482d11976f 443 if( strstr(webdata, "STOP") != NULL ) {
molberry 0:04482d11976f 444 pc.printf("+++++++++++++++++停止+++++++++++++++++++++\r\n");
molberry 0:04482d11976f 445 // run = STOP;
molberry 0:04482d11976f 446 mode = READY;
molberry 0:04482d11976f 447 // display(); // ディスプレイ表示
molberry 0:04482d11976f 448 }
molberry 0:04482d11976f 449
molberry 0:04482d11976f 450 if( strstr(webdata, "RIGHT") != NULL ) {
molberry 0:04482d11976f 451 pc.printf("+++++++++++++++++右折+++++++++++++++++++++\r\n");
molberry 0:04482d11976f 452 // run = RIGHT;
molberry 0:04482d11976f 453 mode = READY;
molberry 0:04482d11976f 454 // display(); // ディスプレイ表示
molberry 0:04482d11976f 455 }
molberry 0:04482d11976f 456
molberry 0:04482d11976f 457 if( strstr(webdata, "BACK") != NULL ) {
molberry 0:04482d11976f 458 pc.printf("+++++++++++++++++後進+++++++++++++++++++++\r\n");
molberry 0:04482d11976f 459 // run = BACK;
molberry 0:04482d11976f 460 mode = READY;
molberry 0:04482d11976f 461 // display(); // ディスプレイ表示
molberry 0:04482d11976f 462 }
molberry 0:04482d11976f 463 pc.printf("+++++++++++++++++succed+++++++++++++++++++++");
molberry 0:04482d11976f 464
molberry 0:04482d11976f 465 if( strstr(webdata, "AVOIDANCE") != NULL ) {
molberry 0:04482d11976f 466 pc.printf("+++++++++++++++++AVOIDANCE+++++++++++++++++++++");
molberry 0:04482d11976f 467 mode=AVOIDANCE;
molberry 0:04482d11976f 468 // run = ADVANCE;
molberry 0:04482d11976f 469 // display(); // ディスプレイ表示
molberry 0:04482d11976f 470 }
molberry 0:04482d11976f 471 if( strstr(webdata, "LINE TRACE") != NULL ) {
molberry 0:04482d11976f 472 pc.printf("+++++++++++++++++LINET RACE+++++++++++++++++++++");
molberry 0:04482d11976f 473 mode=LINE_TRACE;
molberry 0:04482d11976f 474 // display(); // ディスプレイ表示
molberry 0:04482d11976f 475 }
molberry 0:04482d11976f 476 if( strstr(webdata, "DEFAULT") != NULL ) {//プログラムなくね
molberry 0:04482d11976f 477 pc.printf("+++++++++++++++++DEFAULT+++++++++++++++++++++");
molberry 0:04482d11976f 478 // run = STOP;
molberry 0:04482d11976f 479 mode = READY;
molberry 0:04482d11976f 480 // display(); // ディスプレイ表示
molberry 0:04482d11976f 481
molberry 0:04482d11976f 482 }
molberry 0:04482d11976f 483 if( strstr(webdata, "SLOW") != NULL ) {
molberry 0:04482d11976f 484 pc.printf("++++++++++++++++++SLOW++++++++++++++++++++");
molberry 0:04482d11976f 485 mode = SPEED; // スピードモード
molberry 0:04482d11976f 486 flag_sp = 0;
molberry 0:04482d11976f 487 // display(); // ディスプレイ表示
molberry 0:04482d11976f 488 mode = beforeMode; // 現在のモードに前回のモードを設定
molberry 0:04482d11976f 489 }
molberry 0:04482d11976f 490 if( strstr(webdata, "FAST") != NULL ) {
molberry 0:04482d11976f 491 pc.printf("++++++++++++++++++++FAST++++++++++++++++++");
molberry 0:04482d11976f 492 mode = SPEED; // スピードモード
molberry 0:04482d11976f 493 flag_sp = 1;
molberry 0:04482d11976f 494 // display(); // ディスプレイ表示
molberry 0:04482d11976f 495 mode = beforeMode; // 現在のモードに前回のモードを設定
molberry 0:04482d11976f 496 }
molberry 0:04482d11976f 497 if( strstr(webdata, "FLY") != NULL ) {
molberry 0:04482d11976f 498 pc.printf("+++++++++++++++++++BERYFAST+++++++++++++++++++");
molberry 0:04482d11976f 499 mode = SPEED; // スピードモード d
molberry 0:04482d11976f 500 flag_sp = 2;
molberry 0:04482d11976f 501 // display(); // ディスプレイ表示
molberry 0:04482d11976f 502 mode = beforeMode; // 現在のモードに前回のモードを設定
molberry 0:04482d11976f 503 }
molberry 0:04482d11976f 504 sprintf(channel, "%d",linkID);
molberry 0:04482d11976f 505 if (strstr(webdata, "GET") != NULL) {
molberry 0:04482d11976f 506 servreq=1;
molberry 0:04482d11976f 507 }
molberry 0:04482d11976f 508 if (strstr(webdata, "POST") != NULL) {
molberry 0:04482d11976f 509 servreq=1;
molberry 0:04482d11976f 510 }
molberry 0:04482d11976f 511 webcounter++;
molberry 0:04482d11976f 512 sprintf(webcount, "%d",webcounter);
molberry 0:04482d11976f 513 } else {
molberry 0:04482d11976f 514 memset(webbuff, '\0', sizeof(webbuff));
molberry 0:04482d11976f 515 esp.attach(&callback);
molberry 0:04482d11976f 516 weberror=1;
molberry 0:04482d11976f 517 }
molberry 0:04482d11976f 518 }
molberry 0:04482d11976f 519 // Starts and restarts webserver if errors detected.
molberry 0:04482d11976f 520 void startserver()
molberry 0:04482d11976f 521 {
molberry 0:04482d11976f 522 pc.printf("++++++++++ Resetting ESP ++++++++++\r\n");
molberry 0:04482d11976f 523 strcpy(cmdbuff,"AT+RST\r\n");
molberry 0:04482d11976f 524 timeout=8000;
molberry 0:04482d11976f 525 getcount=1000;
molberry 0:04482d11976f 526 SendCMD();
molberry 0:04482d11976f 527 getreply();
molberry 0:04482d11976f 528 pc.printf(replybuff);
molberry 0:04482d11976f 529 pc.printf("%d",count);
molberry 0:04482d11976f 530 if (strstr(replybuff, "OK") != NULL) {
molberry 0:04482d11976f 531 pc.printf("\n++++++++++ Starting Server ++++++++++\r\n");
molberry 0:04482d11976f 532 strcpy(cmdbuff, "AT+CIPMUX=1\r\n"); // set multiple connections.
molberry 0:04482d11976f 533 timeout=500;
molberry 0:04482d11976f 534 getcount=20;
molberry 0:04482d11976f 535 SendCMD();
molberry 0:04482d11976f 536 getreply();
molberry 0:04482d11976f 537 pc.printf(replybuff);
molberry 0:04482d11976f 538 sprintf(cmdbuff,"AT+CIPSERVER=1,%d\r\n", port);
molberry 0:04482d11976f 539 timeout=500;
molberry 0:04482d11976f 540 getcount=20;
molberry 0:04482d11976f 541 SendCMD();
molberry 0:04482d11976f 542 getreply();
molberry 0:04482d11976f 543 pc.printf(replybuff);
molberry 0:04482d11976f 544 wait(1);
molberry 0:04482d11976f 545 sprintf(cmdbuff,"AT+CIPSTO=%d\r\n",SERVtimeout);
molberry 0:04482d11976f 546 timeout=500;
molberry 0:04482d11976f 547 getcount=50;
molberry 0:04482d11976f 548 SendCMD();
molberry 0:04482d11976f 549 getreply();
molberry 0:04482d11976f 550 pc.printf(replybuff);
molberry 0:04482d11976f 551 wait(5);
molberry 0:04482d11976f 552 pc.printf("\n Getting Server IP \r\n");
molberry 0:04482d11976f 553 strcpy(cmdbuff, "AT+CIFSR\r\n");
molberry 0:04482d11976f 554 timeout=2500;
molberry 0:04482d11976f 555 getcount=200;
molberry 0:04482d11976f 556 while(weberror==0) {
molberry 0:04482d11976f 557 SendCMD();
molberry 0:04482d11976f 558 getreply();
molberry 0:04482d11976f 559 if (strstr(replybuff, "0.0.0.0") == NULL) {
molberry 0:04482d11976f 560 weberror=1; // wait for valid IP
molberry 0:04482d11976f 561 }
molberry 0:04482d11976f 562 }
molberry 0:04482d11976f 563 pc.printf("\n Enter WEB address (IP) found below in your browser \r\n\n");
molberry 0:04482d11976f 564 pc.printf("\n The MAC address is also shown below,if it is needed \r\n\n");
molberry 0:04482d11976f 565 replybuff[strlen(replybuff)-1] = '\0';
molberry 0:04482d11976f 566 //char* IP = replybuff + 5;
molberry 0:04482d11976f 567 sprintf(webdata,"%s", replybuff);
molberry 0:04482d11976f 568 pc.printf(webdata);
molberry 0:04482d11976f 569 led2=1;
molberry 0:04482d11976f 570 bufflen=200;
molberry 0:04482d11976f 571 //bufflen=100;
molberry 0:04482d11976f 572 count=0;
molberry 0:04482d11976f 573 pc.printf("\n\n++++++++++ Ready ++++++++++\r\n\n");
molberry 0:04482d11976f 574 esp.attach(&callback);
molberry 0:04482d11976f 575 } else {
molberry 0:04482d11976f 576 pc.printf("\n++++++++++ ESP8266 error, check power/connections ++++++++++\r\n");
molberry 0:04482d11976f 577 led1=1;
molberry 0:04482d11976f 578 led2=1;
molberry 0:04482d11976f 579 led3=1;
molberry 0:04482d11976f 580 led4=1;
molberry 0:04482d11976f 581 while(1) {
molberry 0:04482d11976f 582 led1=!led1;
molberry 0:04482d11976f 583 led2=!led2;
molberry 0:04482d11976f 584 led3=!led3;
molberry 0:04482d11976f 585 led4=!led4;
molberry 0:04482d11976f 586 wait(1);
molberry 0:04482d11976f 587 }
molberry 0:04482d11976f 588 }
molberry 0:04482d11976f 589 t2.reset();
molberry 0:04482d11976f 590 t2.start();
molberry 0:04482d11976f 591 }
molberry 0:04482d11976f 592 // ESP Command data send
molberry 0:04482d11976f 593 void SendCMD()
molberry 0:04482d11976f 594 {
molberry 0:04482d11976f 595 esp.printf("%s", cmdbuff);
molberry 0:04482d11976f 596 }
molberry 0:04482d11976f 597 // Get Command and ESP status replies
molberry 0:04482d11976f 598 void getreply()
molberry 0:04482d11976f 599 {
molberry 0:04482d11976f 600 memset(replybuff, '\0', sizeof(replybuff));
molberry 0:04482d11976f 601 t1.reset();
molberry 0:04482d11976f 602 t1.start();
molberry 0:04482d11976f 603 replycount=0;
molberry 0:04482d11976f 604 while(t1.read_ms()< timeout && replycount < getcount) {
molberry 0:04482d11976f 605 if(esp.readable()) {
molberry 0:04482d11976f 606 replybuff[replycount] = esp.getc();
molberry 0:04482d11976f 607 replycount++;
molberry 0:04482d11976f 608 }
molberry 0:04482d11976f 609 }
molberry 0:04482d11976f 610 t1.stop();
molberry 0:04482d11976f 611 }