Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
molberry
Date:
Mon Aug 03 08:32:34 2020 +0000
Parent:
5:2c3f6ab7028a
Commit message:
allend

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Aug 03 01:25:38 2020 +0000
+++ b/main.cpp	Mon Aug 03 08:32:34 2020 +0000
@@ -1,7 +1,19 @@
 #include "mbed.h"
 
 Serial pc(USBTX, USBRX);
-Serial esp(p28, p27); // tx, rx
+Serial esp(p13, p14); // tx, rx
+
+enum MODE {
+    READY = -1,
+    ADVANCE = 1,
+    RIGHT,
+    LEFT,
+    BACK,
+    STOP,
+    LINE_TRACE,     //  6:ライントレース
+    AVOIDANCE,      //  7:障害物回避
+    SPEED,          //  8:スピード制御
+};
 
 // Standard Mbed LED definitions
 DigitalOut  led1(LED1);    
@@ -14,6 +26,10 @@
 
 struct tm t;
 
+int flag_sp = 0;
+int mode = ADVANCE;
+int beforeMode = mode;
+
 int bufflen, DataRX, count, getcount, replycount, servreq, timeout;
 int bufl, ipdLen, linkID, weberror, webcounter,click_flag;
 float temperature, AdcIn, Ht;
@@ -36,6 +52,9 @@
 int port        =80;  // set server port
 int SERVtimeout =5;    // set server timeout in seconds in case link breaks.
 
