Loading...
Searching...
No Matches
gr::uhd::usrp_source Class Referenceabstract
GNU Radio C++ Signal Processing Blocks » UHD Interface

`#include <gnuradio/uhd/usrp_source.h>`

## Public Types

typedef std::shared_ptr< usrp_source > | sptr
Public Types inherited from gr::block
enum | work_return_t { WORK_CALLED_PRODUCE = -2 , WORK_DONE = -1 }
| Magic return values from general_work. More...
enum | tag_propagation_policy_t { TPP_DONT = 0 , TPP_ALL_TO_ALL = 1 , TPP_ONE_TO_ONE = 2 , TPP_CUSTOM = 3 }
| enum to represent different tag propagation policies. More...

## Public Member Functions

virtual void | set_start_time (const ::uhd::time_spec_t &time)=0
virtual void | issue_stream_cmd (const ::uhd::stream_cmd_t &cmd)=0
virtual void | set_recv_timeout (const double timeout, const bool one_packet=true)=0
virtual std::vector< std::string > | get_lo_names (size_t chan=0)=0
virtual void | set_lo_source (const std::string &src, const std::string &name, size_t chan=0)=0
virtual const std::string | get_lo_source (const std::string &name, size_t chan=0)=0
virtual std::vector< std::string > | get_lo_sources (const std::string &name, size_t chan=0)=0
virtual void | set_lo_export_enabled (bool enabled, const std::string &name, size_t chan=0)=0
virtual bool | get_lo_export_enabled (const std::string &name, size_t chan=0)=0
virtual double | set_lo_freq (double freq, const std::string &name, size_t chan=0)=0
virtual double | get_lo_freq (const std::string &name, size_t chan=0)=0
virtual::uhd::freq_range_t | get_lo_freq_range (const std::string &name, size_t chan=0)=0
virtual void | set_auto_dc_offset (const bool enb, size_t chan=0)=0
virtual void | set_dc_offset (const std::complex< double > &offset, size_t chan=0)=0
virtual void | set_auto_iq_balance (const bool enb, size_t chan=0)=0
virtual void | set_iq_balance (const std::complex< double > &correction, size_t chan=0)=0
virtual void | set_rx_agc (const bool enable, size_t chan=0)=0
virtual std::vector< std::complex< float > > | finite_acquisition (const size_t nsamps)=0
virtual std::vector< std::vector< std::complex< float > > > | finite_acquisition_v (const size_t nsamps)=0
Public Member Functions inherited from gr::uhd::usrp_block
virtual void | set_subdev_spec (const std::string &spec, size_t mboard=0)=0
virtual std::string | get_subdev_spec (size_t mboard=0)=0
virtual size_t | get_num_mboards ()=0
virtual void | set_samp_rate (double rate)=0
virtual double | get_samp_rate (void)=0
virtual::uhd::meta_range_t | get_samp_rates (void)=0
virtual::uhd::tune_result_t | set_center_freq (const ::uhd::tune_request_t tune_request, size_t chan=0)=0
::uhd::tune_result_t | set_center_freq (double freq, size_t chan=0)
virtual double | get_center_freq (size_t chan=0)=0
virtual::uhd::freq_range_t | get_freq_range (size_t chan=0)=0
virtual void | set_gain (double gain, size_t chan=0, pmt::pmt_t direction=pmt::PMT_NIL)=0
virtual void | set_gain (double gain, const std::string &name, size_t chan=0)=0
virtual void | set_normalized_gain (double norm_gain, size_t chan=0)=0
virtual double | get_gain (size_t chan=0)=0
virtual double | get_gain (const std::string &name, size_t chan=0)=0
virtual double | get_normalized_gain (size_t chan=0)=0
virtual std::vector< std::string > | get_gain_names (size_t chan=0)=0
virtual::uhd::gain_range_t | get_gain_range (size_t chan=0)=0
virtual::uhd::gain_range_t | get_gain_range (const std::string &name, size_t chan=0)=0
virtual bool | has_power_reference (size_t chan=0)=0
virtual void | set_power_reference (double power_dbm, size_t chan=0)=0
virtual double | get_power_reference (size_t chan=0)=0
virtual::uhd::meta_range_t | get_power_range (size_t chan=0)=0
virtual void | set_antenna (const std::string &ant, size_t chan=0)=0
virtual std::string | get_antenna (size_t chan=0)=0
virtual std::vector< std::string > | get_antennas (size_t chan=0)=0
virtual void | set_bandwidth (double bandwidth, size_t chan=0)=0
virtual double | get_bandwidth (size_t chan=0)=0
virtual::uhd::freq_range_t | get_bandwidth_range (size_t chan=0)=0
virtual::uhd::sensor_value_t | get_sensor (const std::string &name, size_t chan=0)=0
virtual std::vector< std::string > | get_sensor_names (size_t chan=0)=0
::uhd::sensor_value_t | get_dboard_sensor (const std::string &name, size_t chan=0)
| DEPRECATED use get_sensor.
std::vector< std::string > | get_dboard_sensor_names (size_t chan=0)
| DEPRECATED use get_sensor_names.
virtual::uhd::sensor_value_t | get_mboard_sensor (const std::string &name, size_t mboard=0)=0
virtual std::vector< std::string > | get_mboard_sensor_names (size_t mboard=0)=0
virtual std::string | get_time_source (const size_t mboard)=0
virtual std::vector< std::string > | get_time_sources (const size_t mboard)=0
virtual void | set_clock_source (const std::string &source, const size_t mboard=0)=0
virtual std::string | get_clock_source (const size_t mboard)=0
virtual std::vector< std::string > | get_clock_sources (const size_t mboard)=0
virtual double | get_clock_rate (size_t mboard=0)=0
virtual void | set_clock_rate (double rate, size_t mboard=0)=0
virtual::uhd::time_spec_t | get_time_now (size_t mboard=0)=0
virtual::uhd::time_spec_t | get_time_last_pps (size_t mboard=0)=0
virtual void | set_time_now (const ::uhd::time_spec_t &time_spec, size_t mboard=0)=0
virtual void | set_time_next_pps (const ::uhd::time_spec_t &time_spec)=0
virtual void | set_time_unknown_pps (const ::uhd::time_spec_t &time_spec)=0
virtual void | set_command_time (const ::uhd::time_spec_t &time_spec, size_t mboard=0)=0
virtual void | clear_command_time (size_t mboard=0)=0
virtual::uhd::usrp::dboard_iface::sptr | get_dboard_iface (size_t chan=0)=0
virtual::uhd::usrp::multi_usrp::sptr | get_device (void)=0
virtual void | set_user_register (const uint8_t addr, const uint32_t data, size_t mboard=0)=0
virtual void | set_time_source (const std::string &source, const size_t mboard=0)=0
virtual void | set_stream_args (const ::uhd::stream_args_t &stream_args)=0
virtual std::vector< std::string > | get_gpio_banks (const size_t mboard)=0
virtual void | set_gpio_attr (const std::string &bank, const std::string &attr, const uint32_t value, const uint32_t mask=0xffffffff, const size_t mboard=0)=0
virtual uint32_t | get_gpio_attr (const std::string &bank, const std::string &attr, const size_t mboard=0)=0
virtual std::vector< std::string > | get_filter_names (const size_t chan=0)=0
virtual void | set_filter (const std::string &path, ::uhd::filter_info_base::sptr filter, const size_t chan=0)=0
virtual::uhd::filter_info_base::sptr | get_filter (const std::string &path, const size_t chan=0)=0
virtual ::uhd::dict< std::string, std::string > | get_usrp_info (size_t chan=0)=0
Public Member Functions inherited from gr::sync_block
virtual int | work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)=0
| just like gr::block::general_work, only this arranges to call consume_each for you
void | forecast (int noutput_items, gr_vector_int &ninput_items_required) override
| Estimate input requirements given output request.
int | general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override
| compute output items from input items
int | fixed_rate_ninput_to_noutput (int ninput) override
| Given ninput samples, return number of output samples that will be produced. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this.
int | fixed_rate_noutput_to_ninput (int noutput) override
| Given noutput samples, return number of input samples required to produce noutput. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this.
Public Member Functions inherited from gr::block
| ~block () override
unsigned | history () const
void | set_history (unsigned history)
void | declare_sample_delay (int which, unsigned delay)
void | declare_sample_delay (unsigned delay)
unsigned | sample_delay (int which) const
bool | fixed_rate () const
| Return true if this block has a fixed input to output rate.
virtual bool | start ()
| Called to enable drivers, etc for i/o devices.
virtual bool | stop ()
| Called to disable drivers, etc for i/o devices.
void | set_output_multiple (int multiple)
| Constrain the noutput_items argument passed to forecast and general_work.
int | output_multiple () const
bool | output_multiple_set () const
void | set_alignment (int multiple)
| Constrains buffers to work on a set item alignment (for SIMD).
int | alignment () const
void | set_unaligned (int na)
int | unaligned () const
void | set_is_unaligned (bool u)
bool | is_unaligned () const
void | consume (int which_input, int how_many_items)
| Tell the scheduler `how_many_items` of input stream `which_input` were consumed.
void | consume_each (int how_many_items)
| Tell the scheduler `how_many_items` were consumed on each input stream.
void | produce (int which_output, int how_many_items)
| Tell the scheduler `how_many_items` were produced on output stream `which_output`.
void | set_relative_rate (double relative_rate)
| Set the approximate output rate / input rate.
void | set_inverse_relative_rate (double inverse_relative_rate)
| Set the approximate output rate / input rate using its reciprocal.
void | set_relative_rate (uint64_t interpolation, uint64_t decimation)
| Set the approximate output rate / input rate as an integer ratio.
double | relative_rate () const
| return the approximate output rate / input rate
uint64_t | relative_rate_i () const
| return the numerator, or interpolation rate, of the approximate output rate / input rate
uint64_t | relative_rate_d () const
| return the denominator, or decimation rate, of the approximate output rate / input rate
mpq_class & | mp_relative_rate ()
| return a reference to the multiple precision rational representation of the approximate output rate / input rate
uint64_t | nitems_read (unsigned int which_input)
| Return the number of items read on input stream which_input.
uint64_t | nitems_written (unsigned int which_output)
| Return the number of items written on output stream which_output.
tag_propagation_policy_t | tag_propagation_policy ()
| Asks for the policy used by the scheduler to moved tags downstream.
void | set_tag_propagation_policy (tag_propagation_policy_t p)
| Set the policy by the scheduler to determine how tags are moved downstream.
int | min_noutput_items () const
| Return the minimum number of output items this block can produce during a call to work.
void | set_min_noutput_items (int m)
| Set the minimum number of output items this block can produce during a call to work.
int | max_noutput_items ()
| Return the maximum number of output items this block will handle during a call to work.
void | set_max_noutput_items (int m)
| Set the maximum number of output items this block will handle during a call to work.
void | unset_max_noutput_items ()
| Clear the switch for using the max_noutput_items value of this block.
bool | is_set_max_noutput_items ()
| Ask the block if the flag is or is not set to use the internal value of max_noutput_items during a call to work.
void | expand_minmax_buffer (int port)
long | max_output_buffer (size_t i)
| Returns max buffer size on output port `i`.
void | set_max_output_buffer (long max_output_buffer)
| Request limit on max buffer size on all output ports.
void | set_max_output_buffer (int port, long max_output_buffer)
| Request limit on max buffer size on output port `port`.
long | min_output_buffer (size_t i)
| Returns min buffer size on output port `i`.
void | set_min_output_buffer (long min_output_buffer)
| Request limit on the minimum buffer size on all output ports.
void | set_min_output_buffer (int port, long min_output_buffer)
| Request limit on min buffer size on output port `port`.
void | set_blkd_input_timer_value (unsigned int timer_value_ms)
| DEPRECATED Configure the timer set when input is blocked `port`.
unsigned int | blkd_input_timer_value ()
| DEPRECATED Returns timer value set when input is blocked.
void | allocate_detail (int ninputs, int noutputs, const std::vector< int > &downstream_max_nitems_vec, const std::vector< uint64_t > &downstream_lcm_nitems_vec, const std::vector< uint32_t > &downstream_max_out_mult_vec)
| Allocate the block_detail and necessary output buffers for this block.
buffer_sptr | replace_buffer (size_t src_port, size_t dst_port, block_sptr block_owner)
| Replace the block's buffer with a new one owned by the block_owner parameter.
float | pc_noutput_items ()
| Gets instantaneous noutput_items performance counter.
float | pc_noutput_items_avg ()
| Gets average noutput_items performance counter.
float | pc_noutput_items_var ()
| Gets variance of noutput_items performance counter.
float | pc_nproduced ()
| Gets instantaneous num items produced performance counter.
float | pc_nproduced_avg ()
| Gets average num items produced performance counter.
float | pc_nproduced_var ()
| Gets variance of num items produced performance counter.
float | pc_input_buffers_full (int which)
| Gets instantaneous fullness of `which` input buffer.
float | pc_input_buffers_full_avg (int which)
| Gets average fullness of `which` input buffer.
float | pc_input_buffers_full_var (int which)
| Gets variance of fullness of `which` input buffer.
std::vector< float > | pc_input_buffers_full ()
| Gets instantaneous fullness of all input buffers.
std::vector< float > | pc_input_buffers_full_avg ()
| Gets average fullness of all input buffers.
std::vector< float > | pc_input_buffers_full_var ()
| Gets variance of fullness of all input buffers.
float | pc_output_buffers_full (int which)
| Gets instantaneous fullness of `which` output buffer.
float | pc_output_buffers_full_avg (int which)
| Gets average fullness of `which` output buffer.
float | pc_output_buffers_full_var (int which)
| Gets variance of fullness of `which` output buffer.
std::vector< float > | pc_output_buffers_full ()
| Gets instantaneous fullness of all output buffers.
std::vector< float > | pc_output_buffers_full_avg ()
| Gets average fullness of all output buffers.
std::vector< float > | pc_output_buffers_full_var ()
| Gets variance of fullness of all output buffers.
float | pc_work_time ()
| Gets instantaneous clock cycles spent in work.
float | pc_work_time_avg ()
| Gets average clock cycles spent in work.
float | pc_work_time_var ()
| Gets average clock cycles spent in work.
float | pc_work_time_total ()
| Gets total clock cycles spent in work.
float | pc_throughput_avg ()
| Gets average throughput.
void | reset_perf_counters ()
| Resets the performance counters.
void | setup_pc_rpc ()
| Sets up export of perf. counters to ControlPort. Only called by the scheduler.
bool | is_pc_rpc_set () const
| Checks if this block is already exporting perf. counters to ControlPort.
void | no_pc_rpc ()
| If the block calls this in its constructor, it's perf. counters will not be exported.
void | set_processor_affinity (const std::vector< int > &mask) override
| Set the thread's affinity to processor core `n`.
void | unset_processor_affinity () override
| Remove processor affinity to a specific core.
std::vector< int > | processor_affinity () override
| Get the current processor affinity.
int | active_thread_priority ()
| Get the current thread priority in use.
int | thread_priority ()
| Get the current thread priority stored.
int | set_thread_priority (int priority)
| Set the current thread priority.
bool | update_rate () const
void | system_handler (pmt::pmt_t msg)
| the system message handler
void | set_log_level (const std::string &level) override
| Set the logger's output level.
std::string | log_level () override
| Get the logger's output level.
bool | finished ()
| returns true when execution has completed due to a message connection
block_detail_sptr | detail () const
void | set_detail (block_detail_sptr detail)
void | notify_msg_neighbors ()
| Tell msg neighbors we are finished.
void | clear_finished ()
| Make sure we don't think we are finished.
std::string | identifier () const
Public Member Functions inherited from gr::basic_block
pmt::pmt_t | message_subscribers (pmt::pmt_t port)
| ~basic_block () override
long | unique_id () const
long | symbolic_id () const
std::string | name () const
std::string | symbol_name () const
std::string | identifier () const
gr::io_signature::sptr | input_signature () const
gr::io_signature::sptr | output_signature () const
basic_block_sptr | to_basic_block ()
bool | alias_set () const
std::string | alias () const
pmt::pmt_t | alias_pmt () const
void | set_block_alias (std::string name)
void | message_port_register_in (pmt::pmt_t port_id)
void | message_port_register_out (pmt::pmt_t port_id)
void | message_port_pub (pmt::pmt_t port_id, pmt::pmt_t msg)
void | message_port_sub (pmt::pmt_t port_id, pmt::pmt_t target)
void | message_port_unsub (pmt::pmt_t port_id, pmt::pmt_t target)
virtual bool | message_port_is_hier (pmt::pmt_t port_id)
virtual bool | message_port_is_hier_in (pmt::pmt_t port_id)
virtual bool | message_port_is_hier_out (pmt::pmt_t port_id)
pmt::pmt_t | message_ports_in ()
| Get input message port names.
pmt::pmt_t | message_ports_out ()
| Get output message port names.
void | _post (pmt::pmt_t which_port, pmt::pmt_t msg)
bool | empty_p (pmt::pmt_t which_port)
| is the queue empty?
bool | empty_p ()
bool | empty_handled_p (pmt::pmt_t which_port)
| are all msg ports with handlers empty?
bool | empty_handled_p ()
size_t | nmsgs (pmt::pmt_t which_port)
| How many messages in the queue?
void | insert_tail (pmt::pmt_t which_port, pmt::pmt_t msg)
pmt::pmt_t | delete_head_nowait (pmt::pmt_t which_port)
msg_queue_t::iterator | get_iterator (pmt::pmt_t which_port)
void | erase_msg (pmt::pmt_t which_port, msg_queue_t::iterator it)
virtual bool | has_msg_port (pmt::pmt_t which_port)
const msg_queue_map_t & | get_msg_map (void) const
void | add_rpc_variable (rpcbasic_sptr s)
| Add an RPC variable (get or set).
virtual void | setup_rpc ()
| Set up the RPC registered variables.
bool | is_rpc_set ()
| Ask if this block has been registered to the RPC.
void | rpc_set ()
| When the block is registered with the RPC, set this.
virtual bool | check_topology (int ninputs, int noutputs)
| Confirm that ninputs and noutputs is an acceptable combination.
template<typename T>
void | set_msg_handler (pmt::pmt_t which_port, T msg_handler)
| Set the callback that is fired when messages are available.
Public Member Functions inherited from gr::msg_accepter
| msg_accepter ()
| ~msg_accepter () override
void | post (pmt::pmt_t which_port, pmt::pmt_t msg) override
| send `msg` to `msg_accepter` on port `which_port`
Public Member Functions inherited from gr::messages::msg_accepter
| msg_accepter ()

