Merge pull request 'TCS Ctrl Time Limit not for Heaters in External Control' (#878) from tcs-ctrl-ignores-ext-ctrl into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #878 Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
This commit is contained in:
commit
a9f5b6d2c7
@ -22,10 +22,18 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
- Added parameter to disable STR input for MEKF.
|
- Added parameter to disable STR input for MEKF.
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- If a primary heater is set to `EXTERNAL CONTROL` and `ON`, the `TCS Controller` will no
|
||||||
|
try to control the temperature of that object.
|
||||||
|
- Set lower OP limit of `PLOC` to -5°C.
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
|
||||||
- Added prevention of sign jump for target quaternion of GS pointing, which would reduce the
|
- Added prevention of sign jump for target quaternion of GS pointing, which would reduce the
|
||||||
performance of the controller.
|
performance of the controller.
|
||||||
|
- Heaters set to `EXTERNAL CONTROL` no longer can be switched off by the `TCS Controller`, if
|
||||||
|
they violate the maximum burn duration of the controller.
|
||||||
|
|
||||||
# [v7.7.2] 2024-03-06
|
# [v7.7.2] 2024-03-06
|
||||||
|
|
||||||
|
@ -1641,7 +1641,11 @@ bool ThermalController::chooseHeater(heater::Switch& switchNr, heater::Switch re
|
|||||||
bool heaterAvailable = true;
|
bool heaterAvailable = true;
|
||||||
|
|
||||||
HasHealthIF::HealthState mainHealth = heaterHandler.getHealth(switchNr);
|
HasHealthIF::HealthState mainHealth = heaterHandler.getHealth(switchNr);
|
||||||
|
heater::SwitchState mainState = heaterHandler.getSwitchState(switchNr);
|
||||||
HasHealthIF::HealthState redHealth = heaterHandler.getHealth(redSwitchNr);
|
HasHealthIF::HealthState redHealth = heaterHandler.getHealth(redSwitchNr);
|
||||||
|
if (mainHealth == HasHealthIF::EXTERNAL_CONTROL and mainState == heater::SwitchState::ON) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (mainHealth != HasHealthIF::HEALTHY) {
|
if (mainHealth != HasHealthIF::HEALTHY) {
|
||||||
if (redHealth == HasHealthIF::HEALTHY) {
|
if (redHealth == HasHealthIF::HEALTHY) {
|
||||||
switchNr = redSwitchNr;
|
switchNr = redSwitchNr;
|
||||||
@ -1656,6 +1660,7 @@ bool ThermalController::chooseHeater(heater::Switch& switchNr, heater::Switch re
|
|||||||
} else {
|
} else {
|
||||||
ctrlCtx.redSwitchNrInUse = false;
|
ctrlCtx.redSwitchNrInUse = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return heaterAvailable;
|
return heaterAvailable;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1792,7 +1797,8 @@ void ThermalController::heaterMaxDurationControl(
|
|||||||
for (unsigned i = 0; i < heater::Switch::NUMBER_OF_SWITCHES; i++) {
|
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
|
// Right now, we only track the maximum duration for heater which were commanded by the TCS
|
||||||
// controller.
|
// controller.
|
||||||
if (currentHeaterStates[i] == heater::SwitchState::ON and
|
if (heaterHandler.getHealth(static_cast<heater::Switch>(i)) != HasHealthIF::EXTERNAL_CONTROL and
|
||||||
|
currentHeaterStates[i] == heater::SwitchState::ON and
|
||||||
heaterStates[i].trackHeaterMaxBurnTime and
|
heaterStates[i].trackHeaterMaxBurnTime and
|
||||||
heaterStates[i].heaterOnMaxBurnTime.hasTimedOut()) {
|
heaterStates[i].heaterOnMaxBurnTime.hasTimedOut()) {
|
||||||
heaterStates[i].switchTransition = false;
|
heaterStates[i].switchTransition = false;
|
||||||
|
@ -197,9 +197,9 @@ class ThermalController : public ExtendedControllerBase {
|
|||||||
tcsCtrl::TempLimits pcduAcuLimits = tcsCtrl::TempLimits(-35.0, -35.0, 80.0, 85.0, 85.0);
|
tcsCtrl::TempLimits pcduAcuLimits = tcsCtrl::TempLimits(-35.0, -35.0, 80.0, 85.0, 85.0);
|
||||||
tcsCtrl::TempLimits pcduPduLimits = tcsCtrl::TempLimits(-35.0, -35.0, 80.0, 85.0, 85.0);
|
tcsCtrl::TempLimits pcduPduLimits = tcsCtrl::TempLimits(-35.0, -35.0, 80.0, 85.0, 85.0);
|
||||||
tcsCtrl::TempLimits plPcduBoardLimits = tcsCtrl::TempLimits(-55.0, -40.0, 80.0, 85.0, 125.0);
|
tcsCtrl::TempLimits plPcduBoardLimits = tcsCtrl::TempLimits(-55.0, -40.0, 80.0, 85.0, 125.0);
|
||||||
tcsCtrl::TempLimits plocMissionBoardLimits = tcsCtrl::TempLimits(-30.0, -10.0, 40.0, 45.0, 60);
|
tcsCtrl::TempLimits plocMissionBoardLimits = tcsCtrl::TempLimits(-30.0, -5.0, 40.0, 45.0, 60);
|
||||||
tcsCtrl::TempLimits plocProcessingBoardLimits =
|
tcsCtrl::TempLimits plocProcessingBoardLimits =
|
||||||
tcsCtrl::TempLimits(-30.0, -10.0, 40.0, 45.0, 60.0);
|
tcsCtrl::TempLimits(-30.0, -5.0, 40.0, 45.0, 60.0);
|
||||||
tcsCtrl::TempLimits dacLimits = tcsCtrl::TempLimits(-65.0, -40.0, 113.0, 118.0, 150.0);
|
tcsCtrl::TempLimits dacLimits = tcsCtrl::TempLimits(-65.0, -40.0, 113.0, 118.0, 150.0);
|
||||||
tcsCtrl::TempLimits cameraLimits = tcsCtrl::TempLimits(-40.0, -30.0, 60.0, 65.0, 85.0);
|
tcsCtrl::TempLimits cameraLimits = tcsCtrl::TempLimits(-40.0, -30.0, 60.0, 65.0, 85.0);
|
||||||
tcsCtrl::TempLimits droLimits = tcsCtrl::TempLimits(-40.0, -30.0, 75.0, 80.0, 90.0);
|
tcsCtrl::TempLimits droLimits = tcsCtrl::TempLimits(-40.0, -30.0, 75.0, 80.0, 90.0);
|
||||||
|
Loading…
Reference in New Issue
Block a user