new debugger and websockets
This commit is contained in:
@@ -13,11 +13,20 @@ void WebserverEERestore_Callback(AsyncWebServerRequest *request, const String &f
|
||||
void WebServerEEJSON_Callback(AsyncWebServerRequest *request);
|
||||
void GetFlashVersion(char *buff, size_t buff_size);
|
||||
|
||||
#ifdef FEATURE_ENABLE_WEBSOCKETS
|
||||
|
||||
AsyncWebSocket webSocket("/ws");
|
||||
|
||||
void WebsocketEvent_Callback(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len);
|
||||
void Websocket_HandleMessage(void *arg, uint8_t *data, size_t len);
|
||||
|
||||
#endif
|
||||
|
||||
void initWebUI()
|
||||
{
|
||||
if (!LittleFS.begin())
|
||||
{
|
||||
Serial.println("An Error has occurred while mounting LittleFS");
|
||||
Debug_pushMessage("An Error has occurred while mounting LittleFS\n");
|
||||
MaintainDTC(DTC_FLASHFS_ERROR, DTC_CRITICAL, true);
|
||||
return;
|
||||
}
|
||||
@@ -33,6 +42,11 @@ void initWebUI()
|
||||
MDNS.addService("telnet", "tcp", 23);
|
||||
MDNS.addService("http", "tcp", 80);
|
||||
|
||||
#ifdef FEATURE_ENABLE_WEBSOCKETS
|
||||
webSocket.onEvent(WebsocketEvent_Callback);
|
||||
webServer.addHandler(&webSocket);
|
||||
#endif
|
||||
|
||||
webServer.serveStatic("/static/", LittleFS, "/static/").setCacheControl("max-age=360000");
|
||||
webServer.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{ request->redirect("/index.htm"); });
|
||||
@@ -48,6 +62,13 @@ void initWebUI()
|
||||
webServer.begin();
|
||||
}
|
||||
|
||||
void Webserver_Process()
|
||||
{
|
||||
#ifdef FEATURE_ENABLE_WEBSOCKETS
|
||||
webSocket.cleanupClients();
|
||||
#endif
|
||||
}
|
||||
|
||||
String processor(const String &var)
|
||||
{
|
||||
if (var == "TANK_REMAIN_CAPACITY")
|
||||
@@ -241,14 +262,14 @@ void WebserverPOST_Callback(AsyncWebServerRequest *request)
|
||||
for (int i = 0; i < paramsNr; i++)
|
||||
{
|
||||
AsyncWebParameter *p = request->getParam(i);
|
||||
Serial.printf("%s : %s\n", p->name().c_str(), p->value().c_str());
|
||||
Debug_pushMessage("%s : %s\n", p->name().c_str(), p->value().c_str());
|
||||
|
||||
// begin: POST Form Source Changed
|
||||
if (p->name() == "sourceselect")
|
||||
{
|
||||
SpeedSource_t temp = (SpeedSource_t)p->value().toInt();
|
||||
Serial.printf("temp: %d", temp);
|
||||
Serial.printf("SpeedSource: %d", LubeConfig.SpeedSource);
|
||||
Debug_pushMessage("temp: %d", temp);
|
||||
Debug_pushMessage("SpeedSource: %d", LubeConfig.SpeedSource);
|
||||
if (LubeConfig.SpeedSource != temp)
|
||||
{
|
||||
LubeConfig.SpeedSource = temp;
|
||||
@@ -332,7 +353,7 @@ void WebserverPOST_Callback(AsyncWebServerRequest *request)
|
||||
globals.systemStatus = sysStat_Purge;
|
||||
globals.purgePulses = LubeConfig.BleedingPulses;
|
||||
}
|
||||
if(p->name() == "reboot")
|
||||
if (p->name() == "reboot")
|
||||
{
|
||||
globals.systemStatus = sysStat_Shutdown;
|
||||
}
|
||||
@@ -367,7 +388,7 @@ void WebserverFirmwareUpdate_Callback(AsyncWebServerRequest *request, const Stri
|
||||
|
||||
if (!index)
|
||||
{
|
||||
Serial.println("Update");
|
||||
Debug_pushMessage("Update");
|
||||
size_t content_len = request->contentLength();
|
||||
int cmd = (filename.indexOf(".fs") > -1) ? U_FS : U_FLASH;
|
||||
Update.runAsync(true);
|
||||
@@ -383,7 +404,7 @@ void WebserverFirmwareUpdate_Callback(AsyncWebServerRequest *request, const Stri
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.printf("Progress: %d%%\n", (Update.progress() * 100) / Update.size());
|
||||
Debug_pushMessage("Progress: %d%%\n", (Update.progress() * 100) / Update.size());
|
||||
}
|
||||
|
||||
if (final)
|
||||
@@ -398,8 +419,7 @@ void WebserverFirmwareUpdate_Callback(AsyncWebServerRequest *request, const Stri
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.println("Update complete");
|
||||
Serial.flush();
|
||||
Debug_pushMessage("Update complete\n");
|
||||
globals.systemStatus = sysStat_Shutdown;
|
||||
}
|
||||
}
|
||||
@@ -413,14 +433,14 @@ void WebserverEERestore_Callback(AsyncWebServerRequest *request, const String &f
|
||||
|
||||
if (!index)
|
||||
{
|
||||
Serial.println("EEPROM restore");
|
||||
//size_t content_len = request->contentLength();
|
||||
Debug_pushMessage("EEPROM restore\n");
|
||||
// size_t content_len = request->contentLength();
|
||||
validext = (filename.indexOf(".ee.json") > -1);
|
||||
}
|
||||
|
||||
if (validext)
|
||||
{
|
||||
Serial.println("Restoring EEPROM-Stuff");
|
||||
Debug_pushMessage("Restoring EEPROM-Stuff\n");
|
||||
}
|
||||
|
||||
if (final)
|
||||
@@ -431,8 +451,7 @@ void WebserverEERestore_Callback(AsyncWebServerRequest *request, const String &f
|
||||
request->send(response);
|
||||
if (ee_done)
|
||||
{
|
||||
Serial.println("Update complete");
|
||||
Serial.flush();
|
||||
Debug_pushMessage("Update complete");
|
||||
globals.systemStatus = sysStat_Shutdown;
|
||||
}
|
||||
else
|
||||
@@ -500,4 +519,56 @@ void WebServerEEJSON_Callback(AsyncWebServerRequest *request)
|
||||
response->addHeader("Content-disposition", "attachment; filename=backup.ee.json");
|
||||
|
||||
request->send(response);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef FEATURE_ENABLE_WEBSOCKETS
|
||||
void WebsocketEvent_Callback(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case WS_EVT_CONNECT:
|
||||
Debug_pushMessage("WebSocket client #%u connected from %s\n", client->id(), client->remoteIP().toString().c_str());
|
||||
break;
|
||||
case WS_EVT_DISCONNECT:
|
||||
Debug_pushMessage("WebSocket client #%u disconnected\n", client->id());
|
||||
break;
|
||||
case WS_EVT_DATA:
|
||||
Websocket_HandleMessage(arg, data, len);
|
||||
break;
|
||||
case WS_EVT_PONG:
|
||||
case WS_EVT_ERROR:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Websocket_HandleMessage(void *arg, uint8_t *data, size_t len)
|
||||
{
|
||||
AwsFrameInfo *info = (AwsFrameInfo *)arg;
|
||||
if (info->final && info->index == 0 && info->len == len && info->opcode == WS_TEXT)
|
||||
{
|
||||
data[len] = 0;
|
||||
|
||||
Debug_pushMessage("Got WebSocket Message: %s \n", (char *)data);
|
||||
|
||||
if (strcmp((char *)data, "start") == 0)
|
||||
{
|
||||
Debug_pushMessage("Got WebSocket Message 'start' from client\n");
|
||||
debugger.webui_live_debug_enabled = true;
|
||||
}
|
||||
else if (strcmp((char *)data, "stop") == 0)
|
||||
{
|
||||
Debug_pushMessage("Got WebSocket Message 'stop' from client\n");
|
||||
debugger.webui_live_debug_enabled = false;
|
||||
}
|
||||
else if (strcmp((char *)data, "foo") == 0)
|
||||
{
|
||||
Debug_pushMessage("Got WebSocket Message 'foo' from client\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Websocket_PushLiveDebug(String Message)
|
||||
{
|
||||
webSocket.textAll(Message + "\n");
|
||||
}
|
||||
#endif
|
Reference in New Issue
Block a user