@@ -1,2 +1,2 | |||||
1 | a586fe639ac179e95bdc150ebdbab0312f31dc30 LFR_basic-parameters |
|
1 | b054211408845ff1f92ddeaae6e651e90d996ffb LFR_basic-parameters | |
2 | bb9afa759d57093f7646d3be18f4a9923a4cbf84 header/lfr_common_headers |
|
2 | bb9afa759d57093f7646d3be18f4a9923a4cbf84 header/lfr_common_headers |
@@ -12,7 +12,7 SWVERSION=-1-0 | |||||
12 | DEFINES += SW_VERSION_N1=3 # major |
|
12 | DEFINES += SW_VERSION_N1=3 # major | |
13 | DEFINES += SW_VERSION_N2=0 # minor |
|
13 | DEFINES += SW_VERSION_N2=0 # minor | |
14 | DEFINES += SW_VERSION_N3=0 # patch |
|
14 | DEFINES += SW_VERSION_N3=0 # patch | |
15 |
DEFINES += SW_VERSION_N4= |
|
15 | DEFINES += SW_VERSION_N4=6 # internal | |
16 |
|
16 | |||
17 | # <GCOV> |
|
17 | # <GCOV> | |
18 | #QMAKE_CFLAGS_RELEASE += -fprofile-arcs -ftest-coverage |
|
18 | #QMAKE_CFLAGS_RELEASE += -fprofile-arcs -ftest-coverage |
@@ -28,7 +28,7 rtems_task prc0_task( rtems_task_argumen | |||||
28 | // FUNCTIONS |
|
28 | // FUNCTIONS | |
29 |
|
29 | |||
30 | void reset_nb_sm_f0( unsigned char lfrMode ); |
|
30 | void reset_nb_sm_f0( unsigned char lfrMode ); | |
31 |
void init_k_coefficients_ |
|
31 | void init_k_coefficients_prc0( void ); | |
32 | void test_TCH( void ); |
|
32 | void test_TCH( void ); | |
33 |
|
33 | |||
34 | //******* |
|
34 | //******* |
@@ -26,7 +26,7 rtems_task prc1_task( rtems_task_argumen | |||||
26 | // FUNCTIONS |
|
26 | // FUNCTIONS | |
27 |
|
27 | |||
28 | void reset_nb_sm_f1( unsigned char lfrMode ); |
|
28 | void reset_nb_sm_f1( unsigned char lfrMode ); | |
29 |
void init_k_coefficients_ |
|
29 | void init_k_coefficients_prc1( void ); | |
30 |
|
30 | |||
31 | //******* |
|
31 | //******* | |
32 | // EXTERN |
|
32 | // EXTERN |
@@ -21,7 +21,7 rtems_task prc2_task( rtems_task_argumen | |||||
21 |
|
21 | |||
22 | void reset_nb_sm_f2( void ); |
|
22 | void reset_nb_sm_f2( void ); | |
23 | void SM_average_f2(float *averaged_spec_mat_f2, ring_node *ring_node, unsigned int nbAverageNormF2 , asm_msg *msgForMATR); |
|
23 | void SM_average_f2(float *averaged_spec_mat_f2, ring_node *ring_node, unsigned int nbAverageNormF2 , asm_msg *msgForMATR); | |
24 |
void init_k_coefficients_ |
|
24 | void init_k_coefficients_prc2( void ); | |
25 |
|
25 | |||
26 | //******* |
|
26 | //******* | |
27 | // EXTERN |
|
27 | // EXTERN |
@@ -320,4 +320,6 void ASM_compress_reorganize_and_divide_ | |||||
320 |
|
320 | |||
321 | int getFBinMask(int k); |
|
321 | int getFBinMask(int k); | |
322 |
|
322 | |||
|
323 | void init_kcoeff_sbm_from_kcoeff_norm( float *input_kcoeff, float *output_kcoeff, unsigned char nb_bins_norm); | |||
|
324 | ||||
323 | #endif // FSW_PROCESSING_H_INCLUDED |
|
325 | #endif // FSW_PROCESSING_H_INCLUDED |
@@ -66,5 +66,6 void copyFloatByChar( unsigned char *des | |||||
66 | void init_parameter_dump( void ); |
|
66 | void init_parameter_dump( void ); | |
67 | void init_kcoefficients_dump( void ); |
|
67 | void init_kcoefficients_dump( void ); | |
68 | void init_kcoefficients_dump_packet( Packet_TM_LFR_KCOEFFICIENTS_DUMP_t *kcoefficients_dump, unsigned char pkt_nr, unsigned char blk_nr ); |
|
68 | void init_kcoefficients_dump_packet( Packet_TM_LFR_KCOEFFICIENTS_DUMP_t *kcoefficients_dump, unsigned char pkt_nr, unsigned char blk_nr ); | |
|
69 | void print_k_coeff(); | |||
69 |
|
70 | |||
70 | #endif // TC_LOAD_DUMP_PARAMETERS_H |
|
71 | #endif // TC_LOAD_DUMP_PARAMETERS_H |
@@ -135,9 +135,9 rtems_task Init( rtems_task_argument ign | |||||
135 | init_kcoefficients_dump(); |
|
135 | init_kcoefficients_dump(); | |
136 | init_local_mode_parameters(); |
|
136 | init_local_mode_parameters(); | |
137 | init_housekeeping_parameters(); |
|
137 | init_housekeeping_parameters(); | |
138 |
init_k_coefficients_ |
|
138 | init_k_coefficients_prc0(); | |
139 |
init_k_coefficients_ |
|
139 | init_k_coefficients_prc1(); | |
140 |
init_k_coefficients_ |
|
140 | init_k_coefficients_prc2(); | |
141 |
|
141 | |||
142 | // waveform picker initialization |
|
142 | // waveform picker initialization | |
143 | WFP_init_rings(); // initialize the waveform rings |
|
143 | WFP_init_rings(); // initialize the waveform rings |
@@ -395,8 +395,10 void reset_nb_sm_f0( unsigned char lfrMo | |||||
395 | } |
|
395 | } | |
396 | } |
|
396 | } | |
397 |
|
397 | |||
398 |
void init_k_coefficients_ |
|
398 | void init_k_coefficients_prc0( void ) | |
399 | { |
|
399 | { | |
400 |
init_k_coefficients( k_coeff_intercalib_f0_norm, NB_BINS_COMPRESSED_SM_F0 |
|
400 | init_k_coefficients( k_coeff_intercalib_f0_norm, NB_BINS_COMPRESSED_SM_F0 ); | |
401 | init_k_coefficients( k_coeff_intercalib_f0_sbm, NB_BINS_COMPRESSED_SM_SBM_F0); |
|
401 | ||
|
402 | init_kcoeff_sbm_from_kcoeff_norm( k_coeff_intercalib_f0_norm, k_coeff_intercalib_f0_sbm, NB_BINS_COMPRESSED_SM_F0); | |||
402 | } |
|
403 | } | |
|
404 |
@@ -382,8 +382,9 void reset_nb_sm_f1( unsigned char lfrMo | |||||
382 | } |
|
382 | } | |
383 | } |
|
383 | } | |
384 |
|
384 | |||
385 |
void init_k_coefficients_ |
|
385 | void init_k_coefficients_prc1( void ) | |
386 | { |
|
386 | { | |
387 |
init_k_coefficients( k_coeff_intercalib_f1_norm, NB_BINS_COMPRESSED_SM_F1 |
|
387 | init_k_coefficients( k_coeff_intercalib_f1_norm, NB_BINS_COMPRESSED_SM_F1 ); | |
388 | init_k_coefficients( k_coeff_intercalib_f1_sbm, NB_BINS_COMPRESSED_SM_SBM_F1); |
|
388 | ||
|
389 | init_kcoeff_sbm_from_kcoeff_norm( k_coeff_intercalib_f1_norm, k_coeff_intercalib_f1_sbm, NB_BINS_COMPRESSED_SM_F1); | |||
389 | } |
|
390 | } |
@@ -285,7 +285,7 void SM_average_f2( float *averaged_spec | |||||
285 | } |
|
285 | } | |
286 | } |
|
286 | } | |
287 |
|
287 | |||
288 |
void init_k_coefficients_ |
|
288 | void init_k_coefficients_prc2( void ) | |
289 | { |
|
289 | { | |
290 | init_k_coefficients( k_coeff_intercalib_f2, NB_BINS_COMPRESSED_SM_F2); |
|
290 | init_k_coefficients( k_coeff_intercalib_f2, NB_BINS_COMPRESSED_SM_F2); | |
291 | } |
|
291 | } |
@@ -654,3 +654,18 int getFBinMask( int index ) | |||||
654 |
|
654 | |||
655 | return fbin; |
|
655 | return fbin; | |
656 | } |
|
656 | } | |
|
657 | ||||
|
658 | void init_kcoeff_sbm_from_kcoeff_norm(float *input_kcoeff, float *output_kcoeff, unsigned char nb_bins_norm) | |||
|
659 | { | |||
|
660 | unsigned char bin; | |||
|
661 | unsigned char kcoeff; | |||
|
662 | ||||
|
663 | for (bin=0; bin<nb_bins_norm; bin++) | |||
|
664 | { | |||
|
665 | for (kcoeff=0; kcoeff<NB_K_COEFF_PER_BIN; kcoeff++) | |||
|
666 | { | |||
|
667 | output_kcoeff[ (bin*NB_K_COEFF_PER_BIN + kcoeff)*2 ] = input_kcoeff[ bin*NB_K_COEFF_PER_BIN + kcoeff ]; | |||
|
668 | output_kcoeff[ (bin*NB_K_COEFF_PER_BIN + kcoeff)*2 + 1 ] = input_kcoeff[ bin*NB_K_COEFF_PER_BIN + kcoeff ]; | |||
|
669 | } | |||
|
670 | } | |||
|
671 | } |
@@ -905,7 +905,7 int set_sy_lfr_fbins( ccsdsTelecommandPa | |||||
905 | // KCOEFFICIENTS |
|
905 | // KCOEFFICIENTS | |
906 | int set_sy_lfr_kcoeff( ccsdsTelecommandPacket_t *TC,rtems_id queue_id ) |
|
906 | int set_sy_lfr_kcoeff( ccsdsTelecommandPacket_t *TC,rtems_id queue_id ) | |
907 | { |
|
907 | { | |
908 |
unsigned int |
|
908 | unsigned int kcoeff; | |
909 | unsigned short sy_lfr_kcoeff_frequency; |
|
909 | unsigned short sy_lfr_kcoeff_frequency; | |
910 | unsigned short bin; |
|
910 | unsigned short bin; | |
911 | unsigned short *freqPtr; |
|
911 | unsigned short *freqPtr; | |
@@ -962,12 +962,12 int set_sy_lfr_kcoeff( ccsdsTelecommandP | |||||
962 |
|
962 | |||
963 | if (kcoeffPtr_norm != NULL ) // update K coefficient for NORMAL data products |
|
963 | if (kcoeffPtr_norm != NULL ) // update K coefficient for NORMAL data products | |
964 | { |
|
964 | { | |
965 |
for ( |
|
965 | for (kcoeff=0; kcoeff<NB_K_COEFF_PER_BIN; kcoeff++) | |
966 | { |
|
966 | { | |
967 | // destination |
|
967 | // destination | |
968 |
kcoeffNormPtr = (unsigned char*) &kcoeffPtr_norm[ |
|
968 | kcoeffNormPtr = (unsigned char*) &kcoeffPtr_norm[ (bin * NB_K_COEFF_PER_BIN) + kcoeff ]; | |
969 | // source |
|
969 | // source | |
970 |
kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * |
|
970 | kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * kcoeff]; | |
971 | // copy source to destination |
|
971 | // copy source to destination | |
972 | copyFloatByChar( kcoeffNormPtr, kcoeffLoadPtr ); |
|
972 | copyFloatByChar( kcoeffNormPtr, kcoeffLoadPtr ); | |
973 | } |
|
973 | } | |
@@ -975,19 +975,21 int set_sy_lfr_kcoeff( ccsdsTelecommandP | |||||
975 |
|
975 | |||
976 | if (kcoeffPtr_sbm != NULL ) // update K coefficient for SBM data products |
|
976 | if (kcoeffPtr_sbm != NULL ) // update K coefficient for SBM data products | |
977 | { |
|
977 | { | |
978 |
for ( |
|
978 | for (kcoeff=0; kcoeff<NB_K_COEFF_PER_BIN; kcoeff++) | |
979 | { |
|
979 | { | |
980 | // destination |
|
980 | // destination | |
981 |
kcoeffSbmPtr_a= (unsigned char*) &kcoeffPtr_sbm[ |
|
981 | kcoeffSbmPtr_a= (unsigned char*) &kcoeffPtr_sbm[ ( (bin * NB_K_COEFF_PER_BIN) + kcoeff) * 2 ]; | |
982 |
kcoeffSbmPtr_b= (unsigned char*) &kcoeffPtr_sbm[ |
|
982 | kcoeffSbmPtr_b= (unsigned char*) &kcoeffPtr_sbm[ ( (bin * NB_K_COEFF_PER_BIN) + kcoeff) * 2 + 1 ]; | |
983 | // source |
|
983 | // source | |
984 |
kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * |
|
984 | kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * kcoeff]; | |
985 | // copy source to destination |
|
985 | // copy source to destination | |
986 | copyFloatByChar( kcoeffSbmPtr_a, kcoeffLoadPtr ); |
|
986 | copyFloatByChar( kcoeffSbmPtr_a, kcoeffLoadPtr ); | |
987 | copyFloatByChar( kcoeffSbmPtr_b, kcoeffLoadPtr ); |
|
987 | copyFloatByChar( kcoeffSbmPtr_b, kcoeffLoadPtr ); | |
988 | } |
|
988 | } | |
989 | } |
|
989 | } | |
990 |
|
990 | |||
|
991 | // print_k_coeff(); | |||
|
992 | ||||
991 | return status; |
|
993 | return status; | |
992 | } |
|
994 | } | |
993 |
|
995 | |||
@@ -1138,5 +1140,33 void init_kcoefficients_dump_packet( Pac | |||||
1138 | } |
|
1140 | } | |
1139 | } |
|
1141 | } | |
1140 |
|
1142 | |||
|
1143 | void print_k_coeff() | |||
|
1144 | { | |||
|
1145 | unsigned int kcoeff; | |||
|
1146 | unsigned int bin; | |||
1141 |
|
1147 | |||
|
1148 | for (kcoeff=0; kcoeff<NB_K_COEFF_PER_BIN; kcoeff++) | |||
|
1149 | { | |||
|
1150 | printf("kcoeff = %d *** ", kcoeff); | |||
|
1151 | for (bin=0; bin<NB_BINS_COMPRESSED_SM_F0; bin++) | |||
|
1152 | { | |||
|
1153 | printf( "%f ", k_coeff_intercalib_f0_norm[bin*NB_K_COEFF_PER_BIN+kcoeff] ); | |||
|
1154 | } | |||
|
1155 | printf("\n"); | |||
|
1156 | } | |||
1142 |
|
1157 | |||
|
1158 | printf("\n"); | |||
|
1159 | ||||
|
1160 | for (kcoeff=0; kcoeff<NB_K_COEFF_PER_BIN; kcoeff++) | |||
|
1161 | { | |||
|
1162 | printf("kcoeff = %d *** ", kcoeff); | |||
|
1163 | for (bin=0; bin<NB_BINS_COMPRESSED_SM_F0; bin++) | |||
|
1164 | { | |||
|
1165 | printf( "[%f, %f] ", | |||
|
1166 | k_coeff_intercalib_f0_sbm[(bin*NB_K_COEFF_PER_BIN )*2 + kcoeff], | |||
|
1167 | k_coeff_intercalib_f0_sbm[(bin*NB_K_COEFF_PER_BIN+1)*2 + kcoeff]); | |||
|
1168 | } | |||
|
1169 | printf("\n"); | |||
|
1170 | } | |||
|
1171 | } | |||
|
1172 |
General Comments 0
You need to be logged in to leave comments.
Login now