USRP Hardware Driver and USRP Manual  Version: 3.11.0.HEAD-0-ga1b5c4ae
UHD and USRP Manual
stream.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2011-2013 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_STREAM_HPP
9 #define INCLUDED_UHD_STREAM_HPP
10 
11 #include <uhd/config.hpp>
12 #include <uhd/types/metadata.hpp>
14 #include <uhd/types/stream_cmd.hpp>
15 #include <uhd/types/ref_vector.hpp>
16 #include <boost/utility.hpp>
17 #include <boost/shared_ptr.hpp>
18 #include <vector>
19 #include <string>
20 
21 namespace uhd{
22 
48 
51  const std::string &cpu = "",
52  const std::string &otw = ""
53  ){
54  cpu_format = cpu;
55  otw_format = otw;
56  }
57 
74  std::string cpu_format;
75 
94  std::string otw_format;
95 
131 
151  std::vector<size_t> channels;
152 };
153 
159 class UHD_API rx_streamer : boost::noncopyable{
160 public:
161  typedef boost::shared_ptr<rx_streamer> sptr;
162 
163  virtual ~rx_streamer(void);
164 
166  virtual size_t get_num_channels(void) const = 0;
167 
169  virtual size_t get_max_num_samps(void) const = 0;
170 
173 
208  virtual size_t recv(
209  const buffs_type &buffs,
210  const size_t nsamps_per_buff,
211  rx_metadata_t &metadata,
212  const double timeout = 0.1,
213  const bool one_packet = false
214  ) = 0;
215 
227  virtual void issue_stream_cmd(const stream_cmd_t &stream_cmd) = 0;
228 };
229 
235 class UHD_API tx_streamer : boost::noncopyable{
236 public:
237  typedef boost::shared_ptr<tx_streamer> sptr;
238 
239  virtual ~tx_streamer(void);
240 
242  virtual size_t get_num_channels(void) const = 0;
243 
245  virtual size_t get_max_num_samps(void) const = 0;
246 
249 
271  virtual size_t send(
272  const buffs_type &buffs,
273  const size_t nsamps_per_buff,
274  const tx_metadata_t &metadata,
275  const double timeout = 0.1
276  ) = 0;
277 
284  virtual bool recv_async_msg(
285  async_metadata_t &async_metadata, double timeout = 0.1
286  ) = 0;
287 };
288 
289 } //namespace uhd
290 
291 #endif /* INCLUDED_UHD_STREAM_HPP */
Definition: stream_cmd.hpp:36
Definition: stream.hpp:159
Definition: stream.hpp:235
std::vector< size_t > channels
Definition: stream.hpp:151
boost::shared_ptr< rx_streamer > sptr
Definition: stream.hpp:161
std::string otw_format
Definition: stream.hpp:94
Definition: metadata.hpp:23
Definition: metadata.hpp:132
Definition: build_info.hpp:14
std::string cpu_format
Definition: stream.hpp:74
Definition: ref_vector.hpp:21
ref_vector< void * > buffs_type
Typedef for a pointer to a single, or a collection of recv buffers.
Definition: stream.hpp:172
stream_args_t(const std::string &cpu="", const std::string &otw="")
Convenience constructor for streamer args.
Definition: stream.hpp:50
device_addr_t args
Definition: stream.hpp:130
ref_vector< const void * > buffs_type
Typedef for a pointer to a single, or a collection of send buffers.
Definition: stream.hpp:248
Definition: stream.hpp:47
#define UHD_API
Definition: config.h:63
Definition: metadata.hpp:159
boost::shared_ptr< tx_streamer > sptr
Definition: stream.hpp:237
Definition: device_addr.hpp:37