##// END OF EJS Templates
compliance with ICD 4.3
paul -
r60:058c1234c2de R3++
parent child
Show More
@@ -126,7 +126,7
126 126 #define TC_LEN_LOAD_K 142
127 127 #define TC_LEN_DUMP_K 12
128 128 #define TC_LEN_LOAD_FBINS 60
129 #define TC_LEN_LOAD_FILTER_PAR 28
129 #define TC_LEN_LOAD_FILTER_PAR 92
130 130 #define TC_LEN_UPDT_TIME 18
131 131
132 132 // PACKET CODES
@@ -263,7 +263,7 enum apid_destid{
263 263 #define PACKET_LENGTH_TC_EXE_ERROR (24 - CCSDS_TC_TM_PACKET_OFFSET)
264 264 #define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET)
265 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 267 #define PACKET_LENGTH_K_DUMP (3920 - CCSDS_TC_TM_PACKET_OFFSET)
268 268 // SCIENCE ASM
269 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 742 unsigned char hk_lfr_buffer_dpu_tm_fifo;
743 743 // hk_lfr_ahb_
744 744 unsigned char hk_lfr_ahb_correctable;
745 unsigned char hk_lfr_ahb_uncorrectable;
746 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 748 } Packet_TM_LFR_HK_t;
749 749
750 750 //***************
@@ -825,7 +825,29 typedef struct {
825 825 unsigned char sy_lfr_pas_filter_shift[PARAM_4_BYTES];
826 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 851 unsigned char sy_lfr_rw_mask_f0_word1[BYTES_PER_WORD];
830 852 unsigned char sy_lfr_rw_mask_f0_word2[BYTES_PER_WORD];
831 853 unsigned char sy_lfr_rw_mask_f0_word3[BYTES_PER_WORD];
@@ -355,7 +355,11 typedef struct {
355 355 #define DEFAULT_SY_LFR_PAS_FILTER_TBAD 1.0
356 356 #define DEFAULT_SY_LFR_PAS_FILTER_OFFSET 0
357 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 364 typedef struct{
361 365 unsigned char spare_sy_lfr_pas_filter_enabled;
@@ -364,8 +368,51 typedef struct{
364 368 unsigned char sy_lfr_pas_filter_offset;
365 369 float sy_lfr_pas_filter_shift;
366 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 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 416 #define NB_ACQUISITION_DURATION 3
370 417 #define ACQUISITION_DURATION_F0 683 // 256 / 24576 * 65536
371 418 #define ACQUISITION_DURATION_F1 4096 // 256 / 4096 * 65536
@@ -34,15 +34,26
34 34 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET2 11
35 35 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET5 34
36 36 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET6 35
37 // RW1
37 38 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F1 44
38 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_RW2_F2 56
41 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F1 60
42 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F2 64
43 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F1 68
44 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F2 72
45 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW_F_FLAGS 77
40 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F3 52
41 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F4 56
42 // RW2
43 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F1 60
44 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F2 64
45 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F3 68
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 58 #define BITS_LFR_MODE 0x1e
48 59 #define SHIFT_LFR_MODE 1
@@ -58,6 +69,8
58 69 //TC_LFR_LOAD_FBINS_MASK
59 70
60 71 // TC_LFR_LOAD_FILTER_PAR
72 #define NB_RW_K_COEFFS 16
73 #define NB_BYTES_PER_RW_K_COEFF 4
61 74 #define DATAFIELD_POS_PA_RPW_SPARE8_2 0 // 8 bits
62 75 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_ENABLED 1 // 8 bits
63 76 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_MODULUS 2 // 8 bits
@@ -65,6 +78,22
65 78 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_OFFSET 7 // 8 bits
66 79 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_SHIFT 8 // 32 bits
67 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 98 // TC_LFR_LOAD_KCOEFFICIENTS
70 99 #define NB_BYTES_PER_FLOAT 4
General Comments 0
You need to be logged in to leave comments. Login now