diff --git a/doc/img/status.png b/doc/img/status.png index 7643cf3..32b4754 100644 Binary files a/doc/img/status.png and b/doc/img/status.png differ diff --git a/include/pages.h b/include/pages.h index 1914a37..cc22430 100644 --- a/include/pages.h +++ b/include/pages.h @@ -14,6 +14,8 @@ void sendResponseTrailer(AsyncResponseStream *response); void sendButton(AsyncResponseStream *response, const char *title, const char *action, const char *css = ""); void sendTableRow(AsyncResponseStream *response, const char *name, uint32_t value); + void sendTableRow(AsyncResponseStream *response, const char *name, String value); void sendDebugForm(AsyncResponseStream *response, String slaveId, String reg, String function, String count); const String ErrorName(Modbus::Error code); + const String WiFiQuality(int rssiValue); #endif /* PAGES_H */ \ No newline at end of file diff --git a/src/pages.cpp b/src/pages.cpp index d0a6621..a4264c4 100644 --- a/src/pages.cpp +++ b/src/pages.cpp @@ -19,6 +19,15 @@ void setupPages(AsyncWebServer *server, ModbusClientRTU *rtu, ModbusBridgeWiFi * auto *response = request->beginResponseStream("text/html"); sendResponseHeader(response, "Status"); response->print(""); + + // show ESP infos... + sendTableRow(response, "ESP Uptime (sec)", esp_timer_get_time() / 1000000); + sendTableRow(response, "ESP SSID", WiFi.SSID()); + sendTableRow(response, "ESP RSSI", WiFi.RSSI()); + sendTableRow(response, "ESP WiFi Quality", WiFiQuality(WiFi.RSSI())); + sendTableRow(response, "ESP MAC", WiFi.macAddress()); + sendTableRow(response, "ESP IP", WiFi.localIP().toString() ); + sendTableRow(response, "RTU Messages", rtu->getMessageCount()); sendTableRow(response, "RTU Pending Messages", rtu->pendingRequests()); sendTableRow(response, "RTU Errors", rtu->getErrorCount()); @@ -469,6 +478,14 @@ void sendButton(AsyncResponseStream *response, const char *title, const char *ac "

", action, css, title); } +void sendTableRow(AsyncResponseStream *response, const char *name, String value){ + response->printf( + "" + "" + "" + "", name, value.c_str()); +} + void sendTableRow(AsyncResponseStream *response, const char *name, uint32_t value){ response->printf( "" @@ -564,3 +581,16 @@ const String ErrorName(Modbus::Error code) default: return "undefined error"; } } + +// translate RSSI to quality string +const String WiFiQuality(int rssiValue) +{ + switch (rssiValue) + { + case -30 ... 0: return "Amazing"; + case -67 ... -31: return "Very Good"; + case -70 ... -68: return "Okay"; + case -80 ... -71: return "Not Good"; + default: return "Unusable"; + } +}
%s:%s