further development thermal controller
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good

This commit is contained in:
Irini Kosmidou 2022-11-28 17:40:29 +01:00
parent d81ae3c35f
commit 4a404835c0
2 changed files with 30 additions and 24 deletions

View File

@ -106,31 +106,8 @@ void ThermalController::performControlOperation() {
// TODO: Heater control
// TODO: Hysterese offset
ctrl4KCameraHeater();
// 4K Camera - Heater
if (sensorTemperatures.sensor_4k_camera.isValid()) {
if (not heaterHandler.checkSwitchState(heater::HEATER_4_CAMERA)) {
if (sensorTemperatures.sensor_4k_camera.value < cameraLimits.opLowerLimit) {
heaterHandler.switchHeater(heater::HEATER_4_CAMERA, HeaterHandler::SwitchState::ON);
heater4Countdown.resetTimer();
}
} else if (heaterHandler.checkSwitchState(heater::HEATER_4_CAMERA)) {
if (sensorTemperatures.sensor_4k_camera.value >= cameraLimits.opLowerLimit + TEMP_OFFSET) {
heaterHandler.switchHeater(heater::HEATER_4_CAMERA, HeaterHandler::SwitchState::OFF);
}
} else {
if (heater4Countdown.hasTimedOut()) {
// Sensor or heater failure
heaterHandler.switchHeater(heater::HEATER_4_CAMERA, HeaterHandler::SwitchState::OFF);
triggerEvent(HEATER_MAX_BURNTIME_REACHED, heater::HEATER_4_CAMERA);
};
}
} else {
if (heaterHandler.checkSwitchState(heater::HEATER_4_CAMERA)) {
heaterHandler.switchHeater(heater::HEATER_4_CAMERA, HeaterHandler::SwitchState::OFF);
}
triggerEvent(INVALID_SENSOR_TEMPERATURE, heater::HEATER_4_CAMERA);
}
}
ReturnValue_t ThermalController::initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
@ -977,3 +954,30 @@ void ThermalController::copyDevices() {
}
}
}
void ThermalController::ctrl4KCameraHeater(){
// 4K Camera - Heater
if (sensorTemperatures.sensor_4k_camera.isValid()) {
if (not heaterHandler.checkSwitchState(heater::HEATER_4_CAMERA)) {
if (sensorTemperatures.sensor_4k_camera.value < cameraLimits.opLowerLimit) {
heaterHandler.switchHeater(heater::HEATER_4_CAMERA, HeaterHandler::SwitchState::ON);
heater4Countdown.resetTimer();
}
} else if (heaterHandler.checkSwitchState(heater::HEATER_4_CAMERA)) {
if (sensorTemperatures.sensor_4k_camera.value >= cameraLimits.opLowerLimit + TEMP_OFFSET) {
heaterHandler.switchHeater(heater::HEATER_4_CAMERA, HeaterHandler::SwitchState::OFF);
}
} else {
if (heater4Countdown.hasTimedOut()) {
// Sensor or heater failure
heaterHandler.switchHeater(heater::HEATER_4_CAMERA, HeaterHandler::SwitchState::OFF);
triggerEvent(HEATER_MAX_BURNTIME_REACHED, heater::HEATER_4_CAMERA);
};
}
} else {
if (heaterHandler.checkSwitchState(heater::HEATER_4_CAMERA)) {
heaterHandler.switchHeater(heater::HEATER_4_CAMERA, HeaterHandler::SwitchState::OFF);
}
triggerEvent(INVALID_SENSOR_TEMPERATURE, heater::HEATER_4_CAMERA);
}
}

View File

@ -150,6 +150,8 @@ class ThermalController : public ExtendedControllerBase {
void copySensors();
void copySus();
void copyDevices();
void ctrl4KCameraHeater();
};
#endif /* MISSION_CONTROLLER_THERMALCONTROLLER_H_ */