Skip to content

Commit d8f6d10

Browse files
committed
Fixed logging and UI command
1 parent c2b72fd commit d8f6d10

3 files changed

Lines changed: 30 additions & 48 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ kicad/esp32_devkit/*.bak
1010
kicad/esp32_devkit/fp-info-cache
1111
Wconfig/secrets.txt
1212
frontend/node_modules
13-
data
13+
data
14+
managed_components

frontend/src/main.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -999,14 +999,16 @@ if (!import.meta.env.DEV) {
999999
console.error('Error loading model.xml:', error);
10001000
});
10011001

1002-
var eventSource = new EventSource('/events');
1003-
eventSource.onerror = (event) => {
1004-
console.error("EventSource failed:", event);
1005-
};
1006-
eventSource.addEventListener("log", (event) => {
1007-
addLog(JSON.parse(event.data).message);
1008-
});
1009-
eventSource.addEventListener("command", (event) => {
1010-
processUIEvent(JSON.parse(event.data));
1011-
});
1002+
setTimeout(() => {
1003+
var eventSource = new EventSource('/events');
1004+
eventSource.onerror = (event) => {
1005+
console.error("EventSource failed:", event);
1006+
};
1007+
eventSource.addEventListener("log", (event) => {
1008+
addLog(JSON.parse(event.data).message);
1009+
});
1010+
eventSource.addEventListener("command", (event) => {
1011+
processUIEvent(JSON.parse(event.data));
1012+
});
1013+
}, 1000);
10121014
}

lib/hubwebserver/src/hubwebserver.cpp

Lines changed: 16 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -93,32 +93,13 @@ void HubWebServer::start() {
9393
announceMDNS();
9494
announceSSDP();
9595

96-
server_->config.max_uri_handlers = 30;
96+
server_->config.max_uri_handlers = 40;
9797
server_->setPort(80);
9898
server_->start();
9999

100100
server_->on("/", HTTP_GET, [this](PsychicRequest *request, PsychicResponse *resp) {
101101

102102
INFO("webserver() - Rendering / page");
103-
IPAddress remote = request->client()->remoteIP();
104-
105-
IPAddress apSubnet(192, 168, 4, 0);
106-
IPAddress apSubnetMask(255, 255, 255, 0);
107-
if ((remote & apSubnetMask) == (apSubnet & apSubnetMask))
108-
{
109-
INFO("Root request thru AP IP - Redirecting to configuration page");
110-
PsychicStreamResponse response(resp, "text/html");
111-
response.setCode(302);
112-
response.addHeader("Cache-Control","no-cache, must-revalidate");
113-
response.addHeader("Location","/settings.html");
114-
response.setContentLength(0),
115-
116-
response.beginSend();
117-
return response.endSend();
118-
}
119-
120-
unsigned int stackHighWatermark = uxTaskGetStackHighWaterMark(nullptr);
121-
INFO("webserver() - Free HEAP is %d, stackHighWatermark is %d", ESP.getFreeHeap(), stackHighWatermark);
122103

123104
// Chunked response to optimize RAM usage
124105
size_t content_length = index_html_gz_len;
@@ -444,32 +425,30 @@ void HubWebServer::start() {
444425
}
445426

446427
void HubWebServer::publishLogMessages() {
447-
String logMessage = loggingOutput_->waitForLogMessage(portMAX_DELAY);
448-
if (logMessage.length() > 0) {
449-
if (eventSource_.count() == 0) {
450-
// No clients connected, skip sending
451-
return;
452-
}
428+
String logMessage = loggingOutput_->waitForLogMessage(pdMS_TO_TICKS(5));
429+
while (logMessage.length() > 0) {
430+
if (eventSource_.count() > 0) {
431+
JsonDocument root;
432+
root["message"] = logMessage;
453433

454-
JsonDocument root;
455-
root["message"] = logMessage;
434+
String strContent;
435+
serializeJson(root, strContent);
456436

457-
String strContent;
458-
serializeJson(root, strContent);
437+
eventSource_.send(strContent.c_str(), "log", millis());
438+
}
459439

460-
eventSource_.send(strContent.c_str(), "log", millis());
440+
logMessage = loggingOutput_->waitForLogMessage(pdMS_TO_TICKS(5));
461441
}
462442
}
463443

464444
void HubWebServer::publishCommands() {
465-
String command = Commands::instance()->waitForCommand(portMAX_DELAY);
466-
if (command.length() > 0) {
467-
if (eventSource_.count() == 0) {
468-
// No clients connected, skip sending
469-
return;
445+
String command = Commands::instance()->waitForCommand(pdMS_TO_TICKS(5));
446+
while (command.length() > 0) {
447+
if (eventSource_.count() > 0) {
448+
eventSource_.send(command.c_str(), "command", millis());
470449
}
471450

472-
eventSource_.send(command.c_str(), "command", millis());
451+
command = Commands::instance()->waitForCommand(pdMS_TO_TICKS(5));
473452
}
474453
}
475454

0 commit comments

Comments
 (0)