gr::fec::async_encoder
gr::block
gnuradio/fec/async_encoder.h
std::shared_ptr< async_encoder > std::shared_ptr<async_encoder> gr::fec::async_encoder::sptr sptr gr::fec::async_encoder::sptr
sptr static sptr gr::fec::async_encoder::make (generic_encoder::sptr my_encoder, bool packed=false, bool rev_unpack=true, bool rev_pack=true, int mtu=1500) make gr::fec::async_encoder::make generic_encoder::sptr my_encoder bool packed false bool rev_unpack true bool rev_pack true int mtu 1500

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

my_encoder

An FECAPI encoder object child of the generic_encoder class.

packed

True if working on packed bytes (like PDUs).

rev_unpack

Reverse the unpacking order from input bytes to bits.

rev_pack

Reverse the packing order from bits to output bytes.

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::async_encoder::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_encoder::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 encoder block for use in GNU Radio flowgraphs with async message from a given FEC API object derived from the generic_encoder class.

Encodes frames received as async messages or as a PDU over a message port. This encoder works off a full message as one frame or block to encode. The message length is used as the frame length. To support this, the encoder 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.

This deployment works off messages and expects them to either be messages full of unpacked bits or PDU messages, which means full bytes of a frame from the higher layers, including things like headers, tails, CRC check bytes, etc. For handling PDUs, set the `packed` option of this deployment block to True. The block will then use the FEC API to properly unpack the bits from the PDU, pass it through the encoder, and repack them to output the PDUs for the next stage of processing.

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 unpacked and packed, where reading or writing from the LSB or MSB. By default, the `rev_unpack` and `rev_pack` modes are set to True. Using this setup allows the async block to behave with PDUs in the same operation and format as the tagged stream encoders. That is, putting the same data into both the tagged stream encoder deployment and this with these default settings should produce the same data.

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