##// END OF EJS Templates
R2 parameter added to TC_LFR_LOAD_COMMON_PAR...
paul -
r195:868116ca6c4a R3
parent child
Show More
@@ -1,2 +1,2
1 a586fe639ac179e95bdc150ebdbab0312f31dc30 LFR_basic-parameters
1 a586fe639ac179e95bdc150ebdbab0312f31dc30 LFR_basic-parameters
2 5467523e44cd6a627a81b156673a891f4d6b0017 header/lfr_common_headers
2 a806a190dcd72f71d336545073400d3cdaaa3119 header/lfr_common_headers
@@ -89,6 +89,7 extern volatile int sm_f2[ ];
89
89
90 // parameters
90 // parameters
91 extern struct param_local_str param_local;
91 extern struct param_local_str param_local;
92 extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
92
93
93 // registers
94 // registers
94 extern time_management_regs_t *time_management_regs;
95 extern time_management_regs_t *time_management_regs;
@@ -143,19 +144,23 static inline void SM_average(float *ave
143 ring_node *ring_node_tab[],
144 ring_node *ring_node_tab[],
144 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
145 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
145 asm_msg *msgForMATR );
146 asm_msg *msgForMATR );
147
146 static inline void SM_average_debug(float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
148 static inline void SM_average_debug(float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
147 ring_node *ring_node_tab[],
149 ring_node *ring_node_tab[],
148 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
150 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
149 asm_msg *msgForMATR );
151 asm_msg *msgForMATR );
150
152
151 void ASM_patch( float *inputASM, float *outputASM );
153 void ASM_patch( float *inputASM, float *outputASM );
154
152 void extractReImVectors(float *inputASM, float *outputASM, unsigned int asmComponent );
155 void extractReImVectors(float *inputASM, float *outputASM, unsigned int asmComponent );
153
156
154 static inline void ASM_reorganize_and_divide(float *averaged_spec_mat, float *averaged_spec_mat_reorganized,
157 static inline void ASM_reorganize_and_divide(float *averaged_spec_mat, float *averaged_spec_mat_reorganized,
155 float divider );
158 float divider );
159
156 static inline void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat,
160 static inline void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat,
157 float divider,
161 float divider,
158 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart);
162 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart);
163
159 static inline void ASM_convert(volatile float *input_matrix, char *output_matrix);
164 static inline void ASM_convert(volatile float *input_matrix, char *output_matrix);
160
165
161 void SM_average( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
166 void SM_average( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
@@ -310,4 +315,10 void ASM_convert( volatile float *input_
310 }
315 }
311 }
316 }
312
317
318 void ASM_compress_reorganize_and_divide_mask(float *averaged_spec_mat, float *compressed_spec_mat,
319 float divider,
320 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart);
321
322 int getFBinMask(int k);
323
313 #endif // FSW_PROCESSING_H_INCLUDED
324 #endif // FSW_PROCESSING_H_INCLUDED
@@ -9,6 +9,7
9 #include "tm_lfr_tc_exe.h"
9 #include "tm_lfr_tc_exe.h"
10 #include "fsw_misc.h"
10 #include "fsw_misc.h"
11 #include "basic_parameters_params.h"
11 #include "basic_parameters_params.h"
12 #include "avf0_prc0.h"
12
13
13 #define FLOAT_EQUAL_ZERO 0.001
14 #define FLOAT_EQUAL_ZERO 0.001
14
15
@@ -55,8 +56,12 unsigned int check_update_info_hk_lfr_mo
55 unsigned int check_update_info_hk_tds_mode( unsigned char mode );
56 unsigned int check_update_info_hk_tds_mode( unsigned char mode );
56 unsigned int check_update_info_hk_thr_mode( unsigned char mode );
57 unsigned int check_update_info_hk_thr_mode( unsigned char mode );
57
58
59 // FBINS_MASK
60 int set_sy_lfr_fbins( ccsdsTelecommandPacket_t *TC );
61
58 // KCOEFFICIENTS
62 // KCOEFFICIENTS
59 int set_sy_lfr_kcoeff( ccsdsTelecommandPacket_t *TC );
63 int set_sy_lfr_kcoeff( ccsdsTelecommandPacket_t *TC );
64 void copyFloatByChar( unsigned char *destination, unsigned char *source );
60
65
61 void init_parameter_dump( void );
66 void init_parameter_dump( void );
62 void init_kcoefficients_dump( void );
67 void init_kcoefficients_dump( void );
@@ -1,5 +1,5
1 # LOAD FSW USING LINK 1
1 # LOAD FSW USING LINK 1
2 SpwPlugin0.StarDundeeSelectLinkNumber( 1 )
2 SpwPlugin0.StarDundeeSelectLinkNumber( 2 )
3
3
4 dsu3plugin0.openFile("/opt/DEV_PLE/FSW-qt/bin/fsw")
4 dsu3plugin0.openFile("/opt/DEV_PLE/FSW-qt/bin/fsw")
5 #dsu3plugin0.openFile("/opt/LFR/LFR-FSW/2.0.2.3/fsw")
5 #dsu3plugin0.openFile("/opt/LFR/LFR-FSW/2.0.2.3/fsw")
@@ -11,6 +11,7 print str(availableBrickCount) + " Space
11
11
12 SpwPlugin0.StarDundeeSelectBrick(1)
12 SpwPlugin0.StarDundeeSelectBrick(1)
13 SpwPlugin0.StarDundeeSetBrickAsARouter(1)
13 SpwPlugin0.StarDundeeSetBrickAsARouter(1)
14 SpwPlugin0.StarDundeeSelectLinkNumber( 2 )
14 SpwPlugin0.connectBridge()
15 SpwPlugin0.connectBridge()
15
16
16 #SpwPlugin0.TCPServerSetIP("127.0.0.1")
17 #SpwPlugin0.TCPServerSetIP("127.0.0.1")
@@ -245,8 +245,6 rtems_task Init( rtems_task_argument ign
245
245
246 BOOT_PRINTF("delete INIT\n")
246 BOOT_PRINTF("delete INIT\n")
247
247
248 // test_TCH();
249
250 status = rtems_task_delete(RTEMS_SELF);
248 status = rtems_task_delete(RTEMS_SELF);
251
249
252 }
250 }
@@ -225,6 +225,8 rtems_task hous_task(rtems_task_argument
225
225
226 spacewire_update_statistics();
226 spacewire_update_statistics();
227
227
228 housekeeping_packet.sy_lfr_common_parameters_spare = parameter_dump_packet.sy_lfr_common_parameters_spare;
229 housekeeping_packet.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters;
228 get_temperatures( housekeeping_packet.hk_lfr_temp_scm );
230 get_temperatures( housekeeping_packet.hk_lfr_temp_scm );
229 get_v_e1_e2_f3( housekeeping_packet.hk_lfr_sc_v_f3 );
231 get_v_e1_e2_f3( housekeeping_packet.hk_lfr_sc_v_f3 );
230 get_cpu_load( (unsigned char *) &housekeeping_packet.hk_lfr_cpu_load );
232 get_cpu_load( (unsigned char *) &housekeeping_packet.hk_lfr_cpu_load );
@@ -584,3 +584,68 void ASM_patch( float *inputASM, float *
584 copyReVectors(inputASM, outputASM, 21); // e1e1
584 copyReVectors(inputASM, outputASM, 21); // e1e1
585 copyReVectors(inputASM, outputASM, 24); // e2e2
585 copyReVectors(inputASM, outputASM, 24); // e2e2
586 }
586 }
587
588 void ASM_compress_reorganize_and_divide_mask(float *averaged_spec_mat, float *compressed_spec_mat , float divider,
589 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage, unsigned char ASMIndexStart )
590 {
591 //*************
592 // input format
593 // component0[0 .. 127] component1[0 .. 127] .. component24[0 .. 127]
594 //**************
595 // output format
596 // matr0[0 .. 24] matr1[0 .. 24] .. matr127[0 .. 24]
597 //************
598 // compression
599 // matr0[0 .. 24] matr1[0 .. 24] .. matr11[0 .. 24] => f0 NORM
600 // matr0[0 .. 24] matr1[0 .. 24] .. matr22[0 .. 24] => f0 BURST, SBM
601
602 int frequencyBin;
603 int asmComponent;
604 int offsetASM;
605 int offsetCompressed;
606 int offsetFBin;
607 int fBinMask;
608 int k;
609
610 // BUILD DATA
611 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
612 {
613 for( frequencyBin = 0; frequencyBin < nbBinsCompressedMatrix; frequencyBin++ )
614 {
615 offsetCompressed = // NO TIME OFFSET
616 frequencyBin * NB_VALUES_PER_SM
617 + asmComponent;
618 offsetASM = // NO TIME OFFSET
619 asmComponent * NB_BINS_PER_SM
620 + ASMIndexStart
621 + frequencyBin * nbBinsToAverage;
622 offsetFBin = ASMIndexStart
623 + frequencyBin * nbBinsToAverage;
624 compressed_spec_mat[ offsetCompressed ] = 0;
625 for ( k = 0; k < nbBinsToAverage; k++ )
626 {
627 fBinMask = getFBinMask( offsetFBin + k );
628 compressed_spec_mat[offsetCompressed ] =
629 ( compressed_spec_mat[ offsetCompressed ]
630 + averaged_spec_mat[ offsetASM + k ] * fBinMask );
631 }
632 compressed_spec_mat[ offsetCompressed ] =
633 compressed_spec_mat[ offsetCompressed ] / (divider * nbBinsToAverage);
634 }
635 }
636
637 }
638
639 int getFBinMask( int index )
640 {
641 unsigned int indexInChar;
642 unsigned int indexInTheChar;
643 int fbin;
644
645 indexInChar = index >> 3;
646 indexInTheChar = index - indexInChar * 8;
647
648 fbin = (int) ((parameter_dump_packet.sy_lfr_fbins_f0_word1[ NB_BYTES_PER_FREQ_MASK - 1 - indexInChar] >> indexInTheChar) & 0x1);
649
650 return fbin;
651 }
@@ -28,8 +28,8 int action_load_common_par(ccsdsTelecomm
28 *
28 *
29 */
29 */
30
30
31 parameter_dump_packet.unused0 = TC->dataAndCRC[0];
31 parameter_dump_packet.sy_lfr_common_parameters_spare = TC->dataAndCRC[0];
32 parameter_dump_packet.sy_lfr_common_parameters = TC->dataAndCRC[1];
32 parameter_dump_packet.sy_lfr_common_parameters = TC->dataAndCRC[1];
33 set_wfp_data_shaping( );
33 set_wfp_data_shaping( );
34 return LFR_SUCCESSFUL;
34 return LFR_SUCCESSFUL;
35 }
35 }
@@ -305,7 +305,7 int action_load_fbins_mask(ccsdsTelecomm
305
305
306 flag = LFR_DEFAULT;
306 flag = LFR_DEFAULT;
307
307
308 send_tm_lfr_tc_exe_not_implemented( TC, queue_id, time );
308 flag = set_sy_lfr_fbins( TC );
309
309
310 return flag;
310 return flag;
311 }
311 }
@@ -357,15 +357,12 int action_dump_kcoefficients(ccsdsTelec
357 {
357 {
358 kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + 1] = freq;
358 kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + 1] = freq;
359 bin = freq;
359 bin = freq;
360 printKCoefficients( freq, bin, k_coeff_intercalib_f0_norm);
360 // printKCoefficients( freq, bin, k_coeff_intercalib_f0_norm);
361 for ( coeff=0; coeff<NB_K_COEFF_PER_BIN; coeff++ )
361 for ( coeff=0; coeff<NB_K_COEFF_PER_BIN; coeff++ )
362 {
362 {
363 kCoeffDumpPtr = (unsigned char*) &kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + coeff*NB_BYTES_PER_FLOAT + 2 ]; // 2 for the kcoeff_frequency
363 kCoeffDumpPtr = (unsigned char*) &kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + coeff*NB_BYTES_PER_FLOAT + 2 ]; // 2 for the kcoeff_frequency
364 kCoeffPtr = (unsigned char*) &k_coeff_intercalib_f0_norm[ (bin*NB_K_COEFF_PER_BIN) + coeff ];
364 kCoeffPtr = (unsigned char*) &k_coeff_intercalib_f0_norm[ (bin*NB_K_COEFF_PER_BIN) + coeff ];
365 kCoeffDumpPtr[0] = kCoeffPtr[0];
365 copyFloatByChar( kCoeffDumpPtr, kCoeffPtr );
366 kCoeffDumpPtr[1] = kCoeffPtr[1];
367 kCoeffDumpPtr[2] = kCoeffPtr[2];
368 kCoeffDumpPtr[3] = kCoeffPtr[3];
369 }
366 }
370 }
367 }
371 for( freq=NB_BINS_COMPRESSED_SM_F0;
368 for( freq=NB_BINS_COMPRESSED_SM_F0;
@@ -374,15 +371,12 int action_dump_kcoefficients(ccsdsTelec
374 {
371 {
375 kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + 1 ] = freq;
372 kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + 1 ] = freq;
376 bin = freq - NB_BINS_COMPRESSED_SM_F0;
373 bin = freq - NB_BINS_COMPRESSED_SM_F0;
377 printKCoefficients( freq, bin, k_coeff_intercalib_f1_norm);
374 // printKCoefficients( freq, bin, k_coeff_intercalib_f1_norm);
378 for ( coeff=0; coeff<NB_K_COEFF_PER_BIN; coeff++ )
375 for ( coeff=0; coeff<NB_K_COEFF_PER_BIN; coeff++ )
379 {
376 {
380 kCoeffDumpPtr = (unsigned char*) &kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + coeff*NB_BYTES_PER_FLOAT + 2 ]; // 2 for the kcoeff_frequency
377 kCoeffDumpPtr = (unsigned char*) &kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + coeff*NB_BYTES_PER_FLOAT + 2 ]; // 2 for the kcoeff_frequency
381 kCoeffPtr = (unsigned char*) &k_coeff_intercalib_f1_norm[ (bin*NB_K_COEFF_PER_BIN) + coeff ];
378 kCoeffPtr = (unsigned char*) &k_coeff_intercalib_f1_norm[ (bin*NB_K_COEFF_PER_BIN) + coeff ];
382 kCoeffDumpPtr[0] = kCoeffPtr[0];
379 copyFloatByChar( kCoeffDumpPtr, kCoeffPtr );
383 kCoeffDumpPtr[1] = kCoeffPtr[1];
384 kCoeffDumpPtr[2] = kCoeffPtr[2];
385 kCoeffDumpPtr[3] = kCoeffPtr[3];
386 }
380 }
387 }
381 }
388 for( freq=(NB_BINS_COMPRESSED_SM_F0+NB_BINS_COMPRESSED_SM_F1);
382 for( freq=(NB_BINS_COMPRESSED_SM_F0+NB_BINS_COMPRESSED_SM_F1);
@@ -391,15 +385,12 int action_dump_kcoefficients(ccsdsTelec
391 {
385 {
392 kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + 1 ] = freq;
386 kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + 1 ] = freq;
393 bin = freq - (NB_BINS_COMPRESSED_SM_F0+NB_BINS_COMPRESSED_SM_F1);
387 bin = freq - (NB_BINS_COMPRESSED_SM_F0+NB_BINS_COMPRESSED_SM_F1);
394 printKCoefficients( freq, bin, k_coeff_intercalib_f2);
388 // printKCoefficients( freq, bin, k_coeff_intercalib_f2);
395 for ( coeff=0; coeff<NB_K_COEFF_PER_BIN; coeff++ )
389 for ( coeff=0; coeff<NB_K_COEFF_PER_BIN; coeff++ )
396 {
390 {
397 kCoeffDumpPtr = (unsigned char*) &kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + coeff*NB_BYTES_PER_FLOAT + 2 ]; // 2 for the kcoeff_frequency
391 kCoeffDumpPtr = (unsigned char*) &kcoefficients_dump_1.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + coeff*NB_BYTES_PER_FLOAT + 2 ]; // 2 for the kcoeff_frequency
398 kCoeffPtr = (unsigned char*) &k_coeff_intercalib_f2[ (bin*NB_K_COEFF_PER_BIN) + coeff ];
392 kCoeffPtr = (unsigned char*) &k_coeff_intercalib_f2[ (bin*NB_K_COEFF_PER_BIN) + coeff ];
399 kCoeffDumpPtr[0] = kCoeffPtr[0];
393 copyFloatByChar( kCoeffDumpPtr, kCoeffPtr );
400 kCoeffDumpPtr[1] = kCoeffPtr[1];
401 kCoeffDumpPtr[2] = kCoeffPtr[2];
402 kCoeffDumpPtr[3] = kCoeffPtr[3];
403 }
394 }
404 }
395 }
405 kcoefficients_dump_1.time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
396 kcoefficients_dump_1.time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
@@ -426,15 +417,12 int action_dump_kcoefficients(ccsdsTelec
426 {
417 {
427 kcoefficients_dump_2.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + 1 ] = NB_BINS_COMPRESSED_SM_F0 + NB_BINS_COMPRESSED_SM_F1 + 6 + freq;
418 kcoefficients_dump_2.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + 1 ] = NB_BINS_COMPRESSED_SM_F0 + NB_BINS_COMPRESSED_SM_F1 + 6 + freq;
428 bin = freq + 6;
419 bin = freq + 6;
429 printKCoefficients( freq, bin, k_coeff_intercalib_f2);
420 // printKCoefficients( freq, bin, k_coeff_intercalib_f2);
430 for ( coeff=0; coeff<NB_K_COEFF_PER_BIN; coeff++ )
421 for ( coeff=0; coeff<NB_K_COEFF_PER_BIN; coeff++ )
431 {
422 {
432 kCoeffDumpPtr = (unsigned char*) &kcoefficients_dump_2.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + coeff*NB_BYTES_PER_FLOAT + 2 ]; // 2 for the kcoeff_frequency
423 kCoeffDumpPtr = (unsigned char*) &kcoefficients_dump_2.kcoeff_blks[ freq*KCOEFF_BLK_SIZE + coeff*NB_BYTES_PER_FLOAT + 2 ]; // 2 for the kcoeff_frequency
433 kCoeffPtr = (unsigned char*) &k_coeff_intercalib_f2[ (bin*NB_K_COEFF_PER_BIN) + coeff ];
424 kCoeffPtr = (unsigned char*) &k_coeff_intercalib_f2[ (bin*NB_K_COEFF_PER_BIN) + coeff ];
434 kCoeffDumpPtr[0] = kCoeffPtr[0];
425 copyFloatByChar( kCoeffDumpPtr, kCoeffPtr );
435 kCoeffDumpPtr[1] = kCoeffPtr[1];
436 kCoeffDumpPtr[2] = kCoeffPtr[2];
437 kCoeffDumpPtr[3] = kCoeffPtr[3];
438 }
426 }
439 }
427 }
440 kcoefficients_dump_2.time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
428 kcoefficients_dump_2.time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
@@ -883,6 +871,36 unsigned int check_update_info_hk_thr_mo
883 return status;
871 return status;
884 }
872 }
885
873
874 //***********
875 // FBINS MASK
876
877 int set_sy_lfr_fbins( ccsdsTelecommandPacket_t *TC )
878 {
879 int status;
880 unsigned int k;
881 unsigned char *fbins_mask_dump;
882 unsigned char *fbins_mask_TC;
883
884 status = LFR_SUCCESSFUL;
885
886 fbins_mask_dump = parameter_dump_packet.sy_lfr_fbins_f0_word1;
887 fbins_mask_TC = TC->dataAndCRC;
888
889 for (k=0; k < NB_FBINS_MASKS * NB_BYTES_PER_FBINS_MASK; k++)
890 {
891 fbins_mask_dump[k] = fbins_mask_TC[k];
892 }
893 for (k=0; k < NB_FBINS_MASKS; k++)
894 {
895 unsigned char *auxPtr;
896 auxPtr = &parameter_dump_packet.sy_lfr_fbins_f0_word1[k*NB_BYTES_PER_FBINS_MASK];
897 printf("%x %x %x %x\n", auxPtr[0], auxPtr[1], auxPtr[2], auxPtr[3]);
898 }
899
900
901 return status;
902 }
903
886 //**************
904 //**************
887 // KCOEFFICIENTS
905 // KCOEFFICIENTS
888 int set_sy_lfr_kcoeff( ccsdsTelecommandPacket_t *TC )
906 int set_sy_lfr_kcoeff( ccsdsTelecommandPacket_t *TC )
@@ -940,24 +958,25 int set_sy_lfr_kcoeff( ccsdsTelecommandP
940 printf("freq = %d, bin = %d\n", sy_lfr_kcoeff_frequency, bin);
958 printf("freq = %d, bin = %d\n", sy_lfr_kcoeff_frequency, bin);
941 for (i=0; i<NB_K_COEFF_PER_BIN; i++)
959 for (i=0; i<NB_K_COEFF_PER_BIN; i++)
942 {
960 {
943 kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * i];
961 // destination
944 kcoeffNormPtr = (unsigned char*) &kcoeffPtr_norm[ (bin * NB_K_COEFF_PER_BIN) + i ];
962 kcoeffNormPtr = (unsigned char*) &kcoeffPtr_norm[ (bin * NB_K_COEFF_PER_BIN) + i ];
945 kcoeffNormPtr[0] = kcoeffLoadPtr[0];
963 // source
946 kcoeffNormPtr[1] = kcoeffLoadPtr[1];
964 kcoeffLoadPtr = (unsigned char*) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_1 + NB_BYTES_PER_FLOAT * i];
947 kcoeffNormPtr[2] = kcoeffLoadPtr[2];
965 copyFloatByChar( kcoeffNormPtr, kcoeffLoadPtr );
948 kcoeffNormPtr[3] = kcoeffLoadPtr[3];
949 printf("kcoeffPtr: %x %x %x %x *** %f \n",
950 kcoeffLoadPtr[0],
951 kcoeffLoadPtr[1],
952 kcoeffLoadPtr[2],
953 kcoeffLoadPtr[3],
954 kcoeffPtr_norm[ (bin * NB_K_COEFF_PER_BIN) + i ]);
955 }
966 }
956 }
967 }
957
968
958 return status;
969 return status;
959 }
970 }
960
971
972 void copyFloatByChar( unsigned char *destination, unsigned char *source )
973 {
974 destination[0] = source[0];
975 destination[1] = source[1];
976 destination[2] = source[2];
977 destination[3] = source[3];
978 }
979
961 //**********
980 //**********
962 // init dump
981 // init dump
963
982
@@ -967,6 +986,8 void init_parameter_dump( void )
967 *
986 *
968 */
987 */
969
988
989 unsigned int k;
990
970 parameter_dump_packet.targetLogicalAddress = CCSDS_DESTINATION_ID;
991 parameter_dump_packet.targetLogicalAddress = CCSDS_DESTINATION_ID;
971 parameter_dump_packet.protocolIdentifier = CCSDS_PROTOCOLE_ID;
992 parameter_dump_packet.protocolIdentifier = CCSDS_PROTOCOLE_ID;
972 parameter_dump_packet.reserved = CCSDS_RESERVED;
993 parameter_dump_packet.reserved = CCSDS_RESERVED;
@@ -992,8 +1013,8 void init_parameter_dump( void )
992
1013
993 //******************
1014 //******************
994 // COMMON PARAMETERS
1015 // COMMON PARAMETERS
995 parameter_dump_packet.unused0 = DEFAULT_SY_LFR_COMMON0;
1016 parameter_dump_packet.sy_lfr_common_parameters_spare = DEFAULT_SY_LFR_COMMON0;
996 parameter_dump_packet.sy_lfr_common_parameters = DEFAULT_SY_LFR_COMMON1;
1017 parameter_dump_packet.sy_lfr_common_parameters = DEFAULT_SY_LFR_COMMON1;
997
1018
998 //******************
1019 //******************
999 // NORMAL PARAMETERS
1020 // NORMAL PARAMETERS
@@ -1021,6 +1042,13 void init_parameter_dump( void )
1021 // SBM2 PARAMETERS
1042 // SBM2 PARAMETERS
1022 parameter_dump_packet.sy_lfr_s2_bp_p0 = (unsigned char) DEFAULT_SY_LFR_S2_BP_P0;
1043 parameter_dump_packet.sy_lfr_s2_bp_p0 = (unsigned char) DEFAULT_SY_LFR_S2_BP_P0;
1023 parameter_dump_packet.sy_lfr_s2_bp_p1 = (unsigned char) DEFAULT_SY_LFR_S2_BP_P1;
1044 parameter_dump_packet.sy_lfr_s2_bp_p1 = (unsigned char) DEFAULT_SY_LFR_S2_BP_P1;
1045
1046 //************
1047 // FBINS MASKS
1048 for (k=0; k < NB_FBINS_MASKS * NB_BYTES_PER_FBINS_MASK; k++)
1049 {
1050 parameter_dump_packet.sy_lfr_fbins_f0_word1[k] = 0xff;
1051 }
1024 }
1052 }
1025
1053
1026 void init_kcoefficients_dump( void )
1054 void init_kcoefficients_dump( void )
@@ -1221,10 +1221,8 void set_wfp_data_shaping( void )
1221 + ( (data_shaping & 0x08) >> 2 ) // SP0
1221 + ( (data_shaping & 0x08) >> 2 ) // SP0
1222 + ( (data_shaping & 0x04) ) // SP1
1222 + ( (data_shaping & 0x04) ) // SP1
1223 + ( (data_shaping & 0x02) << 2 ) // R0
1223 + ( (data_shaping & 0x02) << 2 ) // R0
1224 + ( (data_shaping & 0x01) << 4 ); // R1
1224 + ( (data_shaping & 0x01) << 4 ) // R1
1225
1225 + ( (data_shaping & 0x01) << 5 ); // R2
1226 // this is a temporary way to set R2, compatible with the release 2 of the flight software
1227 waveform_picker_regs->data_shaping = waveform_picker_regs->data_shaping + ( (0x1) << 5 ); // R2
1228 }
1226 }
1229
1227
1230 void set_wfp_burst_enable_register( unsigned char mode )
1228 void set_wfp_burst_enable_register( unsigned char mode )
General Comments 0
You need to be logged in to leave comments. Login now