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): {
|
||||
triggerEvent(core::TRYING_I2C_RECOVERY);
|
||||
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;
|
||||
this->actionCommandedBy = commandedBy;
|
||||
return returnvalue::OK;
|
||||
@ -264,11 +261,11 @@ void EiveSystem::commandSelfToSafe() { startTransition(satsystem::Mode::SAFE, 0)
|
||||
void EiveSystem::commonI2cRecoverySequenceFinish() {
|
||||
alreadyTriedI2cRecovery = true;
|
||||
performI2cReboot = false;
|
||||
i2cRecoveryClearCountdown.resetTimer();
|
||||
i2cRebootState = I2cRebootState::NONE;
|
||||
// Reset this counter. If I2C devices are still problematic, we will get a full reboot
|
||||
// next time this count goes above 5.
|
||||
// Reset this counter and the recovery clear countdown. If I2C devices are still problematic,
|
||||
// we will get a full reboot next time this count goes above 5.
|
||||
i2cErrors = 0;
|
||||
i2cRecoveryClearCountdown.resetTimer();
|
||||
// This should always be accepted
|
||||
commandSelfToSafe();
|
||||
}
|
||||
|
@ -41,7 +41,6 @@ class EiveSystem : public Subsystem, public HasActionsIF {
|
||||
MessageQueueId_t coreCtrlQueueId = MessageQueueIF::NO_QUEUE;
|
||||
MessageQueueId_t actionCommandedBy = MessageQueueIF::NO_QUEUE;
|
||||
Countdown i2cRebootHandlingCountdown = Countdown(10000);
|
||||
// Countdown i2cUnavailableCountdown = Countdown(30000);
|
||||
// After 1 minute, clear the flag to avoid full reboots on I2C issues.
|
||||
Countdown i2cRecoveryClearCountdown = Countdown(60000);
|
||||
ReturnValue_t initialize() override;
|
||||
|
Loading…
Reference in New Issue
Block a user