Друзья. Увеличиваю функционал своего IOT. Пришло время обрабатывать команды извне вида http://172.22.16.66/command?1,255 где commandReceived - 1, parametersReceived - 255
Т.е. при получении такой строки ESP должна распарсить строчку и присвоить commandReceived - 1 parametersReceived - 255
Код ниже. Кроме этой функции все работает исправно. Как только подключаю эту функцию, при компиляции пишет -
WebServer:4: error: 'class ESP8266WebServer' has no member named 'available'
WiFiClient client = server.available();
Подключены библиотеки:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
Не могу понять, что не так. Помогите, пожалуйста.
Т.е. при получении такой строки ESP должна распарсить строчку и присвоить commandReceived - 1 parametersReceived - 255
Код ниже. Кроме этой функции все работает исправно. Как только подключаю эту функцию, при компиляции пишет -
WebServer:4: error: 'class ESP8266WebServer' has no member named 'available'
WiFiClient client = server.available();
Подключены библиотеки:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
Не могу понять, что не так. Помогите, пожалуйста.
Код:
void WebServer(){
//WEB Server - сервер ждет команды от МЖД вида http://172.22.16.66/command?1,255 где commandReceived - 1, parametersReceived - 255. Например потом использовать, как Pin1 = 255
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (url.length() < maxLength) {
url+=(c);
}
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
Serial.print("HTTP request: ");
Serial.println(url);
if (url.indexOf("?")>=0) {
int PosB=url.indexOf("?")+1;
int PosE=url.indexOf("HTTP");
if (url.indexOf(",")>=0) {
// command has parameters
int PosP=url.indexOf(",");
commandReceived=url.substring(PosB,PosP);
parametersReceived=url.substring(PosP+1,PosE-1);
} else {
// command does not have parameters
commandReceived=url.substring(PosB,PosE-1);
parametersReceived="";
}
//Serial.print("Command: ");
//Serial.println(commandReceived);
//Serial.print("Parameter: ");
//char cstr[50]; //Serial.println(parametersReceived);
MDcommand = commandReceived.toInt();
//parametersReceived.toCharArray(cstr,50);
MDparameter = parametersReceived.toInt();
//MDparameter=atol(cstr);
//Serial.print("parameterRecieved");
//Serial.println(parametersReceived);
//Serial.print("MDCommand: ");
//Serial.println(MDcommand);
}
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html><head><title>Arduino</title></head><body>");
client.println("</body><html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}// end if (client.available())
} //END while (client.connected())
// give the web browser time to receive the data
delay(1);
// close the connection:
url = "";
client.stop();
client.flush();
Serial.println("client disconnected");
if (MDcommand == 1) {//Включить свет в холле
Serial.println("Web request");
}
}