aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2019-08-23 12:11:19 -0700
committerMartin Braun <martin.braun@ettus.com>2019-11-26 11:49:38 -0800
commitaf5b2b5e778ead57b0fe9e72561227f1ebbbfc42 (patch)
tree546aff3823314a2716e7b08911ca1e2a0bdfcdfc /host/include
parentacc4dab894db1bb6285c3181548af16c1d1091f6 (diff)
downloaduhd-af5b2b5e778ead57b0fe9e72561227f1ebbbfc42.tar.gz
uhd-af5b2b5e778ead57b0fe9e72561227f1ebbbfc42.tar.bz2
uhd-af5b2b5e778ead57b0fe9e72561227f1ebbbfc42.zip
rfnoc: node: Add set_properties()
node_t::set_properties() is a convenience function that lets you set multiple properties at once from a device_addr_t.
Diffstat (limited to 'host/include')
-rw-r--r--host/include/uhd/rfnoc/node.hpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/host/include/uhd/rfnoc/node.hpp b/host/include/uhd/rfnoc/node.hpp
index 59836fbf6..33831a4d7 100644
--- a/host/include/uhd/rfnoc/node.hpp
+++ b/host/include/uhd/rfnoc/node.hpp
@@ -10,9 +10,10 @@
#include <uhd/rfnoc/actions.hpp>
#include <uhd/rfnoc/dirtifier.hpp>
#include <uhd/rfnoc/property.hpp>
+#include <uhd/types/device_addr.hpp>
+#include <uhd/types/time_spec.hpp>
#include <uhd/utils/log.hpp>
#include <uhd/utils/scope_exit.hpp>
-#include <uhd/types/time_spec.hpp>
#include <unordered_map>
#include <unordered_set>
#include <boost/graph/adjacency_list.hpp>
@@ -123,6 +124,19 @@ public:
void set_property(
const std::string& id, const prop_data_t& val, const size_t instance = 0);
+ /*! Set multiple properties coming from a dictionary
+ *
+ * This is equivalent to calling set_property() individually for every
+ * key/value pair of props. However, the type of the property will be
+ * automatically derived using RTTI. Only certain types are supported.
+ *
+ * Property resolution happens after all properties have been updated.
+ *
+ * If a key in \p props is not a valid property of this block, a warning is
+ * logged, but no error is raised.
+ */
+ void set_properties(const uhd::device_addr_t& props, const size_t instance = 0);
+
/*! Get the value of a specific block argument. \p The type of an argument
* must be known at compile time.
*