## Static Public Member Functions

static sptr | make (const ::uhd::device_addr_t &device_addr, const ::uhd::stream_args_t &stream_args, const bool issue_stream_cmd_on_start=true)
static sptr | make (const std::string &device_addr_str, const ::uhd::stream_args_t &stream_args, const bool issue_stream_cmd_on_start=true)

## Additional Inherited Members

Protected Types inherited from gr::basic_block
enum | vcolor { WHITE , GREY , BLACK }
Protected Member Functions inherited from gr::uhd::usrp_block
| usrp_block ()
| usrp_block (const std::string &name, gr::io_signature::sptr input_signature, gr::io_signature::sptr output_signature)
Protected Member Functions inherited from gr::sync_block
| sync_block (void)
| sync_block (const std::string &name, gr::io_signature::sptr input_signature, gr::io_signature::sptr output_signature)
Protected Member Functions inherited from gr::block
| block (void)
| block (const std::string &name, gr::io_signature::sptr input_signature, gr::io_signature::sptr output_signature)
void | set_fixed_rate (bool fixed_rate)
void | add_item_tag (unsigned int which_output, uint64_t abs_offset, const pmt::pmt_t &key, const pmt::pmt_t &value, const pmt::pmt_t &srcid=pmt::PMT_F)
| Adds a new tag onto the given output buffer.
void | add_item_tag (unsigned int which_output, const tag_t &tag)
| Adds a new tag onto the given output buffer.
void | remove_item_tag (unsigned int which_input, uint64_t abs_offset, const pmt::pmt_t &key, const pmt::pmt_t &value, const pmt::pmt_t &srcid=pmt::PMT_F)
| DEPRECATED. Will be removed in 3.8.
void | remove_item_tag (unsigned int which_input, const tag_t &tag)
| DEPRECATED. Will be removed in 3.8.
void | get_tags_in_range (std::vector< tag_t > &v, unsigned int which_input, uint64_t abs_start, uint64_t abs_end)
| Given a [start,end), returns a vector of all tags in the range.
void | get_tags_in_range (std::vector< tag_t > &v, unsigned int which_input, uint64_t abs_start, uint64_t abs_end, const pmt::pmt_t &key)
| Given a [start,end), returns a vector of all tags in the range with a given key.
void | get_tags_in_window (std::vector< tag_t > &v, unsigned int which_input, uint64_t rel_start, uint64_t rel_end)
| Gets all tags within the relative window of the current call to work.
void | get_tags_in_window (std::vector< tag_t > &v, unsigned int which_input, uint64_t rel_start, uint64_t rel_end, const pmt::pmt_t &key)
| Operates like gr::block::get_tags_in_window with the ability to only return tags with the specified `key`.
void | enable_update_rate (bool en)
buffer_sptr | allocate_buffer (size_t port, int downstream_max_nitems, uint64_t downstream_lcm_nitems, uint32_t downstream_max_out_mult)
| Allocate a buffer for the given output port of this block. Note that the downstream max number of items must be passed in to this function for consideration.
Protected Member Functions inherited from gr::basic_block
| basic_block (void)
| basic_block (const std::string &name, gr::io_signature::sptr input_signature, gr::io_signature::sptr output_signature)
| Protected constructor prevents instantiation by non-derived classes.
void | set_input_signature (gr::io_signature::sptr iosig)
| may only be called during constructor
void | set_output_signature (gr::io_signature::sptr iosig)
| may only be called during constructor
void | set_color (vcolor color)
| Allow the flowgraph to set for sorting and partitioning.
vcolor | color () const
virtual bool | has_msg_handler (pmt::pmt_t which_port)
| Tests if there is a handler attached to port `which_port`.
virtual void | dispatch_msg (pmt::pmt_t which_port, pmt::pmt_t msg)
template<typename Derived>
std::shared_ptr< Derived > | shared_from_base ()
| This is meant to be called by derived classes (e.g. block) to get a shared pointer internally. This is needed because std::enable_shared_from_this doesn't seem to work with derived classes in an inheritance hierarchy.
Protected Attributes inherited from gr::block
std::vector< long > | d_max_output_buffer
std::vector< long > | d_min_output_buffer
unsigned int | d_blkd_input_timer_value = 250
gr::thread::mutex | d_setlock
const pmt::pmt_t | d_pmt_done
const pmt::pmt_t | d_system_port
Protected Attributes inherited from gr::basic_block
std::string | d_name
gr::io_signature::sptr | d_input_signature
gr::io_signature::sptr | d_output_signature
long | d_unique_id
long | d_symbolic_id
std::string | d_symbol_name
std::string | d_symbol_alias
vcolor | d_color
bool | d_rpc_set
gr::logger_ptr | d_logger
gr::logger_ptr | d_debug_logger
| Default logger.
msg_queue_map_t | msg_queue
| Verbose logger.
std::vector< rpcbasic_sptr > | d_rpc_vars
pmt::pmt_t | d_message_subscribers

