diff --git a/Software/src/devboard/utils/events.cpp b/Software/src/devboard/utils/events.cpp index 35a8d256..25b25101 100644 --- a/Software/src/devboard/utils/events.cpp +++ b/Software/src/devboard/utils/events.cpp @@ -54,6 +54,21 @@ static void update_led_color(EVENTS_ENUM_TYPE event) { total_led_color = (total_led_color == RED) ? RED : entries[event].led_color; } +const char* get_led_color_display_text(u_int8_t led_color) { + switch (led_color) { + case RED: + return "RED"; + case YELLOW: + return "YELLOW"; + case GREEN: + return "GREEN"; + case BLUE: + return "BLUE"; + default: + return "UNKNOWN"; + } +} + const char* get_event_message(EVENTS_ENUM_TYPE event) { switch (event) { case EVENT_CAN_FAILURE: diff --git a/Software/src/devboard/utils/events.h b/Software/src/devboard/utils/events.h index c75fa65a..7d395bf5 100644 --- a/Software/src/devboard/utils/events.h +++ b/Software/src/devboard/utils/events.h @@ -42,6 +42,8 @@ const char* get_event_enum_string(EVENTS_ENUM_TYPE event); const char* get_event_message(EVENTS_ENUM_TYPE event); +const char* get_led_color_display_text(u_int8_t led_color); + void init_events(void); void set_event(EVENTS_ENUM_TYPE event, uint8_t data); void update_event_timestamps(void); diff --git a/Software/src/devboard/webserver/webserver.cpp b/Software/src/devboard/webserver/webserver.cpp index 78122465..5888e0fb 100644 --- a/Software/src/devboard/webserver/webserver.cpp +++ b/Software/src/devboard/webserver/webserver.cpp @@ -385,6 +385,7 @@ String processor(const String& var) { content += "

IP: " + WiFi.localIP().toString() + "

"; // Get and display the signal strength (RSSI) content += "

Signal Strength: " + String(WiFi.RSSI()) + " dBm

"; + content += "

Channel: " + String(WiFi.channel()) + "

"; } // Close the block content += ""; @@ -941,42 +942,47 @@ String cellmonitor_processor(const String& var) { return String(); } +const char EVENTS_HTML_START[] PROGMEM = R"=====( + +
+

Event log:

+ + +)====="; +const char EVENTS_HTML_END[] PROGMEM = R"=====( +
Event TypeLED ColorLast Event (seconds ago)CountDataMessage
+
+ + +)====="; + String events_processor(const String& var) { if (var == "PLACEHOLDER") { String content = ""; + content.reserve(5000); // Page format - content += ""; - - // Start a new block with a specific background color - content += "
"; - - //iterate through entries and display count, time and event - content += "

Event log:

"; - content += ""; - content += ""; + content.concat(FPSTR(EVENTS_HTML_START)); for(int i = 0; i < EVENT_NOF_EVENTS; i++) { - content += ""; - content += ""; - content += ""; - content += ""; - content += ""; - content += ""; - content += ""; - content += ""; + if (entries[i].occurences > 0) { + content.concat(""); + content.concat(""); + content.concat(""); + content.concat(""); + content.concat(""); + content.concat(""); + content.concat(""); + content.concat(""); + } } - content += "
Event TypeLED ColorLast Event (seconds ago)CountDataMessage
" + String(get_event_enum_string(static_cast(i))) + "" + String(entries[i].led_color) + "" + String((millis() / 1000) - entries[i].timestamp) + "" + String(entries[i].occurences) + "" + String(entries[i].data) + "" + String(get_event_message(static_cast(i))) + "
" + String(get_event_enum_string(static_cast(i))) + "" + String(get_led_color_display_text(entries[i].led_color)) + "" + String((millis() / 1000) - entries[i].timestamp) + "" + String(entries[i].occurences) + "" + String(entries[i].data) + "" + String(get_event_message(static_cast(i))) + "
"; - - // Close the block - content += "
"; - - content += ""; - content += ""; + content.concat(FPSTR(EVENTS_HTML_END)); return content; } return String();