57 lines
1.9 KiB
C++
57 lines
1.9 KiB
C++
/*
|
|
HELP
|
|
*/
|
|
|
|
#include <mission/Controller/ArduinoTCSTemperatureSensor.h>
|
|
#include <fsfw/ipc/QueueFactory.h>
|
|
|
|
ArduinoTCSTemperatureSensor::ArduinoTCSTemperatureSensor(object_id_t setObjectid,
|
|
float *inputTemperature, PoolVariableIF *poolVariable,
|
|
uint8_t vectorIndex, Parameters parameters, uint32_t datapoolId,
|
|
DataSet *outputSet, ThermalModuleIF *thermalModule) :
|
|
AbstractTemperatureSensor(setObjectid, thermalModule), parameters(parameters),
|
|
inputTemperature(*inputTemperature), poolVariable(poolVariable),
|
|
outputValidity(datapoolId, outputSet, PoolVariableIF::VAR_READ_WRITE)
|
|
/*DataPool::poolIdAndPositionToPid(poolVariable->getDataPoolId(), vectorIndex)*/
|
|
/*outputTemperature(datapoolId, outputSet, PoolVariableIF::VAR_WRITE)*/ {
|
|
}
|
|
|
|
ArduinoTCSTemperatureSensor::~ArduinoTCSTemperatureSensor() {}
|
|
|
|
void ArduinoTCSTemperatureSensor::setInvalid() {
|
|
inputTemperature = INVALID_TEMPERATURE;
|
|
outputValidity.setValid(false);
|
|
}
|
|
|
|
void ArduinoTCSTemperatureSensor::doChildOperation() {
|
|
getTemperature();
|
|
// Loop with isValid doesn't work
|
|
/*if (!poolVariable->isValid() || !healthHelper.healthTable->isHealthy(getObjectId())) {
|
|
setInvalid();
|
|
return;
|
|
}*/
|
|
if (inputTemperature<parameters.lowerLimit || inputTemperature>parameters.upperLimit){
|
|
outputValidity.setValid(PoolVariableIF::INVALID);
|
|
inputTemperature = INVALID_TEMPERATURE;
|
|
} else {
|
|
outputValidity.setValid(PoolVariableIF::VALID);
|
|
}
|
|
}
|
|
|
|
float ArduinoTCSTemperatureSensor::getTemperature() {
|
|
return inputTemperature;
|
|
}
|
|
|
|
bool ArduinoTCSTemperatureSensor::isValid() {
|
|
// To modify?
|
|
return outputValidity.isValid();
|
|
}
|
|
|
|
void ArduinoTCSTemperatureSensor::resetOldState() {}
|
|
|
|
ReturnValue_t ArduinoTCSTemperatureSensor::getParameter(uint8_t domainId, uint16_t parameterId,
|
|
ParameterWrapper *parameterWrapper,
|
|
const ParameterWrapper *newValues, uint16_t startAtIndex){
|
|
return HasReturnvaluesIF::RETURN_OK;
|
|
}
|