diff --git a/src/esp32/main-esp32.cpp b/src/esp32/main-esp32.cpp index 0e60fba83..ebe5477b5 100644 --- a/src/esp32/main-esp32.cpp +++ b/src/esp32/main-esp32.cpp @@ -7,9 +7,10 @@ #include "sleep.h" #include "target_specific.h" #include "utils.h" +#include +#include #include #include -#include void getMacAddr(uint8_t *dmac) { @@ -45,6 +46,18 @@ void esp32Setup() DEBUG_MSG("NVS: UsedEntries %d, FreeEntries %d, AllEntries %d\n", nvs_stats.used_entries, nvs_stats.free_entries, nvs_stats.total_entries); + DEBUG_MSG("Setup Preferences in Flash Storage\n"); + + // Create object to store our persistant data + Preferences preferences; + preferences.begin("meshtastic", false); + + uint32_t rebootCounter = preferences.getUInt("rebootCounter", 0); + rebootCounter++; + preferences.putUInt("rebootCounter", rebootCounter); + preferences.end(); + DEBUG_MSG("Number of Device Reboots: %d\n", rebootCounter); + // enableModemSleep(); // Since we are turning on watchdogs rather late in the release schedule, we really don't want to catch any diff --git a/src/mesh/http/ContentHandler.cpp b/src/mesh/http/ContentHandler.cpp index 3eefc11e2..c356a21bf 100644 --- a/src/mesh/http/ContentHandler.cpp +++ b/src/mesh/http/ContentHandler.cpp @@ -1,5 +1,6 @@ #include "NodeDB.h" #include "PowerFSM.h" +#include "RadioLibInterface.h" #include "airtime.h" #include "main.h" #include "mesh/http/ContentHelper.h" @@ -10,8 +11,8 @@ #include #include #include +#include #include -#include "RadioLibInterface.h" #ifndef NO_ESP32 #include "esp_task_wdt.h" @@ -836,6 +837,11 @@ void handleReport(HTTPRequest *req, HTTPResponse *res) ResourceParameters *params = req->getParams(); std::string content; + Preferences preferences; + preferences.begin("meshtastic", false); + + uint32_t rebootCounter = preferences.getUInt("rebootCounter", 0); + if (!params->getQueryParameter("content", content)) { content = "json"; } @@ -934,6 +940,10 @@ void handleReport(HTTPRequest *req, HTTPResponse *res) res->printf("\"is_charging\": %s\n", BoolToString(powerStatus->getIsCharging())); res->println("},"); + res->println("\"device\": {"); + res->printf("\"reboot_counter\": %d\n", rebootCounter); + res->println("},"); + res->println("\"radio\": {"); res->printf("\"frequecy\": %f,\n", RadioLibInterface::instance->getFreq()); res->printf("\"lora_channel\": %d\n", RadioLibInterface::instance->getChannelNum()); @@ -941,8 +951,6 @@ void handleReport(HTTPRequest *req, HTTPResponse *res) res->println("},"); - - res->println("\"status\": \"ok\""); res->println("}"); }