Merge branch 'tcs-heater-upper-limit' into tcs-observability
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
This commit is contained in:
@ -1781,9 +1781,11 @@ void ThermalController::heaterTransitionControl(
|
||||
if (currentHeaterStates[i] == heaterStates[i].target) {
|
||||
// Required for max heater period control
|
||||
if (currentHeaterStates[i] == heater::SwitchState::ON) {
|
||||
heaterStates[i].heaterOnPeriod.setTimeout(MAX_HEATER_ON_DURATIONS_MS[i]);
|
||||
heaterStates[i].heaterOnPeriod.resetTimer();
|
||||
heaterStates[i].heaterOnMaxBurnTime.setTimeout(MAX_HEATER_ON_DURATIONS_MS[i]);
|
||||
heaterStates[i].heaterOnMaxBurnTime.resetTimer();
|
||||
heaterStates[i].trackHeaterMaxBurnTime = true;
|
||||
} else {
|
||||
heaterStates[i].trackHeaterMaxBurnTime = false;
|
||||
// The heater might still be one for some thermal components, so cross-check
|
||||
// those components
|
||||
crossCheckHeaterStateOfComponentsWhenHeaterGoesOff(static_cast<heater::Switch>(i));
|
||||
@ -1804,10 +1806,14 @@ void ThermalController::heaterTransitionControl(
|
||||
void ThermalController::heaterMaxDurationControl(
|
||||
const tcsCtrl::HeaterSwitchStates& currentHeaterStates) {
|
||||
for (unsigned i = 0; i < heater::Switch::NUMBER_OF_SWITCHES; i++) {
|
||||
// Right now, we only track the maximum duration for heater which were commanded by the TCS
|
||||
// controller.
|
||||
if (currentHeaterStates[i] == heater::SwitchState::ON and
|
||||
heaterStates[i].heaterOnPeriod.hasTimedOut()) {
|
||||
heaterStates[i].trackHeaterMaxBurnTime and
|
||||
heaterStates[i].heaterOnMaxBurnTime.hasTimedOut()) {
|
||||
heaterStates[i].switchTransition = false;
|
||||
heaterStates[i].heaterSwitchControlCycles = 0;
|
||||
heaterStates[i].trackHeaterMaxBurnTime = false;
|
||||
heaterHandler.switchHeater(static_cast<heater::Switch>(i), heater::SwitchState::OFF);
|
||||
triggerEvent(tcsCtrl::TCS_HEATER_MAX_BURN_TIME_REACHED, static_cast<uint32_t>(i),
|
||||
MAX_HEATER_ON_DURATIONS_MS[i]);
|
||||
@ -1815,7 +1821,7 @@ void ThermalController::heaterMaxDurationControl(
|
||||
// those components
|
||||
crossCheckHeaterStateOfComponentsWhenHeaterGoesOff(static_cast<heater::Switch>(i));
|
||||
} else if (currentHeaterStates[i] == heater::SwitchState::OFF) {
|
||||
heaterStates[i].heaterOnPeriod.resetTimer();
|
||||
heaterStates[i].heaterOnMaxBurnTime.resetTimer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user