+char ssid[32] = "mbed02"; // enter WiFi router ssid inside the quotes
+char pwd [32] = "0123456789a"; // enter WiFi router password inside the quotes
+
 // Serial Interrupt read ESP data
 void callback()
 {
@@ -95,83 +114,207 @@
 {
 // WEB page data
 
-strcpy(webbuff, "<!DOCTYPE html>");
-strcat(webbuff, "<html><head><title>RobotCar</title><meta name='viewport' content='width=device-width'/>");    
-strcat(webbuff, "</head><body><center><p><strong>Robot Car Remot Controller");
-strcat(webbuff, "</strong></p><td style='vertical-align:top;'><strong>Battery level ");
-strcat(webbuff, "<input type=\"text\" id=\"leftms\" size=4 value=250>%</strong>");
-strcat(webbuff, "</td></p><tr ><strong>Now speed : </strong></tr><nobr id=\"speprint\">ready");
-strcat(webbuff, "</nobr><br><tr ><strong>Now action : </strong></tr>");
-strcat(webbuff, "<nobr id=\"funprint\">ready</nobr><table><tr><td></td><td>");
-
-strcat(webbuff, "<button id='gobtn' type='button' style='width:100px;height:60px'  value=\"GO\"  onClick='send_mes(this.id,this.value)'>GO");
-strcat(webbuff, "</button></td><td></td></tr><tr><td>");
-strcat(webbuff, "<button id='leftbtn' type='button' style='width:100px;height:60px' value=\"LEFT\"  onClick='send_mes(this.id,this.value)' >LEFT");
-strcat(webbuff, "</button></td><td>");
-
-strcat(webbuff, "<button id='stopbtn' type='button' style='width:100px;height:60px' value=\"STOP\"  onClick='send_mes(this.id,this.value)' >STOP");
-strcat(webbuff, "</button></td><td>");
-strcat(webbuff, "<button id='rightbtn' type='button' style='width:100px;height:60px' value=\"RIGHT\"  onClick='send_mes(this.id,this.value)' >RIGHT");
-strcat(webbuff, "</button></td></tr><td></td><td>");
-strcat(webbuff, "<button id='backbtn' type='button' style='width:100px;height:60px' value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
-strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
-
-
+    strcpy(webbuff, "<!DOCTYPE html>");
+    strcat(webbuff, "<html><head><title>RobotCar</title><meta name='viewport' content='width=device-width'/>");
+    strcat(webbuff, "<style type=\"text/css\">.noselect{ width:100px;height:60px;}.light{ width:100px;height:60px;background-color:00ff66;}</style>");
+    strcat(webbuff, "</head><body><center><p><strong>Robot Car Remot Controller");
+    strcat(webbuff, "</strong></p><td style='vertical-align:top;'><strong>Battery level ");
+    strcat(webbuff, "<input type=\"text\" id=\"leftms\" size=4 value=250>%</strong>");
+    strcat(webbuff, "</td></p>");
+    strcat(webbuff, "<br>");
+    strcat(webbuff, "<table><tr><td></td><td>");
 
-//begin
-strcat(webbuff, "<strong>Addition functions:</strong><table>");
-strcat(webbuff, "<td>");//ok
-strcat(webbuff, "<button id='avoidbtn' type='button' style='width:100px;height:60px' value=\"AVOIDANCE\"  onClick='send_mes_fun(this.id,this.value)' >");
-strcat(webbuff, "AVOIDANCE</button></td><td>");
-strcat(webbuff, "<button id='tracebtn' type='button' style='width:100px;height:60px' value=\"LINE TRACE\"  onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
-strcat(webbuff, "</button></td><td>");
-strcat(webbuff, "<button id='defbtn' type='button' style='width:100px;height:60px' value=\"DEFAULT\"  onClick='send_mes_fun(this.id,this.value)' >DEFAULT");
-strcat(webbuff, "</button></td></table><table><td>");
-strcat(webbuff, "</td><strong>Speed level:</strong>");
-strcat(webbuff, "</table><table><td>");
-strcat(webbuff, "<button id='sp1btn' type='button' style='width:100px;height:60px' value=\"SLOW\"  onClick='send_mes_spe(this.id,this.value)' >SLOW");
-strcat(webbuff, "</button></td><td>");
-strcat(webbuff, "<button id='sp2btn' type='button' style='width:100px;height:60px' value=\"FAST\"  onClick='send_mes_spe(this.id,this.value)' >FAST");
-strcat(webbuff, "</button>");
-strcat(webbuff, "</td>");    
-strcat(webbuff, "<td>");
-strcat(webbuff, "<button id='sp3btn' type='button' style='width:100px;height:60px' value=\"FLY\"  onClick='send_mes_spe(this.id,this.value)' >FLY");
-strcat(webbuff, "</button>");
-strcat(webbuff, "</td></table>");    
-strcat(webbuff, "<table>");        
-strcat(webbuff, "<td>");
-strcat(webbuff, "</td>");    
-strcat(webbuff, "</table>");    //end
-
-
+    switch(mode) {
+        case ADVANCE:
+            strcat(webbuff, "<button id='gobtn' type='button' class=\"light\"  value=\"GO\"  onClick='send_mes(this.id,this.value)'>GO");
+            strcat(webbuff, "</button></td><td></td></tr><tr><td>");
+            strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\"  onClick='send_mes(this.id,this.value)' >LEFT");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\"  onClick='send_mes(this.id,this.value)' >STOP");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\"  onClick='send_mes(this.id,this.value)' >RIGHT");
+            strcat(webbuff, "</button></td></tr><td></td><td>");
+            strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
+            strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
+            strcat(webbuff, "<strong>Mode</strong>");
+            strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\"  onClick='send_mes_fun(this.id,this.value)' >");
+            strcat(webbuff, "AVOIDANCE</button></td><td>");
+            strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\"  onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
+            break;
+        case LEFT:
+            strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\"  value=\"GO\"  onClick='send_mes(this.id,this.value)'>GO");
+            strcat(webbuff, "</button></td><td></td></tr><tr><td>");
+            strcat(webbuff, "<button id='leftbtn' type='button' class=\"light\" value=\"LEFT\"  onClick='send_mes(this.id,this.value)' >LEFT");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\"  onClick='send_mes(this.id,this.value)' >STOP");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\"  onClick='send_mes(this.id,this.value)' >RIGHT");
+            strcat(webbuff, "</button></td></tr><td></td><td>");
+            strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
+            strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
+            strcat(webbuff, "<strong>Mode</strong>");
+            strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\"  onClick='send_mes_fun(this.id,this.value)' >");
+            strcat(webbuff, "AVOIDANCE</button></td><td>");
+            strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\"  onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
+            break;
+        case STOP:
+            strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\"  value=\"GO\"  onClick='send_mes(this.id,this.value)'>GO");
+            strcat(webbuff, "</button></td><td></td></tr><tr><td>");
+            strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\"  onClick='send_mes(this.id,this.value)' >LEFT");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='stopbtn' type='button' class=\"light\" value=\"STOP\"  onClick='send_mes(this.id,this.value)' >STOP");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\"  onClick='send_mes(this.id,this.value)' >RIGHT");
+            strcat(webbuff, "</button></td></tr><td></td><td>");
+            strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
+            strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
+            strcat(webbuff, "<strong>Mode</strong>");
+            strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\"  onClick='send_mes_fun(this.id,this.value)' >");
+            strcat(webbuff, "AVOIDANCE</button></td><td>");
+            strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\"  onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
+            break;
+        case RIGHT:
+            strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\"  value=\"GO\"  onClick='send_mes(this.id,this.value)'>GO");
+            strcat(webbuff, "</button></td><td></td></tr><tr><td>");
+            strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\"  onClick='send_mes(this.id,this.value)' >LEFT");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\"  onClick='send_mes(this.id,this.value)' >STOP");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='rightbtn' type='button' class=\"light\" value=\"RIGHT\"  onClick='send_mes(this.id,this.value)' >RIGHT");
+            strcat(webbuff, "</button></td></tr><td></td><td>");
+            strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
+            strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
+            strcat(webbuff, "<strong>Mode</strong>");
+            strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\"  onClick='send_mes_fun(this.id,this.value)' >");
+            strcat(webbuff, "AVOIDANCE</button></td><td>");
+            strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\"  onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
+            break;
+        case BACK:
+            strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\"  value=\"GO\"  onClick='send_mes(this.id,this.value)'>GO");
+            strcat(webbuff, "</button></td><td></td></tr><tr><td>");
+            strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\"  onClick='send_mes(this.id,this.value)' >LEFT");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\"  onClick='send_mes(this.id,this.value)' >STOP");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\"  onClick='send_mes(this.id,this.value)' >RIGHT");
+            strcat(webbuff, "</button></td></tr><td></td><td>");
+            strcat(webbuff, "<button id='backbtn' type='button' class=\"light\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
+            strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr><td>");
+            strcat(webbuff, "<strong>Mode</strong>");
+            strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\"  onClick='send_mes_fun(this.id,this.value)' >");
+            strcat(webbuff, "AVOIDANCE</button></td><td>");
+            strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\"  onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
+            break;
+        case AVOIDANCE:
+            strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\"  value=\"GO\"  onClick='send_mes(this.id,this.value)'>GO");
+            strcat(webbuff, "</button></td><td></td></tr><tr><td>");
+            strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\"  onClick='send_mes(this.id,this.value)' >LEFT");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\"  onClick='send_mes(this.id,this.value)' >STOP");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\"  onClick='send_mes(this.id,this.value)' >RIGHT");
+            strcat(webbuff, "</button></td></tr><td></td><td>");
+            strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
+            strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
+            strcat(webbuff, "<strong>Mode</strong>");
+            strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"light\" value=\"AVOIDANCE\"  onClick='send_mes_fun(this.id,this.value)' >");
+            strcat(webbuff, "AVOIDANCE</button></td><td>");
+            strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\"  onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
+            break;
+        case LINE_TRACE:
+            strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\"  value=\"GO\"  onClick='send_mes(this.id,this.value)'>GO");
+            strcat(webbuff, "</button></td><td></td></tr><tr><td>");
+            strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\"  onClick='send_mes(this.id,this.value)' >LEFT");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\"  onClick='send_mes(this.id,this.value)' >STOP");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\"  onClick='send_mes(this.id,this.value)' >RIGHT");
+            strcat(webbuff, "</button></td></tr><td></td><td>");
+            strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
+            strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
+            strcat(webbuff, "<strong>Mode</strong>");
+            strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\"  onClick='send_mes_fun(this.id,this.value)' >");
+            strcat(webbuff, "AVOIDANCE</button></td><td>");
+            strcat(webbuff, "<button id='tracebtn' type='button' class=\"light\" value=\"LINE TRACE\"  onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
+            break;
+        default:
+            strcat(webbuff, "<button id='gobtn' type='button' class=\"noselect\"  value=\"GO\"  onClick='send_mes(this.id,this.value)'>GO");
+            strcat(webbuff, "</button></td><td></td></tr><tr><td>");
+            strcat(webbuff, "<button id='leftbtn' type='button' class=\"noselect\" value=\"LEFT\"  onClick='send_mes(this.id,this.value)' >LEFT");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='stopbtn' type='button' class=\"noselect\" value=\"STOP\"  onClick='send_mes(this.id,this.value)' >STOP");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='rightbtn' type='button' class=\"noselect\" value=\"RIGHT\"  onClick='send_mes(this.id,this.value)' >RIGHT");
+            strcat(webbuff, "</button></td></tr><td></td><td>");
+            strcat(webbuff, "<button id='backbtn' type='button' class=\"noselect\" value=\"BACK\" onClick='send_mes(this.id,this.value)' >BACK");
+            strcat(webbuff, "</button></td><td style='vertical-align:top; text-align:right;'></td></tr></table>");
+            strcat(webbuff, "<strong>Mode</strong>");
+            strcat(webbuff, "<table><tr><td><button id='avoidbtn' type='button' class=\"noselect\" value=\"AVOIDANCE\"  onClick='send_mes_fun(this.id,this.value)' >");
+            strcat(webbuff, "AVOIDANCE</button></td><td>");
+            strcat(webbuff, "<button id='tracebtn' type='button' class=\"noselect\" value=\"LINE TRACE\"  onClick='send_mes_fun(this.id,this.value)' >LINE TRACE");
+            break;
+    }
+    strcat(webbuff, "</button></td></tr></table>");
+    strcat(webbuff, "<strong>Speed</strong>");
+    strcat(webbuff, "<table><tr><td>");
+    //ready示速度だけ点灯
+    switch (flag_sp) {
+        case 0:
+            strcat(webbuff, "<button id='sp1btn' type='button' class=\"light\" value=\"SLOW\"  onClick='send_mes_spe(this.id,this.value)' >SLOW");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='sp2btn' type='button' class=\"noselect\" value=\"FAST\"  onClick='send_mes_spe(this.id,this.value)' >FAST");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='sp3btn' type='button' class=\"noselect\" value=\"FLY\"  onClick='send_mes_spe(this.id,this.value)' >FLY");
+            break;
+        case 1:
+            strcat(webbuff, "<button id='sp1btn' type='button' class=\"noselect\" value=\"SLOW\"  onClick='send_mes_spe(this.id,this.value)' >SLOW");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='sp2btn' type='button' class=\"light\" value=\"FAST\"  onClick='send_mes_spe(this.id,this.value)' >FAST");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='sp3btn' type='button' class=\"noselect\" value=\"FLY\"  onClick='send_mes_spe(this.id,this.value)' >FLY");
+            break;
+        case 2:
+            strcat(webbuff, "<button id='sp1btn' type='button' class=\"noselect\" value=\"SLOW\"  onClick='send_mes_spe(this.id,this.value)' >SLOW");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='sp2btn' type='button' class=\"noselect\" value=\"FAST\"  onClick='send_mes_spe(this.id,this.value)' >FAST");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='sp3btn' type='button' class=\"light\" value=\"FLY\"  onClick='send_mes_spe(this.id,this.value)' >FLY");
+            break;
+        default:
+            strcat(webbuff, "<button id='sp1btn' type='button' class=\"noselect\" value=\"SLOW\"  onClick='send_mes_spe(this.id,this.value)' >SLOW");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='sp2btn' type='button' class=\"noselect\" value=\"FAST\"  onClick='send_mes_spe(this.id,this.value)' >FAST");
+            strcat(webbuff, "</button></td><td>");
+            strcat(webbuff, "<button id='sp3btn' type='button' class=\"noselect\" value=\"FLY\"  onClick='send_mes_spe(this.id,this.value)' >FLY");
+            break;
+    }
+    strcat(webbuff, "</button></td></tr></table>");
 
