Ploc Memory Dumper

This commit is contained in:
2022-08-17 19:19:20 +02:00
parent a91393b4b4
commit eb886dc53c
3 changed files with 32 additions and 29 deletions

View File

@ -40,34 +40,19 @@ ReturnValue_t PlocMemoryDumper::performOperation(uint8_t operationCode) {
return HasReturnvaluesIF::RETURN_OK;
}
ReturnValue_t PlocMemoryDumper::executeAction(ActionId_t actionId, MessageQueueId_t commandedBy,
const uint8_t* data, size_t size) {
ReturnValue_t PlocMemoryDumper::executeAction(Action* action) { return action->handle(); }
ReturnValue_t PlocMemoryDumper::handleAction(DumpMemoryAction* action) {
if (state != State::IDLE) {
return IS_BUSY;
}
switch (actionId) {
case DUMP_MRAM: {
size_t deserializeSize = sizeof(mram.startAddress) + sizeof(mram.endAddress);
SerializeAdapter::deSerialize(&mram.startAddress, &data, &deserializeSize,
SerializeIF::Endianness::BIG);
SerializeAdapter::deSerialize(&mram.endAddress, &data, &deserializeSize,
SerializeIF::Endianness::BIG);
if (mram.endAddress > MAX_MRAM_ADDRESS) {
return MRAM_ADDRESS_TOO_HIGH;
}
if (mram.endAddress <= mram.startAddress) {
return MRAM_INVALID_ADDRESS_COMBINATION;
}
state = State::COMMAND_FIRST_MRAM_DUMP;
break;
}
default: {
sif::warning << "PlocMemoryDumper::executeAction: Received command with invalid action id"
<< std::endl;
return INVALID_ACTION_ID;
}
if (action->endAddress <= action->startAddress) {
return MRAM_INVALID_ADDRESS_COMBINATION;
}
mram.startAddress = action->startAddress;
mram.endAddress = action->endAddress;
state = State::COMMAND_FIRST_MRAM_DUMP;
return EXECUTION_FINISHED;
}