#ifndef CCSDS_H #define CCSDS_H #define CCSDS_MAX_PACKET_LENGTH 4412 // in bytes, specified in the LFR Software Requirements Specification struct ccsdsPacketToProcess_str { unsigned int size; unsigned char data[CCSDS_MAX_PACKET_LENGTH]; }; typedef ccsdsPacketToProcess_str ccsdsPacketToProcess_t; struct ccsds_telecommand_source_packet_hdr_str { unsigned char packetId1; unsigned char packetId0; unsigned char packetSequenceControl1; unsigned char packetSequenceControl0; unsigned char packetLength1; unsigned char packetLength0; unsigned char dataFieldHeader3; unsigned char dataFieldHeader2; unsigned char dataFieldHeader1; unsigned char dataFieldHeader0; }; typedef ccsds_telecommand_source_packet_hdr_str ccsds_telecommand_source_packet_hdr_t; struct ccsdsSourcePacket_pachetHeader_str { unsigned char packetId1; unsigned char packetId0; unsigned char packetSequenceControl1; unsigned char packetSequenceControl0; unsigned char packetLength1; unsigned char packetLength0; }; typedef ccsdsSourcePacket_pachetHeader_str ccsdsSourcePacket_pachetHeader_t; struct ccsdsTelemetrySourcePacket_dataFieldHeader_str { unsigned char spare_PUS_spare; unsigned char serviceType; unsigned char serviceSubtype; unsigned char destinationID; unsigned char SCTime[6]; }; typedef ccsdsTelemetrySourcePacket_dataFieldHeader_str ccsdsTelemetrySourcePacket_dataFieldHeader_t; class ccsds { public: ccsds(unsigned char data_field_header, unsigned char processID, unsigned int sequence_count, unsigned int packet_length, unsigned char acceptance, unsigned int completion, unsigned char service_type, unsigned char service_subtype, unsigned char sourceID); ccsds_telecommand_source_packet_hdr_t *ccsds_header; }; #endif // CCSDS_H