##// END OF EJS Templates
rev 3.0.0.6...
paul -
r214:a9666078ac0b R3
parent child
Show More
@@ -1,2 +1,2
1 a586fe639ac179e95bdc150ebdbab0312f31dc30 LFR_basic-parameters
1 b054211408845ff1f92ddeaae6e651e90d996ffb LFR_basic-parameters
2 2 bb9afa759d57093f7646d3be18f4a9923a4cbf84 header/lfr_common_headers
@@ -12,7 +12,7 SWVERSION=-1-0
12 12 DEFINES += SW_VERSION_N1=3 # major
13 13 DEFINES += SW_VERSION_N2=0 # minor
14 14 DEFINES += SW_VERSION_N3=0 # patch
15 DEFINES += SW_VERSION_N4=5 # internal
15 DEFINES += SW_VERSION_N4=6 # internal
16 16
17 17 # <GCOV>
18 18 #QMAKE_CFLAGS_RELEASE += -fprofile-arcs -ftest-coverage
@@ -28,7 +28,7 rtems_task prc0_task( rtems_task_argumen
28 28 // FUNCTIONS
29 29
30 30 void reset_nb_sm_f0( unsigned char lfrMode );
31 void init_k_coefficients_f0( void );
31 void init_k_coefficients_prc0( void );
32 32 void test_TCH( void );
33 33
34 34 //*******
@@ -26,7 +26,7 rtems_task prc1_task( rtems_task_argumen
26 26 // FUNCTIONS
27 27
28 28 void reset_nb_sm_f1( unsigned char lfrMode );
29 void init_k_coefficients_f1( void );
29 void init_k_coefficients_prc1( void );
30 30
31 31 //*******
32 32 // EXTERN
@@ -21,7 +21,7 rtems_task prc2_task( rtems_task_argumen
21 21
22 22 void reset_nb_sm_f2( void );
23 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_f2( void );
24 void init_k_coefficients_prc2( void );
25 25
26 26 //*******
27 27 // EXTERN
@@ -320,4 +320,6 void ASM_compress_reorganize_and_divide_
320 320
321 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 325 #endif // FSW_PROCESSING_H_INCLUDED
@@ -66,5 +66,6 void copyFloatByChar( unsigned char *des
66 66 void init_parameter_dump( void );
67 67 void init_kcoefficients_dump( void );
68 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 71 #endif // TC_LOAD_DUMP_PARAMETERS_H
@@ -135,9 +135,9 rtems_task Init( rtems_task_argument ign
135 135 init_kcoefficients_dump();
136 136 init_local_mode_parameters();
137 137 init_housekeeping_parameters();
138 init_k_coefficients_f0();
139 init_k_coefficients_f1();
140 init_k_coefficients_f2();
138 init_k_coefficients_prc0();
139 init_k_coefficients_prc1();
140 init_k_coefficients_prc2();
141 141
142 142 // waveform picker initialization
143 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_f0( void )
398 void init_k_coefficients_prc0( void )
399 399 {
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);
400 init_k_coefficients( k_coeff_intercalib_f0_norm, NB_BINS_COMPRESSED_SM_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_f1( void )
385 void init_k_coefficients_prc1( void )
386 386 {
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);
387 init_k_coefficients( k_coeff_intercalib_f1_norm, NB_BINS_COMPRESSED_SM_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_f2( void )
288 void init_k_coefficients_prc2( void )
289 289 {
290 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 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 905 // KCOEFFICIENTS
906 906 int set_sy_lfr_kcoeff( ccsdsTelecommandPacket_t *TC,rtems_id queue_id )
907 907 {
908 unsigned int i;
908 unsigned int kcoeff;
909 909 unsigned short sy_lfr_kcoeff_frequency;
910 910 unsigned short bin;
911 911 unsigned short *freqPtr;
@@ -962,12 +962,12 int set_sy_lfr_kcoeff( ccsdsTelecommandP
962 962
963 963 if (kcoeffPtr_norm != NULL ) // update K coefficient for NORMAL data products
964 964 {
965 for (i=0; i<NB_K_COEFF_PER_BIN; i++)
965 for (kcoeff=0; kcoeff<NB_K_COEFF_PER_BIN; kcoeff++)
966 966 {
967 967 // destination
968 kcoeffNormPtr = (unsigned char*) &kcoeffPtr_norm[ (bin * NB_K_COEFF_PER_BIN) + i ];
968 kcoeffNormPtr = (unsigned char*) &kcoeffPtr_norm[ (bin * NB_K_COEFF_PER_BIN) + kcoeff ];
969 969 // source
970 kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * i];
970 kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * kcoeff];
971 971 // copy source to destination
972 972 copyFloatByChar( kcoeffNormPtr, kcoeffLoadPtr );
973 973 }
@@ -975,19 +975,21 int set_sy_lfr_kcoeff( ccsdsTelecommandP
975 975
976 976 if (kcoeffPtr_sbm != NULL ) // update K coefficient for SBM data products
977 977 {
978 for (i=0; i<NB_K_COEFF_PER_BIN; i++)
978 for (kcoeff=0; kcoeff<NB_K_COEFF_PER_BIN; kcoeff++)
979 979 {
980 980 // destination
981 kcoeffSbmPtr_a= (unsigned char*) &kcoeffPtr_sbm[ ( (bin * NB_K_COEFF_PER_BIN) + i) * 2 ];
982 kcoeffSbmPtr_b= (unsigned char*) &kcoeffPtr_sbm[ ( (bin * NB_K_COEFF_PER_BIN) + i) * 2 + 1 ];
981 kcoeffSbmPtr_a= (unsigned char*) &kcoeffPtr_sbm[ ( (bin * NB_K_COEFF_PER_BIN) + kcoeff) * 2 ];
982 kcoeffSbmPtr_b= (unsigned char*) &kcoeffPtr_sbm[ ( (bin * NB_K_COEFF_PER_BIN) + kcoeff) * 2 + 1 ];
983 983 // source
984 kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * i];
984 kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * kcoeff];
985 985 // copy source to destination
986 986 copyFloatByChar( kcoeffSbmPtr_a, kcoeffLoadPtr );
987 987 copyFloatByChar( kcoeffSbmPtr_b, kcoeffLoadPtr );
988 988 }
989 989 }
990 990
991 // print_k_coeff();
992
991 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