-strcat(webbuff, "</center>");
-strcat(webbuff, "</body>");
-strcat(webbuff, "</html>");
-strcat(webbuff, "<script language=\"javascript\" type=\"text/javascript\">");
-strcat(webbuff, "function send_mes(btnmes,btnval){");
-strcat(webbuff, "var url = \"http://\" + window.location.hostname + \"/cargo?a=\" + btnval;");
-strcat(webbuff, "htmlacs(url);");
-strcat(webbuff, "console.log(url);");
-strcat(webbuff, "}");
-strcat(webbuff, "function htmlacs(url) {");
-strcat(webbuff, "var xhr = new XMLHttpRequest();");
-strcat(webbuff, "xhr.open(\"GET\", url);");
-strcat(webbuff, "xhr.send(\"\");");
-strcat(webbuff, "}");
-strcat(webbuff, "function send_mes_spe(btnmes,btnval){");
-strcat(webbuff, "console.log(btnmes);");
-strcat(webbuff, "if(document.getElementById(\"speprint\")){");
-strcat(webbuff, "document.getElementById(\"speprint\").innerHTML=btnval;");
-strcat(webbuff, "}");
-strcat(webbuff, "}");
-strcat(webbuff, "function send_mes_fun(btnmes,btnval){");
-strcat(webbuff, "console.log(btnmes);");
-strcat(webbuff, "if(document.getElementById(\"funprint\")){");
-strcat(webbuff, "document.getElementById(\"funprint\").innerHTML=btnval;");
-strcat(webbuff, "}");
-strcat(webbuff, "}");
-strcat(webbuff, "</script>");
+    strcat(webbuff, "</center>");
+    strcat(webbuff, "</body>");
+    strcat(webbuff, "</html>");
+    strcat(webbuff, "<script language=\"javascript\" type=\"text/javascript\">");
+    strcat(webbuff, "function htmlacs(url) {");
+    strcat(webbuff, "var xhr = new XMLHttpRequest();");
+    strcat(webbuff, "xhr.open(\"GET\", url);");
+    strcat(webbuff, "xhr.send(\"\");");
+    strcat(webbuff, "}");
+    strcat(webbuff, "function send_mes(btnmes,btnval){");
+    strcat(webbuff, "var url = \"http://\" + window.location.hostname + \"/cargo?a=\" + btnval;");
+    strcat(webbuff, "htmlacs(url);");
+    strcat(webbuff, "console.log(url);");
+    strcat(webbuff, "}");
+    strcat(webbuff, "function send_mes_spe(btnmes,btnval){");
+    strcat(webbuff, "var url = \"http://\" + window.location.hostname + \"/cargo?a=\" + btnval;");
+    strcat(webbuff, "htmlacs(url);");
+    strcat(webbuff, "console.log(url);");
+    strcat(webbuff, "}");
+    strcat(webbuff, "function send_mes_fun(btnmes,btnval){");
+    strcat(webbuff, "var url = \"http://\" + window.location.hostname + \"/cargo?a=\" + btnval;");
+    strcat(webbuff, "htmlacs(url);");
+    strcat(webbuff, "console.log(url);");
+    strcat(webbuff, "}");
+    strcat(webbuff, "</script>");
 // end of WEB page data
     bufl = strlen(webbuff); // get total page buffer length
     //sprintf(cmdbuff,"AT+CIPSEND=%d,%d\r\n", linkID, bufl); // send IPD link channel and buffer character length.
