@@ -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( |
|
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. |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 = ¶meter_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 |
|
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. |
|
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 ) |
|
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