|
@@ -17,8 +17,6 @@
|
|
|
#include "ESPAsyncWebServer.h"
|
|
|
#endif
|
|
|
|
|
|
-#define BUFFER_SIZE 500
|
|
|
-
|
|
|
#include "webserial_webpage.h"
|
|
|
|
|
|
typedef std::function<void(uint8_t *data, size_t len)> RecvMsgHandler;
|
|
@@ -27,123 +25,50 @@ typedef std::function<void(uint8_t *data, size_t len)> RecvMsgHandler;
|
|
|
class WebSerialClass{
|
|
|
|
|
|
public:
|
|
|
- void begin(AsyncWebServer *server, const char* url = "/webserial"){
|
|
|
- _server = server;
|
|
|
- _ws = new AsyncWebSocket("/webserialws");
|
|
|
-
|
|
|
- _server->on(url, HTTP_GET, [](AsyncWebServerRequest *request){
|
|
|
- // Send Webpage
|
|
|
- AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", WEBSERIAL_HTML, WEBSERIAL_HTML_SIZE);
|
|
|
- response->addHeader("Content-Encoding","gzip");
|
|
|
- request->send(response);
|
|
|
- });
|
|
|
-
|
|
|
- _ws->onEvent([&](AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len) -> void {
|
|
|
- if(type == WS_EVT_CONNECT){
|
|
|
- #if defined(DEBUG)
|
|
|
- DEBUG_WEB_SERIAL("Client connection received");
|
|
|
- #endif
|
|
|
- } else if(type == WS_EVT_DISCONNECT){
|
|
|
- #if defined(DEBUG)
|
|
|
- DEBUG_WEB_SERIAL("Client disconnected");
|
|
|
- #endif
|
|
|
- } else if(type == WS_EVT_DATA){
|
|
|
- #if defined(DEBUG)
|
|
|
- DEBUG_WEB_SERIAL("Received Websocket Data");
|
|
|
- #endif
|
|
|
- if(_RecvFunc != NULL){
|
|
|
- _RecvFunc(data, len);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- _server->addHandler(_ws);
|
|
|
-
|
|
|
- #if defined(DEBUG)
|
|
|
- DEBUG_WEB_SERIAL("Attached AsyncWebServer along with Websockets");
|
|
|
- #endif
|
|
|
- }
|
|
|
-
|
|
|
- void msgCallback(RecvMsgHandler _recv){
|
|
|
- _RecvFunc = _recv;
|
|
|
- }
|
|
|
+ void begin(AsyncWebServer *server, const char* url = "/webserial");
|
|
|
+
|
|
|
+ void msgCallback(RecvMsgHandler _recv);
|
|
|
|
|
|
// Print
|
|
|
|
|
|
- void print(String m = ""){
|
|
|
- _ws->textAll(m);
|
|
|
- }
|
|
|
+ void print(String m = "");
|
|
|
|
|
|
- void print(const char *m){
|
|
|
- _ws->textAll(m);
|
|
|
- }
|
|
|
+ void print(const char *m);
|
|
|
|
|
|
- void print(char *m){
|
|
|
- _ws->textAll(m);
|
|
|
- }
|
|
|
+ void print(char *m);
|
|
|
|
|
|
- void print(int m){
|
|
|
- _ws->textAll(String(m));
|
|
|
- }
|
|
|
+ void print(int m);
|
|
|
|
|
|
- void print(uint8_t m){
|
|
|
- _ws->textAll(String(m));
|
|
|
- }
|
|
|
+ void print(uint8_t m);
|
|
|
|
|
|
- void print(uint16_t m){
|
|
|
- _ws->textAll(String(m));
|
|
|
- }
|
|
|
+ void print(uint16_t m);
|
|
|
|
|
|
- void print(uint32_t m){
|
|
|
- _ws->textAll(String(m));
|
|
|
- }
|
|
|
+ void print(uint32_t m);
|
|
|
|
|
|
- void print(double m){
|
|
|
- _ws->textAll(String(m));
|
|
|
- }
|
|
|
+ void print(double m);
|
|
|
|
|
|
- void print(float m){
|
|
|
- _ws->textAll(String(m));
|
|
|
- }
|
|
|
+ void print(float m);
|
|
|
|
|
|
|
|
|
// Print with New Line
|
|
|
|
|
|
- void println(String m = ""){
|
|
|
- _ws->textAll(m+"\n");
|
|
|
- }
|
|
|
+ void println(String m = "");
|
|
|
|
|
|
- void println(const char *m){
|
|
|
- _ws->textAll(String(m)+"\n");
|
|
|
- }
|
|
|
+ void println(const char *m);
|
|
|
|
|
|
- void println(char *m){
|
|
|
- _ws->textAll(String(m)+"\n");
|
|
|
- }
|
|
|
+ void println(char *m);
|
|
|
|
|
|
- void println(int m){
|
|
|
- _ws->textAll(String(m)+"\n");
|
|
|
- }
|
|
|
+ void println(int m);
|
|
|
|
|
|
- void println(uint8_t m){
|
|
|
- _ws->textAll(String(m)+"\n");
|
|
|
- }
|
|
|
+ void println(uint8_t m);
|
|
|
|
|
|
- void println(uint16_t m){
|
|
|
- _ws->textAll(String(m)+"\n");
|
|
|
- }
|
|
|
+ void println(uint16_t m);
|
|
|
|
|
|
- void println(uint32_t m){
|
|
|
- _ws->textAll(String(m)+"\n");
|
|
|
- }
|
|
|
+ void println(uint32_t m);
|
|
|
|
|
|
- void println(float m){
|
|
|
- _ws->textAll(String(m)+"\n");
|
|
|
- }
|
|
|
+ void println(float m);
|
|
|
|
|
|
- void println(double m){
|
|
|
- _ws->textAll(String(m)+"\n");
|
|
|
- }
|
|
|
+ void println(double m);
|
|
|
|
|
|
|
|
|
private:
|
|
@@ -152,11 +77,9 @@ private:
|
|
|
RecvMsgHandler _RecvFunc = NULL;
|
|
|
|
|
|
#if defined(DEBUG)
|
|
|
- void DEBUG_WEB_SERIAL(const char* message){
|
|
|
- Serial.println("[WebSerial] "+message);
|
|
|
- }
|
|
|
+ void DEBUG_WEB_SERIAL(const char* message);
|
|
|
#endif
|
|
|
};
|
|
|
|
|
|
-WebSerialClass WebSerial;
|
|
|
+extern WebSerialClass WebSerial;
|
|
|
#endif
|