Merge pull request 'Heater Health Device' (#597) from heater_health_device into develop
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #597 Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
This commit is contained in:
commit
c8472f222c
@ -32,6 +32,10 @@ will consitute of a breaking change warranting a new major release:
|
||||
|
||||
- STR `wire` library updated to v10.3. Submodule renamed to `sagittactl`.
|
||||
|
||||
## Changed
|
||||
|
||||
- Reject `NEEDS_RECOVERY` health commands for the heater health devices.
|
||||
|
||||
## Added
|
||||
|
||||
- Add a way for the MAX31865 RTD handlers to recognize faulty/broken/off sensor devices.
|
||||
|
@ -287,15 +287,17 @@ void ObjectFactory::produceGenericObjects(HealthTableIF** healthTable_, PusTmFun
|
||||
void ObjectFactory::createGenericHeaterComponents(GpioIF& gpioIF, PowerSwitchIF& pwrSwitcher,
|
||||
HeaterHandler*& heaterHandler) {
|
||||
HeaterHelper helper({{
|
||||
{new HealthDevice(objects::HEATER_0_PLOC_PROC_BRD, MessageQueueIF::NO_QUEUE),
|
||||
{new HeaterHealthDev(objects::HEATER_0_PLOC_PROC_BRD, MessageQueueIF::NO_QUEUE),
|
||||
gpioIds::HEATER_0},
|
||||
{new HealthDevice(objects::HEATER_1_PCDU_BRD, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_1},
|
||||
{new HealthDevice(objects::HEATER_2_ACS_BRD, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_2},
|
||||
{new HealthDevice(objects::HEATER_3_OBC_BRD, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_3},
|
||||
{new HealthDevice(objects::HEATER_4_CAMERA, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_4},
|
||||
{new HealthDevice(objects::HEATER_5_STR, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_5},
|
||||
{new HealthDevice(objects::HEATER_6_DRO, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_6},
|
||||
{new HealthDevice(objects::HEATER_7_SYRLINKS, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_7},
|
||||
{new HeaterHealthDev(objects::HEATER_1_PCDU_BRD, MessageQueueIF::NO_QUEUE),
|
||||
gpioIds::HEATER_1},
|
||||
{new HeaterHealthDev(objects::HEATER_2_ACS_BRD, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_2},
|
||||
{new HeaterHealthDev(objects::HEATER_3_OBC_BRD, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_3},
|
||||
{new HeaterHealthDev(objects::HEATER_4_CAMERA, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_4},
|
||||
{new HeaterHealthDev(objects::HEATER_5_STR, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_5},
|
||||
{new HeaterHealthDev(objects::HEATER_6_DRO, MessageQueueIF::NO_QUEUE), gpioIds::HEATER_6},
|
||||
{new HeaterHealthDev(objects::HEATER_7_SYRLINKS, MessageQueueIF::NO_QUEUE),
|
||||
gpioIds::HEATER_7},
|
||||
}});
|
||||
heaterHandler = new HeaterHandler(objects::HEATER_HANDLER, &gpioIF, helper, &pwrSwitcher,
|
||||
power::Switches::PDU2_CH3_TCS_BOARD_HEATER_IN_8V);
|
||||
|
@ -1,3 +1,4 @@
|
||||
target_sources(
|
||||
${LIB_EIVE_MISSION} PRIVATE HeaterHandler.cpp max1227.cpp
|
||||
Max31865EiveHandler.cpp Tmp1075Handler.cpp)
|
||||
${LIB_EIVE_MISSION}
|
||||
PRIVATE HeaterHandler.cpp max1227.cpp Max31865EiveHandler.cpp
|
||||
Tmp1075Handler.cpp HeaterHealthDev.cpp)
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include <fsfw/tasks/ExecutableObjectIF.h>
|
||||
#include <fsfw/timemanager/Countdown.h>
|
||||
#include <fsfw_hal/common/gpio/GpioIF.h>
|
||||
#include <mission/tcs/HeaterHealthDev.h>
|
||||
|
||||
#include <array>
|
||||
#include <utility>
|
||||
@ -27,7 +28,7 @@
|
||||
class PowerSwitchIF;
|
||||
class HealthTableIF;
|
||||
|
||||
using HeaterPair = std::pair<HealthDevice*, gpioId_t>;
|
||||
using HeaterPair = std::pair<HeaterHealthDev*, gpioId_t>;
|
||||
|
||||
struct HeaterHelper {
|
||||
public:
|
||||
|
12
mission/tcs/HeaterHealthDev.cpp
Normal file
12
mission/tcs/HeaterHealthDev.cpp
Normal file
@ -0,0 +1,12 @@
|
||||
#include "HeaterHealthDev.h"
|
||||
|
||||
HeaterHealthDev::HeaterHealthDev(object_id_t setObjectId, MessageQueueId_t parentQueue)
|
||||
: HealthDevice(setObjectId, parentQueue) {}
|
||||
|
||||
ReturnValue_t HeaterHealthDev::setHealth(HealthState health) {
|
||||
// Does not make sense for a simple heater.
|
||||
if (health == HealthState::NEEDS_RECOVERY) {
|
||||
return returnvalue::FAILED;
|
||||
}
|
||||
return HealthDevice::setHealth(health);
|
||||
}
|
12
mission/tcs/HeaterHealthDev.h
Normal file
12
mission/tcs/HeaterHealthDev.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef MISSION_TCS_HEATERHEALTHDEV_H_
|
||||
#define MISSION_TCS_HEATERHEALTHDEV_H_
|
||||
#include <fsfw/devicehandlers/HealthDevice.h>
|
||||
|
||||
class HeaterHealthDev : public HealthDevice {
|
||||
public:
|
||||
HeaterHealthDev(object_id_t setObjectId, MessageQueueId_t parentQueue);
|
||||
|
||||
ReturnValue_t setHealth(HealthState health) override;
|
||||
};
|
||||
|
||||
#endif /* MISSION_TCS_HEATERHEALTHDEV_H_ */
|
2
thirdparty/sagittactl
vendored
2
thirdparty/sagittactl
vendored
@ -1 +1 @@
|
||||
Subproject commit 64332216c193fa6483258060b53fc2842c08dcf4
|
||||
Subproject commit 29e876671a72fcdb0b393e2f692303725f00724f
|
Loading…
Reference in New Issue
Block a user