eive-obsw/mission/system/acs/StrAssembly.cpp

36 lines
1.1 KiB
C++
Raw Normal View History

2023-03-06 15:51:53 +01:00
#include "StrAssembly.h"
#include <eive/objects.h>
2023-03-08 18:09:50 +01:00
StrAssembly::StrAssembly(object_id_t objectId) : AssemblyBase(objectId) {
2023-03-06 15:51:53 +01:00
ModeListEntry entry;
entry.setObject(objects::STAR_TRACKER);
entry.setMode(MODE_OFF);
entry.setSubmode(SUBMODE_NONE);
commandTable.insert(entry);
}
ReturnValue_t StrAssembly::commandChildren(Mode_t mode, Submode_t submode) {
// To ensure consistent state.
commandTable[0].setMode(MODE_OFF);
2023-03-06 15:51:53 +01:00
commandTable[0].setSubmode(submode);
if (healthHelper.healthTable->getHealth(objects::STAR_TRACKER) != FAULTY) {
commandTable[0].setMode(mode);
commandTable[0].setSubmode(submode);
}
2023-03-06 15:51:53 +01:00
HybridIterator<ModeListEntry> iter(commandTable.begin(), commandTable.end());
executeTable(iter);
return returnvalue::OK;
}
ReturnValue_t StrAssembly::checkChildrenStateOn(Mode_t wantedMode, Submode_t wantedSubmode) {
if (childrenMap[objects::STAR_TRACKER].mode != wantedMode) {
return NOT_ENOUGH_CHILDREN_IN_CORRECT_STATE;
}
return returnvalue::OK;
}
ReturnValue_t StrAssembly::isModeCombinationValid(Mode_t mode, Submode_t submode) {
return returnvalue::OK;
}