Right. Of course you can just use one loop of noutput_items * vlen
iterations.

Technically noutput_items says how many items you may write, not how many
the scheduler is delivering (implying input). In a sync block, they are the
same though, unless you overwritten forecast().

On Thu, Apr 21, 2022 at 12:14 PM George Edwards <gedwards....@gmail.com>
wrote:

> Hi Jeff,
>
> Thanks for your reply!
>
> So let me make certain that I understand correctly your response where you
> said there were 16*512 samples (8192 samples). So I take it that noutput_items
> (which has alternating values of 15 and 16 when printed to the screen) tells
> me the number of vectors of vlen elements the scheduler delivers on each
> iteration. Therefore, to process all the data delivered in one iteration 
> (noutput_items
> * vlen floating point samples), if I was simply designing an algorithm
> that writes the input data to the output, I would do the following:
>
> for (int j = 0; j < noutput_items; j++){
>       for (int i =  0; i < vlen; i++){
>             out[ vlen*j + i ] = in[ vlen*j + i ];
>       }
> }
>
> Am I right?
> Thank you!
> George
>
> On Wed, Apr 20, 2022 at 5:40 PM Jeff Long <willco...@gmail.com> wrote:
>
>> The item size is vlen * sizeof (type), so you are seeing 16 * 512
>> "samples".
>>
>> On Wed, Apr 20, 2022 at 1:44 PM George Edwards <gedwards....@gmail.com>
>> wrote:
>>
>>> Hello GNURadio Community,
>>>
>>> I have written a C++ OOT "sync" block with vector input and vector
>>> output (data type float). I wrote a line in my program to print the value
>>> of noutput_items on each GRC flow graph iteration and it alternately
>>> prints the values 15 and 16. This is surprising!!! I was expecting this
>>> value to be the 512, the number of elements in each input/output vector
>>> that I designed the OOT to operate at. In my OOT design, the input/output
>>> signatures were set to 512 floating point elements. In the GRC Flow graph
>>> my block is fed by a stream to vector block (which brings in vectors of
>>> 512 samples) and my block outputs its data to a vector to stream block
>>> (which takes a vector of 512 elements and converts to a data stream).
>>>
>>> I was under the impression that the parameter noutput_items in the
>>> work(...) function for an OOT sync block with vector input and output 
>>> provided
>>> the number of elements in each output vector.
>>>
>>> I will appreciate any insight into this issue.
>>>
>>> Thanks!
>>> George
>>>
>>>
>>>
>>>

Reply via email to