- Use FPGA images with fixed sc12 converter.
- Properly flush channels and restart streaming in the case of an overrun.
Signed-off-by: michael-west <michael.west@ettus.com>
This serves two purposes:
- This file no longer goes into the compiled DLL if B200 is disabled
- Discourage use of this file for new devices, making it clear that this
architecture is no longer used
The file itself is left untouched, only the class is renamed from
radio_ctrl_core_3000 to b200_radio_ctrl_core.
Note: In UHD 3, this file was also used by N230.
The checks from the new clang-tidy file were then applied to the source
tree using:
$ find . -name "*.cpp" | sort -u | xargs \
--max-procs 8 --max-args 1 clang-tidy --format-style=file \
--fix -p /path/to/compile_commands.json
Note: Replacing everything with a lambda would be even better, but that
can't be easily scripted so we'll do this as a first step to reduce the
Boost footprint.
This also removes occurences of #include <boost/bind.hpp>, and makes
sure all usages of std::bind have an #include <functional>. clang-format
wasn't always applied to minimize the changeset in this commit, however,
it was applied to the blocks of #includes.
Due to conflicts with other Boost libraries, the placeholders _1, _2,
etc. could not be directly used, but had to be explicitly called out
(as std::placeholders::_1, etc.). This makes the use of std::bind even
uglier, which serves as another reminder that using std::bind (and even
more so, boost::bind) should be avoided.
nirio/rpc/rpc_client.cpp still contains a reference to boost::bind. It
was not possible to remove it by simply doing a search and replace, so
it will be removed in a separate commit.
This removes the following Boost constructs:
- boost::shared_ptr, boost::weak_ptr
- boost::enable_shared_from_this
- boost::static_pointer_cast, boost::dynamic_pointer_cast
The appropriate includes were also removed. All C++11 versions of these
require #include <memory>.
Note that the stdlib and Boost versions have the exact same syntax, they
only differ in the namespace (boost vs. std). The modifications were all
done using sed, with the exception of boost::scoped_ptr, which was
replaced by std::unique_ptr.
References to boost::smart_ptr were also removed.
boost::intrusive_ptr is not removed in this commit, since it does not
have a 1:1 mapping to a C++11 construct.
Boost changed the lcm() and gcd() functions in Boost 1.67. This creates
portable UHD versions to be used instead. They use various Boost
versions under the hood conditionally.
To avoid the proliferation of additional include directories and
multiple ways of including project-local headers, we now default to
moving all headers that are used across UHD into the uhdlib/
subdirectory.
Some #include statements were also reordered as they were modified for
closer compliance with the coding guidelines.
Internal cpp source files should now include files like this:
#include <uhdlib/rfnoc/ctrl_iface.hpp>
Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
- Also removes all references to boost/cstdint.hpp and replaces it with
stdint.h (The 'correct' replacement would be <cstdint>, but not all of our
compilers support that).
DSP rates are now being tracked as in whether or not they've been set.
We can disregard unset DSPs for the automatic clock rate calculation.
Reviewed-By: Derek Kozel <derek.kozel@ettus.com>
- tx_vita_core_3000 can now monitor for flow-control immediately
before the radio or immediately before the radio external FIFO
- B200 does not have an external FIFO so it will use the default config
- Created AD936x manager class
- Moved functionality from B2x0 and E310 into manager
- Separated property tree + perifs initialization in both device classes
This will set the actual default rate to an integer factor
of whatever the tick rate is, but leave the property tree
value at zero. This avoids warnings if the chosen tick rate
is not a multiple of the previous default rate, but also
returns a zero value for the rate when it has not been
initialized, allowing the user to probe if the value has not
yet been set.
When returning an invalid payload in handle_async_task, Boost 1.58
does not allow NULL to be returned; instead, to be more compatible,
use the correct type initialized to (0, []).
When returning an invalid payload in handle_async_task, Boost 1.58
does not allow NULL to be returned; instead, to be more compatible,
use the correct type initialized to (0, []).
When no master_clock_rate is defined, the B200 driver will now
select a suitable clock rate automatically based on the selected
sampling rate.
The selected tick rate is a multiple of the LCM of tx and rx rates.
Auto-setting is done every time a streamer is generated or the sampling
rate is configured.