2020-09-26 14:51:00 +02:00
|
|
|
#ifndef FSFW_MEMORY_MEMORYMESSAGE_H_
|
|
|
|
#define FSFW_MEMORY_MEMORYMESSAGE_H_
|
2016-06-15 23:48:41 +02:00
|
|
|
|
2020-08-13 20:53:35 +02:00
|
|
|
#include "../ipc/CommandMessage.h"
|
|
|
|
#include "../storagemanager/StorageManagerIF.h"
|
2016-06-15 23:48:41 +02:00
|
|
|
|
|
|
|
class MemoryMessage {
|
2022-02-02 10:29:30 +01:00
|
|
|
public:
|
|
|
|
// Instantiation forbidden.
|
|
|
|
MemoryMessage() = delete;
|
|
|
|
|
|
|
|
static const uint8_t MESSAGE_ID = messagetypes::MEMORY;
|
|
|
|
static const Command_t CMD_MEMORY_LOAD = MAKE_COMMAND_ID(0x01);
|
|
|
|
static const Command_t CMD_MEMORY_DUMP = MAKE_COMMAND_ID(0x02);
|
|
|
|
static const Command_t CMD_MEMORY_CHECK = MAKE_COMMAND_ID(0x03);
|
|
|
|
static const Command_t REPLY_MEMORY_DUMP = MAKE_COMMAND_ID(0x10);
|
|
|
|
static const Command_t REPLY_MEMORY_CHECK = MAKE_COMMAND_ID(0x30);
|
|
|
|
static const Command_t REPLY_MEMORY_FAILED = MAKE_COMMAND_ID(0xE0);
|
|
|
|
static const Command_t END_OF_MEMORY_COPY = MAKE_COMMAND_ID(0xF0);
|
|
|
|
|
|
|
|
static uint32_t getAddress(const CommandMessage* message);
|
|
|
|
static store_address_t getStoreID(const CommandMessage* message);
|
|
|
|
static uint32_t getLength(const CommandMessage* message);
|
|
|
|
static ReturnValue_t getErrorCode(const CommandMessage* message);
|
|
|
|
static uint16_t getCrc(const CommandMessage* message);
|
|
|
|
static ReturnValue_t getCrcReturnValue(const CommandMessage* message);
|
|
|
|
static Command_t getInitialCommand(const CommandMessage* message);
|
|
|
|
|
|
|
|
static void setMemoryDumpCommand(CommandMessage* message, uint32_t address, uint32_t length);
|
|
|
|
static void setMemoryDumpReply(CommandMessage* message, store_address_t storageID);
|
|
|
|
static void setMemoryLoadCommand(CommandMessage* message, uint32_t address,
|
|
|
|
store_address_t storageID);
|
|
|
|
static void setMemoryCheckCommand(CommandMessage* message, uint32_t address, uint32_t length);
|
|
|
|
static void setMemoryCheckReply(CommandMessage* message, uint16_t crc);
|
|
|
|
static void setMemoryReplyFailed(CommandMessage* message, ReturnValue_t errorCode,
|
|
|
|
Command_t initialCommand);
|
|
|
|
static void setMemoryCopyEnd(CommandMessage* message);
|
|
|
|
static void setCrcReturnValue(CommandMessage*, ReturnValue_t returnValue);
|
|
|
|
|
|
|
|
static void clear(CommandMessage* message);
|
2016-06-15 23:48:41 +02:00
|
|
|
};
|
|
|
|
|
2020-09-26 14:51:00 +02:00
|
|
|
#endif /* FSFW_MEMORY_MEMORYMESSAGE_H_ */
|