diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp index 219b8174e..1600cec65 100644 --- a/src/mesh/NodeDB.cpp +++ b/src/mesh/NodeDB.cpp @@ -24,6 +24,7 @@ #ifndef NO_ESP32 #include "mesh/http/WiFiAPClient.h" #include "plugins/esp32/StoreForwardPlugin.h" +#include #endif NodeDB nodeDB; @@ -234,6 +235,15 @@ void NodeDB::init() myNodeInfo.hw_model_deprecated[0] = '\0'; // strncpy(myNodeInfo.hw_model, HW_VENDOR, sizeof(myNodeInfo.hw_model)); +#ifndef NO_ESP32 + Preferences preferences; + preferences.begin("meshtastic", false); + myNodeInfo.reboot_count = preferences.getUInt("rebootCounter", 0); + preferences.end(); + DEBUG_MSG("Number of Device Reboots: %d\n", myNodeInfo.reboot_count); + +#endif + resetRadioConfig(); // If bogus settings got saved, then fix them DEBUG_MSG("region=%d, NODENUM=0x%x, dbsize=%d\n", radioConfig.preferences.region, myNodeInfo.my_node_num, *numNodes); diff --git a/src/mesh/generated/deviceonly.pb.h b/src/mesh/generated/deviceonly.pb.h index ababb0e0c..55bf6ce13 100644 --- a/src/mesh/generated/deviceonly.pb.h +++ b/src/mesh/generated/deviceonly.pb.h @@ -125,7 +125,7 @@ extern const pb_msgdesc_t ChannelFile_msg; /* Maximum encoded size of messages (where known) */ #define LegacyRadioConfig_size 4 #define LegacyRadioConfig_LegacyPreferences_size 2 -#define DeviceState_size 4920 +#define DeviceState_size 4926 #define ChannelFile_size 832 #ifdef __cplusplus diff --git a/src/mesh/generated/mesh.pb.h b/src/mesh/generated/mesh.pb.h index 8ef7f16f7..f9db4e6b9 100644 --- a/src/mesh/generated/mesh.pb.h +++ b/src/mesh/generated/mesh.pb.h @@ -110,6 +110,7 @@ typedef struct _MyNodeInfo { CriticalErrorCode error_code; uint32_t error_address; uint32_t error_count; + uint32_t reboot_count; uint32_t message_timeout_msec; uint32_t min_app_version; uint32_t max_channels; @@ -233,7 +234,7 @@ extern "C" { #define Data_init_default {_PortNum_MIN, {0, {0}}, 0, 0, 0, 0} #define MeshPacket_init_default {0, 0, 0, 0, {Data_init_default}, 0, 0, 0, 0, 0, _MeshPacket_Priority_MIN, 0} #define NodeInfo_init_default {0, false, User_init_default, false, Position_init_default, 0} -#define MyNodeInfo_init_default {0, 0, 0, "", "", "", _CriticalErrorCode_MIN, 0, 0, 0, 0, 0} +#define MyNodeInfo_init_default {0, 0, 0, "", "", "", _CriticalErrorCode_MIN, 0, 0, 0, 0, 0, 0} #define LogRecord_init_default {"", 0, "", _LogRecord_Level_MIN} #define FromRadio_init_default {0, 0, {MyNodeInfo_init_default}} #define ToRadio_init_default {0, {MeshPacket_init_default}} @@ -244,7 +245,7 @@ extern "C" { #define Data_init_zero {_PortNum_MIN, {0, {0}}, 0, 0, 0, 0} #define MeshPacket_init_zero {0, 0, 0, 0, {Data_init_zero}, 0, 0, 0, 0, 0, _MeshPacket_Priority_MIN, 0} #define NodeInfo_init_zero {0, false, User_init_zero, false, Position_init_zero, 0} -#define MyNodeInfo_init_zero {0, 0, 0, "", "", "", _CriticalErrorCode_MIN, 0, 0, 0, 0, 0} +#define MyNodeInfo_init_zero {0, 0, 0, "", "", "", _CriticalErrorCode_MIN, 0, 0, 0, 0, 0, 0} #define LogRecord_init_zero {"", 0, "", _LogRecord_Level_MIN} #define FromRadio_init_zero {0, 0, {MyNodeInfo_init_zero}} #define ToRadio_init_zero {0, {MeshPacket_init_zero}} @@ -269,6 +270,7 @@ extern "C" { #define MyNodeInfo_error_code_tag 7 #define MyNodeInfo_error_address_tag 8 #define MyNodeInfo_error_count_tag 9 +#define MyNodeInfo_reboot_count_tag 10 #define MyNodeInfo_message_timeout_msec_tag 13 #define MyNodeInfo_min_app_version_tag 14 #define MyNodeInfo_max_channels_tag 15 @@ -392,6 +394,7 @@ X(a, STATIC, SINGULAR, STRING, firmware_version, 6) \ X(a, STATIC, SINGULAR, UENUM, error_code, 7) \ X(a, STATIC, SINGULAR, UINT32, error_address, 8) \ X(a, STATIC, SINGULAR, UINT32, error_count, 9) \ +X(a, STATIC, SINGULAR, UINT32, reboot_count, 10) \ X(a, STATIC, SINGULAR, UINT32, message_timeout_msec, 13) \ X(a, STATIC, SINGULAR, UINT32, min_app_version, 14) \ X(a, STATIC, SINGULAR, UINT32, max_channels, 15) @@ -461,7 +464,7 @@ extern const pb_msgdesc_t ToRadio_msg; #define Data_size 260 #define MeshPacket_size 309 #define NodeInfo_size 126 -#define MyNodeInfo_size 89 +#define MyNodeInfo_size 95 #define LogRecord_size 81 #define FromRadio_size 318 #define ToRadio_size 312 diff --git a/src/mesh/http/ContentHandler.cpp b/src/mesh/http/ContentHandler.cpp index c356a21bf..6bd7b8dd9 100644 --- a/src/mesh/http/ContentHandler.cpp +++ b/src/mesh/http/ContentHandler.cpp @@ -941,7 +941,7 @@ void handleReport(HTTPRequest *req, HTTPResponse *res) res->println("},"); res->println("\"device\": {"); - res->printf("\"reboot_counter\": %d\n", rebootCounter); + res->printf("\"reboot_counter\": %d\n", myNodeInfo.reboot_count); res->println("},"); res->println("\"radio\": {");