added new messages
This commit is contained in:
@ -1,49 +1,12 @@
|
||||
#ifndef FSFW_HOUSEKEEPING_HOUSEKEEPINGMESSAGE_H_
|
||||
#define FSFW_HOUSEKEEPING_HOUSEKEEPINGMESSAGE_H_
|
||||
|
||||
#include "../datapoollocal/locPoolDefinitions.h"
|
||||
#include "../ipc/CommandMessage.h"
|
||||
#include "../ipc/FwMessageTypes.h"
|
||||
#include "../objectmanager/frameworkObjects.h"
|
||||
#include "../objectmanager/SystemObjectIF.h"
|
||||
#include "../storagemanager/StorageManagerIF.h"
|
||||
|
||||
union sid_t {
|
||||
static constexpr uint64_t INVALID_SID = -1;
|
||||
static constexpr uint32_t INVALID_SET_ID = -1;
|
||||
static constexpr uint32_t INVALID_OBJECT_ID = objects::NO_OBJECT;
|
||||
sid_t(): raw(INVALID_SID) {}
|
||||
|
||||
sid_t(object_id_t objectId, uint32_t setId):
|
||||
objectId(objectId),
|
||||
ownerSetId(setId) {}
|
||||
|
||||
struct {
|
||||
object_id_t objectId ;
|
||||
/**
|
||||
* A generic 32 bit ID to identify unique HK packets for a single
|
||||
* object. For example, the DeviceCommandId_t is used for
|
||||
* DeviceHandlers
|
||||
*/
|
||||
uint32_t ownerSetId;
|
||||
};
|
||||
/**
|
||||
* Alternative access to the raw value. This is also the size of the type.
|
||||
*/
|
||||
uint64_t raw;
|
||||
|
||||
bool notSet() const {
|
||||
return raw == INVALID_SID;
|
||||
}
|
||||
|
||||
bool operator==(const sid_t& other) const {
|
||||
return raw == other.raw;
|
||||
}
|
||||
|
||||
bool operator!=(const sid_t& other) const {
|
||||
return not (raw == other.raw);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @brief Special command message type for housekeeping messages
|
||||
@ -101,14 +64,20 @@ public:
|
||||
static constexpr Command_t HK_REQUEST_FAILURE =
|
||||
MAKE_COMMAND_ID(129);
|
||||
|
||||
static constexpr Command_t UPDATE_NOTIFICATION = MAKE_COMMAND_ID(130);
|
||||
static constexpr Command_t UPDATE_SNAPSHOT = MAKE_COMMAND_ID(131);
|
||||
static constexpr Command_t UPDATE_NOTIFICATION_SET =
|
||||
MAKE_COMMAND_ID(130);
|
||||
static constexpr Command_t UPDATE_NOTIFICATION_VARIABLE =
|
||||
MAKE_COMMAND_ID(131);
|
||||
|
||||
static constexpr Command_t UPDATE_HK_REPORT = MAKE_COMMAND_ID(132);
|
||||
static constexpr Command_t UPDATE_SNAPSHOT_SET = MAKE_COMMAND_ID(132);
|
||||
static constexpr Command_t UPDATE_SNAPSHOT_VARIABLE = MAKE_COMMAND_ID(133);
|
||||
|
||||
//static constexpr Command_t UPDATE_HK_REPORT = MAKE_COMMAND_ID(134);
|
||||
|
||||
static sid_t getSid(const CommandMessage* message);
|
||||
|
||||
/** Setter functions */
|
||||
/* Housekeeping Interface Messages */
|
||||
|
||||
static void setToggleReportingCommand(CommandMessage* command, sid_t sid,
|
||||
bool enableReporting, bool isDiagnostics);
|
||||
static void setStructureReportingCommand(CommandMessage* command, sid_t sid,
|
||||
@ -148,6 +117,28 @@ public:
|
||||
static sid_t getCollectionIntervalModificationCommand(
|
||||
const CommandMessage* command, float* newCollectionInterval);
|
||||
|
||||
|
||||
/* Update Notification Messages */
|
||||
|
||||
static void setUpdateNotificationSetCommand(CommandMessage* command,
|
||||
sid_t sid);
|
||||
static void setUpdateNotificationVariableCommand(CommandMessage* command,
|
||||
lp_id_t localPoolId);
|
||||
|
||||
static void setUpdateSnapshotSetCommand(CommandMessage* command, sid_t sid,
|
||||
store_address_t storeId);
|
||||
static void setUpdateSnapshotVariableCommand(CommandMessage* command,
|
||||
lp_id_t localPoolId, store_address_t storeId);
|
||||
|
||||
sid_t getUpdateNotificationSetCommand(const CommandMessage* command);
|
||||
lp_id_t getUpdateNotificationVariableCommand(const CommandMessage* command);
|
||||
|
||||
sid_t getUpdateSnapshotSetCommand(const CommandMessage* command,
|
||||
store_address_t* storeId);
|
||||
lp_id_t getUpdateSnapshotVariableCommand(const CommandMessage* command,
|
||||
store_address_t* storeId);
|
||||
|
||||
/** Utility */
|
||||
static void clear(CommandMessage* message);
|
||||
private:
|
||||
static void setSid(CommandMessage* message, sid_t sid);
|
||||
|
Reference in New Issue
Block a user