hk message continued
This commit is contained in:
parent
f9612afe06
commit
2d2316a0c7
@ -193,10 +193,10 @@ ReturnValue_t LocalDataPoolManager::generateHousekeepingPacket(sid_t sid,
|
|||||||
// and now we set a HK message and send it the HK packet destination.
|
// and now we set a HK message and send it the HK packet destination.
|
||||||
CommandMessage hkMessage;
|
CommandMessage hkMessage;
|
||||||
if(isDiagnostics) {
|
if(isDiagnostics) {
|
||||||
HousekeepingMessage::setHkDiagnosticsMessage(&hkMessage, sid, storeId);
|
HousekeepingMessage::setHkDiagnosticsReply(&hkMessage, sid, storeId);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
HousekeepingMessage::setHkReportMessage(&hkMessage, sid, storeId);
|
HousekeepingMessage::setHkReportReply(&hkMessage, sid, storeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(hkQueue == nullptr) {
|
if(hkQueue == nullptr) {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
HousekeepingMessage::~HousekeepingMessage() {}
|
HousekeepingMessage::~HousekeepingMessage() {}
|
||||||
|
|
||||||
void HousekeepingMessage::setHkReportMessage(CommandMessage* message, sid_t sid,
|
void HousekeepingMessage::setHkReportReply(CommandMessage* message, sid_t sid,
|
||||||
store_address_t storeId) {
|
store_address_t storeId) {
|
||||||
message->setCommand(HK_REPORT);
|
message->setCommand(HK_REPORT);
|
||||||
message->setMessageSize(HK_MESSAGE_SIZE);
|
message->setMessageSize(HK_MESSAGE_SIZE);
|
||||||
@ -11,7 +11,7 @@ void HousekeepingMessage::setHkReportMessage(CommandMessage* message, sid_t sid,
|
|||||||
message->setParameter3(storeId.raw);
|
message->setParameter3(storeId.raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HousekeepingMessage::setHkDiagnosticsMessage(CommandMessage* message,
|
void HousekeepingMessage::setHkDiagnosticsReply(CommandMessage* message,
|
||||||
sid_t sid, store_address_t storeId) {
|
sid_t sid, store_address_t storeId) {
|
||||||
message->setCommand(DIAGNOSTICS_REPORT);
|
message->setCommand(DIAGNOSTICS_REPORT);
|
||||||
message->setMessageSize(HK_MESSAGE_SIZE);
|
message->setMessageSize(HK_MESSAGE_SIZE);
|
||||||
@ -19,7 +19,7 @@ void HousekeepingMessage::setHkDiagnosticsMessage(CommandMessage* message,
|
|||||||
message->setParameter3(storeId.raw);
|
message->setParameter3(storeId.raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
sid_t HousekeepingMessage::getHkReportMessage(const CommandMessage *message,
|
sid_t HousekeepingMessage::getHkDataReply(const CommandMessage *message,
|
||||||
store_address_t *storeIdToSet) {
|
store_address_t *storeIdToSet) {
|
||||||
if(storeIdToSet != nullptr) {
|
if(storeIdToSet != nullptr) {
|
||||||
*storeIdToSet = message->getParameter3();
|
*storeIdToSet = message->getParameter3();
|
||||||
@ -27,7 +27,7 @@ sid_t HousekeepingMessage::getHkReportMessage(const CommandMessage *message,
|
|||||||
return getSid(message);
|
return getSid(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HousekeepingMessage::setToggleReportingMessage(CommandMessage *message,
|
void HousekeepingMessage::setToggleReportingCommand(CommandMessage *message,
|
||||||
sid_t sid, bool enableReporting, bool isDiagnostics) {
|
sid_t sid, bool enableReporting, bool isDiagnostics) {
|
||||||
if(isDiagnostics) {
|
if(isDiagnostics) {
|
||||||
if(enableReporting) {
|
if(enableReporting) {
|
||||||
@ -49,6 +49,52 @@ void HousekeepingMessage::setToggleReportingMessage(CommandMessage *message,
|
|||||||
setSid(message, sid);
|
setSid(message, sid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HousekeepingMessage::setStructureReportingCommand(CommandMessage *command,
|
||||||
|
sid_t sid, bool isDiagnostics) {
|
||||||
|
if(isDiagnostics) {
|
||||||
|
command->setCommand(REPORT_DIAGNOSTICS_REPORT_STRUCTURES);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
command->setCommand(REPORT_HK_REPORT_STRUCTURES);
|
||||||
|
}
|
||||||
|
|
||||||
|
setSid(command, sid);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HousekeepingMessage::setOneShotReportCommand(CommandMessage *command,
|
||||||
|
sid_t sid, bool isDiagnostics) {
|
||||||
|
if(isDiagnostics) {
|
||||||
|
command->setCommand(GENERATE_ONE_DIAGNOSTICS_REPORT);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
command->setCommand(GENERATE_ONE_PARAMETER_REPORT);
|
||||||
|
}
|
||||||
|
|
||||||
|
setSid(command, sid);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HousekeepingMessage::setCollectionIntervalModificationCommand(
|
||||||
|
CommandMessage *command, sid_t sid, float collectionInterval,
|
||||||
|
bool isDiagnostics) {
|
||||||
|
if(isDiagnostics) {
|
||||||
|
command->setCommand(MODIFY_DIAGNOSTICS_REPORT_COLLECTION_INTERVAL);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
command->setCommand(MODIFY_PARAMETER_REPORT_COLLECTION_INTERVAL);
|
||||||
|
}
|
||||||
|
command->setParameter3(collectionInterval);
|
||||||
|
|
||||||
|
setSid(command, sid);
|
||||||
|
}
|
||||||
|
|
||||||
|
sid_t HousekeepingMessage::getCollectionIntervalModificationCommand(
|
||||||
|
const CommandMessage* command, float* newCollectionInterval) {
|
||||||
|
if(newCollectionInterval != nullptr) {
|
||||||
|
*newCollectionInterval = command->getParameter3();
|
||||||
|
}
|
||||||
|
|
||||||
|
return getSid(command);
|
||||||
|
}
|
||||||
|
|
||||||
sid_t HousekeepingMessage::getSid(const CommandMessage* message) {
|
sid_t HousekeepingMessage::getSid(const CommandMessage* message) {
|
||||||
sid_t sid;
|
sid_t sid;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#ifndef FRAMEWORK_HK_HOUSEKEEPINGMESSAGE_H_
|
#ifndef FSFW_HOUSEKEEPING_HOUSEKEEPINGMESSAGE_H_
|
||||||
#define FRAMEWORK_HK_HOUSEKEEPINGMESSAGE_H_
|
#define FSFW_HOUSEKEEPING_HOUSEKEEPINGMESSAGE_H_
|
||||||
|
|
||||||
#include "../ipc/CommandMessage.h"
|
#include "../ipc/CommandMessage.h"
|
||||||
#include "../ipc/FwMessageTypes.h"
|
#include "../ipc/FwMessageTypes.h"
|
||||||
@ -49,9 +49,8 @@ public:
|
|||||||
sizeof(sid_t) + sizeof(uint32_t);
|
sizeof(sid_t) + sizeof(uint32_t);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The HK message is initialized with a pointer to a message which holds
|
* Concrete instance is not used, instead this class operates on
|
||||||
* the message data, see CommandMessageIF and getInternalMessage().
|
* command message instances.
|
||||||
* @param message
|
|
||||||
*/
|
*/
|
||||||
HousekeepingMessage() = delete;
|
HousekeepingMessage() = delete;
|
||||||
virtual ~HousekeepingMessage();
|
virtual ~HousekeepingMessage();
|
||||||
@ -68,11 +67,6 @@ public:
|
|||||||
static constexpr Command_t DISABLE_PERIODIC_DIAGNOSTICS_GENERATION =
|
static constexpr Command_t DISABLE_PERIODIC_DIAGNOSTICS_GENERATION =
|
||||||
MAKE_COMMAND_ID(8);
|
MAKE_COMMAND_ID(8);
|
||||||
|
|
||||||
static constexpr Command_t REPORTING_TOGGLE_SUCCESS =
|
|
||||||
MAKE_COMMAND_ID(128);
|
|
||||||
static constexpr Command_t REPORTING_TOGGLE_FAILURE =
|
|
||||||
MAKE_COMMAND_ID(129);
|
|
||||||
|
|
||||||
static constexpr Command_t REPORT_HK_REPORT_STRUCTURES = MAKE_COMMAND_ID(9);
|
static constexpr Command_t REPORT_HK_REPORT_STRUCTURES = MAKE_COMMAND_ID(9);
|
||||||
static constexpr Command_t REPORT_DIAGNOSTICS_REPORT_STRUCTURES =
|
static constexpr Command_t REPORT_DIAGNOSTICS_REPORT_STRUCTURES =
|
||||||
MAKE_COMMAND_ID(11);
|
MAKE_COMMAND_ID(11);
|
||||||
@ -88,33 +82,48 @@ public:
|
|||||||
static constexpr Command_t GENERATE_ONE_DIAGNOSTICS_REPORT =
|
static constexpr Command_t GENERATE_ONE_DIAGNOSTICS_REPORT =
|
||||||
MAKE_COMMAND_ID(28);
|
MAKE_COMMAND_ID(28);
|
||||||
|
|
||||||
static constexpr Command_t APPEND_PARAMETERS_TO_PARAMETER_REPORT_STRUCTURE =
|
|
||||||
MAKE_COMMAND_ID(29);
|
|
||||||
static constexpr Command_t APPEND_PARAMETERS_TO_DIAGNOSTICS_REPORT_STRUCTURE =
|
|
||||||
MAKE_COMMAND_ID(30);
|
|
||||||
|
|
||||||
static constexpr Command_t MODIFY_PARAMETER_REPORT_COLLECTION_INTERVAL =
|
static constexpr Command_t MODIFY_PARAMETER_REPORT_COLLECTION_INTERVAL =
|
||||||
MAKE_COMMAND_ID(31);
|
MAKE_COMMAND_ID(31);
|
||||||
static constexpr Command_t MODIFY_DIAGNOSTICS_REPORT_COLLECTION_INTERVAL =
|
static constexpr Command_t MODIFY_DIAGNOSTICS_REPORT_COLLECTION_INTERVAL =
|
||||||
MAKE_COMMAND_ID(32);
|
MAKE_COMMAND_ID(32);
|
||||||
|
|
||||||
|
static constexpr Command_t HK_REQUEST_SUCCESS =
|
||||||
|
MAKE_COMMAND_ID(128);
|
||||||
|
static constexpr Command_t HK_REQUEST_FAILURE =
|
||||||
|
MAKE_COMMAND_ID(129);
|
||||||
|
|
||||||
static sid_t getSid(const CommandMessage* message);
|
static sid_t getSid(const CommandMessage* message);
|
||||||
|
|
||||||
static void setToggleReportingMessage(CommandMessage* message, sid_t sid,
|
static void setToggleReportingCommand(CommandMessage* command, sid_t sid,
|
||||||
bool enableReporting, bool isDiagnostics);
|
bool enableReporting, bool isDiagnostics);
|
||||||
static void setHkReportMessage(CommandMessage* message, sid_t sid,
|
static void setStructureReportingCommand(CommandMessage* command, sid_t sid,
|
||||||
|
bool isDiagnostics);
|
||||||
|
static void setOneShotReportCommand(CommandMessage* command, sid_t sid,
|
||||||
|
bool isDiagnostics);
|
||||||
|
static void setCollectionIntervalModificationCommand(
|
||||||
|
CommandMessage* command, sid_t sid, float collectionInterval,
|
||||||
|
bool isDiagnostics);
|
||||||
|
|
||||||
|
static void setHkReportReply(CommandMessage* reply, sid_t sid,
|
||||||
store_address_t storeId);
|
store_address_t storeId);
|
||||||
static void setHkDiagnosticsMessage(CommandMessage* message, sid_t sid,
|
static void setHkDiagnosticsReply(CommandMessage* reply, sid_t sid,
|
||||||
store_address_t storeId);
|
store_address_t storeId);
|
||||||
|
|
||||||
//! Get the respective SID and store ID. Command ID can be used beforehand
|
/**
|
||||||
//! to distinguish between diagnostics and regular HK packets
|
* @brief Generic getter function for housekeeping data replies
|
||||||
static sid_t getHkReportMessage(const CommandMessage* message,
|
* @details
|
||||||
|
* Command ID can be used beforehand to distinguish between diagnostics and
|
||||||
|
* regular HK packets. This getter function should be used for the
|
||||||
|
* command IDs 10, 12, 25 and 26.
|
||||||
|
*/
|
||||||
|
static sid_t getHkDataReply(const CommandMessage* message,
|
||||||
store_address_t * storeIdToSet);
|
store_address_t * storeIdToSet);
|
||||||
|
static sid_t getCollectionIntervalModificationCommand(
|
||||||
|
const CommandMessage* command, float* newCollectionInterval);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void setSid(CommandMessage* message, sid_t sid);
|
static void setSid(CommandMessage* message, sid_t sid);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif /* FRAMEWORK_HK_HOUSEKEEPINGMESSAGE_H_ */
|
#endif /* FSFW_HOUSEKEEPING_HOUSEKEEPINGMESSAGE_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user