gr::fec::tagged_encoder
gr::tagged_stream_block
gnuradio/fec/tagged_encoder.h
std::shared_ptr< tagged_encoder > typedef std::shared_ptr<tagged_encoder> gr::fec::tagged_encoder::sptr sptr gr::fec::tagged_encoder::sptr
sptr static sptr gr::fec::tagged_encoder::make (generic_encoder::sptr my_encoder, size_t input_item_size, size_t output_item_size, const std::string &lengthtagname="packet_len", int mtu=1500) make gr::fec::tagged_encoder::make generic_encoder::sptr my_encoder size_t input_item_size size_t output_item_size const std::string & lengthtagname "packet_len" int mtu 1500

Build the FEC encoder block from an FECAPI encoder object.

my_encoder

An FECAPI encoder object child of the generic_encoder class.

input_item_size

size of a block of data for the encoder.

output_item_size

size of a block of data the encoder will produce.

lengthtagname

Key name of the tagged stream frame size.

mtu

The Maximum Transmission Unit (MTU) of the input frame that the block will be able to process. Specified in bytes and defaults to 1500.

int int gr::fec::tagged_encoder::work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override=0 work gr::fec::tagged_encoder::work work int noutput_items gr_vector_int & ninput_items gr_vector_const_void_star & input_items gr_vector_void_star & output_items

Just like gr::block::general_work, but makes sure the input is valid.

The user must override work to define the signal processing code. Check the documentation for general_work() to see what happens here.

Like gr::sync_block, this calls consume() for you (it consumes ninput_items[i] items from the i-th port).

A note on tag propagation: The PDU length tags are handled by other functions, but all other tags are handled just as in any other `gr::block`. So, most likely, you either set the tag propagation policy to TPP_DONT and handle the tag propagation manually, or you propagate tags through the scheduler and don't do anything here.

noutput_items

The size of the writable output buffer

ninput_items

The exact size of the items on every input for this particular PDU. These will be consumed if a length tag key is provided!

input_items

See gr::block

output_items

See gr::block

int int gr::fec::tagged_encoder::calculate_output_stream_length (const gr_vector_int &ninput_items) override=0 calculate_output_stream_length gr::fec::tagged_encoder::calculate_output_stream_length calculate_output_stream_length const gr_vector_int & ninput_items

Calculate the number of output items.

This is basically the inverse function to forecast(): Given a number of input items, it returns the maximum number of output items.

You most likely need to override this function, unless your block is a sync block or integer interpolator/decimator.

Creates the encoder block for use in GNU Radio flowgraphs from a given FECAPI object derived from the generic_encoder class.

Generally, we would use the fec.extended_encoder Python implementation to instantiate this. The extended_encoder wraps up a few more details, like taking care of puncturing as well as the encoder itself.

gr::basic_block
gr::block
gr::fec::tagged_encoder
gr::messages::msg_accepter
gr::msg_accepter
gr::tagged_stream_block
std::enable_shared_from_this< basic_block >
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::fec::tagged_encoder
gr::messages::msg_accepter
gr::msg_accepter
gr::tagged_stream_block
d_length_tag_key_str
std::basic_string< Char >
std::enable_shared_from_this< basic_block >
std::map< pmt::pmt_t, msg_queue_t, msg_queue_comparator >
std::shared_ptr< io_signature >
std::shared_ptr< logger >
std::shared_ptr< pmt_base >
std::shared_ptr< rpcbasic_base >
std::string
std::vector< long >
std::vector< rpcbasic_sptr >
elements
p
- gr::fec::tagged_encoder
  _post
- gr::fec::tagged_encoder
  active_thread_priority
- gr::fec::tagged_encoder
  add_item_tag
- gr::fec::tagged_encoder
  add_item_tag
- gr::fec::tagged_encoder
  alias
- gr::fec::tagged_encoder
  alias_pmt
- gr::fec::tagged_encoder
  alias_set
