aboutsummaryrefslogtreecommitdiffstats
path: root/host/include/uhd/usrp
diff options
context:
space:
mode:
Diffstat (limited to 'host/include/uhd/usrp')
-rw-r--r--host/include/uhd/usrp/CMakeLists.txt1
-rw-r--r--host/include/uhd/usrp/dboard_base.hpp14
-rw-r--r--host/include/uhd/usrp/dboard_id.hpp21
-rw-r--r--host/include/uhd/usrp/dboard_interface.hpp15
-rw-r--r--host/include/uhd/usrp/dboard_manager.hpp9
-rw-r--r--host/include/uhd/usrp/usrp1e.hpp55
-rw-r--r--host/include/uhd/usrp/usrp2.hpp19
7 files changed, 104 insertions, 30 deletions
diff --git a/host/include/uhd/usrp/CMakeLists.txt b/host/include/uhd/usrp/CMakeLists.txt
index e7bdc1784..4e0a92365 100644
--- a/host/include/uhd/usrp/CMakeLists.txt
+++ b/host/include/uhd/usrp/CMakeLists.txt
@@ -21,6 +21,7 @@ INSTALL(FILES
dboard_id.hpp
dboard_interface.hpp
dboard_manager.hpp
+ usrp1e.hpp
usrp2.hpp
DESTINATION ${HEADER_DIR}/uhd/usrp
)
diff --git a/host/include/uhd/usrp/dboard_base.hpp b/host/include/uhd/usrp/dboard_base.hpp
index b5c0d40ed..907a7814a 100644
--- a/host/include/uhd/usrp/dboard_base.hpp
+++ b/host/include/uhd/usrp/dboard_base.hpp
@@ -18,6 +18,7 @@
#ifndef INCLUDED_UHD_USRP_DBOARD_BASE_HPP
#define INCLUDED_UHD_USRP_DBOARD_BASE_HPP
+#include <uhd/config.hpp>
#include <uhd/wax.hpp>
#include <boost/utility.hpp>
#include <boost/shared_ptr.hpp>
@@ -31,7 +32,7 @@ namespace uhd{ namespace usrp{
* A daughter board dboard_base class for all dboards.
* Only other dboard dboard_base classes should inherit this.
*/
-class dboard_base : boost::noncopyable{
+class UHD_API dboard_base : boost::noncopyable{
public:
typedef boost::shared_ptr<dboard_base> sptr;
//the constructor args consist of a subdev name and an interface
@@ -56,21 +57,22 @@ protected:
dboard_id_t get_tx_id(void);
private:
- std::string _subdev_name;
+ std::string _subdev_name;
dboard_interface::sptr _dboard_interface;
- dboard_id_t _rx_id, _tx_id;
+ dboard_id_t _rx_id, _tx_id;
};
/*!
* A xcvr daughter board implements rx and tx methods
* Sub classes for xcvr boards should inherit this.
*/
-class xcvr_dboard_base : public dboard_base{
+class UHD_API xcvr_dboard_base : public dboard_base{
public:
/*!
* Create a new xcvr dboard object, override in subclasses.
*/
xcvr_dboard_base(ctor_args_t const&);
+
virtual ~xcvr_dboard_base(void);
};
@@ -78,7 +80,7 @@ public:
* A rx daughter board only implements rx methods.
* Sub classes for rx-only boards should inherit this.
*/
-class rx_dboard_base : public dboard_base{
+class UHD_API rx_dboard_base : public dboard_base{
public:
/*!
* Create a new rx dboard object, override in subclasses.
@@ -96,7 +98,7 @@ public:
* A tx daughter board only implements tx methods.
* Sub classes for rx-only boards should inherit this.
*/
-class tx_dboard_base : public dboard_base{
+class UHD_API tx_dboard_base : public dboard_base{
public:
/*!
* Create a new rx dboard object, override in subclasses.
diff --git a/host/include/uhd/usrp/dboard_id.hpp b/host/include/uhd/usrp/dboard_id.hpp
index 8e904ff33..4b2392bee 100644
--- a/host/include/uhd/usrp/dboard_id.hpp
+++ b/host/include/uhd/usrp/dboard_id.hpp
@@ -15,22 +15,23 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
-#include <string>
-
#ifndef INCLUDED_UHD_USRP_DBOARD_ID_HPP
#define INCLUDED_UHD_USRP_DBOARD_ID_HPP
+#include <uhd/config.hpp>
+#include <boost/cstdint.hpp>
+#include <string>
+
namespace uhd{ namespace usrp{
-enum dboard_id_t{
- ID_NONE = 0xffff,
- ID_BASIC_TX = 0x0000,
- ID_BASIC_RX = 0x0001
-};
+typedef boost::uint16_t dboard_id_t;
+
+static const dboard_id_t ID_NONE = 0xffff; //TODO: REMOVE ME
-struct dboard_id{
- static std::string to_string(const dboard_id_t &id);
-};
+namespace dboard_id{
+ static const dboard_id_t NONE = 0xffff;
+ UHD_API std::string to_string(const dboard_id_t &id);
+}
}} //namespace
diff --git a/host/include/uhd/usrp/dboard_interface.hpp b/host/include/uhd/usrp/dboard_interface.hpp
index 84e1f5b22..5b40616f0 100644
--- a/host/include/uhd/usrp/dboard_interface.hpp
+++ b/host/include/uhd/usrp/dboard_interface.hpp
@@ -18,9 +18,10 @@
#ifndef INCLUDED_UHD_USRP_DBOARD_INTERFACE_HPP
#define INCLUDED_UHD_USRP_DBOARD_INTERFACE_HPP
+#include <uhd/config.hpp>
#include <boost/shared_ptr.hpp>
+#include <boost/cstdint.hpp>
#include <vector>
-#include <stdint.h>
namespace uhd{ namespace usrp{
@@ -30,10 +31,10 @@ namespace uhd{ namespace usrp{
* This dboard_interface provides i2c, spi, gpio, atr, aux dac/adc access.
* Each mboard should have a specially tailored dboard dboard_interface.
*/
-class dboard_interface{
+class UHD_API dboard_interface{
public:
typedef boost::shared_ptr<dboard_interface> sptr;
- typedef std::vector<uint8_t> byte_vector_t;
+ typedef std::vector<boost::uint8_t> byte_vector_t;
//tells the host which unit to use
enum unit_type_t{
@@ -96,7 +97,7 @@ public:
* \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;
+ virtual void set_atr_reg(gpio_bank_t bank, boost::uint16_t tx_value, boost::uint16_t rx_value, boost::uint16_t mask) = 0;
/*!
* Set daughterboard GPIO data direction register.
@@ -105,7 +106,7 @@ public:
* \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;
+ virtual void set_gpio_ddr(gpio_bank_t bank, boost::uint16_t value, boost::uint16_t mask) = 0;
/*!
* Set daughterboard GPIO pin values.
@@ -114,7 +115,7 @@ public:
* \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;
+ virtual void write_gpio(gpio_bank_t bank, boost::uint16_t value, boost::uint16_t mask) = 0;
/*!
* Read daughterboard GPIO pin values
@@ -122,7 +123,7 @@ public:
* \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;
+ virtual boost::uint16_t read_gpio(gpio_bank_t bank) = 0;
/*!
* \brief Write to I2C peripheral
diff --git a/host/include/uhd/usrp/dboard_manager.hpp b/host/include/uhd/usrp/dboard_manager.hpp
index 042947ac4..6a105d1de 100644
--- a/host/include/uhd/usrp/dboard_manager.hpp
+++ b/host/include/uhd/usrp/dboard_manager.hpp
@@ -18,6 +18,7 @@
#ifndef INCLUDED_UHD_USRP_DBOARD_MANAGER_HPP
#define INCLUDED_UHD_USRP_DBOARD_MANAGER_HPP
+#include <uhd/config.hpp>
#include <uhd/props.hpp>
#include <uhd/usrp/dboard_base.hpp>
#include <uhd/usrp/dboard_id.hpp>
@@ -31,7 +32,7 @@ namespace uhd{ namespace usrp{
* Create subdev instances for each subdev on a dboard.
* Provide wax::obj access to the subdevs inside.
*/
-class dboard_manager : boost::noncopyable{
+class UHD_API dboard_manager : boost::noncopyable{
public:
typedef boost::shared_ptr<dboard_manager> sptr;
@@ -40,15 +41,17 @@ public:
typedef dboard_base::sptr(*dboard_ctor_t)(dboard_base::ctor_args_t const&);
/*!
- * Register subdevices for a given dboard id.
+ * Register a dboard into the system.
*
* \param dboard_id the dboard id (rx or tx)
* \param dboard_ctor the dboard constructor function pointer
+ * \param name the canonical name for the dboard represented
* \param subdev_names the names of the subdevs on this dboard
*/
- static void register_subdevs(
+ static void register_dboard(
dboard_id_t dboard_id,
dboard_ctor_t dboard_ctor,
+ const std::string &name,
const prop_names_t &subdev_names
);
diff --git a/host/include/uhd/usrp/usrp1e.hpp b/host/include/uhd/usrp/usrp1e.hpp
new file mode 100644
index 000000000..f4cc39d8e
--- /dev/null
+++ b/host/include/uhd/usrp/usrp1e.hpp
@@ -0,0 +1,55 @@
+//
+// 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_USRP1E_HPP
+#define INCLUDED_UHD_USRP_USRP1E_HPP
+
+#include <uhd/config.hpp>
+#include <uhd/device.hpp>
+
+namespace uhd{ namespace usrp{
+
+/*!
+ * The usrp1e device class.
+ */
+class UHD_API usrp1e : public device{
+public:
+ /*!
+ * Discover usrp1e devices on the system via the device node.
+ * This static method will be called by the device::discover.
+ * \param hint a device addr with the usrp1e address filled in
+ * \return a vector of device addresses for all usrp1es found
+ */
+ static device_addrs_t discover(const device_addr_t &hint);
+
+ /*!
+ * Make a usrp1e from a device address.
+ * \param addr the device address
+ * \return a device sptr to a new usrp1e
+ */
+ static device::sptr make(const device_addr_t &addr);
+
+ /*!
+ * Load the FPGA with an image file.
+ * \param bin_file the name of the fpga image file
+ */
+ static void load_fpga(const std::string &bin_file);
+};
+
+}} //namespace
+
+#endif /* INCLUDED_UHD_USRP_USRP1E_HPP */
diff --git a/host/include/uhd/usrp/usrp2.hpp b/host/include/uhd/usrp/usrp2.hpp
index f6e49cbd6..277ddc131 100644
--- a/host/include/uhd/usrp/usrp2.hpp
+++ b/host/include/uhd/usrp/usrp2.hpp
@@ -15,9 +15,10 @@
// 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
+#ifndef INCLUDED_UHD_USRP_USRP2_HPP
+#define INCLUDED_UHD_USRP_USRP2_HPP
+#include <uhd/config.hpp>
#include <uhd/device.hpp>
namespace uhd{ namespace usrp{
@@ -25,10 +26,15 @@ namespace uhd{ namespace usrp{
/*!
* The usrp2 device class.
*/
-class usrp2 : public device{
+class UHD_API usrp2 : public device{
public:
/*!
* Discover usrp2 devices over the ethernet.
+ *
+ * Recommended key/value pairs for the device hint address:
+ * hint["addr"] = address, where address is a resolvable address
+ * or ip address, which may or may not be a broadcast address.
+ *
* 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
@@ -37,6 +43,11 @@ public:
/*!
* Make a usrp2 from a device address.
+ *
+ * Required key/value pairs for the device address:
+ * hint["addr"] = address, where address is a resolvable address
+ * or ip address, which must be the specific address of a usrp2.
+ *
* \param addr the device address
* \return a device sptr to a new usrp2
*/
@@ -45,4 +56,4 @@ public:
}} //namespace
-#endif /* INCLUDED_UHD_USRP_MBOARD_USRP2_HPP */
+#endif /* INCLUDED_UHD_USRP_USRP2_HPP */