ccsds_types.h
68 lines
| 2.5 KiB
| text/x-c
|
CLexer
/ header / ccsds_types.h
paul
|
r0 | #ifndef CCSDS_H_INCLUDED | ||
#define CCSDS_H_INCLUDED | ||||
#define CCSDS_TELEMETRY_HEADER_LENGTH 16+4 | ||||
#define CCSDS_TELECOMMAND_HEADER_LENGTH 10+4 | ||||
#define CCSDS_TELECOMMAND_MAX_PACKET_LENGTH 248 | ||||
#define CCSDS_PROCESS_ID 11 | ||||
#define CCSDS_PACKET_CATEGORY 12 | ||||
#define CCSDS_ERR_PID -1 | ||||
#define CCSDS_ERR_CAT -2 | ||||
#define CCSDS_ERR_LENGTH -3 | ||||
#define CCSDS_ERR_TYPE -4 | ||||
#define CCSDS_ERR_SUBTYPE -5 | ||||
#define CCSDS_ERR_SRC -6 | ||||
#define CCSDS_ERR_CRC -7 | ||||
#define CCSDS_TM_VALID 1 | ||||
struct ccsdsTelemetrySourcePacketHeader_str | ||||
{ | ||||
unsigned char targetLogicalAddress; | ||||
unsigned char protocolIdentifier; | ||||
unsigned char reserved; | ||||
unsigned char userApplication; | ||||
unsigned char packetID[2]; | ||||
unsigned char packetSequenceControl[2]; | ||||
unsigned char packetLength[2]; | ||||
unsigned char dataFieldHeader[10]; | ||||
}; | ||||
typedef struct ccsdsTelemetrySourcePacketHeader_str ccsdsTelemetrySourcePacketHeader_t; | ||||
struct ccsdsTelecommandSourcePacketHeader_str | ||||
{ | ||||
unsigned char targetLogicalAddress; | ||||
unsigned char protocolIdentifier; | ||||
unsigned char reserved; | ||||
unsigned char userApplication; | ||||
unsigned char packetID[2]; | ||||
unsigned char packetSequenceControl[2]; | ||||
unsigned char packetLength[2]; | ||||
unsigned char dataFieldHeader[4]; | ||||
}; | ||||
typedef struct ccsdsTelemetrySourcePacketHeader_str ccsdsTelecommandSourcePacketHeader_t; | ||||
// initialize the ccsds telemetry header | ||||
ccsdsTelemetrySourcePacketHeader_t ccsdsTelemetryHeader; | ||||
#define INIT_CCSDS_TELEMETRY_HEADER ccsdsTelemetryHeader.targetLogicalAddress = 0x21; \ | ||||
ccsdsTelemetryHeader.protocolIdentifier = 0x02; \ | ||||
ccsdsTelemetryHeader.reserved = 0x00; \ | ||||
ccsdsTelemetryHeader.userApplication = 0x00; \ | ||||
ccsdsTelemetryHeader.packetID[0] = 0x08; \ | ||||
ccsdsTelemetryHeader.packetID[1] = 0xbc; \ | ||||
ccsdsTelemetryHeader.packetSequenceControl[0] = 0xc0; \ | ||||
ccsdsTelemetryHeader.packetSequenceControl[1] = 0x00; \ | ||||
ccsdsTelemetryHeader.packetLength[0] = 0x00; \ | ||||
ccsdsTelemetryHeader.packetLength[1] = 0x00; \ | ||||
ccsdsTelemetryHeader.dataFieldHeader[0] = 0x00; \ | ||||
ccsdsTelemetryHeader.dataFieldHeader[1] = 0x00; \ | ||||
ccsdsTelemetryHeader.dataFieldHeader[2] = 0x00; \ | ||||
ccsdsTelemetryHeader.dataFieldHeader[3] = 0x00; \ | ||||
ccsdsTelemetryHeader.dataFieldHeader[4] = 0x00; \ | ||||
ccsdsTelemetryHeader.dataFieldHeader[5] = 0x00; \ | ||||
ccsdsTelemetryHeader.dataFieldHeader[6] = 0x00; \ | ||||
ccsdsTelemetryHeader.dataFieldHeader[7] = 0x00; \ | ||||
ccsdsTelemetryHeader.dataFieldHeader[8] = 0x00; \ | ||||
ccsdsTelemetryHeader.dataFieldHeader[9] = 0x00; | ||||
#endif // CCSDS_H_INCLUDED | ||||