- gr::fec::tagged_encoder
  alignment
- gr::fec::tagged_encoder
  allocate_buffer
- gr::fec::tagged_encoder
  allocate_detail
- gr::fec::tagged_encoder
  basic_block
- gr::fec::tagged_encoder
  basic_block
- gr::fec::tagged_encoder
  BLACK
- gr::fec::tagged_encoder
  blkd_input_timer_value
- gr::fec::tagged_encoder
  block
- gr::fec::tagged_encoder
  block
- gr::fec::tagged_encoder
  calculate_output_stream_length
- gr::fec::tagged_encoder
  check_topology
- gr::fec::tagged_encoder
  clear_finished
- gr::fec::tagged_encoder
  color
- gr::fec::tagged_encoder
  consume
- gr::fec::tagged_encoder
  consume_each
- gr::fec::tagged_encoder
  d_blkd_input_timer_value
- gr::fec::tagged_encoder
  d_color
- gr::fec::tagged_encoder
  d_debug_logger
- gr::fec::tagged_encoder
  d_input_signature
- gr::fec::tagged_encoder
  d_length_tag_key_str
- gr::fec::tagged_encoder
  d_logger
- gr::fec::tagged_encoder
  d_max_output_buffer
- gr::fec::tagged_encoder
  d_message_subscribers
- gr::fec::tagged_encoder
  d_min_output_buffer
- gr::fec::tagged_encoder
  d_name
- gr::fec::tagged_encoder
  d_output_signature
- gr::fec::tagged_encoder
  d_pmt_done
- gr::fec::tagged_encoder
  d_rpc_set
- gr::fec::tagged_encoder
  d_rpc_vars
- gr::fec::tagged_encoder
  d_setlock
- gr::fec::tagged_encoder
  d_symbol_alias
- gr::fec::tagged_encoder
  d_symbol_name
- gr::fec::tagged_encoder
  d_symbolic_id
- gr::fec::tagged_encoder
  d_system_port
- gr::fec::tagged_encoder
  d_unique_id
- gr::fec::tagged_encoder
  declare_sample_delay
- gr::fec::tagged_encoder
  declare_sample_delay
- gr::fec::tagged_encoder
  delete_head_nowait
- gr::fec::tagged_encoder
  detail
- gr::fec::tagged_encoder
  dispatch_msg
- gr::fec::tagged_encoder
  empty_handled_p
- gr::fec::tagged_encoder
  empty_handled_p
- gr::fec::tagged_encoder
  empty_p
- gr::fec::tagged_encoder
  empty_p
- gr::fec::tagged_encoder
  enable_update_rate
- gr::fec::tagged_encoder
  erase_msg
- gr::fec::tagged_encoder
  expand_minmax_buffer
- gr::fec::tagged_encoder
  finished
- gr::fec::tagged_encoder
  fixed_rate
- gr::fec::tagged_encoder
  fixed_rate_ninput_to_noutput
- gr::fec::tagged_encoder
  fixed_rate_noutput_to_ninput
- gr::fec::tagged_encoder
  forecast
- gr::fec::tagged_encoder
  general_work
- gr::fec::tagged_encoder
  get_iterator
- gr::fec::tagged_encoder
  get_msg_map
- gr::fec::tagged_encoder
  get_tags_in_range
- gr::fec::tagged_encoder
  get_tags_in_range
- gr::fec::tagged_encoder
  get_tags_in_window
- gr::fec::tagged_encoder
  get_tags_in_window
- gr::fec::tagged_encoder
  GREY
- gr::fec::tagged_encoder
  has_msg_handler
- gr::fec::tagged_encoder
  has_msg_port
- gr::fec::tagged_encoder
  history
- gr::fec::tagged_encoder
  identifier
- gr::fec::tagged_encoder
  input_signature
- gr::fec::tagged_encoder
  insert_tail
- gr::fec::tagged_encoder
  is_pc_rpc_set
