##// END OF EJS Templates
compliance with ICD 4.3
paul -
r60:058c1234c2de R3++
parent child
Show More
@@ -126,7 +126,7
126 #define TC_LEN_LOAD_K 142
126 #define TC_LEN_LOAD_K 142
127 #define TC_LEN_DUMP_K 12
127 #define TC_LEN_DUMP_K 12
128 #define TC_LEN_LOAD_FBINS 60
128 #define TC_LEN_LOAD_FBINS 60
129 #define TC_LEN_LOAD_FILTER_PAR 28
129 #define TC_LEN_LOAD_FILTER_PAR 92
130 #define TC_LEN_UPDT_TIME 18
130 #define TC_LEN_UPDT_TIME 18
131
131
132 // PACKET CODES
132 // PACKET CODES
@@ -263,7 +263,7 enum apid_destid{
263 #define PACKET_LENGTH_TC_EXE_ERROR (24 - CCSDS_TC_TM_PACKET_OFFSET)
263 #define PACKET_LENGTH_TC_EXE_ERROR (24 - CCSDS_TC_TM_PACKET_OFFSET)
264 #define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET)
264 #define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET)
265 #define PACKET_LENGTH_HK (136 - CCSDS_TC_TM_PACKET_OFFSET)
265 #define PACKET_LENGTH_HK (136 - CCSDS_TC_TM_PACKET_OFFSET)
266 #define PACKET_LENGTH_PARAMETER_DUMP (148 - CCSDS_TC_TM_PACKET_OFFSET)
266 #define PACKET_LENGTH_PARAMETER_DUMP (212 - CCSDS_TC_TM_PACKET_OFFSET)
267 #define PACKET_LENGTH_K_DUMP (3920 - CCSDS_TC_TM_PACKET_OFFSET)
267 #define PACKET_LENGTH_K_DUMP (3920 - CCSDS_TC_TM_PACKET_OFFSET)
268 // SCIENCE ASM
268 // SCIENCE ASM
269 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0_1 (3230 - CCSDS_TC_TM_PACKET_OFFSET) // 32 * 25 * 4 + 30 => 32 bins (32 + 32 + 24 ), 3 packets
269 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0_1 (3230 - CCSDS_TC_TM_PACKET_OFFSET) // 32 * 25 * 4 + 30 => 32 bins (32 + 32 + 24 ), 3 packets
@@ -742,9 +742,9 typedef struct {
742 unsigned char hk_lfr_buffer_dpu_tm_fifo;
742 unsigned char hk_lfr_buffer_dpu_tm_fifo;
743 // hk_lfr_ahb_
743 // hk_lfr_ahb_
744 unsigned char hk_lfr_ahb_correctable;
744 unsigned char hk_lfr_ahb_correctable;
745 unsigned char hk_lfr_ahb_uncorrectable;
746 // reaction wheel frequency
745 // reaction wheel frequency
747 unsigned char hk_lfr_sc_rw_f_flags;
746 unsigned char hk_lfr_sc_rw1_rw2_f_flags;
747 unsigned char hk_lfr_sc_rw3_rw4_f_flags;
748 } Packet_TM_LFR_HK_t;
748 } Packet_TM_LFR_HK_t;
749
749
750 //***************
750 //***************
@@ -825,7 +825,29 typedef struct {
825 unsigned char sy_lfr_pas_filter_shift[PARAM_4_BYTES];
825 unsigned char sy_lfr_pas_filter_shift[PARAM_4_BYTES];
826 unsigned char sy_lfr_sc_rw_delta_f[PARAM_4_BYTES];
826 unsigned char sy_lfr_sc_rw_delta_f[PARAM_4_BYTES];
827
827
828 // LFR_RW_MASK
828 // SY_LFR_RWi_Kj REACTION WHEELS K COEFFICIENTS
829 // RW1_K
830 unsigned char sy_lfr_rw1_k1[4];
831 unsigned char sy_lfr_rw1_k2[4];
832 unsigned char sy_lfr_rw1_k3[4];
833 unsigned char sy_lfr_rw1_k4[4];
834 // RW2_K
835 unsigned char sy_lfr_rw2_k1[4];
836 unsigned char sy_lfr_rw2_k2[4];
837 unsigned char sy_lfr_rw2_k3[4];
838 unsigned char sy_lfr_rw2_k4[4];
839 // RW3_K
840 unsigned char sy_lfr_rw3_k1[4];
841 unsigned char sy_lfr_rw3_k2[4];
842 unsigned char sy_lfr_rw3_k3[4];
843 unsigned char sy_lfr_rw3_k4[4];
844 // RW4_K
845 unsigned char sy_lfr_rw4_k1[4];
846 unsigned char sy_lfr_rw4_k2[4];
847 unsigned char sy_lfr_rw4_k3[4];
848 unsigned char sy_lfr_rw4_k4[4];
849
850 // LFR_RW_MASK REACTION WHEELS MASKS
829 unsigned char sy_lfr_rw_mask_f0_word1[BYTES_PER_WORD];
851 unsigned char sy_lfr_rw_mask_f0_word1[BYTES_PER_WORD];
830 unsigned char sy_lfr_rw_mask_f0_word2[BYTES_PER_WORD];
852 unsigned char sy_lfr_rw_mask_f0_word2[BYTES_PER_WORD];
831 unsigned char sy_lfr_rw_mask_f0_word3[BYTES_PER_WORD];
853 unsigned char sy_lfr_rw_mask_f0_word3[BYTES_PER_WORD];
@@ -355,7 +355,11 typedef struct {
355 #define DEFAULT_SY_LFR_PAS_FILTER_TBAD 1.0
355 #define DEFAULT_SY_LFR_PAS_FILTER_TBAD 1.0
356 #define DEFAULT_SY_LFR_PAS_FILTER_OFFSET 0
356 #define DEFAULT_SY_LFR_PAS_FILTER_OFFSET 0
357 #define DEFAULT_SY_LFR_PAS_FILTER_SHIFT 0.5
357 #define DEFAULT_SY_LFR_PAS_FILTER_SHIFT 0.5
358 #define DEFAULT_SY_LFR_SC_RW_DELTA_F 0.025
358 #define DEFAULT_SY_LFR_SC_RW_DELTA_F 0.045
359 #define DEFAULT_SY_LFR_RW_K1 1.
360 #define DEFAULT_SY_LFR_RW_K2 8.
361 #define DEFAULT_SY_LFR_RW_K3 24.
362 #define DEFAULT_SY_LFR_RW_K4 48.
359
363
360 typedef struct{
364 typedef struct{
361 unsigned char spare_sy_lfr_pas_filter_enabled;
365 unsigned char spare_sy_lfr_pas_filter_enabled;
@@ -364,8 +368,51 typedef struct{
364 unsigned char sy_lfr_pas_filter_offset;
368 unsigned char sy_lfr_pas_filter_offset;
365 float sy_lfr_pas_filter_shift;
369 float sy_lfr_pas_filter_shift;
366 float sy_lfr_sc_rw_delta_f;
370 float sy_lfr_sc_rw_delta_f;
371 // rw1_k
372 float sy_lfr_rw1_k1;
373 float sy_lfr_rw1_k2;
374 float sy_lfr_rw1_k3;
375 float sy_lfr_rw1_k4;
376 // rw2_k
377 float sy_lfr_rw2_k1;
378 float sy_lfr_rw2_k2;
379 float sy_lfr_rw2_k3;
380 float sy_lfr_rw2_k4;
381 // rw3_k
382 float sy_lfr_rw3_k1;
383 float sy_lfr_rw3_k2;
384 float sy_lfr_rw3_k3;
385 float sy_lfr_rw3_k4;
386 // rw4_k
387 float sy_lfr_rw4_k1;
388 float sy_lfr_rw4_k2;
389 float sy_lfr_rw4_k3;
390 float sy_lfr_rw4_k4;
367 } filterPar_t;
391 } filterPar_t;
368
392
393 typedef struct{
394 // rw1_f
395 float cp_rpw_sc_rw1_f1;
396 float cp_rpw_sc_rw1_f2;
397 float cp_rpw_sc_rw1_f3;
398 float cp_rpw_sc_rw1_f4;
399 // rw2_f
400 float cp_rpw_sc_rw2_f1;
401 float cp_rpw_sc_rw2_f2;
402 float cp_rpw_sc_rw2_f3;
403 float cp_rpw_sc_rw2_f4;
404 // rw3_f
405 float cp_rpw_sc_rw3_f1;
406 float cp_rpw_sc_rw3_f2;
407 float cp_rpw_sc_rw3_f3;
408 float cp_rpw_sc_rw3_f4;
409 // rw4_f
410 float cp_rpw_sc_rw4_f1;
411 float cp_rpw_sc_rw4_f2;
412 float cp_rpw_sc_rw4_f3;
413 float cp_rpw_sc_rw4_f4;
414 } rw_f_t;
415
369 #define NB_ACQUISITION_DURATION 3
416 #define NB_ACQUISITION_DURATION 3
370 #define ACQUISITION_DURATION_F0 683 // 256 / 24576 * 65536
417 #define ACQUISITION_DURATION_F0 683 // 256 / 24576 * 65536
371 #define ACQUISITION_DURATION_F1 4096 // 256 / 4096 * 65536
418 #define ACQUISITION_DURATION_F1 4096 // 256 / 4096 * 65536
@@ -34,15 +34,26
34 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET2 11
34 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET2 11
35 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET5 34
35 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET5 34
36 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET6 35
36 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET6 35
37 // RW1
37 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F1 44
38 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F1 44
38 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F2 48
39 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F2 48
39 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F1 52
40 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F3 52
40 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F2 56
41 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F4 56
41 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F1 60
42 // RW2
42 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F2 64
43 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F1 60
43 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F1 68
44 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F2 64
44 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F2 72
45 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F3 68
45 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW_F_FLAGS 77
46 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F4 72
47 // RW3
48 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F1 76
49 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F2 80
50 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F3 84
51 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F4 88
52 // RW4
53 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F1 92
54 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F2 96
55 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F3 100
56 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F4 104
46
57
47 #define BITS_LFR_MODE 0x1e
58 #define BITS_LFR_MODE 0x1e
48 #define SHIFT_LFR_MODE 1
59 #define SHIFT_LFR_MODE 1
@@ -58,6 +69,8
58 //TC_LFR_LOAD_FBINS_MASK
69 //TC_LFR_LOAD_FBINS_MASK
59
70
60 // TC_LFR_LOAD_FILTER_PAR
71 // TC_LFR_LOAD_FILTER_PAR
72 #define NB_RW_K_COEFFS 16
73 #define NB_BYTES_PER_RW_K_COEFF 4
61 #define DATAFIELD_POS_PA_RPW_SPARE8_2 0 // 8 bits
74 #define DATAFIELD_POS_PA_RPW_SPARE8_2 0 // 8 bits
62 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_ENABLED 1 // 8 bits
75 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_ENABLED 1 // 8 bits
63 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_MODULUS 2 // 8 bits
76 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_MODULUS 2 // 8 bits
@@ -65,6 +78,22
65 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_OFFSET 7 // 8 bits
78 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_OFFSET 7 // 8 bits
66 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_SHIFT 8 // 32 bits
79 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_SHIFT 8 // 32 bits
67 #define DATAFIELD_POS_SY_LFR_SC_RW_DELTA_F 12 // 32 bits
80 #define DATAFIELD_POS_SY_LFR_SC_RW_DELTA_F 12 // 32 bits
81 #define DATAFIELD_POS_SY_LFR_RW1_K1 16 // 32 bits
82 #define DATAFIELD_POS_SY_LFR_RW1_K2 20 // 32 bits
83 #define DATAFIELD_POS_SY_LFR_RW1_K3 24 // 32 bits
84 #define DATAFIELD_POS_SY_LFR_RW1_K4 28 // 32 bits
85 #define DATAFIELD_POS_SY_LFR_RW2_K1 32 // 32 bits
86 #define DATAFIELD_POS_SY_LFR_RW2_K2 36 // 32 bits
87 #define DATAFIELD_POS_SY_LFR_RW2_K3 40 // 32 bits
88 #define DATAFIELD_POS_SY_LFR_RW2_K4 44 // 32 bits
89 #define DATAFIELD_POS_SY_LFR_RW3_K1 48 // 32 bits
90 #define DATAFIELD_POS_SY_LFR_RW3_K2 52 // 32 bits
91 #define DATAFIELD_POS_SY_LFR_RW3_K3 56 // 32 bits
92 #define DATAFIELD_POS_SY_LFR_RW3_K4 60 // 32 bits
93 #define DATAFIELD_POS_SY_LFR_RW4_K1 64 // 32 bits
94 #define DATAFIELD_POS_SY_LFR_RW4_K2 68 // 32 bits
95 #define DATAFIELD_POS_SY_LFR_RW4_K3 72 // 32 bits
96 #define DATAFIELD_POS_SY_LFR_RW4_K4 76 // 32 bits
68
97
69 // TC_LFR_LOAD_KCOEFFICIENTS
98 // TC_LFR_LOAD_KCOEFFICIENTS
70 #define NB_BYTES_PER_FLOAT 4
99 #define NB_BYTES_PER_FLOAT 4
General Comments 0
You need to be logged in to leave comments. Login now