From d37f48336b922293575791da238b0a4f2f8f4c6d Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Dec 2022 15:56:40 +0100 Subject: [PATCH] ok im done --- common/config/eive/objects.h | 3 ++- mission/tmtc/PusTmFunnel.cpp | 13 +++++++------ mission/tmtc/PusTmFunnel.h | 3 ++- mission/tmtc/TmStore.cpp | 13 +++++++++++-- mission/tmtc/TmStore.h | 1 + 5 files changed, 23 insertions(+), 10 deletions(-) diff --git a/common/config/eive/objects.h b/common/config/eive/objects.h index 83b103ce..ede974fb 100644 --- a/common/config/eive/objects.h +++ b/common/config/eive/objects.h @@ -147,7 +147,8 @@ enum commonObjects : uint32_t { CFDP_HANDLER = 0x73000205, CFDP_DISTRIBUTOR = 0x73000206, MISC_STORE = 0x73020001, - EVENT_STORE = 0x73020002, + OK_STORE = 0x73020002, + NOT_OK_STORE = 0x73020003, }; } diff --git a/mission/tmtc/PusTmFunnel.cpp b/mission/tmtc/PusTmFunnel.cpp index 832656e7..c5c0b4eb 100644 --- a/mission/tmtc/PusTmFunnel.cpp +++ b/mission/tmtc/PusTmFunnel.cpp @@ -11,14 +11,15 @@ PusTmFunnel::PusTmFunnel(object_id_t objectId, TimeReaderIF &timeReader, Storage : TmFunnelBase(objectId, tmStore, messageDepth), timeReader(timeReader), miscStore(objects::MISC_STORE, "misc", RolloverInterval::HOURLY, 8, currentTv, sdcMan), - eventStore(objects::EVENT_STORE, "event", RolloverInterval::HOURLY, 1, currentTv, sdcMan), + okStore(objects::OK_STORE, "event", RolloverInterval::MINUTELY, 30, currentTv, sdcMan), + notOkStore(objects::NOT_OK_STORE, "event", RolloverInterval::MINUTELY, 30, currentTv, sdcMan), sdcMan(sdcMan) { Clock::getClock_timeval(¤tTv); Clock::getUptime(&lastTvUpdate); miscStore.addApid(config::EIVE_PUS_APID); miscStore.addService(17); - eventStore.addApid(config::EIVE_PUS_APID); - eventStore.addService(5); + okStore.addApid(config::EIVE_PUS_APID); + okStore.addServiceSubservice(5, 1); } PusTmFunnel::~PusTmFunnel() = default; @@ -72,11 +73,11 @@ ReturnValue_t PusTmFunnel::handlePacket(TmTcMessage &message) { if (sdcMan.isSdCardUsable(std::nullopt)) { if (not storesInitialized) { miscStore.updateBaseDir(); - eventStore.updateBaseDir(); + okStore.updateBaseDir(); storesInitialized = true; } miscStore.passPacket(packet); - eventStore.passPacket(packet); + okStore.passPacket(packet); } for (unsigned int idx = 0; idx < destinations.size(); idx++) { @@ -115,7 +116,7 @@ const char *PusTmFunnel::getName() const { return "PUS TM Funnel"; } ReturnValue_t PusTmFunnel::initialize() { if (not storesInitialized and sdcMan.isSdCardUsable(std::nullopt)) { miscStore.updateBaseDir(); - eventStore.updateBaseDir(); + okStore.updateBaseDir(); storesInitialized = true; } return returnvalue::OK; diff --git a/mission/tmtc/PusTmFunnel.h b/mission/tmtc/PusTmFunnel.h index c4132379..26bbfec2 100644 --- a/mission/tmtc/PusTmFunnel.h +++ b/mission/tmtc/PusTmFunnel.h @@ -43,7 +43,8 @@ class PusTmFunnel : public TmFunnelBase { timeval currentTv{}; timeval lastTvUpdate{}; TmStore miscStore; - TmStore eventStore; + TmStore okStore; + TmStore notOkStore; SdCardMountedIF &sdcMan; ReturnValue_t handlePacket(TmTcMessage &message); diff --git a/mission/tmtc/TmStore.cpp b/mission/tmtc/TmStore.cpp index 6ec49da8..82ccafe9 100644 --- a/mission/tmtc/TmStore.cpp +++ b/mission/tmtc/TmStore.cpp @@ -6,6 +6,7 @@ #include #include #include +#include using namespace returnvalue; @@ -151,7 +152,7 @@ void TmStore::assignAndOrCreateMostRecentFile() { void TmStore::addApid(uint16_t apid) { if (not filter.apid) { - filter.apid = std::vector(apid); + filter.apid = std::vector({apid}); return; } filter.apid.value().push_back(apid); @@ -159,7 +160,15 @@ void TmStore::addApid(uint16_t apid) { void TmStore::addService(uint8_t service) { if (not filter.services) { - filter.services = std::vector(service); + filter.services = std::vector({service}); } filter.services.value().push_back(service); } + +void TmStore::addServiceSubservice(uint8_t service, uint8_t subservice) { + if (not filter.serviceSubservices) { + filter.serviceSubservices = + std::vector>({std::pair(service, subservice)}); + } + filter.serviceSubservices.value().push_back({service, subservice}); +} diff --git a/mission/tmtc/TmStore.h b/mission/tmtc/TmStore.h index 193a1db5..ff141dd1 100644 --- a/mission/tmtc/TmStore.h +++ b/mission/tmtc/TmStore.h @@ -24,6 +24,7 @@ class TmStore : public SystemObject { void addApid(uint16_t apid); void addService(uint8_t service); + void addServiceSubservice(uint8_t service, uint8_t subservice); void updateBaseDir(); ReturnValue_t passPacket(PusTmReader& reader);