diff --git a/WiFiManager.cpp b/WiFiManager.cpp
index cc6edb0..0fe2c24 100644
--- a/WiFiManager.cpp
+++ b/WiFiManager.cpp
@@ -749,29 +749,114 @@ void WiFiManager::handleInfo() {
page += FPSTR(HTTP_STYLE);
page += _customHeadElement;
page += FPSTR(HTTP_HEAD_END);
- page += F("
");
+
+ page += "";
+ reportStatus(page);
+ page +="
";
+ // @todo add versioning here
+
+ page += F("esp8266
");
page += F("- Chip ID
- ");
page += ESP.getChipId();
page += F("
");
+
page += F("- Flash Chip ID
- ");
page += ESP.getFlashChipId();
page += F("
");
+
page += F("- IDE Flash Size
- ");
page += ESP.getFlashChipSize();
page += F(" bytes
");
- page += F("- Real Flash Size
- ");
+
+ page += F("
- Actual Flash Size
- ");
page += ESP.getFlashChipRealSize();
page += F(" bytes
");
- page += F("- Soft AP IP
- ");
+
+ page += F("
- SDK Version
- ");
+ page += system_get_sdk_version();
+ page += F("
");
+
+ page += F("- Core Version
- ");
+ page += ESP.getCoreVersion();
+ page += F("
");
+
+ page += F("- Boot Version
- ");
+ page += system_get_boot_version();
+ page += F("
");
+
+ page += F("- CPU Frequency
- ");
+ page += ESP.getCpuFreqMHz();
+ page += F("MHz
");
+
+ // heap is dynamic, would have to have a known starting for graph
+ // uint32_t heapstart = 47000;
+ // page += F("- Memory Heap
- ");
+ // page += F("Used/Total bytes
");
+ // page += (heapstart)-ESP.getFreeHeap();
+ // page += "/";
+ // page += (heapstart);
+ // page += "
";
+ // page += F(" ");
+
+ page += F("- Memory - Free Heap
- ");
+ page += ESP.getFreeHeap();
+ page += F(" bytes available
");
+
+ page += F("- Memory - Sketch Size
- ");
+ page += F("Used/Total bytes
");
+ page += (ESP.getSketchSize()+ESP.getFreeSketchSpace())-ESP.getFreeSketchSpace();
+ page += "/";
+ page += (ESP.getSketchSize()+ESP.getFreeSketchSpace());
+ page += F("
");
+
+ page += F("- Last reset reason
- ");
+ page += ESP.getResetReason();
+ page += F("
");
+
+ page += F("
WiFi
- Access Point IP
- ");
page += WiFi.softAPIP().toString();
page += F("
");
- page += F("- Soft AP MAC
- ");
+
+ page += F("
- Access Point MAC
- ");
page += WiFi.softAPmacAddress();
page += F("
");
+
+ page += F("- SSID
- ");
+ page += WiFi.SSID();
+ page += F("
");
+
+ page += F("- Station IP
- ");
+ page += WiFi.localIP().toString();
+ page += F("
");
+
page += F("- Station MAC
- ");
page += WiFi.macAddress();
page += F("
");
+
page += F("
");
+
+ page += F("
Available Pages
");
+ page += F("");
+ page += F("| Page | Function |
");
+ page += F("| / | ");
+ page += F("Menu page. |
");
+ page += F("| /wifi | ");
+ page += F("Show WiFi scan results and enter WiFi configuration. |
");
+ page += F("| /wifisave | ");
+ page += F("Save WiFi configuration information and configure device. Needs variables supplied. |
");
+ page += F("| /close | ");
+ page += F("Close the configuration server and configuration WiFi network. |
");
+ page += F("| /i | ");
+ page += F("Information page |
");
+ page += F("| /r | ");
+ page += F("Delete WiFi configuration and reboot. ESP device will not reconnect to a network until new WiFi configuration data is entered. |
");
+ // @todo add callback here
+ page += F("
");
+ page += F("More information about WiFiManager at https://github.com/tzapu/WiFiManager.");
page += FPSTR(HTTP_END);
server->sendHeader("Content-Length", String(page.length()));
@@ -780,6 +865,26 @@ void WiFiManager::handleInfo() {
DEBUG_WM(F("Sent info page"));
}
+void WiFiManager::reportStatus(String &page){
+ if (WiFi.SSID() != ""){
+ page += F("Configured to connect to access point ");
+ page += WiFi.SSID();
+ if (WiFi.status()==WL_CONNECTED){
+ page += F(" and currently connected on IP ");
+ page += WiFi.localIP().toString();
+ page += F("");
+ }
+ else {
+ page += F(" but not currently connected to network.");
+ }
+ }
+ else {
+ page += F("No network currently configured.");
+ }
+}
+
/**
* HTTPD CALLBACK reset page
*/
diff --git a/WiFiManager.h b/WiFiManager.h
index 40e5c0e..c5cde8e 100644
--- a/WiFiManager.h
+++ b/WiFiManager.h
@@ -221,6 +221,7 @@ class WiFiManager
String toStringIp(IPAddress ip);
boolean validApPassword();
String encryptionTypeStr(uint8_t authmode);
+ void reportStatus(String &page);
boolean connect;
boolean configPortalActive = false;