I am writing a simple program that stores USRP sampled data and stores
it on disk continuously in 1s sized files. I have made a new sink for
this purpose, which is almost identical to gr_filesink, except that
mine blocks in work() while the file is closed and a new one is
I have only been using USRP for a couple of days, so I have some
hopefully simple questions:
I would like to get as accurate timestamp as possible to the
beginning of the dump to make later analysis easier. What would be the
best way to estimate the time delay between fg.run() and the moment
when the first sample comes out of the down converter?
I have managed through trial and error to get a fairly reliable
8MHz sampling system using the following parameters:
fusb_nblocks=32768,fusb_block_size=1024. Is this a good way to make a
large buffer or should I use some other gnuradio block to create a
large buffer in RAM? I am hoping to write the data at 8MHz on a
networked RAID array and this will cause even larger waiting times for
my filesink, even though the average bandwidth is large enough.
Another question: is there any way to query the driver if a buffer
overflow has occurred and maybe throw an exception? I am going to
sample continuously for long durations and it would be nice to be able
to restart sampling automatically if an overflow is detected due to
What happens in an overflow situation? Do I still get the correct
amount of samples, albeit with wrong samples, or are the missing
samples just tossed away?
Gnuradio and USRP is great! I really prefer your system to labview.