gr::uhd::usrp_sink
gr::uhd::usrp_block
gnuradio/uhd/usrp_sink.h
std::shared_ptr< usrp_sink > std::shared_ptr<usrp_sink> gr::uhd::usrp_sink::sptr sptr gr::uhd::usrp_sink::sptr
sptr static sptr gr::uhd::usrp_sink::make (const ::uhd::device_addr_t &device_addr, const ::uhd::stream_args_t &stream_args, const std::string &tsb_tag_name="") make gr::uhd::usrp_sink::make const ::uhd::device_addr_t & device_addr const ::uhd::stream_args_t & stream_args const std::string & tsb_tag_name ""

device_addr

the address to identify the hardware

stream_args

the IO format and channel specification

tsb_tag_name

the name of the tag identifying tagged stream length

a new USRP sink block object

sptr static sptr gr::uhd::usrp_sink::make (const std::string &device_addr_str, const ::uhd::stream_args_t &stream_args, const std::string &tsb_tag_name="") make gr::uhd::usrp_sink::make const std::string & device_addr_str const ::uhd::stream_args_t & stream_args const std::string & tsb_tag_name ""
void virtual void gr::uhd::usrp_sink::set_start_time (const ::uhd::time_spec_t &time)=0 set_start_time gr::uhd::usrp_sink::set_start_time const ::uhd::time_spec_t & time

Set the start time for outgoing samples. To control when samples are transmitted, 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

time

the absolute time for transmission to begin

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

Get a list of possible LO stage names chan

the channel index 0 to N-1

a vector of strings for possible LO names

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

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. src

a string representing the LO source

name

the name of the LO stage to update

chan

the channel index 0 to N-1

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

Get the currently set LO source. name

the name of the LO stage to query

chan

the channel index 0 to N-1

the configured LO source

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

Get a list of possible LO sources. name

the name of the LO stage to query

chan

the channel index 0 to N-1

a vector of strings for possible settings

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

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. 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

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

Returns true if the currently selected LO is being exported. name

the name of the LO stage to query

chan

the channel index 0 to N-1

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

Set the RX LO frequency (Advanced). 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

a coerced LO frequency

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

Get the current RX LO frequency (Advanced). name

the name of the LO stage to query

chan

the channel index 0 to N-1

the configured LO frequency

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

Get the LO frequency range of the RX LO. name

the name of the LO stage to query

chan

the channel index 0 to N-1

a frequency range object

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

Set a constant DC offset value. The value is complex to control both I and Q. offset

the dc offset (1.0 is full-scale)

chan

the channel index 0 to N-1

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

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

correction

the complex correction (1.0 is full-scale)

chan

the channel index 0 to N-1

USRP Sink Radio Transmitter

The USRP sink block reads a stream and transmits the samples. The sink block also provides API calls for transmitter settings. See also gr::uhd::usrp_block for more public API calls.

# TX Stream tagging

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

- pmt::string_to_symbol("tx_sob")

- pmt::string_to_symbol("tx_eob")

- pmt::string_to_symbol("tx_time")

- pmt::string_to_symbol("tx_freq")

- pmt::string_to_symbol("tx_command")

- pmt::string_to_symbol(tsb_tag_name)

Any other tag will be ignored.

# Bursty Transmission

There are multiple ways to do bursty transmission without triggering underruns:

- Using SOB/EOB tags

- Using tagged streams (See Tagged Stream Blocks)

The sob and eob (start and end of burst) tag values are pmt booleans. When present, burst tags should be set to true (pmt::PMT_T).

If `tsb_tag_name` is not an empty string, all "tx_sob" and "tx_eob" tags will be ignored, and the input is assumed to a tagged stream.

If sob/eob tags or length tags are used, this block understands that the data is bursty, and will configure the USRP to make sure there's no underruns after transmitting the final sample of a burst.

# Timestamps

The timestamp tag value is a PMT tuple of the following: (uint64 seconds, double fractional seconds).

The tx_freq tag has to be a double or a pair of form (channel, frequency), with frequency being a double and channel being an integer. This tag will trigger a tune command to the USRP to the given frequency, if possible. Note that oscillators need some time to stabilize after this! Don't expect clean data to be sent immediately after this command. If channel is omitted, and only a double is given, it will set this frequency to all channels.

The command tag can carry a PMT command. See the following section.

# Command interface

There are two ways of passing commands to this block:

