#include #include #include #include object_id_t VerificationReporter::messageReceiver = 0; VerificationReporter::VerificationReporter() : acknowledgeQueue() { } VerificationReporter::~VerificationReporter() { //Default, empty } void VerificationReporter::sendSuccessReport(uint8_t set_report_id, TcPacketBase* current_packet, uint8_t set_step) { if (this->acknowledgeQueue == 0) { this->initialize(); } PusVerificationMessage message(set_report_id, current_packet->getAcknowledgeFlags(), current_packet->getPacketId(), current_packet->getPacketSequenceControl(), 0, set_step); ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, &message); if (status != HasReturnvaluesIF::RETURN_OK) { error << "VerificationReporter::sendSuccessReport: Error writing to queue. Code: " << (uint16_t) status << std::endl; } } void VerificationReporter::sendSuccessReport(uint8_t set_report_id, uint8_t ackFlags, uint16_t tcPacketId, uint16_t tcSequenceControl, uint8_t set_step) { if (this->acknowledgeQueue == 0) { this->initialize(); } PusVerificationMessage message(set_report_id, ackFlags, tcPacketId, tcSequenceControl, 0, set_step); ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, &message); if (status != HasReturnvaluesIF::RETURN_OK) { error << "VerificationReporter::sendSuccessReport: Error writing to queue. Code: " << (uint16_t) status << std::endl; } } void VerificationReporter::sendFailureReport(uint8_t report_id, TcPacketBase* current_packet, ReturnValue_t error_code, uint8_t step, uint32_t parameter1, uint32_t parameter2) { if (this->acknowledgeQueue == 0) { this->initialize(); } PusVerificationMessage message(report_id, current_packet->getAcknowledgeFlags(), current_packet->getPacketId(), current_packet->getPacketSequenceControl(), error_code, step, parameter1, parameter2); ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, &message); if (status != HasReturnvaluesIF::RETURN_OK) { error << "VerificationReporter::sendFailureReport Error writing to queue. Code: " << (uint16_t) status << std::endl; } } void VerificationReporter::sendFailureReport(uint8_t report_id, uint8_t ackFlags, uint16_t tcPacketId, uint16_t tcSequenceControl, ReturnValue_t error_code, uint8_t step, uint32_t parameter1, uint32_t parameter2) { if (this->acknowledgeQueue == 0) { this->initialize(); } PusVerificationMessage message(report_id, ackFlags, tcPacketId, tcSequenceControl, error_code, step, parameter1, parameter2); ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, &message); if (status != HasReturnvaluesIF::RETURN_OK) { error << "VerificationReporter::sendFailureReport Error writing to queue. Code: " << (uint16_t) status << std::endl; } } void VerificationReporter::initialize() { AcceptsVerifyMessageIF* temp = objectManager->get( messageReceiver); if (temp != NULL) { this->acknowledgeQueue = temp->getVerificationQueue(); } else { error << "VerificationReporter::VerificationReporter: Configuration error." << std::endl; } }