USRP Hardware Driver and USRP Manual  Version: 003.009.004-0-g2b5a88bb
UHD and USRP Manual
stream.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2011-2013 Ettus Research LLC
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 //
17 
18 #ifndef INCLUDED_UHD_STREAM_HPP
19 #define INCLUDED_UHD_STREAM_HPP
20 
21 #include <uhd/config.hpp>
22 #include <uhd/types/metadata.hpp>
24 #include <uhd/types/stream_cmd.hpp>
25 #include <uhd/types/ref_vector.hpp>
26 #include <boost/utility.hpp>
27 #include <boost/shared_ptr.hpp>
28 #include <vector>
29 #include <string>
30 
31 namespace uhd{
32 
58 
61  const std::string &cpu = "",
62  const std::string &otw = ""
63  ){
64  cpu_format = cpu;
65  otw_format = otw;
66  }
67 
84  std::string cpu_format;
85 
104  std::string otw_format;
105 
154 
174  std::vector<size_t> channels;
175 };
176 
182 class UHD_API rx_streamer : boost::noncopyable{
183 public:
184  typedef boost::shared_ptr<rx_streamer> sptr;
185 
186  virtual ~rx_streamer(void);
187 
189  virtual size_t get_num_channels(void) const = 0;
190 
192  virtual size_t get_max_num_samps(void) const = 0;
193 
196 
227  virtual size_t recv(
228  const buffs_type &buffs,
229  const size_t nsamps_per_buff,
230  rx_metadata_t &metadata,
231  const double timeout = 0.1,
232  const bool one_packet = false
233  ) = 0;
234 
246  virtual void issue_stream_cmd(const stream_cmd_t &stream_cmd) = 0;
247 };
248 
254 class UHD_API tx_streamer : boost::noncopyable{
255 public:
256  typedef boost::shared_ptr<tx_streamer> sptr;
257 
258  virtual ~tx_streamer(void);
259 
261  virtual size_t get_num_channels(void) const = 0;
262 
264  virtual size_t get_max_num_samps(void) const = 0;
265 
268 
290  virtual size_t send(
291  const buffs_type &buffs,
292  const size_t nsamps_per_buff,
293  const tx_metadata_t &metadata,
294  const double timeout = 0.1
295  ) = 0;
296 
303  virtual bool recv_async_msg(
304  async_metadata_t &async_metadata, double timeout = 0.1
305  ) = 0;
306 };
307 
308 } //namespace uhd
309 
310 #endif /* INCLUDED_UHD_STREAM_HPP */
Definition: stream_cmd.hpp:46
Definition: stream.hpp:182
Definition: stream.hpp:254
std::vector< size_t > channels
Definition: stream.hpp:174
boost::shared_ptr< rx_streamer > sptr
Definition: stream.hpp:184
std::string otw_format
Definition: stream.hpp:104
Definition: metadata.hpp:33
Definition: metadata.hpp:142
Definition: convert.hpp:28
std::string cpu_format
Definition: stream.hpp:84
Definition: ref_vector.hpp:31
ref_vector< void * > buffs_type
Typedef for a pointer to a single, or a collection of recv buffers.
Definition: stream.hpp:195
stream_args_t(const std::string &cpu="", const std::string &otw="")
Convenience constructor for streamer args.
Definition: stream.hpp:60
size_t send(const send_buffs_type &buffs, size_t nsamps_per_buff, const tx_metadata_t &metadata, const io_type_t &io_type, send_mode_t send_mode, double timeout=0.1)
Definition: device_deprecated.ipp:74
device_addr_t args
Definition: stream.hpp:153
ref_vector< const void * > buffs_type
Typedef for a pointer to a single, or a collection of send buffers.
Definition: stream.hpp:267
Definition: stream.hpp:57
#define UHD_API
Definition: config.h:66
Definition: metadata.hpp:169
boost::shared_ptr< tx_streamer > sptr
Definition: stream.hpp:256
size_t recv(const recv_buffs_type &buffs, size_t nsamps_per_buff, rx_metadata_t &metadata, const io_type_t &io_type, recv_mode_t recv_mode, double timeout=0.1)
Definition: device_deprecated.ipp:130
virtual bool recv_async_msg(async_metadata_t &async_metadata, double timeout=0.1)=0
Definition: device_addr.hpp:47