From d7278c449327c435f3cbf84da22a1a847cbfff4f Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" Date: Thu, 23 Apr 2020 10:20:19 +0200 Subject: [PATCH] adapting tmtc bridge --- tmtcservices/TmTcBridge.cpp | 31 ++++++++++++++++++++++++------- tmtcservices/TmTcBridge.h | 32 +++++++++++++++++++++++--------- 2 files changed, 47 insertions(+), 16 deletions(-) diff --git a/tmtcservices/TmTcBridge.cpp b/tmtcservices/TmTcBridge.cpp index 9408df2f..06c5bf66 100644 --- a/tmtcservices/TmTcBridge.cpp +++ b/tmtcservices/TmTcBridge.cpp @@ -7,25 +7,40 @@ TmTcBridge::TmTcBridge(object_id_t objectId_, object_id_t ccsdsPacketDistributor_): SystemObject(objectId_), - ccsdsPacketDistributor(ccsdsPacketDistributor_), - sentPacketsPerCycle(5) { - TmTcReceptionQueue = QueueFactory::instance()-> - createMessageQueue(TMTC_RECEPTION_QUEUE_DEPTH); + ccsdsPacketDistributor(ccsdsPacketDistributor_) +{ + TmTcReceptionQueue = QueueFactory::instance()-> + createMessageQueue(TMTC_RECEPTION_QUEUE_DEPTH); } TmTcBridge::~TmTcBridge() {} ReturnValue_t TmTcBridge::setNumberOfSentPacketsPerCycle( uint8_t sentPacketsPerCycle) { - if(sentPacketsPerCycle <= MAX_STORED_DATA_SENT_PER_CYCLE) { + if(sentPacketsPerCycle <= LIMIT_STORED_DATA_SENT_PER_CYCLE) { this->sentPacketsPerCycle = sentPacketsPerCycle; return RETURN_OK; } else { + warning << "TmTcBridge: Number of packets sent per cycle " + "exceeds limits" << std::endl; return RETURN_FAILED; } } +ReturnValue_t TmTcBridge::setMaxNumberOfPacketsStored( + uint8_t maxNumberOfPacketsStored) { + if(maxNumberOfPacketsStored <= LIMIT_DOWNLINK_PACKETS_STORED) { + this->maxNumberOfPacketsStored = maxNumberOfPacketsStored; + return RETURN_OK; + } + else { + warning << "TmTcBridge: Number of packets stored " + "exceeds limits" << std::endl; + return RETURN_FAILED; + } +} + ReturnValue_t TmTcBridge::initialize() { tcStore = objectManager->get(objects::TC_STORE); if (tcStore == NULL) { @@ -72,7 +87,7 @@ ReturnValue_t TmTcBridge::handleTm() { } if(tmStored && communicationLinkUp) { - result = sendStoredTm(); + result = handleStoredTm(); } return result; @@ -124,7 +139,7 @@ ReturnValue_t TmTcBridge::storeDownlinkData(TmTcMessage *message) { return RETURN_OK; } -ReturnValue_t TmTcBridge::sendStoredTm() { +ReturnValue_t TmTcBridge::handleStoredTm() { uint8_t counter = 0; ReturnValue_t result = RETURN_OK; while(!fifo.empty() && counter < sentPacketsPerCycle) { @@ -171,6 +186,8 @@ MessageQueueId_t TmTcBridge::getReportReceptionQueue(uint8_t virtualChannel) { return TmTcReceptionQueue->getId(); } + + void TmTcBridge::printData(uint8_t * data, size_t dataLen) { info << "TMTC Bridge: Printing data: ["; for(uint32_t i=0;i fifo; - uint8_t sentPacketsPerCycle = 10; + FIFO fifo; + uint8_t sentPacketsPerCycle = DEFAULT_STORED_DATA_SENT_PER_CYCLE; + uint8_t maxNumberOfPacketsStored = DEFAULT_DOWNLINK_PACKETS_STORED; };