diff --git a/FSW-qt/Makefile b/FSW-qt/Makefile --- a/FSW-qt/Makefile +++ b/FSW-qt/Makefile @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: bin/fsw -# Generated by qmake (2.01a) (Qt 4.8.6) on: Tue Jun 24 09:17:30 2014 +# Generated by qmake (2.01a) (Qt 4.8.6) on: Fri Jun 27 09:11:27 2014 # Project: fsw-qt.pro # Template: app # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro @@ -10,7 +10,7 @@ CC = sparc-rtems-gcc CXX = sparc-rtems-g++ -DEFINES = -DSW_VERSION_N1=1 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=13 -DPRINT_MESSAGES_ON_CONSOLE +DEFINES = -DSW_VERSION_N1=2 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=1 -DPRINT_MESSAGES_ON_CONSOLE CFLAGS = -pipe -O3 -Wall $(DEFINES) CXXFLAGS = -pipe -O3 -Wall $(DEFINES) INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header -I../header/processing -I../src/LFR_basic-parameters 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 @@ -7,11 +7,11 @@ CONFIG -= qt include(./sparc.pri) # flight software version -SWVERSION=-1-0 -DEFINES += SW_VERSION_N1=1 # major +SWVERSION=-2-0 +DEFINES += SW_VERSION_N1=2 # major DEFINES += SW_VERSION_N2=0 # minor DEFINES += SW_VERSION_N3=0 # patch -DEFINES += SW_VERSION_N4=13 # internal +DEFINES += SW_VERSION_N4=1 # internal contains( CONFIG, debug_tch ) { DEFINES += DEBUG_TCH diff --git a/FSW-qt/fsw-qt.pro.user b/FSW-qt/fsw-qt.pro.user --- a/FSW-qt/fsw-qt.pro.user +++ b/FSW-qt/fsw-qt.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget diff --git a/header/fsw_params_processing.h b/header/fsw_params_processing.h --- a/header/fsw_params_processing.h +++ b/header/fsw_params_processing.h @@ -22,19 +22,22 @@ #define NB_BINS_PER_ASM_F0 88 #define NB_BINS_PER_PKT_ASM_F0 44 #define TOTAL_SIZE_ASM_F0_IN_BYTES 4400 // 25 * 88 * 2 -#define ASM_F0_INDICE_START 17 // 88 bins +//#define ASM_F0_INDICE_START 17 // 88 bins +#define ASM_F0_INDICE_START 0 #define ASM_F0_INDICE_STOP 104 // 2 packets of 44 bins // #define NB_BINS_PER_ASM_F1 104 #define NB_BINS_PER_PKT_ASM_F1 52 #define TOTAL_SIZE_ASM_F1_IN_BYTES 5200 // 25 * 104 * 2 -#define ASM_F1_INDICE_START 6 // 104 bins +//#define ASM_F1_INDICE_START 6 // 104 bins +#define ASM_F1_INDICE_START 0 #define ASM_F1_INDICE_STOP 109 // 2 packets of 52 bins // #define NB_BINS_PER_ASM_F2 96 #define NB_BINS_PER_PKT_ASM_F2 48 #define TOTAL_SIZE_ASM_F2_IN_BYTES 4800 // 25 * 96 * 2 -#define ASM_F2_INDICE_START 7 // 96 bins +//#define ASM_F2_INDICE_START 7 // 96 bins +#define ASM_F2_INDICE_START 0 #define ASM_F2_INDICE_STOP 102 // 2 packets of 48 bins // #define NB_BINS_COMPRESSED_SM_F0 11 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 @@ -19,6 +19,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_sm *ring_node, unsigned int nbAverageNormF2 ); +void SM_average_f2_alt( float *averaged_spec_mat_f2, ring_node_sm *ring_node, unsigned int nbAverageNormF2 ); //******* // 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 @@ -109,8 +109,11 @@ extern rtems_status_code get_message_que //*************************************** // DEFINITIONS OF STATIC INLINE FUNCTIONS static inline void SM_average( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM, - ring_node_sm *ring_node_tab[], - unsigned int nbAverageNORM, unsigned int nbAverageSBM ); + ring_node_sm *ring_node_tab[], + unsigned int nbAverageNORM, unsigned int nbAverageSBM ); +static inline void SM_average_alt( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM, + ring_node_sm *ring_node_tab[], + unsigned int nbAverageNORM, unsigned int nbAverageSBM ); static inline void ASM_reorganize_and_divide(float *averaged_spec_mat, float *averaged_spec_mat_reorganized, float divider ); static inline void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat, @@ -158,11 +161,25 @@ void SM_average( float *averaged_spec_ma } } +void SM_average_alt( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM, + ring_node_sm *ring_node_tab[], unsigned int nbAverageNORM, unsigned int nbAverageSBM ) +{ + float sum; + unsigned int i; + + for(i=0; ibuffer_address) ) [ i ]; + averaged_spec_mat_NORM[ i ] = sum; + averaged_spec_mat_SBM[ i ] = sum; + } +} + void ASM_reorganize_and_divide( float *averaged_spec_mat, float *averaged_spec_mat_reorganized, float divider ) { - // reorganize the data to have a matrix in the VHDL format + // reorganize the data to have a matrix in the ICD format // INPUT (VHDL format) - // component_0[0 .. 127] component_1[0 .. 127] .. component_24[0 .. 127] + // component_0[0 .. 127] component_1_re[0 .. 127] component_1_im[0 .. 127] .. component_24[0 .. 127] // OUTPUT (ICD format) // matrix_0[0 .. 24] matrix_1[0 .. 24] .. matrix_127[0 .. 24] 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 @@ -86,7 +86,7 @@ rtems_task avf0_task( rtems_task_argumen } // compute the average and store it in the averaged_sm_f1 buffer - SM_average( current_ring_node_asm_norm_f0->matrix, + SM_average_alt( current_ring_node_asm_norm_f0->matrix, current_ring_node_asm_burst_sbm_f0->matrix, ring_node_tab, nb_norm_bp1, nb_sbm_bp1 ); 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 @@ -83,7 +83,7 @@ rtems_task avf1_task( rtems_task_argumen } // compute the average and store it in the averaged_sm_f1 buffer - SM_average( current_ring_node_asm_norm_f1->matrix, + SM_average_alt( current_ring_node_asm_norm_f1->matrix, current_ring_node_asm_burst_sbm_f1->matrix, ring_node_tab, nb_norm_bp1, nb_sbm_bp1 ); 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 @@ -68,7 +68,7 @@ rtems_task avf2_task( rtems_task_argumen //**************************************** // compute the average and store it in the averaged_sm_f2 buffer - SM_average_f2( current_ring_node_asm_norm_f2->matrix, + SM_average_f2_alt( current_ring_node_asm_norm_f2->matrix, ring_node_for_averaging_sm_f2, nb_norm_bp1 ); @@ -251,3 +251,17 @@ void SM_average_f2( float *averaged_spec } } } + +void SM_average_f2_alt( float *averaged_spec_mat_f2, + ring_node_sm *ring_node, + unsigned int nbAverageNormF2 ) +{ + float sum; + unsigned int i; + + for(i=0; ibuffer_address) ) [ i ]; + averaged_spec_mat_f2[ i ] = sum; + } +}