diff --git a/mission/devices/SyrlinksHandler.cpp b/mission/devices/SyrlinksHandler.cpp index f7973297..b07d6d37 100644 --- a/mission/devices/SyrlinksHandler.cpp +++ b/mission/devices/SyrlinksHandler.cpp @@ -34,10 +34,15 @@ void SyrlinksHandler::doStartUp() { } void SyrlinksHandler::doShutDown() { - setMode(_MODE_POWER_DOWN); + // In any case, always disable TX first. + internalState = InternalState::SET_TX_STANDBY; commandExecuted = false; - internalState = InternalState::OFF; - temperatureSet.setValidity(false, true); + if (commandExecuted) { + temperatureSet.setValidity(false, true); + internalState = InternalState::OFF; + commandExecuted = false; + setMode(_MODE_POWER_DOWN); + } } ReturnValue_t SyrlinksHandler::buildNormalDeviceCommand(DeviceCommandId_t* id) { @@ -798,7 +803,7 @@ void SyrlinksHandler::doTransition(Mode_t modeFrom, Submode_t subModeFrom) { commandDone(); } } - } else { - commandDone(); + } else if (tgtMode == HasModesIF::MODE_OFF) { + txStandbyHandler(); } } diff --git a/tmtc b/tmtc index c4329558..83f10ed2 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit c4329558c900575af90caa97ff4d460538a94b6d +Subproject commit 83f10ed2530f88200f180139cf97bd2d83d857a0