Merge branch 'mueller/FreeRTOS' of https://egit.irs.uni-stuttgart.de/KSat/fsfw into mueller/FreeRTOS
This commit is contained in:
commit
9986203eff
@ -97,7 +97,6 @@ ReturnValue_t ExtendedControllerBase::initializeAfterTaskCreation() {
|
|||||||
|
|
||||||
ReturnValue_t ExtendedControllerBase::performOperation(uint8_t opCode) {
|
ReturnValue_t ExtendedControllerBase::performOperation(uint8_t opCode) {
|
||||||
handleQueue();
|
handleQueue();
|
||||||
hkSwitcher.performOperation();
|
|
||||||
localPoolManager.performHkOperation();
|
localPoolManager.performHkOperation();
|
||||||
performControlOperation();
|
performControlOperation();
|
||||||
return RETURN_OK;
|
return RETURN_OK;
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include "DeviceHandlerMessage.h"
|
#include "DeviceHandlerMessage.h"
|
||||||
|
|
||||||
#include "../action/HasActionsIF.h"
|
#include "../action/HasActionsIF.h"
|
||||||
|
#include "../datapoollocal/locPoolDefinitions.h"
|
||||||
#include "../events/Event.h"
|
#include "../events/Event.h"
|
||||||
#include "../modes/HasModesIF.h"
|
#include "../modes/HasModesIF.h"
|
||||||
#include "../ipc/MessageQueueSenderIF.h"
|
#include "../ipc/MessageQueueSenderIF.h"
|
||||||
@ -21,12 +22,13 @@ using DeviceCommandId_t = uint32_t;
|
|||||||
*/
|
*/
|
||||||
class DeviceHandlerIF {
|
class DeviceHandlerIF {
|
||||||
public:
|
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;
|
using dh_heater_request_t = uint8_t;
|
||||||
static const uint8_t TRANSITION_MODE_BASE_ACTION_MASK = 0x10;
|
using dh_thermal_state_t = int8_t;
|
||||||
|
|
||||||
static constexpr Command_t NO_COMMAND = -1;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This is the mode the <strong>device handler</strong> is in.
|
* @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.
|
* This is used by the child class to tell the base class what to do.
|
||||||
*/
|
*/
|
||||||
enum CommunicationAction: uint8_t {
|
enum CommunicationAction: uint8_t {
|
||||||
PERFORM_OPERATION,
|
PERFORM_OPERATION,
|
||||||
SEND_WRITE,//!< Send write
|
SEND_WRITE,//!< Send write
|
||||||
GET_WRITE, //!< Get write
|
GET_WRITE, //!< Get write
|
||||||
SEND_READ, //!< Send read
|
SEND_READ, //!< Send read
|
||||||
@ -150,6 +152,14 @@ public:
|
|||||||
NOTHING //!< Do nothing.
|
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
|
* 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);
|
parameterWrapper->set(timer.timeout);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return INVALID_MATRIX_ID;
|
return INVALID_IDENTIFIER_ID;
|
||||||
}
|
}
|
||||||
return HasReturnvaluesIF::RETURN_OK;
|
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)/coordinates/*.cpp)
|
||||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datalinklayer/*.cpp)
|
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datalinklayer/*.cpp)
|
||||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapool/*.cpp)
|
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapool/*.cpp)
|
||||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapoolglob/*.cpp)
|
|
||||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapoollocal/*.cpp)
|
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapoollocal/*.cpp)
|
||||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/housekeeping/*.cpp)
|
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/housekeeping/*.cpp)
|
||||||
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/devicehandlers/*.cpp)
|
CXXSRC += $(wildcard $(FRAMEWORK_PATH)/devicehandlers/*.cpp)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include "ThermalComponentCore.h"
|
#include "ThermalComponentCore.h"
|
||||||
|
#include "tcsDefinitions.h"
|
||||||
|
|
||||||
ThermalComponentCore::ThermalComponentCore(object_id_t reportingObjectId,
|
ThermalComponentCore::ThermalComponentCore(object_id_t reportingObjectId,
|
||||||
uint8_t domainId, gp_id_t temperaturePoolId,
|
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.
|
//SHOULDDO: Better pass db_float_t* to getTemperature and set it invalid if invalid.
|
||||||
temperature = getTemperature();
|
temperature = getTemperature();
|
||||||
updateMinMaxTemp();
|
updateMinMaxTemp();
|
||||||
if (temperature != INVALID_TEMPERATURE) {
|
if (temperature != thermal::INVALID_TEMPERATURE) {
|
||||||
temperature.setValid(PoolVariableIF::VALID);
|
temperature.setValid(PoolVariableIF::VALID);
|
||||||
State state = getState(temperature.value, getParameters(),
|
State state = getState(temperature.value, getParameters(),
|
||||||
targetState.value);
|
targetState.value);
|
||||||
@ -119,7 +120,7 @@ ReturnValue_t ThermalComponentCore::setTargetState(int8_t newState) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalComponentCore::setOutputInvalid() {
|
void ThermalComponentCore::setOutputInvalid() {
|
||||||
temperature = INVALID_TEMPERATURE;
|
temperature = thermal::INVALID_TEMPERATURE;
|
||||||
temperature.setValid(PoolVariableIF::INVALID);
|
temperature.setValid(PoolVariableIF::INVALID);
|
||||||
currentState.setValid(PoolVariableIF::INVALID);
|
currentState.setValid(PoolVariableIF::INVALID);
|
||||||
heaterRequest = HEATER_DONT_CARE;
|
heaterRequest = HEATER_DONT_CARE;
|
||||||
@ -144,13 +145,13 @@ float ThermalComponentCore::getTemperature() {
|
|||||||
|
|
||||||
if (thermalModule != nullptr) {
|
if (thermalModule != nullptr) {
|
||||||
float temperature = thermalModule->getTemperature();
|
float temperature = thermalModule->getTemperature();
|
||||||
if (temperature != ThermalModuleIF::INVALID_TEMPERATURE) {
|
if (temperature != thermal::INVALID_TEMPERATURE) {
|
||||||
return temperature;
|
return temperature;
|
||||||
} else {
|
} else {
|
||||||
return INVALID_TEMPERATURE;
|
return thermal::INVALID_TEMPERATURE;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return INVALID_TEMPERATURE;
|
return thermal::INVALID_TEMPERATURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,7 +227,7 @@ ThermalComponentIF::State ThermalComponentCore::getIgnoredState(int8_t state) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalComponentCore::updateMinMaxTemp() {
|
void ThermalComponentCore::updateMinMaxTemp() {
|
||||||
if (temperature == INVALID_TEMPERATURE) {
|
if (temperature == thermal::INVALID_TEMPERATURE) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (temperature < minTemp) {
|
if (temperature < minTemp) {
|
||||||
|
@ -107,7 +107,7 @@ void ThermalModule::calculateTemperature() {
|
|||||||
moduleTemperature = moduleTemperature.value / numberOfValidSensors;
|
moduleTemperature = moduleTemperature.value / numberOfValidSensors;
|
||||||
moduleTemperature.setValid(PoolVariableIF::VALID);
|
moduleTemperature.setValid(PoolVariableIF::VALID);
|
||||||
} else {
|
} else {
|
||||||
moduleTemperature = INVALID_TEMPERATURE;
|
moduleTemperature.value = thermal::INVALID_TEMPERATURE;
|
||||||
moduleTemperature.setValid(PoolVariableIF::INVALID);
|
moduleTemperature.setValid(PoolVariableIF::INVALID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -219,7 +219,7 @@ void ThermalModule::initialize(PowerSwitchIF* powerSwitch) {
|
|||||||
bool ThermalModule::calculateModuleHeaterRequestAndSetModuleStatus(
|
bool ThermalModule::calculateModuleHeaterRequestAndSetModuleStatus(
|
||||||
Strategy strategy) {
|
Strategy strategy) {
|
||||||
currentState.setValid(PoolVariableIF::VALID);
|
currentState.setValid(PoolVariableIF::VALID);
|
||||||
if (moduleTemperature == INVALID_TEMPERATURE) {
|
if (moduleTemperature == thermal::INVALID_TEMPERATURE) {
|
||||||
currentState = UNKNOWN;
|
currentState = UNKNOWN;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -282,7 +282,7 @@ void ThermalModule::updateTargetTemperatures(ThermalComponentIF* component,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ThermalModule::setOutputInvalid() {
|
void ThermalModule::setOutputInvalid() {
|
||||||
moduleTemperature = INVALID_TEMPERATURE;
|
moduleTemperature = thermal::INVALID_TEMPERATURE;
|
||||||
moduleTemperature.setValid(PoolVariableIF::INVALID);
|
moduleTemperature.setValid(PoolVariableIF::INVALID);
|
||||||
currentState.setValid(PoolVariableIF::INVALID);
|
currentState.setValid(PoolVariableIF::INVALID);
|
||||||
std::list<ComponentData>::iterator iter = components.begin();
|
std::list<ComponentData>::iterator iter = components.begin();
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#define THERMALMODULEIF_H_
|
#define THERMALMODULEIF_H_
|
||||||
|
|
||||||
#include "ThermalComponentIF.h"
|
#include "ThermalComponentIF.h"
|
||||||
|
|
||||||
class AbstractTemperatureSensor;
|
class AbstractTemperatureSensor;
|
||||||
|
|
||||||
class ThermalModuleIF{
|
class ThermalModuleIF{
|
||||||
@ -18,8 +19,6 @@ public:
|
|||||||
NON_OPERATIONAL = 0, OPERATIONAL = 1, UNKNOWN = 2
|
NON_OPERATIONAL = 0, OPERATIONAL = 1, UNKNOWN = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
static constexpr float INVALID_TEMPERATURE = 999;
|
|
||||||
|
|
||||||
virtual ~ThermalModuleIF() {
|
virtual ~ThermalModuleIF() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#ifndef TCSDEFINITIONS_H_
|
#ifndef TCSDEFINITIONS_H_
|
||||||
#define TCSDEFINITIONS_H_
|
#define TCSDEFINITIONS_H_
|
||||||
|
|
||||||
|
namespace thermal {
|
||||||
static const float INVALID_TEMPERATURE = 999;
|
static constexpr float INVALID_TEMPERATURE = 999;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* TCSDEFINITIONS_H_ */
|
#endif /* TCSDEFINITIONS_H_ */
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#include "IntTestMq.h"
|
#include "IntTestMq.h"
|
||||||
#include "../UnittDefinitions.h"
|
#include "../UnittDefinitions.h"
|
||||||
|
|
||||||
#include "../../ipc/MessageQueueIF.h"
|
#include "../../../ipc/MessageQueueIF.h"
|
||||||
#include "../../ipc/QueueFactory.h"
|
#include "../../../ipc/QueueFactory.h"
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "IntTestMutex.h"
|
#include "IntTestMutex.h"
|
||||||
|
|
||||||
#include "../../ipc/MutexFactory.h"
|
#include "../../../ipc/MutexFactory.h"
|
||||||
#include "../UnittDefinitions.h"
|
#include "../UnittDefinitions.h"
|
||||||
|
|
||||||
#if defined(hosted)
|
#if defined(hosted)
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include "IntTestSemaphore.h"
|
#include "IntTestSemaphore.h"
|
||||||
#include "../UnittDefinitions.h"
|
#include "../UnittDefinitions.h"
|
||||||
|
|
||||||
#include "../../tasks/SemaphoreFactory.h"
|
#include "../../../tasks/SemaphoreFactory.h"
|
||||||
#include "../../serviceinterface/ServiceInterfaceStream.h"
|
#include "../../../serviceinterface/ServiceInterfaceStream.h"
|
||||||
#include "../../timemanager/Stopwatch.h"
|
#include "../../../timemanager/Stopwatch.h"
|
||||||
|
|
||||||
|
|
||||||
void testsemaph::testBinSemaph() {
|
void testsemaph::testBinSemaph() {
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
#include "IntTestSerialization.h"
|
#include "IntTestSerialization.h"
|
||||||
#include "../UnittDefinitions.h"
|
#include "../UnittDefinitions.h"
|
||||||
#include "../../serialize/SerializeElement.h"
|
|
||||||
#include "../../serialize/SerialBufferAdapter.h"
|
#include "../../../serialize/SerializeElement.h"
|
||||||
#include "../../serialize/SerializeIF.h"
|
#include "../../../serialize/SerialBufferAdapter.h"
|
||||||
|
#include "../../../serialize/SerializeIF.h"
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#ifndef FSFW_UNITTEST_INTERNAL_INTTESTSERIALIZATION_H_
|
#ifndef FSFW_UNITTEST_INTERNAL_INTTESTSERIALIZATION_H_
|
||||||
#define FSFW_UNITTEST_INTERNAL_INTTESTSERIALIZATION_H_
|
#define FSFW_UNITTEST_INTERNAL_INTTESTSERIALIZATION_H_
|
||||||
|
|
||||||
#include "../../returnvalues/HasReturnvaluesIF.h"
|
#include "../../../returnvalues/HasReturnvaluesIF.h"
|
||||||
#include <array>
|
#include <array>
|
||||||
|
|
||||||
namespace testserialize {
|
namespace testserialize {
|
||||||
|
Loading…
Reference in New Issue
Block a user