This bugfix might be super important #621
14
CHANGELOG.md
14
CHANGELOG.md
@ -16,6 +16,10 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
# [v2.2.0] to be released
|
||||||
|
|
||||||
|
# [v2.1.0] to be released
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
|
||||||
- Adapt EM configuration to include all GomSpace PCDU devices except the ACU. For the ACU
|
- Adapt EM configuration to include all GomSpace PCDU devices except the ACU. For the ACU
|
||||||
@ -34,6 +38,16 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
- Host build is working again. Added reduced live TM helper which schedules the PUS and CFDP
|
- Host build is working again. Added reduced live TM helper which schedules the PUS and CFDP
|
||||||
funnel.
|
funnel.
|
||||||
|
|
||||||
|
# [v2.0.5] to be released
|
||||||
|
|
||||||
|
- The dual lane assembly transition failed handler started new transitions towards the current mode
|
||||||
|
instead of the target mode. This means that if the dual lane assembly never reached the initial
|
||||||
|
submode (e.g. mode normal and submode dual side), it will transition back to the current mode,
|
||||||
|
which miht be `MODE_OFF`. Furthermore, this can lead to invalid internal states, so the subsequent
|
||||||
|
recovery handling becomes stuck in the custom recovery sequence when swichting power back on.
|
||||||
|
- The dual lane custom recovery handling was adapted to always perform proper power switch handling
|
||||||
|
irrespective of current or target modes.
|
||||||
|
|
||||||
# [v2.0.4] 2023-04-19
|
# [v2.0.4] 2023-04-19
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
@ -205,7 +205,8 @@ bool DualLaneAssemblyBase::checkAndHandleRecovery() {
|
|||||||
opCode = pwrStateMachine.fsm();
|
opCode = pwrStateMachine.fsm();
|
||||||
if (opCode == OpCodes::TO_OFF_DONE or opCode == OpCodes::TIMEOUT_OCCURED) {
|
if (opCode == OpCodes::TO_OFF_DONE or opCode == OpCodes::TIMEOUT_OCCURED) {
|
||||||
customRecoveryStates = RecoveryCustomStates::POWER_SWITCHING_ON;
|
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
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (customRecoveryStates == POWER_SWITCHING_ON) {
|
if (customRecoveryStates == POWER_SWITCHING_ON) {
|
||||||
|
Loading…
Reference in New Issue
Block a user
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 (
customRecoveryState
will be set toRecoveryCustomStates::DONE;
if we entered the "if" in line 206 withOpCodes::TIMEOUT_OCCURED
, is this expected?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.Ok