Line data Source code
1 : #ifndef FSFW_TMTCSERVICES_VERIFICATIONREPORTERIF_H 2 : #define FSFW_TMTCSERVICES_VERIFICATIONREPORTERIF_H 3 : 4 : #include "fsfw/retval.h" 5 : #include "fsfw/tmtcpacket/pus/tc.h" 6 : 7 : struct VerifParamsBase { 8 0 : VerifParamsBase() : reportId(0), tcPacketId(0), tcPsc(0) {} 9 3 : VerifParamsBase(uint8_t reportId, uint16_t tcPacketId, uint16_t tcPsc) 10 3 : : reportId(reportId), tcPacketId(tcPacketId), tcPsc(tcPsc) {} 11 : uint8_t reportId; 12 : uint16_t tcPacketId; 13 : uint16_t tcPsc; 14 : uint8_t ackFlags = ecss::ACK_ALL; 15 : uint8_t step = 0; 16 : 17 0 : void resetTcFields() { 18 0 : tcPacketId = 0; 19 0 : tcPsc = 0; 20 0 : ackFlags = 0; 21 0 : } 22 : }; 23 : 24 : struct VerifSuccessParams : public VerifParamsBase { 25 0 : VerifSuccessParams() = default; 26 : VerifSuccessParams(uint8_t reportId, uint16_t tcPacketId, uint16_t tcPsc) 27 : : VerifParamsBase(reportId, tcPacketId, tcPsc) {} 28 1 : VerifSuccessParams(uint8_t reportId, PusTcIF& tc) 29 1 : : VerifParamsBase(reportId, tc.getPacketIdRaw(), tc.getPacketSeqCtrlRaw()) {} 30 : }; 31 : 32 : struct VerifFailureParams : public VerifParamsBase { 33 0 : VerifFailureParams() = default; 34 : VerifFailureParams(uint8_t reportId, uint16_t tcPacketId, uint16_t tcPsc, ReturnValue_t errorCode, 35 : uint32_t errorParam1, uint32_t errorParams2) 36 : : VerifParamsBase(reportId, tcPacketId, tcPsc), 37 : errorCode(errorCode), 38 : errorParam1(errorParam1), 39 : errorParam2(errorParams2) {} 40 1 : VerifFailureParams(uint8_t reportId, uint16_t tcPacketId, uint16_t tcPsc, ReturnValue_t errorCode) 41 1 : : VerifParamsBase(reportId, tcPacketId, tcPsc), errorCode(errorCode) {} 42 : VerifFailureParams(uint8_t reportId, uint16_t tcPacketId, uint16_t tcPsc) 43 : : VerifParamsBase(reportId, tcPacketId, tcPsc) {} 44 1 : VerifFailureParams(uint8_t reportId, PusTcIF& tc, ReturnValue_t errorCode) 45 3 : : VerifParamsBase(reportId, tc.getPacketIdRaw(), tc.getPacketSeqCtrlRaw()), 46 1 : errorCode(errorCode) {} 47 : VerifFailureParams(uint8_t reportId, PusTcIF& tc) 48 : : VerifParamsBase(reportId, tc.getPacketIdRaw(), tc.getPacketSeqCtrlRaw()) {} 49 : 50 0 : void resetFailParams() { 51 0 : errorCode = returnvalue::FAILED; 52 0 : errorParam1 = 0; 53 0 : errorParam2 = 0; 54 0 : } 55 : 56 : ReturnValue_t errorCode = returnvalue::FAILED; 57 : uint8_t step = 0; 58 : uint32_t errorParam1 = 0; 59 : uint32_t errorParam2 = 0; 60 : }; 61 : class VerificationReporterIF { 62 : public: 63 23 : virtual ~VerificationReporterIF() = default; 64 : 65 : virtual ReturnValue_t sendSuccessReport(VerifSuccessParams params) = 0; 66 : virtual ReturnValue_t sendFailureReport(VerifFailureParams params) = 0; 67 : }; 68 : 69 : #endif // FSFW_TMTCSERVICES_VERIFICATIONREPORTERIF_H