rtd dataset
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit

This commit is contained in:
Jakob Meier 2022-05-31 16:44:57 +02:00
parent 0e6d2354fc
commit 593cc68b84
5 changed files with 32 additions and 11 deletions

View File

@ -183,6 +183,7 @@ void initmission::initTasks() {
objects::RTD_15_IC18_IMTQ, objects::RTD_15_IC18_IMTQ,
}; };
tcsTask->addComponent(objects::TCS_BOARD_ASS); tcsTask->addComponent(objects::TCS_BOARD_ASS);
tcsTask->addComponent(objects::THERMAL_CONTROLLER);
for (const auto& rtd : rtdIds) { for (const auto& rtd : rtdIds) {
tcsTask->addComponent(rtd, DeviceHandlerIF::PERFORM_OPERATION); tcsTask->addComponent(rtd, DeviceHandlerIF::PERFORM_OPERATION);
tcsTask->addComponent(rtd, DeviceHandlerIF::SEND_WRITE); tcsTask->addComponent(rtd, DeviceHandlerIF::SEND_WRITE);
@ -228,13 +229,6 @@ void initmission::initTasks() {
} }
#endif /* OBSW_ADD_PLOC_SUPERVISOR */ #endif /* OBSW_ADD_PLOC_SUPERVISOR */
PeriodicTaskIF* thermalControllerTask = factory->createPeriodicTask(
"THERMAL_CTL_TASK", 40, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.0, missedDeadlineFunc);
result = thermalControllerTask->addComponent(objects::THERMAL_CONTROLLER);
if (result != HasReturnvaluesIF::RETURN_OK) {
initmission::printAddObjectError("THERMAL_CONTROLLER", objects::THERMAL_CONTROLLER);
}
#if OBSW_TEST_CCSDS_BRIDGE == 1 #if OBSW_TEST_CCSDS_BRIDGE == 1
PeriodicTaskIF* ptmeTestTask = factory->createPeriodicTask( PeriodicTaskIF* ptmeTestTask = factory->createPeriodicTask(
"PTME_TEST", 80, PeriodicTaskIF::MINIMUM_STACK_SIZE, 2.0, missedDeadlineFunc); "PTME_TEST", 80, PeriodicTaskIF::MINIMUM_STACK_SIZE, 2.0, missedDeadlineFunc);
@ -305,7 +299,6 @@ void initmission::initTasks() {
#if OBSW_ADD_PLOC_SUPERVISOR == 1 #if OBSW_ADD_PLOC_SUPERVISOR == 1
supvHelperTask->startTask(); supvHelperTask->startTask();
#endif /* OBSW_ADD_PLOC_SUPERVISOR == 1 */ #endif /* OBSW_ADD_PLOC_SUPERVISOR == 1 */
thermalControllerTask->startTask();
sif::info << "Tasks started.." << std::endl; sif::info << "Tasks started.." << std::endl;
} }

View File

@ -46,7 +46,17 @@ enum PoolIds : lp_id_t {
SUS_5_N_LOC_XFYMZB_PT_ZB, SUS_5_N_LOC_XFYMZB_PT_ZB,
SUS_11_R_LOC_XBYMZB_PT_ZB, SUS_11_R_LOC_XBYMZB_PT_ZB,
COMPONENT_RW COMPONENT_RW,
TEMP_Q7S,
TEMP_BATTERY,
TEMP_RW0,
TEMP_RW1,
TEMP_RW2,
TEMP_RW3,
TEMP_STAR_TRACKER,
TEMP_SYRLINKS_POWER_AMPLIFIER,
TEMP_SYRLINKS_BASEBAND_BOARD
}; };
/** /**
@ -95,6 +105,9 @@ class DeviceTemperatures : public StaticLocalDataSet<1> {
DeviceTemperatures(object_id_t objectId) DeviceTemperatures(object_id_t objectId)
: StaticLocalDataSet(sid_t(objectId, DEVICE_TEMPERATURES)) {} : StaticLocalDataSet(sid_t(objectId, DEVICE_TEMPERATURES)) {}
lp_var_t<float> q7s =
lp_var_t<float>(sid.objectId, PoolIds::SUS_0_N_LOC_XFYFZM_PT_XF, this);
}; };
/** /**
@ -150,4 +163,4 @@ class ComponentTemperatures : public StaticLocalDataSet<2> {
} // namespace thermalControllerDefinitions } // namespace thermalControllerDefinitions
#endif /* MISSION_CONTROLLER_CONTROLLERDEFINITIONS_THERMALCONTROLLERDEFINITIONS_H_ */ #endif /* MISSION_CONTROLLER_CONTROLLERDEFINITIONS_THERMALCONTROLLERDEFINITIONS_H_ */

View File

@ -1,5 +1,7 @@
#include "Max31865EiveHandler.h" #include "Max31865EiveHandler.h"
#include <fsfw/datapool/PoolReadGuard.h>
Max31865EiveHandler::Max31865EiveHandler(object_id_t objectId, object_id_t comIF, Max31865EiveHandler::Max31865EiveHandler(object_id_t objectId, object_id_t comIF,
CookieIF* comCookie) CookieIF* comCookie)
: DeviceHandlerBase(objectId, comIF, comCookie, nullptr), : DeviceHandlerBase(objectId, comIF, comCookie, nullptr),
@ -154,6 +156,15 @@ ReturnValue_t Max31865EiveHandler::interpretDeviceReply(DeviceCommandId_t id,
// calculate approximation // calculate approximation
float approxTemp = exchangeStruct.adcCode / 32.0 - 256.0; float approxTemp = exchangeStruct.adcCode / 32.0 - 256.0;
PoolReadGuard pg(&sensorDataset);
if (pg.getReadResult() != HasReturnvaluesIF::RETURN_OK) {
sif::warning << "Max31865EiveHandler: Failed to read sensor dataset" << std::endl;
sensorDataset.temperatureCelcius.setValid(false);
return RETURN_OK;
}
sensorDataset.temperatureCelcius = approxTemp;
sensorDataset.temperatureCelcius.setValid(true);
if (debugMode) { if (debugMode) {
if (debugDivider.checkAndIncrement()) { if (debugDivider.checkAndIncrement()) {
sif::info << "Max31865: " << std::setw(20) << std::left << locString << std::right sif::info << "Max31865: " << std::setw(20) << std::left << locString << std::right

View File

@ -93,8 +93,12 @@ ReturnValue_t Tmp1075Handler::interpretDeviceReply(DeviceCommandId_t id, const u
ReturnValue_t result = dataset.read(); ReturnValue_t result = dataset.read();
if (result == HasReturnvaluesIF::RETURN_OK) { if (result == HasReturnvaluesIF::RETURN_OK) {
dataset.temperatureCelcius = tempValue; dataset.temperatureCelcius = tempValue;
dataset.setValidity(true, true);
dataset.commit(); dataset.commit();
} }
else {
dataset.setValidity(false, true);
}
break; break;
} }

2
tmtc

@ -1 +1 @@
Subproject commit 048a0ea447465b343c1067bd171b8b698c6e2006 Subproject commit cba2055c59de43c9e9572e8549e555aaab785481