##// END OF EJS Templates
Initial commit.
Initial commit.

File last commit:

r0:452a68f7426f default
r0:452a68f7426f default
Show More
ccsds_types.h
68 lines | 2.5 KiB | text/x-c | CLexer
#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