most temps should be valid now
EIVE/eive-obsw/pipeline/pr-develop This commit looks good Details

This commit is contained in:
Robin Müller 2023-03-15 15:00:06 +01:00
parent a92fa31cb5
commit da7c450e06
No known key found for this signature in database
GPG Key ID: 71B58F8A3CDFA9AC
4 changed files with 65 additions and 66 deletions

View File

@ -30,7 +30,8 @@ ReturnValue_t Max31865Dummy::initializeLocalDataPool(localpool::DataPool &localD
LocalDataPoolManager &poolManager) {
using namespace MAX31865;
localDataPoolMap.emplace(static_cast<lp_id_t>(PoolIds::RTD_VALUE), new PoolEntry<float>({0}));
localDataPoolMap.emplace(static_cast<lp_id_t>(PoolIds::TEMPERATURE_C), new PoolEntry<float>({0}));
localDataPoolMap.emplace(static_cast<lp_id_t>(PoolIds::TEMPERATURE_C),
new PoolEntry<float>({10.0}, true));
localDataPoolMap.emplace(static_cast<lp_id_t>(PoolIds::LAST_FAULT_BYTE),
new PoolEntry<uint8_t>({0}));
localDataPoolMap.emplace(static_cast<lp_id_t>(PoolIds::FAULT_BYTE), new PoolEntry<uint8_t>({0}));

View File

@ -36,7 +36,7 @@ void Tmp1075Dummy::fillCommandAndReplyMap() {}
uint32_t Tmp1075Dummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 1000; }
ReturnValue_t Tmp1075Dummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
LocalDataPoolManager &poolManager) {
localDataPoolMap.emplace(TMP1075::TEMPERATURE_C_TMP1075, new PoolEntry<float>({0.0}));
localDataPoolMap.emplace(TMP1075::TEMPERATURE_C_TMP1075, new PoolEntry<float>({10.0}, true));
return OK;
}
LocalPoolDataSetBase *Tmp1075Dummy::getDataSetHandle(sid_t sid) { return &set; }

View File

