diff --git a/controller/ExtendedControllerBase.cpp b/controller/ExtendedControllerBase.cpp
index f69d2ea1..fa4f6786 100644
--- a/controller/ExtendedControllerBase.cpp
+++ b/controller/ExtendedControllerBase.cpp
@@ -97,7 +97,6 @@ ReturnValue_t ExtendedControllerBase::initializeAfterTaskCreation() {
ReturnValue_t ExtendedControllerBase::performOperation(uint8_t opCode) {
handleQueue();
- hkSwitcher.performOperation();
localPoolManager.performHkOperation();
performControlOperation();
return RETURN_OK;
diff --git a/devicehandlers/DeviceHandlerIF.h b/devicehandlers/DeviceHandlerIF.h
index 491a2c08..dba6b228 100644
--- a/devicehandlers/DeviceHandlerIF.h
+++ b/devicehandlers/DeviceHandlerIF.h
@@ -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 device handler 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
*/
diff --git a/devicehandlers/DeviceHandlerThermalSet.h b/devicehandlers/DeviceHandlerThermalSet.h
new file mode 100644
index 00000000..239012e2
--- /dev/null
+++ b/devicehandlers/DeviceHandlerThermalSet.h
@@ -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 thermalState =
+ lp_var_t(
+ thermalStatePoolId, sid.objectId, this);
+ lp_var_t heaterRequest =
+ lp_var_t(
+ heaterRequestPoolId, sid.objectId, this);
+};
+
+
+
+#endif /* FSFW_DEVICEHANDLERS_DEVICEHANDLERTHERMALSET_H_ */
diff --git a/fdir/FaultCounter.cpp b/fdir/FaultCounter.cpp
index 443adb52..6519a3a8 100644
--- a/fdir/FaultCounter.cpp
+++ b/fdir/FaultCounter.cpp
@@ -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;
}
diff --git a/fsfw.mk b/fsfw.mk
index c5847554..3df63060 100644
--- a/fsfw.mk
+++ b/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)
diff --git a/thermal/ThermalComponentCore.cpp b/thermal/ThermalComponentCore.cpp
index 7b594d0c..ba875053 100644
--- a/thermal/ThermalComponentCore.cpp
+++ b/thermal/ThermalComponentCore.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) {
diff --git a/thermal/ThermalModule.cpp b/thermal/ThermalModule.cpp
index 457a6743..de347542 100644
--- a/thermal/ThermalModule.cpp
+++ b/thermal/ThermalModule.cpp
@@ -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::iterator iter = components.begin();
diff --git a/thermal/ThermalModuleIF.h b/thermal/ThermalModuleIF.h
index 2d11a6f2..89cf93d6 100644
--- a/thermal/ThermalModuleIF.h
+++ b/thermal/ThermalModuleIF.h
@@ -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() {
}
diff --git a/thermal/tcsDefinitions.h b/thermal/tcsDefinitions.h
index 37e5b849..3225be5c 100644
--- a/thermal/tcsDefinitions.h
+++ b/thermal/tcsDefinitions.h
@@ -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_ */