diff --git a/mission/system/acs/SusAssembly.cpp b/mission/system/acs/SusAssembly.cpp index 2c7f881d..60fc21a1 100644 --- a/mission/system/acs/SusAssembly.cpp +++ b/mission/system/acs/SusAssembly.cpp @@ -131,7 +131,13 @@ ReturnValue_t SusAssembly::checkAndHandleHealthStates(Mode_t commandedMode, auto checkSusGroup = [&](object_id_t devNom, object_id_t devRed) { HealthState healthNom = healthHelper.healthTable->getHealth(devNom); HealthState healthRed = healthHelper.healthTable->getHealth(devRed); - if ((healthNom == FAULTY or healthNom == PERMANENT_FAULTY) and + if(healthNom == PERMANENT_FAULTY and healthRed == FAULTY) { + overwriteDeviceHealth(devRed, healthRed); + needsHealthOverwritten = true; + } else if(healthNom == FAULTY and healthRed == PERMANENT_FAULTY) { + overwriteDeviceHealth(devNom, healthNom); + needsHealthOverwritten = true; + } else if ((healthNom == FAULTY or healthNom == PERMANENT_FAULTY) and (healthRed == FAULTY or healthRed == PERMANENT_FAULTY)) { overwriteDeviceHealth(devNom, healthNom); overwriteDeviceHealth(devRed, healthRed);