[USRP-users] UHD C++ API Questions
Marcus D. Leech
mleech at ripnet.com
Mon Dec 1 19:20:20 EST 2014
On 12/01/2014 06:23 PM, Peter Witkowski via USRP-users wrote:
> I am in the process of writing a simple RF receiving program that
> follows many of the same steps as rx_samples_to file. I am following
> the example code found here:
> I had a couple questions come up as I was following the example:
> 1. How are errors handled by the API? For example, when I call
> uhd::usrp::multi_usrp::make() and it fails, how do I know that the
> pointer points to an invalid device? Do I check the pointer for null
> or is there an exception thrown?
> 2. Similar question to above, how do I know that device settings are
> actually set? For example, for set_rx_rate() are any exceptions
> thrown if the rate is bad, or do I just need to call get_rx_rate()
> immediately afterwards?
> 3. In a newer version of rx_samples_to_file (see here:
> I noticed that a tuning request is used to set the frequency of the
> device. Is this the preferred method or does a call to set_rx_freq()
> 4. In all the example code I've been able to dig up, the connection
> to the device is closed by simply exiting from the program. Is there
> a way to close the device and perform the necessary clean-up (i.e. the
> opposite of make()) manually?
> 5. In the two versions of rx_samples_to_file that I found, I noted a
> difference in the way data is read from the device via recv().
> Namely, I'm lost on the last two parameters that are passed in. Do I
> have to specify an io_type and are there different options than
> RECV_MODE_FULL_BUFF? Do I have to use a STL vector or can I pass it a
> different data structure (like a C-style buffer/array)? I guess I
> just need to be pointed to a good few lines of code on how recv()
> works and is implemented. Also, does recv() throw exceptions?
> Thanks in advance for the help.
> Peter Witkowski
> pwitkowski at gmail.com <mailto:pwitkowski at gmail.com>
> USRP-users mailing list
> USRP-users at lists.ettus.com
You might want to spend some time here:
set_rx_freq takes a tune_request_t, which is most easily created by
using the tune_request() helper function.
There are options other than RECV_MODE_FULL_BUFF, for example
RECV_NUM_SAMPLES_AND_DONE. Spend some time with the API documentation.
Shirleys Bay Radio Astronomy Consortium
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the USRP-users