diff --git a/.hgsubstate b/.hgsubstate --- a/.hgsubstate +++ b/.hgsubstate @@ -1,2 +1,2 @@ -a586fe639ac179e95bdc150ebdbab0312f31dc30 LFR_basic-parameters +b054211408845ff1f92ddeaae6e651e90d996ffb LFR_basic-parameters bb9afa759d57093f7646d3be18f4a9923a4cbf84 header/lfr_common_headers diff --git a/FSW-qt/fsw-qt.pro b/FSW-qt/fsw-qt.pro --- a/FSW-qt/fsw-qt.pro +++ b/FSW-qt/fsw-qt.pro @@ -12,7 +12,7 @@ SWVERSION=-1-0 DEFINES += SW_VERSION_N1=3 # major DEFINES += SW_VERSION_N2=0 # minor DEFINES += SW_VERSION_N3=0 # patch -DEFINES += SW_VERSION_N4=5 # internal +DEFINES += SW_VERSION_N4=6 # internal # #QMAKE_CFLAGS_RELEASE += -fprofile-arcs -ftest-coverage diff --git a/header/processing/avf0_prc0.h b/header/processing/avf0_prc0.h --- a/header/processing/avf0_prc0.h +++ b/header/processing/avf0_prc0.h @@ -28,7 +28,7 @@ rtems_task prc0_task( rtems_task_argumen // FUNCTIONS void reset_nb_sm_f0( unsigned char lfrMode ); -void init_k_coefficients_f0( void ); +void init_k_coefficients_prc0( void ); void test_TCH( void ); //******* diff --git a/header/processing/avf1_prc1.h b/header/processing/avf1_prc1.h --- a/header/processing/avf1_prc1.h +++ b/header/processing/avf1_prc1.h @@ -26,7 +26,7 @@ rtems_task prc1_task( rtems_task_argumen // FUNCTIONS void reset_nb_sm_f1( unsigned char lfrMode ); -void init_k_coefficients_f1( void ); +void init_k_coefficients_prc1( void ); //******* // EXTERN diff --git a/header/processing/avf2_prc2.h b/header/processing/avf2_prc2.h --- a/header/processing/avf2_prc2.h +++ b/header/processing/avf2_prc2.h @@ -21,7 +21,7 @@ rtems_task prc2_task( rtems_task_argumen void reset_nb_sm_f2( void ); void SM_average_f2(float *averaged_spec_mat_f2, ring_node *ring_node, unsigned int nbAverageNormF2 , asm_msg *msgForMATR); -void init_k_coefficients_f2( void ); +void init_k_coefficients_prc2( void ); //******* // EXTERN diff --git a/header/processing/fsw_processing.h b/header/processing/fsw_processing.h --- a/header/processing/fsw_processing.h +++ b/header/processing/fsw_processing.h @@ -320,4 +320,6 @@ void ASM_compress_reorganize_and_divide_ int getFBinMask(int k); +void init_kcoeff_sbm_from_kcoeff_norm( float *input_kcoeff, float *output_kcoeff, unsigned char nb_bins_norm); + #endif // FSW_PROCESSING_H_INCLUDED diff --git a/header/tc_load_dump_parameters.h b/header/tc_load_dump_parameters.h --- a/header/tc_load_dump_parameters.h +++ b/header/tc_load_dump_parameters.h @@ -66,5 +66,6 @@ void copyFloatByChar( unsigned char *des void init_parameter_dump( void ); void init_kcoefficients_dump( void ); void init_kcoefficients_dump_packet( Packet_TM_LFR_KCOEFFICIENTS_DUMP_t *kcoefficients_dump, unsigned char pkt_nr, unsigned char blk_nr ); +void print_k_coeff(); #endif // TC_LOAD_DUMP_PARAMETERS_H diff --git a/src/fsw_init.c b/src/fsw_init.c --- a/src/fsw_init.c +++ b/src/fsw_init.c @@ -135,9 +135,9 @@ rtems_task Init( rtems_task_argument ign init_kcoefficients_dump(); init_local_mode_parameters(); init_housekeeping_parameters(); - init_k_coefficients_f0(); - init_k_coefficients_f1(); - init_k_coefficients_f2(); + init_k_coefficients_prc0(); + init_k_coefficients_prc1(); + init_k_coefficients_prc2(); // waveform picker initialization WFP_init_rings(); // initialize the waveform rings diff --git a/src/processing/avf0_prc0.c b/src/processing/avf0_prc0.c --- a/src/processing/avf0_prc0.c +++ b/src/processing/avf0_prc0.c @@ -395,8 +395,10 @@ void reset_nb_sm_f0( unsigned char lfrMo } } -void init_k_coefficients_f0( void ) +void init_k_coefficients_prc0( void ) { - init_k_coefficients( k_coeff_intercalib_f0_norm, NB_BINS_COMPRESSED_SM_F0 ); - init_k_coefficients( k_coeff_intercalib_f0_sbm, NB_BINS_COMPRESSED_SM_SBM_F0); + init_k_coefficients( k_coeff_intercalib_f0_norm, NB_BINS_COMPRESSED_SM_F0 ); + + init_kcoeff_sbm_from_kcoeff_norm( k_coeff_intercalib_f0_norm, k_coeff_intercalib_f0_sbm, NB_BINS_COMPRESSED_SM_F0); } + diff --git a/src/processing/avf1_prc1.c b/src/processing/avf1_prc1.c --- a/src/processing/avf1_prc1.c +++ b/src/processing/avf1_prc1.c @@ -382,8 +382,9 @@ void reset_nb_sm_f1( unsigned char lfrMo } } -void init_k_coefficients_f1( void ) +void init_k_coefficients_prc1( void ) { - init_k_coefficients( k_coeff_intercalib_f1_norm, NB_BINS_COMPRESSED_SM_F1 ); - init_k_coefficients( k_coeff_intercalib_f1_sbm, NB_BINS_COMPRESSED_SM_SBM_F1); + init_k_coefficients( k_coeff_intercalib_f1_norm, NB_BINS_COMPRESSED_SM_F1 ); + + init_kcoeff_sbm_from_kcoeff_norm( k_coeff_intercalib_f1_norm, k_coeff_intercalib_f1_sbm, NB_BINS_COMPRESSED_SM_F1); } diff --git a/src/processing/avf2_prc2.c b/src/processing/avf2_prc2.c --- a/src/processing/avf2_prc2.c +++ b/src/processing/avf2_prc2.c @@ -285,7 +285,7 @@ void SM_average_f2( float *averaged_spec } } -void init_k_coefficients_f2( void ) +void init_k_coefficients_prc2( void ) { init_k_coefficients( k_coeff_intercalib_f2, NB_BINS_COMPRESSED_SM_F2); } diff --git a/src/processing/fsw_processing.c b/src/processing/fsw_processing.c --- a/src/processing/fsw_processing.c +++ b/src/processing/fsw_processing.c @@ -654,3 +654,18 @@ int getFBinMask( int index ) return fbin; } + +void init_kcoeff_sbm_from_kcoeff_norm(float *input_kcoeff, float *output_kcoeff, unsigned char nb_bins_norm) +{ + unsigned char bin; + unsigned char kcoeff; + + for (bin=0; bindataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * i]; + kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * kcoeff]; // copy source to destination copyFloatByChar( kcoeffNormPtr, kcoeffLoadPtr ); } @@ -975,19 +975,21 @@ int set_sy_lfr_kcoeff( ccsdsTelecommandP if (kcoeffPtr_sbm != NULL ) // update K coefficient for SBM data products { - for (i=0; idataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * i]; + kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * kcoeff]; // copy source to destination copyFloatByChar( kcoeffSbmPtr_a, kcoeffLoadPtr ); copyFloatByChar( kcoeffSbmPtr_b, kcoeffLoadPtr ); } } +// print_k_coeff(); + return status; } @@ -1138,5 +1140,33 @@ void init_kcoefficients_dump_packet( Pac } } +void print_k_coeff() +{ + unsigned int kcoeff; + unsigned int bin; + for (kcoeff=0; kcoeff