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

Create the FEC decoder block by taking in the FECAPI decoder object as well as input and output sizes.

my_decoder

An FECAPI decoder object (See gr::fec::generic_decoder).

input_item_size

The size of the input items (often the my_decoder object can tell us this).

output_item_size

The size of the output items (often the my_decoder object can tell us this).

lengthtagname

Key name of the tagged stream frame size.

mtu

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

int int gr::fec::tagged_decoder::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_decoder::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_decoder::calculate_output_stream_length (const gr_vector_int &ninput_items) override=0 calculate_output_stream_length gr::fec::tagged_decoder::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.

General FEC decoding block that takes in a decoder variable object (derived from gr::fec::general_decoder) for use in a flowgraph.

This block uses a decoder variable object (derived from gr::fec::generic_decoder) to decode data within a flowgraph. This block interacts with the general FECAPI architecture to handle all passing all input and output data in a flowgraph. The decoder variable takes care of understanding the requirements, data types and sizes, and boundary conditions of the specific FEC decoding algorithm.

Generally, this block is used within the fec.extended_decoder Python block to handle some input/output formatting issues. In the FECAPI, the decoder variable sets properties like the input and output types and sizes and whether the output is packed or unpacked bytes. The fec.extended_decoder uses this information to set up an gr::hier_block2 structure to make sure the I/O to the variable is handled consistently, such as to make sure all inputs are floats with one soft symbol per item and the outputs are unpacked bytes with the bit in the LSB.

See gr::fec::generic_decoder for detail on what information an FECAPI variable object can set if using this block directly and not as part of the fec.extended_decoder.

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