gr::fec::async_decoder
gr::block
gnuradio/fec/async_decoder.h
std::shared_ptr< async_decoder > std::shared_ptr<async_decoder> gr::fec::async_decoder::sptr sptr gr::fec::async_decoder::sptr
sptr static sptr gr::fec::async_decoder::make (generic_decoder::sptr my_decoder, bool packed=false, bool rev_pack=true, int mtu=1500) make gr::fec::async_decoder::make generic_decoder::sptr my_decoder bool packed false bool rev_pack true int mtu 1500

Build the PDU-based FEC decoder block from an FECAPI decoder object.

my_decoder

An FECAPI decoder object child of the generic_decoder class.

packed

Sets output to packed bytes if true; otherwise, 1 bit per byte.

rev_pack

If packing bits, should they be reversed?

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::async_decoder::general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override=0 general_work gr::fec::async_decoder::general_work general_work int noutput_items gr_vector_int & ninput_items gr_vector_const_void_star & input_items gr_vector_void_star & output_items

compute output items from input items

noutput_items

number of output items to write on each output stream

ninput_items

number of input items available on each input stream

input_items

vector of pointers to the input items, one entry per input stream

output_items

vector of pointers to the output items, one entry per output stream

number of items actually written to each output stream or WORK_CALLED_PRODUCE or WORK_DONE. It is OK to return a value less than noutput_items.

WORK_CALLED_PRODUCE is used where not all outputs produce the same number of items. general_work must call produce() for each output to indicate the number of items actually produced.

WORK_DONE indicates that no more data will be produced by this block.

general_work must call consume or consume_each to indicate how many items were consumed on each input stream.

Creates the decoder block for use in GNU Radio flowgraphs from a given FEC API object derived from the generic_decoder class.

Decodes frames received as async messages over a message port. This decoder deployment expects messages of soft decision symbols in and can produce either packed, PDU messages (`packed` = True) or messages full of unpacked bits (`packed` = False).

This decoder works off a full message as one frame or block to decode. The message length is used to calculate the frame length. To support this, the decoder variable used will have had its frame_size set. This block treats that initial frame_size value as the maximum transmission unit (MTU) and will not process frames larger than that after being decoded.

The packed PDU form of this deployment is designed to work well with other PDU-based blocks to operate within the processing flow of data packets or frames.

Due to differences in how data is packed and processed, this block also offers the ability to change the direction of how bits are packed. All inputs messages are one soft decision per item. By default, the `rev_pack` mode is set to True. Using this setup allows the async block to behave with PDUs in the same operation and format as the tagged stream decoders. That is, putting the same data into both the tagged stream decoder deployment and this with the default setting should produce the same data.

Because the block handles data as a full frame per message, this decoder deployment cannot work with any decoders that require history. For example, the gr::fec::code::cc_decoder decoder in streaming mode requires an extra rate*(K-1) bits to complete the decoding, so it would have to wait for the next message to come in and finish processing. Therefore, the streaming mode of the CC decoder is not allowed. The other three modes will work with this deployment since the frame is self-contained for decoding.

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