fsfw/src/fsfw/tmtcservices/VerificationReporter.cpp

45 lines
1.8 KiB
C++
Raw Normal View History

2021-07-13 20:58:45 +02:00
#include "fsfw/tmtcservices/VerificationReporter.h"
2022-02-02 10:29:30 +01:00
#include "fsfw/serviceinterface/ServiceInterface.h"
#include "fsfw/tmtcservices/PusVerificationReport.h"
2020-09-29 13:34:27 +02:00
2022-07-26 13:59:09 +02:00
VerificationReporter::VerificationReporter(AcceptsVerifyMessageIF* receiver, object_id_t objectId)
: SystemObject(objectId) {
if (receiver != nullptr) {
acknowledgeQueue = receiver->getVerificationQueue();
}
}
2022-07-19 18:13:25 +02:00
VerificationReporter::~VerificationReporter() = default;
2022-07-26 13:59:09 +02:00
void VerificationReporter::setReceiver(AcceptsVerifyMessageIF& receiver) {
acknowledgeQueue = receiver.getVerificationQueue();
}
2022-07-26 13:59:09 +02:00
ReturnValue_t VerificationReporter::sendFailureReport(VerifFailureParams params) {
PusVerificationMessage message(params.reportId, params.ackFlags, params.tcPacketId, params.tcPsc,
params.errorCode, params.step, params.errorParam1,
params.errorParam2);
2022-02-02 10:29:30 +01:00
ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, &message);
if (status != HasReturnvaluesIF::RETURN_OK) {
2021-01-03 14:16:52 +01:00
#if FSFW_CPP_OSTREAM_ENABLED == 1
2022-02-02 10:29:30 +01:00
sif::error << "VerificationReporter::sendSuccessReport: Error writing "
<< "to queue. Code: " << std::hex << status << std::dec << std::endl;
#endif
2022-02-02 10:29:30 +01:00
}
2022-07-26 13:59:09 +02:00
return status;
}
2022-07-26 13:59:09 +02:00
ReturnValue_t VerificationReporter::sendSuccessReport(VerifSuccessParams params) {
PusVerificationMessage message(params.reportId, params.ackFlags, params.tcPacketId, params.tcPsc,
retval::OK, params.step);
2022-02-02 10:29:30 +01:00
ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, &message);
if (status != HasReturnvaluesIF::RETURN_OK) {
2021-01-03 14:16:52 +01:00
#if FSFW_CPP_OSTREAM_ENABLED == 1
2022-07-26 13:59:09 +02:00
sif::error << "VerificationReporter::sendSuccessReport: Error writing "
<< "to queue. Code: " << std::hex << status << std::dec << std::endl;
#endif
2022-02-02 10:29:30 +01:00
}
2022-07-26 13:59:09 +02:00
return status;
}