- gr::fec::tagged_encoder
  is_rpc_set
- gr::fec::tagged_encoder
  is_set_max_noutput_items
- gr::fec::tagged_encoder
  is_unaligned
- gr::fec::tagged_encoder
  log_level
- gr::fec::tagged_encoder
  make
- gr::fec::tagged_encoder
  max_noutput_items
- gr::fec::tagged_encoder
  max_output_buffer
- gr::fec::tagged_encoder
  message_port_is_hier
- gr::fec::tagged_encoder
  message_port_is_hier_in
- gr::fec::tagged_encoder
  message_port_is_hier_out
- gr::fec::tagged_encoder
  message_port_pub
- gr::fec::tagged_encoder
  message_port_register_in
- gr::fec::tagged_encoder
  message_port_register_out
- gr::fec::tagged_encoder
  message_port_sub
- gr::fec::tagged_encoder
  message_port_unsub
- gr::fec::tagged_encoder
  message_ports_in
- gr::fec::tagged_encoder
  message_ports_out
- gr::fec::tagged_encoder
  message_subscribers
- gr::fec::tagged_encoder
  min_noutput_items
- gr::fec::tagged_encoder
  min_output_buffer
- gr::fec::tagged_encoder
  mp_relative_rate
- gr::fec::tagged_encoder
  msg_accepter
- gr::fec::tagged_encoder
  msg_queue
- gr::fec::tagged_encoder
  name
- gr::fec::tagged_encoder
  nitems_read
- gr::fec::tagged_encoder
  nitems_written
- gr::fec::tagged_encoder
  nmsgs
- gr::fec::tagged_encoder
  no_pc_rpc
- gr::fec::tagged_encoder
  notify_msg_neighbors
- gr::fec::tagged_encoder
  output_multiple
- gr::fec::tagged_encoder
  output_multiple_set
- gr::fec::tagged_encoder
  output_signature
- gr::fec::tagged_encoder
  parse_length_tags
- gr::fec::tagged_encoder
  pc_input_buffers_full
- gr::fec::tagged_encoder
  pc_input_buffers_full
- gr::fec::tagged_encoder
  pc_input_buffers_full_avg
- gr::fec::tagged_encoder
  pc_input_buffers_full_avg
- gr::fec::tagged_encoder
  pc_input_buffers_full_var
- gr::fec::tagged_encoder
  pc_input_buffers_full_var
- gr::fec::tagged_encoder
  pc_noutput_items
- gr::fec::tagged_encoder
  pc_noutput_items_avg
- gr::fec::tagged_encoder
  pc_noutput_items_var
- gr::fec::tagged_encoder
  pc_nproduced
- gr::fec::tagged_encoder
  pc_nproduced_avg
- gr::fec::tagged_encoder
  pc_nproduced_var
- gr::fec::tagged_encoder
  pc_output_buffers_full
- gr::fec::tagged_encoder
  pc_output_buffers_full
- gr::fec::tagged_encoder
  pc_output_buffers_full_avg
- gr::fec::tagged_encoder
  pc_output_buffers_full_avg
- gr::fec::tagged_encoder
  pc_output_buffers_full_var
- gr::fec::tagged_encoder
  pc_output_buffers_full_var
- gr::fec::tagged_encoder
  pc_throughput_avg
- gr::fec::tagged_encoder
  pc_work_time
- gr::fec::tagged_encoder
  pc_work_time_avg
- gr::fec::tagged_encoder
  pc_work_time_total
- gr::fec::tagged_encoder
  pc_work_time_var
- gr::fec::tagged_encoder
  post
- gr::fec::tagged_encoder
  processor_affinity
- gr::fec::tagged_encoder
  produce
- gr::fec::tagged_encoder
  relative_rate
- gr::fec::tagged_encoder
  relative_rate_d
- gr::fec::tagged_encoder
  relative_rate_i
- gr::fec::tagged_encoder
  remove_item_tag
