Compare commits

...

4 Commits

5 changed files with 50 additions and 8 deletions

View File

@ -1 +1,11 @@
#include "HtmlClient.h"
HtmlClient::HtmlClient() : WiFiClient()
{
}
HtmlClient::~HtmlClient()
{
}

View File

@ -1,11 +1,35 @@
#ifndef HTMLCLIENT_H
#define HTMLCLIENT_H
class HtmlClient
#include <ESP8266WiFi.h>
class HtmlClient : WiFiClient
{
public:
HtmlClient();
virtual ~HtmlClient();
boolean sendHtmlQuery();
uint16_t readHtmlResponse(uint8_t *buffer);
protected:
private:
};
#endif //HTMLCLIENT_H
/*
* TCP status codes :
* enum tcp_state {
CLOSED = 0,
LISTEN = 1,
SYN_SENT = 2,
SYN_RCVD = 3,
ESTABLISHED = 4,
FIN_WAIT_1 = 5,
FIN_WAIT_2 = 6,
CLOSE_WAIT = 7,
CLOSING = 8,
LAST_ACK = 9,
TIME_WAIT = 10
};
*/

View File

@ -82,9 +82,9 @@ class TCPServer
{
T *clientPointer = createNewClient(wc);
_clientList.addFirst(clientPointer);
#ifdef DEBUG_TCPS
Serial.print("TCPServer : New client accepted : ");Serial.println(clientPointer->_id);
#endif
//#ifdef DEBUG_TCPS
Serial.printf("TCPServer : New client accepted. Id : %u , Number of clients : %u, local port : %u, remote port : %u\n",clientPointer->_id, _clientList.count(),clientPointer->_client.localPort(),clientPointer->_client.remotePort());
//#endif
greetClient(clientPointer);
}

View File

@ -15,7 +15,7 @@ class WEBServer : public TCPServer<T>
enum HttpVersion {UNKNOWN, HTTP_0_9, HTTP_1_1, HTTP_1_0, HTTP_2_0};
enum HttpMIMEType{UNKNOWN_MIME, TEXT_PLAIN, TEXT_CSS, TEXT_HTML, TEXT_JAVASCRIPT, APPLICATION_JSON, APPLICATION_X_WWW_FORM_URLENCODED, IMAGE_PNG, IMAGE_JPEG, AUDIO_MPEG, APPLICATION_OCTET_STREAM};
enum HttpParserStatus {HTTP_VERB, HTTP_RESSOURCE, HTTP_VERSION, HTTP_PARAMS, POST_DATA, HEADER_PARAMS};
enum WEBClientState {ACCEPTED, QUERY_PARSED, RESPONSE_SENT, DONE};
enum WEBClientState {ACCEPTED, PARSING, QUERY_PARSED, RESPONSE_SENT, DONE};
enum HTTP_CODE {_100, _101, _200, _400, _401, _403, _404, _405, _500, _501};
struct HttpRequestData
@ -82,6 +82,9 @@ class WEBServer : public TCPServer<T>
#ifdef DEBUG_WEBS
Serial.println("WEBServer : ACCEPTED");
#endif
client->_WEBClientState = WEBClientState::PARSING;
break;
case PARSING:
queryParser(client);
break;
case QUERY_PARSED:
@ -142,7 +145,6 @@ class WEBServer : public TCPServer<T>
{
sendInfoResponse(HTTP_CODE::_400, client, "The server could not understand the request due to invalid syntax");
client->_clientState = TCPClient::ClientState::DISCARDED;
break;
}
}
break;
@ -202,6 +204,9 @@ class WEBServer : public TCPServer<T>
case HttpParserStatus::HTTP_VERSION:
{
char *pEndline = strstr((char *)client->_data, "\r\n");
if(pEndline == NULL) pEndline = strstr((char *)client->_data, "\n");
char *pVers = strstr((char *)client->_data, "HTTP/");
if(pEndline != NULL && pVers!= NULL)
@ -390,6 +395,9 @@ class WEBServer : public TCPServer<T>
}
else //nothing to parse or done
{
#ifdef DEBUG_WEBS
Serial.println("Nothing to parse or done");
#endif
return false;
}

View File

@ -25,7 +25,7 @@ boolean task_blink(void *pData)
boolean task_batt_sensing(void *pData)
{
View1Packet *p = (View1Packet *) pData;
Serial.printf_P(F("BATT SENSING...\nRunning since : %d s\n"), millis()/1000);
Serial.printf_P(PSTR("BATT SENSING...\nRunning since : %d s\n"), millis()/1000);
p->powerInfo = p->sab->getPowerManager().getPowerInfo();
return true;