## Detailed Description

USRP Source – Radio Receiver

The USRP source block receives samples and writes to a stream. The source block also provides API calls for receiver settings. See also gr::uhd::usrp_block for more public API calls.

RX Stream tagging:

The following tag keys will be produced by the work function:

- pmt::string_to_symbol("rx_time")

The timestamp tag value is a pmt tuple of the following: (uint64 seconds, and double fractional seconds). A timestamp tag is produced at start() and after overflows.

# Command interface

This block has a message port, which consumes UHD PMT commands. For a description of the command syntax, see Section Command Syntax.

For a more general description of the gr-uhd components, see UHD Interface.

## Member Typedef Documentation

## sptr

typedef std::shared_ptr<usrp_source> gr::uhd::usrp_source::sptr

## Member Function Documentation

## finite_acquisition()

virtual std::vector< std::complex< float > > gr::uhd::usrp_source::finite_acquisition | ( | const size_t | nsamps | ) |

pure virtual

Convenience function for finite data acquisition. This is not to be used with the scheduler; rather, one can request samples from the USRP in python. //TODO assumes fc32

Parameters

  nsamps | the number of samples

Returns
  a vector of complex float samples

## finite_acquisition_v()

virtual std::vector< std::vector< std::complex< float > > > gr::uhd::usrp_source::finite_acquisition_v | ( | const size_t | nsamps | ) |