- gr::fec::tagged_encoder
  remove_item_tag
- gr::fec::tagged_encoder
  replace_buffer
- gr::fec::tagged_encoder
  reset_perf_counters
- gr::fec::tagged_encoder
  rpc_set
- gr::fec::tagged_encoder
  sample_delay
- gr::fec::tagged_encoder
  set_alignment
- gr::fec::tagged_encoder
  set_blkd_input_timer_value
- gr::fec::tagged_encoder
  set_block_alias
- gr::fec::tagged_encoder
  set_color
- gr::fec::tagged_encoder
  set_detail
- gr::fec::tagged_encoder
  set_fixed_rate
- gr::fec::tagged_encoder
  set_history
- gr::fec::tagged_encoder
  set_input_signature
- gr::fec::tagged_encoder
  set_inverse_relative_rate
- gr::fec::tagged_encoder
  set_is_unaligned
- gr::fec::tagged_encoder
  set_log_level
- gr::fec::tagged_encoder
  set_max_noutput_items
- gr::fec::tagged_encoder
  set_max_output_buffer
- gr::fec::tagged_encoder
  set_max_output_buffer
- gr::fec::tagged_encoder
  set_min_noutput_items
- gr::fec::tagged_encoder
  set_min_output_buffer
- gr::fec::tagged_encoder
  set_min_output_buffer
- gr::fec::tagged_encoder
  set_msg_handler
- gr::fec::tagged_encoder
  set_output_multiple
- gr::fec::tagged_encoder
  set_output_signature
- gr::fec::tagged_encoder
  set_processor_affinity
- gr::fec::tagged_encoder
  set_relative_rate
- gr::fec::tagged_encoder
  set_relative_rate
- gr::fec::tagged_encoder
  set_tag_propagation_policy
- gr::fec::tagged_encoder
  set_thread_priority
- gr::fec::tagged_encoder
  set_unaligned
- gr::fec::tagged_encoder
  setup_pc_rpc
- gr::fec::tagged_encoder
  setup_rpc
- gr::fec::tagged_encoder
  shared_from_base
- gr::fec::tagged_encoder
  sptr
- gr::fec::tagged_encoder
  start
- gr::fec::tagged_encoder
  stop
- gr::fec::tagged_encoder
  symbol_name
- gr::fec::tagged_encoder
  symbolic_id
- gr::fec::tagged_encoder
  system_handler
- gr::fec::tagged_encoder
  tag_propagation_policy
- gr::fec::tagged_encoder
  tag_propagation_policy_t
- gr::fec::tagged_encoder
  tagged_stream_block
- gr::fec::tagged_encoder
  tagged_stream_block
- gr::fec::tagged_encoder
  thread_priority
- gr::fec::tagged_encoder
  to_basic_block
- gr::fec::tagged_encoder
  TPP_ALL_TO_ALL
- gr::fec::tagged_encoder
  TPP_CUSTOM
- gr::fec::tagged_encoder
  TPP_DONT
- gr::fec::tagged_encoder
  TPP_ONE_TO_ONE
- gr::fec::tagged_encoder
  unaligned
- gr::fec::tagged_encoder
  unique_id
- gr::fec::tagged_encoder
  unset_max_noutput_items
- gr::fec::tagged_encoder
  unset_processor_affinity
- gr::fec::tagged_encoder
  update_length_tags
- gr::fec::tagged_encoder
  update_rate
- gr::fec::tagged_encoder
  vcolor
- gr::fec::tagged_encoder
  WHITE
- gr::fec::tagged_encoder
  work
- gr::fec::tagged_encoder
  WORK_CALLED_PRODUCE
- gr::fec::tagged_encoder
  WORK_DONE
- gr::fec::tagged_encoder
  work_return_t
- gr::fec::tagged_encoder
  ~basic_block
- gr::fec::tagged_encoder
  ~block
- gr::fec::tagged_encoder
  ~msg_accepter