@ -341,10 +341,10 @@ void ThermalController::copySensors() {
{
PoolReadGuard pg8(&maxSet8X8, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
if (pg8.getReadResult() == returnvalue::OK) {
sensorTemperatures.sensor_x8.value = maxSet8X8.temperatureCelcius.value;
sensorTemperatures.sensor_x8.setValid(maxSet8X8.temperatureCelcius.isValid());
if (not sensorTemperatures.sensor_x8.isValid()) {
sensorTemperatures.sensor_x8.value = INVALID_TEMPERATURE;
sensorTemperatures.x8.value = maxSet8X8.temperatureCelcius.value;
sensorTemperatures.x8.setValid(maxSet8X8.temperatureCelcius.isValid());
if (not sensorTemperatures.x8.isValid()) {
sensorTemperatures.x8.value = INVALID_TEMPERATURE;
}
}
}
@ -352,10 +352,10 @@ void ThermalController::copySensors() {
{
PoolReadGuard pg9(&maxSet9Hpa, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
if (pg9.getReadResult() == returnvalue::OK) {
sensorTemperatures.sensor_hpa.value = maxSet9Hpa.temperatureCelcius.value;
sensorTemperatures.sensor_hpa.setValid(maxSet9Hpa.temperatureCelcius.isValid());
if (not sensorTemperatures.sensor_hpa.isValid()) {
sensorTemperatures.sensor_hpa.value = INVALID_TEMPERATURE;
sensorTemperatures.hpa.value = maxSet9Hpa.temperatureCelcius.value;
sensorTemperatures.hpa.setValid(maxSet9Hpa.temperatureCelcius.isValid());
if (not sensorTemperatures.hpa.isValid()) {
sensorTemperatures.hpa.value = INVALID_TEMPERATURE;
}
}
}
@ -385,10 +385,10 @@ void ThermalController::copySensors() {
{
PoolReadGuard pg12(&maxSet31865Set12, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
if (pg12.getReadResult() == returnvalue::OK) {
sensorTemperatures.sensor_acu.value = maxSet31865Set12.temperatureCelcius.value;
sensorTemperatures.sensor_acu.setValid(maxSet31865Set12.temperatureCelcius.isValid());
if (not sensorTemperatures.sensor_acu.isValid()) {
sensorTemperatures.sensor_acu.value = INVALID_TEMPERATURE;
sensorTemperatures.acu.value = maxSet31865Set12.temperatureCelcius.value;
sensorTemperatures.acu.setValid(maxSet31865Set12.temperatureCelcius.isValid());
if (not sensorTemperatures.acu.isValid()) {
sensorTemperatures.acu.value = INVALID_TEMPERATURE;
}
}
}
@ -396,12 +396,11 @@ void ThermalController::copySensors() {
{
PoolReadGuard pg13(&maxSet13PlPcduHspd, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
if (pg13.getReadResult() == returnvalue::OK) {
sensorTemperatures.sensor_plpcdu_heatspreader.value =
maxSet13PlPcduHspd.temperatureCelcius.value;
sensorTemperatures.sensor_plpcdu_heatspreader.setValid(
sensorTemperatures.plpcduHeatspreader.value = maxSet13PlPcduHspd.temperatureCelcius.value;
sensorTemperatures.plpcduHeatspreader.setValid(
maxSet13PlPcduHspd.temperatureCelcius.isValid());
if (not sensorTemperatures.sensor_plpcdu_heatspreader.isValid()) {
sensorTemperatures.sensor_plpcdu_heatspreader.value = INVALID_TEMPERATURE;
if (not sensorTemperatures.plpcduHeatspreader.isValid()) {
sensorTemperatures.plpcduHeatspreader.value = INVALID_TEMPERATURE;
}
}
}
@ -409,10 +408,10 @@ void ThermalController::copySensors() {
{
PoolReadGuard pg14(&maxSet14TcsBrd, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
if (pg14.getReadResult() == returnvalue::OK) {
sensorTemperatures.sensor_tcs_board.value = maxSet14TcsBrd.temperatureCelcius.value;
sensorTemperatures.sensor_tcs_board.setValid(maxSet14TcsBrd.temperatureCelcius.isValid());
if (not sensorTemperatures.sensor_tcs_board.isValid()) {
sensorTemperatures.sensor_tcs_board.value = INVALID_TEMPERATURE;
sensorTemperatures.tcsBoard.value = maxSet14TcsBrd.temperatureCelcius.value;
sensorTemperatures.tcsBoard.setValid(maxSet14TcsBrd.temperatureCelcius.isValid());
if (not sensorTemperatures.tcsBoard.isValid()) {
sensorTemperatures.tcsBoard.value = INVALID_TEMPERATURE;
}
}
}
@ -420,10 +419,10 @@ void ThermalController::copySensors() {
{
PoolReadGuard pg15(&maxSet15Imtq, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
if (pg15.getReadResult() == returnvalue::OK) {
sensorTemperatures.sensor_magnettorquer.value = maxSet15Imtq.temperatureCelcius.value;
sensorTemperatures.sensor_magnettorquer.setValid(maxSet15Imtq.temperatureCelcius.isValid());
if (not sensorTemperatures.sensor_magnettorquer.isValid()) {
sensorTemperatures.sensor_magnettorquer.value = INVALID_TEMPERATURE;
sensorTemperatures.mgt.value = maxSet15Imtq.temperatureCelcius.value;
sensorTemperatures.mgt.setValid(maxSet15Imtq.temperatureCelcius.isValid());
if (not sensorTemperatures.mgt.isValid()) {
sensorTemperatures.mgt.value = INVALID_TEMPERATURE;
}
}
}
@ -977,8 +976,8 @@ void ThermalController::ctrlAcsBoard() {
sensors[2].second = deviceTemperatures.mgm0SideA.value;
sensors[3].first = deviceTemperatures.mgm2SideB.isValid();
sensors[3].second = deviceTemperatures.mgm2SideB.value;
sensors[4].first = sensorTemperatures.sensor_tcs_board.isValid();
sensors[5].second = sensorTemperatures.sensor_tcs_board.value;
sensors[4].first = sensorTemperatures.tcsBoard.isValid();
sensors[5].second = sensorTemperatures.tcsBoard.value;
numSensors = 5;
if (selectAndReadSensorTemp()) {
if (chooseHeater(switchNr, redSwitchNr)) {
@ -995,8 +994,8 @@ void ThermalController::ctrlAcsBoard() {
sensors[1].second = deviceTemperatures.mgm2SideB.value;
sensors[2].first = deviceTemperatures.gyro3SideB.isValid();
sensors[2].second = deviceTemperatures.gyro3SideB.value;
sensors[3].first = sensorTemperatures.sensor_tcs_board.isValid();
sensors[3].second = sensorTemperatures.sensor_tcs_board.value;
sensors[3].first = sensorTemperatures.tcsBoard.isValid();
sensors[3].second = sensorTemperatures.tcsBoard.value;
numSensors = 4;
if (selectAndReadSensorTemp()) {
if (chooseHeater(switchNr, redSwitchNr)) {
@ -1021,12 +1020,12 @@ void ThermalController::ctrlMgt() {
static_cast<ThermalComponentIF::StateRequest>(imtqThermalSet.heaterRequest.value);
if (heaterReq == ThermalComponentIF::STATE_REQUEST_OPERATIONAL) {
sensors[0].first = sensorTemperatures.sensor_magnettorquer.isValid();
sensors[0].second = sensorTemperatures.sensor_magnettorquer.value;
sensors[0].first = sensorTemperatures.mgt.isValid();
sensors[0].second = sensorTemperatures.mgt.value;
sensors[1].first = deviceTemperatures.mgt.isValid();
sensors[1].second = deviceTemperatures.mgt.value;
sensors[2].first = sensorTemperatures.sensor_plpcdu_heatspreader.isValid();
sensors[2].second = sensorTemperatures.sensor_plpcdu_heatspreader.value;
sensors[2].first = sensorTemperatures.plpcduHeatspreader.isValid();
sensors[2].second = sensorTemperatures.plpcduHeatspreader.value;
numSensors = 3;
ctrlComponentTemperature(heater::HEATER_2_ACS_BRD, heater::HEATER_3_PCDU_PDU, mgtLimits);
}
@ -1144,8 +1143,8 @@ void ThermalController::ctrlIfBoard() {
thermalComponent = IF_BOARD;
sensors[0].first = sensorTemperatures.tmp1075IfBrd.isValid();
sensors[0].second = sensorTemperatures.tmp1075IfBrd.value;
sensors[1].first = sensorTemperatures.sensor_magnettorquer.isValid();
sensors[1].second = sensorTemperatures.sensor_magnettorquer.value;
sensors[1].first = sensorTemperatures.mgt.isValid();
sensors[1].second = sensorTemperatures.mgt.value;
sensors[2].first = deviceTemperatures.mgm2SideB.isValid();
sensors[2].second = deviceTemperatures.mgm2SideB.value;
numSensors = 3;
@ -1155,8 +1154,8 @@ void ThermalController::ctrlIfBoard() {
void ThermalController::ctrlTcsBoard() {
thermalComponent = TCS_BOARD;
sensors[0].first = sensorTemperatures.sensor_tcs_board.isValid();
sensors[0].second = sensorTemperatures.sensor_tcs_board.value;
sensors[0].first = sensorTemperatures.tcsBoard.isValid();
sensors[0].second = sensorTemperatures.tcsBoard.value;
sensors[1].first = sensorTemperatures.tmp1075Tcs0.isValid();
sensors[1].second = sensorTemperatures.tmp1075Tcs0.value;
sensors[2].first = sensorTemperatures.tmp1075Tcs1.isValid();
@ -1250,8 +1249,8 @@ void ThermalController::ctrlPcduAcu() {
sensorTemp = deviceTemperatures.acu.value[1];
} else if (deviceTemperatures.acu.value[2] != INVALID_TEMPERATURE) {
sensorTemp = deviceTemperatures.acu.value[2];
} else if (sensorTemperatures.sensor_acu.isValid()) {
sensorTemp = sensorTemperatures.sensor_acu.value;
} else if (sensorTemperatures.acu.isValid()) {
sensorTemp = sensorTemperatures.acu.value;
} else {
triggerEvent(tcsCtrl::NO_VALID_SENSOR_TEMPERATURE, thermalComponent);
sensorTempAvailable = false;
@ -1294,8 +1293,8 @@ void ThermalController::ctrlPlPcduBoard() {
sensors[1].second = sensorTemperatures.tmp1075PlPcdu1.value;
sensors[2].first = deviceTemperatures.adcPayloadPcdu.isValid();
sensors[2].second = deviceTemperatures.adcPayloadPcdu.value;
sensors[3].first = sensorTemperatures.sensor_plpcdu_heatspreader.isValid();
sensors[3].second = sensorTemperatures.sensor_plpcdu_heatspreader.value;
sensors[3].first = sensorTemperatures.plpcduHeatspreader.isValid();
sensors[3].second = sensorTemperatures.plpcduHeatspreader.value;
numSensors = 4;
ctrlComponentTemperature(heater::HEATER_3_PCDU_PDU, heater::HEATER_2_ACS_BRD, plPcduBoardLimits);
tooHotHandler(objects::PLPCDU_HANDLER, eBandTooHotFlag);
@ -1382,10 +1381,10 @@ void ThermalController::ctrlDro() {
void ThermalController::ctrlX8() {
thermalComponent = X8;
sensors[0].first = sensorTemperatures.sensor_x8.isValid();
sensors[0].second = sensorTemperatures.sensor_x8.value;
sensors[1].first = sensorTemperatures.sensor_hpa.isValid();
sensors[1].second = sensorTemperatures.sensor_hpa.value;
sensors[0].first = sensorTemperatures.x8.isValid();
sensors[0].second = sensorTemperatures.x8.value;
sensors[1].first = sensorTemperatures.hpa.isValid();
sensors[1].second = sensorTemperatures.hpa.value;
sensors[2].first = sensorTemperatures.eBandTx.isValid();
sensors[2].second = sensorTemperatures.eBandTx.value;
numSensors = 3;
@ -1397,8 +1396,8 @@ void ThermalController::ctrlTx() {
thermalComponent = TX;
sensors[0].first = sensorTemperatures.eBandTx.isValid();
sensors[0].second = sensorTemperatures.eBandTx.value;
sensors[1].first = sensorTemperatures.sensor_x8.isValid();
sensors[1].second = sensorTemperatures.sensor_x8.value;
sensors[1].first = sensorTemperatures.x8.isValid();
sensors[1].second = sensorTemperatures.x8.value;
sensors[2].first = sensorTemperatures.mpa.isValid();
sensors[2].second = sensorTemperatures.mpa.value;
numSensors = 3;
@ -1410,8 +1409,8 @@ void ThermalController::ctrlMpa() {
thermalComponent = MPA;
sensors[0].first = sensorTemperatures.mpa.isValid();
sensors[0].second = sensorTemperatures.mpa.value;
sensors[1].first = sensorTemperatures.sensor_hpa.isValid();
sensors[1].second = sensorTemperatures.sensor_hpa.value;
sensors[1].first = sensorTemperatures.hpa.isValid();
sensors[1].second = sensorTemperatures.hpa.value;
sensors[2].first = sensorTemperatures.eBandTx.isValid();
sensors[2].second = sensorTemperatures.eBandTx.value;
numSensors = 3;
@ -1421,10 +1420,10 @@ void ThermalController::ctrlMpa() {
void ThermalController::ctrlHpa() {
thermalComponent = HPA;
sensors[0].first = sensorTemperatures.sensor_hpa.isValid();
sensors[0].second = sensorTemperatures.sensor_hpa.value;
sensors[1].first = sensorTemperatures.sensor_x8.isValid();
sensors[1].second = sensorTemperatures.sensor_x8.value;
sensors[0].first = sensorTemperatures.hpa.isValid();
sensors[0].second = sensorTemperatures.hpa.value;
sensors[1].first = sensorTemperatures.x8.isValid();
sensors[1].second = sensorTemperatures.x8.value;
sensors[2].first = sensorTemperatures.mpa.isValid();
sensors[2].second = sensorTemperatures.mpa.value;
numSensors = 3;
@ -1436,10 +1435,10 @@ void ThermalController::ctrlScexBoard() {
thermalComponent = SCEX_BOARD;
sensors[0].first = sensorTemperatures.scex.isValid();
sensors[0].second = sensorTemperatures.scex.value;
sensors[1].first = sensorTemperatures.sensor_x8.isValid();
sensors[1].second = sensorTemperatures.sensor_x8.value;
sensors[2].first = sensorTemperatures.sensor_hpa.isValid();
sensors[2].second = sensorTemperatures.sensor_hpa.value;
sensors[1].first = sensorTemperatures.x8.isValid();
sensors[1].second = sensorTemperatures.x8.value;
sensors[2].first = sensorTemperatures.hpa.isValid();
sensors[2].second = sensorTemperatures.hpa.value;
numSensors = 3;
ctrlComponentTemperature(heater::HEATER_6_DRO, heater::HEATER_5_STR, scexBoardLimits);
tooHotHandler(objects::SCEX, scexTooHotFlag);

View File

@ -122,14 +122,13 @@ class SensorTemperatures : public StaticLocalDataSet<ENTRIES_SENSOR_TEMPERATURE_
// E-Band module
lp_var_t<float> dro = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_DRO, this);
lp_var_t<float> mpa = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_MPA, this);
lp_var_t<float> sensor_x8 = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_X8, this);
lp_var_t<float> sensor_hpa = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_HPA, this);
lp_var_t<float> sensor_acu = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_ACU, this);
lp_var_t<float> sensor_plpcdu_heatspreader =
lp_var_t<float> x8 = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_X8, this);
lp_var_t<float> hpa = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_HPA, this);
lp_var_t<float> acu = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_ACU, this);
lp_var_t<float> plpcduHeatspreader =
lp_var_t<float>(sid.objectId, PoolIds::SENSOR_PLPCDU_HEATSPREADER, this);
lp_var_t<float> sensor_tcs_board = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TCS_BOARD, this);
lp_var_t<float> sensor_magnettorquer =
lp_var_t<float>(sid.objectId, PoolIds::SENSOR_MAGNETTORQUER, this);
lp_var_t<float> tcsBoard = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TCS_BOARD, this);
lp_var_t<float> mgt = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_MAGNETTORQUER, this);
lp_var_t<float> tmp1075Tcs0 = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TMP1075_TCS_0, this);
lp_var_t<float> tmp1075Tcs1 = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TMP1075_TCS_1, this);
lp_var_t<float> tmp1075PlPcdu0 =