action
container
contrib
controller
coordinates
datalinklayer
datapool
datapoollocal
defaultcfg
devicehandlers
doc
events
fdir
globalfunctions
health
housekeeping
internalError
ipc
logo
memory
AcceptsMemoryMessagesIF.h
CMakeLists.txt
HasFileSystemIF.h
HasMemoryIF.h
MemoryHelper.cpp
MemoryHelper.h
MemoryMessage.cpp
MemoryMessage.h
modes
monitoring
objectmanager
osal
parameters
power
pus
returnvalues
rmap
serialize
serviceinterface
storagemanager
subsystem
tasks
tcdistribution
thermal
timemanager
tmstorage
tmtcpacket
tmtcservices
unittest
.gitignore
.gitmodules
CHANGELOG
CMakeLists.txt
FSFWVersion.h
LICENSE
NOTICE
README.md
fsfw.mk
platform.h
108 lines
2.9 KiB
C++
108 lines
2.9 KiB
C++
#include "MemoryMessage.h"
|
|
|
|
#include "../objectmanager/ObjectManagerIF.h"
|
|
|
|
uint32_t MemoryMessage::getAddress(const CommandMessage* message) {
|
|
return message->getParameter();
|
|
}
|
|
|
|
store_address_t MemoryMessage::getStoreID(const CommandMessage* message) {
|
|
store_address_t temp;
|
|
temp.raw = message->getParameter2();
|
|
return temp;
|
|
}
|
|
|
|
uint32_t MemoryMessage::getLength(const CommandMessage* message) {
|
|
return message->getParameter2();
|
|
}
|
|
|
|
void MemoryMessage::setMemoryDumpCommand(CommandMessage* message,
|
|
uint32_t address, uint32_t length) {
|
|
message->setCommand(CMD_MEMORY_DUMP);
|
|
message->setParameter( address );
|
|
message->setParameter2( length );
|
|
}
|
|
|
|
void MemoryMessage::setMemoryDumpReply(CommandMessage* message,
|
|
store_address_t storageID) {
|
|
message->setCommand(REPLY_MEMORY_DUMP);
|
|
message->setParameter2( storageID.raw );
|
|
}
|
|
|
|
void MemoryMessage::setMemoryLoadCommand(CommandMessage* message,
|
|
uint32_t address, store_address_t storageID) {
|
|
message->setCommand(CMD_MEMORY_LOAD);
|
|
message->setParameter( address );
|
|
message->setParameter2( storageID.raw );
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::getErrorCode(const CommandMessage* message) {
|
|
return message->getParameter();
|
|
}
|
|
|
|
void MemoryMessage::clear(CommandMessage* message) {
|
|
switch (message->getCommand()) {
|
|
case CMD_MEMORY_LOAD:
|
|
case REPLY_MEMORY_DUMP: {
|
|
StorageManagerIF *ipcStore = objectManager->get<StorageManagerIF>(
|
|
objects::IPC_STORE);
|
|
if (ipcStore != NULL) {
|
|
ipcStore->deleteData(getStoreID(message));
|
|
}
|
|
}
|
|
/* NO BREAK falls through*/
|
|
case CMD_MEMORY_DUMP:
|
|
case CMD_MEMORY_CHECK:
|
|
case REPLY_MEMORY_CHECK:
|
|
case END_OF_MEMORY_COPY:
|
|
message->setCommand(CommandMessage::CMD_NONE);
|
|
message->setParameter(0);
|
|
message->setParameter2(0);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void MemoryMessage::setMemoryCheckCommand(CommandMessage* message,
|
|
uint32_t address, uint32_t length) {
|
|
message->setCommand(CMD_MEMORY_CHECK);
|
|
message->setParameter( address );
|
|
message->setParameter2( length );
|
|
}
|
|
|
|
void MemoryMessage::setMemoryCheckReply(CommandMessage* message,
|
|
uint16_t crc) {
|
|
message->setCommand(REPLY_MEMORY_CHECK);
|
|
message->setParameter( crc );
|
|
}
|
|
|
|
void MemoryMessage::setCrcReturnValue(CommandMessage* message,
|
|
ReturnValue_t returnValue){
|
|
message->setParameter(returnValue<<16);
|
|
};
|
|
|
|
uint16_t MemoryMessage::getCrc(const CommandMessage* message) {
|
|
return (uint16_t)(message->getParameter());
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::getCrcReturnValue(const CommandMessage* message){
|
|
return (message->getParameter()>>16);
|
|
}
|
|
|
|
Command_t MemoryMessage::getInitialCommand(const CommandMessage* message) {
|
|
return message->getParameter2();
|
|
}
|
|
|
|
void MemoryMessage::setMemoryReplyFailed(CommandMessage* message,
|
|
ReturnValue_t errorCode, Command_t initialCommand) {
|
|
message->setCommand(REPLY_MEMORY_FAILED);
|
|
message->setParameter(errorCode);
|
|
message->setParameter2(initialCommand);
|
|
}
|
|
|
|
void MemoryMessage::setMemoryCopyEnd(CommandMessage* message) {
|
|
message->setCommand(END_OF_MEMORY_COPY);
|
|
message->setParameter(0);
|
|
message->setParameter2(0);
|
|
}
|
|
|