<?xml version="1.0"?>
<!--
###################################################
## Create a Rectangular Constellation Object
###################################################
 -->
<block>
  <name>Constellation Rect. Object</name>
  <key>variable_constellation_rect</key>
  <category>Modulators</category>
  <import>from gnuradio import digital</import>
  <var_make>self.$(id) = $(id) = digital.constellation_rect($const_points, $sym_map, $rot_sym, $real_sect, $imag_sect, $w_real_sect, $w_imag_sect).base()
#if str($soft_dec_lut).lower() == '"auto"' or str($soft_dec_lut).lower() == "'auto'"
self.$(id).gen_soft_dec_lut($precision)
#else if str($soft_dec_lut) != 'None'
self.$(id).set_soft_dec_lut($soft_dec_lut, $precision)
#end if
</var_make>

  <var_value>digital.constellation_rect($const_points, $sym_map, $rot_sym, $real_sect, $imag_sect, $w_real_sect, $w_imag_sect)</var_value>

  <make></make>
  <!--<callback>set_softbits($softbits_lut, $precision)</callback>-->

  <param>
    <name>Symbol Map</name>
    <key>sym_map</key>
    <value>[0, 1, 3, 2]</value>
    <type>int_vector</type>
  </param>

  <param>
    <name>Constellation Points</name>
    <key>const_points</key>
    <value>[-1-1j, -1+1j, 1+1j, 1-1j]</value>
    <type>complex_vector</type>
  </param>

  <param>
    <name>Rotational Symmetry</name>
    <key>rot_sym</key>
    <value>4</value>
    <type>int</type>
  </param>

  <param>
    <name>Real Sectors</name>
    <key>real_sect</key>
    <value>2</value>
    <type>int</type>
  </param>

  <param>
    <name>Imaginary Sectors</name>
    <key>imag_sect</key>
    <value>2</value>
    <type>int</type>
  </param>

  <param>
    <name>Width Real Sectors</name>
    <key>w_real_sect</key>
    <value>1</value>
    <type>int</type>
  </param>

  <param>
    <name>Width Imaginary Sectors</name>
    <key>w_imag_sect</key>
    <value>1</value>
    <type>int</type>
  </param>

  <param>
    <name>Soft bits precision</name>
    <key>precision</key>
    <value>8</value>
    <type>int</type>
    <hide>part</hide>
  </param>

  <param>
    <name>Soft Decisions LUT</name>
    <key>soft_dec_lut</key>
    <value>None</value>
    <type>raw</type>
    <hide>#if str($soft_dec_lut) == 'None' then 'part' else 'none'#</hide>
  </param>
</block>
