From c29edfb71799405c3d00c1791d6e22245a9bccc4 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Thu, 23 Sep 2021 02:47:17 +0200 Subject: [PATCH] Restart reason now visible in the debug menu --- main/displays/menus/debugmenu.h | 2 ++ main/esptexthelpers.h | 42 +++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/main/displays/menus/debugmenu.h b/main/displays/menus/debugmenu.h index 6ad6a85..6a079fe 100644 --- a/main/displays/menus/debugmenu.h +++ b/main/displays/menus/debugmenu.h @@ -62,6 +62,8 @@ public: constructMenuItem, SwitchScreenAction, FrontFeedbackColor>>(); constructMenuItem, SwitchScreenAction, BackFeedbackColor>>(); constructMenuItem>(); + constructMenuItem, DisabledColor, DummyAction>>(); + constructMenuItem>(); constructMenuItem, SwitchScreenAction, FrontFeedbackColor>>(); constructMenuItem, SwitchScreenAction, FrontFeedbackColor>>(); constructMenuItem, SwitchScreenAction, BackFeedbackColor>>(); diff --git a/main/esptexthelpers.h b/main/esptexthelpers.h index 9515889..39aaae8 100644 --- a/main/esptexthelpers.h +++ b/main/esptexthelpers.h @@ -37,6 +37,48 @@ class HeapMinFree32Text : public virtual TextInterface { public: std::string tex class HeapLargest32Text : public virtual TextInterface { public: std::string text() const override { return fmt::format("HeapLargest32: {}", heap_caps_get_largest_free_block(MALLOC_CAP_INTERNAL|MALLOC_CAP_32BIT)); }}; +class LastRebootReasonText : public virtual TextInterface { public: std::string text() const override { + std::string reset_reason_string; + switch (esp_reset_reason()) { + case 0: + reset_reason_string = "Unkown"; + break; + case 1: + reset_reason_string = "Power on"; + break; + case 2: + reset_reason_string = "External Pin"; + break; + case 3: + reset_reason_string = "esp_restart"; + break; + case 4: + reset_reason_string = "Exception/panic"; + break; + case 5: + reset_reason_string = "Interrupt wd"; + break; + case 6: + reset_reason_string = "Task wd"; + break; + case 7: + reset_reason_string = "Other wd"; + break; + case 8: + reset_reason_string = "Deepsleep"; + break; + case 9: + reset_reason_string = "Brownout"; + break; + case 10: + reset_reason_string = "SDIO"; + break; + default: + return fmt::format("Last Reboot Reason: {}", esp_reset_reason()); + } + + return fmt::format("Last Reboot Reason: {}", reset_reason_string); }}; + constexpr char TEXT_ESPCHIPREVISION[] = "Chip revision: "; using EspChipRevisionText = StaticText; //EspStatusTextHelper;