eive-obsw/mission/tmtc/Service15TmStorage.cpp

60 lines
2.3 KiB
C++
Raw Normal View History

2022-10-24 10:14:58 +02:00
#include "Service15TmStorage.h"
2022-12-14 13:51:24 +01:00
#include <fsfw/objectmanager/ObjectManager.h>
#include <fsfw/tmstorage/TmStoreFrontendSimpleIF.h>
#include "eive/objects.h"
2022-10-24 10:26:00 +02:00
using namespace returnvalue;
2022-10-24 10:14:58 +02:00
2022-10-24 10:26:00 +02:00
Service15TmStorage::Service15TmStorage(object_id_t objectId, uint16_t apid,
uint8_t numParallelCommands, uint16_t commandTimeoutSecs,
size_t queueDepth)
: CommandingServiceBase(objectId, apid, "PUS Service 15", 15, numParallelCommands,
commandTimeoutSecs, queueDepth) {}
2022-12-14 11:29:32 +01:00
ReturnValue_t Service15TmStorage::isValidSubservice(uint8_t subservice) {
switch (subservice) {
2022-12-14 13:19:14 +01:00
case (Subservices::START_BY_TIME_RANGE_RETRIEVAL): {
return OK;
}
case (Subservices::DELETE_UP_TO): {
return OK;
}
2022-12-14 11:29:32 +01:00
}
return FAILED;
}
2022-10-24 10:26:00 +02:00
ReturnValue_t Service15TmStorage::getMessageQueueAndObject(uint8_t subservice,
const uint8_t *tcData, size_t tcDataLen,
MessageQueueId_t *id,
object_id_t *objectId) {
2022-12-14 13:51:24 +01:00
object_id_t targetObjectId;
SerializeAdapter::deSerialize(&targetObjectId, &tcData, &tcDataLen,
SerializeIF::Endianness::NETWORK);
if (targetObjectId == objects::CFDP_TM_STORE) {
*objectId = objects::CFDP_TM_FUNNEL;
} else {
*objectId = objects::PUS_TM_FUNNEL;
}
auto *frontendIF = ObjectManager::instance()->get<TmStoreFrontendSimpleIF>(*objectId);
if (frontendIF == nullptr) {
return FAILED;
}
*id = frontendIF->getCommandQueue();
2022-10-24 10:26:00 +02:00
return OK;
2022-10-24 10:14:58 +02:00
}
2022-10-24 10:26:00 +02:00
ReturnValue_t Service15TmStorage::prepareCommand(CommandMessage *message, uint8_t subservice,
const uint8_t *tcData, size_t tcDataLen,
uint32_t *state, object_id_t objectId) {
return OK;
2022-10-24 10:14:58 +02:00
}
2022-10-24 10:26:00 +02:00
ReturnValue_t Service15TmStorage::handleReply(const CommandMessage *reply,
Command_t previousCommand, uint32_t *state,
CommandMessage *optionalNextCommand,
object_id_t objectId, bool *isStep) {
return OK;
2022-10-24 10:14:58 +02:00
}