From 30a68cf170a6f8d04379cc1a456ff594f0e5a860 Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sat, 5 Jul 2014 18:31:38 +0200 Subject: [PATCH 1/2] Fixes #1440 - Logical switches state not reset after model load: * logical switches reset not called anymore when user selects "Reset Flight", but only after model load * logical switches reset now includes a reset of switches state (set to false) --- radio/src/eeprom_raw.cpp | 1 + radio/src/eeprom_rlc.cpp | 1 + radio/src/opentx.cpp | 5 ----- radio/src/switches.cpp | 6 ++++++ radio/src/tests/gtests.cpp | 32 ++++++++++++++++++++++++++++++++ 5 files changed, 40 insertions(+), 5 deletions(-) diff --git a/radio/src/eeprom_raw.cpp b/radio/src/eeprom_raw.cpp index 1b0189a82..147c549f0 100644 --- a/radio/src/eeprom_raw.cpp +++ b/radio/src/eeprom_raw.cpp @@ -386,6 +386,7 @@ void eeLoadModel(uint8_t id) } flightReset(); + logicalSwitchesReset(); if (pulsesStarted()) { checkAll(); diff --git a/radio/src/eeprom_rlc.cpp b/radio/src/eeprom_rlc.cpp index fed16794a..455664987 100644 --- a/radio/src/eeprom_rlc.cpp +++ b/radio/src/eeprom_rlc.cpp @@ -970,6 +970,7 @@ void eeLoadModel(uint8_t id) } flightReset(); + logicalSwitchesReset(); if (pulsesStarted()) { checkAll(); diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index cb53ebb18..06fde210d 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1625,11 +1625,6 @@ void flightReset() telemetryReset(); #endif - logicalSwitchesReset(); -#if !defined(CPUARM) - s_last_switch_value = 0; -#endif - s_mixer_first_run_done = false; START_SILENCE_PERIOD(); diff --git a/radio/src/switches.cpp b/radio/src/switches.cpp index 7eb61fdb6..ffc5e3cf9 100644 --- a/radio/src/switches.cpp +++ b/radio/src/switches.cpp @@ -801,6 +801,12 @@ int16_t lswTimerValue(delayval_t val) void logicalSwitchesReset() { +#if defined(CPUARM) + memset(lswFm, 0, sizeof(lswFm)); +#else + s_last_switch_value = 0; +#endif + #if defined(CPUARM) for (uint8_t fm=0; fm Date: Sat, 5 Jul 2014 19:20:56 +0200 Subject: [PATCH 2/2] gtest only for Taranis (thanks Jenkins) --- radio/src/tests/gtests.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/src/tests/gtests.cpp b/radio/src/tests/gtests.cpp index 6170a07e0..7bb96c687 100644 --- a/radio/src/tests/gtests.cpp +++ b/radio/src/tests/gtests.cpp @@ -389,7 +389,7 @@ TEST(getSwitch, circularCSW) EXPECT_EQ(getSwitch(-SWSRC_SW2), true); } -#if defined(CPUARM) +#if defined(PCBTARANIS) TEST(getSwitch, OldTypeStickyCSW) { MODEL_RESET(); @@ -419,7 +419,7 @@ TEST(getSwitch, OldTypeStickyCSW) EXPECT_EQ(getSwitch(SWSRC_SW1), false); EXPECT_EQ(getSwitch(SWSRC_SW2), false); } -#endif // #if defined(CPUARM) +#endif // #if defined(PCBTARANIS) TEST(getSwitch, nullSW) {