Hi Laura,
the buffer sizes are determined at flow graph startup based on the
involved block's io signature, output multiples, alignment
requirements, minimum and maximum buffer sizes, and the page size
(which practically everywhere is 4kB).
I think you're expecting the amount of items your block
Laura et al,
consume_each <= ninput_items.
If you need a larger buffer than you consume you can abuse the
scheduler slightly by set_relative_rate(1, some_min_input_items), this
is done in the stream to vector blocks for example. I do this in a
visualization sink where I need to produce FFTs with
Just to put a number on this question, the DVB-T2 transmitter uses up to
16 Megabyte buffers between blocks. I'm not sure what the absolute
maximum is, but 16 Megabytes should cover most applications.
The DVB-T2 blocks use set_output_multiple() in conjunction with
forecast() to allocate these
Hi Laura - All of what's written already is basically correct. I'll add on
minor tweak: "ninput_items" and "noutput_items", which are 2 of the
arguments to the "work" or "general_work" method, define the maximum number
of input and/or output items available to use or requested to produce; see
the c
Hi Ron,
just because I think this might be interesting to people dealing with
really high rates:
The maximum size is typically limited by the size of mmap'able memory
that you can allocate; that depends on the circular buffer factory
used:
For the posix shared memory thing, I don't think anything
Hello together,
I am trying to transmit one complex cosine from both TX - Antenna of my
USRP-x310 with two UBX-160 Daugtherboards. I am transmitting a cosine with
the frequency of 100 kHz and the center frequency of my RFNoC Radio Blocks
is 2.45 GHz. So basically I see a peak at 2.45 Ghz + 100 kHz
Also note that a total of 40 MS/s, even at 16sc, is still 160 MB/s in
data; it's not guaranteed that a consumer SSD would sustain that rate
for arbitrarily long.
Average write rates these days most definitely suffice, but don't
underestimate the effect filesystem bookkeeping and imperfect buffer
ha
Thank you very much Marcus, Michael, Abin, and Ron, really appreciate your
responses.
To give some context, I just started designing a prototype reader to
implement a custom protocol for backscatter neural implants; very excited
to build my platform with GNU-radio :)
After reading all the informat
If you use set_output_multiple(), you don't have to check the input
buffer. The block will only execute if there are a multiple of the value
used in set_output_multiple() items available. For example, if
set_output_multiple() is set to 256, the block will only execute if
noutput_items is at lea