Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 5:7133730d405f
- Parent:
- 4:52361cf7f1d8
--- a/main.cpp Tue Aug 04 07:47:49 2020 +0000
+++ b/main.cpp Wed Aug 05 06:47:58 2020 +0000
@@ -1,7 +1,7 @@
#include "mbed.h"
-Serial pc(USBTX, USBRX);
-Serial esp(p13, p14); // tx, rx
+RawSerial pc(USBTX, USBRX);
+RawSerial esp(p13, p14); // tx, rx
enum MODE {
READY = -1,
@@ -16,10 +16,10 @@
};
// Standard Mbed LED definitions
-DigitalOut led1(LED1);
-DigitalOut led2(LED2);
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
DigitalOut led3(LED3);
-DigitalOut led4(LED4);
+DigitalOut led4(LED4);
Timer t1;
Timer t2;
@@ -83,23 +83,23 @@
getreply();
esp.baud(115200); // ESP8266 baudrate. Maximum on KLxx' is 115200, 230400 works on K20 and K22F
startserver();
-
+
while(1) {
if(DataRX==1) {
pc.printf("\f\n\r------------ main while > if --------------\n\r");
click_flag = 1;
ReadWebData();
- pc.printf("\f\n\r------------ click_flag=%d --------------\n\r",click_flag);
+ pc.printf("\f\n\r------------ click_flag=%d --------------\n\r",click_flag);
//if ((servreq == 1 && weberror == 0) && click_flag == 1) {
if (servreq == 1 && weberror == 0) {
- pc.printf("\f\n\r------------ befor send page --------------\n\r");
+ pc.printf("\f\n\r------------ befor send page --------------\n\r");
sendpage();
}
- pc.printf("\f\n\r------------ send_check begin --------------\n\r");
-
+ pc.printf("\f\n\r------------ send_check begin --------------\n\r");
+
//sendcheck();
- pc.printf("\f\n\r------------ ssend_check end--------------\n\r");
-
+ pc.printf("\f\n\r------------ ssend_check end--------------\n\r");
+
esp.attach(&callback);
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);
pc.printf("\n\n HTTP Packet: \n\n%s\n", webdata);
@@ -117,7 +117,7 @@
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, "</head><body><center><p><strong>Robot Car Remote 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>");
@@ -271,21 +271,21 @@
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=\"BeryFast\" onClick='send_mes_spe(this.id,this.value)' >BeryFast");
+ strcat(webbuff, "<button id='sp3btn' type='button' class=\"noselect\" value=\"VeryFast\" onClick='send_mes_spe(this.id,this.value)' >VeryFast");
break;
case 2:
strcat(webbuff, "<button id='sp1btn' type='button' class=\"noselect\" value=\"Normal\" onClick='send_mes_spe(this.id,this.value)' >Normal");
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=\"BeryFast\" onClick='send_mes_spe(this.id,this.value)' >BeryFast");
+ strcat(webbuff, "<button id='sp3btn' type='button' class=\"light\" value=\"VeryFast\" onClick='send_mes_spe(this.id,this.value)' >VeryFast");
break;
default:
strcat(webbuff, "<button id='sp1btn' type='button' class=\"noselect\" value=\"Normal\" onClick='send_mes_spe(this.id,this.value)' >Normal");
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=\"BeryFast\" onClick='send_mes_spe(this.id,this.value)' >BeryFast");
+ strcat(webbuff, "<button id='sp3btn' type='button' class=\"noselect\" value=\"VeryFast\" onClick='send_mes_spe(this.id,this.value)' >VeryFast");
break;
}
strcat(webbuff, "</button></td></tr></table>");
@@ -294,125 +294,47 @@
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, "console.log(btnval);");
-
- strcat(webbuff, "switch(btnval){");
- strcat(webbuff, "case \"GO\"):");
- strcat(webbuff, "document.getElementById(\"gobtn\").className=\"light\";");
- strcat(webbuff, "document.getElementById(\"leftbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"stopbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"rightbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"backbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"avoidbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"tracebtn\").className=\"noselect\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "case \"LEFT\"):");
- strcat(webbuff, "document.getElementById(\"gobtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"leftbtn\").className=\"light\";");
- strcat(webbuff, "document.getElementById(\"stopbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"rightbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"backbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"avoidbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"tracebtn\").className=\"noselect\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "case \"STOP\"):");
- strcat(webbuff, "document.getElementById(\"gobtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"leftbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"stopbtn\").className=\"light\";");
- strcat(webbuff, "document.getElementById(\"rightbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"backbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"avoidbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"tracebtn\").className=\"noselect\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "case \"RIGHT\"):");
- strcat(webbuff, "document.getElementById(\"gobtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"leftbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"stopbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"rightbtn\").className=\"light\";");
- strcat(webbuff, "document.getElementById(\"backbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"avoidbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"tracebtn\").className=\"noselect\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "case \"BACK\"):");
- strcat(webbuff, "document.getElementById(\"gobtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"leftbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"stopbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"rightbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"backbtn\").className=\"light\";");
- strcat(webbuff, "document.getElementById(\"avoidbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"tracebtn\").className=\"noselect\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "case \"AVOIDANCE\"):");
- strcat(webbuff, "document.getElementById(\"gobtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"leftbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"stopbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"rightbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"backbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"avoidbtn\").className=\"light\";");
- strcat(webbuff, "document.getElementById(\"tracebtn\").className=\"noselect\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "case \"LINE_TRACE\"):");
- strcat(webbuff, "document.getElementById(\"gobtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"leftbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"stopbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"rightbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"backbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"avoidbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"tracebtn\").className=\"light\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "}");
- strcat(webbuff, "default :");
- strcat(webbuff, "document.getElementById(\"gobtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"leftbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"stopbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"rightbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"backbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"avoidbtn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"tracebtn\").className=\"noselect\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "}");
+
strcat(webbuff, "var url = \"http://\" + window.location.hostname + \"/cargo?a=\" + btnval;");
strcat(webbuff, "htmlacs(url);");
strcat(webbuff, "console.log(url);");
+ strcat(webbuff, "var buttons = document.getElementsByTagName(\"button\");");
+ strcat(webbuff, "for(var i=0;i<7;i++){");
+ strcat(webbuff, "if(buttons[i].value == btnval){");
+ strcat(webbuff, "buttons[i].className=\"light\";");
+ strcat(webbuff, "}else{");
+ strcat(webbuff, "buttons[i].className=\"noselect\";");
strcat(webbuff, "}");
+ strcat(webbuff, "}");
+ strcat(webbuff, "}");
+
strcat(webbuff, "function send_mes_spe(btnmes,btnval){");
- strcat(webbuff, "switch(btnval){");
- strcat(webbuff, "case \"Normal\"):");
- strcat(webbuff, "document.getElementById(\"sp1btn\").className=\"light\";");
- strcat(webbuff, "document.getElementById(\"sp2btn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"sp3btn\").className=\"noselect\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "case \"Fast\"):");
- strcat(webbuff, "document.getElementById(\"sp1btn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"sp2btn\").className=\"light\";");
- strcat(webbuff, "document.getElementById(\"sp3btn\").className=\"noselect\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "case \"BeryFast\"):");
- strcat(webbuff, "document.getElementById(\"sp1btn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"sp2btn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"sp3btn\").className=\"light\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "default :");
- strcat(webbuff, "document.getElementById(\"sp1btn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"sp2btn\").className=\"noselect\";");
- strcat(webbuff, "document.getElementById(\"sp3btn\").className=\"noselect\";");
- strcat(webbuff, "break;");
- strcat(webbuff, "}");
strcat(webbuff, "var url = \"http://\" + window.location.hostname + \"/cargo?a=\" + btnval;");
strcat(webbuff, "htmlacs(url);");
strcat(webbuff, "console.log(url);");
+ strcat(webbuff, "var buttons = document.getElementsByTagName(\"button\");");
+ strcat(webbuff, "for(var i=7;i<10;i++){");
+ strcat(webbuff, "if(buttons[i].value == btnval){");
+ strcat(webbuff, "buttons[i].className=\"light\";");
+ strcat(webbuff, "}else{");
+ strcat(webbuff, "buttons[i].className=\"noselect\";");
+ strcat(webbuff, "}");
+ strcat(webbuff, "}");
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.
-
+
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;
@@ -420,13 +342,13 @@
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();
}
@@ -438,30 +360,30 @@
if(esp.writeable()) {
while(webbuff[i]!='\0') {
esp.putc(webbuff[i]);
-
- //****
- //output at command when 2000
- if(((i%2047)==0) && (i>0)){
- //wait_ms(10);
- sprintf(cmdbuff,"AT+CIPSENDBUF=%d,%d\r\n", linkID, (bufl-2048)>2048?2048:(bufl-2048)); // send IPD link channel and buffer character length.
- pc.printf("\r\n++++++++++ AT+CIPSENDBUF=%d,%d ++++++++++\r\n", linkID, (bufl-2048)>2048?2048:(bufl-2048));
- timeout=600;
- getcount=50;
- SendCMD();
- getreply();
- pc.printf(replybuff);
- pc.printf("\r\n+++++++++++++++++++\r\n");
- }
- //****
- i++;
+
+ //****
+ //output at command when 2000
+ if(((i%2047)==0) && (i>0)) {
+ //wait_ms(10);
+ sprintf(cmdbuff,"AT+CIPSENDBUF=%d,%d\r\n", linkID, (bufl-2048)>2048?2048:(bufl-2048)); // send IPD link channel and buffer character length.
+ pc.printf("\r\n++++++++++ AT+CIPSENDBUF=%d,%d ++++++++++\r\n", linkID, (bufl-2048)>2048?2048:(bufl-2048));
+ timeout=600;
+ getcount=50;
+ SendCMD();
+ getreply();
+ pc.printf(replybuff);
+ pc.printf("\r\n+++++++++++++++++++\r\n");
+ }
+ //****
+ i++;
pc.printf("%c",webbuff[i]);
}
}
- pc.printf("\n++++++++++ send web i= %dinfo ++++++++++\r\n",i);
+ pc.printf("\n++++++++++ send web i= %dinfo ++++++++++\r\n",i);
}
-
+
void sendcheck()
{
weberror=1;
@@ -469,7 +391,7 @@
getcount=24;
t2.reset();
t2.start();
-
+
/*
while(weberror==1 && t2.read() <5) {
getreply();
@@ -558,22 +480,26 @@
if( strstr(webdata, "AVOIDANCE") != NULL ) {
pc.printf("+++++++++++++++++AVOIDANCE+++++++++++++++++++++");
+ //if(avoi_thread->get_state() == Thread::Deleted) {
+ // delete avoi_thread;
+ // avoi_thread = new Thread(avoidance);
+ // avoi_thread -> set_priority(osPriorityHigh);
+ //}
mode=AVOIDANCE;
// run = ADVANCE;
// display(); // ディスプレイ表示
}
if( strstr(webdata, "LINE_TRACE") != NULL ) {
pc.printf("+++++++++++++++++LINET RACE+++++++++++++++++++++");
+ pc.printf("mode = LINE_TRACE\r\n");
+ //if(trace_thread->get_state() == Thread::Deleted) {
+ // delete trace_thread;
+ // trace_thread = new Thread(trace);
+ // trace_thread -> set_priority(osPriorityHigh);
+ //}
mode=LINE_TRACE;
// display(); // ディスプレイ表示
}
- if( strstr(webdata, "DEFAULT") != NULL ) {//プログラムなくね
- pc.printf("+++++++++++++++++DEFAULT+++++++++++++++++++++");
-// run = STOP;
- mode = READY;
-// display(); // ディスプレイ表示
-
- }
if( strstr(webdata, "Normal") != NULL ) {
pc.printf("++++++++++++++++++Normal++++++++++++++++++++");
mode = SPEED; // スピードモード
@@ -588,8 +514,8 @@
// display(); // ディスプレイ表示
mode = beforeMode; // 現在のモードに前回のモードを設定
}
- if( strstr(webdata, "BeryFast") != NULL ) {
- pc.printf("+++++++++++++++++++BERYFast+++++++++++++++++++");
+ if( strstr(webdata, "VeryFast") != NULL ) {
+ pc.printf("+++++++++++++++++++VeryFast+++++++++++++++++++");
mode = SPEED; // スピードモード d
flag_sp = 2;
// display(); // ディスプレイ表示