From a92fa31cb5eb7ebae501f0b47c7673b7e28336c5 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 15 Mar 2023 14:56:26 +0100 Subject: [PATCH] better variable names, tweaks for less init events --- dummies/GyroAdisDummy.cpp | 2 +- dummies/MgmLIS3MDLDummy.cpp | 2 +- dummies/StarTrackerDummy.cpp | 2 +- mission/controller/ThermalController.cpp | 337 +++++++++--------- mission/controller/ThermalController.h | 32 +- .../controllerdefinitions/tcsCtrlDefs.h | 21 +- 6 files changed, 203 insertions(+), 193 deletions(-) diff --git a/dummies/GyroAdisDummy.cpp b/dummies/GyroAdisDummy.cpp index c7c40a1a..9be4747c 100644 --- a/dummies/GyroAdisDummy.cpp +++ b/dummies/GyroAdisDummy.cpp @@ -46,7 +46,7 @@ ReturnValue_t GyroAdisDummy::initializeLocalDataPool(localpool::DataPool &localD localDataPoolMap.emplace(adis1650x::ACCELERATION_X, new PoolEntry({0.0})); localDataPoolMap.emplace(adis1650x::ACCELERATION_Y, new PoolEntry({0.0})); localDataPoolMap.emplace(adis1650x::ACCELERATION_Z, new PoolEntry({0.0})); - localDataPoolMap.emplace(adis1650x::TEMPERATURE, new PoolEntry({0.0})); + localDataPoolMap.emplace(adis1650x::TEMPERATURE, new PoolEntry({10.0}, true)); return returnvalue::OK; } diff --git a/dummies/MgmLIS3MDLDummy.cpp b/dummies/MgmLIS3MDLDummy.cpp index 0ce9a520..03b163fc 100644 --- a/dummies/MgmLIS3MDLDummy.cpp +++ b/dummies/MgmLIS3MDLDummy.cpp @@ -40,7 +40,7 @@ uint32_t MgmLIS3MDLDummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { ReturnValue_t MgmLIS3MDLDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) { - localDataPoolMap.emplace(mgmLis3::TEMPERATURE_CELCIUS, new PoolEntry({0.0})); + localDataPoolMap.emplace(mgmLis3::TEMPERATURE_CELCIUS, new PoolEntry({10.0}, true)); localDataPoolMap.emplace(mgmLis3::FIELD_STRENGTHS, new PoolEntry({1.02, 0.56, -0.78}, true)); return returnvalue::OK; diff --git a/dummies/StarTrackerDummy.cpp b/dummies/StarTrackerDummy.cpp index 71f0030c..2f12367c 100644 --- a/dummies/StarTrackerDummy.cpp +++ b/dummies/StarTrackerDummy.cpp @@ -40,7 +40,7 @@ uint32_t StarTrackerDummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) ReturnValue_t StarTrackerDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) { - localDataPoolMap.emplace(startracker::MCU_TEMPERATURE, new PoolEntry({0})); + localDataPoolMap.emplace(startracker::MCU_TEMPERATURE, new PoolEntry({10.0}, true)); localDataPoolMap.emplace(startracker::TICKS_SOLUTION_SET, new PoolEntry({0})); localDataPoolMap.emplace(startracker::TIME_SOLUTION_SET, new PoolEntry({0})); diff --git a/mission/controller/ThermalController.cpp b/mission/controller/ThermalController.cpp index e0630309..a30ac08f 100644 --- a/mission/controller/ThermalController.cpp +++ b/mission/controller/ThermalController.cpp @@ -16,6 +16,8 @@ #include #include +#define LOWER_SYRLINKS_UPPER_LIMITS 0 + ThermalController::ThermalController(object_id_t objectId, HeaterHandler& heater) : ExtendedControllerBase(objectId), heaterHandler(heater), @@ -24,25 +26,26 @@ ThermalController::ThermalController(object_id_t objectId, HeaterHandler& heater deviceTemperatures(this), heaterInfo(this), imtqThermalSet(objects::IMTQ_HANDLER, ThermalStateCfg()), - max31865Set0(objects::RTD_0_IC3_PLOC_HEATSPREADER, - EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set1(objects::RTD_1_IC4_PLOC_MISSIONBOARD, - EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set2(objects::RTD_2_IC5_4K_CAMERA, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set3(objects::RTD_3_IC6_DAC_HEATSPREADER, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set4(objects::RTD_4_IC7_STARTRACKER, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set5(objects::RTD_5_IC8_RW1_MX_MY, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set6(objects::RTD_6_IC9_DRO, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set7(objects::RTD_7_IC10_SCEX, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set8(objects::RTD_8_IC11_X8, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set9(objects::RTD_9_IC12_HPA, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set10(objects::RTD_10_IC13_PL_TX, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set11(objects::RTD_11_IC14_MPA, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set12(objects::RTD_12_IC15_ACU, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set13(objects::RTD_13_IC16_PLPCDU_HEATSPREADER, - EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set14(objects::RTD_14_IC17_TCS_BOARD, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), - max31865Set15(objects::RTD_15_IC18_IMTQ, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet1PlocHspd(objects::RTD_0_IC3_PLOC_HEATSPREADER, + EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet0PlocMissionBrd(objects::RTD_1_IC4_PLOC_MISSIONBOARD, + EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet2PlCam(objects::RTD_2_IC5_4K_CAMERA, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet3DacHspd(objects::RTD_3_IC6_DAC_HEATSPREADER, + EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet4Str(objects::RTD_4_IC7_STARTRACKER, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet5Rw1MxMy(objects::RTD_5_IC8_RW1_MX_MY, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet6Dro(objects::RTD_6_IC9_DRO, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet7Scex(objects::RTD_7_IC10_SCEX, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet8X8(objects::RTD_8_IC11_X8, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet9Hpa(objects::RTD_9_IC12_HPA, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet10EbandTx(objects::RTD_10_IC13_PL_TX, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet11Mpa(objects::RTD_11_IC14_MPA, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet31865Set12(objects::RTD_12_IC15_ACU, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet13PlPcduHspd(objects::RTD_13_IC16_PLPCDU_HEATSPREADER, + EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet14TcsBrd(objects::RTD_14_IC17_TCS_BOARD, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), + maxSet15Imtq(objects::RTD_15_IC18_IMTQ, EiveMax31855::RtdCommands::EXCHANGE_SET_ID), tmp1075SetTcs0(objects::TMP1075_HANDLER_TCS_0), tmp1075SetTcs1(objects::TMP1075_HANDLER_TCS_1), tmp1075SetPlPcdu0(objects::TMP1075_HANDLER_PLPCDU_0), @@ -62,6 +65,12 @@ ThermalController::ThermalController(object_id_t objectId, HeaterHandler& heater susSet10(objects::SUS_10_N_LOC_XMYBZF_PT_ZF), susSet11(objects::SUS_11_R_LOC_XBYMZB_PT_ZB) { resetSensorsArray(); + +#if LOWER_SYRLINKS_UPPER_LIMITS == 1 + sBandTransceiverLimits.cutOffLimit = 0; + sBandTransceiverLimits.opUpperLimit = 0; + sBandTransceiverLimits.nopUpperLimit = 0; +#endif } ReturnValue_t ThermalController::initialize() { @@ -241,101 +250,99 @@ ReturnValue_t ThermalController::checkModeCommand(Mode_t mode, Submode_t submode void ThermalController::copySensors() { { - PoolReadGuard pg0(&max31865Set0, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg0(&maxSet1PlocHspd, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg0.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_ploc_heatspreader.value = max31865Set0.temperatureCelcius.value; - sensorTemperatures.sensor_ploc_heatspreader.setValid( - max31865Set0.temperatureCelcius.isValid()); - if (not sensorTemperatures.sensor_ploc_heatspreader.isValid()) { - sensorTemperatures.sensor_ploc_heatspreader.value = INVALID_TEMPERATURE; + sensorTemperatures.plocHeatspreader.value = maxSet1PlocHspd.temperatureCelcius.value; + sensorTemperatures.plocHeatspreader.setValid(maxSet1PlocHspd.temperatureCelcius.isValid()); + if (not sensorTemperatures.plocHeatspreader.isValid()) { + sensorTemperatures.plocHeatspreader.value = INVALID_TEMPERATURE; } } } { - PoolReadGuard pg1(&max31865Set1, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg1(&maxSet0PlocMissionBrd, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg1.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_ploc_missionboard.value = max31865Set1.temperatureCelcius.value; - sensorTemperatures.sensor_ploc_missionboard.setValid( - max31865Set1.temperatureCelcius.isValid()); - if (not sensorTemperatures.sensor_ploc_missionboard.isValid()) { - sensorTemperatures.sensor_ploc_missionboard.value = INVALID_TEMPERATURE; + sensorTemperatures.plocMissionboard.value = maxSet0PlocMissionBrd.temperatureCelcius.value; + sensorTemperatures.plocMissionboard.setValid( + maxSet0PlocMissionBrd.temperatureCelcius.isValid()); + if (not sensorTemperatures.plocMissionboard.isValid()) { + sensorTemperatures.plocMissionboard.value = INVALID_TEMPERATURE; } } } { - PoolReadGuard pg2(&max31865Set2, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg2(&maxSet2PlCam, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg2.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_4k_camera.value = max31865Set2.temperatureCelcius.value; - sensorTemperatures.sensor_4k_camera.setValid(max31865Set2.temperatureCelcius.isValid()); - if (not sensorTemperatures.sensor_4k_camera.isValid()) { - sensorTemperatures.sensor_4k_camera.value = INVALID_TEMPERATURE; + sensorTemperatures.payload4kCamera.value = maxSet2PlCam.temperatureCelcius.value; + sensorTemperatures.payload4kCamera.setValid(maxSet2PlCam.temperatureCelcius.isValid()); + if (not sensorTemperatures.payload4kCamera.isValid()) { + sensorTemperatures.payload4kCamera.value = INVALID_TEMPERATURE; } } } { - PoolReadGuard pg3(&max31865Set3, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg3(&maxSet3DacHspd, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg3.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_dac_heatspreader.value = max31865Set3.temperatureCelcius.value; - sensorTemperatures.sensor_dac_heatspreader.setValid( - max31865Set3.temperatureCelcius.isValid()); - if (not sensorTemperatures.sensor_dac_heatspreader.isValid()) { - sensorTemperatures.sensor_dac_heatspreader.value = INVALID_TEMPERATURE; + sensorTemperatures.dacHeatspreader.value = maxSet3DacHspd.temperatureCelcius.value; + sensorTemperatures.dacHeatspreader.setValid(maxSet3DacHspd.temperatureCelcius.isValid()); + if (not sensorTemperatures.dacHeatspreader.isValid()) { + sensorTemperatures.dacHeatspreader.value = INVALID_TEMPERATURE; } } } { - PoolReadGuard pg4(&max31865Set4, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg4(&maxSet4Str, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg4.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_startracker.value = max31865Set4.temperatureCelcius.value; - sensorTemperatures.sensor_startracker.setValid(max31865Set4.temperatureCelcius.isValid()); - if (not sensorTemperatures.sensor_startracker.isValid()) { - sensorTemperatures.sensor_startracker.value = INVALID_TEMPERATURE; + sensorTemperatures.startracker.value = maxSet4Str.temperatureCelcius.value; + sensorTemperatures.startracker.setValid(maxSet4Str.temperatureCelcius.isValid()); + if (not sensorTemperatures.startracker.isValid()) { + sensorTemperatures.startracker.value = INVALID_TEMPERATURE; } } } { - PoolReadGuard pg5(&max31865Set5, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg5(&maxSet5Rw1MxMy, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg5.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_rw1.value = max31865Set5.temperatureCelcius.value; - sensorTemperatures.sensor_rw1.setValid(max31865Set5.temperatureCelcius.isValid()); - if (not sensorTemperatures.sensor_rw1.isValid()) { - sensorTemperatures.sensor_rw1.value = INVALID_TEMPERATURE; + sensorTemperatures.rw1.value = maxSet5Rw1MxMy.temperatureCelcius.value; + sensorTemperatures.rw1.setValid(maxSet5Rw1MxMy.temperatureCelcius.isValid()); + if (not sensorTemperatures.rw1.isValid()) { + sensorTemperatures.rw1.value = INVALID_TEMPERATURE; } } } { - PoolReadGuard pg6(&max31865Set6, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg6(&maxSet6Dro, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg6.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_dro.value = max31865Set6.temperatureCelcius.value; - sensorTemperatures.sensor_dro.setValid(max31865Set6.temperatureCelcius.isValid()); - if (not sensorTemperatures.sensor_dro.isValid()) { - sensorTemperatures.sensor_dro.value = INVALID_TEMPERATURE; + sensorTemperatures.dro.value = maxSet6Dro.temperatureCelcius.value; + sensorTemperatures.dro.setValid(maxSet6Dro.temperatureCelcius.isValid()); + if (not sensorTemperatures.dro.isValid()) { + sensorTemperatures.dro.value = INVALID_TEMPERATURE; } } } { - PoolReadGuard pg7(&max31865Set7, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg7(&maxSet7Scex, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg7.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_scex.value = max31865Set7.temperatureCelcius.value; - sensorTemperatures.sensor_scex.setValid(max31865Set7.temperatureCelcius.isValid()); - if (not sensorTemperatures.sensor_scex.isValid()) { - sensorTemperatures.sensor_scex.value = INVALID_TEMPERATURE; + sensorTemperatures.scex.value = maxSet7Scex.temperatureCelcius.value; + sensorTemperatures.scex.setValid(maxSet7Scex.temperatureCelcius.isValid()); + if (not sensorTemperatures.scex.isValid()) { + sensorTemperatures.scex.value = INVALID_TEMPERATURE; } } } { - PoolReadGuard pg8(&max31865Set8, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg8(&maxSet8X8, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg8.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_x8.value = max31865Set8.temperatureCelcius.value; - sensorTemperatures.sensor_x8.setValid(max31865Set8.temperatureCelcius.isValid()); + 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; } @@ -343,10 +350,10 @@ void ThermalController::copySensors() { } { - PoolReadGuard pg9(&max31865Set9, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg9(&maxSet9Hpa, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg9.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_hpa.value = max31865Set9.temperatureCelcius.value; - sensorTemperatures.sensor_hpa.setValid(max31865Set9.temperatureCelcius.isValid()); + 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; } @@ -354,32 +361,32 @@ void ThermalController::copySensors() { } { - PoolReadGuard pg10(&max31865Set10, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg10(&maxSet10EbandTx, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg10.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_tx_modul.value = max31865Set10.temperatureCelcius.value; - sensorTemperatures.sensor_tx_modul.setValid(max31865Set10.temperatureCelcius.isValid()); - if (not sensorTemperatures.sensor_tx_modul.isValid()) { - sensorTemperatures.sensor_tx_modul.value = INVALID_TEMPERATURE; + sensorTemperatures.eBandTx.value = maxSet10EbandTx.temperatureCelcius.value; + sensorTemperatures.eBandTx.setValid(maxSet10EbandTx.temperatureCelcius.isValid()); + if (not sensorTemperatures.eBandTx.isValid()) { + sensorTemperatures.eBandTx.value = INVALID_TEMPERATURE; } } } { - PoolReadGuard pg11(&max31865Set11, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg11(&maxSet11Mpa, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg11.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_mpa.value = max31865Set11.temperatureCelcius.value; - sensorTemperatures.sensor_mpa.setValid(max31865Set11.temperatureCelcius.isValid()); - if (not sensorTemperatures.sensor_mpa.isValid()) { - sensorTemperatures.sensor_mpa.value = INVALID_TEMPERATURE; + sensorTemperatures.mpa.value = maxSet11Mpa.temperatureCelcius.value; + sensorTemperatures.mpa.setValid(maxSet11Mpa.temperatureCelcius.isValid()); + if (not sensorTemperatures.mpa.isValid()) { + sensorTemperatures.mpa.value = INVALID_TEMPERATURE; } } } { - PoolReadGuard pg12(&max31865Set12, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg12(&maxSet31865Set12, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg12.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_acu.value = max31865Set12.temperatureCelcius.value; - sensorTemperatures.sensor_acu.setValid(max31865Set12.temperatureCelcius.isValid()); + 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; } @@ -387,11 +394,12 @@ void ThermalController::copySensors() { } { - PoolReadGuard pg13(&max31865Set13, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg13(&maxSet13PlPcduHspd, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg13.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_plpcdu_heatspreader.value = max31865Set13.temperatureCelcius.value; + sensorTemperatures.sensor_plpcdu_heatspreader.value = + maxSet13PlPcduHspd.temperatureCelcius.value; sensorTemperatures.sensor_plpcdu_heatspreader.setValid( - max31865Set13.temperatureCelcius.isValid()); + maxSet13PlPcduHspd.temperatureCelcius.isValid()); if (not sensorTemperatures.sensor_plpcdu_heatspreader.isValid()) { sensorTemperatures.sensor_plpcdu_heatspreader.value = INVALID_TEMPERATURE; } @@ -399,10 +407,10 @@ void ThermalController::copySensors() { } { - PoolReadGuard pg14(&max31865Set14, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg14(&maxSet14TcsBrd, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg14.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_tcs_board.value = max31865Set14.temperatureCelcius.value; - sensorTemperatures.sensor_tcs_board.setValid(max31865Set14.temperatureCelcius.isValid()); + 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; } @@ -410,10 +418,10 @@ void ThermalController::copySensors() { } { - PoolReadGuard pg15(&max31865Set15, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); + PoolReadGuard pg15(&maxSet15Imtq, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT); if (pg15.getReadResult() == returnvalue::OK) { - sensorTemperatures.sensor_magnettorquer.value = max31865Set15.temperatureCelcius.value; - sensorTemperatures.sensor_magnettorquer.setValid(max31865Set15.temperatureCelcius.isValid()); + 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; } @@ -963,13 +971,15 @@ void ThermalController::ctrlAcsBoard() { thermalComponent = ACS_BOARD; sensors[0].first = deviceTemperatures.gyro0SideA.isValid(); sensors[0].second = deviceTemperatures.gyro0SideA.value; - sensors[1].first = deviceTemperatures.mgm0SideA.isValid(); - sensors[1].second = deviceTemperatures.mgm0SideA.value; - sensors[2].first = deviceTemperatures.gyro1SideA.isValid(); - sensors[2].second = deviceTemperatures.gyro1SideA.value; - sensors[3].first = sensorTemperatures.sensor_tcs_board.isValid(); - sensors[3].second = sensorTemperatures.sensor_tcs_board.value; - numSensors = 4; + sensors[1].first = deviceTemperatures.gyro2SideB.isValid(); + sensors[1].second = deviceTemperatures.gyro2SideB.value; + sensors[2].first = deviceTemperatures.mgm0SideA.isValid(); + 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; + numSensors = 5; if (selectAndReadSensorTemp()) { if (chooseHeater(switchNr, redSwitchNr)) { checkLimitsAndCtrlHeater(switchNr, redSwitchNr, acsBoardLimits); @@ -1030,14 +1040,14 @@ void ThermalController::ctrlRw() { // RW1 thermalComponent = RW; - sensors[0].first = sensorTemperatures.sensor_rw1.isValid(); - sensors[0].second = sensorTemperatures.sensor_rw1.value; + sensors[0].first = sensorTemperatures.rw1.isValid(); + sensors[0].second = sensorTemperatures.rw1.value; sensors[1].first = deviceTemperatures.rw1.isValid(); sensors[1].second = deviceTemperatures.rw1.value; sensors[2].first = deviceTemperatures.rw4.isValid(); sensors[2].second = deviceTemperatures.rw4.value; - sensors[3].first = sensorTemperatures.sensor_dro.isValid(); - sensors[3].second = sensorTemperatures.sensor_dro.value; + sensors[3].first = sensorTemperatures.dro.isValid(); + sensors[3].second = sensorTemperatures.dro.value; numSensors = 4; ctrlComponentTemperature(heater::HEATER_6_DRO, heater::HEATER_6_DRO, rwLimits); sensorTemps[0] = tempFloatToU32(); @@ -1052,10 +1062,10 @@ void ThermalController::ctrlRw() { sensors[0].second = deviceTemperatures.rw2.value; sensors[1].first = deviceTemperatures.rw3.isValid(); sensors[1].second = deviceTemperatures.rw3.value; - sensors[2].first = sensorTemperatures.sensor_rw1.isValid(); - sensors[2].second = sensorTemperatures.sensor_rw1.value; - sensors[3].first = sensorTemperatures.sensor_dro.isValid(); - sensors[3].second = sensorTemperatures.sensor_dro.value; + sensors[2].first = sensorTemperatures.rw1.isValid(); + sensors[2].second = sensorTemperatures.rw1.value; + sensors[3].first = sensorTemperatures.dro.isValid(); + sensors[3].second = sensorTemperatures.dro.value; numSensors = 4; ctrlComponentTemperature(heater::HEATER_6_DRO, heater::HEATER_6_DRO, rwLimits); sensorTemps[1] = tempFloatToU32(); @@ -1072,10 +1082,10 @@ void ThermalController::ctrlRw() { sensors[0].second = deviceTemperatures.rw3.value; sensors[1].first = deviceTemperatures.rw4.isValid(); sensors[1].second = deviceTemperatures.rw4.value; - sensors[2].first = sensorTemperatures.sensor_rw1.isValid(); - sensors[2].second = sensorTemperatures.sensor_rw1.value; - sensors[3].first = sensorTemperatures.sensor_dro.isValid(); - sensors[3].second = sensorTemperatures.sensor_dro.value; + sensors[2].first = sensorTemperatures.rw1.isValid(); + sensors[2].second = sensorTemperatures.rw1.value; + sensors[3].first = sensorTemperatures.dro.isValid(); + sensors[3].second = sensorTemperatures.dro.value; numSensors = 4; ctrlComponentTemperature(heater::HEATER_6_DRO, heater::HEATER_6_DRO, rwLimits); sensorTemps[2] = tempFloatToU32(); @@ -1092,10 +1102,10 @@ void ThermalController::ctrlRw() { sensors[0].second = deviceTemperatures.rw4.value; sensors[1].first = deviceTemperatures.rw1.isValid(); sensors[1].second = deviceTemperatures.rw1.value; - sensors[2].first = sensorTemperatures.sensor_rw1.isValid(); - sensors[2].second = sensorTemperatures.sensor_rw1.value; - sensors[3].first = sensorTemperatures.sensor_dro.isValid(); - sensors[3].second = sensorTemperatures.sensor_dro.value; + sensors[2].first = sensorTemperatures.rw1.isValid(); + sensors[2].second = sensorTemperatures.rw1.value; + sensors[3].first = sensorTemperatures.dro.isValid(); + sensors[3].second = sensorTemperatures.dro.value; numSensors = 4; ctrlComponentTemperature(heater::HEATER_6_DRO, heater::HEATER_6_DRO, rwLimits); sensorTemps[3] = tempFloatToU32(); @@ -1119,12 +1129,12 @@ void ThermalController::ctrlRw() { void ThermalController::ctrlStr() { thermalComponent = STR; - sensors[0].first = sensorTemperatures.sensor_startracker.isValid(); - sensors[0].second = sensorTemperatures.sensor_startracker.value; + sensors[0].first = sensorTemperatures.startracker.isValid(); + sensors[0].second = sensorTemperatures.startracker.value; sensors[1].first = deviceTemperatures.startracker.isValid(); sensors[1].second = deviceTemperatures.startracker.value; - sensors[2].first = sensorTemperatures.sensor_dro.isValid(); - sensors[2].second = sensorTemperatures.sensor_dro.value; + sensors[2].first = sensorTemperatures.dro.isValid(); + sensors[2].second = sensorTemperatures.dro.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_5_STR, heater::HEATER_6_DRO, strLimits); tooHotHandler(objects::STAR_TRACKER, strTooHotFlag); @@ -1198,8 +1208,8 @@ void ThermalController::ctrlSBandTransceiver() { sensors[0].second = deviceTemperatures.syrlinksPowerAmplifier.value; sensors[1].first = deviceTemperatures.syrlinksBasebandBoard.isValid(); sensors[1].second = deviceTemperatures.syrlinksBasebandBoard.value; - sensors[2].first = sensorTemperatures.sensor_4k_camera.isValid(); - sensors[2].second = sensorTemperatures.sensor_4k_camera.value; + sensors[2].first = sensorTemperatures.payload4kCamera.isValid(); + sensors[2].second = sensorTemperatures.payload4kCamera.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_7_S_BAND, heater::HEATER_4_CAMERA, sBandTransceiverLimits); @@ -1293,12 +1303,12 @@ void ThermalController::ctrlPlPcduBoard() { void ThermalController::ctrlPlocMissionBoard() { thermalComponent = PLOCMISSION_BOARD; - sensors[0].first = sensorTemperatures.sensor_ploc_heatspreader.isValid(); - sensors[0].second = sensorTemperatures.sensor_ploc_heatspreader.value; - sensors[1].first = sensorTemperatures.sensor_ploc_missionboard.isValid(); - sensors[1].second = sensorTemperatures.sensor_ploc_missionboard.value; - sensors[2].first = sensorTemperatures.sensor_dac_heatspreader.isValid(); - sensors[2].second = sensorTemperatures.sensor_dac_heatspreader.value; + sensors[0].first = sensorTemperatures.plocHeatspreader.isValid(); + sensors[0].second = sensorTemperatures.plocHeatspreader.value; + sensors[1].first = sensorTemperatures.plocMissionboard.isValid(); + sensors[1].second = sensorTemperatures.plocMissionboard.value; + sensors[2].first = sensorTemperatures.dacHeatspreader.isValid(); + sensors[2].second = sensorTemperatures.dacHeatspreader.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_1_PLOC_PROC_BRD, heater::HEATER_0_OBC_BRD, plocMissionBoardLimits); @@ -1307,12 +1317,12 @@ void ThermalController::ctrlPlocMissionBoard() { void ThermalController::ctrlPlocProcessingBoard() { thermalComponent = PLOCPROCESSING_BOARD; - sensors[0].first = sensorTemperatures.sensor_ploc_missionboard.isValid(); - sensors[0].second = sensorTemperatures.sensor_ploc_missionboard.value; - sensors[1].first = sensorTemperatures.sensor_ploc_heatspreader.isValid(); - sensors[1].second = sensorTemperatures.sensor_ploc_heatspreader.value; - sensors[2].first = sensorTemperatures.sensor_dac_heatspreader.isValid(); - sensors[2].second = sensorTemperatures.sensor_dac_heatspreader.value; + sensors[0].first = sensorTemperatures.plocMissionboard.isValid(); + sensors[0].second = sensorTemperatures.plocMissionboard.value; + sensors[1].first = sensorTemperatures.plocHeatspreader.isValid(); + sensors[1].second = sensorTemperatures.plocHeatspreader.value; + sensors[2].first = sensorTemperatures.dacHeatspreader.isValid(); + sensors[2].second = sensorTemperatures.dacHeatspreader.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_1_PLOC_PROC_BRD, heater::HEATER_0_OBC_BRD, plocProcessingBoardLimits); @@ -1321,12 +1331,12 @@ void ThermalController::ctrlPlocProcessingBoard() { void ThermalController::ctrlDac() { thermalComponent = DAC; - sensors[0].first = sensorTemperatures.sensor_dac_heatspreader.isValid(); - sensors[0].second = sensorTemperatures.sensor_dac_heatspreader.value; - sensors[1].first = sensorTemperatures.sensor_ploc_missionboard.isValid(); - sensors[1].second = sensorTemperatures.sensor_ploc_missionboard.value; - sensors[2].first = sensorTemperatures.sensor_ploc_heatspreader.isValid(); - sensors[2].second = sensorTemperatures.sensor_ploc_heatspreader.value; + sensors[0].first = sensorTemperatures.dacHeatspreader.isValid(); + sensors[0].second = sensorTemperatures.dacHeatspreader.value; + sensors[1].first = sensorTemperatures.plocMissionboard.isValid(); + sensors[1].second = sensorTemperatures.plocMissionboard.value; + sensors[2].first = sensorTemperatures.plocHeatspreader.isValid(); + sensors[2].second = sensorTemperatures.plocHeatspreader.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_1_PLOC_PROC_BRD, heater::HEATER_0_OBC_BRD, dacLimits); tooHotHandler(objects::PLPCDU_HANDLER, eBandTooHotFlag); @@ -1334,12 +1344,12 @@ void ThermalController::ctrlDac() { void ThermalController::ctrlCameraBody() { thermalComponent = CAMERA; - sensors[0].first = sensorTemperatures.sensor_4k_camera.isValid(); - sensors[0].second = sensorTemperatures.sensor_4k_camera.value; - sensors[1].first = sensorTemperatures.sensor_dro.isValid(); - sensors[1].second = sensorTemperatures.sensor_dro.value; - sensors[2].first = sensorTemperatures.sensor_mpa.isValid(); - sensors[2].second = sensorTemperatures.sensor_mpa.value; + sensors[0].first = sensorTemperatures.payload4kCamera.isValid(); + sensors[0].second = sensorTemperatures.payload4kCamera.value; + sensors[1].first = sensorTemperatures.dro.isValid(); + sensors[1].second = sensorTemperatures.dro.value; + sensors[2].first = sensorTemperatures.mpa.isValid(); + sensors[2].second = sensorTemperatures.mpa.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_4_CAMERA, heater::HEATER_6_DRO, cameraLimits); if (componentAboveUpperLimit and not camTooHotOneShotFlag) { @@ -1359,12 +1369,12 @@ void ThermalController::ctrlCameraBody() { void ThermalController::ctrlDro() { thermalComponent = DRO; - sensors[0].first = sensorTemperatures.sensor_dro.isValid(); - sensors[0].second = sensorTemperatures.sensor_dro.value; - sensors[1].first = sensorTemperatures.sensor_4k_camera.isValid(); - sensors[1].second = sensorTemperatures.sensor_4k_camera.value; - sensors[2].first = sensorTemperatures.sensor_mpa.isValid(); - sensors[2].second = sensorTemperatures.sensor_mpa.value; + sensors[0].first = sensorTemperatures.dro.isValid(); + sensors[0].second = sensorTemperatures.dro.value; + sensors[1].first = sensorTemperatures.payload4kCamera.isValid(); + sensors[1].second = sensorTemperatures.payload4kCamera.value; + sensors[2].first = sensorTemperatures.mpa.isValid(); + sensors[2].second = sensorTemperatures.mpa.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_6_DRO, heater::HEATER_4_CAMERA, droLimits); tooHotHandler(objects::PLPCDU_HANDLER, eBandTooHotFlag); @@ -1376,8 +1386,8 @@ void ThermalController::ctrlX8() { sensors[0].second = sensorTemperatures.sensor_x8.value; sensors[1].first = sensorTemperatures.sensor_hpa.isValid(); sensors[1].second = sensorTemperatures.sensor_hpa.value; - sensors[2].first = sensorTemperatures.sensor_tx_modul.isValid(); - sensors[2].second = sensorTemperatures.sensor_tx_modul.value; + sensors[2].first = sensorTemperatures.eBandTx.isValid(); + sensors[2].second = sensorTemperatures.eBandTx.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_6_DRO, heater::HEATER_4_CAMERA, x8Limits); tooHotHandler(objects::PLPCDU_HANDLER, eBandTooHotFlag); @@ -1385,12 +1395,12 @@ void ThermalController::ctrlX8() { void ThermalController::ctrlTx() { thermalComponent = TX; - sensors[0].first = sensorTemperatures.sensor_tx_modul.isValid(); - sensors[0].second = sensorTemperatures.sensor_tx_modul.value; + 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[2].first = sensorTemperatures.sensor_mpa.isValid(); - sensors[2].second = sensorTemperatures.sensor_mpa.value; + sensors[2].first = sensorTemperatures.mpa.isValid(); + sensors[2].second = sensorTemperatures.mpa.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_6_DRO, heater::HEATER_4_CAMERA, txLimits); tooHotHandler(objects::PLPCDU_HANDLER, eBandTooHotFlag); @@ -1398,12 +1408,12 @@ void ThermalController::ctrlTx() { void ThermalController::ctrlMpa() { thermalComponent = MPA; - sensors[0].first = sensorTemperatures.sensor_mpa.isValid(); - sensors[0].second = sensorTemperatures.sensor_mpa.value; + 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[2].first = sensorTemperatures.sensor_tx_modul.isValid(); - sensors[2].second = sensorTemperatures.sensor_tx_modul.value; + sensors[2].first = sensorTemperatures.eBandTx.isValid(); + sensors[2].second = sensorTemperatures.eBandTx.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_6_DRO, heater::HEATER_4_CAMERA, mpaLimits); tooHotHandler(objects::PLPCDU_HANDLER, eBandTooHotFlag); @@ -1415,8 +1425,8 @@ void ThermalController::ctrlHpa() { sensors[0].second = sensorTemperatures.sensor_hpa.value; sensors[1].first = sensorTemperatures.sensor_x8.isValid(); sensors[1].second = sensorTemperatures.sensor_x8.value; - sensors[2].first = sensorTemperatures.sensor_mpa.isValid(); - sensors[2].second = sensorTemperatures.sensor_mpa.value; + sensors[2].first = sensorTemperatures.mpa.isValid(); + sensors[2].second = sensorTemperatures.mpa.value; numSensors = 3; ctrlComponentTemperature(heater::HEATER_6_DRO, heater::HEATER_4_CAMERA, hpaLimits); tooHotHandler(objects::PLPCDU_HANDLER, eBandTooHotFlag); @@ -1424,8 +1434,8 @@ void ThermalController::ctrlHpa() { void ThermalController::ctrlScexBoard() { thermalComponent = SCEX_BOARD; - sensors[0].first = sensorTemperatures.sensor_scex.isValid(); - sensors[0].second = sensorTemperatures.sensor_scex.value; + 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(); @@ -1608,6 +1618,7 @@ uint32_t ThermalController::tempFloatToU32() const { sizeof(tempRaw), SerializeIF::Endianness::NETWORK); return tempRaw; } + void ThermalController::tooHotHandler(object_id_t object, bool& oneShotFlag) { if (componentAboveUpperLimit and not oneShotFlag) { EventManagerIF::triggerEvent(object, overHeatEventToTrigger, tempFloatToU32()); diff --git a/mission/controller/ThermalController.h b/mission/controller/ThermalController.h index fc3c9e4b..aed89cde 100644 --- a/mission/controller/ThermalController.h +++ b/mission/controller/ThermalController.h @@ -117,22 +117,22 @@ class ThermalController : public ExtendedControllerBase { DeviceHandlerThermalSet imtqThermalSet; // Temperature Sensors - MAX31865::PrimarySet max31865Set0; - MAX31865::PrimarySet max31865Set1; - MAX31865::PrimarySet max31865Set2; - MAX31865::PrimarySet max31865Set3; - MAX31865::PrimarySet max31865Set4; - MAX31865::PrimarySet max31865Set5; - MAX31865::PrimarySet max31865Set6; - MAX31865::PrimarySet max31865Set7; - MAX31865::PrimarySet max31865Set8; - MAX31865::PrimarySet max31865Set9; - MAX31865::PrimarySet max31865Set10; - MAX31865::PrimarySet max31865Set11; - MAX31865::PrimarySet max31865Set12; - MAX31865::PrimarySet max31865Set13; - MAX31865::PrimarySet max31865Set14; - MAX31865::PrimarySet max31865Set15; + MAX31865::PrimarySet maxSet1PlocHspd; + MAX31865::PrimarySet maxSet0PlocMissionBrd; + MAX31865::PrimarySet maxSet2PlCam; + MAX31865::PrimarySet maxSet3DacHspd; + MAX31865::PrimarySet maxSet4Str; + MAX31865::PrimarySet maxSet5Rw1MxMy; + MAX31865::PrimarySet maxSet6Dro; + MAX31865::PrimarySet maxSet7Scex; + MAX31865::PrimarySet maxSet8X8; + MAX31865::PrimarySet maxSet9Hpa; + MAX31865::PrimarySet maxSet10EbandTx; + MAX31865::PrimarySet maxSet11Mpa; + MAX31865::PrimarySet maxSet31865Set12; + MAX31865::PrimarySet maxSet13PlPcduHspd; + MAX31865::PrimarySet maxSet14TcsBrd; + MAX31865::PrimarySet maxSet15Imtq; TMP1075::Tmp1075Dataset tmp1075SetTcs0; TMP1075::Tmp1075Dataset tmp1075SetTcs1; diff --git a/mission/controller/controllerdefinitions/tcsCtrlDefs.h b/mission/controller/controllerdefinitions/tcsCtrlDefs.h index 6644199f..7ef0690c 100644 --- a/mission/controller/controllerdefinitions/tcsCtrlDefs.h +++ b/mission/controller/controllerdefinitions/tcsCtrlDefs.h @@ -108,21 +108,20 @@ class SensorTemperatures : public StaticLocalDataSet sensor_ploc_heatspreader = + lp_var_t plocHeatspreader = lp_var_t(sid.objectId, PoolIds::SENSOR_PLOC_HEATSPREADER, this); - lp_var_t sensor_ploc_missionboard = + lp_var_t plocMissionboard = lp_var_t(sid.objectId, PoolIds::SENSOR_PLOC_MISSIONBOARD, this); - lp_var_t sensor_4k_camera = lp_var_t(sid.objectId, PoolIds::SENSOR_4K_CAMERA, this); - lp_var_t sensor_dac_heatspreader = + lp_var_t payload4kCamera = lp_var_t(sid.objectId, PoolIds::SENSOR_4K_CAMERA, this); + lp_var_t dacHeatspreader = lp_var_t(sid.objectId, PoolIds::SENSOR_DAC_HEATSPREADER, this); - lp_var_t sensor_startracker = - lp_var_t(sid.objectId, PoolIds::SENSOR_STARTRACKER, this); - lp_var_t sensor_rw1 = lp_var_t(sid.objectId, PoolIds::SENSOR_RW1, this); - lp_var_t sensor_scex = lp_var_t(sid.objectId, PoolIds::SENSOR_SCEX, this); - lp_var_t sensor_tx_modul = lp_var_t(sid.objectId, PoolIds::SENSOR_TX_MODUL, this); + lp_var_t startracker = lp_var_t(sid.objectId, PoolIds::SENSOR_STARTRACKER, this); + lp_var_t rw1 = lp_var_t(sid.objectId, PoolIds::SENSOR_RW1, this); + lp_var_t scex = lp_var_t(sid.objectId, PoolIds::SENSOR_SCEX, this); + lp_var_t eBandTx = lp_var_t(sid.objectId, PoolIds::SENSOR_TX_MODUL, this); // E-Band module - lp_var_t sensor_dro = lp_var_t(sid.objectId, PoolIds::SENSOR_DRO, this); - lp_var_t sensor_mpa = lp_var_t(sid.objectId, PoolIds::SENSOR_MPA, this); + lp_var_t dro = lp_var_t(sid.objectId, PoolIds::SENSOR_DRO, this); + lp_var_t mpa = lp_var_t(sid.objectId, PoolIds::SENSOR_MPA, this); lp_var_t sensor_x8 = lp_var_t(sid.objectId, PoolIds::SENSOR_X8, this); lp_var_t sensor_hpa = lp_var_t(sid.objectId, PoolIds::SENSOR_HPA, this); lp_var_t sensor_acu = lp_var_t(sid.objectId, PoolIds::SENSOR_ACU, this);