Browse Source

sync decim improvements (auto-switch to COPY mode)

dev
Clemens Richter 9 years ago
parent
commit
44de59050c
  1. 6
      apps/fft-multi-decoder_fixed_hackrf.grc
  2. 2
      apps/ifft-RDS-decoder_hier-block.grc
  3. 12
      lib/sync_decim_impl.cc

6
apps/fft-multi-decoder_fixed_hackrf.grc

@ -2516,7 +2516,7 @@ class blk(gr.sync_block): # other base classes are basic_block, decim_block, in
</param> </param>
<param> <param>
<key>log</key> <key>log</key>
<value>True</value> <value>False</value>
</param> </param>
<param> <param>
<key>loop_bw</key> <key>loop_bw</key>
@ -2851,7 +2851,7 @@ class blk(gr.sync_block): # other base classes are basic_block, decim_block, in
</param> </param>
<param> <param>
<key>log</key> <key>log</key>
<value>False</value> <value>True</value>
</param> </param>
<param> <param>
<key>loop_bw</key> <key>loop_bw</key>
@ -3052,7 +3052,7 @@ class blk(gr.sync_block): # other base classes are basic_block, decim_block, in
</param> </param>
<param> <param>
<key>log</key> <key>log</key>
<value>False</value> <value>True</value>
</param> </param>
<param> <param>
<key>loop_bw</key> <key>loop_bw</key>

2
apps/ifft-RDS-decoder_hier-block.grc

@ -2402,7 +2402,7 @@
</param> </param>
<param> <param>
<key>log</key> <key>log</key>
<value>log</value> <value>True</value>
</param> </param>
<param> <param>
<key>maxoutbuf</key> <key>maxoutbuf</key>

12
lib/sync_decim_impl.cc

@ -76,14 +76,14 @@ namespace gr {
pmt::pmt_t meta = pmt::car(pdu); // meta declares type 0:RDS, 1:sync/nosync pmt::pmt_t meta = pmt::car(pdu); // meta declares type 0:RDS, 1:sync/nosync
pmt::pmt_t sync = pmt::cdr(pdu); pmt::pmt_t sync = pmt::cdr(pdu);
if(1L==pmt::to_long(meta) && pmt::eqv(sync,pmt::PMT_F)){ if(1L==pmt::to_long(meta) && pmt::eqv(sync,pmt::PMT_F)){
if (mode != COPY){ /*if (mode != COPY){
pmt::pmt_t meta(pmt::from_long(4)); pmt::pmt_t meta(pmt::from_long(4));
pmt::pmt_t data(pmt::from_long(COPY)); pmt::pmt_t data(pmt::from_long(COPY));
pmt::pmt_t pdu(pmt::cons(meta, data)); // make PDU: (metadata, data) pair pmt::pmt_t pdu(pmt::cons(meta, data)); // make PDU: (metadata, data) pair
message_port_pub(pmt::mp("ctrl"), pdu); message_port_pub(pmt::mp("ctrl"), pdu);
lout<< "switched to copy"<<std::endl; lout<< "switched to copy"<<std::endl;
} }
mode=COPY; mode=COPY;*/
} }
} }
@ -100,6 +100,14 @@ namespace gr {
if(outbit_counter>2000){//2000 ^= ~every 2 seconds if(outbit_counter>2000){//2000 ^= ~every 2 seconds
lout<<"mode: "<<mode<<"\t"; lout<<"mode: "<<mode<<"\t";
lout<<"weakout_counter:"<<weakout_counter<<std::endl; lout<<"weakout_counter:"<<weakout_counter<<std::endl;
if(weakout_counter>1000){//switch to copy and resync if outputs low
mode=COPY;
pmt::pmt_t meta(pmt::from_long(4));
pmt::pmt_t data(pmt::from_long(COPY));
pmt::pmt_t pdu(pmt::cons(meta, data)); // make PDU: (metadata, data) pair
message_port_pub(pmt::mp("ctrl"), pdu);
lout<< "switched to copy"<<std::endl;
}
outbit_counter=0; outbit_counter=0;
weakout_counter=0; weakout_counter=0;
} }

Loading…
Cancel
Save