61 lines
1.9 KiB
C++
61 lines
1.9 KiB
C++
#ifndef FSFW_DATAPOOLGLOB_DATAPOOLADMIN_H_
|
|
#define FSFW_DATAPOOLGLOB_DATAPOOLADMIN_H_
|
|
|
|
#include "DataPoolParameterWrapper.h"
|
|
|
|
#include "../objectmanager/SystemObject.h"
|
|
#include "../returnvalues/HasReturnvaluesIF.h"
|
|
#include "../tasks/ExecutableObjectIF.h"
|
|
#include "../action/HasActionsIF.h"
|
|
#include "../ipc/MessageQueueIF.h"
|
|
#include "../parameters/ReceivesParameterMessagesIF.h"
|
|
#include "../action/SimpleActionHelper.h"
|
|
#include "../memory/MemoryHelper.h"
|
|
|
|
|
|
class DataPoolAdmin: public HasActionsIF,
|
|
public ExecutableObjectIF,
|
|
public AcceptsMemoryMessagesIF,
|
|
public HasReturnvaluesIF,
|
|
public ReceivesParameterMessagesIF,
|
|
public SystemObject {
|
|
public:
|
|
static const ActionId_t SET_VALIDITY = 1;
|
|
|
|
DataPoolAdmin(object_id_t objectId);
|
|
|
|
~DataPoolAdmin();
|
|
|
|
ReturnValue_t performOperation(uint8_t opCode);
|
|
|
|
MessageQueueId_t getCommandQueue() const;
|
|
|
|
ReturnValue_t handleMemoryLoad(uint32_t address, const uint8_t* data,
|
|
size_t size, uint8_t** dataPointer);
|
|
ReturnValue_t handleMemoryDump(uint32_t address, size_t size,
|
|
uint8_t** dataPointer, uint8_t* copyHere);
|
|
|
|
ReturnValue_t executeAction(ActionId_t actionId,
|
|
MessageQueueId_t commandedBy, const uint8_t* data, size_t size);
|
|
|
|
//not implemented as ParameterHelper is no used
|
|
ReturnValue_t getParameter(uint8_t domainId, uint16_t parameterId,
|
|
ParameterWrapper *parameterWrapper,
|
|
const ParameterWrapper *newValues, uint16_t startAtIndex);
|
|
|
|
ReturnValue_t initialize();
|
|
private:
|
|
StorageManagerIF *storage;
|
|
MessageQueueIF* commandQueue;
|
|
MemoryHelper memoryHelper;
|
|
SimpleActionHelper actionHelper;
|
|
void handleCommand();
|
|
ReturnValue_t handleParameterCommand(CommandMessage *command);
|
|
ReturnValue_t sendParameter(MessageQueueId_t to, uint32_t id,
|
|
const DataPoolParameterWrapper* wrapper);
|
|
void rejectCommand(MessageQueueId_t to, ReturnValue_t reason,
|
|
Command_t initialCommand);
|
|
};
|
|
|
|
#endif /* FSFW_DATAPOOLGLOB_DATAPOOLADMIN_H_ */
|