@@ -282,31 +425,92 @@
         pc.printf("+++++++++++++++++succed rec begin+++++++++++++++++++++\r\n");
         pc.printf("%s",webdata);
         pc.printf("+++++++++++++++++succed rec end+++++++++++++++++++++\r\n");
+        if( strstr(webdata, "GO") != NULL ) {
+            pc.printf("+++++++++++++++++前進+++++++++++++++++++++\r\n");
+            //run = ADVANCE;           // 前進
+            mode = READY;            // モードs変更
+//            display();          // ディスプレイ表示
+
+        }
+
         if( strstr(webdata, "LEFT") != NULL ) {
-             click_flag = 0;
-             led4=!led4;
-             pc.printf("+++++++++++++++++bbutton left clicked+++++++++++++++++++++\r\n");
+            pc.printf("+++++++++++++++++左折+++++++++++++++++++++\r\n");
+            //run = LEFT;
+            mode = READY;
+//            display();          // ディスプレイ表示
         }
-        
+
+        if( strstr(webdata, "STOP") != NULL ) {
+            pc.printf("+++++++++++++++++停止+++++++++++++++++++++\r\n");
+//            run = STOP;
+            mode = READY;
+//            display();          // ディスプレイ表示
+        }
+
         if( strstr(webdata, "RIGHT") != NULL ) {
-            led4=!led4;
-            pc.printf("\r\n+++++++++++++++++bbutton right clicked+++++++++++++++++++++\r\n");
+            pc.printf("+++++++++++++++++右折+++++++++++++++++++++\r\n");
+//            run = RIGHT;
+            mode = READY;
+//            display();          // ディスプレイ表示
         }
 
