Merge pull request 'Hotfixes for development branch' (#301) from hotfix/deviceHandlerThermalSet into development
Reviewed-on: fsfw/fsfw#301
This commit is contained in:
commit
bd4ca743f5
@ -97,7 +97,6 @@ ReturnValue_t ExtendedControllerBase::initializeAfterTaskCreation() {
|
||||
|
||||
ReturnValue_t ExtendedControllerBase::performOperation(uint8_t opCode) {
|
||||
handleQueue();
|
||||
hkSwitcher.performOperation();
|
||||
localPoolManager.performHkOperation();
|
||||
performControlOperation();
|
||||
return RETURN_OK;
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include "DeviceHandlerMessage.h"
|
||||
|
||||
#include "../action/HasActionsIF.h"
|
||||
#include "../datapoollocal/locPoolDefinitions.h"
|
||||
#include "../events/Event.h"
|
||||
#include "../modes/HasModesIF.h"
|
||||
#include "../ipc/MessageQueueSenderIF.h"
|
||||
@ -21,12 +22,13 @@ using DeviceCommandId_t = uint32_t;
|
||||
*/
|
||||
class DeviceHandlerIF {
|
||||
public:
|
||||
static constexpr DeviceCommandId_t NO_COMMAND = -1;
|
||||
|
||||
static constexpr uint8_t TRANSITION_MODE_CHILD_ACTION_MASK = 0x20;
|
||||
static constexpr uint8_t TRANSITION_MODE_BASE_ACTION_MASK = 0x10;
|
||||
|
||||
static const uint8_t TRANSITION_MODE_CHILD_ACTION_MASK = 0x20;
|
||||
static const uint8_t TRANSITION_MODE_BASE_ACTION_MASK = 0x10;
|
||||
|
||||
static constexpr Command_t NO_COMMAND = -1;
|
||||
using dh_heater_request_t = uint8_t;
|
||||
using dh_thermal_state_t = int8_t;
|
||||
|
||||
/**
|
||||
* @brief This is the mode the <strong>device handler</strong> is in.
|
||||
@ -142,7 +144,7 @@ public:
|
||||
* This is used by the child class to tell the base class what to do.
|
||||
*/
|
||||
enum CommunicationAction: uint8_t {
|
||||
PERFORM_OPERATION,
|
||||
PERFORM_OPERATION,
|
||||
SEND_WRITE,//!< Send write
|
||||
GET_WRITE, //!< Get write
|
||||
SEND_READ, //!< Send read
|
||||
@ -150,6 +152,14 @@ public:
|
||||
NOTHING //!< Do nothing.
|
||||
};
|
||||
|
||||
static constexpr uint32_t DEFAULT_THERMAL_SET_ID = sid_t::INVALID_SET_ID - 1;
|
||||
|
||||
static constexpr lp_id_t DEFAULT_THERMAL_STATE_POOL_ID =
|
||||
localpool::INVALID_LPID - 2;
|
||||
static constexpr lp_id_t DEFAULT_THERMAL_HEATING_REQUEST_POOL_ID =
|
||||
localpool::INVALID_LPID - 1;
|
||||
|
||||
|
||||
/**
|
||||
* Default Destructor
|
||||
*/
|
||||
|
44
devicehandlers/DeviceHandlerThermalSet.h
Normal file
44
devicehandlers/DeviceHandlerThermalSet.h
Normal file
@ -0,0 +1,44 @@
|
||||
#ifndef FSFW_DEVICEHANDLERS_DEVICEHANDLERTHERMALSET_H_
|
||||
#define FSFW_DEVICEHANDLERS_DEVICEHANDLERTHERMALSET_H_
|
||||
|
||||
#include "DeviceHandlerIF.h"
|
||||
#include "../datapoollocal/StaticLocalDataSet.h"
|
||||
#include "../datapoollocal/LocalPoolVariable.h"
|
||||
|
||||
|
||||
class DeviceHandlerThermalSet: public StaticLocalDataSet<2> {
|
||||
public:
|
||||
|
||||
DeviceHandlerThermalSet(HasLocalDataPoolIF* hkOwner, uint32_t setId =
|
||||
DeviceHandlerIF::DEFAULT_THERMAL_SET_ID,
|
||||
lp_id_t thermalStateId =
|
||||
DeviceHandlerIF::DEFAULT_THERMAL_STATE_POOL_ID,
|
||||
lp_id_t heaterRequestId =
|
||||
DeviceHandlerIF::DEFAULT_THERMAL_HEATING_REQUEST_POOL_ID):
|
||||
DeviceHandlerThermalSet(hkOwner->getObjectId(), setId,
|
||||
thermalStateId, heaterRequestId) {}
|
||||
|
||||
DeviceHandlerThermalSet(object_id_t deviceHandler, uint32_t setId =
|
||||
DeviceHandlerIF::DEFAULT_THERMAL_SET_ID,
|
||||
lp_id_t thermalStateId =
|
||||
DeviceHandlerIF::DEFAULT_THERMAL_STATE_POOL_ID,
|
||||
lp_id_t thermalStateRequestId =
|
||||
DeviceHandlerIF::DEFAULT_THERMAL_HEATING_REQUEST_POOL_ID):
|
||||
StaticLocalDataSet(sid_t(deviceHandler, setId)),
|
||||
thermalStatePoolId(thermalStateId),
|
||||
heaterRequestPoolId(thermalStateRequestId) {}
|
||||
|
||||
const lp_id_t thermalStatePoolId;
|
||||
const lp_id_t heaterRequestPoolId;
|
||||
|
||||
lp_var_t<DeviceHandlerIF::dh_thermal_state_t> thermalState =
|
||||
lp_var_t<DeviceHandlerIF::dh_thermal_state_t>(
|
||||
thermalStatePoolId, sid.objectId, this);
|
||||
lp_var_t<DeviceHandlerIF::dh_heater_request_t> heaterRequest =
|
||||
lp_var_t<DeviceHandlerIF::dh_heater_request_t>(
|
||||
heaterRequestPoolId, sid.objectId, this);
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* FSFW_DEVICEHANDLERS_DEVICEHANDLERTHERMALSET_H_ */
|
@ -76,7 +76,7 @@ ReturnValue_t FaultCounter::getParameter(uint8_t domainId, uint16_t parameterId,
|
||||
parameterWrapper->set(timer.timeout);
|
||||
break;
|
||||
default:
|
||||
return INVALID_MATRIX_ID;
|
||||
return INVALID_IDENTIFIER_ID;
|
||||
}
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
1
fsfw.mk
1
fsfw.mk
@ -9,7 +9,6 @@ CXXSRC += $(wildcard $(FRAMEWORK_PATH)/controller/*.cpp)
|
||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/coordinates/*.cpp)
|
||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datalinklayer/*.cpp)
|
||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapool/*.cpp)
|
||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapoolglob/*.cpp)
|
||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapoollocal/*.cpp)
|
||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/housekeeping/*.cpp)
|
||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/devicehandlers/*.cpp)
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "ThermalComponentCore.h"
|
||||
#include "tcsDefinitions.h"
|
||||
|
||||
ThermalComponentCore::ThermalComponentCore(object_id_t reportingObjectId,
|
||||
uint8_t domainId, gp_id_t temperaturePoolId,
|
||||
@ -60,7 +61,7 @@ ThermalComponentIF::HeaterRequest ThermalComponentCore::performOperation(
|
||||
//SHOULDDO: Better pass db_float_t* to getTemperature and set it invalid if invalid.
|
||||
temperature = getTemperature();
|
||||
updateMinMaxTemp();
|
||||
if (temperature != INVALID_TEMPERATURE) {
|
||||
if (temperature != thermal::INVALID_TEMPERATURE) {
|
||||
temperature.setValid(PoolVariableIF::VALID);
|
||||
State state = getState(temperature.value, getParameters(),
|
||||
targetState.value);
|
||||
@ -119,7 +120,7 @@ ReturnValue_t ThermalComponentCore::setTargetState(int8_t newState) {
|
||||
}
|
||||
|
||||
void ThermalComponentCore::setOutputInvalid() {
|
||||
temperature = INVALID_TEMPERATURE;
|
||||
temperature = thermal::INVALID_TEMPERATURE;
|
||||
temperature.setValid(PoolVariableIF::INVALID);
|
||||
currentState.setValid(PoolVariableIF::INVALID);
|
||||
heaterRequest = HEATER_DONT_CARE;
|
||||
@ -144,13 +145,13 @@ float ThermalComponentCore::getTemperature() {
|
||||
|
||||
if (thermalModule != nullptr) {
|
||||
float temperature = thermalModule->getTemperature();
|
||||
if (temperature != ThermalModuleIF::INVALID_TEMPERATURE) {
|
||||
if (temperature != thermal::INVALID_TEMPERATURE) {
|
||||
return temperature;
|
||||
} else {
|
||||
return INVALID_TEMPERATURE;
|
||||
return thermal::INVALID_TEMPERATURE;
|
||||
}
|
||||
} else {
|
||||
return INVALID_TEMPERATURE;
|
||||
return thermal::INVALID_TEMPERATURE;
|
||||
}
|
||||
}
|
||||
|
||||
@ -226,7 +227,7 @@ ThermalComponentIF::State ThermalComponentCore::getIgnoredState(int8_t state) {
|
||||
}
|
||||
|
||||
void ThermalComponentCore::updateMinMaxTemp() {
|
||||
if (temperature == INVALID_TEMPERATURE) {
|
||||
if (temperature == thermal::INVALID_TEMPERATURE) {
|
||||
return;
|
||||
}
|
||||
if (temperature < minTemp) {
|
||||
|
@ -107,7 +107,7 @@ void ThermalModule::calculateTemperature() {
|
||||
moduleTemperature = moduleTemperature.value / numberOfValidSensors;
|
||||
moduleTemperature.setValid(PoolVariableIF::VALID);
|
||||
} else {
|
||||
moduleTemperature = INVALID_TEMPERATURE;
|
||||
moduleTemperature.value = thermal::INVALID_TEMPERATURE;
|
||||
moduleTemperature.setValid(PoolVariableIF::INVALID);
|
||||
}
|
||||
}
|
||||
@ -219,7 +219,7 @@ void ThermalModule::initialize(PowerSwitchIF* powerSwitch) {
|
||||
bool ThermalModule::calculateModuleHeaterRequestAndSetModuleStatus(
|
||||
Strategy strategy) {
|
||||
currentState.setValid(PoolVariableIF::VALID);
|
||||
if (moduleTemperature == INVALID_TEMPERATURE) {
|
||||
if (moduleTemperature == thermal::INVALID_TEMPERATURE) {
|
||||
currentState = UNKNOWN;
|
||||
return false;
|
||||
}
|
||||
@ -282,7 +282,7 @@ void ThermalModule::updateTargetTemperatures(ThermalComponentIF* component,
|
||||
}
|
||||
|
||||
void ThermalModule::setOutputInvalid() {
|
||||
moduleTemperature = INVALID_TEMPERATURE;
|
||||
moduleTemperature = thermal::INVALID_TEMPERATURE;
|
||||
moduleTemperature.setValid(PoolVariableIF::INVALID);
|
||||
currentState.setValid(PoolVariableIF::INVALID);
|
||||
std::list<ComponentData>::iterator iter = components.begin();
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define THERMALMODULEIF_H_
|
||||
|
||||
#include "ThermalComponentIF.h"
|
||||
|
||||
class AbstractTemperatureSensor;
|
||||
|
||||
class ThermalModuleIF{
|
||||
@ -18,8 +19,6 @@ public:
|
||||
NON_OPERATIONAL = 0, OPERATIONAL = 1, UNKNOWN = 2
|
||||
};
|
||||
|
||||
static constexpr float INVALID_TEMPERATURE = 999;
|
||||
|
||||
virtual ~ThermalModuleIF() {
|
||||
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
#ifndef TCSDEFINITIONS_H_
|
||||
#define TCSDEFINITIONS_H_
|
||||
|
||||
|
||||
static const float INVALID_TEMPERATURE = 999;
|
||||
|
||||
namespace thermal {
|
||||
static constexpr float INVALID_TEMPERATURE = 999;
|
||||
}
|
||||
|
||||
#endif /* TCSDEFINITIONS_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user