bug fixed
Some checks failed
EIVE/eive-obsw/pipeline/pr-develop There was a failure building this commit
Some checks failed
EIVE/eive-obsw/pipeline/pr-develop There was a failure building this commit
This commit is contained in:
@ -984,11 +984,20 @@ void ThermalController::copyDevices() {
|
||||
}
|
||||
|
||||
void ThermalController::ctrlAcsBoard() {
|
||||
ctrlComponentTemperature(heater::HEATER_2_ACS_BRD, heater::HEATER_0_OBC_BRD,
|
||||
deviceTemperatures.gyro0SideA, deviceTemperatures.mgm0SideA,
|
||||
deviceTemperatures.gyro1SideA, // mgm1(int),
|
||||
// sensorTemperatures.sensor_tcs_board,
|
||||
&acsBoardLimits); // TODO: add red sensors
|
||||
// TODO: add red sensors, check sensor 4
|
||||
heater::Switchers switchNr = heater::HEATER_2_ACS_BRD;
|
||||
heater::Switchers redSwitchNr = heater::HEATER_0_OBC_BRD;
|
||||
chooseHeater(switchNr, redSwitchNr);
|
||||
|
||||
if (heaterAvailable) {
|
||||
/*chooseOf5Sensors(switchNr, deviceTemperatures.gyro0SideA, deviceTemperatures.mgm0SideA,
|
||||
deviceTemperatures.gyro1SideA, deviceTemperatures.mgt,
|
||||
sensorTemperatures.sensor_tcs_board);*/
|
||||
|
||||
if (sensorTempAvailable) {
|
||||
ctrlHeater(switchNr, redSwitchNr, &acsBoardLimits);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ThermalController::ctrlMgt() {
|
||||
@ -1164,8 +1173,6 @@ void ThermalController::chooseHeater(heater::Switchers& switchNr, heater::Switch
|
||||
} else {
|
||||
heaterAvailable = false;
|
||||
triggerEvent(NO_HEALTHY_HEATER_AVAILABLE, switchNr, redSwitchNr);
|
||||
sif::error << "ThermalController::chooseSensor: Both heater: " << switchNr << " + "
|
||||
<< redSwitchNr << " not healthy" << std::endl;
|
||||
}
|
||||
} else {
|
||||
redSwitchNrInUse = false;
|
||||
@ -1173,8 +1180,7 @@ void ThermalController::chooseHeater(heater::Switchers& switchNr, heater::Switch
|
||||
}
|
||||
|
||||
void ThermalController::chooseSensor(heater::Switchers switchNr, const lp_float_t& sensor1,
|
||||
const lp_float_t& sensor2, const lp_float_t& sensor3,
|
||||
bool moreThan3Sensors) {
|
||||
const lp_float_t& sensor2, const lp_float_t& sensor3) {
|
||||
sensorTempAvailable = true;
|
||||
|
||||
if (sensor1.isValid()) {
|
||||
@ -1183,16 +1189,11 @@ void ThermalController::chooseSensor(heater::Switchers switchNr, const lp_float_
|
||||
sensorTemp = sensor2.value;
|
||||
} else if (sensor3.isValid()) {
|
||||
sensorTemp = sensor3.value;
|
||||
/*} else if (moreThan3Sensors and sensor4.isValid()) {
|
||||
sensorTemp = sensor4.value;
|
||||
} else if (moreThan3Sensors and sensor5.isValid()) {
|
||||
sensorTemp = sensor5.value; */
|
||||
} else {
|
||||
if (heaterHandler.checkSwitchState(switchNr)) {
|
||||
heaterHandler.switchHeater(switchNr, HeaterHandler::SwitchState::OFF);
|
||||
}
|
||||
// TODO: triggerEvent(NO_VALID_SENSOR_TEMPERATURE, switchNr);
|
||||
sif::error << "ThermalController::chooseSensor: No valid Sensor found" << std::endl;
|
||||
triggerEvent(NO_VALID_SENSOR_TEMPERATURE, switchNr);
|
||||
sensorTempAvailable = false;
|
||||
}
|
||||
}
|
||||
@ -1201,15 +1202,37 @@ void ThermalController::ctrlComponentTemperature(heater::Switchers switchNr,
|
||||
heater::Switchers redSwitchNr,
|
||||
const lp_float_t& sensor1,
|
||||
const lp_float_t& sensor2,
|
||||
const lp_float_t& sensor3, TempLimits* tempLimit,
|
||||
bool moreThan3Sensors) {
|
||||
const lp_float_t& sensor3, TempLimits* tempLimit) {
|
||||
chooseHeater(switchNr, redSwitchNr);
|
||||
|
||||
if (heaterAvailable) {
|
||||
chooseSensor(switchNr, sensor1, sensor2, sensor3, moreThan3Sensors);
|
||||
chooseSensor(switchNr, sensor1, sensor2, sensor3);
|
||||
|
||||
if (sensorTempAvailable) {
|
||||
ctrlHeater(switchNr, redSwitchNr, tempLimit);
|
||||
}
|
||||
}
|
||||
}
|
||||
void ThermalController::chooseOf5Sensors(heater::Switchers switchNr, const lp_float_t& sensor1,
|
||||
const lp_float_t& sensor2, const lp_float_t& sensor3,
|
||||
const lp_float_t& sensor4, const lp_float_t& sensor5) {
|
||||
sensorTempAvailable = true;
|
||||
|
||||
if (sensor1.isValid()) {
|
||||
sensorTemp = sensor1.value;
|
||||
} else if (sensor2.isValid()) {
|
||||
sensorTemp = sensor2.value;
|
||||
} else if (sensor3.isValid()) {
|
||||
sensorTemp = sensor3.value;
|
||||
} else if (sensor4.isValid()) {
|
||||
sensorTemp = sensor4.value;
|
||||
} else if (sensor5.isValid()) {
|
||||
sensorTemp = sensor5.value;
|
||||
} else {
|
||||
if (heaterHandler.checkSwitchState(switchNr)) {
|
||||
heaterHandler.switchHeater(switchNr, HeaterHandler::SwitchState::OFF);
|
||||
}
|
||||
triggerEvent(NO_VALID_SENSOR_TEMPERATURE, switchNr);
|
||||
sensorTempAvailable = false;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user