1. tx_command tag. The command is attached to a sample, and will executed before the sample is transmitted, and after the previous sample.

2. The 'command' message port. The command is executed asynchronously, as soon as possible.

In both cases, the payload of the command is a PMT command, as described in Section Command Syntax.

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

gr::basic_block
gr::block
gr::messages::msg_accepter
gr::msg_accepter
gr::sync_block
gr::uhd::usrp_block
gr::uhd::usrp_sink
std::enable_shared_from_this< basic_block >
T
gr::basic_block
d_name
d_symbol_alias
d_symbol_name
d_input_signature
d_output_signature
d_debug_logger
d_logger
msg_queue
d_rpc_vars
d_message_subscribers
gr::block
d_max_output_buffer
d_min_output_buffer
d_pmt_done
d_system_port
gr::io_signature
gr::messages::msg_accepter
gr::msg_accepter
gr::sync_block
gr::uhd::usrp_block
gr::uhd::usrp_sink
std::basic_string< Char >
std::deque< T >
elements
std::enable_shared_from_this< basic_block >
std::map< pmt::pmt_t, msg_queue_t, msg_queue_comparator >
keys
elements
std::shared_ptr< T >
ptr
std::shared_ptr< io_signature >
ptr
std::shared_ptr< logger >
std::shared_ptr< pmt_base >
std::string
std::vector< long >
std::vector< rpcbasic_sptr >
elements
p
- gr::uhd::usrp_sink
  _post
- gr::uhd::usrp_sink
  active_thread_priority
- gr::uhd::usrp_sink
  add_item_tag
- gr::uhd::usrp_sink
  add_item_tag
- gr::uhd::usrp_sink
  alias
- gr::uhd::usrp_sink
  alias_pmt
- gr::uhd::usrp_sink
  alias_set
- gr::uhd::usrp_sink
  alignment
- gr::uhd::usrp_sink
  allocate_buffer
- gr::uhd::usrp_sink
  allocate_detail
- gr::uhd::usrp_sink
  basic_block
- gr::uhd::usrp_sink
  basic_block
- gr::uhd::usrp_sink
  BLACK
- gr::uhd::usrp_sink
  blkd_input_timer_value
- gr::uhd::usrp_sink
  block
- gr::uhd::usrp_sink
  block
- gr::uhd::usrp_sink
  check_topology
- gr::uhd::usrp_sink
  clear_command_time
- gr::uhd::usrp_sink
  clear_finished
- gr::uhd::usrp_sink
  color
- gr::uhd::usrp_sink
  consume
- gr::uhd::usrp_sink
  consume_each
- gr::uhd::usrp_sink
  d_blkd_input_timer_value
- gr::uhd::usrp_sink
  d_color
- gr::uhd::usrp_sink
  d_debug_logger
- gr::uhd::usrp_sink
  d_input_signature
- gr::uhd::usrp_sink
  d_logger
- gr::uhd::usrp_sink
  d_max_output_buffer
- gr::uhd::usrp_sink
  d_message_subscribers
- gr::uhd::usrp_sink
  d_min_output_buffer
- gr::uhd::usrp_sink
  d_name
- gr::uhd::usrp_sink
  d_output_signature
- gr::uhd::usrp_sink
  d_pmt_done
- gr::uhd::usrp_sink
  d_rpc_set
- gr::uhd::usrp_sink
  d_rpc_vars
- gr::uhd::usrp_sink
  d_setlock
- gr::uhd::usrp_sink
  d_symbol_alias
- gr::uhd::usrp_sink
  d_symbol_name
- gr::uhd::usrp_sink
  d_symbolic_id
- gr::uhd::usrp_sink
  d_system_port
- gr::uhd::usrp_sink
  d_unique_id
- gr::uhd::usrp_sink
  declare_sample_delay
- gr::uhd::usrp_sink
  declare_sample_delay
- gr::uhd::usrp_sink
  delete_head_nowait
- gr::uhd::usrp_sink
  detail
- gr::uhd::usrp_sink
  dispatch_msg
- gr::uhd::usrp_sink
  empty_handled_p
- gr::uhd::usrp_sink
  empty_handled_p
- gr::uhd::usrp_sink
  empty_p
- gr::uhd::usrp_sink
  empty_p
- gr::uhd::usrp_sink
  enable_update_rate
- gr::uhd::usrp_sink
  erase_msg
- gr::uhd::usrp_sink
  expand_minmax_buffer
- gr::uhd::usrp_sink
  finished
