id: analog_agc2_cc
label: AGC2
category: '[Analog]'
flags: '[python, cpp]'
templates:
  imports: from gnuradio import analog
  make: analog.agc2_cc(${attack_rate}, ${decay_rate}, ${reference}, ${gain}, ${max_gain})
  callbacks: !!python/tuple
  - set_attack_rate(${rate})
  - set_decay_rate(${rate})
  - set_reference(${reference})
  - set_gain(${gain})
  - set_max_gain(${max_gain})
parameters:
- id: attack_rate
  label: Attack_rate
  dtype: float
  read_only: true
- id: decay_rate
  label: Decay_rate
  dtype: float
  read_only: true
- id: reference
  label: Reference
  dtype: float
  read_only: false
- id: gain
  label: Gain
  dtype: float
  read_only: false
- id: max_gain
  label: Max_gain
  dtype: float
  read_only: false
inputs:
- domain: stream
  dtype: sizeof(gr_complex)
outputs:
- domain: stream
  dtype: sizeof(gr_complex)
cpp_templates:
  includes: '#include <gnuradio/analog/agc2_cc.h>'
  declarations: analog::agc2_cc::sptr ${id}
  make: this->${id} = analog::agc2_cc::make(${attack_rate}, ${decay_rate}, ${reference},
    ${gain}, ${max_gain})
  callbacks: !!python/tuple
  - set_attack_rate(${rate})
  - set_decay_rate(${rate})
  - set_reference(${reference})
  - set_gain(${gain})
  - set_max_gain(${max_gain})
  link: gnuradio-analog
documentation:
- "/*!\n     * \\brief high performance Automatic Gain Control class with\n     *
  attack and decay rates.\n     * \\ingroup level_controllers_blk\n     *\n     *
  \\details\n     * For Power the absolute value of the complex number is used.\n
  \    */"
- // gr::analog::agc2_cc::sptr
- "/*!\n       * Build a complex value AGC loop block with attack and decay rates.\n
  \      *\n       * \\param attack_rate the update rate of the loop when in attack
  mode.\n       * \\param decay_rate the update rate of the loop when in decay mode.\n
  \      * \\param reference reference value to adjust signal power to.\n       *
  \\param gain initial gain value.\n       */"
- /* namespace analog */
- /* namespace gr */
- /* INCLUDED_ANALOG_AGC2_CC_H */
file_format: 1
