diff --git a/lib/sync_decim_impl.cc b/lib/sync_decim_impl.cc index f46a837..df8ae81 100644 --- a/lib/sync_decim_impl.cc +++ b/lib/sync_decim_impl.cc @@ -57,6 +57,7 @@ namespace gr { last_input=0; mode=COPY; dosync_counter=0; + weakout_counter=0; } /* * Our virtual destructor. @@ -73,10 +74,13 @@ namespace gr { pmt::pmt_t meta = pmt::car(pdu); // meta declares type 0:RDS, 1:sync/nosync pmt::pmt_t sync = pmt::cdr(pdu); if(1L==pmt::to_long(meta) && pmt::eqv(sync,pmt::PMT_F)){ - lout<< "entered nosync"<1000){ + outbit_counter=0; + weakout_counter=0; + lout<<"mode: "<=SYNC_COUNTER_MAX){ dosync_counter=0; float out_noskip; float out_skip; @@ -132,23 +145,22 @@ namespace gr { //lout<<"\t,out_skip:"<6){ + if (skip_is_better_counter>3){//2017-05-02 lowered from 6 mode=SKIP; lout<<"switched to skip"<< std::endl; } - else if (skip_is_better_counter<-6){ + else if (skip_is_better_counter<-3){ mode=NOSKIP; lout<<"switched to noskip"<< std::endl; } } - else if(mode==COPY){ + } + else if(mode==COPY){ dosync_counter++; - } } - - // Tell runtime system how many output items we produced. + outbit_counter+=noutput_items; return noutput_items; }/*end of work*/ } /* namespace multirds */ diff --git a/lib/sync_decim_impl.h b/lib/sync_decim_impl.h index 52cadff..1704ec8 100644 --- a/lib/sync_decim_impl.h +++ b/lib/sync_decim_impl.h @@ -47,6 +47,8 @@ namespace gr { unsigned int skip; void parse_ctrl_msg(pmt::pmt_t pdu); int dosync_counter; + int weakout_counter; + int outbit_counter; }; } // namespace multirds