some more tweaks and fixes
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...

This commit is contained in:
Robin Müller 2023-03-06 14:02:03 +01:00
parent bf61724374
commit 85d0ac92da
No known key found for this signature in database
GPG Key ID: 11D4952C8CCEF814
5 changed files with 16 additions and 6 deletions

2
fsfw

@ -1 +1 @@
Subproject commit 2c5af91db170ffd19f5cc6726642593fa9e3a059
Subproject commit e9d9f446053699a91d89250910cc0d59d05fbe6b

View File

@ -156,6 +156,12 @@ void ImtqHandler::doShutDown() {
firstReplyCycle = true;
internalState = InternalState::NONE;
commandExecuted = false;
statusSet.setValidity(false, true);
rawMtmNoTorque.setValidity(false, true);
rawMtmWithTorque.setValidity(false, true);
hkDatasetNoTorque.setValidity(false, true);
hkDatasetWithTorque.setValidity(false, true);
calMtmMeasurementSet.setValidity(false, true);
setMode(_MODE_POWER_DOWN);
}
@ -299,7 +305,7 @@ void ImtqHandler::fillCommandAndReplyMap() {
ReturnValue_t ImtqHandler::scanForReply(const uint8_t* start, size_t remainingSize,
DeviceCommandId_t* foundId, size_t* foundLen) {
if (getMode() == _MODE_WAIT_OFF or getMode() == _MODE_WAIT_ON) {
if (getMode() == _MODE_WAIT_OFF or getMode() == _MODE_WAIT_ON or getMode() == _MODE_POWER_DOWN) {
return IGNORE_FULL_PACKET;
}
if (remainingSize > 0) {

View File

@ -9,7 +9,6 @@ ImtqAssembly::ImtqAssembly(object_id_t objectId) : AssemblyBase(objectId) {
entry.setObject(objects::IMTQ_HANDLER);
entry.setMode(MODE_OFF);
entry.setSubmode(SUBMODE_NONE);
entry.setInheritSubmode(false);
commandTable.insert(entry);
}
@ -42,12 +41,16 @@ ReturnValue_t ImtqAssembly::isModeCombinationValid(Mode_t mode, Submode_t submod
}
ReturnValue_t ImtqAssembly::checkAndHandleHealthState(Mode_t deviceMode, Submode_t deviceSubmode) {
HealthState health = healthHelper.healthTable->getHealth(objects::SYRLINKS_HANDLER);
HealthState health = healthHelper.healthTable->getHealth(objects::IMTQ_HANDLER);
if (health == FAULTY or health == PERMANENT_FAULTY) {
overwriteDeviceHealth(objects::SYRLINKS_HANDLER, health);
overwriteDeviceHealth(objects::IMTQ_HANDLER, health);
return NEED_TO_CHANGE_HEALTH;
} else if (health == EXTERNAL_CONTROL) {
modeHelper.setForced(true);
}
return OK;
}
void ImtqAssembly::handleChildrenLostMode(ReturnValue_t result) {
startTransition(mode, submode);
}

View File

@ -12,6 +12,7 @@ class ImtqAssembly : public AssemblyBase {
ReturnValue_t commandChildren(Mode_t mode, Submode_t submode) override;
ReturnValue_t checkChildrenStateOn(Mode_t wantedMode, Submode_t wantedSubmode) override;
ReturnValue_t isModeCombinationValid(Mode_t mode, Submode_t submode) override;
void handleChildrenLostMode(ReturnValue_t result) override;
ReturnValue_t checkAndHandleHealthState(Mode_t deviceMode, Submode_t deviceSubmode);
};

2
tmtc

@ -1 +1 @@
Subproject commit f18a7f49cfbf80f8d3f6b18b8452df301c07d852
Subproject commit 208d328683a9911ecaa1d60abd3b8a9e3a841c37