USRP Hardware Driver and USRP Manual Version: 4.2.0.0
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#pragma once
9
10#include <uhd/config.hpp>
16#include <boost/utility.hpp>
17#include <memory>
18#include <string>
19#include <vector>
20
21namespace uhd {
22
48{
50 stream_args_t(const std::string& cpu = "", const std::string& otw = "")
51 {
52 cpu_format = cpu;
53 otw_format = otw;
54 }
55
72 std::string cpu_format;
73
92 std::string otw_format;
93
130
158 std::vector<size_t> channels;
159};
160
167{
168public:
169 typedef std::shared_ptr<rx_streamer> sptr;
170
171 virtual ~rx_streamer(void);
172
174 virtual size_t get_num_channels(void) const = 0;
175
177 virtual size_t get_max_num_samps(void) const = 0;
178
181
239 virtual size_t recv(const buffs_type& buffs,
240 const size_t nsamps_per_buff,
241 rx_metadata_t& metadata,
242 const double timeout = 0.1,
243 const bool one_packet = false) = 0;
244
256 virtual void issue_stream_cmd(const stream_cmd_t& stream_cmd) = 0;
257};
258
265{
266public:
267 typedef std::shared_ptr<tx_streamer> sptr;
268
269 virtual ~tx_streamer(void);
270
272 virtual size_t get_num_channels(void) const = 0;
273
275 virtual size_t get_max_num_samps(void) const = 0;
276
279
308 virtual size_t send(const buffs_type& buffs,
309 const size_t nsamps_per_buff,
310 const tx_metadata_t& metadata,
311 const double timeout = 0.1) = 0;
312
319 virtual bool recv_async_msg(
320 async_metadata_t& async_metadata, double timeout = 0.1) = 0;
321};
322
323} // namespace uhd
Definition: device_addr.hpp:38
Definition: ref_vector.hpp:22
Definition: stream.hpp:167
ref_vector< void * > buffs_type
Typedef for a pointer to a single, or a collection of recv buffers.
Definition: stream.hpp:180
std::shared_ptr< rx_streamer > sptr
Definition: stream.hpp:169
virtual ~rx_streamer(void)
virtual void issue_stream_cmd(const stream_cmd_t &stream_cmd)=0
virtual size_t get_num_channels(void) const =0
Get the number of channels associated with this streamer.
virtual size_t get_max_num_samps(void) const =0
Get the max number of samples per buffer per packet.
virtual size_t recv(const buffs_type &buffs, const size_t nsamps_per_buff, rx_metadata_t &metadata, const double timeout=0.1, const bool one_packet=false)=0
Definition: stream.hpp:265
virtual ~tx_streamer(void)
virtual bool recv_async_msg(async_metadata_t &async_metadata, double timeout=0.1)=0
std::shared_ptr< tx_streamer > sptr
Definition: stream.hpp:267
ref_vector< const void * > buffs_type
Typedef for a pointer to a single, or a collection of send buffers.
Definition: stream.hpp:278
virtual size_t get_max_num_samps(void) const =0
Get the max number of samples per buffer per packet.
virtual size_t send(const buffs_type &buffs, const size_t nsamps_per_buff, const tx_metadata_t &metadata, const double timeout=0.1)=0
virtual size_t get_num_channels(void) const =0
Get the number of channels associated with this streamer.
#define UHD_API
Definition: config.h:87
Definition: build_info.hpp:12
boost::noncopyable noncopyable
Definition: noncopyable.hpp:45
Definition: metadata.hpp:203
Definition: metadata.hpp:23
Definition: stream.hpp:48
std::string otw_format
Definition: stream.hpp:92
device_addr_t args
Definition: stream.hpp:129
std::string cpu_format
Definition: stream.hpp:72
stream_args_t(const std::string &cpu="", const std::string &otw="")
Convenience constructor for streamer args.
Definition: stream.hpp:50
std::vector< size_t > channels
Definition: stream.hpp:158
Definition: stream_cmd.hpp:40
Definition: metadata.hpp:163