eive-obsw/mission/devices/PlocUpdater.cpp

60 lines
1.7 KiB
C++
Raw Normal View History

2021-08-04 10:20:36 +02:00
#include <mission/devices/PlocUpdater.h>
PlocUpdater::PlocUpdater() : commandActionHelper(this) {
commandQueue = QueueFactory::instance()->createMessageQueue(QUEUE_SIZE);
}
PlocUpdater::~PlocUpdater() {
}
ReturnValue_t PlocUpdater::executeAction(ActionId_t actionId,
MessageQueueId_t commandedBy, const uint8_t* data, uint32_t size) {
if (state == BUSY) {
return UPDATER_BUSY;
}
ReturnValue_t result = HasReturnvaluesIF::RETURN_FAILED;
dumpData.address = 0;
receivedDataSize = 0;
timer.resetTimer();
switch (actionId) {
case UPDATE_NVM0_A:
break;
case UPDATE_NVM0_B:
break;
case UPDATE_NVM1_A:
break;
case UPDATE_NVM1_B:
break;
dumpData.size = STRHandler::IMAGE_HEADER_SIZE;
dumpData.memoryId = STRHandler::ASC_MID_IMAGE;
result = commandActionHelper.commandAction(objects::STR_HANDLER,
STRHandler::ASC_SEND_IMAGE_TC_ID, &dumpData);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
state = EXPECT_IMAGE_SIZE;
break;
case FETCH_MIRU_DATA:
dumpData.memoryId = STRHandler::ASC_MID_MASSMEMORY;
dumpData.size = chunkSize;
result = commandActionHelper.commandAction(objects::STR_HANDLER,
STRHandler::ASC_MIRU_DUMP_DATA_TC_ID, &dumpData);
if (result != HasReturnvaluesIF::RETURN_OK) {
return result;
}
state = MIRU_DATA_REQUESTED;
break;
default:
return INVALID_ACTION_ID;
}
return EXECUTION_FINISHED;
}
MessageQueueId_t PlocUpdater::getCommandQueue() const {
return commandQueue.getId();
}
PlocUpdater::prepare
getCurrentMountPrefix