- gr::uhd::usrp_sink
  fixed_rate
- gr::uhd::usrp_sink
  fixed_rate_ninput_to_noutput
- gr::uhd::usrp_sink
  fixed_rate_noutput_to_ninput
- gr::uhd::usrp_sink
  forecast
- gr::uhd::usrp_sink
  general_work
- gr::uhd::usrp_sink
  get_antenna
- gr::uhd::usrp_sink
  get_antennas
- gr::uhd::usrp_sink
  get_bandwidth
- gr::uhd::usrp_sink
  get_bandwidth_range
- gr::uhd::usrp_sink
  get_center_freq
- gr::uhd::usrp_sink
  get_clock_rate
- gr::uhd::usrp_sink
  get_clock_source
- gr::uhd::usrp_sink
  get_clock_sources
- gr::uhd::usrp_sink
  get_dboard_iface
- gr::uhd::usrp_sink
  get_dboard_sensor
- gr::uhd::usrp_sink
  get_dboard_sensor_names
- gr::uhd::usrp_sink
  get_device
- gr::uhd::usrp_sink
  get_filter
- gr::uhd::usrp_sink
  get_filter_names
- gr::uhd::usrp_sink
  get_freq_range
- gr::uhd::usrp_sink
  get_gain
- gr::uhd::usrp_sink
  get_gain
- gr::uhd::usrp_sink
  get_gain_names
- gr::uhd::usrp_sink
  get_gain_range
- gr::uhd::usrp_sink
  get_gain_range
- gr::uhd::usrp_sink
  get_gpio_attr
- gr::uhd::usrp_sink
  get_gpio_banks
- gr::uhd::usrp_sink
  get_iterator
- gr::uhd::usrp_sink
  get_lo_export_enabled
- gr::uhd::usrp_sink
  get_lo_freq
- gr::uhd::usrp_sink
  get_lo_freq_range
- gr::uhd::usrp_sink
  get_lo_names
- gr::uhd::usrp_sink
  get_lo_source
- gr::uhd::usrp_sink
  get_lo_sources
- gr::uhd::usrp_sink
  get_mboard_sensor
- gr::uhd::usrp_sink
  get_mboard_sensor_names
- gr::uhd::usrp_sink
  get_msg_map
- gr::uhd::usrp_sink
  get_normalized_gain
- gr::uhd::usrp_sink
  get_num_mboards
- gr::uhd::usrp_sink
  get_power_range
- gr::uhd::usrp_sink
  get_power_reference
- gr::uhd::usrp_sink
  get_samp_rate
- gr::uhd::usrp_sink
  get_samp_rates
- gr::uhd::usrp_sink
  get_sensor
- gr::uhd::usrp_sink
  get_sensor_names
- gr::uhd::usrp_sink
  get_subdev_spec
- gr::uhd::usrp_sink
  get_tags_in_range
- gr::uhd::usrp_sink
  get_tags_in_range
- gr::uhd::usrp_sink
  get_tags_in_window
- gr::uhd::usrp_sink
  get_tags_in_window
- gr::uhd::usrp_sink
  get_time_last_pps
- gr::uhd::usrp_sink
  get_time_now
- gr::uhd::usrp_sink
  get_time_source
- gr::uhd::usrp_sink
  get_time_sources
- gr::uhd::usrp_sink
  get_usrp_info
- gr::uhd::usrp_sink
  GREY
- gr::uhd::usrp_sink
  has_msg_handler
- gr::uhd::usrp_sink
  has_msg_port
- gr::uhd::usrp_sink
  has_power_reference
- gr::uhd::usrp_sink
  history
- gr::uhd::usrp_sink
  identifier
- gr::uhd::usrp_sink
  input_signature
- gr::uhd::usrp_sink
  insert_tail
- gr::uhd::usrp_sink
  is_pc_rpc_set
- gr::uhd::usrp_sink
  is_rpc_set
- gr::uhd::usrp_sink
  is_set_max_noutput_items
- gr::uhd::usrp_sink
  is_unaligned
- gr::uhd::usrp_sink
  log_level
- gr::uhd::usrp_sink
  make
- gr::uhd::usrp_sink
  make
- gr::uhd::usrp_sink
  max_noutput_items
- gr::uhd::usrp_sink
  max_output_buffer
- gr::uhd::usrp_sink
  message_port_is_hier
- gr::uhd::usrp_sink
  message_port_is_hier_in
