26#define PUS_TC_HEADER_SIZE 6
27#define PUS_TC_MAX_DATA_SIZE 20
39 enum CcsdsSecHeaderFlag
47 TelecommandVerificationService = 1,
48 DeviceCommandDistributionService = 2,
49 HousekeepingAndDiagnosticDataReportingService = 3,
50 ParameterStatisticsReportingService = 4,
51 EventReportingService = 5,
52 MemoryManagementService = 6,
54 FunctionManagementService = 8,
55 TimeManagementService = 9,
57 OnboardOperationsSchedulingService = 11,
58 OnboardMonitoringService = 12,
59 LargeDataTransferService = 13,
60 PacketForwardingControlService = 14,
61 OnboardStorageAndRetrievalService = 15,
64 OnboardOperationsProcedureService = 18,
65 EventActionService = 19
68 typedef void (TPusTcCallback)(
void *p_Context,
69 const bool b_AckAcc,
const bool b_AckStart,
const bool b_AckProg,
const bool b_AckComp,
70 const uint8_t u8_Service,
const uint8_t u8_SubService,
71 const uint8_t u8_SourceID,
72 const uint8_t *pu8_Data,
const uint32_t u32_DataSize);
75 static const int PusTcPacketVersion = 1;
78 TPusTcCallback *mp_PusTcCallback;
82 tc(
void *p_Context = NULL, TPusTcCallback *p_PusTcCallback = NULL);
84 static uint32_t
create(uint8_t *pu8_SecHdrBuffer,
const uint32_t u32_SecHdrSize,
85 uint8_t *pu8_PacketDataBuffer,
const uint32_t u32_PacketDataSize,
86 const bool b_AckAcc,
const bool b_AckStart,
const bool b_AckProg,
const bool b_AckComp,
87 const uint8_t u8_Service,
const uint8_t u8_SubService,
88 const uint8_t u8_SourceID,
89 const uint8_t *pu8_Data,
const uint32_t u32_DataSize);
92 int32_t
process(
const uint8_t *pu8_Buffer,
const uint32_t u32_BufferSize);
97 static int32_t _create_secondary_header(uint8_t *pu8_Buffer,
98 const bool b_AckAcc,
const bool b_AckStart,
const bool b_AckProg,
const bool b_AckComp,
99 const uint8_t u8_Service,
const uint8_t u8_SubService,
100 const uint8_t u8_SourceID,
const uint16_t u16_Spare);
104 static uint16_t _calcCRC(
const uint8_t *pu8_Buffer,
const uint16_t u16_BufferSize);
Class for handling the telecommands as described in the Packet Utilization Standard (PUS),...
Definition: pus_tc.h:37
static uint32_t create(uint8_t *pu8_SecHdrBuffer, const uint32_t u32_SecHdrSize, uint8_t *pu8_PacketDataBuffer, const uint32_t u32_PacketDataSize, const bool b_AckAcc, const bool b_AckStart, const bool b_AckProg, const bool b_AckComp, const uint8_t u8_Service, const uint8_t u8_SubService, const uint8_t u8_SourceID, const uint8_t *pu8_Data, const uint32_t u32_DataSize)
Creates a Telecommand and writes it into the given buffer.
Definition: pus_tc.cpp:62
int32_t process(const uint8_t *pu8_Buffer, const uint32_t u32_BufferSize)
The given data is processed.
Definition: pus_tc.cpp:103
tc(void *p_Context=NULL, TPusTcCallback *p_PusTcCallback=NULL)
Construct a new PUS TC object.
Definition: pus_tc.cpp:34