v1.10.0 #220

Merged
meierj merged 592 commits from develop into main 2022-04-22 07:42:20 +02:00
2 changed files with 11 additions and 10 deletions
Showing only changes of commit cbb8103278 - Show all commits

View File

@ -349,7 +349,7 @@ ReturnValue_t pst::pstSpi(FixedTimeslotTaskIF *thisSequence) {
#endif #endif
#if OBSW_ADD_ACS_BOARD == 1 && OBSW_ADD_ACS_HANDLERS == 1 #if OBSW_ADD_ACS_BOARD == 1 && OBSW_ADD_ACS_HANDLERS == 1
bool enableAside = false; bool enableAside = true;
bool enableBside = true; bool enableBside = true;
if (enableAside) { if (enableAside) {
// A side // A side

View File

@ -30,6 +30,9 @@ AcsBoardAssembly::AcsBoardAssembly(object_id_t objectId, object_id_t parentId,
void AcsBoardAssembly::handleChildrenTransition() { void AcsBoardAssembly::handleChildrenTransition() {
if (state == States::SWITCHING_POWER) { if (state == States::SWITCHING_POWER) {
powerStateMachine(targetMode, targetSubmode); powerStateMachine(targetMode, targetSubmode);
if (state == States::MODE_COMMANDING) {
AssemblyBase::handleChildrenTransition();
}
} else { } else {
AssemblyBase::handleChildrenTransition(); AssemblyBase::handleChildrenTransition();
} }
@ -72,26 +75,24 @@ ReturnValue_t AcsBoardAssembly::checkChildrenStateOn(Mode_t wantedMode, Submode_
refreshHelperModes(); refreshHelperModes();
if (state == States::SWITCHING_POWER) { if (state == States::SWITCHING_POWER) {
// Wrong mode // Wrong mode
sif::error << "Wrong mode, currently swichting power" << std::endl; sif::error << "Wrong mode, currently switching power" << std::endl;
return RETURN_OK; return RETURN_OK;
} }
if (submode == A_SIDE) { if (wantedSubmode == A_SIDE) {
if ((helper.gyro0SideAMode != wantedMode and helper.gyro1SideAMode != wantedMode) or if ((helper.gyro0SideAMode != wantedMode and helper.gyro1SideAMode != wantedMode) or
(helper.mgm0SideAMode != wantedMode and helper.mgm1SideAMode != wantedMode) or (helper.mgm0SideAMode != wantedMode and helper.mgm1SideAMode != wantedMode) or
helper.gpsMode != wantedMode) { helper.gpsMode != wantedMode) {
submode = B_SIDE;
return NOT_ENOUGH_CHILDREN_IN_CORRECT_STATE; return NOT_ENOUGH_CHILDREN_IN_CORRECT_STATE;
} }
return RETURN_OK; return RETURN_OK;
} else if (submode == B_SIDE) { } else if (wantedSubmode == B_SIDE) {
if ((helper.gyro2SideBMode != wantedMode and helper.gyro3SideBMode != wantedMode) or if ((helper.gyro2SideBMode != wantedMode and helper.gyro3SideBMode != wantedMode) or
(helper.mgm2SideBMode != wantedMode and helper.mgm3SideBMode != wantedMode) or (helper.mgm2SideBMode != wantedMode and helper.mgm3SideBMode != wantedMode) or
helper.gpsMode != wantedMode) { helper.gpsMode != wantedMode) {
submode = DUAL_MODE;
return NOT_ENOUGH_CHILDREN_IN_CORRECT_STATE; return NOT_ENOUGH_CHILDREN_IN_CORRECT_STATE;
} }
return RETURN_OK; return RETURN_OK;
} else if (submode == DUAL_MODE) { } else if (wantedSubmode == DUAL_MODE) {
if ((helper.gyro0SideAMode != wantedMode and helper.gyro1SideAMode != wantedMode and if ((helper.gyro0SideAMode != wantedMode and helper.gyro1SideAMode != wantedMode and
helper.gyro2AdisIdSideB != wantedMode and helper.gyro3SideBMode != wantedMode) or helper.gyro2AdisIdSideB != wantedMode and helper.gyro3SideBMode != wantedMode) or
(helper.mgm0SideAMode != wantedMode and helper.mgm1SideAMode != wantedMode and (helper.mgm0SideAMode != wantedMode and helper.mgm1SideAMode != wantedMode and
@ -115,7 +116,7 @@ ReturnValue_t AcsBoardAssembly::handleNormalOrOnModeCmd(Mode_t mode, Submode_t s
if (mode == DeviceHandlerIF::MODE_NORMAL) { if (mode == DeviceHandlerIF::MODE_NORMAL) {
if (isUseable(objectId, devMode)) { if (isUseable(objectId, devMode)) {
if (mode != MODE_OFF) { if (mode != MODE_OFF) {
modeTable[tableIdx].setMode(devMode); modeTable[tableIdx].setMode(mode);
modeTable[tableIdx].setSubmode(SUBMODE_NONE); modeTable[tableIdx].setSubmode(SUBMODE_NONE);
} else { } else {
result = NEED_SECOND_STEP; result = NEED_SECOND_STEP;
@ -123,14 +124,14 @@ ReturnValue_t AcsBoardAssembly::handleNormalOrOnModeCmd(Mode_t mode, Submode_t s
modeTable[tableIdx].setSubmode(SUBMODE_NONE); modeTable[tableIdx].setSubmode(SUBMODE_NONE);
} }
} }
} else if (devMode == MODE_ON) { } else if (mode == MODE_ON) {
if (isUseable(objectId, devMode)) { if (isUseable(objectId, devMode)) {
modeTable[tableIdx].setMode(MODE_ON); modeTable[tableIdx].setMode(MODE_ON);
modeTable[tableIdx].setSubmode(SUBMODE_NONE); modeTable[tableIdx].setSubmode(SUBMODE_NONE);
} }
} }
}; };
switch (this->submode) { switch (submode) {
case (A_SIDE): { case (A_SIDE): {
cmdSeq(helper.gyro0AdisIdSideA, helper.gyro0SideAMode, ModeTableIdx::GYRO_0_A); cmdSeq(helper.gyro0AdisIdSideA, helper.gyro0SideAMode, ModeTableIdx::GYRO_0_A);
cmdSeq(helper.gyro1L3gIdSideA, helper.gyro1SideAMode, ModeTableIdx::GYRO_1_A); cmdSeq(helper.gyro1L3gIdSideA, helper.gyro1SideAMode, ModeTableIdx::GYRO_1_A);