fsfw/src/fsfw/health/HealthMessage.h

37 lines
1.3 KiB
C
Raw Normal View History

2020-10-29 17:52:28 +01:00
#ifndef FSFW_HEALTH_HEALTHMESSAGE_H_
#define FSFW_HEALTH_HEALTHMESSAGE_H_
2020-08-13 20:53:35 +02:00
#include "HasHealthIF.h"
2021-07-13 20:22:54 +02:00
#include "fsfw/ipc/CommandMessage.h"
class HealthMessage {
2022-02-02 10:29:30 +01:00
public:
static const uint8_t MESSAGE_ID = messagetypes::HEALTH_COMMAND;
2020-10-29 17:52:28 +01:00
2022-02-02 10:29:30 +01:00
static const Command_t HEALTH_SET = MAKE_COMMAND_ID(1);
// No reply expected, health will be announced as event!
static const Command_t HEALTH_ANNOUNCE = MAKE_COMMAND_ID(2);
// Same as before, but all objects in health table will
// announce their health as events.
static const Command_t HEALTH_ANNOUNCE_ALL = MAKE_COMMAND_ID(3);
2020-10-29 17:52:28 +01:00
2022-02-02 10:29:30 +01:00
static const Command_t HEALTH_INFO = MAKE_COMMAND_ID(5);
static const Command_t REPLY_HEALTH_SET = MAKE_COMMAND_ID(6);
2022-02-02 10:29:30 +01:00
static void setHealthMessage(CommandMessage *message, Command_t command,
HasHealthIF::HealthState health,
HasHealthIF::HealthState oldHealth = HasHealthIF::FAULTY);
static void setHealthMessage(CommandMessage *message, Command_t command);
2022-02-02 10:29:30 +01:00
static HasHealthIF::HealthState getHealth(const CommandMessage *message);
2022-02-02 10:29:30 +01:00
static HasHealthIF::HealthState getOldHealth(const CommandMessage *message);
2022-02-02 10:29:30 +01:00
static void clear(CommandMessage *message);
2022-02-02 10:29:30 +01:00
private:
HealthMessage();
};
2020-10-29 17:52:28 +01:00
#endif /* FSFW_HEALTH_HEALTHMESSAGE_H_ */