- gr::uhd::usrp_sink
  message_port_is_hier_out
- gr::uhd::usrp_sink
  message_port_pub
- gr::uhd::usrp_sink
  message_port_register_in
- gr::uhd::usrp_sink
  message_port_register_out
- gr::uhd::usrp_sink
  message_port_sub
- gr::uhd::usrp_sink
  message_port_unsub
- gr::uhd::usrp_sink
  message_ports_in
- gr::uhd::usrp_sink
  message_ports_out
- gr::uhd::usrp_sink
  message_subscribers
- gr::uhd::usrp_sink
  min_noutput_items
- gr::uhd::usrp_sink
  min_output_buffer
- gr::uhd::usrp_sink
  mp_relative_rate
- gr::uhd::usrp_sink
  msg_accepter
- gr::uhd::usrp_sink
  msg_queue
- gr::uhd::usrp_sink
  name
- gr::uhd::usrp_sink
  nitems_read
- gr::uhd::usrp_sink
  nitems_written
- gr::uhd::usrp_sink
  nmsgs
- gr::uhd::usrp_sink
  no_pc_rpc
- gr::uhd::usrp_sink
  notify_msg_neighbors
- gr::uhd::usrp_sink
  output_multiple
- gr::uhd::usrp_sink
  output_multiple_set
- gr::uhd::usrp_sink
  output_signature
- gr::uhd::usrp_sink
  pc_input_buffers_full
- gr::uhd::usrp_sink
  pc_input_buffers_full
- gr::uhd::usrp_sink
  pc_input_buffers_full_avg
- gr::uhd::usrp_sink
  pc_input_buffers_full_avg
- gr::uhd::usrp_sink
  pc_input_buffers_full_var
- gr::uhd::usrp_sink
  pc_input_buffers_full_var
- gr::uhd::usrp_sink
  pc_noutput_items
- gr::uhd::usrp_sink
  pc_noutput_items_avg
- gr::uhd::usrp_sink
  pc_noutput_items_var
- gr::uhd::usrp_sink
  pc_nproduced
- gr::uhd::usrp_sink
  pc_nproduced_avg
- gr::uhd::usrp_sink
  pc_nproduced_var
- gr::uhd::usrp_sink
  pc_output_buffers_full
- gr::uhd::usrp_sink
  pc_output_buffers_full
- gr::uhd::usrp_sink
  pc_output_buffers_full_avg
- gr::uhd::usrp_sink
  pc_output_buffers_full_avg
- gr::uhd::usrp_sink
  pc_output_buffers_full_var
- gr::uhd::usrp_sink
  pc_output_buffers_full_var
- gr::uhd::usrp_sink
  pc_throughput_avg
- gr::uhd::usrp_sink
  pc_work_time
- gr::uhd::usrp_sink
  pc_work_time_avg
- gr::uhd::usrp_sink
  pc_work_time_total
- gr::uhd::usrp_sink
  pc_work_time_var
- gr::uhd::usrp_sink
  post
- gr::uhd::usrp_sink
  processor_affinity
- gr::uhd::usrp_sink
  produce
- gr::uhd::usrp_sink
  relative_rate
- gr::uhd::usrp_sink
  relative_rate_d
- gr::uhd::usrp_sink
  relative_rate_i
- gr::uhd::usrp_sink
  remove_item_tag
- gr::uhd::usrp_sink
  remove_item_tag
- gr::uhd::usrp_sink
  replace_buffer
- gr::uhd::usrp_sink
  reset_perf_counters
- gr::uhd::usrp_sink
  rpc_set
- gr::uhd::usrp_sink
  sample_delay
- gr::uhd::usrp_sink
  set_alignment
- gr::uhd::usrp_sink
  set_antenna
- gr::uhd::usrp_sink
  set_bandwidth
- gr::uhd::usrp_sink
  set_blkd_input_timer_value
- gr::uhd::usrp_sink
  set_block_alias
- gr::uhd::usrp_sink
  set_center_freq
- gr::uhd::usrp_sink
  set_center_freq
- gr::uhd::usrp_sink
  set_clock_rate
- gr::uhd::usrp_sink
  set_clock_source
- gr::uhd::usrp_sink
  set_color
- gr::uhd::usrp_sink
  set_command_time
- gr::uhd::usrp_sink
  set_dc_offset
- gr::uhd::usrp_sink
  set_detail
- gr::uhd::usrp_sink
  set_filter
