USRP Hardware Driver and USRP Manual Version: 3.15.0.0-MacPorts-Release
UHD and USRP Manual
 
Loading...
Searching...
No Matches
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
20namespace uhd {
21
22class property_tree; // forward declaration
23
29{
30public:
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
84
91
98 virtual bool recv_async_msg(
99 async_metadata_t& async_metadata, double timeout = 0.1) = 0;
100
103
106
107protected:
110};
111
112} // namespace uhd
113
114#endif /* INCLUDED_UHD_DEVICE_HPP */
Definition device_addr.hpp:39
Definition device.hpp:29
device_filter_t _type
Definition device.hpp:109
virtual rx_streamer::sptr get_rx_stream(const stream_args_t &args)=0
Make a new receive streamer from the streamer arguments.
boost::function< device_addrs_t(const device_addr_t &)> find_t
Definition device.hpp:32
virtual bool recv_async_msg(async_metadata_t &async_metadata, double timeout=0.1)=0
static device_addrs_t find(const device_addr_t &hint, device_filter_t filter=ANY)
Find devices attached to the host.
uhd::property_tree::sptr get_tree(void) const
Get access to the underlying property structure.
boost::shared_ptr< device > sptr
Definition device.hpp:31
uhd::property_tree::sptr _tree
Definition device.hpp:108
virtual tx_streamer::sptr get_tx_stream(const stream_args_t &args)=0
Make a new transmit streamer from the streamer arguments.
boost::function< sptr(const device_addr_t &)> make_t
Definition device.hpp:33
static sptr make(const device_addr_t &hint, device_filter_t filter=ANY, size_t which=0)
Create a new device from the device address hint.
virtual ~device(void)=0
static void register_device(const find_t &find, const make_t &make, const device_filter_t filter)
device_filter_t
Device type, used as a filter in make.
Definition device.hpp:36
@ ANY
Definition device.hpp:36
device_filter_t get_device_type() const
Get device type.
boost::shared_ptr< property_tree > sptr
Definition property_tree.hpp:217
boost::shared_ptr< rx_streamer > sptr
Definition stream.hpp:173
boost::shared_ptr< tx_streamer > sptr
Definition stream.hpp:251
#define UHD_API
Definition config.h:68
Definition build_info.hpp:13
boost::noncopyable noncopyable
Definition noncopyable.hpp:46
std::vector< device_addr_t > device_addrs_t
A typedef for a vector of device addresses.
Definition device_addr.hpp:87
Definition metadata.hpp:164
Definition stream.hpp:60