USRP Hardware Driver and USRP Manual  Version: 3.15.0.HEAD-0-gaea0e2de
UHD and USRP Manual
device.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2010-2011,2014 Ettus Research LLC
3 // Copyright 2018 Ettus Research, a National Instruments Company
4 //
5 // SPDX-License-Identifier: GPL-3.0-or-later
6 //
7 
8 #ifndef INCLUDED_UHD_DEVICE_HPP
9 #define INCLUDED_UHD_DEVICE_HPP
10 
11 #include <uhd/config.hpp>
12 #include <uhd/deprecated.hpp>
13 #include <uhd/property_tree.hpp>
14 #include <uhd/stream.hpp>
17 #include <boost/function.hpp>
18 #include <boost/shared_ptr.hpp>
19 
20 namespace uhd {
21 
22 class property_tree; // forward declaration
23 
29 {
30 public:
31  typedef boost::shared_ptr<device> sptr;
32  typedef boost::function<device_addrs_t(const device_addr_t&)> find_t;
33  typedef boost::function<sptr(const device_addr_t&)> make_t;
34 
36  enum device_filter_t { ANY, USRP, CLOCK };
37  virtual ~device(void) = 0;
38 
46  static void register_device(
47  const find_t& find, const make_t& make, const device_filter_t filter);
48 
59  static device_addrs_t find(const device_addr_t& hint, device_filter_t filter = ANY);
60 
75  static sptr make(
76  const device_addr_t& hint, device_filter_t filter = ANY, size_t which = 0);
77 
83  virtual rx_streamer::sptr get_rx_stream(const stream_args_t& args) = 0;
84 
90  virtual tx_streamer::sptr get_tx_stream(const stream_args_t& args) = 0;
91 
98  virtual bool recv_async_msg(
99  async_metadata_t& async_metadata, double timeout = 0.1) = 0;
100 
102  uhd::property_tree::sptr get_tree(void) const;
103 
105  device_filter_t get_device_type() const;
106 
107 protected:
110 };
111 
112 } // namespace uhd
113 
114 #endif /* INCLUDED_UHD_DEVICE_HPP */
boost::noncopyable noncopyable
Definition: noncopyable.hpp:46
boost::shared_ptr< device > sptr
Definition: device.hpp:31
boost::shared_ptr< property_tree > sptr
Definition: property_tree.hpp:217
boost::shared_ptr< rx_streamer > sptr
Definition: stream.hpp:173
Definition: build_info.hpp:13
boost::function< device_addrs_t(const device_addr_t &)> find_t
Definition: device.hpp:32
device_filter_t
Device type, used as a filter in make.
Definition: device.hpp:36
std::vector< device_addr_t > device_addrs_t
A typedef for a vector of device addresses.
Definition: device_addr.hpp:87
uhd::property_tree::sptr _tree
Definition: device.hpp:108
Definition: stream.hpp:59
#define UHD_API
Definition: config.h:68
boost::function< sptr(const device_addr_t &)> make_t
Definition: device.hpp:33
Definition: metadata.hpp:163
Definition: device.hpp:28
boost::shared_ptr< tx_streamer > sptr
Definition: stream.hpp:251
device_filter_t _type
Definition: device.hpp:109
Definition: device.hpp:36
Definition: device_addr.hpp:38