- gr::uhd::usrp_sink
  set_fixed_rate
- gr::uhd::usrp_sink
  set_gain
- gr::uhd::usrp_sink
  set_gain
- gr::uhd::usrp_sink
  set_gpio_attr
- gr::uhd::usrp_sink
  set_history
- gr::uhd::usrp_sink
  set_input_signature
- gr::uhd::usrp_sink
  set_inverse_relative_rate
- gr::uhd::usrp_sink
  set_iq_balance
- gr::uhd::usrp_sink
  set_is_unaligned
- gr::uhd::usrp_sink
  set_lo_export_enabled
- gr::uhd::usrp_sink
  set_lo_freq
- gr::uhd::usrp_sink
  set_lo_source
- gr::uhd::usrp_sink
  set_log_level
- gr::uhd::usrp_sink
  set_max_noutput_items
- gr::uhd::usrp_sink
  set_max_output_buffer
- gr::uhd::usrp_sink
  set_max_output_buffer
- gr::uhd::usrp_sink
  set_min_noutput_items
- gr::uhd::usrp_sink
  set_min_output_buffer
- gr::uhd::usrp_sink
  set_min_output_buffer
- gr::uhd::usrp_sink
  set_msg_handler
- gr::uhd::usrp_sink
  set_normalized_gain
- gr::uhd::usrp_sink
  set_output_multiple
- gr::uhd::usrp_sink
  set_output_signature
- gr::uhd::usrp_sink
  set_power_reference
- gr::uhd::usrp_sink
  set_processor_affinity
- gr::uhd::usrp_sink
  set_relative_rate
- gr::uhd::usrp_sink
  set_relative_rate
- gr::uhd::usrp_sink
  set_samp_rate
- gr::uhd::usrp_sink
  set_start_time
- gr::uhd::usrp_sink
  set_stream_args
- gr::uhd::usrp_sink
  set_subdev_spec
- gr::uhd::usrp_sink
  set_tag_propagation_policy
- gr::uhd::usrp_sink
  set_thread_priority
- gr::uhd::usrp_sink
  set_time_next_pps
- gr::uhd::usrp_sink
  set_time_now
- gr::uhd::usrp_sink
  set_time_source
- gr::uhd::usrp_sink
  set_time_unknown_pps
- gr::uhd::usrp_sink
  set_unaligned
- gr::uhd::usrp_sink
  set_user_register
- gr::uhd::usrp_sink
  setup_pc_rpc
- gr::uhd::usrp_sink
  setup_rpc
- gr::uhd::usrp_sink
  shared_from_base
- gr::uhd::usrp_sink
  sptr
- gr::uhd::usrp_sink
  start
- gr::uhd::usrp_sink
  stop
- gr::uhd::usrp_sink
  symbol_name
- gr::uhd::usrp_sink
  symbolic_id
- gr::uhd::usrp_sink
  sync_block
- gr::uhd::usrp_sink
  sync_block
- gr::uhd::usrp_sink
  system_handler
- gr::uhd::usrp_sink
  tag_propagation_policy
- gr::uhd::usrp_sink
  tag_propagation_policy_t
- gr::uhd::usrp_sink
  thread_priority
- gr::uhd::usrp_sink
  to_basic_block
- gr::uhd::usrp_sink
  TPP_ALL_TO_ALL
- gr::uhd::usrp_sink
  TPP_CUSTOM
- gr::uhd::usrp_sink
  TPP_DONT
- gr::uhd::usrp_sink
  TPP_ONE_TO_ONE
- gr::uhd::usrp_sink
  unaligned
- gr::uhd::usrp_sink
  unique_id
- gr::uhd::usrp_sink
  unset_max_noutput_items
- gr::uhd::usrp_sink
  unset_processor_affinity
- gr::uhd::usrp_sink
  update_rate
- gr::uhd::usrp_sink
  usrp_block
- gr::uhd::usrp_sink
  usrp_block
- gr::uhd::usrp_sink
  vcolor
- gr::uhd::usrp_sink
  WHITE
- gr::uhd::usrp_sink
  work
- gr::uhd::usrp_sink
  WORK_CALLED_PRODUCE
- gr::uhd::usrp_sink
  WORK_DONE
- gr::uhd::usrp_sink
  work_return_t
- gr::uhd::usrp_sink
  ~basic_block
- gr::uhd::usrp_sink
  ~block
- gr::uhd::usrp_sink
  ~msg_accepter