pure virtual

Convenience function for finite data acquisition. This is the multi-channel version of finite_acquisition; This is not to be used with the scheduler; rather, one can request samples from the USRP in python. //TODO assumes fc32

Parameters

  nsamps | the number of samples per channel

Returns
  a vector of buffers, where each buffer represents a channel

## get_lo_export_enabled()

virtual bool gr::uhd::usrp_source::get_lo_export_enabled | ( | const std::string & | name,
|  | size_t | chan = 0 )

pure virtual

Returns true if the currently selected LO is being exported.

Parameters

  name | the name of the LO stage to query
  chan | the channel index 0 to N-1

References gr::basic_block::name().

## get_lo_freq()

virtual double gr::uhd::usrp_source::get_lo_freq | ( | const std::string & | name,
|  | size_t | chan = 0 )

pure virtual

Get the current RX LO frequency (Advanced).

Parameters

  name | the name of the LO stage to query
  chan | the channel index 0 to N-1

Returns
  the configured LO frequency

References gr::basic_block::name().

## get_lo_freq_range()

virtual::uhd::freq_range_t gr::uhd::usrp_source::get_lo_freq_range | ( | const std::string & | name,
|  | size_t | chan = 0 )

pure virtual

Get the LO frequency range of the RX LO.

Parameters

  name | the name of the LO stage to query
  chan | the channel index 0 to N-1

