|
|
|
@@ -172,7 +172,7 @@ void ThermalController::performControlOperation() {
|
|
|
|
|
transitionToOffCycles++;
|
|
|
|
|
// if heater still ON after 10 cycles, switch OFF again
|
|
|
|
|
if (transitionToOffCycles == 10) {
|
|
|
|
|
for (uint8_t i; i < heater::Switchers::NUMBER_OF_SWITCHES; i++) {
|
|
|
|
|
for (uint8_t i = 0; i < heater::Switchers::NUMBER_OF_SWITCHES; i++) {
|
|
|
|
|
heaterHandler.switchHeater(static_cast<heater::Switchers>(i),
|
|
|
|
|
HeaterHandler::SwitchState::OFF);
|
|
|
|
|
}
|
|
|
|
@@ -988,14 +988,16 @@ void ThermalController::ctrlAcsBoard() {
|
|
|
|
|
sensors[4].first = sensorTemperatures.tcsBoard.isValid();
|
|
|
|
|
sensors[4].second = sensorTemperatures.tcsBoard.value;
|
|
|
|
|
numSensors = 5;
|
|
|
|
|
if (selectAndReadSensorTemp()) {
|
|
|
|
|
if (chooseHeater(switchNr, redSwitchNr)) {
|
|
|
|
|
{
|
|
|
|
|
HeaterContext htrCtx(switchNr, redSwitchNr, acsBoardLimits);
|
|
|
|
|
if (selectAndReadSensorTemp(htrCtx)) {
|
|
|
|
|
if (chooseHeater(switchNr, redSwitchNr)) {
|
|
|
|
|
checkLimitsAndCtrlHeater(htrCtx);
|
|
|
|
|
}
|
|
|
|
|
resetSensorsArray();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
resetSensorsArray();
|
|
|
|
|
// B side
|
|
|
|
|
sensors[0].first = deviceTemperatures.gyro2SideB.isValid();
|
|
|
|
@@ -1007,9 +1009,11 @@ void ThermalController::ctrlAcsBoard() {
|
|
|
|
|
sensors[3].first = sensorTemperatures.tcsBoard.isValid();
|
|
|
|
|
sensors[3].second = sensorTemperatures.tcsBoard.value;
|
|
|
|
|
numSensors = 4;
|
|
|
|
|
if (selectAndReadSensorTemp()) {
|
|
|
|
|
if (chooseHeater(switchNr, redSwitchNr)) {
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
HeaterContext htrCtx(switchNr, redSwitchNr, acsBoardLimits);
|
|
|
|
|
if (selectAndReadSensorTemp(htrCtx)) {
|
|
|
|
|
if (chooseHeater(switchNr, redSwitchNr)) {
|
|
|
|
|
checkLimitsAndCtrlHeater(htrCtx);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
@@ -1019,6 +1023,7 @@ void ThermalController::ctrlAcsBoard() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
resetSensorsArray();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1546,7 +1551,7 @@ void ThermalController::performThermalModuleCtrl(const HeaterSwitchStates& heate
|
|
|
|
|
heaterTransitionControl(heaterSwitchStates);
|
|
|
|
|
}
|
|
|
|
|
void ThermalController::ctrlComponentTemperature(HeaterContext& htrCtx) {
|
|
|
|
|
if (selectAndReadSensorTemp()) {
|
|
|
|
|
if (selectAndReadSensorTemp(htrCtx)) {
|
|
|
|
|
if (chooseHeater(htrCtx.switchNr, htrCtx.redSwitchNr)) {
|
|
|
|
|
checkLimitsAndCtrlHeater(htrCtx);
|
|
|
|
|
}
|
|
|
|
@@ -1560,9 +1565,11 @@ void ThermalController::ctrlComponentTemperature(HeaterContext& htrCtx) {
|
|
|
|
|
}
|
|
|
|
|
resetSensorsArray();
|
|
|
|
|
}
|
|
|
|
|
bool ThermalController::selectAndReadSensorTemp() {
|
|
|
|
|
bool ThermalController::selectAndReadSensorTemp(HeaterContext& htrCtx) {
|
|
|
|
|
for (unsigned i = 0; i < numSensors; i++) {
|
|
|
|
|
if (sensors[i].first and sensors[i].second != INVALID_TEMPERATURE) {
|
|
|
|
|
if (sensors[i].first and sensors[i].second != INVALID_TEMPERATURE and
|
|
|
|
|
sensors[i].second > SANITY_LIMIT_LOWER_TEMP and
|
|
|
|
|
sensors[i].second < SANITY_LIMIT_UPPER_TEMP) {
|
|
|
|
|
sensorTemp = sensors[i].second;
|
|
|
|
|
thermalStates[thermalComponent].errorCounter = 0;
|
|
|
|
|
return true;
|
|
|
|
@@ -1745,7 +1752,7 @@ void ThermalController::tooHotHandlerWhichClearsOneShotFlag(object_id_t object,
|
|
|
|
|
void ThermalController::startTransition(Mode_t mode_, Submode_t submode_) {
|
|
|
|
|
triggerEvent(CHANGING_MODE, mode_, submode_);
|
|
|
|
|
if (mode_ == MODE_OFF) {
|
|
|
|
|
for (uint8_t i; i < heater::Switchers::NUMBER_OF_SWITCHES; i++) {
|
|
|
|
|
for (uint8_t i = 0; i < heater::Switchers::NUMBER_OF_SWITCHES; i++) {
|
|
|
|
|
heaterHandler.switchHeater(static_cast<heater::Switchers>(i),
|
|
|
|
|
HeaterHandler::SwitchState::OFF);
|
|
|
|
|
}
|
|
|
|
|