diff options
author | Josh Blum <josh@joshknows.com> | 2010-01-21 15:30:34 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-01-21 15:30:34 -0800 |
commit | e3483c7451d20b7ed1d8d4865e15751f18cdef78 (patch) | |
tree | f309a95a1b0ecd3dc3295ebc71ee5ad697c9f7a8 /include/usrp_uhd/usrp | |
parent | 5b42b774d9ac1e74fb2916bf58085fe19ecb6720 (diff) | |
download | uhd-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.am | 4 | ||||
-rw-r--r-- | include/usrp_uhd/usrp/mboard/Makefile.am | 5 | ||||
-rw-r--r-- | include/usrp_uhd/usrp/mboard/base.hpp | 32 | ||||
-rw-r--r-- | include/usrp_uhd/usrp/mboard/test.hpp | 29 | ||||
-rw-r--r-- | include/usrp_uhd/usrp/usrp.hpp | 37 |
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 */ |