##// 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 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=5 # internal
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_f0( void );
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_f1( void );
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_f2( void );
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_f0();
138 init_k_coefficients_prc0();
139 init_k_coefficients_f1();
139 init_k_coefficients_prc1();
140 init_k_coefficients_f2();
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_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 );
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_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 );
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_f2( void )
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 i;
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 (i=0; i<NB_K_COEFF_PER_BIN; i++)
965 for (kcoeff=0; kcoeff<NB_K_COEFF_PER_BIN; kcoeff++)
966 {
966 {
967 // destination
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 // source
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 // 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 (i=0; i<NB_K_COEFF_PER_BIN; i++)
978 for (kcoeff=0; kcoeff<NB_K_COEFF_PER_BIN; kcoeff++)
979 {
979 {
980 // destination
980 // destination
981 kcoeffSbmPtr_a= (unsigned char*) &kcoeffPtr_sbm[ ( (bin * NB_K_COEFF_PER_BIN) + i) * 2 ];
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) + i) * 2 + 1 ];
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 * i];
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