changes thermal control
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
This commit is contained in:
parent
8a9ed28845
commit
6365f497a7
@ -105,7 +105,29 @@ void ThermalController::performControlOperation() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Heater control
|
// TODO: Heater control
|
||||||
|
ctrlAcsBoard();
|
||||||
|
ctrlMgt();
|
||||||
|
ctrlRw();
|
||||||
|
ctrlStr();
|
||||||
|
ctrlIfBoard();
|
||||||
|
ctrlTcsBoard();
|
||||||
|
ctrlObc();
|
||||||
|
ctrlObcIfBoard();
|
||||||
|
ctrlSBandTransceiver();
|
||||||
|
ctrlPcduP60Board();
|
||||||
|
ctrlPcduAcu();
|
||||||
|
ctrlPcduPdu();
|
||||||
|
ctrlPlPcduBoard();
|
||||||
|
ctrlPlocMissionBoard();
|
||||||
|
ctrlPlocProcessingBoard();
|
||||||
|
ctrlDac();
|
||||||
ctrlCameraBody();
|
ctrlCameraBody();
|
||||||
|
ctrlDro();
|
||||||
|
ctrlX8();
|
||||||
|
ctrlHpa();
|
||||||
|
ctrlTx();
|
||||||
|
ctrlMpa();
|
||||||
|
ctrlScexBoard();
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t ThermalController::initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
|
ReturnValue_t ThermalController::initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
|
||||||
@ -953,9 +975,8 @@ void ThermalController::copyDevices() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ThermalController::ctrlAcsBoard() {}
|
||||||
void ThermalController::ctrlMgt() {
|
void ThermalController::ctrlMgt() {
|
||||||
float opLowerLimit = mgtLimits.opLowerLimit;
|
|
||||||
float cutOffLimit = mgtLimits.cutOffLimit;
|
|
||||||
heater::Switchers switchNr = heater::HEATER_2_ACS_BRD;
|
heater::Switchers switchNr = heater::HEATER_2_ACS_BRD;
|
||||||
heater::Switchers redSwitchNr = heater::HEATER_3_PCDU_PDU;
|
heater::Switchers redSwitchNr = heater::HEATER_3_PCDU_PDU;
|
||||||
|
|
||||||
@ -963,21 +984,70 @@ void ThermalController::ctrlMgt() {
|
|||||||
|
|
||||||
if (heaterAvailable) {
|
if (heaterAvailable) {
|
||||||
chooseSensor(switchNr, sensorTemperatures.sensor_magnettorquer.value,
|
chooseSensor(switchNr, sensorTemperatures.sensor_magnettorquer.value,
|
||||||
sensorTemperatures.sensor_magnettorquer.value,
|
deviceTemperatures.mgt.value,
|
||||||
sensorTemperatures.sensor_plpcdu_heatspreader.value,
|
sensorTemperatures.sensor_plpcdu_heatspreader.value,
|
||||||
sensorTemperatures.sensor_magnettorquer.isValid(),
|
sensorTemperatures.sensor_magnettorquer.isValid(),
|
||||||
sensorTemperatures.sensor_magnettorquer.isValid(),
|
deviceTemperatures.mgt.isValid(),
|
||||||
sensorTemperatures.sensor_plpcdu_heatspreader.isValid()); // TODO: int sensor
|
sensorTemperatures.sensor_plpcdu_heatspreader.isValid());
|
||||||
|
|
||||||
if (sensorTempAvailable) {
|
if (sensorTempAvailable) {
|
||||||
ctrlHeater(switchNr, redSwitchNr, opLowerLimit, cutOffLimit);
|
ctrlHeater(switchNr, redSwitchNr, &mgtLimits);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ThermalController::ctrlRw() {}
|
||||||
|
|
||||||
|
void ThermalController::ctrlStr() {
|
||||||
|
heater::Switchers switchNr = heater::HEATER_5_STR;
|
||||||
|
heater::Switchers redSwitchNr = heater::HEATER_6_DRO;
|
||||||
|
|
||||||
|
chooseHeater(switchNr, redSwitchNr);
|
||||||
|
|
||||||
|
if (heaterAvailable) {
|
||||||
|
chooseSensor(switchNr, sensorTemperatures.sensor_startracker.value,
|
||||||
|
deviceTemperatures.startracker.value,
|
||||||
|
sensorTemperatures.sensor_dro.value,
|
||||||
|
sensorTemperatures.sensor_startracker.isValid(),
|
||||||
|
deviceTemperatures.startracker.isValid(),
|
||||||
|
sensorTemperatures.sensor_dro.isValid());
|
||||||
|
|
||||||
|
if (sensorTempAvailable) {
|
||||||
|
ctrlHeater(switchNr, redSwitchNr, &strLimits);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void ThermalController::ctrlIfBoard() {
|
||||||
|
heater::Switchers switchNr = heater::HEATER_2_ACS_BRD;
|
||||||
|
heater::Switchers redSwitchNr = heater::HEATER_3_PCDU_PDU;
|
||||||
|
|
||||||
|
chooseHeater(switchNr, redSwitchNr);
|
||||||
|
|
||||||
|
if (heaterAvailable) {
|
||||||
|
chooseSensor(switchNr, sensorTemperatures.tmp1075IfBrd.value,
|
||||||
|
sensorTemperatures.sensor_magnettorquer.value,
|
||||||
|
deviceTemperatures.mgm2SideB.value,
|
||||||
|
sensorTemperatures.tmp1075IfBrd.isValid(),
|
||||||
|
sensorTemperatures.sensor_magnettorquer.isValid(),
|
||||||
|
deviceTemperatures.mgm2SideB.isValid());
|
||||||
|
|
||||||
|
if (sensorTempAvailable) {
|
||||||
|
ctrlHeater(switchNr, redSwitchNr, &ifBoardLimits);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void ThermalController::ctrlTcsBoard() {}
|
||||||
|
void ThermalController::ctrlObc() {}
|
||||||
|
void ThermalController::ctrlObcIfBoard() {}
|
||||||
|
void ThermalController::ctrlSBandTransceiver() {}
|
||||||
|
void ThermalController::ctrlPcduP60Board() {}
|
||||||
|
void ThermalController::ctrlPcduAcu() {}
|
||||||
|
void ThermalController::ctrlPcduPdu() {}
|
||||||
|
void ThermalController::ctrlPlPcduBoard() {}
|
||||||
|
void ThermalController::ctrlPlocMissionBoard() {}
|
||||||
|
void ThermalController::ctrlPlocProcessingBoard() {}
|
||||||
|
void ThermalController::ctrlDac() {}
|
||||||
void ThermalController::ctrlCameraBody() {
|
void ThermalController::ctrlCameraBody() {
|
||||||
// Camera Body
|
|
||||||
float opLowerLimit = cameraLimits.opLowerLimit;
|
|
||||||
float cutOffLimit = cameraLimits.cutOffLimit;
|
|
||||||
heater::Switchers switchNr = heater::HEATER_4_CAMERA;
|
heater::Switchers switchNr = heater::HEATER_4_CAMERA;
|
||||||
heater::Switchers redSwitchNr = heater::HEATER_6_DRO;
|
heater::Switchers redSwitchNr = heater::HEATER_6_DRO;
|
||||||
|
|
||||||
@ -990,27 +1060,33 @@ void ThermalController::ctrlCameraBody() {
|
|||||||
sensorTemperatures.sensor_dro.isValid(), sensorTemperatures.sensor_mpa.isValid());
|
sensorTemperatures.sensor_dro.isValid(), sensorTemperatures.sensor_mpa.isValid());
|
||||||
|
|
||||||
if (sensorTempAvailable) {
|
if (sensorTempAvailable) {
|
||||||
ctrlHeater(switchNr, redSwitchNr, opLowerLimit, cutOffLimit);
|
ctrlHeater(switchNr, redSwitchNr, &cameraLimits);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThermalController::ctrlHeater(heater::Switchers switchNr, heater::Switchers redSwitchNr,
|
void ThermalController::ctrlDro() {}
|
||||||
float opLowerLimit, float cutOffLimit) {
|
void ThermalController::ctrlX8() {}
|
||||||
|
void ThermalController::ctrlHpa() {}
|
||||||
|
void ThermalController::ctrlTx() {}
|
||||||
|
void ThermalController::ctrlMpa() {}
|
||||||
|
void ThermalController::ctrlScexBoard() {}
|
||||||
|
|
||||||
|
void ThermalController::ctrlHeater(heater::Switchers switchNr, heater::Switchers redSwitchNr, struct TempLimits *tempLimit) {
|
||||||
// Heater off
|
// Heater off
|
||||||
if (not heaterHandler.checkSwitchState(switchNr)) {
|
if (not heaterHandler.checkSwitchState(switchNr)) {
|
||||||
// TODO: check if OP or NOP
|
// TODO: check if OP or NOP
|
||||||
if (sensorTemp < opLowerLimit) {
|
if (sensorTemp < (*tempLimit).opLowerLimit) {
|
||||||
heaterHandler.switchHeater(switchNr, HeaterHandler::SwitchState::ON);
|
heaterHandler.switchHeater(switchNr, HeaterHandler::SwitchState::ON);
|
||||||
}
|
}
|
||||||
// Heater on
|
// Heater on
|
||||||
} else if (heaterHandler.checkSwitchState(switchNr)) {
|
} else if (heaterHandler.checkSwitchState(switchNr)) {
|
||||||
if (sensorTemp >= opLowerLimit + TEMP_OFFSET) {
|
if (sensorTemp >= (*tempLimit).opLowerLimit + TEMP_OFFSET) {
|
||||||
heaterHandler.switchHeater(switchNr, HeaterHandler::SwitchState::OFF);
|
heaterHandler.switchHeater(switchNr, HeaterHandler::SwitchState::OFF);
|
||||||
}
|
}
|
||||||
} else if (not redSwitchNrInUse) {
|
} else if (not redSwitchNrInUse) {
|
||||||
if (heaterHandler.checkSwitchState(redSwitchNr)) {
|
if (heaterHandler.checkSwitchState(redSwitchNr)) {
|
||||||
if (sensorTemp >= cutOffLimit) {
|
if (sensorTemp >= (*tempLimit).cutOffLimit) {
|
||||||
heaterHandler.switchHeater(redSwitchNr, HeaterHandler::SwitchState::OFF);
|
heaterHandler.switchHeater(redSwitchNr, HeaterHandler::SwitchState::OFF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1037,7 +1113,6 @@ void ThermalController::chooseHeater(heater::Switchers& switchNr, heater::Switch
|
|||||||
void ThermalController::chooseSensor(heater::Switchers switchNr, float sensorValue1,
|
void ThermalController::chooseSensor(heater::Switchers switchNr, float sensorValue1,
|
||||||
float sensorValue2, float sensorValue3, bool sensor1Valid,
|
float sensorValue2, float sensorValue3, bool sensor1Valid,
|
||||||
bool sensor2Valid, bool sensor3Valid) {
|
bool sensor2Valid, bool sensor3Valid) {
|
||||||
// Choose sensor
|
|
||||||
sensorTempAvailable = true;
|
sensorTempAvailable = true;
|
||||||
|
|
||||||
if (sensor1Valid) {
|
if (sensor1Valid) {
|
||||||
|
@ -154,8 +154,7 @@ class ThermalController : public ExtendedControllerBase {
|
|||||||
void copySus();
|
void copySus();
|
||||||
void copyDevices();
|
void copyDevices();
|
||||||
|
|
||||||
void ctrlHeater(heater::Switchers switchNr, heater::Switchers redSwitchNr, float opLowerLimit,
|
void ctrlHeater(heater::Switchers switchNr, heater::Switchers redSwitchNr, struct TempLimits *tempLimit);
|
||||||
float cutOffLimit);
|
|
||||||
void chooseHeater(heater::Switchers& switchNr, heater::Switchers redSwitchNr);
|
void chooseHeater(heater::Switchers& switchNr, heater::Switchers redSwitchNr);
|
||||||
void chooseSensor(heater::Switchers switchNr, float sensorValue1, float sensorValue2,
|
void chooseSensor(heater::Switchers switchNr, float sensorValue1, float sensorValue2,
|
||||||
float sensorValue3, bool sensor1Valid, bool sensor2Valid, bool sensor3Valid);
|
float sensorValue3, bool sensor1Valid, bool sensor2Valid, bool sensor3Valid);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user