@@ -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 2 |
|
|
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 ( |
|
|
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.0 |
|
|
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_RW |
|
|
40 |
#define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW |
|
|
41 | #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F1 60 | |
|
42 |
#define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW |
|
|
43 |
#define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW |
|
|
44 |
#define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW |
|
|
45 |
#define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW |
|
|
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