GNU Radio-based tests are not used anymore. The gr- prefix is removed
from the USRP test folder name and tests from the apps folder that do
not depend on GNU Radio are kept in the top level folder.
A few minor fixes so the script works for N210:
- Set source on master mboard to "external" if "mimo" ref or pps is
specified.
- Add support for comma-separated lists for ref and pps arguments.
- Fix bug where not supplying the lo_source argument would cause the
script to fail.
Signed-off-by: michael-west <michael.west@ettus.com>
Because this script deletes the entire contents of --buildpath, we no
longer provide '..' as the default. First, it is not a suitable default,
because it will contain the directory from which this script is called.
Second, if someone runs this script from a source repo for UHD, and this
repo is checked out into a non-empty directory, the script will still,
by default, delete all the contents from that directory.
Now, the script fails when not providing --buildpath. Note that CI code
is already using this command line argument.
The original commit incorrectly fails the build
uhd in the meta-ettus context. This uses prefix
instead to get the base path.
Signed-off-by: Steven Koo <steven.koo@ni.com>
This commit replaces uses of distutils.sysconfig's get_python_lib()
function with sysconfig's near-equivalent get_path() function to get the
directory for site-specific, platform-specific files. Unfortunately,
get_path() does not have a way to easily modify or strip the prefix
applied to the path like get_python_lib() does, so the code must
manually modify the path to get the same effect:
- First, the platlib path is retrieved from the get_path() call.
- Next, the default base that is used to form the pathlib path is
queried via the get_config_var('base') call.
- Next, the portion of the platlib path that matches the default base is
stripped, and any leading path separator remaining is stripped. This
fundamentally replicates the behavior of get_python_lib() with an empty
prefix (i.e., the prefix positional parameter is specified as '').
- If a different prefix is desired, then the os.path.join() function is
used to combine the new prefix with the stripped pathlib path, ensuring
that the platform-specific path separator is used in crafting the path.
- Add data packet payload field
- Add metadata support
- Add missing management fields (OpsPending, ExtendedInfo).
- Add missing control fields (byte_enable, data, has_time)
- Update offsets for management OpPayload fields.
- Make the field names more consistent, readable, and consistent
with the RFNoC specification.
- Display value of fields in addition to name.
- Fix timestamp, eob, and eov offsets
The recent removal of cruft in 78336d4 caused an implicit include to be
missing from this dissector, causing it to no longer compile. The
include is added to the dissector explicitly now.
This commit updates the releases for which we want to upload UHD
support, as well as the way the version number is parsed from the Debian
changelog file.
This commit makes some of the CMake formatting consistent. CMake
patches were not, in fact, required to fix bugs, but we keep the
formatting improvements nevertheless.
Previously, we were doing this:
```cpp
extern "C" {
}
```
This is not how glib.h is supposed to be included, according to their
documentation. It turns out that it happened to work for a long time,
and lots of projects include glib.h that way, and the glib devs are
trying to accommodate for those cases. How nice of them!
However, on Fedora 34, we have a version of glib which does not have
a workaround patch, so we include glib.h the it should be.
The second issue was that a build script required the existence of
a `python` executable, which is not always available. A `python3`
executable can be assumed, since that's a dependency for UHD, too.
This is a rewrite of upload_debs.sh in python. It adds support for
building the generated dsc into debs before uploading.
Signed-off-by: Steven Koo <steven.koo@ni.com>
A recent commit changed the name of chdr_packet in uhd. This commit
accounts for this change and makes the dissector compile again.
Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
This script replaces CMake's package_source implementation to allow
for pulling in the firmware, fpga, mpm, host, and tools folders.
This builds two tarballs, one with and one without the firmware,
fpga, and mpm folders.
Remove UHD call to elevate thread priority to realtime from utils, and
add warning in documentation of set_thread_priority function. Setting
all threads to the same realtime priority can cause the threads to not
share access to the network interface fairly, which adversely affects
operation of the worker threads in UHD.
-Added test cases for the 184.32MHz clock rate.
-Removed some extra test cases for 200MHz clock rate in order to
cut down on test time.
-Added DPDK test cases (copied from 10gige and 2x_10gige test cases).
- Reduce long tests from 3600 seconds to 600 seconds.
- Remove 2xRX@153.6e6 test for N310 10 GbE (not practical).
Signed-off-by: michael-west <michael.west@ettus.com>
- Wait 100ms after a retune before capturing samples. Users can set the
length of time with `--skip-time X`
- Actually set RX gain
- Remove old TODOs
- Print alignment statistics in increasing frequency order
- Fix health check reported values (was reporting radians, but
labeling them as deg)
- Fix calculating the maximum drift for phase differences around
+/-180 degrees
This commit adds FPGA functional verification tests for all the N320
images. The tests follow a similar pattern to N310, but one additional
category is present for using the DPDK transport. In order to use that
test, the use_dpdk and mgmt_addr args must be specified in the options.
This doesn't add any functionality to the phase alignment script, but it
does make the siggen portion pluggable.
Co-authored-by: Brent Stapleton <brent.stapleton@ettus.com>
This tool uses the Python API to determine if USRP devices are
receiving a phase aligned signal. It is designed to be a stand-in
replacement for usrp_phasealignment.py, although the capabilities and
invocation are not identical.
The return value of this tool will indicate whether the signal is
sufficiently phase aligned, and allows integration into scripts or
other test frameworks. This tool also includes options to save data to
file or plot it using PyLab.
Currently only supports 2 channel RX phase alignment.
This tool uses the Python API to acquire a snapshot of samples during
a gain or frequency change. It can be used to analyze the settling time
of analog components, as well as the accuracy in time.
It has two combinable ways of analyzing the data: 1) Write it to a file,
or 2) plot the time-domain data.
Example: This would receive several seconds of data from an X3x0 device,
tune to 1 GHz, and then bump the gain by 30 dB after a set amount of
time:
$ rx_settling_time.py -a type=x300 -f 1e9 -g 0 --new-gain 30 --plot