Returns
  a frequency range object

References gr::basic_block::name().

## get_lo_names()

virtual std::vector< std::string > gr::uhd::usrp_source::get_lo_names | ( | size_t | chan = 0 | ) |

pure virtual

Get a list of possible LO stage names

Parameters

  chan | the channel index 0 to N-1

Returns
  a vector of strings for possible LO names

## get_lo_source()

virtual const std::string gr::uhd::usrp_source::get_lo_source | ( | const std::string & | name,
|  | size_t | chan = 0 )

pure virtual

Get the currently set LO source.

Parameters

  name | the name of the LO stage to query
  chan | the channel index 0 to N-1

Returns
  the configured LO source

References gr::basic_block::name().

## get_lo_sources()

virtual std::vector< std::string > gr::uhd::usrp_source::get_lo_sources | ( | const std::string & | name,
|  | size_t | chan = 0 )

pure virtual

Get a list of possible LO sources.

Parameters

  name | the name of the LO stage to query
  chan | the channel index 0 to N-1

Returns
  a vector of strings for possible settings

References gr::basic_block::name().

## issue_stream_cmd()

virtual void gr::uhd::usrp_source::issue_stream_cmd | ( | const ::uhd::stream_cmd_t & | cmd | ) |

pure virtual

Advanced use only: Issue a stream command to all channels in this source block.