+        if( strstr(webdata, "BACK") != NULL ) {
+            pc.printf("+++++++++++++++++後進+++++++++++++++++++++\r\n");
+//            run = BACK;
+            mode = READY;
+//            display();          // ディスプレイ表示
+        }
+        pc.printf("+++++++++++++++++succed+++++++++++++++++++++");
+
+        if( strstr(webdata, "AVOIDANCE") != NULL ) {
+            pc.printf("+++++++++++++++++AVOIDANCE+++++++++++++++++++++");
+            mode=AVOIDANCE;
+//            run = ADVANCE;
+//            display();          // ディスプレイ表示
+        }
+        if( strstr(webdata, "LINE TRACE") != NULL ) {
+            pc.printf("+++++++++++++++++LINET RACE+++++++++++++++++++++");
+            mode=LINE_TRACE;
+//            display();          // ディスプレイ表示
+        }
+        if( strstr(webdata, "DEFAULT") != NULL ) {//プログラムなくね
+            pc.printf("+++++++++++++++++DEFAULT+++++++++++++++++++++");
+//            run = STOP;
+            mode = READY;
+//            display();          // ディスプレイ表示
+
+        }
+        if( strstr(webdata, "SLOW") != NULL ) {
+            pc.printf("++++++++++++++++++SLOW++++++++++++++++++++");
+            mode = SPEED;       // スピードモード
+            flag_sp = 0;
+//            display();          // ディスプレイ表示
+            mode = beforeMode;  // 現在のモードに前回のモードを設定
+        }
+        if( strstr(webdata, "FAST") != NULL ) {
+            pc.printf("++++++++++++++++++++FAST++++++++++++++++++");
+            mode = SPEED;       // スピードモード
+            flag_sp = 1;
+//            display();          // ディスプレイ表示
+            mode = beforeMode;  // 現在のモードに前回のモードを設定
+        }
+        if( strstr(webdata, "FLY") != NULL ) {
+            pc.printf("+++++++++++++++++++BERYFAST+++++++++++++++++++");
+            mode = SPEED;       // スピードモード d
+            flag_sp = 2;
+//            display();          // ディスプレイ表示
+            mode = beforeMode;  // 現在のモードに前回のモードを設定
+        }
         sprintf(channel, "%d",linkID);
         if (strstr(webdata, "GET") != NULL) {
             servreq=1;
-            pc.printf("\r\n+++++++++++++++++GET+++++++++++++++++++++\r\n");
-
         }
         if (strstr(webdata, "POST") != NULL) {
             servreq=1;
-            pc.printf("\r\n+++++++++++++++++POST+++++++++++++++++++++\r\n");
         }
         webcounter++;
         sprintf(webcount, "%d",webcounter);
     } else {
-        pc.printf("\n++++++++++ webbuff clear  ++++++++++\r\n");
         memset(webbuff, '\0', sizeof(webbuff));
         esp.attach(&callback);
         weberror=1;