From 2aeb5f7ae6c5a0b24dc944b94b42f3ced6b03fa5 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 1 Feb 2021 08:49:21 +0100 Subject: [PATCH 1/5] Ensure module are on after model change --- radio/src/pulses/pulses.cpp | 8 ++++++++ radio/src/pulses/pulses.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index ed56f8b61..7f0650afa 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -484,6 +484,10 @@ bool setupPulsesInternalModule() { uint8_t protocol = getRequiredProtocol(INTERNAL_MODULE); + if(protocol != PROTOCOL_CHANNELS_NONE) { + INTERNAL_MODULE_ON(); + } + heartbeat |= (HEART_TIMER_PULSES << INTERNAL_MODULE); if (moduleState[INTERNAL_MODULE].protocol != protocol) { @@ -502,6 +506,10 @@ bool setupPulsesExternalModule() { uint8_t protocol = getRequiredProtocol(EXTERNAL_MODULE); + if(protocol != PROTOCOL_CHANNELS_NONE) { + EXTERNAL_MODULE_ON(); + } + heartbeat |= (HEART_TIMER_PULSES << EXTERNAL_MODULE); if (moduleState[EXTERNAL_MODULE].protocol != protocol) { diff --git a/radio/src/pulses/pulses.h b/radio/src/pulses/pulses.h index 84ecee015..6f37f2a60 100644 --- a/radio/src/pulses/pulses.h +++ b/radio/src/pulses/pulses.h @@ -353,7 +353,9 @@ inline void startPulses() setupPulsesInternalModule(); #endif +#if defined(HARDWARE_EXTERNAL_MODULE) setupPulsesExternalModule(); +#endif #if defined(HARDWARE_EXTRA_MODULE) extramodulePpmStart(); From f1e957e466eb5c771f6f3fd6aa3d8c43098cfda0 Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 3 Feb 2021 10:42:04 +0100 Subject: [PATCH 2/5] Improve --- radio/src/pulses/pulses.cpp | 20 ++++++++++++-------- radio/src/pulses/pulses.h | 4 ++++ radio/src/storage/storage_common.cpp | 8 ++++---- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index 7f0650afa..94fb99d52 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -480,14 +480,16 @@ bool setupPulsesInternalModule(uint8_t protocol) } } +void stopPulsesInternalModule() +{ + intmoduleStop(); + moduleState[INTERNAL_MODULE].protocol = PROTOCOL_CHANNELS_NONE; +} + bool setupPulsesInternalModule() { uint8_t protocol = getRequiredProtocol(INTERNAL_MODULE); - if(protocol != PROTOCOL_CHANNELS_NONE) { - INTERNAL_MODULE_ON(); - } - heartbeat |= (HEART_TIMER_PULSES << INTERNAL_MODULE); if (moduleState[INTERNAL_MODULE].protocol != protocol) { @@ -502,14 +504,16 @@ bool setupPulsesInternalModule() } #endif +void stopPulsesExternalModule() +{ + extmoduleStop(); + moduleState[EXTERNAL_MODULE].protocol = PROTOCOL_CHANNELS_NONE; +} + bool setupPulsesExternalModule() { uint8_t protocol = getRequiredProtocol(EXTERNAL_MODULE); - if(protocol != PROTOCOL_CHANNELS_NONE) { - EXTERNAL_MODULE_ON(); - } - heartbeat |= (HEART_TIMER_PULSES << EXTERNAL_MODULE); if (moduleState[EXTERNAL_MODULE].protocol != protocol) { diff --git a/radio/src/pulses/pulses.h b/radio/src/pulses/pulses.h index 6f37f2a60..c08f8bb88 100644 --- a/radio/src/pulses/pulses.h +++ b/radio/src/pulses/pulses.h @@ -315,8 +315,12 @@ extern TrainerPulsesData trainerPulsesData; #if defined(HARDWARE_INTERNAL_MODULE) bool setupPulsesInternalModule(); +void stopPulsesInternalModule(); #endif +#if defined(HARDWARE_EXTERNAL_MODULE) bool setupPulsesExternalModule(); +void stopPulsesExternalModule(); +#endif void setupPulsesDSM2(); void setupPulsesCrossfire(); void setupPulsesGhost(); diff --git a/radio/src/storage/storage_common.cpp b/radio/src/storage/storage_common.cpp index 40bac6a67..857cdd1a6 100644 --- a/radio/src/storage/storage_common.cpp +++ b/radio/src/storage/storage_common.cpp @@ -53,11 +53,11 @@ void preModelLoad() } pauseMixerCalculations(); -#if defined(INTMODULE_PWR_GPIO) - INTERNAL_MODULE_OFF(); +#if defined(HARDWARE_INTERNAL_MODULE) + stopPulsesInternalModule(); #endif -#if defined(EXTMODULE_PWR_GPIO) - EXTERNAL_MODULE_OFF(); +#if defined(HARDWARE_EXTERNAL_MODULE) + stopPulsesExternalModule(); #endif stopTrainer(); From f7d17b715c2a4fb2c5eb1e1863b6aba7a1898192 Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 3 Feb 2021 12:00:48 +0100 Subject: [PATCH 3/5] Please Travis --- radio/src/storage/storage_common.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/radio/src/storage/storage_common.cpp b/radio/src/storage/storage_common.cpp index 857cdd1a6..6edf79834 100644 --- a/radio/src/storage/storage_common.cpp +++ b/radio/src/storage/storage_common.cpp @@ -53,11 +53,13 @@ void preModelLoad() } pauseMixerCalculations(); +#if !defined(SIMU) #if defined(HARDWARE_INTERNAL_MODULE) stopPulsesInternalModule(); #endif #if defined(HARDWARE_EXTERNAL_MODULE) stopPulsesExternalModule(); +#endif #endif stopTrainer(); From b78b45723444d931315323835348ce1b7fe15fa9 Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 5 Feb 2021 13:17:54 +0100 Subject: [PATCH 4/5] Please Travis --- radio/src/pulses/pulses.cpp | 4 +++- radio/src/storage/storage_common.cpp | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index 94fb99d52..f6651ce4f 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -483,7 +483,9 @@ bool setupPulsesInternalModule(uint8_t protocol) void stopPulsesInternalModule() { intmoduleStop(); - moduleState[INTERNAL_MODULE].protocol = PROTOCOL_CHANNELS_NONE; + if (pulsesStarted()) { + moduleState[INTERNAL_MODULE].protocol = PROTOCOL_CHANNELS_NONE; + } } bool setupPulsesInternalModule() diff --git a/radio/src/storage/storage_common.cpp b/radio/src/storage/storage_common.cpp index 6edf79834..857cdd1a6 100644 --- a/radio/src/storage/storage_common.cpp +++ b/radio/src/storage/storage_common.cpp @@ -53,13 +53,11 @@ void preModelLoad() } pauseMixerCalculations(); -#if !defined(SIMU) #if defined(HARDWARE_INTERNAL_MODULE) stopPulsesInternalModule(); #endif #if defined(HARDWARE_EXTERNAL_MODULE) stopPulsesExternalModule(); -#endif #endif stopTrainer(); From bdf9e630caac5c3f276b4134f97e1b0cea64f231 Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 11 Feb 2021 17:27:53 +0100 Subject: [PATCH 5/5] Improve --- radio/src/pulses/pulses.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index f6651ce4f..32ae59342 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -482,8 +482,8 @@ bool setupPulsesInternalModule(uint8_t protocol) void stopPulsesInternalModule() { - intmoduleStop(); - if (pulsesStarted()) { + if (moduleState[INTERNAL_MODULE].protocol != PROTOCOL_CHANNELS_UNINITIALIZED) { + intmoduleStop(); moduleState[INTERNAL_MODULE].protocol = PROTOCOL_CHANNELS_NONE; } } @@ -508,8 +508,10 @@ bool setupPulsesInternalModule() void stopPulsesExternalModule() { - extmoduleStop(); - moduleState[EXTERNAL_MODULE].protocol = PROTOCOL_CHANNELS_NONE; + if (moduleState[EXTERNAL_MODULE].protocol != PROTOCOL_CHANNELS_UNINITIALIZED)) { + extmoduleStop(); + moduleState[EXTERNAL_MODULE].protocol = PROTOCOL_CHANNELS_NONE; + } } bool setupPulsesExternalModule()