This method is intended to override the default "always on" behavior. After starting the flow graph, the user should call stop() on this block, then issue any desired arbitrary stream_cmd_t structs to the device. The USRP will be able to enqueue several stream commands in the FPGA.

Parameters

  cmd | the stream command to issue to all source channels

## make() [1/2]

sptr gr::uhd::usrp_source::make | ( | const ::uhd::device_addr_t & | device_addr,
|  | const ::uhd::stream_args_t & | stream_args,
|  | const bool | issue_stream_cmd_on_start = true )

static

Parameters

  device_addr | the address to identify the hardware
  stream_args | the IO format and channel specification
  issue_stream_cmd_on_start | enable or disable continuous streaming when flowgraph starts (default true)

Returns
  a new USRP source block object

Referenced by make().

## make() [2/2]

sptr gr::uhd::usrp_source::make | ( | const std::string & | device_addr_str,
|  | const ::uhd::stream_args_t & | stream_args,
|  | const bool | issue_stream_cmd_on_start = true )

inline static

References make().

## set_auto_dc_offset()

virtual void gr::uhd::usrp_source::set_auto_dc_offset | ( | const bool | enb,
|  | size_t | chan = 0 )

pure virtual

Enable/disable the automatic DC offset correction. The automatic correction subtracts out the long-run average.

