From c04cd509a86a5ea24d47accfc6eaeba684944eaa Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Sat, 10 Jul 2021 18:28:16 +1000 Subject: [PATCH 1/5] Run safety checks on model select and exit menu --- radio/src/gui/colorlcd/model_select.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/radio/src/gui/colorlcd/model_select.cpp b/radio/src/gui/colorlcd/model_select.cpp index 8ecb3ffa7..fd0354c5a 100644 --- a/radio/src/gui/colorlcd/model_select.cpp +++ b/radio/src/gui/colorlcd/model_select.cpp @@ -246,6 +246,8 @@ class ModelCategoryPageBody : public FormWindow modelslist.setCurrentModel(model); modelslist.setCurrentCategory(category); update(); + checkAll(); + this->onEvent(EVT_KEY_FIRST(KEY_EXIT)); }); } menu->addLine(STR_CREATE_MODEL, getCreateModelAction()); From b98f03184f3a981af01e2f8e8a7441ec85242f29 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Sat, 10 Jul 2021 19:02:56 +1000 Subject: [PATCH 2/5] No need to re-run update as not updating menu Also removes slight UI flicker/lag --- radio/src/gui/colorlcd/model_select.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/radio/src/gui/colorlcd/model_select.cpp b/radio/src/gui/colorlcd/model_select.cpp index fd0354c5a..5097f9e9f 100644 --- a/radio/src/gui/colorlcd/model_select.cpp +++ b/radio/src/gui/colorlcd/model_select.cpp @@ -245,7 +245,6 @@ class ModelCategoryPageBody : public FormWindow modelslist.setCurrentModel(model); modelslist.setCurrentCategory(category); - update(); checkAll(); this->onEvent(EVT_KEY_FIRST(KEY_EXIT)); }); From e745ea254aa02cc4e7614626a987c2287e8712c6 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Wed, 14 Jul 2021 15:46:59 +1000 Subject: [PATCH 3/5] Clear module flags and failsafeChecked on enable Clearing the MPM capability flags and failsafeChecked resolves the issue with false failsafe not set warnings. Needs further testing to see if it causes any other issues. --- radio/src/pulses/pulses.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index 779771c04..1d0b75045 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -285,6 +285,12 @@ void enablePulsesExternalModule(uint8_t protocol) extmoduleSerialStart(); mixerSchedulerSetPeriod(EXTERNAL_MODULE, MULTIMODULE_PERIOD); #endif + for (int i = 0; i < NUM_MODULES; i++) { + if (isModuleMultimodule(i)) { + getMultiModuleStatus(i).failsafeChecked = false; + getMultiModuleStatus(i).flags = 0; + } + } break; #endif @@ -491,6 +497,12 @@ static void enablePulsesInternalModule(uint8_t protocol) intmodulePulsesData.multi.initFrame(); intmoduleSerialStart(MULTIMODULE_BAUDRATE, true, USART_Parity_Even, USART_StopBits_2, USART_WordLength_9b); mixerSchedulerSetPeriod(INTERNAL_MODULE, MULTIMODULE_PERIOD); + for (int i = 0; i < NUM_MODULES; i++) { + if (isModuleMultimodule(i)) { + getMultiModuleStatus(i).failsafeChecked = false; + getMultiModuleStatus(i).flags = 0; + } + } break; #endif From 46b3f07f70f765e7750910cb1c87ffc00b91512a Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Wed, 14 Jul 2021 15:59:00 +1000 Subject: [PATCH 4/5] Only reset flags on module being enabled --- radio/src/pulses/pulses.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index 1d0b75045..9169a9b6e 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -285,12 +285,8 @@ void enablePulsesExternalModule(uint8_t protocol) extmoduleSerialStart(); mixerSchedulerSetPeriod(EXTERNAL_MODULE, MULTIMODULE_PERIOD); #endif - for (int i = 0; i < NUM_MODULES; i++) { - if (isModuleMultimodule(i)) { - getMultiModuleStatus(i).failsafeChecked = false; - getMultiModuleStatus(i).flags = 0; - } - } + getMultiModuleStatus(EXTERNAL_MODULE).failsafeChecked = false; + getMultiModuleStatus(EXTERNAL_MODULE).flags = 0; break; #endif @@ -497,12 +493,8 @@ static void enablePulsesInternalModule(uint8_t protocol) intmodulePulsesData.multi.initFrame(); intmoduleSerialStart(MULTIMODULE_BAUDRATE, true, USART_Parity_Even, USART_StopBits_2, USART_WordLength_9b); mixerSchedulerSetPeriod(INTERNAL_MODULE, MULTIMODULE_PERIOD); - for (int i = 0; i < NUM_MODULES; i++) { - if (isModuleMultimodule(i)) { - getMultiModuleStatus(i).failsafeChecked = false; - getMultiModuleStatus(i).flags = 0; - } - } + getMultiModuleStatus(INTERNAL_MODULE).failsafeChecked = false; + getMultiModuleStatus(INTERNAL_MODULE).flags = 0; break; #endif From 232dabdb0bbbf2030e84ccae7b44a34e4af08b4c Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Thu, 15 Jul 2021 13:30:55 +1000 Subject: [PATCH 5/5] Prevent pre-flight checklist focus blocked --- radio/src/gui/colorlcd/model_select.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/gui/colorlcd/model_select.cpp b/radio/src/gui/colorlcd/model_select.cpp index 5097f9e9f..f73600b10 100644 --- a/radio/src/gui/colorlcd/model_select.cpp +++ b/radio/src/gui/colorlcd/model_select.cpp @@ -245,8 +245,8 @@ class ModelCategoryPageBody : public FormWindow modelslist.setCurrentModel(model); modelslist.setCurrentCategory(category); - checkAll(); this->onEvent(EVT_KEY_FIRST(KEY_EXIT)); + checkAll(); }); } menu->addLine(STR_CREATE_MODEL, getCreateModelAction());