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:
+
+Event Type | LED Color | Last Event (seconds ago) | Count | Data | Message |
+)=====";
+const char EVENTS_HTML_END[] PROGMEM = R"=====(
+
+
+
+
+)=====";
+
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 += "Event Type | LED Color | Last Event (seconds ago) | Count | Data | Message |
";
+ content.concat(FPSTR(EVENTS_HTML_START));
for(int i = 0; i < EVENT_NOF_EVENTS; i++) {
- content += "";
- content += "" + String(get_event_enum_string(static_cast(i))) + " | ";
- content += "" + String(entries[i].led_color) + " | ";
- content += "" + String((millis() / 1000) - entries[i].timestamp) + " | ";
- content += "" + String(entries[i].occurences) + " | ";
- content += "" + String(entries[i].data) + " | ";
- content += "" + String(get_event_message(static_cast(i))) + " | ";
- content += "
";
+ if (entries[i].occurences > 0) {
+ content.concat("");
+ content.concat("" + String(get_event_enum_string(static_cast(i))) + " | ");
+ content.concat("" + String(get_led_color_display_text(entries[i].led_color)) + " | ");
+ content.concat("" + String((millis() / 1000) - entries[i].timestamp) + " | ");
+ content.concat("" + String(entries[i].occurences) + " | ");
+ content.concat("" + String(entries[i].data) + " | ");
+ content.concat("" + String(get_event_message(static_cast(i))) + " | ");
+ content.concat("
");
+ }
}
- content += "
";
-
- // Close the block
- content += "
";
-
- content += "";
- content += "";
+ content.concat(FPSTR(EVENTS_HTML_END));
return content;
}
return String();