| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Non-CONST type waveforms require a non-zero wave freq
|
| |
|
|
|
|
| |
Update tx_samples_from_file lo-offset naming convention
|
| |
|
|
|
|
|
|
| |
- examples affected: rfnoc_rx_to_file
- fixes UHD build error with Boost 1.67: boost::posix_time::seconds no
longer supports double argument as of version 1.67
|
|
|
|
|
|
|
| |
Move filling the TX buffer outside the critical path. Now, we pre-fill
the TX buffer before entering the send loop (and before setting the
TX stream time), and fill the TX buffer after calling send() (for the
next iteration).
|
|
|
|
|
| |
- Format `if` statements to multiple lines
- Add quick comment on the exit checks
|
|
|
|
|
|
|
|
| |
Move the setting of the streaming start times back as late as possible.
Currently, there are memory allocations in between setting the
time_spec in the TX metadata and actually starting streaming. This will
lessen the need for an INIT_DELAY and decrease the probability of late
packets.
|
|
|
|
|
|
|
|
| |
Add support for benchmarking multi-channel streamers. This also
simplifies the way the test parameters are specified to avoid confusion
due to the additional dimension. For rx, multi-channel streamer
configurations require split_stream noc blocks so that timestamps of
packets in the same streamer align. Add support for loopback FIFOs.
|
|
|
|
|
|
|
|
|
| |
- Add keyboard controls for sample rate, gain, analog bandwidth,
frequency, as well as the display's dynamic range, reference level,
and frame rate.
- The current values for these properties, as well as the keys to
control them, are displayed in a small window at the top of the
display. This control window can be toggled by pressing 'c'
|
|
|
|
|
|
|
|
|
|
| |
- Remove unnecessary Boostisms
- Remove unecessary thread priority (this example doesn't actually do
anything that requires high thread priority)
- Used auto in some places to increase readability
- Fixed some compiler warnings
No functional changes.
|
|
|
|
|
| |
The HALT feature allows a command that takes a long time to run to be
stopped while it is in progress.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also updates our coding style file.
Ancient CMake versions required upper-case commands. Later command
names became case-insensitive. Now the preferred style is lower-case.
Run the following shell code (with GNU compliant sed):
cmake --help-command-list | grep -v "cmake version" | while read c; do
echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done > convert.sed \
&& git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \
'*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed
(Make sure the backslashes don't get mangled!)
|
|
|
|
|
|
| |
This makes the noc traffic counter register actually reflect the
registers in the FPGA. The FPGA register names were changed prior to
merging to master, and the ready count registers were removed.
|
|
|
|
|
| |
Add options to run benchmark_streamer with multiple streamers running
concurrently on separate threads.
|
|
|
|
|
|
|
|
|
|
| |
Fix USRP2 MIMO synchronization in benchmark_rate.
When synchronizing N2XXs connected with a MIMO cable, only the master's
time needs to be set; the slave will be synchronized automatically.
Currently, calling set_time_unknown_pps will attempt to synchronize the
slave on the next PPS, which can cause problems since the MIMO cable
doesn't propogate a PPS signal.
|
| |
|
|
|
|
| |
This example will allow an RF->RF loopback using RFNoC devices.
|
|
|
|
|
|
|
|
| |
Duration of multichannel benchmark was 50 seconds longer than
intended- a 50ms initialization delay was mistakenly multiplied by
1000.
Fixes e735a63ff9e ("python: Adding Python API benchmark rate")
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The C/C++ standards don't define what time_t is, only that it is
arithmetic (and real for C11, and integral for C++). It should not be
used in portable software and is only used as the return value for some
libc calls.
A common definition for time_t is int64_t, so we'll switch to that
permanently in our own APIs. System APIs will of course stick with
time_t.
|
|
|
|
|
| |
- Unnecessary use of Boost
- Use of thread_priority.hpp
|
| |
|
|
|
|
| |
Python API version of the benchmark rate utility.
|
| |
|
|
|
|
|
|
|
|
|
| |
- Separating exposed Python data structures into logical sections
- Exposes all of the multi_usrp API
- Adds a layer of Python for documentation and adding helper methods
- Adds improvements and fixes to the MultiUSRP object
- Includes additional exposed data structures (like time_spec_t, etc.)
- Add code to release the Python GIL during long C++ calls
|
|
|
|
|
|
|
|
|
|
| |
Initial commit of the Python API using Boost.Python. Bind the
MultiUSRP API for use in Python. Bindings intended to provide as
complete coverage as possible.
- Wrap most multi_usrp calls
- Adding multi channel send/recv examples in examples/python
- Adding setuptools support
- Initial attempt at binding the UHD types and filters
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are cases when the first sample after an overrun has an earlier
timestamp than the timestamp of the error package. In this case,
benchmark_rate would incorrectly determine the number of dropped
samples, causing it to display a very large number.
This is not a fix of the negative offset issue, but will avoid
displaying overly pessimistic numbers dropped samples.
An error message is still displayed when this happens, which aids in
debugging this situation.
|
|
|
|
|
|
| |
The main thread sleeps while the receiver and transmitter threads are
going on. This fixes the calculated time it takes in single-channel
scenarios.
|
|
|
|
|
|
|
|
|
|
|
| |
When too many overruns, underruns, or dropped packets are detected,
benchmark_rate will now return EXIT_FAILURE. This allows to use it for
automated tests.
The thresholds are set very high by default, but can be manually tuned
by using new command line arguments:
$ benchmark_rate --overrun-threshold 0 # Fail on any number of Os
|
|
|
|
| |
Replace with std::this_thread::sleep_for().
|
|
|
|
|
| |
Removes boost::bind and all Boost time types from this example.
Re-enables compatibility with Boost 1.67.
|
| |
|
| |
|
|
|
|
|
| |
The previous 0.1s fill time occasionally prevented rx from starting on time when
settling is set to the same 0.1s time. It was increased to 0.5s.
|
| |
|
|
|
|
|
|
| |
Minor changes:
- Remove some Boost usage
- Minor formatting changes
|
|
|
|
|
|
|
|
| |
- Messages are all timestamped, enables better understanding of the
output log
- Less usage of Boost
- More stats (differentiate between RX and TX timeouts and sequence
errors)
|
|
|
|
|
|
|
| |
uhd::get_system_time() is an abstracted way of reading back a time, and
is not UHD-specific. As such, there's no reason to keep it in the public
part of the API where we're contractually obligated not to touch it.
Instead, moving it to the internal API space.
|
|
|
|
| |
All warnings reported by MSVC. Mostly related to narrowing conversions.
|
|
|
|
|
|
|
| |
All copyright is now attributed to "Ettus Research, a National
Instruments company".
SPDX headers were also updated to latest version 3.0.
|
|
|
|
|
|
|
|
| |
The former compiles to evaluating `a`, then throwing away the result,
evaluating `b`, then using that to fill in the first placeholder in
`format`. And that is wrong.
Pointed to this by Clang++'s "unused result" warning.
|
| |
|
|
|
|
| |
Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
|
| |
|