1 #include "Wifi_Remote.h"
3 bool left_button_pressed;
4 bool right_button_pressed;
5 bool up_button_pressed;
6 bool down_button_pressed;
8 extern String wifi_name;
9 extern String wifi_password;
10 bool up_down_pressed =
false;
12 WiFiServer myServer(80);
13 uint8_t oldCountClients = 0;
14 uint8_t countClients = 0;
20 Serial.print(
"Starting AP... ");
21 WiFi.beginNetwork((
char *)wifi_name.c_str(), (
char *)wifi_password.c_str());
22 while (WiFi.localIP() == INADDR_NONE)
29 digitalWrite(RED_LED, HIGH);
30 Serial.println(
"DONE");
32 Serial.print(
"LAN name = ");
33 Serial.println(wifi_name.c_str());
34 Serial.print(
"WPA password = ");
35 Serial.println(wifi_password.c_str());
38 IPAddress ip = WiFi.localIP();
39 Serial.print(
"Webserver IP address = ");
42 Serial.print(
"Web-server port = ");
54 countClients = WiFi.getTotalDevices();
57 if (countClients != oldCountClients)
59 if (countClients > oldCountClients)
62 Serial.println(
"Client connected to AP");
63 for (uint8_t k = 0; k < countClients; k++)
65 Serial.print(
"Client #");
67 Serial.print(
" at IP address = ");
68 Serial.print(WiFi.deviceIpAddress(k));
69 Serial.print(
", MAC = ");
70 Serial.println(WiFi.deviceMacAddress(k));
71 Serial.println(
"CC3200 in AP mode only accepts one client.");
77 Serial.println(
"Client disconnected from AP.");
80 oldCountClients = countClients;
83 WiFiClient myClient = myServer.available();
90 char buffer[150] = {0};
94 while (myClient.connected())
98 if (myClient.available())
100 char c = myClient.read();
108 if (strlen(buffer) == 0)
112 myClient.println(
"HTTP/1.1 200 OK");
113 myClient.println(
"Content-type:text/html");
115 myClient.print(
"<!DOCTYPE html><html><head>");
116 myClient.print(
"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0\"> ");
117 myClient.print(
" <style>i{border: solid black; border-width: 0 3px 3px 0;");
118 myClient.print(
" display: inline-block; padding: 3px;}.right{transform: rotate(-45deg); -webkit-transform:");
119 myClient.print(
" rotate(-45deg); width: 100px; height:100px;}.left{transform: rotate(135deg);");
120 myClient.print(
" -webkit-transform: rotate(135deg); width: 100px; height:100px;}.up{transform: rotate(-135deg);");
121 myClient.print(
" -webkit-transform: rotate(-135deg); width: 100px; height:100px;}.down{transform: rotate(45deg);");
122 myClient.print(
" -webkit-transform: rotate(45deg); width: 100px; height:100px;}.noselect{-webkit-touch-callout:");
123 myClient.print(
" none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none;");
124 myClient.print(
" -ms-user-select: none; user-select: none;}</style></head><body><p id=\"demo\"></p><br><br><br><table style=\"padding-left:");
125 myClient.print(
" 30px\" class=\"noselect\"><tr><td></td><td><p ontouchstart=\"as('up','/GOOD_S')\" ontouchend=\"as2('up','/GOOD_E')\" ontouchcancel=\"as2('up','/GOOD_E')\">");
126 myClient.print(
" <i class=\"up noselect\"></i></p></td><td></td><td></td></tr><tr><td><p ontouchstart=");
127 myClient.print(
" \"as('left','/LEFT_S')\" ontouchend=\"as2('left','/LEFT_E')\" ontouchcancel=\"as2('left','/LEFT_E')\"><i class=\"left noselect\"></i></p></td><td></td>");
128 myClient.print(
" <td></td><td><p ontouchstart=\"as('right','/RIGHT_S')\" ontouchend=\"as2('right','/RIGHT_E')\" ontouchcancel=\"as2('right','/RIGHT_E')\"><i class=\"right ");
129 myClient.print(
" noselect\"></i></p></td></tr><tr><td></td><td><p ontouchstart=\"as('down','/DOWN_S')\" ontouchend");
130 myClient.print(
" =\"as2('down','/DOWN_E')\" ontouchcancel=\"as2('down','/DOWN_E')\"><i class=\"down noselect\"></i></p></td><td></td><td></td></tr></table>");
131 myClient.print(
"<script>function as(direction,two){document.getElementById(\"demo\").innerHTML=\"Touch Start \"");
132 myClient.print(
" +direction; sometime(\"Touch Start \"+direction,two);}function as2(direction,two)");
133 myClient.print(
" {document.getElementById(\"demo\").innerHTML=\"Touch End \"+direction; ");
134 myClient.print(
" sometime(\"Touch End \"+direction,two);}function sometime(thing,two)");
135 myClient.print(
" {fetch(two).catch(function(error){document.getElementById(\"demo\").innerHTML");
136 myClient.print(
" =\"Error \"+thing;});}</script></body></html>");
146 memset(buffer, 0, 150);
155 String text = buffer;
158 if(text.indexOf(
"GET ")!= -1 && text.indexOf(
"HTTP/1.1") != -1) {
161 if (text.startsWith(
"GET /LEFT_S "))
163 Serial.println(
"Left button pressed");
164 left_button_pressed =
true;
166 if (text.startsWith(
"GET /LEFT_E "))
168 left_button_pressed =
false;
169 Serial.println(
"Left button released");
173 if (text.startsWith(
"GET /RIGHT_S "))
175 right_button_pressed =
true;
176 Serial.println(
"Right button pressed");
178 if (text.startsWith(
"GET /RIGHT_E "))
180 right_button_pressed =
false;
181 Serial.println(
"Right button released");
185 if (text.startsWith(
"GET /GOOD_S "))
187 up_down_pressed =
true;
188 up_button_pressed =
true;
189 down_button_pressed =
false;
190 Serial.println(
"Up button pressed");
193 if (text.startsWith(
"GET /GOOD_E "))
195 up_down_pressed =
false;
196 up_button_pressed =
false;
197 Serial.println(
"Up button released");
201 if (text.startsWith(
"GET /DOWN_S "))
203 up_down_pressed =
true;
204 down_button_pressed =
true;
205 up_button_pressed =
false;
206 Serial.println(
"Down button pressed");
208 if (text.startsWith(
"GET /DOWN_E "))
210 up_down_pressed =
false;
211 down_button_pressed =
false;
212 Serial.println(
"Down button released");
221 Serial.println(
". Client disconnected from server");