This bugfix might be super important #621

Merged
muellerr merged 6 commits from possible_bugfix_dual_lane_assy into main 2023-04-28 15:35:55 +02:00
Showing only changes of commit 383849c5cb - Show all commits

View File

@ -205,7 +205,8 @@ bool DualLaneAssemblyBase::checkAndHandleRecovery() {
opCode = pwrStateMachine.fsm();
if (opCode == OpCodes::TO_OFF_DONE or opCode == OpCodes::TIMEOUT_OCCURED) {
customRecoveryStates = RecoveryCustomStates::POWER_SWITCHING_ON;
pwrStateMachine.start(targetMode, targetSubmode);
// Command power back on in any case.
pwrStateMachine.start(HasModesIF::MODE_ON, targetSubmode);
gaisser marked this conversation as resolved
Review

Is this working in combination with the call to opCode = pwrStateMachine.fsm(); directly afterwards (line 213)? (I haven't checked the fsm() call, so this might be perfectly fine.)

In line 215 (

customRecoveryStates = RecoveryCustomStates::DONE;
) customRecoveryState will be set to RecoveryCustomStates::DONE; if we entered the "if" in line 206 with OpCodes::TIMEOUT_OCCURED, is this expected?

Is this working in combination with the call to ``opCode = pwrStateMachine.fsm();`` directly afterwards (line 213)? (I haven't checked the fsm() call, so this might be perfectly fine.) In line 215 (https://egit.irs.uni-stuttgart.de/eive/eive-obsw/src/commit/b10275ca43f13ee68be013c7ece3b63acf762130/mission/system/acs/DualLaneAssemblyBase.cpp#L215) ``customRecoveryState`` will be set to `` RecoveryCustomStates::DONE;`` if we entered the "if" in line 206 with ``OpCodes::TIMEOUT_OCCURED``, is this expected?
Review

Why shouldn't it work? This mechanism has always worked properly when targetMode is correct. The immediate fsm call will send the swtich commands, the replies take some time.

Why shouldn't it work? This mechanism has always worked properly when `targetMode` is correct. The immediate fsm call will send the swtich commands, the replies take some time.
Review

Ok

Ok
}
}
if (customRecoveryStates == POWER_SWITCHING_ON) {