diff --git a/mission/devices/SyrlinksHandler.cpp b/mission/devices/SyrlinksHandler.cpp index b07d6d37..ef59dbc4 100644 --- a/mission/devices/SyrlinksHandler.cpp +++ b/mission/devices/SyrlinksHandler.cpp @@ -25,7 +25,7 @@ void SyrlinksHandler::doStartUp() { } if (internalState == InternalState::ENABLE_TEMPERATURE_PROTECTION) { if (commandExecuted) { - // Got to normal mode immediately and disable transmitter on startup. + // Go to normal mode immediately and disable transmitter on startup. setMode(_MODE_TO_NORMAL); internalState = InternalState::IDLE; commandExecuted = false; @@ -35,13 +35,17 @@ void SyrlinksHandler::doStartUp() { void SyrlinksHandler::doShutDown() { // In any case, always disable TX first. - internalState = InternalState::SET_TX_STANDBY; - commandExecuted = false; - if (commandExecuted) { - temperatureSet.setValidity(false, true); - internalState = InternalState::OFF; + if (internalState != InternalState::SET_TX_STANDBY) { + internalState = InternalState::SET_TX_STANDBY; commandExecuted = false; - setMode(_MODE_POWER_DOWN); + } + if (internalState == InternalState::SET_TX_STANDBY) { + if (commandExecuted) { + temperatureSet.setValidity(false, true); + internalState = InternalState::OFF; + commandExecuted = false; + setMode(_MODE_POWER_DOWN); + } } }