Merge pull request 'this is necessary so it works..' (#581) from important_fix_i2c_recovery into develop
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #581
This commit is contained in:
commit
f259face36
@ -144,9 +144,6 @@ ReturnValue_t EiveSystem::executeAction(ActionId_t actionId, MessageQueueId_t co
|
|||||||
case (EXECUTE_I2C_REBOOT): {
|
case (EXECUTE_I2C_REBOOT): {
|
||||||
triggerEvent(core::TRYING_I2C_RECOVERY);
|
triggerEvent(core::TRYING_I2C_RECOVERY);
|
||||||
performI2cReboot = true;
|
performI2cReboot = true;
|
||||||
// This flag is more related to autonomous recovery handling, so we reset it here if this
|
|
||||||
// reboot sequence is commanded manually.
|
|
||||||
alreadyTriedI2cRecovery = false;
|
|
||||||
i2cRebootState = I2cRebootState::SYSTEM_MODE_BOOT;
|
i2cRebootState = I2cRebootState::SYSTEM_MODE_BOOT;
|
||||||
this->actionCommandedBy = commandedBy;
|
this->actionCommandedBy = commandedBy;
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
@ -264,11 +261,11 @@ void EiveSystem::commandSelfToSafe() { startTransition(satsystem::Mode::SAFE, 0)
|
|||||||
void EiveSystem::commonI2cRecoverySequenceFinish() {
|
void EiveSystem::commonI2cRecoverySequenceFinish() {
|
||||||
alreadyTriedI2cRecovery = true;
|
alreadyTriedI2cRecovery = true;
|
||||||
performI2cReboot = false;
|
performI2cReboot = false;
|
||||||
i2cRecoveryClearCountdown.resetTimer();
|
|
||||||
i2cRebootState = I2cRebootState::NONE;
|
i2cRebootState = I2cRebootState::NONE;
|
||||||
// Reset this counter. If I2C devices are still problematic, we will get a full reboot
|
// Reset this counter and the recovery clear countdown. If I2C devices are still problematic,
|
||||||
// next time this count goes above 5.
|
// we will get a full reboot next time this count goes above 5.
|
||||||
i2cErrors = 0;
|
i2cErrors = 0;
|
||||||
|
i2cRecoveryClearCountdown.resetTimer();
|
||||||
// This should always be accepted
|
// This should always be accepted
|
||||||
commandSelfToSafe();
|
commandSelfToSafe();
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,6 @@ class EiveSystem : public Subsystem, public HasActionsIF {
|
|||||||
MessageQueueId_t coreCtrlQueueId = MessageQueueIF::NO_QUEUE;
|
MessageQueueId_t coreCtrlQueueId = MessageQueueIF::NO_QUEUE;
|
||||||
MessageQueueId_t actionCommandedBy = MessageQueueIF::NO_QUEUE;
|
MessageQueueId_t actionCommandedBy = MessageQueueIF::NO_QUEUE;
|
||||||
Countdown i2cRebootHandlingCountdown = Countdown(10000);
|
Countdown i2cRebootHandlingCountdown = Countdown(10000);
|
||||||
// Countdown i2cUnavailableCountdown = Countdown(30000);
|
|
||||||
// After 1 minute, clear the flag to avoid full reboots on I2C issues.
|
// After 1 minute, clear the flag to avoid full reboots on I2C issues.
|
||||||
Countdown i2cRecoveryClearCountdown = Countdown(60000);
|
Countdown i2cRecoveryClearCountdown = Countdown(60000);
|
||||||
ReturnValue_t initialize() override;
|
ReturnValue_t initialize() override;
|
||||||
|
Loading…
Reference in New Issue
Block a user