diff options
Diffstat (limited to 'host/include/uhd/usrp')
-rw-r--r-- | host/include/uhd/usrp/CMakeLists.txt | 25 | ||||
-rw-r--r-- | host/include/uhd/usrp/dboard/CMakeLists.txt | 25 | ||||
-rw-r--r-- | host/include/uhd/usrp/dboard/base.hpp | 111 | ||||
-rw-r--r-- | host/include/uhd/usrp/dboard/id.hpp | 35 | ||||
-rw-r--r-- | host/include/uhd/usrp/dboard/interface.hpp | 167 | ||||
-rw-r--r-- | host/include/uhd/usrp/dboard/manager.hpp | 82 | ||||
-rw-r--r-- | host/include/uhd/usrp/mboard/CMakeLists.txt | 24 | ||||
-rw-r--r-- | host/include/uhd/usrp/mboard/base.hpp | 45 | ||||
-rw-r--r-- | host/include/uhd/usrp/mboard/test.hpp | 46 | ||||
-rw-r--r-- | host/include/uhd/usrp/mboard/usrp2.hpp | 51 | ||||
-rw-r--r-- | host/include/uhd/usrp/usrp.hpp | 53 |
11 files changed, 664 insertions, 0 deletions
diff --git a/host/include/uhd/usrp/CMakeLists.txt b/host/include/uhd/usrp/CMakeLists.txt new file mode 100644 index 000000000..d3040c3cc --- /dev/null +++ b/host/include/uhd/usrp/CMakeLists.txt @@ -0,0 +1,25 @@ +# +# Copyright 2010 Ettus Research LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + + +ADD_SUBDIRECTORY(dboard) +ADD_SUBDIRECTORY(mboard) + +INSTALL(FILES + usrp.hpp + DESTINATION ${HEADER_DIR}/uhd/usrp +) diff --git a/host/include/uhd/usrp/dboard/CMakeLists.txt b/host/include/uhd/usrp/dboard/CMakeLists.txt new file mode 100644 index 000000000..e1ecc3b70 --- /dev/null +++ b/host/include/uhd/usrp/dboard/CMakeLists.txt @@ -0,0 +1,25 @@ +# +# Copyright 2010 Ettus Research LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + + +INSTALL(FILES + base.hpp + id.hpp + interface.hpp + manager.hpp + DESTINATION ${HEADER_DIR}/uhd/usrp/dboard +) diff --git a/host/include/uhd/usrp/dboard/base.hpp b/host/include/uhd/usrp/dboard/base.hpp new file mode 100644 index 000000000..845e2f669 --- /dev/null +++ b/host/include/uhd/usrp/dboard/base.hpp @@ -0,0 +1,111 @@ +// +// Copyright 2010 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +#ifndef INCLUDED_UHD_USRP_DBOARD_BASE_HPP +#define INCLUDED_UHD_USRP_DBOARD_BASE_HPP + +#include <uhd/wax.hpp> +#include <boost/utility.hpp> +#include <boost/shared_ptr.hpp> +#include <boost/tuple/tuple.hpp> +#include <uhd/usrp/dboard/interface.hpp> + +namespace uhd{ namespace usrp{ namespace dboard{ + +/*! + * A daughter board base class for all dboards. + * Only other dboard base classes should inherit this. + */ +class base : boost::noncopyable{ +public: + typedef boost::shared_ptr<base> sptr; + //the constructor args consist of a subdev name and an interface + //derived classes should pass the args into the base class ctor + //but should not have to deal with the internals of the args + typedef boost::tuple<std::string, interface::sptr> ctor_args_t; + + //structors + base(ctor_args_t const&); + virtual ~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); + interface::sptr get_interface(void); + +private: + std::string _subdev_name; + interface::sptr _dboard_interface; +}; + +/*! + * A xcvr daughter board implements rx and tx methods + * Sub classes for xcvr boards should inherit this. + */ +class xcvr_base : public base{ +public: + /*! + * Create a new xcvr dboard object, override in subclasses. + */ + xcvr_base(ctor_args_t const&); + virtual ~xcvr_base(void); +}; + +/*! + * A rx daughter board only implements rx methods. + * Sub classes for rx-only boards should inherit this. + */ +class rx_base : public base{ +public: + /*! + * Create a new rx dboard object, override in subclasses. + */ + rx_base(ctor_args_t const&); + + virtual ~rx_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); +}; + +/*! + * A tx daughter board only implements tx methods. + * Sub classes for rx-only boards should inherit this. + */ +class tx_base : public base{ +public: + /*! + * Create a new rx dboard object, override in subclasses. + */ + tx_base(ctor_args_t const&); + + virtual ~tx_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 + +#endif /* INCLUDED_UHD_USRP_DBOARD_BASE_HPP */ diff --git a/host/include/uhd/usrp/dboard/id.hpp b/host/include/uhd/usrp/dboard/id.hpp new file mode 100644 index 000000000..98c0acc3a --- /dev/null +++ b/host/include/uhd/usrp/dboard/id.hpp @@ -0,0 +1,35 @@ +// +// Copyright 2010 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +#include <iostream> + +#ifndef INCLUDED_UHD_USRP_DBOARD_ID_HPP +#define INCLUDED_UHD_USRP_DBOARD_ID_HPP + +namespace uhd{ namespace usrp{ namespace dboard{ + +enum dboard_id_t{ + ID_NONE = 0xffff, + ID_BASIC_TX = 0x0000, + ID_BASIC_RX = 0x0001 +}; + +}}} //namespace + +std::ostream& operator<<(std::ostream &, const uhd::usrp::dboard::dboard_id_t &); + +#endif /* INCLUDED_UHD_USRP_DBOARD_ID_HPP */ diff --git a/host/include/uhd/usrp/dboard/interface.hpp b/host/include/uhd/usrp/dboard/interface.hpp new file mode 100644 index 000000000..68669b99d --- /dev/null +++ b/host/include/uhd/usrp/dboard/interface.hpp @@ -0,0 +1,167 @@ +// +// Copyright 2010 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +#ifndef INCLUDED_UHD_USRP_DBOARD_INTERFACE_HPP +#define INCLUDED_UHD_USRP_DBOARD_INTERFACE_HPP + +#include <boost/shared_ptr.hpp> +#include <stdint.h> + +namespace uhd{ namespace usrp{ namespace dboard{ + +/*! + * The daughter board interface to be subclassed. + * A dboard instance interfaces with the mboard though this api. + * This interface provides i2c, spi, gpio, atr, aux dac/adc access. + * Each mboard should have a specially tailored dboard interface. + */ +class interface{ +public: + typedef boost::shared_ptr<interface> sptr; + + //tells the host which device to use + enum spi_dev_t{ + SPI_TX_DEV, + SPI_RX_DEV + }; + + //args for writing spi data + enum spi_push_t{ + SPI_PUSH_RISE, + SPI_PUSH_FALL + }; + + //args for reading spi data + enum spi_latch_t{ + SPI_LATCH_RISE, + SPI_LATCH_FALL + }; + + //tell the host which gpio bank + enum gpio_bank_t{ + GPIO_TX_BANK, + GPIO_RX_BANK + }; + + //structors + interface(void); + virtual ~interface(void); + + /*! + * Write to an aux dac. + * \param which_dac the dac index 0, 1, 2, 3... + * \param value the value to write + */ + virtual void write_aux_dac(int which_dac, int value) = 0; + + /*! + * Read from an aux adc. + * \param which_adc the adc index 0, 1, 2, 3... + * \return the value that was read + */ + virtual int read_aux_adc(int which_adc) = 0; + + /*! + * Set daughterboard ATR register. + * The ATR register for a particular bank has 2 values: + * one value when transmitting, one when receiving. + * The mask controls which pins are controlled by ATR. + * + * \param bank GPIO_TX_BANK or GPIO_RX_BANK + * \param tx_value 16-bits, 0=FPGA output low, 1=FPGA output high + * \param rx_value 16-bits, 0=FPGA output low, 1=FPGA output high + * \param mask 16-bits, 0=software, 1=atr + */ + virtual void set_atr_reg(gpio_bank_t bank, uint16_t tx_value, uint16_t rx_value, uint16_t mask) = 0; + + /*! + * Set daughterboard GPIO data direction register. + * + * \param bank GPIO_TX_BANK or GPIO_RX_BANK + * \param value 16-bits, 0=FPGA input, 1=FPGA output + * \param mask 16-bits, 0=ignore, 1=set + */ + virtual void set_gpio_ddr(gpio_bank_t bank, uint16_t value, uint16_t mask) = 0; + + /*! + * Set daughterboard GPIO pin values. + * + * \param bank GPIO_TX_BANK or GPIO_RX_BANK + * \param value 16 bits, 0=low, 1=high + * \param mask 16 bits, 0=ignore, 1=set + */ + virtual void write_gpio(gpio_bank_t bank, uint16_t value, uint16_t mask) = 0; + + /*! + * Read daughterboard GPIO pin values + * + * \param bank GPIO_TX_BANK or GPIO_RX_BANK + * \return the value of the gpio bank + */ + virtual uint16_t read_gpio(gpio_bank_t bank) = 0; + + /*! + * \brief Write to I2C peripheral + * \param i2c_addr I2C bus address (7-bits) + * \param buf the data to write + */ + virtual void write_i2c(int i2c_addr, const std::string &buf) = 0; + + /*! + * \brief Read from I2C peripheral + * \param i2c_addr I2C bus address (7-bits) + * \param len number of bytes to read + * \return the data read if successful, else a zero length string. + */ + virtual std::string read_i2c(int i2c_addr, size_t len) = 0; + + /*! + * \brief Write data to SPI bus peripheral. + * + * \param dev which spi device + * \param push args for writing + * \param buf the data to write + */ + virtual void write_spi(spi_dev_t dev, spi_push_t push, const std::string &buf) = 0; + + /*! + * \brief Read data from SPI bus peripheral. + * + * \param dev which spi device + * \param push args for reading + * \param len number of bytes to read + * \return the data read if sucessful, else a zero length string. + */ + virtual std::string read_spi(spi_dev_t dev, spi_latch_t latch, size_t len) = 0; + + /*! + * \brief Get the rate of the rx dboard clock. + * \return the clock rate + */ + virtual double get_rx_clock_rate(void) = 0; + + /*! + * \brief Get the rate of the tx dboard clock. + * \return the clock rate + */ + virtual double get_tx_clock_rate(void) = 0; + +}; + +}}} //namespace + +#endif /* INCLUDED_UHD_USRP_DBOARD_INTERFACE_HPP */ diff --git a/host/include/uhd/usrp/dboard/manager.hpp b/host/include/uhd/usrp/dboard/manager.hpp new file mode 100644 index 000000000..e53ba8e52 --- /dev/null +++ b/host/include/uhd/usrp/dboard/manager.hpp @@ -0,0 +1,82 @@ +// +// Copyright 2010 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +#ifndef INCLUDED_UHD_USRP_DBOARD_MANAGER_HPP +#define INCLUDED_UHD_USRP_DBOARD_MANAGER_HPP + +#include <uhd/dict.hpp> +#include <uhd/wax.hpp> +#include <uhd/props.hpp> +#include <boost/utility.hpp> +#include <boost/shared_ptr.hpp> +#include <uhd/usrp/dboard/base.hpp> +#include <uhd/usrp/dboard/id.hpp> + +namespace uhd{ namespace usrp{ namespace dboard{ + +/*! + * A daughter board subdev manager class. + * Create subdev instances for each subdev on a dboard. + * Provide wax::obj access to the subdevs inside. + */ +class manager : boost::noncopyable{ + +public: + + //dboard constructor (each dboard should have a ::make with this signature) + typedef base::sptr(*dboard_ctor_t)(base::ctor_args_t const&); + + /*! + * Register subdevices for a given dboard id. + * + * \param dboard_id the dboard id (rx or tx) + * \param dboard_ctor the dboard constructor function pointer + * \param subdev_names the names of the subdevs on this dboard + */ + static void register_subdevs( + dboard_id_t dboard_id, + dboard_ctor_t dboard_ctor, + const prop_names_t &subdev_names + ); + +public: + typedef boost::shared_ptr<manager> sptr; + //structors + manager( + dboard_id_t rx_dboard_id, + dboard_id_t tx_dboard_id, + interface::sptr dboard_interface + ); + ~manager(void); + + //interface + prop_names_t get_rx_subdev_names(void); + prop_names_t get_tx_subdev_names(void); + wax::obj get_rx_subdev(const std::string &subdev_name); + wax::obj get_tx_subdev(const std::string &subdev_name); + +private: + //list of rx and tx dboards in this manager + //each dboard here is actually a subdevice proxy + //the subdevice proxy is internal to the cpp file + uhd::dict<std::string, wax::obj> _rx_dboards; + uhd::dict<std::string, wax::obj> _tx_dboards; +}; + +}}} //namespace + +#endif /* INCLUDED_UHD_USRP_DBOARD_MANAGER_HPP */ diff --git a/host/include/uhd/usrp/mboard/CMakeLists.txt b/host/include/uhd/usrp/mboard/CMakeLists.txt new file mode 100644 index 000000000..79aab8677 --- /dev/null +++ b/host/include/uhd/usrp/mboard/CMakeLists.txt @@ -0,0 +1,24 @@ +# +# Copyright 2010 Ettus Research LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + + +INSTALL(FILES + base.hpp + test.hpp + usrp2.hpp + DESTINATION ${HEADER_DIR}/uhd/usrp/mboard +) diff --git a/host/include/uhd/usrp/mboard/base.hpp b/host/include/uhd/usrp/mboard/base.hpp new file mode 100644 index 000000000..a8de81a7e --- /dev/null +++ b/host/include/uhd/usrp/mboard/base.hpp @@ -0,0 +1,45 @@ +// +// Copyright 2010 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +#ifndef INCLUDED_UHD_USRP_MBOARD_BASE_HPP +#define INCLUDED_UHD_USRP_MBOARD_BASE_HPP + +#include <uhd/wax.hpp> +#include <boost/utility.hpp> +#include <boost/shared_ptr.hpp> + +namespace uhd{ namespace usrp{ namespace mboard{ + +/*! + * A base class for usrp mboard objects. + */ +class base : boost::noncopyable, public wax::obj{ +public: + typedef boost::shared_ptr<base> sptr; + base(void); + ~base(void); + + //TODO other api calls + +private: + virtual void get(const wax::obj &, wax::obj &) = 0; + virtual void set(const wax::obj &, const wax::obj &) = 0; +}; + +}}} //namespace + +#endif /* INCLUDED_UHD_USRP_MBOARD_BASE_HPP */ diff --git a/host/include/uhd/usrp/mboard/test.hpp b/host/include/uhd/usrp/mboard/test.hpp new file mode 100644 index 000000000..04d0ff4c4 --- /dev/null +++ b/host/include/uhd/usrp/mboard/test.hpp @@ -0,0 +1,46 @@ +// +// Copyright 2010 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +#ifndef INCLUDED_UHD_USRP_MBOARD_TEST_HPP +#define INCLUDED_UHD_USRP_MBOARD_TEST_HPP + +#include <uhd/usrp/mboard/base.hpp> +#include <uhd/device_addr.hpp> +#include <uhd/usrp/dboard/manager.hpp> +#include <uhd/dict.hpp> + +namespace uhd{ namespace usrp{ namespace mboard{ + +/*! + * A test usrp mboard object. + * Exercises access routines for the test suite. + */ +class test : public base{ +public: + test(const device_addr_t &); + ~test(void); + +private: + void get(const wax::obj &, wax::obj &); + void set(const wax::obj &, const wax::obj &); + + uhd::dict<std::string, dboard::manager::sptr> _dboard_managers; +}; + +}}} //namespace + +#endif /* INCLUDED_UHD_USRP_MBOARD_TEST_HPP */ diff --git a/host/include/uhd/usrp/mboard/usrp2.hpp b/host/include/uhd/usrp/mboard/usrp2.hpp new file mode 100644 index 000000000..5da9f874d --- /dev/null +++ b/host/include/uhd/usrp/mboard/usrp2.hpp @@ -0,0 +1,51 @@ +// +// Copyright 2010 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +#ifndef INCLUDED_UHD_USRP_MBOARD_USRP2_HPP +#define INCLUDED_UHD_USRP_MBOARD_USRP2_HPP + +#include <uhd/usrp/mboard/base.hpp> +#include <uhd/device_addr.hpp> + +namespace uhd{ namespace usrp{ namespace mboard{ + +/*! + * The usrp2 mboard class. + */ +class usrp2 : public base{ +public: + /*! + * Discover usrp2 devices over the ethernet. + * This static method will be called by the device::discover. + * \param hint a device addr with the usrp2 address filled in + * \return a vector of device addresses for all usrp2s found + */ + static device_addrs_t discover(const device_addr_t &hint); + + usrp2(const device_addr_t &); + ~usrp2(void); + +private: + void get(const wax::obj &, wax::obj &); + void set(const wax::obj &, const wax::obj &); + + wax::obj _impl; +}; + +}}} //namespace + +#endif /* INCLUDED_UHD_USRP_MBOARD_USRP2_HPP */ diff --git a/host/include/uhd/usrp/usrp.hpp b/host/include/uhd/usrp/usrp.hpp new file mode 100644 index 000000000..98c357b77 --- /dev/null +++ b/host/include/uhd/usrp/usrp.hpp @@ -0,0 +1,53 @@ +// +// Copyright 2010 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +#include <uhd/device.hpp> +#include <uhd/usrp/mboard/base.hpp> +#include <uhd/dict.hpp> + +#ifndef INCLUDED_UHD_USRP_USRP_HPP +#define INCLUDED_UHD_USRP_USRP_HPP + +namespace uhd{ namespace usrp{ + +/*! + * A usrp device provides a device-level interface to usrp mboards. + * In most cases, a usrp device will have only one mboard. + * In the usrp2 mimo case, this device will have two mboards, + * where one talks through the other's control port. + */ +class usrp : public device{ +public: + usrp(const device_addr_t &device_addr); + ~usrp(void); + + //the io interface + void send_raw(const std::vector<boost::asio::const_buffer> &); + uhd::shared_iovec recv_raw(void); + +private: + void get(const wax::obj &, wax::obj &); + void set(const wax::obj &, const wax::obj &); + + uhd::dict<std::string, mboard::base::sptr> _mboards; + boost::function<void(const std::vector<boost::asio::const_buffer> &)> _send_raw_cb; + boost::function<uhd::shared_iovec(void)> _recv_raw_cb; +}; + +}} //namespace + +#endif /* INCLUDED_UHD_USRP_USRP_HPP */ |