When disabled, the averaging option operation is halted. Once halted, the average value will be held constant until the user re-enables the automatic correction or overrides the value by manually setting the offset.

Parameters

  enb | true to enable automatic DC offset correction
  chan | the channel index 0 to N-1

## set_auto_iq_balance()

virtual void gr::uhd::usrp_source::set_auto_iq_balance | ( | const bool | enb,
|  | size_t | chan = 0 )

pure virtual

Enable/Disable the RX frontend IQ imbalance correction.

Parameters

  enb | true to enable automatic IQ imbalance correction
  chan | the channel index 0 to N-1

## set_dc_offset()

virtual void gr::uhd::usrp_source::set_dc_offset | ( | const std::complex< double > & | offset,
|  | size_t | chan = 0 )

pure virtual

Set a constant DC offset value. The value is complex to control both I and Q. Only set this when automatic correction is disabled.

Parameters

  offset | the dc offset (1.0 is full-scale)
  chan | the channel index 0 to N-1

## set_iq_balance()

virtual void gr::uhd::usrp_source::set_iq_balance | ( | const std::complex< double > & | correction,
|  | size_t | chan = 0 )

pure virtual

Set the RX frontend IQ imbalance correction. Use this to adjust the magnitude and phase of I and Q.

Parameters

  correction | the complex correction value
  chan | the channel index 0 to N-1

