#ifndef FSFW_TMTCSERVICES_VERIFICATIONREPORTER_H_ #define FSFW_TMTCSERVICES_VERIFICATIONREPORTER_H_ #include "PusVerificationReport.h" #include "../objectmanager/ObjectManagerIF.h" namespace Factory{ void setStaticFrameworkObjectIds(); } /** * @brief This helper object is used to forward verification messages * which are generated by the Flight Software Framework. * @details * The messages can be relayed to an arbitrary object, for example a dedicated * Verification Reporter. The destination is set by setting the static framework * Id VerificationReporter::messageReceiver. The default verification reporter * will be the PUS service 1, which sends verification messages according * to the PUS standard. * */ class VerificationReporter { friend void (Factory::setStaticFrameworkObjectIds)(); public: VerificationReporter(); virtual ~VerificationReporter(); void sendSuccessReport( uint8_t set_report_id, TcPacketBase* current_packet, uint8_t set_step = 0 ); void sendSuccessReport(uint8_t set_report_id, uint8_t ackFlags, uint16_t tcPacketId, uint16_t tcSequenceControl, uint8_t set_step = 0); void sendFailureReport( uint8_t report_id, TcPacketBase* current_packet, ReturnValue_t error_code = 0, uint8_t step = 0, uint32_t parameter1 = 0, uint32_t parameter2 = 0 ); void sendFailureReport(uint8_t report_id, uint8_t ackFlags, uint16_t tcPacketId, uint16_t tcSequenceControl, ReturnValue_t error_code = 0, uint8_t step = 0, uint32_t parameter1 = 0, uint32_t parameter2 = 0); void initialize(); private: static object_id_t messageReceiver; MessageQueueId_t acknowledgeQueue; }; #endif /* FSFW_TMTCSERVICES_VERIFICATIONREPORTER_H_ */