#ifndef TC_TYPES_H #define TC_TYPES_H #include #define PROTOCOLE_IDENTIFIER 0x02 // PACKET ID #define TC_LFR_PACKET_ID 0x1ccc // PID 76 CAT 12 #define PACKET_LENGTH_TC_LFR_RESET (12 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_LOAD_COMMON_PAR (14 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_LOAD_NORMAL_PAR (22 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_LOAD_BURST_PAR (14 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_LOAD_SBM1_PAR (14 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_LOAD_SBM2_PAR (14 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_DUMP_PAR (12 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_ENTER_MODE (20 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_UPDATE_INFO (110- CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_ENABLE_CALIBRATION (12 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_DISABLE_CALIBRATION (12 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_DUMP_KCOEFFICIENTS (12 - CCSDS_TC_TM_PACKET_OFFSET) #define PACKET_LENGTH_TC_LFR_UPDATE_TIME (18 - CCSDS_TC_TM_PACKET_OFFSET) // TC TYPES #define TC_TYPE_DEFAULT 181 #define TC_TYPE_LFR_UPDATE_TIME 9 // TC SUBTYPES #define TC_SUBTYPE_RESET 1 #define TC_SUBTYPE_LOAD_COMMON_PAR 11 #define TC_SUBTYPE_LOAD_NORMAL_PAR 13 #define TC_SUBTYPE_LOAD_BURST_PAR 19 #define TC_SUBTYPE_LOAD_SBM1_PAR 25 #define TC_SUBTYPE_LOAD_SBM2_PAR 27 #define TC_SUBTYPE_DUMP_PAR 31 #define TC_SUBTYPE_ENTER_MODE 41 #define TC_SUBTYPE_UPDATE_INFO 51 #define TC_SUBTYPE_ENABLE_CALIBRATION 61 #define TC_SUBTYPE_DISABLE_CALIBRATION 63 #define TC_SUBTYPE_UPDATE_TIME 129 // OTHER CONSTANTS #define TC_LFR_PACKET_SEQUENCE_CONTROL 0xc000 // PID 76 CAT 12 #define TC_LFR_DATA_FIELD_HEADER0 0x19 #define TC_LFR_LOAD_COMMON_PAR_SPARE 0x00 typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char crc[2]; } Packet_TC_LFR_RESET_t; typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char spare; unsigned char mode; unsigned char enterModeTime[6]; unsigned char crc[2]; } Packet_TC_LFR_ENTER_MODE_t; typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char set1; unsigned char set2; unsigned char set3_bias_setting_set1[6]; unsigned char set3_bias_setting_set2[6]; unsigned char set3_bias_voltage[2]; unsigned char set4[8]; unsigned char set5; unsigned char set6; unsigned char set7[8]; unsigned char set8_cp_rpw_sc_rw1_f1[4]; unsigned char set8_cp_rpw_sc_rw1_f2[4]; unsigned char set8_cp_rpw_sc_rw2_f1[4]; unsigned char set8_cp_rpw_sc_rw2_f2[4]; unsigned char set8_cp_rpw_sc_rw3_f1[4]; unsigned char set8_cp_rpw_sc_rw3_f2[4]; unsigned char set8_cp_rpw_sc_rw4_f1[4]; unsigned char set8_cp_rpw_sc_rw4_f2[4]; unsigned char set9_spare; unsigned char set9_rw_f_flags; unsigned char spare1[2]; unsigned char spare2[2]; unsigned char spare3[2]; unsigned char spare4[2]; unsigned char spare5[2]; unsigned char spare6[2]; unsigned char spare7[2]; unsigned char spare8[2]; unsigned char spare9[2]; unsigned char spare10[2]; unsigned char spare11[2]; unsigned char spare12[2]; unsigned char spare13[2]; unsigned char spare14[2]; unsigned char spare15[2]; unsigned char crc[2]; } Packet_TC_LFR_UPDATE_INFO_t; typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char crc[2]; } Packet_TC_LFR_DUMP_PAR_t; typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char spare; unsigned char bw_sp0_sp1_r0_r1_r2; unsigned char crc[2]; } Packet_TC_LFR_LOAD_COMMON_PAR_t; typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char sy_lfr_n_swf_l[2]; unsigned char sy_lfr_n_swf_p[2]; unsigned char sy_lfr_n_asm_p[2]; unsigned char sy_lfr_n_bp_p0; unsigned char sy_lfr_n_bp_p1; unsigned char sy_lfr_n_cwf_long_f3; unsigned char lfr_normal_parameters_spare; unsigned char crc[2]; } Packet_TC_LFR_LOAD_NORMAL_PAR_t; typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char sy_lfr_bp_p0; unsigned char sy_lfr_bp_p1; unsigned char crc[2]; } Packet_TC_LFR_LOAD_BURST_SBM1_SBM2_PAR_t; typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char crc[2]; } Packet_TC_LFR_ENABLE_DISABLE_CALIBRATION_t; typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char cp_rpw_time[6]; unsigned char crc[2]; } Packet_TC_LFR_UPDATE_TIME_t; typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char crc[2]; } Packet_TC_LFR_DUMP_KCOEFFICIENTS_t; typedef struct { // the CCSDS header is added by LPPMON unsigned char packetID[2]; unsigned char packetSequenceControl[2]; unsigned char packetLength[2]; // DATA FIELD HEADER unsigned char ccsdsSecHeaderFlag_pusVersion_ack; unsigned char serviceType; unsigned char serviceSubType; unsigned char sourceID; unsigned char spare_sy_lfr_pas_filter_enabled; unsigned char sy_lfr_pas_filter_modulus; unsigned char sy_lfr_pas_filter_nstd; unsigned char sy_lfr_pas_filter_offset; unsigned char crc[2]; } Packet_TC_LFR_LOAD_PAS_FILTER_t; #endif // TC_TYPES_H