diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ed5a3f5..851ef894 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ will consitute of a breaking change warranting a new major release: - Dual lane assemblies: Fix handling when health states are overwritten. Also add better handling when some devices are permanent faulty and some are only faulty. In that case, only the faulty devices will be restored. +- ACS dual lane assembly: Gyro 3 helper mode was assigned to the Gyro 2 mode. # [v1.43.1] 2023-04-04 diff --git a/mission/system/acs/AcsBoardAssembly.cpp b/mission/system/acs/AcsBoardAssembly.cpp index a4060343..755f5b7c 100644 --- a/mission/system/acs/AcsBoardAssembly.cpp +++ b/mission/system/acs/AcsBoardAssembly.cpp @@ -57,8 +57,8 @@ ReturnValue_t AcsBoardAssembly::commandChildren(Mode_t mode, Submode_t submode) modeTable[ModeTableIdx::GPS].setSubmode(SUBMODE_NONE); if (recoveryState == RecoveryState::RECOVERY_IDLE) { result = checkAndHandleHealthStates(mode, submode); - if (result == NEED_TO_CHANGE_HEALTH) { - return returnvalue::OK; + if (result != returnvalue::OK) { + return result; } } if (recoveryState != RecoveryState::RECOVERY_STARTED) { @@ -238,7 +238,7 @@ void AcsBoardAssembly::refreshHelperModes() { helper.gyro0SideAMode = childrenMap.at(helper.gyro0AdisIdSideA).mode; helper.gyro1SideAMode = childrenMap.at(helper.gyro1L3gIdSideA).mode; helper.gyro2SideBMode = childrenMap.at(helper.gyro2AdisIdSideB).mode; - helper.gyro3SideBMode = childrenMap.at(helper.gyro2AdisIdSideB).mode; + helper.gyro3SideBMode = childrenMap.at(helper.gyro3L3gIdSideB).mode; helper.mgm0SideAMode = childrenMap.at(helper.mgm0Lis3IdSideA).mode; helper.mgm1SideAMode = childrenMap.at(helper.mgm1Rm3100IdSideA).mode; helper.mgm2SideBMode = childrenMap.at(helper.mgm2Lis3IdSideB).mode;