Dear Martin, Thanks for the hints. I think this function helps: set_min_noutput_items()
Problem: Says, the instantaneous interpolation_factor is 3. As inherited from gr::block, the scheduler may call the general_work() with noutput_items=2 (any number is possible). When this happen, there is nothing to be done except to consume_each(0) and return 0 in the general_work(). But then the scheduler will repeat calling general_work() many times with noutput_items=2. This is fatal. Solution: On the fly, set_min_noutput_items(3) Then the scheduler will not call general_work() with noutput_items equals a value less than 3. This solves the problems ! Question: Does this function work on the fly? set_min_noutput_items() Thank you very much. Regards, Activecat On Fri, Feb 21, 2014 at 3:31 AM, Martin Braun <martin.br...@ettus.com>wrote: > On 02/20/2014 01:46 PM, Activecat wrote: > > I need to create a interpolator block which has a callback function to > > change its interpolation factor on the fly. > > > > If this block is inherited from gr::sync_interpolator, its interpolation > > factor cannot be changed on the fly because the interpolation factor is > > an argument of its constructor. > > > > The alternative is to inherit from gr::block instead. If the > > set_output_multiple() could be called on the fly, then the problem is > > solved. > > > > The problem is, the set_output_multiple() could not be changed on the > fly ! > > http://lists.gnu.org/archive/html/discuss-gnuradio/2010-11/msg00504.html > > > > Any solution to this? > > The objective is to create an interpolator block that its interpolation > > factor could be changed on the fly. > > Well, in a ::block you can do whatever you like with your in- and output > buffers. Also, forecast() is called all the time, and its behaviour can > by dynamic. So, between those you should be able to figure something out. > > 1) Edit forecast() > 2) in general_work(), check if buffer sizes work > 3) produce() and consume() as required > > MB > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio