It seems as if the gr_sync_block is close to what Josh Blum refers to as an Arbitrary Ratio Block in his Blocks Coding Guide. Do you think if I were to use the forecast() function and make all ninput_items_required[i] to be the same set amount, I would always have the same number of input_items[i] on each port every time the work() function is called? Is it this simple?
On Fri, Aug 3, 2012 at 1:56 PM, Martin Braun (CEL) <[email protected]>wrote: > On Fri, Aug 03, 2012 at 01:38:38PM -0400, Alexander Olihovik wrote: > > There are a few cases when input_items[0] doesn't equal input_items[1]. > If say, > > len(input_items[0]) = 1000 and len(input_items[1]) = 1500, and I > returned the > > smaller of the two values, 1000, what would happen to the other 500 > samples on > > port 1? Would they be buffered somewhere and then used the next time the > work > > function is called? > > Yep. The case where the len(input_items) are different is what you > should normally prepare for. > > Are you *certain* you can't use a gr_sync_{block,decimator,interpolator}? > That would make stuff much easier for you, I guess. For a start, you > wouldn't even need to check input_items. > > MB > > > > > > > On Wed, Aug 1, 2012 at 8:40 PM, Tom Rondeau <[email protected]> wrote: > > > > > > On Wed, Aug 1, 2012 at 3:46 PM, Alexander Olihovik < > [email protected]> > > wrote: > > > Hi all! > > > I'm writing a custom sink block in Python with multiple input > ports of > > all > > > the same data type. > > > I've been reading Josh's block coding guide, but I'm confused at > one > > point: > > > The value returned by a block should be the number of items > produced by > > that > > > block. > > > Is this to say that if I have multiple ports, I may return the > value of > > > input_items[0]? > > > Or is it correct to say that I must return the sum of all > input_items[i], > > i > > > = range(number of input ports)? > > > > > > > > > I would like to create a synchronous block where all ports consume > and > > > produce an equal number of items every time the work function is > called. > > > However, it appears that there are times when input_items[0] != > > > input_items[1] != ... != input_items[numPorts-1] > > > If I were to return input_items[0], I would assume that this would > not > > yield > > > the results I expect! > > > > > > Any help is greatly appreciated! > > > > > > From, > > > Alex > > > > > > If you have a block with multiple input items and you want to produce > > the same number every time, noutput_items will tell you how much you > > are capable of producing on every output stream. When you 'return > > noutput_items', you are saying that you have produced that many items > > on EVERY stream. > > > > There is another way that specifies the same thing. Each block > > consumes some number of samples on every input stream and produces > > some number of samples on every output stream. You can individually > > specify "produce(i, N_i)" and "consume(o, N_o)" on each input and > > output stream, respectively. In this case i is the input stream and > > N_i is the number of items consumed on that input stream and o is the > > output stream and N_o is the number of items consumed on that output > > stream. When specifying your own 'produce' values, though, make sure > > to return WORKED_CALLED_PRODUCE, to tell the scheduler that you have > > done this yourself. But it sounds like you want to produce the same > > amount on every stream, so you should be fine just using 'return > > nouput_items'. > > > > Tom > > > > > > > > > > -- > > Alex Olihovik > > University of Virginia 2013 > > BS Electrical Engineering > > BS Computer Engineering > > [email protected] > > > _______________________________________________ > > Discuss-gnuradio mailing list > > [email protected] > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > -- > Karlsruhe Institute of Technology (KIT) > Communications Engineering Lab (CEL) > > Dipl.-Ing. Martin Braun > Research Associate > > Kaiserstraße 12 > Building 05.01 > 76131 Karlsruhe > > Phone: +49 721 608-43790 > Fax: +49 721 608-46071 > www.cel.kit.edu > > KIT -- University of the State of Baden-Württemberg and > National Laboratory of the Helmholtz Association > > _______________________________________________ > Discuss-gnuradio mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > -- *Alex Olihovik University of Virginia 2013 BS Electrical Engineering BS Computer Engineering [email protected]*
_______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
