The custom copy ctor for dirty_tracked was using the = operator, which
wouldn't necessarily copy the dirty flag. By removing it (and thus using
the default copy ctor), the copied dirty_tracked object now has the same
value *and* dirty flag as the original.
Add the following exception types:
- rfnoc_error
- op_failed
- op_seqerr
- op_timeout
- op_timeerr
- access_error
- It is meant to be used when access violations have taken place,
i.e., when a resource is being accessed without appropriate
permissions.
- resolve_error
- This is a derivative of rfnoc_error, and will be used when a
property resolution fails unexpectedly.
- routing_error
- For use when the framework has path setup issues or general
routing-related errors
This removes the following symbols:
- otw_type_t
- clock_config_t
- Any functions that use those symbols
- Non-standard args from examples (e.g., --total-time is deprecated in
favour of --duration)
- Boost >= 1.58
- CMake >= 3.5.1
- gcc >= 5.4.0
- Clang >= 3.8, AppleClang >= 600
- Python >= 3.5 (Py2k no longer supported)
- Numpy >= 1.11
- C++14 for lib, include may now use C++11 constructs.
- Because there is no more code requiring C++03 syntax, we remove the
include-specific clang-format file
Added cmake variable to set the component (currently UHD or MPM).
so the banner printed by the log_resource would reference the correct
component. Added accessor function and appropriate calls in log.cpp.
Signed-off-by: michael-west <michael.west@ettus.com>
This requires noc_shell compat number 6.0. It will allow sending as many
command packets, but no more, than there is space.
Updated FPGA images for devices:
- X310/X300
- N300/N310/N320
- E310/E320
This provides a platform-independent attribute to allow fallthroughs in
switch statements. Example:
switch (foo) {
case BAR:
do_something();
UHD_FALLTHROUGH
case BAZ:
do_another_thing();
}
The usage of UHD_FALLTHROUGH will avoid a compiler warning if indeed the
fallthrough was intentional. The associated warning
(-Wimplicit-fallthrough) is only available on gcc and Clang.
Blocks that change scaling, tick rate, or sampling rate can now notify
the graph to update streamers. Before, this was handled only by
mult_usrp, and only for DDC and DUC blocks.
Clients that include the UHD C headers have access to
the version and ABI #defines, but this is not available
to clients that dynamically load the library. This
commit adds publicly exported functions to provide this
information.
We need to properly contraint the send/recv_frame_size based on the
minimum MTU of all the down/upstream blocks. This fixes the issue with
E310 tx/rx streaming as it has smaller MTU sizes than the other usrps.
- Turns the E310 into an MPM device (like N3xx, E320)
- Factor out common code between E320 and E310, maximize sharing between
the two devices
- Remove all pre-MPM E310 code that is no longer needed
- Modify MPM to remove all existing overlays before applying new ones
(this is necessary to enable idle image mode for E310)
Co-authored-by: Virendra Kakade <virendra.kakade@ni.com>
Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
A node is not a block, it doesn't use any block definition to
populate the number of input and output ports. This is equivalent to it
have undefined number of input and output ports.
The _find_child_node function relies on node input and output port size.
When port size is not defined we should not follow the active channel;
instead, we need to greedily to find all child node.
Without this change graph_search_test will fail.
Signed-off-by: Trung Tran<trung.tran@ettus.com>
The configure_flow_control_out function was set to dump any packets
onto the crossbar, which could cause issues on the crossbar and in
downstream blocks. Replacing wil a call to the _flush() function in
the block_ctrl_base parent class, which drops the packets so they do
not get put onto the crossbar.
Signed-off-by: Michael West <michael.west@ettus.com>
FC ACK packets are unnecessary on lossless links and degrade overall
performance. This change disables those packets on all lossless links.
Signed-off-by: Michael West <michael.west@ettus.com>
This fixes the build errors that occur due to switching locations of
noncopyable.hpp within Boost, and also allows us to remove
boost::noncopyable in one fell swoop.
This is a replacement for boost::noncopyable. It has two
implementations with identical APIs, selectable by a macro. One
"implementation" is a renaming of the Boost version. The other is
simply implemented using C++11 features.
The motivation is that the location for boost::noncopyable has changed
over the range of Boost versions, thus, using boost::noncopyable is
difficult to maintain for a broad range of Boost versions.
Increase frame size from 364 to 508 samples. Reduces overhead. For
some reason yet to be understood, sizes over 508 do not work.
Signed-off-by: michael-west <michael.west@ettus.com>
- Store number of input and ouptput ports from block definition.
- Use number of input and ouptut ports for graph traversal rather
than number of connected blocks.
- Fixes DAC synchronization failure errors when using only one TX
channel on X300.
Signed-off-by: michael-west <michael.west@ettus.com>