seems to work now, but the whole printout crap needs to be removed
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
This commit is contained in:
@ -36,6 +36,8 @@ void DualLaneAssemblyBase::performChildOperation() {
|
||||
void DualLaneAssemblyBase::startTransition(Mode_t mode, Submode_t submode) {
|
||||
using namespace duallane;
|
||||
pwrStateMachine.reset();
|
||||
dualToSingleSideTransition = false;
|
||||
sideSwitchState = SideSwitchState::NONE;
|
||||
|
||||
if (mode != MODE_OFF) {
|
||||
// Special exception: A transition from dual side to single mode must be handled like
|
||||
@ -84,12 +86,15 @@ ReturnValue_t DualLaneAssemblyBase::pwrStateMachineWrapper() {
|
||||
if (opCode == OpCodes::NONE) {
|
||||
return returnvalue::OK;
|
||||
} else if (opCode == OpCodes::TO_OFF_DONE) {
|
||||
sif::debug << "to off done" << std::endl;
|
||||
// Will be called for transitions to MODE_OFF, where everything is done after power switching
|
||||
finishModeOp();
|
||||
} else if (opCode == OpCodes::TO_NOT_OFF_DONE) {
|
||||
if (dualToSingleSideTransition) {
|
||||
sif::debug << "finishing dual to single side transition" << std::endl;
|
||||
finishModeOp();
|
||||
} else {
|
||||
sif::debug << "starting ASM base transition with submode " << (int) targetSubmode << std::endl;
|
||||
// Will be called for transitions from MODE_OFF to anything else, where the mode still has
|
||||
// to be commanded after power switching
|
||||
AssemblyBase::startTransition(targetMode, targetSubmode);
|
||||
@ -181,7 +186,9 @@ void DualLaneAssemblyBase::handleModeTransitionFailed(ReturnValue_t result) {
|
||||
startTransition(mode, nextSubmode);
|
||||
tryingOtherSide = true;
|
||||
} else {
|
||||
sif::debug << "starting dual side transition" << std::endl;
|
||||
triggerEvent(transitionOtherSideFailedEvent, mode, targetSubmode);
|
||||
// If we have just attempted side swichting, this flag needs to be reset!
|
||||
startTransition(mode, Submodes::DUAL_MODE);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user