##// END OF EJS Templates
Ignore doc files...
Ignore doc files All redmine issues taken into account SpaceWire management rewritten Init task changed to work when SpaceWire is not available at boot time

File last commit:

r46:72fea9e87fcb default
r46:72fea9e87fcb default
Show More
ccsds_types.h
641 lines | 23.0 KiB | text/x-c | CLexer
#ifndef CCSDS_TYPES_H_INCLUDED
#define CCSDS_TYPES_H_INCLUDED
#define CCSDS_PROTOCOLE_EXTRA_BYTES 4
#define CCSDS_TELEMETRY_HEADER_LENGTH 16+4
#define CCSDS_TM_PKT_MAX_SIZE 4412
#define CCSDS_TELECOMMAND_HEADER_LENGTH 10+4
#define CCSDS_TC_PKT_MAX_SIZE 256
#define CCSDS_TC_PKT_MIN_SIZE 16
#define CCSDS_TC_TM_PACKET_OFFSET 7
#define CCSDS_PROCESS_ID 76
#define CCSDS_PACKET_CATEGORY 12
#define CCSDS_NODE_ADDRESS 0xfe
#define CCSDS_USER_APP 0x00
#define DEFAULT_SPARE1_PUSVERSION_SPARE2 0x10
#define DEFAULT_RESERVED 0x00
#define DEFAULT_HKBIA 0x1e // 0001 1110
// PACKET ID
#define TM_PACKET_ID_TC_EXE 0x0cc1 // PID 76 CAT 1
#define TM_PACKET_ID_HK 0x0cc4 // PID 76 CAT 4
#define TM_PACKET_ID_PARAMETER_DUMP 0x0cc9 // PID 76 CAT 9
#define TM_PACKET_ID_SCIENCE_NORMAL_BURST 0x0ccc // PID 76 CAT 12
#define TM_PACKET_ID_SCIENCE_SBM1_SBM2 0x0cfc // PID 79 CAT 12
#define TM_PACKET_PID_DEFAULT 76
#define TM_PACKET_PID_BURST_SBM1_SBM2 79
#define TM_PACKET_CAT_TC_EXE 1
#define TM_PACKET_CAT_HK 4
#define TM_PACKET_CAT_PARAMETER_DUMP 9
#define TM_PACKET_CAT_SCIENCE 12
// PACKET SEQUENCE CONTROL
#define TM_PACKET_SEQ_CTRL_CONTINUATION 0x00 // [0000 0000]
#define TM_PACKET_SEQ_CTRL_FIRST 0x40 // [0100 0000]
#define TM_PACKET_SEQ_CTRL_LAST 0x80 // [1000 0000]
#define TM_PACKET_SEQ_CTRL_STANDALONE 0xc0 // [1100 0000]
#define TM_PACKET_SEQ_CNT_DEFAULT 0x00 // [0000 0000]
// DESTINATION ID
#define TM_DESTINATION_ID_GROUND 0
#define TM_DESTINATION_ID_MISSION_TIMELINE 110
#define TM_DESTINATION_ID_TC_SEQUENCES 111
#define TM_DESTINATION_ID_RECOVERY_ACTION_COMMAND 112
#define TM_DESTINATION_ID_BACKUP_MISSION_TIMELINE 113
#define TM_DESTINATION_ID_DIRECT_CMD 120
#define TM_DESTINATION_ID_SPARE_GRD_SRC1 121
#define TM_DESTINATION_ID_SPARE_GRD_SRC2 122
#define TM_DESTINATION_ID_OBCP 15
#define TM_DESTINATION_ID_SYSTEM_CONTROL 14
#define TM_DESTINATION_ID_AOCS 11
#define CCSDS_DESTINATION_ID 0x01
#define CCSDS_PROTOCOLE_ID 0x02
#define CCSDS_RESERVED 0x00
#define CCSDS_USER_APP 0x00
#define SIZE_TM_LFR_TC_EXE_NOT_IMPLEMENTED 24
#define SIZE_TM_LFR_TC_EXE_CORRUPTED 32
#define SIZE_HK_PARAMETERS 112
// TC TYPES
#define TC_TYPE_GEN 181
#define TC_TYPE_TIME 9
// TC SUBTYPES
#define TC_SUBTYPE_RESET 1
#define TC_SUBTYPE_LOAD_COMM 11
#define TC_SUBTYPE_LOAD_NORM 13
#define TC_SUBTYPE_LOAD_BURST 19
#define TC_SUBTYPE_LOAD_SBM1 25
#define TC_SUBTYPE_LOAD_SBM2 27
#define TC_SUBTYPE_DUMP 31
#define TC_SUBTYPE_ENTER 41
#define TC_SUBTYPE_UPDT_INFO 51
#define TC_SUBTYPE_EN_CAL 61
#define TC_SUBTYPE_DIS_CAL 63
#define TC_SUBTYPE_UPDT_TIME 129
// TC LEN
#define TC_LEN_RESET 12
#define TC_LEN_LOAD_COMM 14
#define TC_LEN_LOAD_NORM 20
#define TC_LEN_LOAD_BURST 14
#define TC_LEN_LOAD_SBM1 14
#define TC_LEN_LOAD_SBM2 14
#define TC_LEN_DUMP 12
#define TC_LEN_ENTER 20
#define TC_LEN_UPDT_INFO 48
#define TC_LEN_EN_CAL 12
#define TC_LEN_DIS_CAL 12
#define TC_LEN_UPDT_TIME 18
// TM TYPES
#define TM_TYPE_TC_EXE 1
#define TM_TYPE_HK 3
#define TM_TYPE_PARAMETER_DUMP 3
#define TM_TYPE_LFR_SCIENCE 21
// TM SUBTYPES
#define TM_SUBTYPE_EXE_OK 7
#define TM_SUBTYPE_EXE_NOK 8
#define TM_SUBTYPE_HK 25
#define TM_SUBTYPE_PARAMETER_DUMP 25
#define TM_SUBTYPE_SCIENCE 3
#define TM_SUBTYPE_LFR_SCIENCE 3
// FAILURE CODES
#define ILLEGAL_APID 0
#define WRONG_LEN_PACKET 1
#define INCOR_CHECKSUM 2
#define ILL_TYPE 3
#define ILL_SUBTYPE 4
#define WRONG_APP_DATA 5 // 0x00 0x05
//
#define CCSDS_TM_VALID 7
#define TC_NOT_EXE 42000 // 0xa4 0x10
#define FUNCT_NOT_IMPL 42002 // 0xa4 0x12
#define FAIL_DETECTED 42003 // 0xa4 0x13
#define CORRUPTED 42005 // 0xa4 0x15
#define SID_TC_DEFAULT 0 // the default SID for TC sent to the LFR
#define SID_TC_GROUND 0
#define SID_TC_MISSION_TIMELINE 110
#define SID_TC_TC_SEQUENCES 111
#define SID_TC_RECOVERY_ACTION_CMD 112
#define SID_TC_BACKUP_MISSION_TIMELINE 113
#define SID_TC_DIRECT_CMD 120
#define SID_TC_SPARE_GRD_SRC1 121
#define SID_TC_SPARE_GRD_SRC2 122
#define SID_TC_OBCP 15
#define SID_TC_SYSTEM_CONTROL 14
#define SID_TC_AOCS 11
#define SID_TC_RPW_INTERNAL 254
// TM SID
#define SID_HK 1
#define SID_PARAMETER_DUMP 10
#define SID_NORM_SWF_F0 3
#define SID_NORM_SWF_F1 4
#define SID_NORM_SWF_F2 5
#define SID_NORM_CWF_F3 1
#define SID_BURST_CWF_F2 2
#define SID_SBM1_CWF_F1 24
#define SID_SBM2_CWF_F2 25
#define SID_NORM_ASM_F0 11
#define SID_NORM_ASM_F1 12
#define SID_NORM_ASM_F2 13
#define SID_NORM_BP1_F0 14
#define SID_NORM_BP1_F1 15
#define SID_NORM_BP1_F2 16
#define SID_NORM_BP2_F0 19
#define SID_NORM_BP2_F1 20
#define SID_NORM_BP2_F2 21
#define SID_BURST_BP1_F0 17
#define SID_BURST_BP2_F0 22
#define SID_BURST_BP1_F1 18
#define SID_BURST_BP2_F1 23
#define SID_SBM1_BP1_F0 28
#define SID_SBM1_BP2_F0 31
#define SID_SBM2_BP1_F0 29
#define SID_SBM2_BP2_F0 32
#define SID_SBM2_BP1_F1 30
#define SID_SBM2_BP2_F1 33
// LENGTH (BYTES)
#define LENGTH_TM_LFR_TC_EXE_MAX 32
#define LENGTH_TM_LFR_HK 126
// HEADER_LENGTH
#define TM_HEADER_LEN 16
#define HEADER_LENGTH_TM_LFR_SCIENCE_ASM 28
// PACKET_LENGTH
#define PACKET_LENGTH_TC_EXE_SUCCESS (20 - CCSDS_TC_TM_PACKET_OFFSET)
#define PACKET_LENGTH_TC_EXE_INCONSISTENT (26 - CCSDS_TC_TM_PACKET_OFFSET)
#define PACKET_LENGTH_TC_EXE_NOT_EXECUTABLE (26 - CCSDS_TC_TM_PACKET_OFFSET)
#define PACKET_LENGTH_TC_EXE_NOT_IMPLEMENTED (24 - CCSDS_TC_TM_PACKET_OFFSET)
#define PACKET_LENGTH_TC_EXE_ERROR (24 - CCSDS_TC_TM_PACKET_OFFSET)
#define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET)
#define PACKET_LENGTH_HK (126 - CCSDS_TC_TM_PACKET_OFFSET)
#define PACKET_LENGTH_PARAMETER_DUMP (34 - CCSDS_TC_TM_PACKET_OFFSET)
#define PACKET_LENGTH_TM_LFR_SCIENCE_ASM (TOTAL_SIZE_SM + HEADER_LENGTH_TM_LFR_SCIENCE_ASM - CCSDS_TC_TM_PACKET_OFFSET)
#define SPARE1_PUSVERSION_SPARE2 0x10
#define LEN_TM_LFR_HK 130 // 126 + 4
#define LEN_TM_LFR_TC_EXE_NOT_IMP 28 // 24 + 4
#define TM_LEN_SCI_SWF_340 4101 // 340 * 12 + 10 + 12 - 1
#define TM_LEN_SCI_SWF_8 117 // 8 * 12 + 10 + 12 - 1
#define TM_LEN_SCI_CWF_340 4099 // 340 * 12 + 10 + 10 - 1
#define TM_LEN_SCI_CWF_8 115 // 8 * 12 + 10 + 10 - 1
#define TM_LEN_SCI_CWF3_LIGHT_340 2059 // 340 * 6 + 10 + 10 - 1
#define TM_LEN_SCI_CWF3_LIGHT_8 67 // 8 * 6 + 10 + 10 - 1
#define DEFAULT_PKTCNT 0x07
#define BLK_NR_340 0x0154
#define BLK_NR_8 0x0008
enum TM_TYPE{
TM_LFR_TC_EXE_OK,
TM_LFR_TC_EXE_ERR,
TM_LFR_HK,
TM_LFR_SCI,
TM_LFR_SCI_SBM,
TM_LFR_PAR_DUMP
};
struct TMHeader_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
};
typedef struct TMHeader_str TMHeader_t;
struct Packet_TM_LFR_TC_EXE_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
volatile unsigned char data[LENGTH_TM_LFR_TC_EXE_MAX - 10 + 1];
};
typedef struct Packet_TM_LFR_TC_EXE_str Packet_TM_LFR_TC_EXE_t;
struct Packet_TM_LFR_TC_EXE_SUCCESS_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
// PACKET HEADER
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
//
volatile unsigned char telecommand_pkt_id[2];
volatile unsigned char pkt_seq_control[2];
};
typedef struct Packet_TM_LFR_TC_EXE_SUCCESS_str Packet_TM_LFR_TC_EXE_SUCCESS_t;
struct Packet_TM_LFR_TC_EXE_INCONSISTENT_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
// PACKET HEADER
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
//
volatile unsigned char tc_failure_code[2];
volatile unsigned char telecommand_pkt_id[2];
volatile unsigned char pkt_seq_control[2];
volatile unsigned char tc_service;
volatile unsigned char tc_subtype;
volatile unsigned char byte_position;
volatile unsigned char rcv_value;
};
typedef struct Packet_TM_LFR_TC_EXE_INCONSISTENT_str Packet_TM_LFR_TC_EXE_INCONSISTENT_t;
struct Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
// PACKET HEADER
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
//
volatile unsigned char tc_failure_code[2];
volatile unsigned char telecommand_pkt_id[2];
volatile unsigned char pkt_seq_control[2];
volatile unsigned char tc_service;
volatile unsigned char tc_subtype;
volatile unsigned char lfr_status_word[2];
};
typedef struct Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_str Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_t;
struct Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
// PACKET HEADER
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
//
volatile unsigned char tc_failure_code[2];
volatile unsigned char telecommand_pkt_id[2];
volatile unsigned char pkt_seq_control[2];
volatile unsigned char tc_service;
volatile unsigned char tc_subtype;
};
typedef struct Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_str Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_t;
struct Packet_TM_LFR_TC_EXE_ERROR_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
// PACKET HEADER
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
//
volatile unsigned char tc_failure_code[2];
volatile unsigned char telecommand_pkt_id[2];
volatile unsigned char pkt_seq_control[2];
volatile unsigned char tc_service;
volatile unsigned char tc_subtype;
};
typedef struct Packet_TM_LFR_TC_EXE_ERROR_str Packet_TM_LFR_TC_EXE_ERROR_t;
struct Packet_TM_LFR_TC_EXE_CORRUPTED_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
// PACKET HEADER
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
//
volatile unsigned char tc_failure_code[2];
volatile unsigned char telecommand_pkt_id[2];
volatile unsigned char pkt_seq_control[2];
volatile unsigned char tc_service;
volatile unsigned char tc_subtype;
volatile unsigned char pkt_len_rcv_value[2];
volatile unsigned char pkt_datafieldsize_cnt[2];
volatile unsigned char rcv_crc[2];
volatile unsigned char computed_crc[2];
};
typedef struct Packet_TM_LFR_TC_EXE_CORRUPTED_str Packet_TM_LFR_TC_EXE_CORRUPTED_t;
struct Header_TM_LFR_SCIENCE_SWF_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
// AUXILIARY HEADER
volatile unsigned char sid;
volatile unsigned char hkBIA;
volatile unsigned char pktCnt;
volatile unsigned char pktNr;
volatile unsigned char acquisitionTime[6];
volatile unsigned char blkNr[2];
};
typedef struct Header_TM_LFR_SCIENCE_SWF_str Header_TM_LFR_SCIENCE_SWF_t;
struct Header_TM_LFR_SCIENCE_CWF_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
// AUXILIARY DATA HEADER
volatile unsigned char sid;
volatile unsigned char hkBIA;
volatile unsigned char acquisitionTime[6];
volatile unsigned char blkNr[2];
};
typedef struct Header_TM_LFR_SCIENCE_CWF_str Header_TM_LFR_SCIENCE_CWF_t;
struct Header_TM_LFR_SCIENCE_ASM_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
// AUXILIARY HEADER
volatile unsigned char sid;
volatile unsigned char biaStatusInfo;
volatile unsigned char cntASM;
volatile unsigned char nrASM;
volatile unsigned char acquisitionTime[6];
volatile unsigned char blkNr[2];
};
typedef struct Header_TM_LFR_SCIENCE_ASM_str Header_TM_LFR_SCIENCE_ASM_t;
struct ccsdsTelecommandPacket_str
{
//unsigned char targetLogicalAddress; // removed by the grspw module
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char headerFlag_pusVersion_Ack;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char sourceID;
volatile unsigned char dataAndCRC[CCSDS_TC_PKT_MAX_SIZE-10];
};
typedef struct ccsdsTelecommandPacket_str ccsdsTelecommandPacket_t;
struct Packet_TM_LFR_HK_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
volatile unsigned char sid;
//**************
// HK PARAMETERS
unsigned char lfr_status_word[2];
unsigned char lfr_sw_version[4];
// tc statistics
unsigned char hk_lfr_update_info_tc_cnt[2];
unsigned char hk_lfr_update_time_tc_cnt[2];
unsigned char hk_dpu_exe_tc_lfr_cnt[2];
unsigned char hk_dpu_rej_tc_lfr_cnt[2];
unsigned char hk_lfr_last_exe_tc_id[2];
unsigned char hk_lfr_last_exe_tc_type[2];
unsigned char hk_lfr_last_exe_tc_subtype[2];
unsigned char hk_lfr_last_exe_tc_time[6];
unsigned char hk_lfr_last_rej_tc_id[2];
unsigned char hk_lfr_last_rej_tc_type[2];
unsigned char hk_lfr_last_rej_tc_subtype[2];
unsigned char hk_lfr_last_rej_tc_time[6];
// anomaly statistics
unsigned char hk_lfr_le_cnt[2];
unsigned char hk_lfr_me_cnt[2];
unsigned char hk_lfr_he_cnt[2];
unsigned char hk_lfr_last_er_rid[2];
unsigned char hk_lfr_last_er_code;
unsigned char hk_lfr_last_er_time[6];
// vhdl_blk_status
unsigned char hk_lfr_vhdl_aa_sm;
unsigned char hk_lfr_vhdl_fft_sr;
unsigned char hk_lfr_vhdl_cic_hk;
unsigned char hk_lfr_vhdl_iir_cal;
// spacewire_if_statistics
unsigned char hk_lfr_dpu_spw_pkt_rcv_cnt[2];
unsigned char hk_lfr_dpu_spw_pkt_sent_cnt[2];
unsigned char hk_lfr_dpu_spw_tick_out_cnt;
unsigned char hk_lfr_dpu_spw_last_timc;
// ahb error statistics
unsigned int hk_lfr_last_fail_addr;
// temperatures
unsigned char hk_lfr_temp_scm[2];
unsigned char hk_lfr_temp_pcb[2];
unsigned char hk_lfr_temp_fpga[2];
// error counters
unsigned char hk_lfr_dpu_spw_parity;
unsigned char hk_lfr_dpu_spw_disconnect;
unsigned char hk_lfr_dpu_spw_escape;
unsigned char hk_lfr_dpu_spw_credit;
unsigned char hk_lfr_dpu_spw_write_sync;
unsigned char hk_lfr_dpu_spw_rx_ahb;
unsigned char hk_lfr_dpu_spw_tx_ahb;
unsigned char hk_lfr_dpu_spw_header_crc;
unsigned char hk_lfr_dpu_spw_data_crc;
unsigned char hk_lfr_dpu_spw_early_eop;
unsigned char hk_lfr_dpu_spw_invalid_addr;
unsigned char hk_lfr_dpu_spw_eep;
unsigned char hk_lfr_dpu_spw_rx_too_big;
// timecode
unsigned char hk_lfr_timecode_erroneous;
unsigned char hk_lfr_timecode_missing;
unsigned char hk_lfr_timecode_invalid;
// time
unsigned char hk_lfr_time_timecode_it;
unsigned char hk_lfr_time_not_synchro;
unsigned char hk_lfr_time_timecode_ctr;
// hk_lfr_buffer_dpu_
unsigned char hk_lfr_buffer_dpu_tc_fifo;
unsigned char hk_lfr_buffer_dpu_tm_fifo;
// hk_lfr_ahb_
unsigned char hk_lfr_ahb_correctable;
unsigned char hk_lfr_ahb_uncorrectable;
unsigned char hk_lfr_ahb_fails_trans;
// hk_lfr_adc_
unsigned char hk_lfr_adc_failure;
unsigned char hk_lfr_adc_timeout;
unsigned char hk_lfr_toomany_err;
// hk_lfr_cpu_
unsigned char hk_lfr_cpu_write_err;
unsigned char hk_lfr_cpu_ins_access_err;
unsigned char hk_lfr_cpu_illegal_ins;
unsigned char hk_lfr_cpu_privilegied_ins;
unsigned char hk_lfr_cpu_register_hw;
unsigned char hk_lfr_cpu_not_aligned;
unsigned char hk_lfr_cpu_data_exception;
unsigned char hk_lfr_cpu_div_exception;
unsigned char hk_lfr_cpu_arith_overflow;
};
typedef struct Packet_TM_LFR_HK_str Packet_TM_LFR_HK_t;
struct Packet_TM_LFR_PARAMETER_DUMP_str
{
volatile unsigned char targetLogicalAddress;
volatile unsigned char protocolIdentifier;
volatile unsigned char reserved;
volatile unsigned char userApplication;
volatile unsigned char packetID[2];
volatile unsigned char packetSequenceControl[2];
volatile unsigned char packetLength[2];
// DATA FIELD HEADER
volatile unsigned char spare1_pusVersion_spare2;
volatile unsigned char serviceType;
volatile unsigned char serviceSubType;
volatile unsigned char destinationID;
volatile unsigned char time[6];
volatile unsigned char sid;
//******************
// COMMON PARAMETERS
volatile unsigned char unused0;
volatile unsigned char bw_sp0_sp1_r0_r1;
//******************
// NORMAL PARAMETERS
volatile unsigned char sy_lfr_n_swf_l[2];
volatile unsigned char sy_lfr_n_swf_p[2];
volatile unsigned char sy_lfr_n_asm_p[2];
volatile unsigned char sy_lfr_n_bp_p0;
volatile unsigned char sy_lfr_n_bp_p1;
//*****************
// BURST PARAMETERS
volatile unsigned char sy_lfr_b_bp_p0;
volatile unsigned char sy_lfr_b_bp_p1;
//****************
// SBM1 PARAMETERS
volatile unsigned char sy_lfr_s1_bp_p0;
volatile unsigned char sy_lfr_s1_bp_p1;
//****************
// SBM2 PARAMETERS
volatile unsigned char sy_lfr_s2_bp_p0;
volatile unsigned char sy_lfr_s2_bp_p1;
};
typedef struct Packet_TM_LFR_PARAMETER_DUMP_str Packet_TM_LFR_PARAMETER_DUMP_t;
#endif // CCSDS_TYPES_H_INCLUDED