diff --git a/ignore.tar.gz.gpg b/ignore.tar.gz.gpg index 08577d5..5ff0ab4 100644 Binary files a/ignore.tar.gz.gpg and b/ignore.tar.gz.gpg differ diff --git a/main/can.cpp b/main/can.cpp index 1b628c1..fb30a84 100644 --- a/main/can.cpp +++ b/main/can.cpp @@ -262,9 +262,11 @@ bool tryParseCanInput() void sendCanCommands() { static uint32_t can_sequential_error_cnt = 0; + static uint32_t can_sequential_bus_errors = 0; constexpr auto send = [](uint32_t addr, auto value){ twai_message_t message; + twai_status_info_t status_info; message.identifier = addr; message.flags = TWAI_MSG_FLAG_SS; message.data_length_code = sizeof(value); @@ -275,12 +277,14 @@ void sendCanCommands() const auto timestamp_before = espchrono::millis_clock::now(); const auto result = twai_transmit(&message, timeout); + const auto status = twai_get_status_info(&status_info); const auto timestamp_after = espchrono::millis_clock::now(); - if (result == ESP_ERR_TIMEOUT) + if (result == ESP_ERR_TIMEOUT || (status == ESP_OK && status_info.bus_error_count > can_sequential_bus_errors)) { ++can_sequential_error_cnt; ++can_total_error_cnt; + can_sequential_bus_errors = status_info.bus_error_count; ESP_LOGW(TAG, "twai_transmit() failed after %lldms with %s, seq err: %d, total err: %d", (timestamp_after - timestamp_before).count(), diff --git a/main/displays/menus/mainmenu.cpp b/main/displays/menus/mainmenu.cpp index 5ce8eff..e511c20 100644 --- a/main/displays/menus/mainmenu.cpp +++ b/main/displays/menus/mainmenu.cpp @@ -90,25 +90,25 @@ MainMenu::MainMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::statistics>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::modes>>>(); if (SHOWITEM) { constructMenuItem, ModeSettingsAction>>(); } - if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::battery>>>(); } - if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); } + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::battery>>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::greenpass>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::lock>>>(); if (configs.feature.garage.isEnabled.value && configs.feature.esp_now.isEnabled.value) { - if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } + constructMenuItem, SwitchScreenAction>>(); } if (configs.feature.ota.isEnabled.value) - if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::update>>>(); } - if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::graph>>>(); } + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::update>>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::graph>>>(); #if defined(FEATURE_CAN) && defined(FEATURE_POWERSUPPLY) - if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } + constructMenuItem, SwitchScreenAction>>(); #endif #ifdef FEATURE_MOSFETS - if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } + constructMenuItem, SwitchScreenAction>>(); #endif #if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS) - if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::bms>>>(); } + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::bms>>>(); #endif constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::presets>>>(); } @@ -116,9 +116,9 @@ MainMenu::MainMenu() if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::poweroff>>>(); constructMenuItem, RebootAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); -#ifdef MAINMENU_PLUGIN - GMEN1 -#endif +//#ifdef MAINMENU_PLUGIN + // GMEN1 +//#endif } std::string MainMenu::text() const diff --git a/main/displays/menus/settingsmenu.cpp b/main/displays/menus/settingsmenu.cpp index 775a441..b742e87 100644 --- a/main/displays/menus/settingsmenu.cpp +++ b/main/displays/menus/settingsmenu.cpp @@ -98,9 +98,12 @@ SettingsMenu::SettingsMenu() if (configs.feature.ota.isEnabled.value) constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::update>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::time>>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::hardware>>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::hardware>>>(); + if (!simplified) + { + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::hardware>>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::hardware>>>(); + } constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); //#if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS) // constructMenuItem, BobbyCheckbox, AutoConnectBmsAccessor>>(); diff --git a/main/displays/statusdisplay.cpp b/main/displays/statusdisplay.cpp index daa882e..7678aee 100644 --- a/main/displays/statusdisplay.cpp +++ b/main/displays/statusdisplay.cpp @@ -234,6 +234,8 @@ void StatusDisplay::buttonPressed(espgui::Button button) switchScreen(); break; case Button::Up: + if (simplified) + return; #ifdef FEATURE_BMS switchScreen(); #else @@ -241,6 +243,8 @@ void StatusDisplay::buttonPressed(espgui::Button button) #endif break; case Button::Down: + if (simplified) + return; switchScreen(); break; default: