fsfw/src/fsfw/tmtcservices/TmSendHelper.cpp

52 lines
1.8 KiB
C++
Raw Normal View History

2022-07-20 22:21:15 +02:00
#include "TmSendHelper.h"
#include "fsfw/ipc/MessageQueueSenderIF.h"
2022-07-25 20:31:06 +02:00
TmSendHelper::TmSendHelper() = default;
TmSendHelper::TmSendHelper(MessageQueueIF &queue, InternalErrorReporterIF &reporter,
MessageQueueId_t tmtcMsgDest)
2022-07-25 20:31:06 +02:00
: defaultDest(tmtcMsgDest), queue(&queue), errReporter(&reporter) {}
2022-07-25 20:31:06 +02:00
TmSendHelper::TmSendHelper(MessageQueueIF &queue, InternalErrorReporterIF &reporter)
: queue(&queue), errReporter(&reporter) {}
2022-07-20 22:21:15 +02:00
2022-07-25 20:31:06 +02:00
TmSendHelper::TmSendHelper(InternalErrorReporterIF &reporter) : errReporter(&reporter) {}
2022-07-20 22:21:15 +02:00
ReturnValue_t TmSendHelper::sendPacket(const store_address_t &storeId) {
if (queue == nullptr) {
return HasReturnvaluesIF::RETURN_FAILED;
}
2022-07-20 22:21:15 +02:00
TmTcMessage message(storeId);
2022-07-25 20:31:06 +02:00
ReturnValue_t result = queue->sendMessage(defaultDest, &message, ignoreFault);
2022-07-20 22:21:15 +02:00
if (result != HasReturnvaluesIF::RETURN_OK) {
2022-07-25 20:31:06 +02:00
if (errReporter != nullptr and not ignoreFault) {
2022-07-20 22:21:15 +02:00
errReporter->lostTm();
}
return result;
}
2022-07-25 20:31:06 +02:00
return result;
2022-07-20 22:21:15 +02:00
}
2022-07-25 20:31:06 +02:00
void TmSendHelper::setDefaultDestination(MessageQueueId_t msgDest) { defaultDest = msgDest; }
2022-07-20 22:21:15 +02:00
2022-07-26 18:46:28 +02:00
void TmSendHelper::setInternalErrorReporter(InternalErrorReporterIF &reporter) {
errReporter = &reporter;
2022-07-20 22:21:15 +02:00
}
2022-07-25 20:31:06 +02:00
void TmSendHelper::setMsgQueue(MessageQueueIF &queue_) { queue = &queue_; }
2022-07-25 14:31:57 +02:00
ReturnValue_t TmSendHelper::sendPacket(MessageQueueId_t dest, const store_address_t &storeId) {
2022-07-25 20:31:06 +02:00
setDefaultDestination(dest);
2022-07-25 14:31:57 +02:00
return sendPacket(storeId);
}
2022-07-25 20:31:06 +02:00
MessageQueueId_t TmSendHelper::getDefaultDestination() const { return defaultDest; }
bool TmSendHelper::areFaultsIgnored() const { return ignoreFault; }
void TmSendHelper::ignoreFaults() { ignoreFault = true; }
void TmSendHelper::dontIgnoreFaults() { ignoreFault = false; }
InternalErrorReporterIF *TmSendHelper::getInternalErrorReporter() const { return errReporter; }
MessageQueueIF *TmSendHelper::getMsgQueue() const { return queue; }