ボタンを押すと、 バッテリ更新を停止し、 他のボタンもロックさせる

Dependencies:   RemoteIR TextLCD

Revision:
49:14b3dba5bd56
Parent:
48:7be823ac7eb8
Child:
50:6c25bf1c39d7
--- a/main.cpp	Tue Aug 25 05:15:48 2020 +0000
+++ b/main.cpp	Wed Aug 26 08:29:31 2020 +0000
@@ -37,6 +37,9 @@
 /* ピン配置 */
 ReceiverIR   ir(p5);        // リモコン操作
 DigitalOut  trig(p6);       // 超音波センサtrigger
+DigitalOut  pred(p16);
+DigitalOut  pblue(p19);
+
 DigitalIn   echo(p7);       // 超音波センサecho
 DigitalIn   ss1(p8);        // ライントレースセンサ(左)
 DigitalIn   ss2(p9);        // ライントレースセンサ
@@ -950,8 +953,23 @@
     strcat(webbuff, "}");
     
     strcat(webbuff, "function htmlacs(url) {");
+    strcat(webbuff, "clearInterval(si);");
     strcat(webbuff, "var xhr = new XMLHttpRequest();");
     strcat(webbuff, "xhr.open(\"GET\", url);");
+    
+//0826
+    strcat(webbuff, "xhr.onreadystatechange = function(){");
+             strcat(webbuff, "if(this.readyState == 4 && this.status == 200){");
+                 strcat(webbuff, "console.log(\"apologize for\");");
+                        strcat(webbuff, "var si = setInterval(battery_update,15000);");
+
+             strcat(webbuff, "}");
+         strcat(webbuff, "};");
+
+    
+//0826  
+
+
     strcat(webbuff, "xhr.send(\"\");");
     strcat(webbuff, "}");
     
@@ -990,7 +1008,7 @@
 
 strcat(webbuff, "xhr1.send();");
 strcat(webbuff, "}");
-strcat(webbuff, "setInterval(battery_update,15000);");
+strcat(webbuff, "var si = setInterval(battery_update,15000);");
 
 //0824 battery update auto
 //0825
@@ -1078,11 +1096,10 @@
     pc.printf("\n++++++++++ send web i= %dinfo ++++++++++\r\n",i);
 }
  
-
 void sendpage2()
 {
 // WEB page data
-
+pred=!pred;
 //strcpy(webbuff, "<script language=\"javascript\" type=\"text/javascript\">");
 //strcat(webbuff, "document.getElementById('leftms').value=\"100\";");
 
@@ -1114,6 +1131,44 @@
     memset(webbuff, '\0', sizeof(webbuff));
     sendcheck();
 }
+
+
+void sendpage3()
+{
+// WEB page data
+pblue=!pblue;
+//strcpy(webbuff, "<script language=\"javascript\" type=\"text/javascript\">");
+//strcat(webbuff, "document.getElementById('leftms').value=\"100\";");
+
+sprintf(battery_ch,"%d",b);
+//sprintf(battery_ch,"%d",30);
+strcpy(webbuff, battery_ch);
+
+//strcpy(webbuff, "document.getElementById('leftms').value=\"100\";");
+
+//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.
+    
+    sprintf(cmdbuff,"AT+CIPSENDBUF=%d,%d\r\n", linkID, (bufl>2048?2048:bufl)); // send IPD link channel and buffer character length.
+    timeout=500;
+    getcount=40;
+    SendCMD();
+    getreply();
+    pc.printf(replybuff);
+    pc.printf("\n++++++++++ AT+CIPSENDBUF=%d,%d+++++++++\r\n", linkID, (bufl>2048?2048:bufl));
+    
+    pc.printf("\n++++++++++ bufl is %d ++++++++++\r\n",bufl);
+    
+    //pastthrough mode
+    SendWEB();  // send web page
+    pc.printf("\n++++++++++ webbuff clear  ++++++++++\r\n");
+  
+    memset(webbuff, '\0', sizeof(webbuff));
+    sendcheck();
+}
+
  
 void sendcheck()
 {
@@ -1179,6 +1234,24 @@
              pc.printf("\r\n++++++++++++++mode = LEFT++++++++++++++\r\n");
              sendpage2();
             }
+            
+              if( strstr(webdata, "GO") != NULL ) {
+                                     sendpage3();
+
+            pc.printf("+++++++++++++++++前進+++++++++++++++++++++\r\n");
+            //delete avoi_thread;     //障害物回避スレッド停止
+            //delete trace_thread;    //ライントレーススレッド停止
+            run = ADVANCE;          // 前進
+            mode = ADVANCE;         // モード変更
+            display();              // ディスプレイ表示
+               //0826
+               led1=!led1;
+               led2=!led2;
+               led3=!led3;
+               click_flag = 0;
+//0826
+        }  
+        
         
         if( strstr(webdata, "Normal") != NULL ) {
             pc.printf("++++++++++++++++++Normal++++++++++++++++++++");
@@ -1201,15 +1274,24 @@
         }else{
             beforeMode = mode;
         }
+  /*      
         if( strstr(webdata, "GO") != NULL ) {
+                                     sendpage3();
+
             pc.printf("+++++++++++++++++前進+++++++++++++++++++++\r\n");
             //delete avoi_thread;     //障害物回避スレッド停止
             //delete trace_thread;    //ライントレーススレッド停止
             run = ADVANCE;          // 前進
             mode = ADVANCE;         // モード変更
             display();              // ディスプレイ表示
+               //0826
+               led1=!led1;
+               led2=!led2;
+               led3=!led3;
+               click_flag = 0;
+//0826
         }
-
+*/
         if( strstr(webdata, "LEFT") != NULL ) {
             pc.printf("+++++++++++++++++左折+++++++++++++++++++++\r\n");
             //delete avoi_thread;     //障害物回避スレッド停止