@@ -1,2 +1,2 | |||
|
1 | 1 | 3081d1f9bb20b2b64a192585337a292a9804e0c5 LFR_basic-parameters |
|
2 | 26659466eb11170e587645c796142ac8a7fd0add header/lfr_common_headers | |
|
2 | e904b329ff977514bf36af92617afefd22fd06ab header/lfr_common_headers |
@@ -188,11 +188,13 rtems_task Init( rtems_task_argument ign | |||
|
188 | 188 | |
|
189 | 189 | // initialize filtering parameters |
|
190 | 190 | filterPar.spare_sy_lfr_pas_filter_enabled = DEFAULT_SY_LFR_PAS_FILTER_ENABLED; |
|
191 |
filterPar.sy_lfr_ |
|
|
191 | filterPar.sy_lfr_sc_rw_delta_f = DEFAULT_SY_LFR_SC_RW_DELTA_F; | |
|
192 | 192 | filterPar.sy_lfr_pas_filter_tbad = DEFAULT_SY_LFR_PAS_FILTER_TBAD; |
|
193 | filterPar.sy_lfr_pas_filter_offset = DEFAULT_SY_LFR_PAS_FILTER_OFFSET; | |
|
194 | 193 | filterPar.sy_lfr_pas_filter_shift = DEFAULT_SY_LFR_PAS_FILTER_SHIFT; |
|
195 |
filterPar. |
|
|
194 | filterPar.modulus_in_finetime = DEFAULT_MODULUS; | |
|
195 | filterPar.tbad_in_finetime = DEFAULT_TBAD; | |
|
196 | filterPar.offset_in_finetime = DEFAULT_OFFSET; | |
|
197 | filterPar.shift_in_finetime = DEFAULT_SHIFT; | |
|
196 | 198 | update_last_valid_transition_date( DEFAULT_LAST_VALID_TRANSITION_DATE ); |
|
197 | 199 | |
|
198 | 200 | // waveform picker initialization |
@@ -753,17 +753,13 unsigned char acquisitionTimeIsValid( un | |||
|
753 | 753 | unsigned char pasFilteringIsEnabled; |
|
754 | 754 | unsigned char ret; |
|
755 | 755 | |
|
756 | pasFilteringIsEnabled = (filterPar.spare_sy_lfr_pas_filter_enabled & 1); // [0000 0001] | |
|
757 | ret = MATRIX_IS_NOT_POLLUTED; | |
|
758 | ||
|
759 | // compute the acquitionTime range | |
|
760 | modulusInFineTime = ((u_int64_t) filterPar.sy_lfr_pas_filter_modulus) * CONST_65536; | |
|
761 | offsetInFineTime = ((u_int64_t) filterPar.sy_lfr_pas_filter_offset) * CONST_65536; | |
|
762 | shiftInFineTime = ((u_int64_t) filterPar.sy_lfr_pas_filter_shift) * CONST_65536; | |
|
763 | tbadInFineTime = ((u_int64_t) filterPar.sy_lfr_pas_filter_tbad) * CONST_65536; | |
|
764 | ||
|
765 | 756 | // compute acquisition time from caoarseTime and fineTime |
|
766 | 757 | t0 = ( ((u_int64_t)coarseTime) << SHIFT_2_BYTES ) + (u_int64_t) fineTime; |
|
758 | t1 = t0; | |
|
759 | tc = t0; | |
|
760 | tbad0 = t0; | |
|
761 | tbad1 = t0; | |
|
762 | ||
|
767 | 763 | switch(channel) |
|
768 | 764 | { |
|
769 | 765 | case CHANNELF0: |
@@ -778,36 +774,50 unsigned char acquisitionTimeIsValid( un | |||
|
778 | 774 | t1 = t0 + ACQUISITION_DURATION_F2; |
|
779 | 775 | tc = t0 + HALF_ACQUISITION_DURATION_F2; |
|
780 | 776 | break; |
|
777 | default: | |
|
778 | break; | |
|
781 | 779 | } |
|
782 | 780 | |
|
783 | // INTERSECTION TEST #1 | |
|
784 | timecodeReference = (tc - (tc % modulusInFineTime)) - modulusInFineTime ; | |
|
785 | tbad0 = timecodeReference + offsetInFineTime + shiftInFineTime; | |
|
786 | tbad1 = timecodeReference + offsetInFineTime + shiftInFineTime + tbadInFineTime; | |
|
787 | ret = isPolluted( t0, t1, tbad0, tbad1 ); | |
|
781 | // compute the acquitionTime range | |
|
782 | modulusInFineTime = filterPar.modulus_in_finetime; | |
|
783 | offsetInFineTime = filterPar.offset_in_finetime; | |
|
784 | shiftInFineTime = filterPar.shift_in_finetime; | |
|
785 | tbadInFineTime = filterPar.tbad_in_finetime; | |
|
786 | timecodeReference = INIT_INT; | |
|
788 | 787 | |
|
789 | // INTERSECTION TEST #2 | |
|
790 | timecodeReference = (tc - (tc % modulusInFineTime)) ; | |
|
791 | tbad0 = timecodeReference + offsetInFineTime + shiftInFineTime; | |
|
792 | tbad1 = timecodeReference + offsetInFineTime + shiftInFineTime + tbadInFineTime; | |
|
793 | if (ret == MATRIX_IS_NOT_POLLUTED) | |
|
794 | { | |
|
795 | ret = isPolluted( t0, t1, tbad0, tbad1 ); | |
|
796 | } | |
|
788 | pasFilteringIsEnabled = (filterPar.spare_sy_lfr_pas_filter_enabled & 1); // [0000 0001] | |
|
789 | ret = MATRIX_IS_NOT_POLLUTED; | |
|
797 | 790 | |
|
798 | // INTERSECTION TEST #3 | |
|
799 | timecodeReference = (tc - (tc % modulusInFineTime)) + modulusInFineTime ; | |
|
800 | tbad0 = timecodeReference + offsetInFineTime + shiftInFineTime; | |
|
801 | tbad1 = timecodeReference + offsetInFineTime + shiftInFineTime + tbadInFineTime; | |
|
802 | if (ret == MATRIX_IS_NOT_POLLUTED) | |
|
803 | { | |
|
804 | ret = isPolluted( t0, t1, tbad0, tbad1 ); | |
|
805 | } | |
|
806 | ||
|
807 | if (pasFilteringIsEnabled == 0) | |
|
791 | if ( (tbadInFineTime == 0) || (pasFilteringIsEnabled == 0) ) | |
|
808 | 792 | { |
|
809 | 793 | ret = MATRIX_IS_NOT_POLLUTED; |
|
810 | 794 | } |
|
795 | else | |
|
796 | { | |
|
797 | // INTERSECTION TEST #1 | |
|
798 | timecodeReference = (tc - (tc % modulusInFineTime)) - modulusInFineTime ; | |
|
799 | tbad0 = timecodeReference + offsetInFineTime + shiftInFineTime; | |
|
800 | tbad1 = timecodeReference + offsetInFineTime + shiftInFineTime + tbadInFineTime; | |
|
801 | ret = isPolluted( t0, t1, tbad0, tbad1 ); | |
|
802 | ||
|
803 | // INTERSECTION TEST #2 | |
|
804 | if (ret == MATRIX_IS_NOT_POLLUTED) | |
|
805 | { | |
|
806 | timecodeReference = (tc - (tc % modulusInFineTime)) ; | |
|
807 | tbad0 = timecodeReference + offsetInFineTime + shiftInFineTime; | |
|
808 | tbad1 = timecodeReference + offsetInFineTime + shiftInFineTime + tbadInFineTime; | |
|
809 | ret = isPolluted( t0, t1, tbad0, tbad1 ); | |
|
810 | } | |
|
811 | ||
|
812 | // INTERSECTION TEST #3 | |
|
813 | if (ret == MATRIX_IS_NOT_POLLUTED) | |
|
814 | { | |
|
815 | timecodeReference = (tc - (tc % modulusInFineTime)) + modulusInFineTime ; | |
|
816 | tbad0 = timecodeReference + offsetInFineTime + shiftInFineTime; | |
|
817 | tbad1 = timecodeReference + offsetInFineTime + shiftInFineTime + tbadInFineTime; | |
|
818 | ret = isPolluted( t0, t1, tbad0, tbad1 ); | |
|
819 | } | |
|
820 | } | |
|
811 | 821 | |
|
812 | 822 | return ret; |
|
813 | 823 | } |
@@ -351,19 +351,26 int action_load_filter_par(ccsdsTelecomm | |||
|
351 | 351 | |
|
352 | 352 | //**************************** |
|
353 | 353 | // store PAS filter parameters |
|
354 | ||
|
354 | 355 | // sy_lfr_pas_filter_enabled |
|
355 | 356 | filterPar.spare_sy_lfr_pas_filter_enabled = parameter_dump_packet.spare_sy_lfr_pas_filter_enabled; |
|
356 | 357 | set_sy_lfr_pas_filter_enabled( parameter_dump_packet.spare_sy_lfr_pas_filter_enabled & BIT_PAS_FILTER_ENABLED ); |
|
358 | ||
|
357 | 359 | // sy_lfr_pas_filter_modulus |
|
358 |
filterPar. |
|
|
360 | filterPar.modulus_in_finetime = ((uint64_t) parameter_dump_packet.sy_lfr_pas_filter_modulus) * CONST_65536; | |
|
361 | ||
|
359 | 362 | // sy_lfr_pas_filter_tbad |
|
360 | 363 | copyFloatByChar( (unsigned char*) &filterPar.sy_lfr_pas_filter_tbad, |
|
361 | 364 | parameter_dump_packet.sy_lfr_pas_filter_tbad ); |
|
365 | filterPar.tbad_in_finetime = (uint64_t) (filterPar.sy_lfr_pas_filter_tbad * CONST_65536); | |
|
366 | ||
|
362 | 367 | // sy_lfr_pas_filter_offset |
|
363 |
filterPar. |
|
|
368 | filterPar.offset_in_finetime = ((uint64_t) parameter_dump_packet.sy_lfr_pas_filter_offset) * CONST_65536; | |
|
369 | ||
|
364 | 370 | // sy_lfr_pas_filter_shift |
|
365 | 371 | copyFloatByChar( (unsigned char*) &filterPar.sy_lfr_pas_filter_shift, |
|
366 | 372 | parameter_dump_packet.sy_lfr_pas_filter_shift ); |
|
373 | filterPar.shift_in_finetime = (uint64_t) (filterPar.sy_lfr_pas_filter_shift * CONST_65536); | |
|
367 | 374 | |
|
368 | 375 | //**************************************************** |
|
369 | 376 | // store the parameter sy_lfr_sc_rw_delta_f as a float |
General Comments 0
You need to be logged in to leave comments.
Login now