rfnoc_rx_replay_samples_to_file.py could hang and then abort with "Timeout while loading replay buffer!" whenever the requested sample rate was not an integer divisor of the master clock rate. For example, requesting 200 Msps at an MCR of 368.64 MHz would leave the record buffer stuck at exactly 50% fullness. Two problems combined to cause this: First, the rate was read back from the DDC before the graph was committed. At that point the DDC's input sample rate property is not yet valid, so set_output_rate() falls back to setting the output edge property and returns the uncoerced, requested rate. The example then reported a rate that the DDC never actually applied. Second, run_capture() derived the number of samples to request from the radio with int(radio_rate / rate), truncating instead of rounding. With a radio rate of 368.64 Msps and a nominal rate of 200 Msps this yielded a ratio of 1 rather than the decimation the DDC had actually settled on, so the radio was told to produce only half the samples needed to fill the record buffer. The rate is now read back with get_output_rate() after graph.commit(), when property propagation has completed, and the user is warned when the requested rate had to be coerced. The rate ratio is computed with rounding, so the radio is asked for the full number of samples the record buffer needs. While here, fix two related issues in the readback path. The DDC port is now taken from the destination port of the discovered edge rather than assuming it matches the radio channel index, and the rate is read per channel (from the DDC where one is present, otherwise from the radio) so that chains without a DDC are not ignored. Rates are compared against a tolerance rather than for exact float equality. Signed-off-by: Virendra Kakade <virendra.kakade@ni.com> |
||
|---|---|---|
| .. | ||
| cmake | ||
| docs | ||
| examples | ||
| include | ||
| lib | ||
| python | ||
| tests | ||
| utils | ||
| .gitignore | ||
| CMakeLists.txt | ||
| LICENSE | ||
| README.md | ||
| uhd.pc.in | ||
Host UHD™ Software Source Code
This directory tree contains the source code that builds the UHD software library on your host computer. This library contains the drivers for all Ettus Research products, and the framework and API that make them usable to application-level programs. The UHD library runs entirely in user-space.
Documentation
For documentation, please refer to the following resources:
For technical documentation related to our devices and UHD check out the UHD and USRP Manual.
Additionally, be sure to check out the Ettus Research FAQ, and the Knowledge Base for useful application notes and tutorials.
Support
If you have purchased an Ettus Research USRP™ product and need technical support
using the device or using this UHD™ software, please e-mail the USRP-Users
mailing list, which is where Ettus Research, and our community, provide support
to users.
Note that you must be subscribed to the list in order to post a message to the list. This is to prevent spammers from just sending garbage messages out over the listserve.