diff --git a/ccsds_types.h b/ccsds_types.h --- a/ccsds_types.h +++ b/ccsds_types.h @@ -99,12 +99,15 @@ #define TC_LEN_LOAD_FBINS 60 #define TC_LEN_UPDT_TIME 18 +// PACKET CODES +#define TM_CODE_K_DUMP 0xb5600b00 // 181 (0xb5) ** 96 (0x60) ** 11 (0x0b) ** 0 (0x00) + // TM TYPES #define TM_TYPE_TC_EXE 1 #define TM_TYPE_HK 3 #define TM_TYPE_LFR_SCIENCE 21 #define TM_TYPE_PARAMETER_DUMP 181 -#define TM_TYPE_KCOEFFICIENTD_DUMP 181 +#define TM_TYPE_K_DUMP 181 // TM SUBTYPES #define TM_SUBTYPE_EXE_OK 7 @@ -704,5 +707,29 @@ typedef struct { unsigned char source_data_spare; } Packet_TM_LFR_PARAMETER_DUMP_t; +typedef struct { + unsigned char targetLogicalAddress; + unsigned char protocolIdentifier; + unsigned char reserved; + unsigned char userApplication; + unsigned char packetID[2]; + unsigned char packetSequenceControl[2]; + unsigned char packetLength[2]; + // DATA FIELD HEADER + unsigned char spare1_pusVersion_spare2; + unsigned char serviceType; + unsigned char serviceSubType; + unsigned char destinationID; + unsigned char time[6]; + unsigned char sid; + unsigned char pkt_cnt; + unsigned char pkt_nr; + unsigned char blk_nr; + + //****************** + // SOURCE DATA repeated N times with N in [0 .. PA_LFR_KCOEFF_BLK_NR] + unsigned char kcoeff_blks[3900]; // one blk is 2 + 4 * 32 = 130 bytes, 30 blks max in one packet (30 * 130 = 3900) + +} Packet_TM_LFR_KCOEFFICIENTS_DUMP_t; #endif // CCSDS_TYPES_H_INCLUDED diff --git a/fsw_params_nb_bytes.h b/fsw_params_nb_bytes.h --- a/fsw_params_nb_bytes.h +++ b/fsw_params_nb_bytes.h @@ -34,4 +34,9 @@ #define BYTE_POS_CP_MODE_LFR_SET 11 #define BYTE_POS_CP_LFR_ENTER_MODE_TIME 12 +// TC_LFR_LOAD_KCOEFFICIENTS +#define NB_BYTES_PER_FLOAT 4 +#define DATAFIELD_POS_SY_LFR_KCOEFF_FREQUENCY 0 // 10 - 10 +#define DATAFIELD_POS_SY_LFR_KCOEFF_1 2 // 12 - 10 + #endif // TM_BYTE_POSITIONS_H diff --git a/fsw_params_processing.h b/fsw_params_processing.h --- a/fsw_params_processing.h +++ b/fsw_params_processing.h @@ -41,6 +41,7 @@ #define ASM_F2_INDICE_START 6 // 7 - 1, (-1) due to the VHDL behaviour #define ASM_F2_INDICE_STOP 101 // 102 - 1, 2 packets of 48 bins // +#define KCOEFF_BLK_SIZE 130 #define NB_BINS_COMPRESSED_SM_F0 11 #define NB_BINS_COMPRESSED_SM_F1 13 #define NB_BINS_COMPRESSED_SM_F2 12 diff --git a/tm_byte_positions.h b/tm_byte_positions.h --- a/tm_byte_positions.h +++ b/tm_byte_positions.h @@ -3,8 +3,6 @@ #define BYTE_POS_CP_LFR_MODE 11 -// TC_LFR_LOAD_COMMON_PAR - // TC_LFR_LOAD_NORMAL_PAR #define BYTE_POS_SY_LFR_N_SWF_L 0 #define BYTE_POS_SY_LFR_N_SWF_P 2 @@ -13,11 +11,4 @@ #define BYTE_POS_SY_LFR_N_BP_P1 7 #define BYTE_POS_SY_LFR_N_CWF_LONG_F3 8 -// TC_LFR_LOAD_BURST_PAR - -// TC_LFR_LOAD_SBM1_PAR - -// TC_LFR_LOAD_SBM2_PAR - - #endif // TM_BYTE_POSITIONS_H