On 08/11/2021 09:18 AM, Rob Kossler wrote:
It's too bad that Ettus did not implement the STOP_CONTINUOUS as a
timed command. Had they done so, it would have been possible to send
a START_CONTINUOUS followed immediately by a STOP_CONTINUOUS (with
time stamp) such that the radio would automatically stop on the
correct sample. That being the case, the long captures require the
user to stop the radio after receiving the desired number of samples
and then flush / discard the rest.
Rob
Agreed, that would be a good implementation. Probably wouldn't be that
hard to do (he says, displaying an optimism fueled by only superficial
knowledge
of the FPGA codebase).
On Tue, Aug 10, 2021 at 6:00 PM Marcus D. Leech
<patchvonbr...@gmail.com <mailto:patchvonbr...@gmail.com>> wrote:
On 08/10/2021 05:07 PM, Jonathan Tobin wrote:
To follow up,
This seems to be the limit now that I have updated to UHD 4.1.0.1
<http://4.1.0.1>:
[ERROR] [0/Radio#0] Requesting too many samples in a single
burst! Requested 18446744028430598144, maximum is 281474976710655.
This occurs with the key arguments: --rx-rate 4.8e6 --rx-subdev
"A:0 A:1 B:0 B:1" --rx-channels "0,1,2,3" --nsamps 2880000000
The nsamps value is for 10 minutes of recording (sample rate * 60
seconds * 10 minutes).
Thanks,
Jonathan
Right. Because that *example* program uses the NUM_SAMPS_AND_DONE
streamer type, which requires that the *RADIO* keep track of the
number of samples you're interested in. That was extended from
32-bits to 48 bits.
You'll note that txrx_loopback_to_file will simply run
continuously if you *dont* specify --nsamps, because it uses two
different streaming modes:
// setup streaming
uhd::stream_cmd_t stream_cmd((num_requested_samples == 0)
?
uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS
:
uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);
You can then just interrupt it when you're done or add some code
to see if you have enough samples, even when you're running
continuously
or see if enough time has elapsed, etc, etc.
Contrast with rx_multi_samples:
// setup streaming
std::cout << std::endl;
std::cout << boost::format("Begin streaming %u samples, %f
seconds in the future...")
% total_num_samps % seconds_in_future
<< std::endl;
uhd::stream_cmd_t
stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);
Same comment as above. You can modify this to run continuously,
and then have the sample-gather loop exit when it is satisfied
that it has
enough samples--either because enough time has elapsed or a
sample counter has reached a certain value.
The UHD API is diverse. There's no possible way that the handful
of *example* programs can possibly satisfy every use case, and
that's simply
not design intent. Some programming may be required.
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
<mailto:usrp-users@lists.ettus.com>
To unsubscribe send an email to usrp-users-le...@lists.ettus.com
<mailto:usrp-users-le...@lists.ettus.com>
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com