diff options
author | Josh Blum <josh@joshknows.com> | 2010-01-12 14:43:43 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-01-12 14:43:43 -0800 |
commit | cbb8e474bb5592753a340ba31d3afbab7226f7c6 (patch) | |
tree | 6dd14d37d8d46f3a506a309f57d82ed1ed05f781 /usrp_uhd/include | |
parent | 4e94574aeaa46c671bba0a6fc83cb967d228c880 (diff) | |
download | uhd-cbb8e474bb5592753a340ba31d3afbab7226f7c6.tar.gz uhd-cbb8e474bb5592753a340ba31d3afbab7226f7c6.tar.bz2 uhd-cbb8e474bb5592753a340ba31d3afbab7226f7c6.zip |
Reorganized structure into include, lib, test, firmware, fpga.
The fpga and firmware are empty placeholders for now.
Diffstat (limited to 'usrp_uhd/include')
-rw-r--r-- | usrp_uhd/include/.gitignore | 2 | ||||
-rw-r--r-- | usrp_uhd/include/Makefile.am | 16 | ||||
-rw-r--r-- | usrp_uhd/include/usrp_uhd.hpp | 43 | ||||
-rw-r--r-- | usrp_uhd/include/usrp_uhd/usrp_addr.hpp | 90 | ||||
-rw-r--r-- | usrp_uhd/include/usrp_uhd/wax.hpp | 129 |
5 files changed, 0 insertions, 280 deletions
diff --git a/usrp_uhd/include/.gitignore b/usrp_uhd/include/.gitignore deleted file mode 100644 index b336cc7ce..000000000 --- a/usrp_uhd/include/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/Makefile -/Makefile.in diff --git a/usrp_uhd/include/Makefile.am b/usrp_uhd/include/Makefile.am deleted file mode 100644 index 1ec431648..000000000 --- a/usrp_uhd/include/Makefile.am +++ /dev/null @@ -1,16 +0,0 @@ -# -# Copyright 2010 Ettus Research LLC -# - -include $(top_srcdir)/Makefile.common - -SUBDIRS = - -this_includedir = $(includedir) -this_include_HEADERS = \ - usrp_uhd.hpp - -usrp_uhd_includedir = $(includedir)/usrp_uhd -usrp_uhd_include_HEADERS = \ - usrp_uhd/usrp_addr.hpp \ - usrp_uhd/wax.hpp diff --git a/usrp_uhd/include/usrp_uhd.hpp b/usrp_uhd/include/usrp_uhd.hpp deleted file mode 100644 index 6bf97a5a4..000000000 --- a/usrp_uhd/include/usrp_uhd.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// Copyright 2010 Ettus Research LLC -// - -#ifndef INCLUDED_USRP_UHD_HPP -#define INCLUDED_USRP_UHD_HPP - -#include <usrp_uhd/usrp_addr.hpp> -#include <usrp_uhd/wax.hpp> -#include <boost/shared_ptr.hpp> -#include <boost/function.hpp> -#include <vector> -#include <sys/uio.h> - -namespace usrp{ - - class uhd{ - - public: - typedef boost::shared_ptr<uhd> sptr; - typedef boost::function<bool(void *data, size_t len)> recv_hdlr_t; - uhd(usrp_addr_t usrp_addr); - ~uhd(void); - - //the io interface - void send(const std::vector<iovec> &iovs); - void send(void* data, size_t len); //wrapper - void recv(const recv_hdlr_t &recv_hdlr); - void recv(void* &data, size_t &len); //wrapper - - //connect dsps and subdevs - void connect(const wax::type &src, const wax::type &sink); - - //the properties interface - wax::proxy props(void); - - private: - wax::type d_mboard; - }; - -} //namespace usrp - -#endif /* INCLUDED_USRP_UHD_HPP */ diff --git a/usrp_uhd/include/usrp_uhd/usrp_addr.hpp b/usrp_uhd/include/usrp_uhd/usrp_addr.hpp deleted file mode 100644 index e8c282288..000000000 --- a/usrp_uhd/include/usrp_uhd/usrp_addr.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// Copyright 2010 Ettus Research LLC -// - -#ifndef INCLUDED_USRP_ADDR_HPP -#define INCLUDED_USRP_ADDR_HPP - -#include <string> -#include <iostream> -#include <netinet/ether.h> -#include <arpa/inet.h> - -namespace usrp{ - - /*! - * Wrapper for an ethernet mac address. - * Provides conversion between string and binary formats. - */ - struct mac_addr_t{ - struct ether_addr d_mac_addr; - mac_addr_t(const std::string &str = "00:00:00:00:00:00"); - std::string to_string(void) const; - }; - - /*! - * Wrapper for an ipv4 address. - * Provides conversion between string and binary formats. - */ - struct ip_addr_t{ - struct in_addr d_ip_addr; - ip_addr_t(const std::string &str = "0.0.0.0"); - std::string to_string(void) const; - }; - - /*! - * Possible usrp mboard interface types. - */ - enum usrp_addr_type_t{ - USRP_ADDR_TYPE_AUTO, - USRP_ADDR_TYPE_VIRTUAL, - USRP_ADDR_TYPE_USB, - USRP_ADDR_TYPE_ETH, - USRP_ADDR_TYPE_UDP, - USRP_ADDR_TYPE_GPMC - }; - - /*! - * Structure to hold properties that identify a usrp mboard. - */ - struct usrp_addr_t{ - usrp_addr_type_t type; - struct{ - size_t num_rx_dsps; - size_t num_tx_dsps; - size_t num_dboards; - } virtual_args; - struct{ - uint16_t vendor_id; - uint16_t product_id; - } usb_args; - struct{ - std::string ifc; - mac_addr_t mac_addr; - } eth_args; - struct{ - ip_addr_t ip_addr; - } udp_args; - struct{ - //TODO unknown for now - } gpmc_args; - - /*! - * \brief Convert a usrp usrp_addr_t into a string representation - */ - std::string to_string(void) const; - - /*! - * \brief Default constructor to initialize the usrp_addr_t struct - */ - usrp_addr_t(usrp_addr_type_t usrp_addr_type = USRP_ADDR_TYPE_AUTO); - }; - -} //namespace usrp - -//ability to use types with stream operators -std::ostream& operator<<(std::ostream &os, const usrp::usrp_addr_t &x); -std::ostream& operator<<(std::ostream &os, const usrp::mac_addr_t &x); -std::ostream& operator<<(std::ostream &os, const usrp::ip_addr_t &x); - -#endif /* INCLUDED_USRP_ADDR_HPP */ diff --git a/usrp_uhd/include/usrp_uhd/wax.hpp b/usrp_uhd/include/usrp_uhd/wax.hpp deleted file mode 100644 index 9d32314f7..000000000 --- a/usrp_uhd/include/usrp_uhd/wax.hpp +++ /dev/null @@ -1,129 +0,0 @@ -// -// Copyright 2010 Ettus Research LLC -// - -#ifndef INCLUDED_WAX_HPP -#define INCLUDED_WAX_HPP - -#include <boost/any.hpp> -#include <boost/function.hpp> -#include <boost/shared_ptr.hpp> -#include <boost/weak_ptr.hpp> -#include <boost/pointer_cast.hpp> -#include <iostream> - -/*! - * WAX - it's a metaphor! - * - * The WAX framework allows object to have generic/anytype properties. - * These properties can be addressed through generic/anytype identifiers. - * A property of a WAX object may even be another WAX object. - * - * When a property is a WAX object, the returned value must be an obj pointer. - * A WAX object provides two types of pointers: obj::ptr and obj::sptr. - * The choice of pointer vs smart pointer depends on the owner of the memory. - * - * Proprties may be referenced though the [] overloaded operator. - * The [] operator returns a special proxy that allows for assigment. - * Also, the [] operators may be chained as in the folowing examples: - * my_obj[prop1][prop2][prop3] = value - * value = my_obj[prop1][prop2][prop3] - * - * Any value returned from an access operation is of wax::type. - * To use this value, it must be cast with wax::cast<new_type>(value). - */ - -namespace wax{ - - //general typedefs - typedef boost::any type; - typedef boost::bad_any_cast bad_cast; - - //dummy class declarations - class obj; class proxy; - - /*! - * WAX object base class: - * A wax object subclass should override the set and get methods. - * The magic of operator chaining is handled by the [] operator. - */ - class obj{ - public: - //obj pointer typedefs - typedef boost::shared_ptr<obj> sptr; - typedef obj* ptr; - - //cast derived pointer to obj base class pointer - template <class T> static sptr cast(boost::shared_ptr<T> r){ - return boost::static_pointer_cast<obj>(r); - } - template <class T> static ptr cast(T *r){ - return dynamic_cast<ptr>(r); - } - - //structors - obj(void); - virtual ~obj(void); - - //public interface - proxy operator[](const type &key); - - private: - //private interface - virtual void get(const type &key, type &val) = 0; - virtual void set(const type &key, const type &val) = 0; - }; - - /*! - * WAX proxy class: - * Allows the obj [] operator to return a proxy result. - * This result can be assigned to via the = operator. - * Or this result can be called again with the [] operator. - */ - class proxy{ - public: - //destructors - ~proxy(void); - - //overloaded - type operator()(void); - proxy operator[](const type &key); - proxy operator=(const type &key); - - private: - //typedefs for callables from the object that built this proxy - typedef boost::function<void(const type &)> setter_t; - typedef boost::function<void(type &)> getter_t; - - //private contructor - proxy(getter_t, setter_t); - //access to private contructor - friend proxy obj::operator[](const type &key); - - getter_t d_getter; - setter_t d_setter; - }; - - /*! - * Cast a wax::type into the desired type - * Usage wax::cast<new_type>(my_value). - * - * \param val the any type to cast - * \return data of the desired type - * \throw wax::bad_cast when the cast fails - */ - template<typename T> T cast(const type & val){ - //special case to handle the proxy - if (val.type() == typeid(proxy)){ - return cast<T>(boost::any_cast<proxy>(val)()); - } - //do the type cast - return boost::any_cast<T>(val); - } - -} //namespace wax - -//ability to use types with stream operators -std::ostream& operator<<(std::ostream &os, const wax::type &x); - -#endif /* INCLUDED_WAX_HPP */ |