## set_lo_export_enabled()

virtual void gr::uhd::usrp_source::set_lo_export_enabled | ( | bool | enabled,
|  | const std::string & | name,
|  | size_t | chan = 0 )

pure virtual

Set whether the LO used by the usrp device is exported For usrps that support exportable LOs, this function configures if the LO used by chan is exported or not.

Parameters

  enabled | if true then export the LO
  name | the name of the LO stage to update
  chan | the channel index 0 to N-1 for the source channel

References gr::basic_block::name().

## set_lo_freq()

virtual double gr::uhd::usrp_source::set_lo_freq | ( | double | freq,
|  | const std::string & | name,
|  | size_t | chan = 0 )

pure virtual

Set the RX LO frequency (Advanced).

Parameters

  freq | the frequency to set the LO to
  name | the name of the LO stage to update
  chan | the channel index 0 to N-1

Returns
  a coerced LO frequency

References gr::basic_block::name().

## set_lo_source()

virtual void gr::uhd::usrp_source::set_lo_source | ( | const std::string & | src,
|  | const std::string & | name,
|  | size_t | chan = 0 )

pure virtual

Set the LO source for the usrp device. For usrps that support selectable LOs, this function allows switching between them. Typical options for source: internal, external.

Parameters

  src | a string representing the LO source
  name | the name of the LO stage to update
  chan | the channel index 0 to N-1

References gr::basic_block::name().

## set_recv_timeout()

virtual void gr::uhd::usrp_source::set_recv_timeout | ( | const double | timeout,
|  | const bool | one_packet = true )

pure virtual

Configure the timeout value on the UHD recv() call

This is an advanced use parameter. Changing the timeout value affects the latency of this block; a high timeout value can be more optimal for high-throughput applications (e.g., 1 second) and setting it to zero will have the best latency. Changing the timeout value may also be useful for custom FPGA modifications, where traffic might not be continuously streaming. For specialized high-performance use cases, twiddling these knobs may improve performance, but changes are not generally applicable.

Note that UHD's recv() call may block until the timeout is over, which means this block might also block for up to the timeout value.

Parameters

  timeout | Timeout parameter in seconds. Cf. the UHD manual for uhd::rx_streamer::recv() for more details. A lower value will mean lower latency, but higher CPU load.
  one_packet | If true, only receive one packet at a time. Cf. the UHD manual for uhd::rx_streamer::recv() for more details. A value of true will mean lower latency, but higher CPU load.

## set_rx_agc()

virtual void gr::uhd::usrp_source::set_rx_agc | ( | const bool | enable,
|  | size_t | chan = 0 )

pure virtual

Enable/disable the RX AGC module. If AGC is turned on, all manual gain settings are ignored.

Parameters

  enable | true to enable the AGC
  chan | the channel index 0 to N-1

## set_start_time()

virtual void gr::uhd::usrp_source::set_start_time | ( | const ::uhd::time_spec_t & | time | ) |

pure virtual

Set the start time for incoming samples. To control when samples are received, set this value before starting the flow graph. The value is cleared after each run. When not specified, the start time will be:

- Immediately for the one channel case
- in the near future for multi-channel

Parameters

  time | the absolute time for reception to begin

The documentation for this class was generated from the following file:

- usrp_source.h