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,
|
2022-07-27 17:00:43 +02:00
|
|
|
MessageQueueId_t defaultDest)
|
|
|
|
: queue(&queue), errReporter(&reporter) {
|
|
|
|
queue.setDefaultDestination(defaultDest);
|
|
|
|
}
|
2022-07-25 14:04:06 +02:00
|
|
|
|
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) {
|
2022-07-27 17:00:43 +02:00
|
|
|
return sendPacket(getDefaultDestination(), storeId);
|
|
|
|
}
|
|
|
|
|
|
|
|
void TmSendHelper::setDefaultDestination(MessageQueueId_t msgDest) {
|
|
|
|
if (queue != nullptr) {
|
|
|
|
queue->setDefaultDestination(msgDest);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
void TmSendHelper::setInternalErrorReporter(InternalErrorReporterIF &reporter) {
|
|
|
|
errReporter = &reporter;
|
|
|
|
}
|
|
|
|
void TmSendHelper::setMsgQueue(MessageQueueIF &queue_) { queue = &queue_; }
|
|
|
|
|
|
|
|
ReturnValue_t TmSendHelper::sendPacket(MessageQueueId_t dest, const store_address_t &storeId) {
|
2022-07-25 19:36:56 +02:00
|
|
|
if (queue == nullptr) {
|
2022-08-16 01:08:26 +02:00
|
|
|
return returnvalue::FAILED;
|
2022-07-25 14:04:06 +02:00
|
|
|
}
|
2022-07-20 22:21:15 +02:00
|
|
|
TmTcMessage message(storeId);
|
2022-07-27 17:00:43 +02:00
|
|
|
ReturnValue_t result = queue->sendMessage(dest, &message, ignoreFault);
|
2022-08-16 01:08:26 +02:00
|
|
|
if (result != returnvalue::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-27 17:00:43 +02:00
|
|
|
MessageQueueId_t TmSendHelper::getDefaultDestination() const {
|
|
|
|
if (queue != nullptr) {
|
|
|
|
return queue->getDefaultDestination();
|
|
|
|
};
|
|
|
|
return MessageQueueIF::NO_QUEUE;
|
2022-07-20 22:21:15 +02:00
|
|
|
}
|
2022-07-25 20:31:06 +02:00
|
|
|
|
|
|
|
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; }
|