summaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-07-30 10:11:49 -0700
committerJosh Blum <josh@joshknows.com>2011-11-07 11:20:04 -0800
commitd9035414a27f484b89816e6e99c7f14d1769dee0 (patch)
tree2b6993265ae21e939b22734293dd519d0ed6a879 /host/include
parentf3afd2eb94a65b4e6494c269ff67cd283dcad1de (diff)
downloaduhd-d9035414a27f484b89816e6e99c7f14d1769dee0.tar.gz
uhd-d9035414a27f484b89816e6e99c7f14d1769dee0.tar.bz2
uhd-d9035414a27f484b89816e6e99c7f14d1769dee0.zip
usrp: work on dboard code to use subtrees to populate frontend props
Diffstat (limited to 'host/include')
-rw-r--r--host/include/uhd/usrp/dboard_base.hpp62
-rw-r--r--host/include/uhd/usrp/dboard_manager.hpp24
2 files changed, 12 insertions, 74 deletions
diff --git a/host/include/uhd/usrp/dboard_base.hpp b/host/include/uhd/usrp/dboard_base.hpp
index 7e9557a95..31b3643c7 100644
--- a/host/include/uhd/usrp/dboard_base.hpp
+++ b/host/include/uhd/usrp/dboard_base.hpp
@@ -19,7 +19,7 @@
#define INCLUDED_UHD_USRP_DBOARD_BASE_HPP
#include <uhd/config.hpp>
-#include <uhd/wax.hpp>
+#include <uhd/property_tree.hpp>
#include <uhd/utils/pimpl.hpp>
#include <boost/utility.hpp>
#include <boost/shared_ptr.hpp>
@@ -28,43 +28,6 @@
namespace uhd{ namespace usrp{
- /*!
- * Possible subdev connection types:
- *
- * A complex subdevice is physically connected to both channels,
- * which may be connected in one of two ways: IQ or QI (swapped).
- *
- * A real subdevice is only physically connected one channel,
- * either only the I channel or only the Q channel.
- */
- enum subdev_conn_t{
- SUBDEV_CONN_COMPLEX_IQ = 'C',
- SUBDEV_CONN_COMPLEX_QI = 'c',
- SUBDEV_CONN_REAL_I = 'R',
- SUBDEV_CONN_REAL_Q = 'r'
- };
-
- /*!
- * Possible device subdev properties
- */
- enum subdev_prop_t{
- SUBDEV_PROP_NAME, //ro, std::string
- SUBDEV_PROP_OTHERS, //ro, prop_names_t
- SUBDEV_PROP_SENSOR, //ro, sensor_value_t
- SUBDEV_PROP_SENSOR_NAMES, //ro, prop_names_t
- SUBDEV_PROP_GAIN, //rw, double
- SUBDEV_PROP_GAIN_RANGE, //ro, gain_range_t
- SUBDEV_PROP_GAIN_NAMES, //ro, prop_names_t
- SUBDEV_PROP_FREQ, //rw, double
- SUBDEV_PROP_FREQ_RANGE, //ro, freq_range_t
- SUBDEV_PROP_ANTENNA, //rw, std::string
- SUBDEV_PROP_ANTENNA_NAMES, //ro, prop_names_t
- SUBDEV_PROP_CONNECTION, //ro, subdev_conn_t
- SUBDEV_PROP_ENABLED, //rw, bool
- SUBDEV_PROP_USE_LO_OFFSET, //ro, bool
- SUBDEV_PROP_BANDWIDTH //rw, double
- };
-
/*!
* A daughter board dboard_base class for all dboards.
* Only other dboard dboard_base classes should inherit this.
@@ -81,19 +44,14 @@ public:
//structors
dboard_base(ctor_args_t);
- virtual ~dboard_base(void);
-
- //interface
- virtual void rx_get(const wax::obj &key, wax::obj &val) = 0;
- virtual void rx_set(const wax::obj &key, const wax::obj &val) = 0;
- virtual void tx_get(const wax::obj &key, wax::obj &val) = 0;
- virtual void tx_set(const wax::obj &key, const wax::obj &val) = 0;
protected:
std::string get_subdev_name(void);
dboard_iface::sptr get_iface(void);
dboard_id_t get_rx_id(void);
dboard_id_t get_tx_id(void);
+ property_tree::sptr get_rx_subtree(void);
+ property_tree::sptr get_tx_subtree(void);
private:
UHD_PIMPL_DECL(impl) _impl;
@@ -109,8 +67,6 @@ public:
* Create a new xcvr dboard object, override in subclasses.
*/
xcvr_dboard_base(ctor_args_t);
-
- virtual ~xcvr_dboard_base(void);
};
/*!
@@ -123,12 +79,6 @@ public:
* Create a new rx dboard object, override in subclasses.
*/
rx_dboard_base(ctor_args_t);
-
- virtual ~rx_dboard_base(void);
-
- //override here so the derived classes cannot
- void tx_get(const wax::obj &key, wax::obj &val);
- void tx_set(const wax::obj &key, const wax::obj &val);
};
/*!
@@ -141,12 +91,6 @@ public:
* Create a new rx dboard object, override in subclasses.
*/
tx_dboard_base(ctor_args_t);
-
- virtual ~tx_dboard_base(void);
-
- //override here so the derived classes cannot
- void rx_get(const wax::obj &key, wax::obj &val);
- void rx_set(const wax::obj &key, const wax::obj &val);
};
}} //namespace
diff --git a/host/include/uhd/usrp/dboard_manager.hpp b/host/include/uhd/usrp/dboard_manager.hpp
index 091769a5c..d3a3ffb5c 100644
--- a/host/include/uhd/usrp/dboard_manager.hpp
+++ b/host/include/uhd/usrp/dboard_manager.hpp
@@ -20,11 +20,12 @@
#include <uhd/config.hpp>
#include <uhd/property_tree.hpp>
-#include <uhd/utils/props.hpp>
#include <uhd/usrp/dboard_base.hpp>
#include <uhd/usrp/dboard_id.hpp>
#include <boost/utility.hpp>
#include <boost/shared_ptr.hpp>
+#include <string>
+#include <vector>
namespace uhd{ namespace usrp{
@@ -37,11 +38,6 @@ class UHD_API dboard_manager : boost::noncopyable{
public:
typedef boost::shared_ptr<dboard_manager> sptr;
- //! It does what it says...
- static void populate_prop_tree_from_subdev(
- property_tree::sptr subtree, wax::obj subdev
- );
-
//dboard constructor (each dboard should have a ::make with this signature)
typedef dboard_base::sptr(*dboard_ctor_t)(dboard_base::ctor_args_t);
@@ -57,7 +53,7 @@ public:
const dboard_id_t &dboard_id,
dboard_ctor_t dboard_ctor,
const std::string &name,
- const prop_names_t &subdev_names = prop_names_t(1, "0")
+ const std::vector<std::string> &subdev_names = std::vector<std::string>(1, "0")
);
/*!
@@ -74,27 +70,25 @@ public:
const dboard_id_t &tx_dboard_id,
dboard_ctor_t dboard_ctor,
const std::string &name,
- const prop_names_t &subdev_names = prop_names_t(1, "0")
+ const std::vector<std::string> &subdev_names = std::vector<std::string>(1, "0")
);
/*!
* Make a new dboard manager.
* \param rx_dboard_id the id of the rx dboard
* \param tx_dboard_id the id of the tx dboard
+ * \param gdboard_id the id of the grand-dboard
* \param iface the custom dboard interface
+ * \param subtree the subtree to load with props
* \return an sptr to the new dboard manager
*/
static sptr make(
dboard_id_t rx_dboard_id,
dboard_id_t tx_dboard_id,
- dboard_iface::sptr iface
+ dboard_id_t gdboard_id,
+ dboard_iface::sptr iface,
+ property_tree::sptr subtree
);
-
- //dboard manager interface
- virtual prop_names_t get_rx_subdev_names(void) = 0;
- virtual prop_names_t get_tx_subdev_names(void) = 0;
- virtual wax::obj get_rx_subdev(const std::string &subdev_name) = 0;
- virtual wax::obj get_tx_subdev(const std::string &subdev_name) = 0;
};
}} //namespace