summaryrefslogtreecommitdiffstats
path: root/include/usrp_uhd/usrp
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-01-21 15:30:34 -0800
committerJosh Blum <josh@joshknows.com>2010-01-21 15:30:34 -0800
commite3483c7451d20b7ed1d8d4865e15751f18cdef78 (patch)
treef309a95a1b0ecd3dc3295ebc71ee5ad697c9f7a8 /include/usrp_uhd/usrp
parent5b42b774d9ac1e74fb2916bf58085fe19ecb6720 (diff)
downloaduhd-e3483c7451d20b7ed1d8d4865e15751f18cdef78.tar.gz
uhd-e3483c7451d20b7ed1d8d4865e15751f18cdef78.tar.bz2
uhd-e3483c7451d20b7ed1d8d4865e15751f18cdef78.zip
Added a usrp device abstration that creates usrp mboards.
Added a usrp mboard named test, its empty for now.
Diffstat (limited to 'include/usrp_uhd/usrp')
-rw-r--r--include/usrp_uhd/usrp/Makefile.am4
-rw-r--r--include/usrp_uhd/usrp/mboard/Makefile.am5
-rw-r--r--include/usrp_uhd/usrp/mboard/base.hpp32
-rw-r--r--include/usrp_uhd/usrp/mboard/test.hpp29
-rw-r--r--include/usrp_uhd/usrp/usrp.hpp37
5 files changed, 107 insertions, 0 deletions
diff --git a/include/usrp_uhd/usrp/Makefile.am b/include/usrp_uhd/usrp/Makefile.am
index 913f80a6d..d15eb6ddc 100644
--- a/include/usrp_uhd/usrp/Makefile.am
+++ b/include/usrp_uhd/usrp/Makefile.am
@@ -5,3 +5,7 @@
include $(top_srcdir)/Makefile.common
SUBDIRS = mboard dboard
+
+this_includedir = $(includedir)/usrp_uhd/usrp
+this_include_HEADERS = \
+ usrp.hpp
diff --git a/include/usrp_uhd/usrp/mboard/Makefile.am b/include/usrp_uhd/usrp/mboard/Makefile.am
index 66fc4dd71..3197353ce 100644
--- a/include/usrp_uhd/usrp/mboard/Makefile.am
+++ b/include/usrp_uhd/usrp/mboard/Makefile.am
@@ -5,3 +5,8 @@
include $(top_srcdir)/Makefile.common
SUBDIRS =
+
+this_includedir = $(includedir)/usrp_uhd/usrp/mboard
+this_include_HEADERS = \
+ base.hpp \
+ test.hpp
diff --git a/include/usrp_uhd/usrp/mboard/base.hpp b/include/usrp_uhd/usrp/mboard/base.hpp
new file mode 100644
index 000000000..ef455151b
--- /dev/null
+++ b/include/usrp_uhd/usrp/mboard/base.hpp
@@ -0,0 +1,32 @@
+//
+// Copyright 2010 Ettus Research LLC
+//
+
+#ifndef INCLUDED_USRP_UHD_USRP_MBOARD_BASE_HPP
+#define INCLUDED_USRP_UHD_USRP_MBOARD_BASE_HPP
+
+#include <usrp_uhd/wax.hpp>
+#include <boost/utility.hpp>
+#include <boost/shared_ptr.hpp>
+
+namespace usrp_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::type &, wax::type &) = 0;
+ virtual void set(const wax::type &, const wax::type &) = 0;
+};
+
+}}} //namespace
+
+#endif /* INCLUDED_USRP_UHD_USRP_MBOARD_BASE_HPP */
diff --git a/include/usrp_uhd/usrp/mboard/test.hpp b/include/usrp_uhd/usrp/mboard/test.hpp
new file mode 100644
index 000000000..f3c2899cf
--- /dev/null
+++ b/include/usrp_uhd/usrp/mboard/test.hpp
@@ -0,0 +1,29 @@
+//
+// Copyright 2010 Ettus Research LLC
+//
+
+#ifndef INCLUDED_USRP_UHD_USRP_MBOARD_TEST_HPP
+#define INCLUDED_USRP_UHD_USRP_MBOARD_TEST_HPP
+
+#include <usrp_uhd/usrp/mboard/base.hpp>
+#include <usrp_uhd/device_addr.hpp>
+
+namespace usrp_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::type &, wax::type &);
+ void set(const wax::type &, const wax::type &);
+};
+
+}}} //namespace
+
+#endif /* INCLUDED_USRP_UHD_USRP_MBOARD_TEST_HPP */
diff --git a/include/usrp_uhd/usrp/usrp.hpp b/include/usrp_uhd/usrp/usrp.hpp
new file mode 100644
index 000000000..b280b0d40
--- /dev/null
+++ b/include/usrp_uhd/usrp/usrp.hpp
@@ -0,0 +1,37 @@
+//
+// Copyright 2010 Ettus Research LLC
+//
+
+#include <usrp_uhd/device.hpp>
+#include <usrp_uhd/usrp/mboard/base.hpp>
+#include <vector>
+
+#ifndef INCLUDED_USRP_UHD_USRP_USRP_HPP
+#define INCLUDED_USRP_UHD_USRP_USRP_HPP
+
+namespace usrp_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);
+
+ void send_raw(const send_args_t &);
+ void recv_raw(const recv_args_t &);
+
+private:
+ void get(const wax::type &, wax::type &);
+ void set(const wax::type &, const wax::type &);
+
+ std::vector<mboard::base::sptr> _mboards;
+};
+
+}} //namespace
+
+#endif /* INCLUDED_USRP_UHD_USRP_USRP_HPP */