commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 36/57: fec: wip: mods for ber plotting. Now


From: git
Subject: [Commit-gnuradio] [gnuradio] 36/57: fec: wip: mods for ber plotting. Now adding theoretical BPSK in AWGN curve.
Date: Wed, 21 May 2014 03:10:28 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

trondeau pushed a commit to branch master
in repository gnuradio.

commit cf84d24e7792aefe8ae7b24536bde23d2ae00770
Author: Tom Rondeau <address@hidden>
Date:   Tue May 13 14:33:18 2014 -0400

    fec: wip: mods for ber plotting. Now adding theoretical BPSK in AWGN curve.
---
 gnuradio-runtime/python/gnuradio/gr/__init__.py    |    6 +-
 gr-fec/doc/fec.dox                                 |   57 +
 gr-fec/examples/ber_curve_gen.grc                  | 1461 +++++++-------------
 gr-fec/examples/fecapi_decoders.grc                | 1216 ++++++----------
 gr-fec/examples/fecapi_tagged_decoders.grc         |  837 ++++++-----
 gr-fec/examples/fecapi_tagged_encoders.grc         |  954 ++++++-------
 gr-fec/grc/fec_bercurve_generator.xml              |   46 +-
 gr-fec/grc/fec_block_tree.xml                      |    1 -
 gr-fec/grc/variable_cc_decoder_def_list.xml        |    2 +-
 gr-fec/grc/variable_cc_encoder_def_list.xml        |   15 +-
 gr-fec/grc/variable_ccsds_decoder_def_list.xml     |   93 --
 gr-fec/grc/variable_ccsds_encoder_def_list.xml     |   15 +-
 gr-fec/grc/variable_dummy_decoder_def_list.xml     |    2 +-
 gr-fec/grc/variable_dummy_encoder_def_list.xml     |    2 +-
 .../grc/variable_repetition_decoder_def_list.xml   |    2 +-
 .../grc/variable_repetition_encoder_def_list.xml   |    2 +-
 gr-fec/include/gnuradio/fec/CMakeLists.txt         |    1 -
 gr-fec/include/gnuradio/fec/cc_decoder.h           |   19 +-
 gr-fec/include/gnuradio/fec/ccsds_decoder.h        |   99 --
 gr-fec/lib/CMakeLists.txt                          |    1 -
 gr-fec/lib/ccsds_decoder_impl.cc                   |  192 ---
 gr-fec/lib/ccsds_decoder_impl.h                    |   83 --
 gr-fec/lib/decoder_impl.cc                         |    8 +-
 gr-fec/lib/decoder_impl.h                          |    1 -
 gr-fec/python/fec/bercurve_generator.py            |    5 +-
 gr-fec/python/fec/extended_decoder.py              |    8 +
 gr-fec/python/fec/extended_encoder.py              |    8 +
 gr-fec/python/fec/fec_test.py                      |   17 +-
 gr-fec/swig/fec_swig.i                             |    2 -
 gr-qtgui/lib/ber_sink_b_impl.cc                    |  161 +--
 gr-qtgui/lib/ber_sink_b_impl.h                     |   17 +-
 31 files changed, 2033 insertions(+), 3300 deletions(-)

diff --git a/gnuradio-runtime/python/gnuradio/gr/__init__.py 
b/gnuradio-runtime/python/gnuradio/gr/__init__.py
index c8b6141..4fc55c6 100644
--- a/gnuradio-runtime/python/gnuradio/gr/__init__.py
+++ b/gnuradio-runtime/python/gnuradio/gr/__init__.py
@@ -49,8 +49,10 @@ from gateway import basic_block, sync_block, decim_block, 
interp_block
 # Force the preference database to be initialized
 prefs = prefs.singleton
 
-log = gr.logger("gr_log")
+log = gr.logger("log")
+log.add_console_appender(prefs().get_string("LOG", "log_level", "off"), 
'gr::log %d :%p: %m%n')
 log.set_level(prefs().get_string("LOG", "log_level", "notset"))
 
-log_debug = gr.logger("gr_log_debug")
+log_debug = gr.logger("log_debug")
+log_debug.add_console_appender(prefs().get_string("LOG", "debug_level", 
"off"), 'gr::debug %d :%p: %m%n')
 log_debug.set_level(prefs().get_string("LOG", "debug_level", "notset"))
diff --git a/gr-fec/doc/fec.dox b/gr-fec/doc/fec.dox
index c8114ee..3f8850e 100644
--- a/gr-fec/doc/fec.dox
+++ b/gr-fec/doc/fec.dox
@@ -21,4 +21,61 @@ by using:
     help(fec)
 \endcode
 
+
+\section fec_coding_vars Encoding/Decoding Variables
+
+\subsection fec_parallelism Parallelism
+
+The code variables in GNU Radio Companion have the ability to create
+multiple encoder/decoder variables by selecting the level of
+parallelism. It is up the encoder to understand how to handle the
+parallelism. The following discussion explains the difference between
+the two levels and how and when to use. Generally, normal applications
+will just use a single level of parallelism.
+
+The GRC variable declarations for the different coders has a setting
+for <i>Parallelism</i>, which can be either 1 or 2. If set to 1, then
+the resulting variable is a list of coder blocks with the same
+settings. If set to 2, then the resulting variable is a list of lists
+of coder blocks. The code that accepts these variables must understand
+how to handle the parallelism. Most applications would set this to 1.
+
+The standard fec.extended_encoder ("FEC Extended Encoder" in GRC) and
+fec.exended_decoder ("FEC Extended Decoder" in GRC) can handle a
+Parallelism of 1. They accept a list of coder variables as defined by
+Dimension 1 and can multithread the application based on the
+"Threading Type" setting:
+
+\li <b>None</b>: does no parallel threading of the coders. Even if
+Dimension 1 is > 1, the encoder/decoder will ignore this setting and
+only use the first object in the list.
+
+\li <b>Ordinary</b>: all "Dimension 1" number (N) of encoder/decoder
+blocks will be used in parallel. The hier_block2 will block
+deinterleave the packets into N streams (using
+gr::blocks::deinterleave with a value of blocksize as the frame length
+and no relative rate changes) and pass these to each of the N coders
+to process the frames in parallel. The output of each coder is then
+interleaved back together to make a single output stream.
+
+\li <b>Capillary</b>: all "Dimension 1" number (N) of encoder/decoder
+blocks will be used in parallel, much like in the <b>Ordinary</b>
+mode. In this mode, however, the frames get split up in a tree-like
+fashion, where each branch launches 2 more branches. This means that N
+must be a factor of 2 for this mode to work. It tends to handle the
+load of the encoders/decoders better than the <b>Ordinary</b> mode.
+
+Note that the threading modes only work when using constant-length
+frames. If using the coders in tagged stream mode where the frame
+lengths may change, the <b>Ordinary</b> and <b>Capillary</b> modes are
+not available.
+
+The GRC example "ber_curve_gen.grc" uses a Parallelism of 2. This
+creates a list of lists of coders. The first dimension of the list
+corresponds to the number of Es/N0 values being used in the BER
+simulation. This allows the application to process all values of Es/N0
+simultaneously. Dimension 2 in this case allows the same concept of
+parallelism discussed above with the <b>None</b>, <b>Ordinary</b>, and
+<b>Capillary</b> models of threading.
+
 */
diff --git a/gr-fec/examples/ber_curve_gen.grc 
b/gr-fec/examples/ber_curve_gen.grc
index f4844fd..dfc57b3 100644
--- a/gr-fec/examples/ber_curve_gen.grc
+++ b/gr-fec/examples/ber_curve_gen.grc
@@ -1,19 +1,55 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Mon May 12 21:57:30 2014</timestamp>
+  <timestamp>Tue May 13 14:23:51 2014</timestamp>
   <block>
-    <key>variable</key>
+    <key>options</key>
     <param>
       <key>id</key>
-      <value>framebits</value>
+      <value>ber_curve_gen</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>4096</value>
+      <key>title</key>
+      <value></value>
+    </param>
+    <param>
+      <key>author</key>
+      <value></value>
+    </param>
+    <param>
+      <key>description</key>
+      <value></value>
+    </param>
+    <param>
+      <key>window_size</key>
+      <value>2000,2000</value>
+    </param>
+    <param>
+      <key>generate_options</key>
+      <value>qt_gui</value>
+    </param>
+    <param>
+      <key>category</key>
+      <value>Custom</value>
+    </param>
+    <param>
+      <key>run_options</key>
+      <value>prompt</value>
+    </param>
+    <param>
+      <key>run</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>max_nouts</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>realtime_scheduling</key>
+      <value></value>
     </param>
     <param>
       <key>alias</key>
@@ -21,7 +57,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(160, 101)</value>
+      <value>(10, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -32,7 +68,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>rate</value>
+      <value>esno_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -40,7 +76,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>2</value>
+      <value>numpy.arange(0, 8, .5) </value>
     </param>
     <param>
       <key>alias</key>
@@ -48,7 +84,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(249, 373)</value>
+      <value>(13, 193)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -59,7 +95,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>polys</value>
+      <value>framebits</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -67,7 +103,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>[79, 109]</value>
+      <value>4096</value>
     </param>
     <param>
       <key>alias</key>
@@ -75,7 +111,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(110, 371)</value>
+      <value>(160, 101)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -86,7 +122,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>k</value>
+      <value>rate</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -94,7 +130,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>7</value>
+      <value>2</value>
     </param>
     <param>
       <key>alias</key>
@@ -102,7 +138,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(16, 370)</value>
+      <value>(249, 373)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -113,15 +149,15 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>esno_0</value>
+      <value>polys</value>
     </param>
     <param>
       <key>_enabled</key>
-      <value>False</value>
+      <value>True</value>
     </param>
     <param>
       <key>value</key>
-      <value>numpy.arange(0, 8, .5) </value>
+      <value>[79, 109]</value>
     </param>
     <param>
       <key>alias</key>
@@ -129,7 +165,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(13, 192)</value>
+      <value>(110, 371)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -140,7 +176,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>samp_rate_0</value>
+      <value>k</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -148,7 +184,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>35000000</value>
+      <value>7</value>
     </param>
     <param>
       <key>alias</key>
@@ -156,7 +192,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(12, 99)</value>
+      <value>(16, 370)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -167,7 +203,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>esno_0</value>
+      <value>samp_rate_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -175,7 +211,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>numpy.arange(0, 14, 0.5) </value>
+      <value>35000000</value>
     </param>
     <param>
       <key>alias</key>
@@ -183,7 +219,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(14, 283)</value>
+      <value>(12, 99)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -191,222 +227,187 @@
     </param>
   </block>
   <block>
-    <key>fec_bercurve_generator</key>
+    <key>variable_dummy_decoder_def</key>
     <param>
       <key>id</key>
-      <value>fec_bercurve_generator_0_0</value>
+      <value>dec_dummy</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>esno</key>
-      <value>esno_0</value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>samp_rate</key>
-      <value>samp_rate_0</value>
+      <key>ndim</key>
+      <value>2</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>enc_rep</value>
+      <key>dim1</key>
+      <value>len(esno_0)</value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>dec_rep</value>
+      <key>dim2</key>
+      <value>1</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>'11'</value>
+      <key>framebits</key>
+      <value>framebits</value>
     </param>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
       <key>_coordinate</key>
-      <value>(481, 132)</value>
+      <value>(594, 604)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-    <bus_source>1</bus_source>
   </block>
   <block>
-    <key>fec_bercurve_generator</key>
+    <key>variable_dummy_encoder_def</key>
     <param>
       <key>id</key>
-      <value>fec_bercurve_generator_0_0_0</value>
+      <value>enc_dummy</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>esno</key>
-      <value>esno_0</value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>samp_rate</key>
-      <value>samp_rate_0</value>
+      <key>ndim</key>
+      <value>2</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>enc_dummy</value>
+      <key>dim1</key>
+      <value>len(esno_0)</value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>dec_dummy</value>
+      <key>dim2</key>
+      <value>1</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>'11'</value>
+      <key>framebits</key>
+      <value>framebits</value>
     </param>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
       <key>_coordinate</key>
-      <value>(481, 9)</value>
+      <value>(592, 455)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-    <bus_source>1</bus_source>
   </block>
   <block>
-    <key>fec_bercurve_generator</key>
+    <key>variable_repetition_encoder_def</key>
     <param>
       <key>id</key>
-      <value>fec_bercurve_generator_0</value>
+      <value>enc_rep</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>esno</key>
-      <value>esno_0</value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>samp_rate</key>
-      <value>samp_rate_0</value>
+      <key>ndim</key>
+      <value>2</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>enc_cc</value>
+      <key>dim1</key>
+      <value>len(esno_0)</value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>dec_cc</value>
+      <key>dim2</key>
+      <value>1</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>'11'</value>
+      <key>framebits</key>
+      <value>framebits</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>rep</key>
+      <value>3</value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
       <key>_coordinate</key>
-      <value>(481, 260)</value>
+      <value>(301, 455)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-    <bus_source>1</bus_source>
   </block>
   <block>
-    <key>options</key>
+    <key>variable_cc_encoder_def</key>
     <param>
       <key>id</key>
-      <value>ber_curve_gen</value>
+      <value>enc_cc</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>title</key>
-      <value></value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>author</key>
-      <value></value>
+      <key>ndim</key>
+      <value>2</value>
     </param>
     <param>
-      <key>description</key>
-      <value></value>
+      <key>dim1</key>
+      <value>len(esno_0)</value>
     </param>
     <param>
-      <key>window_size</key>
-      <value>2000,2000</value>
+      <key>dim2</key>
+      <value>1</value>
     </param>
     <param>
-      <key>generate_options</key>
-      <value>qt_gui</value>
+      <key>framebits</key>
+      <value>framebits</value>
     </param>
     <param>
-      <key>category</key>
-      <value>Custom</value>
+      <key>k</key>
+      <value>k</value>
     </param>
     <param>
-      <key>run_options</key>
-      <value>prompt</value>
+      <key>rate</key>
+      <value>rate</value>
     </param>
     <param>
-      <key>run</key>
-      <value>True</value>
+      <key>polys</key>
+      <value>polys</value>
     </param>
     <param>
-      <key>max_nouts</key>
+      <key>state_start</key>
       <value>0</value>
     </param>
     <param>
-      <key>realtime_scheduling</key>
-      <value></value>
+      <key>mode</key>
+      <value>fec.CC_STREAMING</value>
     </param>
     <param>
       <key>alias</key>
@@ -414,7 +415,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(10, 10)</value>
+      <value>(13, 451)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -422,27 +423,209 @@
     </param>
   </block>
   <block>
-    <key>qtgui_bercurve_sink</key>
+    <key>variable_cc_decoder_def</key>
     <param>
       <key>id</key>
-      <value>qtgui_bercurve_sink_0</value>
+      <value>dec_cc</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>esno</key>
-      <value>esno_0</value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>berminerrors</key>
-      <value>10000000</value>
+      <key>ndim</key>
+      <value>2</value>
     </param>
     <param>
-      <key>berlimit</key>
-      <value>-15</value>
-    </param>
+      <key>dim1</key>
+      <value>len(esno_0)</value>
+    </param>
+    <param>
+      <key>dim2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>framebits</key>
+      <value>framebits</value>
+    </param>
+    <param>
+      <key>k</key>
+      <value>k</value>
+    </param>
+    <param>
+      <key>rate</key>
+      <value>rate</value>
+    </param>
+    <param>
+      <key>polys</key>
+      <value>polys</value>
+    </param>
+    <param>
+      <key>state_start</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>state_end</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>mode</key>
+      <value>fec.CC_STREAMING</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(15, 705)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable_repetition_decoder_def</key>
+    <param>
+      <key>id</key>
+      <value>dec_rep</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>"ok"</value>
+    </param>
+    <param>
+      <key>ndim</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>dim1</key>
+      <value>len(esno_0)</value>
+    </param>
+    <param>
+      <key>dim2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>framebits</key>
+      <value>framebits</value>
+    </param>
+    <param>
+      <key>rep</key>
+      <value>3</value>
+    </param>
+    <param>
+      <key>prob</key>
+      <value>0.5</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(301, 626)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_bercurve_generator</key>
+    <param>
+      <key>id</key>
+      <value>fec_bercurve_generator_0_0_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>esno</key>
+      <value>esno_0</value>
+    </param>
+    <param>
+      <key>samp_rate</key>
+      <value>samp_rate_0</value>
+    </param>
+    <param>
+      <key>encoder_list</key>
+      <value>enc_dummy</value>
+    </param>
+    <param>
+      <key>decoder_list</key>
+      <value>dec_dummy</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>'11'</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>"capillary"</value>
+    </param>
+    <param>
+      <key>seed</key>
+      <value>-100</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(481, 9)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <bus_source>1</bus_source>
+  </block>
+  <block>
+    <key>qtgui_bercurve_sink</key>
+    <param>
+      <key>id</key>
+      <value>qtgui_bercurve_sink_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>esno</key>
+      <value>esno_0</value>
+    </param>
+    <param>
+      <key>berminerrors</key>
+      <value>1000</value>
+    </param>
+    <param>
+      <key>berlimit</key>
+      <value>-15</value>
+    </param>
     <param>
       <key>num_curves</key>
       <value>3</value>
@@ -717,7 +900,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(934, 58)</value>
+      <value>(925, 56)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -726,662 +909,134 @@
     <bus_sink>1</bus_sink>
   </block>
   <block>
-    <key>variable_dummy_decoder_def</key>
+    <key>fec_bercurve_generator</key>
     <param>
       <key>id</key>
-      <value>dec_dummy</value>
+      <value>fec_bercurve_generator_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>esno</key>
+      <value>esno_0</value>
     </param>
     <param>
-      <key>ndim</key>
-      <value>2</value>
+      <key>samp_rate</key>
+      <value>samp_rate_0</value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>len(esno_0)</value>
+      <key>encoder_list</key>
+      <value>enc_rep</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>decoder_list</key>
+      <value>dec_rep</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>framebits</value>
+      <key>puncpat</key>
+      <value>'11'</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>"capillary"</value>
+    </param>
+    <param>
+      <key>seed</key>
+      <value>-100</value>
     </param>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
       <key>_coordinate</key>
-      <value>(594, 604)</value>
+      <value>(481, 132)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
+    <bus_source>1</bus_source>
   </block>
   <block>
-    <key>variable_dummy_encoder_def</key>
+    <key>fec_bercurve_generator</key>
     <param>
       <key>id</key>
-      <value>enc_dummy</value>
+      <value>fec_bercurve_generator_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>esno</key>
+      <value>esno_0</value>
     </param>
     <param>
-      <key>ndim</key>
-      <value>2</value>
+      <key>samp_rate</key>
+      <value>samp_rate_0</value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>len(esno_0)</value>
+      <key>encoder_list</key>
+      <value>enc_cc</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>decoder_list</key>
+      <value>dec_cc</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>framebits</value>
+      <key>puncpat</key>
+      <value>'11'</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>"capillary"</value>
+    </param>
+    <param>
+      <key>seed</key>
+      <value>-100</value>
     </param>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(592, 455)</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_repetition_encoder_def</key>
-    <param>
-      <key>id</key>
-      <value>enc_rep</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>dim1</key>
-      <value>len(esno_0)</value>
-    </param>
-    <param>
-      <key>dim2</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>framebits</key>
-      <value>framebits</value>
-    </param>
-    <param>
-      <key>rep</key>
-      <value>3</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(301, 455)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_cc_encoder_def</key>
-    <param>
-      <key>id</key>
-      <value>enc_cc</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>dim1</key>
-      <value>len(esno_0)</value>
-    </param>
-    <param>
-      <key>dim2</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>framebits</key>
-      <value>framebits</value>
-    </param>
-    <param>
-      <key>k</key>
-      <value>k</value>
-    </param>
-    <param>
-      <key>rate</key>
-      <value>rate</value>
-    </param>
-    <param>
-      <key>polys</key>
-      <value>polys</value>
-    </param>
-    <param>
-      <key>state_start</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>mode</key>
-      <value>fec.CC_STREAMING</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(13, 451)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_cc_decoder_def</key>
-    <param>
-      <key>id</key>
-      <value>dec_cc</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>dim1</key>
-      <value>len(esno_0)</value>
-    </param>
-    <param>
-      <key>dim2</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>framebits</key>
-      <value>framebits</value>
-    </param>
-    <param>
-      <key>k</key>
-      <value>k</value>
-    </param>
-    <param>
-      <key>rate</key>
-      <value>rate</value>
-    </param>
-    <param>
-      <key>polys</key>
-      <value>polys</value>
-    </param>
-    <param>
-      <key>state_start</key>
+      <key>minoutbuf</key>
       <value>0</value>
     </param>
     <param>
-      <key>state_end</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>mode</key>
-      <value>fec.CC_STREAMING</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(15, 705)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
+      <key>maxoutbuf</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>variable_repetition_decoder_def</key>
-    <param>
-      <key>id</key>
-      <value>dec_rep</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>dim1</key>
-      <value>len(esno_0)</value>
-    </param>
-    <param>
-      <key>dim2</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>framebits</key>
-      <value>framebits</value>
-    </param>
-    <param>
-      <key>rep</key>
-      <value>3</value>
-    </param>
-    <param>
-      <key>prob</key>
-      <value>0.5</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
     <param>
       <key>_coordinate</key>
-      <value>(301, 626)</value>
+      <value>(481, 260)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
+    <bus_source>1</bus_source>
   </block>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>56</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>1</source_key>
-    <sink_key>57</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>2</source_key>
-    <sink_key>58</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>3</source_key>
-    <sink_key>59</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>4</source_key>
-    <sink_key>60</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>5</source_key>
-    <sink_key>61</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>6</source_key>
-    <sink_key>62</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>7</source_key>
-    <sink_key>63</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>8</source_key>
-    <sink_key>64</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>9</source_key>
-    <sink_key>65</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>10</source_key>
-    <sink_key>66</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>11</source_key>
-    <sink_key>67</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>12</source_key>
-    <sink_key>68</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>13</source_key>
-    <sink_key>69</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>14</source_key>
-    <sink_key>70</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>15</source_key>
-    <sink_key>71</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>16</source_key>
-    <sink_key>72</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>17</source_key>
-    <sink_key>73</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>18</source_key>
-    <sink_key>74</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>19</source_key>
-    <sink_key>75</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>20</source_key>
-    <sink_key>76</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>21</source_key>
-    <sink_key>77</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>22</source_key>
-    <sink_key>78</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>23</source_key>
-    <sink_key>79</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>24</source_key>
-    <sink_key>80</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>25</source_key>
-    <sink_key>81</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>26</source_key>
-    <sink_key>82</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>27</source_key>
-    <sink_key>83</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>28</source_key>
-    <sink_key>84</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>29</source_key>
-    <sink_key>85</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>30</source_key>
-    <sink_key>86</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>31</source_key>
-    <sink_key>87</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>32</source_key>
-    <sink_key>88</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>33</source_key>
-    <sink_key>89</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>34</source_key>
-    <sink_key>90</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>35</source_key>
-    <sink_key>91</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>36</source_key>
-    <sink_key>92</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>37</source_key>
-    <sink_key>93</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>38</source_key>
-    <sink_key>94</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>39</source_key>
-    <sink_key>95</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>40</source_key>
-    <sink_key>96</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>41</source_key>
-    <sink_key>97</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>42</source_key>
-    <sink_key>98</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>43</source_key>
-    <sink_key>99</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>44</source_key>
-    <sink_key>100</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>45</source_key>
-    <sink_key>101</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>46</source_key>
-    <sink_key>102</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>47</source_key>
-    <sink_key>103</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>48</source_key>
-    <sink_key>104</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>49</source_key>
-    <sink_key>105</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>50</source_key>
-    <sink_key>106</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>51</source_key>
-    <sink_key>107</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>52</source_key>
-    <sink_key>108</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>53</source_key>
-    <sink_key>109</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>54</source_key>
-    <sink_key>110</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>55</source_key>
-    <sink_key>111</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>56</source_key>
-    <sink_key>169</sink_key>
-  </connection>
-  <connection>
     <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>0</source_key>
@@ -1577,492 +1232,402 @@
     <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>32</source_key>
+    <sink_key>96</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>0</source_key>
     <sink_key>32</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>33</source_key>
+    <source_key>1</source_key>
     <sink_key>33</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>34</source_key>
+    <source_key>2</source_key>
     <sink_key>34</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>35</source_key>
+    <source_key>3</source_key>
     <sink_key>35</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>36</source_key>
+    <source_key>4</source_key>
     <sink_key>36</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>37</source_key>
+    <source_key>5</source_key>
     <sink_key>37</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>38</source_key>
+    <source_key>6</source_key>
     <sink_key>38</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>39</source_key>
+    <source_key>7</source_key>
     <sink_key>39</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>40</source_key>
+    <source_key>8</source_key>
     <sink_key>40</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>41</source_key>
+    <source_key>9</source_key>
     <sink_key>41</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>42</source_key>
+    <source_key>10</source_key>
     <sink_key>42</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>43</source_key>
+    <source_key>11</source_key>
     <sink_key>43</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>44</source_key>
+    <source_key>12</source_key>
     <sink_key>44</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>45</source_key>
+    <source_key>13</source_key>
     <sink_key>45</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>46</source_key>
+    <source_key>14</source_key>
     <sink_key>46</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>47</source_key>
+    <source_key>15</source_key>
     <sink_key>47</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>48</source_key>
+    <source_key>16</source_key>
     <sink_key>48</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>49</source_key>
+    <source_key>17</source_key>
     <sink_key>49</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>50</source_key>
+    <source_key>18</source_key>
     <sink_key>50</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>51</source_key>
+    <source_key>19</source_key>
     <sink_key>51</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>52</source_key>
+    <source_key>20</source_key>
     <sink_key>52</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>53</source_key>
+    <source_key>21</source_key>
     <sink_key>53</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>54</source_key>
+    <source_key>22</source_key>
     <sink_key>54</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>55</source_key>
+    <source_key>23</source_key>
     <sink_key>55</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>24</source_key>
+    <sink_key>56</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>25</source_key>
+    <sink_key>57</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>26</source_key>
+    <sink_key>58</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>27</source_key>
+    <sink_key>59</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>28</source_key>
+    <sink_key>60</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>29</source_key>
+    <sink_key>61</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>30</source_key>
+    <sink_key>62</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>31</source_key>
+    <sink_key>63</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>56</source_key>
-    <sink_key>168</sink_key>
+    <source_key>32</source_key>
+    <sink_key>97</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>0</source_key>
-    <sink_key>112</sink_key>
+    <sink_key>64</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>1</source_key>
-    <sink_key>113</sink_key>
+    <sink_key>65</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>2</source_key>
-    <sink_key>114</sink_key>
+    <sink_key>66</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>3</source_key>
-    <sink_key>115</sink_key>
+    <sink_key>67</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>4</source_key>
-    <sink_key>116</sink_key>
+    <sink_key>68</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>5</source_key>
-    <sink_key>117</sink_key>
+    <sink_key>69</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>6</source_key>
-    <sink_key>118</sink_key>
+    <sink_key>70</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>7</source_key>
-    <sink_key>119</sink_key>
+    <sink_key>71</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>8</source_key>
-    <sink_key>120</sink_key>
+    <sink_key>72</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>9</source_key>
-    <sink_key>121</sink_key>
+    <sink_key>73</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>10</source_key>
-    <sink_key>122</sink_key>
+    <sink_key>74</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>11</source_key>
-    <sink_key>123</sink_key>
+    <sink_key>75</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>12</source_key>
-    <sink_key>124</sink_key>
+    <sink_key>76</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>13</source_key>
-    <sink_key>125</sink_key>
+    <sink_key>77</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>14</source_key>
-    <sink_key>126</sink_key>
+    <sink_key>78</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>15</source_key>
-    <sink_key>127</sink_key>
+    <sink_key>79</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>16</source_key>
-    <sink_key>128</sink_key>
+    <sink_key>80</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>17</source_key>
-    <sink_key>129</sink_key>
+    <sink_key>81</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>18</source_key>
-    <sink_key>130</sink_key>
+    <sink_key>82</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>19</source_key>
-    <sink_key>131</sink_key>
+    <sink_key>83</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>20</source_key>
-    <sink_key>132</sink_key>
+    <sink_key>84</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>21</source_key>
-    <sink_key>133</sink_key>
+    <sink_key>85</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>22</source_key>
-    <sink_key>134</sink_key>
+    <sink_key>86</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>23</source_key>
-    <sink_key>135</sink_key>
+    <sink_key>87</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>24</source_key>
-    <sink_key>136</sink_key>
+    <sink_key>88</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>25</source_key>
-    <sink_key>137</sink_key>
+    <sink_key>89</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>26</source_key>
-    <sink_key>138</sink_key>
+    <sink_key>90</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>27</source_key>
-    <sink_key>139</sink_key>
+    <sink_key>91</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>28</source_key>
-    <sink_key>140</sink_key>
+    <sink_key>92</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>29</source_key>
-    <sink_key>141</sink_key>
+    <sink_key>93</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>30</source_key>
-    <sink_key>142</sink_key>
+    <sink_key>94</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>31</source_key>
-    <sink_key>143</sink_key>
+    <sink_key>95</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>32</source_key>
-    <sink_key>144</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>33</source_key>
-    <sink_key>145</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>34</source_key>
-    <sink_key>146</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>35</source_key>
-    <sink_key>147</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>36</source_key>
-    <sink_key>148</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>37</source_key>
-    <sink_key>149</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>38</source_key>
-    <sink_key>150</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>39</source_key>
-    <sink_key>151</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>40</source_key>
-    <sink_key>152</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>41</source_key>
-    <sink_key>153</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>42</source_key>
-    <sink_key>154</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>43</source_key>
-    <sink_key>155</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>44</source_key>
-    <sink_key>156</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>45</source_key>
-    <sink_key>157</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>46</source_key>
-    <sink_key>158</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>47</source_key>
-    <sink_key>159</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>48</source_key>
-    <sink_key>160</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>49</source_key>
-    <sink_key>161</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>50</source_key>
-    <sink_key>162</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>51</source_key>
-    <sink_key>163</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>52</source_key>
-    <sink_key>164</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>53</source_key>
-    <sink_key>165</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>54</source_key>
-    <sink_key>166</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>55</source_key>
-    <sink_key>167</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_bercurve_generator_0</source_block_id>
-    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
-    <source_key>56</source_key>
-    <sink_key>170</sink_key>
+    <sink_key>98</sink_key>
   </connection>
 </flow_graph>
diff --git a/gr-fec/examples/fecapi_decoders.grc 
b/gr-fec/examples/fecapi_decoders.grc
index 5cb00dd..41692d3 100644
--- a/gr-fec/examples/fecapi_decoders.grc
+++ b/gr-fec/examples/fecapi_decoders.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Mon May 12 22:15:20 2014</timestamp>
+  <timestamp>Tue May 13 17:26:19 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -454,18 +454,22 @@
     </param>
   </block>
   <block>
-    <key>digital_map_bb</key>
+    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>digital_map_bb_0</value>
+      <value>blocks_char_to_float_0_2_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>map</key>
-      <value>[-1, 1]</value>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>scale</key>
+      <value>1</value>
     </param>
     <param>
       <key>alias</key>
@@ -485,7 +489,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(755, 730)</value>
+      <value>(942, 292)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -493,22 +497,18 @@
     </param>
   </block>
   <block>
-    <key>blocks_char_to_float</key>
+    <key>digital_map_bb</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_1</value>
+      <value>digital_map_bb_0_0_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>scale</key>
-      <value>1</value>
+      <key>map</key>
+      <value>[-1, 1]</value>
     </param>
     <param>
       <key>alias</key>
@@ -528,7 +528,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(938, 731)</value>
+      <value>(749, 291)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -536,46 +536,38 @@
     </param>
   </block>
   <block>
-    <key>variable_repetition_encoder_def</key>
+    <key>blocks_unpack_k_bits_bb</key>
     <param>
       <key>id</key>
-      <value>enc_rep</value>
+      <value>blocks_unpack_k_bits_bb_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>dim1</key>
-      <value>4</value>
+      <key>k</key>
+      <value>8</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>frame_size*8</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>rep</key>
-      <value>3</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1213, 880)</value>
+      <value>(119, 432)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -583,50 +575,50 @@
     </param>
   </block>
   <block>
-    <key>variable_repetition_decoder_def</key>
+    <key>fec_extended_encoder</key>
     <param>
       <key>id</key>
-      <value>dec_rep</value>
+      <value>fec_extended_encoder_1_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>encoder_list</key>
+      <value>enc_dummy</value>
     </param>
     <param>
-      <key>ndim</key>
-      <value>1</value>
+      <key>threadtype</key>
+      <value>capillary</value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>4</value>
+      <key>puncpat</key>
+      <value>puncpat</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>lentagname</key>
+      <value>None</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>frame_size*8</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>rep</key>
-      <value>3</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>prob</key>
-      <value>0.5</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1213, 1022)</value>
+      <value>(440, 260)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -634,42 +626,50 @@
     </param>
   </block>
   <block>
-    <key>variable_dummy_decoder_def</key>
+    <key>fec_extended_encoder</key>
     <param>
       <key>id</key>
-      <value>dec_dummy</value>
+      <value>fec_extended_encoder_1_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>encoder_list</key>
+      <value>enc_rep</value>
     </param>
     <param>
-      <key>ndim</key>
-      <value>1</value>
+      <key>threadtype</key>
+      <value>capillary</value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>1</value>
+      <key>puncpat</key>
+      <value>puncpat</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>lentagname</key>
+      <value>None</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>frame_size*8</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>alias</key>
+      <key>affinity</key>
       <value></value>
     </param>
     <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
       <key>_coordinate</key>
-      <value>(947, 1007)</value>
+      <value>(443, 403)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -677,42 +677,38 @@
     </param>
   </block>
   <block>
-    <key>variable_dummy_encoder_def</key>
+    <key>digital_map_bb</key>
     <param>
       <key>id</key>
-      <value>enc_dummy</value>
+      <value>digital_map_bb_0_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
-      <value>1</value>
+      <key>map</key>
+      <value>[-1, 1]</value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>1</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>frame_size*8</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(949, 881)</value>
+      <value>(750, 434)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -720,66 +716,42 @@
     </param>
   </block>
   <block>
-    <key>variable_cc_decoder_def</key>
+    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>dec_cc</value>
+      <value>blocks_char_to_float_0_2</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
+      <key>vlen</key>
       <value>1</value>
     </param>
     <param>
-      <key>dim1</key>
+      <key>scale</key>
       <value>1</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>4</value>
-    </param>
-    <param>
-      <key>framebits</key>
-      <value>frame_size*8</value>
-    </param>
-    <param>
-      <key>k</key>
-      <value>k</value>
-    </param>
-    <param>
-      <key>rate</key>
-      <value>rate</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>polys</key>
-      <value>polys</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>state_start</key>
+      <key>minoutbuf</key>
       <value>0</value>
     </param>
     <param>
-      <key>state_end</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>mode</key>
-      <value>fec.CC_STREAMING</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(384, 1069)</value>
+      <value>(943, 435)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -787,54 +759,30 @@
     </param>
   </block>
   <block>
-    <key>variable_cc_encoder_def</key>
+    <key>parameter</key>
     <param>
       <key>id</key>
-      <value>enc_cc</value>
+      <value>frame_size</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>dim1</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>dim2</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>framebits</key>
-      <value>frame_size*8</value>
-    </param>
-    <param>
-      <key>k</key>
-      <value>k</value>
-    </param>
-    <param>
-      <key>rate</key>
-      <value>rate</value>
+      <key>label</key>
+      <value>Frame Size</value>
     </param>
     <param>
-      <key>polys</key>
-      <value>polys</value>
+      <key>value</key>
+      <value>30</value>
     </param>
     <param>
-      <key>state_start</key>
-      <value>0</value>
+      <key>type</key>
+      <value>intx</value>
     </param>
     <param>
-      <key>mode</key>
-      <value>fec.CC_STREAMING</value>
+      <key>short_id</key>
+      <value></value>
     </param>
     <param>
       <key>alias</key>
@@ -842,7 +790,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(383, 840)</value>
+      <value>(249, 7)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -853,7 +801,7 @@
     <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_2_0</value>
+      <value>blocks_char_to_float_0_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -885,7 +833,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(942, 292)</value>
+      <value>(1466, 435)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -893,18 +841,38 @@
     </param>
   </block>
   <block>
-    <key>digital_map_bb</key>
+    <key>fec_extended_decoder</key>
     <param>
       <key>id</key>
-      <value>digital_map_bb_0_0_0_0</value>
+      <value>fec_extended_decoder_0_1</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>map</key>
-      <value>[-1, 1]</value>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
+    </param>
+    <param>
+      <key>decoder_list</key>
+      <value>dec_rep</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>none</value>
+    </param>
+    <param>
+      <key>ann</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>lentagname</key>
+      <value>None</value>
     </param>
     <param>
       <key>alias</key>
@@ -924,7 +892,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(749, 291)</value>
+      <value>(1162, 393)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -932,18 +900,22 @@
     </param>
   </block>
   <block>
-    <key>blocks_unpack_k_bits_bb</key>
+    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>blocks_unpack_k_bits_bb_0</value>
+      <value>blocks_char_to_float_0_0_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>k</key>
-      <value>8</value>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>scale</key>
+      <value>1</value>
     </param>
     <param>
       <key>alias</key>
@@ -963,7 +935,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(119, 432)</value>
+      <value>(1465, 292)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -971,30 +943,22 @@
     </param>
   </block>
   <block>
-    <key>fec_extended_encoder</key>
+    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>fec_extended_encoder_1_0_0</value>
+      <value>blocks_char_to_float_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>enc_dummy</value>
-    </param>
-    <param>
-      <key>threadtype</key>
-      <value>capillary</value>
-    </param>
-    <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
     <param>
-      <key>lentagname</key>
-      <value>None</value>
+      <key>scale</key>
+      <value>1</value>
     </param>
     <param>
       <key>alias</key>
@@ -1014,7 +978,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(440, 260)</value>
+      <value>(1465, 584)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1022,22 +986,30 @@
     </param>
   </block>
   <block>
-    <key>fec_extended_encoder</key>
+    <key>fec_extended_decoder</key>
     <param>
       <key>id</key>
-      <value>fec_extended_encoder_1_0</value>
+      <value>fec_extended_decoder_0_1_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>enc_rep</value>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
+    </param>
+    <param>
+      <key>decoder_list</key>
+      <value>dec_dummy</value>
     </param>
     <param>
       <key>threadtype</key>
-      <value>capillary</value>
+      <value>none</value>
+    </param>
+    <param>
+      <key>ann</key>
+      <value>None</value>
     </param>
     <param>
       <key>puncpat</key>
@@ -1065,7 +1037,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(443, 403)</value>
+      <value>(1161, 250)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1073,18 +1045,38 @@
     </param>
   </block>
   <block>
-    <key>digital_map_bb</key>
+    <key>fec_extended_decoder</key>
     <param>
       <key>id</key>
-      <value>digital_map_bb_0_0_0</value>
+      <value>fec_extended_decoder_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>map</key>
-      <value>[-1, 1]</value>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
+    </param>
+    <param>
+      <key>decoder_list</key>
+      <value>dec_cc</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>none</value>
+    </param>
+    <param>
+      <key>ann</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>lentagname</key>
+      <value>None</value>
     </param>
     <param>
       <key>alias</key>
@@ -1104,7 +1096,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(750, 434)</value>
+      <value>(1161, 542)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1115,7 +1107,7 @@
     <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_2</value>
+      <value>blocks_char_to_float_0_1</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -1147,46 +1139,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(943, 435)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>parameter</key>
-    <param>
-      <key>id</key>
-      <value>frame_size</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>Frame Size</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>30</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>intx</value>
-    </param>
-    <param>
-      <key>short_id</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(249, 7)</value>
+      <value>(440, 184)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1197,7 +1150,7 @@
     <key>blocks_delay</key>
     <param>
       <key>id</key>
-      <value>blocks_delay_0_0</value>
+      <value>blocks_delay_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -1237,7 +1190,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1698, 899)</value>
+      <value>(695, 184)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1245,21 +1198,33 @@
     </param>
   </block>
   <block>
-    <key>blocks_char_to_float</key>
+    <key>blocks_vector_source_x</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_1_0</value>
+      <value>blocks_vector_source_x_0_1_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
-      <key>scale</key>
+      <key>vector</key>
+      <value>(frame_size/15)*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0, 
127]</value>
+    </param>
+    <param>
+      <key>tags</key>
+      <value>[]</value>
+    </param>
+    <param>
+      <key>repeat</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>vlen</key>
       <value>1</value>
     </param>
     <param>
@@ -1280,50 +1245,58 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1466, 731)</value>
+      <value>(59, 200)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>0</value>
+      <value>180</value>
     </param>
   </block>
   <block>
-    <key>blocks_char_to_float</key>
+    <key>variable_ccsds_encoder_def</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_0_0</value>
+      <value>enc_ccsds</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>vlen</key>
+      <key>value</key>
+      <value>"ok"</value>
+    </param>
+    <param>
+      <key>ndim</key>
       <value>1</value>
     </param>
     <param>
-      <key>scale</key>
+      <key>dim1</key>
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>dim2</key>
+      <value>4</value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>framebits</key>
+      <value>frame_size*8</value>
     </param>
     <param>
-      <key>minoutbuf</key>
+      <key>state_start</key>
       <value>0</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>mode</key>
+      <value>fec.CC_STREAMING</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1466, 435)</value>
+      <value>(379, 841)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1331,10 +1304,10 @@
     </param>
   </block>
   <block>
-    <key>fec_extended_decoder</key>
+    <key>variable_cc_decoder_def</key>
     <param>
       <key>id</key>
-      <value>fec_extended_decoder_0_1</value>
+      <value>dec_cc</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -1342,47 +1315,55 @@
     </param>
     <param>
       <key>value</key>
-      <value>fec_extended_decoder</value>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>dec_rep</value>
+      <key>ndim</key>
+      <value>1</value>
     </param>
     <param>
-      <key>threadtype</key>
-      <value>none</value>
+      <key>dim1</key>
+      <value>1</value>
     </param>
     <param>
-      <key>ann</key>
-      <value>None</value>
+      <key>dim2</key>
+      <value>4</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
+      <key>framebits</key>
+      <value>frame_size*8</value>
     </param>
     <param>
-      <key>lentagname</key>
-      <value>None</value>
+      <key>k</key>
+      <value>k</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>rate</key>
+      <value>rate</value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>polys</key>
+      <value>polys</value>
     </param>
     <param>
-      <key>minoutbuf</key>
+      <key>state_start</key>
       <value>0</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>state_end</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(1162, 393)</value>
+      <key>mode</key>
+      <value>fec.CC_STREAMING</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(379, 1010)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1390,42 +1371,46 @@
     </param>
   </block>
   <block>
-    <key>blocks_char_to_float</key>
+    <key>variable_repetition_encoder_def</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_0_0_0</value>
+      <value>enc_rep</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>scale</key>
+      <key>ndim</key>
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>dim1</key>
+      <value>4</value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>dim2</key>
+      <value>1</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>framebits</key>
+      <value>frame_size*8</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>rep</key>
+      <value>3</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1465, 292)</value>
+      <value>(936, 841)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1433,42 +1418,93 @@
     </param>
   </block>
   <block>
-    <key>blocks_char_to_float</key>
+    <key>variable_repetition_decoder_def</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_0</value>
+      <value>dec_rep</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>vlen</key>
+      <key>value</key>
+      <value>"ok"</value>
+    </param>
+    <param>
+      <key>ndim</key>
       <value>1</value>
     </param>
     <param>
-      <key>scale</key>
+      <key>dim1</key>
+      <value>4</value>
+    </param>
+    <param>
+      <key>dim2</key>
       <value>1</value>
     </param>
     <param>
+      <key>framebits</key>
+      <value>frame_size*8</value>
+    </param>
+    <param>
+      <key>rep</key>
+      <value>3</value>
+    </param>
+    <param>
+      <key>prob</key>
+      <value>0.5</value>
+    </param>
+    <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>_coordinate</key>
+      <value>(936, 983)</value>
     </param>
     <param>
-      <key>minoutbuf</key>
+      <key>_rotation</key>
       <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>variable_dummy_decoder_def</key>
+    <param>
+      <key>id</key>
+      <value>dec_dummy</value>
+    </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>"ok"</value>
+    </param>
+    <param>
+      <key>ndim</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>dim1</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>dim2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>framebits</key>
+      <value>frame_size*8</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1465, 584)</value>
+      <value>(670, 968)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1476,10 +1512,10 @@
     </param>
   </block>
   <block>
-    <key>fec_extended_decoder</key>
+    <key>variable_dummy_encoder_def</key>
     <param>
       <key>id</key>
-      <value>fec_extended_decoder_0_1_0</value>
+      <value>enc_dummy</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -1487,19 +1523,54 @@
     </param>
     <param>
       <key>value</key>
-      <value>fec_extended_decoder</value>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>dec_dummy</value>
+      <key>ndim</key>
+      <value>1</value>
     </param>
     <param>
-      <key>threadtype</key>
-      <value>none</value>
+      <key>dim1</key>
+      <value>1</value>
     </param>
     <param>
-      <key>ann</key>
-      <value>None</value>
+      <key>dim2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>framebits</key>
+      <value>frame_size*8</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(672, 842)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_extended_encoder</key>
+    <param>
+      <key>id</key>
+      <value>fec_extended_encoder_1</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>encoder_list</key>
+      <value>enc_ccsds</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>capillary</value>
     </param>
     <param>
       <key>puncpat</key>
@@ -1527,7 +1598,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1161, 250)</value>
+      <value>(441, 552)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1574,7 +1645,7 @@
     </param>
     <param>
       <key>nconnections</key>
-      <value>5</value>
+      <value>4</value>
     </param>
     <param>
       <key>update_time</key>
@@ -1869,481 +1940,6 @@
       <value>0</value>
     </param>
   </block>
-  <block>
-    <key>fec_extended_encoder</key>
-    <param>
-      <key>id</key>
-      <value>fec_extended_encoder_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>encoder_list</key>
-      <value>enc_cc</value>
-    </param>
-    <param>
-      <key>threadtype</key>
-      <value>capillary</value>
-    </param>
-    <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
-    </param>
-    <param>
-      <key>lentagname</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(441, 552)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>fec_extended_decoder</key>
-    <param>
-      <key>id</key>
-      <value>fec_extended_decoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>fec_extended_decoder</value>
-    </param>
-    <param>
-      <key>decoder_list</key>
-      <value>dec_cc</value>
-    </param>
-    <param>
-      <key>threadtype</key>
-      <value>none</value>
-    </param>
-    <param>
-      <key>ann</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
-    </param>
-    <param>
-      <key>lentagname</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1161, 542)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>fec_extended_encoder</key>
-    <param>
-      <key>id</key>
-      <value>fec_extended_encoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>encoder_list</key>
-      <value>enc_ccsds</value>
-    </param>
-    <param>
-      <key>threadtype</key>
-      <value>capillary</value>
-    </param>
-    <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
-    </param>
-    <param>
-      <key>lentagname</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(440, 700)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>fec_extended_decoder</key>
-    <param>
-      <key>id</key>
-      <value>fec_extended_decoder_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>fec_extended_decoder</value>
-    </param>
-    <param>
-      <key>decoder_list</key>
-      <value>dec_ccsds</value>
-    </param>
-    <param>
-      <key>threadtype</key>
-      <value>capillary</value>
-    </param>
-    <param>
-      <key>ann</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
-    </param>
-    <param>
-      <key>lentagname</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1162, 689)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_char_to_float</key>
-    <param>
-      <key>id</key>
-      <value>blocks_char_to_float_0_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>scale</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(440, 184)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_delay</key>
-    <param>
-      <key>id</key>
-      <value>blocks_delay_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>delay</key>
-      <value>32</value>
-    </param>
-    <param>
-      <key>num_ports</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(695, 184)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_ccsds_encoder_def</key>
-    <param>
-      <key>id</key>
-      <value>enc_ccsds</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>dim1</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>dim2</key>
-      <value>4</value>
-    </param>
-    <param>
-      <key>framebits</key>
-      <value>frame_size*8</value>
-    </param>
-    <param>
-      <key>state_start</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>mode</key>
-      <value>fec.CC_STREAMING</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(669, 841)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_ccsds_decoder_def</key>
-    <param>
-      <key>id</key>
-      <value>dec_ccsds</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>dim1</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>dim2</key>
-      <value>4</value>
-    </param>
-    <param>
-      <key>framebits</key>
-      <value>frame_size*8</value>
-    </param>
-    <param>
-      <key>state_start</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>end_state</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>mode</key>
-      <value>fec.CC_STREAMING</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(668, 1007)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_vector_source_x</key>
-    <param>
-      <key>id</key>
-      <value>blocks_vector_source_x_0_1_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>byte</value>
-    </param>
-    <param>
-      <key>vector</key>
-      <value>(frame_size/15)*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0, 
127]</value>
-    </param>
-    <param>
-      <key>tags</key>
-      <value>[]</value>
-    </param>
-    <param>
-      <key>repeat</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(59, 200)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
   <connection>
     <source_block_id>blocks_vector_source_x_0_1_0</source_block_id>
     <sink_block_id>blocks_throttle_0</sink_block_id>
@@ -2364,12 +1960,6 @@
   </connection>
   <connection>
     <source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
-    <sink_block_id>fec_extended_encoder_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_unpack_k_bits_bb_0</source_block_id>
     <sink_block_id>fec_extended_encoder_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
@@ -2405,24 +1995,6 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_encoder_0</source_block_id>
-    <sink_block_id>digital_map_bb_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_map_bb_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_1</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_char_to_float_1</source_block_id>
-    <sink_block_id>fec_extended_decoder_0_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
     <source_block_id>digital_map_bb_0_0_0_0</source_block_id>
     <sink_block_id>blocks_char_to_float_0_2_0</sink_block_id>
     <source_key>0</source_key>
@@ -2501,30 +2073,12 @@
     <sink_key>3</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_1_0</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>4</sink_key>
-  </connection>
-  <connection>
     <source_block_id>fec_extended_decoder_0_1_0</source_block_id>
     <sink_block_id>blocks_char_to_float_0_0_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_1_0</source_block_id>
-    <sink_block_id>blocks_delay_0_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fec_extended_decoder_0_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
     <source_block_id>fec_extended_decoder_0</source_block_id>
     <sink_block_id>blocks_char_to_float_0_0</sink_block_id>
     <source_key>0</source_key>
diff --git a/gr-fec/examples/fecapi_tagged_decoders.grc 
b/gr-fec/examples/fecapi_tagged_decoders.grc
index 91053cb..9779709 100644
--- a/gr-fec/examples/fecapi_tagged_decoders.grc
+++ b/gr-fec/examples/fecapi_tagged_decoders.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Mon May 12 22:12:23 2014</timestamp>
+  <timestamp>Tue May 13 16:28:59 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -68,7 +68,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>k</value>
+      <value>samp_rate</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -76,7 +76,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>7</value>
+      <value>50000</value>
     </param>
     <param>
       <key>alias</key>
@@ -84,7 +84,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(384, 683)</value>
+      <value>(9, 95)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -95,7 +95,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>polys</value>
+      <value>length_tag</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -103,7 +103,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>[109, 79]</value>
+      <value>"packet_len"</value>
     </param>
     <param>
       <key>alias</key>
@@ -111,7 +111,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(301, 768)</value>
+      <value>(202, 112)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -122,15 +122,15 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>polys</value>
+      <value>k</value>
     </param>
     <param>
       <key>_enabled</key>
-      <value>False</value>
+      <value>True</value>
     </param>
     <param>
       <key>value</key>
-      <value>[79, 109]</value>
+      <value>7</value>
     </param>
     <param>
       <key>alias</key>
@@ -138,7 +138,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(443, 765)</value>
+      <value>(352, 1017)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -149,7 +149,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>rate</value>
+      <value>polys</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -157,7 +157,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>2</value>
+      <value>[109, 79]</value>
     </param>
     <param>
       <key>alias</key>
@@ -165,7 +165,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(485, 680)</value>
+      <value>(269, 1102)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -176,15 +176,15 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>length_tag</value>
+      <value>polys</value>
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
+      <value>False</value>
     </param>
     <param>
       <key>value</key>
-      <value>"packet_len"</value>
+      <value>[79, 109]</value>
     </param>
     <param>
       <key>alias</key>
@@ -192,7 +192,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(202, 112)</value>
+      <value>(411, 1099)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -203,7 +203,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>samp_rate</value>
+      <value>rate</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -211,7 +211,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>50000</value>
+      <value>2</value>
     </param>
     <param>
       <key>alias</key>
@@ -219,7 +219,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(9, 95)</value>
+      <value>(453, 1014)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -372,50 +372,26 @@
     </param>
   </block>
   <block>
-    <key>blocks_stream_to_tagged_stream</key>
+    <key>blocks_ctrlport_monitor_performance</key>
     <param>
       <key>id</key>
-      <value>blocks_stream_to_tagged_stream_0_0</value>
+      <value>blocks_ctrlport_monitor_performance_0</value>
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>byte</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>packet_len</key>
-      <value>frame_size*8</value>
+      <value>False</value>
     </param>
     <param>
-      <key>len_tag_key</key>
-      <value>length_tag</value>
+      <key>en</key>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
       <key>_coordinate</key>
-      <value>(595, 331)</value>
+      <value>(651, 15)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -423,73 +399,30 @@
     </param>
   </block>
   <block>
-    <key>analog_random_source_x</key>
+    <key>parameter</key>
     <param>
       <key>id</key>
-      <value>analog_random_source_x_0</value>
+      <value>puncpat</value>
     </param>
     <param>
       <key>_enabled</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>byte</value>
-    </param>
-    <param>
-      <key>min</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>max</key>
-      <value>256</value>
-    </param>
-    <param>
-      <key>num_samps</key>
-      <value>1000</value>
-    </param>
-    <param>
-      <key>repeat</key>
       <value>True</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
+      <key>label</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(99, 633)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_ctrlport_monitor_performance</key>
-    <param>
-      <key>id</key>
-      <value>blocks_ctrlport_monitor_performance_0</value>
+      <key>value</key>
+      <value>'11'</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>False</value>
+      <key>type</key>
+      <value>string</value>
     </param>
     <param>
-      <key>en</key>
-      <value>True</value>
+      <key>short_id</key>
+      <value></value>
     </param>
     <param>
       <key>alias</key>
@@ -497,7 +430,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(651, 15)</value>
+      <value>(248, 9)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -508,7 +441,7 @@
     <key>parameter</key>
     <param>
       <key>id</key>
-      <value>puncpat</value>
+      <value>frame_size</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -516,15 +449,15 @@
     </param>
     <param>
       <key>label</key>
-      <value></value>
+      <value>Frame Size</value>
     </param>
     <param>
       <key>value</key>
-      <value>'11'</value>
+      <value>30</value>
     </param>
     <param>
       <key>type</key>
-      <value>string</value>
+      <value>intx</value>
     </param>
     <param>
       <key>short_id</key>
@@ -536,7 +469,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(248, 9)</value>
+      <value>(484, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -547,7 +480,7 @@
     <key>parameter</key>
     <param>
       <key>id</key>
-      <value>frame_size</value>
+      <value>MTU</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -555,11 +488,11 @@
     </param>
     <param>
       <key>label</key>
-      <value>Frame Size</value>
+      <value>MTU</value>
     </param>
     <param>
       <key>value</key>
-      <value>30</value>
+      <value>1000</value>
     </param>
     <param>
       <key>type</key>
@@ -575,7 +508,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(484, 10)</value>
+      <value>(365, 9)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -583,29 +516,29 @@
     </param>
   </block>
   <block>
-    <key>fec_extended_encoder</key>
+    <key>blocks_stream_to_tagged_stream</key>
     <param>
       <key>id</key>
-      <value>fec_extended_encoder_0</value>
+      <value>blocks_stream_to_tagged_stream_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>enc_rep</value>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
-      <key>threadtype</key>
-      <value>none</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
+      <key>packet_len</key>
+      <value>frame_size*8</value>
     </param>
     <param>
-      <key>lentagname</key>
+      <key>len_tag_key</key>
       <value>length_tag</value>
     </param>
     <param>
@@ -626,7 +559,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(138, 474)</value>
+      <value>(595, 331)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -634,57 +567,34 @@
     </param>
   </block>
   <block>
-    <key>parameter</key>
+    <key>analog_random_source_x</key>
     <param>
       <key>id</key>
-      <value>MTU</value>
+      <value>analog_random_source_x_0</value>
     </param>
     <param>
       <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>MTU</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>1000</value>
+      <value>False</value>
     </param>
     <param>
       <key>type</key>
-      <value>intx</value>
-    </param>
-    <param>
-      <key>short_id</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(365, 9)</value>
+      <value>byte</value>
     </param>
     <param>
-      <key>_rotation</key>
+      <key>min</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>digital_map_bb</key>
     <param>
-      <key>id</key>
-      <value>digital_map_bb_0</value>
+      <key>max</key>
+      <value>256</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>num_samps</key>
+      <value>1000</value>
     </param>
     <param>
-      <key>map</key>
-      <value>[-1, 1]</value>
+      <key>repeat</key>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
@@ -704,18 +614,18 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(493, 506)</value>
+      <value>(387, 203)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>0</value>
+      <value>180</value>
     </param>
   </block>
   <block>
     <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_1</value>
+      <value>blocks_char_to_float_1_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -747,7 +657,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(678, 506)</value>
+      <value>(1242, 536)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -758,7 +668,7 @@
     <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_1_0</value>
+      <value>blocks_char_to_float_1</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -790,7 +700,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1242, 506)</value>
+      <value>(678, 536)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -798,38 +708,18 @@
     </param>
   </block>
   <block>
-    <key>fec_extended_decoder</key>
+    <key>digital_map_bb</key>
     <param>
       <key>id</key>
-      <value>fec_extended_decoder_0_0</value>
+      <value>digital_map_bb_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>fec_extended_decoder</value>
-    </param>
-    <param>
-      <key>decoder_list</key>
-      <value>dec_rep</value>
-    </param>
-    <param>
-      <key>threadtype</key>
-      <value>none</value>
-    </param>
-    <param>
-      <key>ann</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
-    </param>
-    <param>
-      <key>lentagname</key>
-      <value>length_tag</value>
+      <key>map</key>
+      <value>[-1, 1]</value>
     </param>
     <param>
       <key>alias</key>
@@ -849,7 +739,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(900, 464)</value>
+      <value>(493, 536)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -857,334 +747,332 @@
     </param>
   </block>
   <block>
-    <key>qtgui_time_sink_x</key>
+    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>qtgui_time_sink_x_0</value>
+      <value>blocks_char_to_float_1_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>float</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
     <param>
-      <key>name</key>
-      <value>QT GUI Plot</value>
+      <key>scale</key>
+      <value>1</value>
     </param>
     <param>
-      <key>size</key>
-      <value>2048</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>srate</key>
-      <value>samp_rate</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>autoscale</key>
-      <value>False</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>ymin</key>
-      <value>-0.5</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>ymax</key>
-      <value>1.5</value>
+      <key>_coordinate</key>
+      <value>(1231, 689)</value>
     </param>
     <param>
-      <key>nconnections</key>
-      <value>1</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>fec_extended_decoder</key>
     <param>
-      <key>update_time</key>
-      <value>0.10</value>
+      <key>id</key>
+      <value>fec_extended_decoder_0_0_0</value>
     </param>
     <param>
-      <key>entags</key>
+      <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>gui_hint</key>
-      <value></value>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
     </param>
     <param>
-      <key>tr_mode</key>
-      <value>qtgui.TRIG_MODE_FREE</value>
+      <key>decoder_list</key>
+      <value>dec_cc</value>
     </param>
     <param>
-      <key>tr_slope</key>
-      <value>qtgui.TRIG_SLOPE_POS</value>
+      <key>threadtype</key>
+      <value>none</value>
     </param>
     <param>
-      <key>tr_level</key>
-      <value>0.0</value>
+      <key>ann</key>
+      <value>None</value>
     </param>
     <param>
-      <key>tr_delay</key>
-      <value>0</value>
+      <key>puncpat</key>
+      <value>puncpat</value>
     </param>
     <param>
-      <key>tr_chan</key>
-      <value>0</value>
+      <key>lentagname</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>tr_tag</key>
-      <value>""</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>label1</key>
-      <value>Input</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>width1</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>color1</key>
-      <value>"blue"</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>style1</key>
-      <value>1</value>
+      <key>_coordinate</key>
+      <value>(899, 647)</value>
     </param>
     <param>
-      <key>marker1</key>
-      <value>-1</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
     <param>
-      <key>alpha1</key>
-      <value>1.0</value>
+      <key>id</key>
+      <value>blocks_char_to_float_1_1</value>
     </param>
     <param>
-      <key>label2</key>
-      <value>CC</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>width2</key>
+      <key>vlen</key>
       <value>1</value>
     </param>
     <param>
-      <key>color2</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style2</key>
+      <key>scale</key>
       <value>1</value>
     </param>
     <param>
-      <key>marker2</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha2</key>
-      <value>0.6</value>
-    </param>
-    <param>
-      <key>label3</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>width3</key>
-      <value>1</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>color3</key>
-      <value>"green"</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>style3</key>
-      <value>1</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>marker3</key>
-      <value>-1</value>
+      <key>_coordinate</key>
+      <value>(685, 689)</value>
     </param>
     <param>
-      <key>alpha3</key>
-      <value>1.0</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>digital_map_bb</key>
     <param>
-      <key>label4</key>
-      <value></value>
+      <key>id</key>
+      <value>digital_map_bb_0_0</value>
     </param>
     <param>
-      <key>width4</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>color4</key>
-      <value>"black"</value>
+      <key>map</key>
+      <value>[-1, 1]</value>
     </param>
     <param>
-      <key>style4</key>
-      <value>1</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>marker4</key>
-      <value>-1</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>alpha4</key>
-      <value>1.0</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>label5</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>width5</key>
-      <value>1</value>
+      <key>_coordinate</key>
+      <value>(502, 689)</value>
     </param>
     <param>
-      <key>color5</key>
-      <value>"cyan"</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>variable_ccsds_encoder_def</key>
     <param>
-      <key>style5</key>
-      <value>1</value>
+      <key>id</key>
+      <value>enc_ccsds</value>
     </param>
     <param>
-      <key>marker5</key>
-      <value>-1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>alpha5</key>
-      <value>1.0</value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>label6</key>
-      <value></value>
+      <key>ndim</key>
+      <value>1</value>
     </param>
     <param>
-      <key>width6</key>
+      <key>dim1</key>
       <value>1</value>
     </param>
     <param>
-      <key>color6</key>
-      <value>"magenta"</value>
+      <key>dim2</key>
+      <value>4</value>
     </param>
     <param>
-      <key>style6</key>
-      <value>1</value>
+      <key>framebits</key>
+      <value>frame_size*8</value>
     </param>
     <param>
-      <key>marker6</key>
-      <value>-1</value>
+      <key>state_start</key>
+      <value>0</value>
     </param>
     <param>
-      <key>alpha6</key>
-      <value>1.0</value>
+      <key>mode</key>
+      <value>fec.CC_STREAMING</value>
     </param>
     <param>
-      <key>label7</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>width7</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color7</key>
-      <value>"yellow"</value>
+      <key>_coordinate</key>
+      <value>(1172, 822)</value>
     </param>
     <param>
-      <key>style7</key>
-      <value>1</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>variable_repetition_encoder_def</key>
     <param>
-      <key>marker7</key>
-      <value>-1</value>
+      <key>id</key>
+      <value>enc_rep</value>
     </param>
     <param>
-      <key>alpha7</key>
-      <value>1.0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>label8</key>
-      <value></value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>width8</key>
+      <key>ndim</key>
       <value>1</value>
     </param>
     <param>
-      <key>color8</key>
-      <value>"dark red"</value>
+      <key>dim1</key>
+      <value>1</value>
     </param>
     <param>
-      <key>style8</key>
+      <key>dim2</key>
       <value>1</value>
     </param>
     <param>
-      <key>marker8</key>
-      <value>-1</value>
+      <key>framebits</key>
+      <value>MTU*8</value>
     </param>
     <param>
-      <key>alpha8</key>
-      <value>1.0</value>
+      <key>rep</key>
+      <value>3</value>
     </param>
     <param>
-      <key>label9</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>width9</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color9</key>
-      <value>"dark green"</value>
+      <key>_coordinate</key>
+      <value>(874, 869)</value>
     </param>
     <param>
-      <key>style9</key>
-      <value>1</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>variable_repetition_decoder_def</key>
     <param>
-      <key>marker9</key>
-      <value>-1</value>
+      <key>id</key>
+      <value>dec_rep</value>
     </param>
     <param>
-      <key>alpha9</key>
-      <value>1.0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>label10</key>
-      <value></value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>width10</key>
+      <key>ndim</key>
       <value>1</value>
     </param>
     <param>
-      <key>color10</key>
-      <value>"blue"</value>
+      <key>dim1</key>
+      <value>1</value>
     </param>
     <param>
-      <key>style10</key>
+      <key>dim2</key>
       <value>1</value>
     </param>
     <param>
-      <key>marker10</key>
-      <value>-1</value>
+      <key>framebits</key>
+      <value>MTU*8</value>
     </param>
     <param>
-      <key>alpha10</key>
-      <value>1.0</value>
+      <key>rep</key>
+      <value>3</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>prob</key>
+      <value>0.5</value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1475, 452)</value>
+      <value>(874, 1011)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1192,10 +1080,10 @@
     </param>
   </block>
   <block>
-    <key>variable_cc_decoder_def</key>
+    <key>variable_ccsds_decoder_def</key>
     <param>
       <key>id</key>
-      <value>dec_cc</value>
+      <value>dec_ccsds</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -1211,7 +1099,7 @@
     </param>
     <param>
       <key>dim1</key>
-      <value>2</value>
+      <value>1</value>
     </param>
     <param>
       <key>dim2</key>
@@ -1219,31 +1107,19 @@
     </param>
     <param>
       <key>framebits</key>
-      <value>MTU*8</value>
-    </param>
-    <param>
-      <key>k</key>
-      <value>k</value>
-    </param>
-    <param>
-      <key>rate</key>
-      <value>rate</value>
-    </param>
-    <param>
-      <key>polys</key>
-      <value>polys</value>
+      <value>frame_size*8</value>
     </param>
     <param>
       <key>state_start</key>
       <value>0</value>
     </param>
     <param>
-      <key>state_end</key>
+      <key>end_state</key>
       <value>-1</value>
     </param>
     <param>
       <key>mode</key>
-      <value>fec.CC_TERMINATED</value>
+      <value>fec.CC_STREAMING</value>
     </param>
     <param>
       <key>alias</key>
@@ -1251,7 +1127,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(882, 676)</value>
+      <value>(1171, 988)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1278,7 +1154,7 @@
     </param>
     <param>
       <key>dim1</key>
-      <value>4</value>
+      <value>1</value>
     </param>
     <param>
       <key>dim2</key>
@@ -1306,7 +1182,7 @@
     </param>
     <param>
       <key>mode</key>
-      <value>fec.CC_TERMINATED</value>
+      <value>fec.CC_STREAMING</value>
     </param>
     <param>
       <key>alias</key>
@@ -1314,7 +1190,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(581, 684)</value>
+      <value>(567, 843)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1322,10 +1198,10 @@
     </param>
   </block>
   <block>
-    <key>variable_repetition_decoder_def</key>
+    <key>variable_cc_decoder_def</key>
     <param>
       <key>id</key>
-      <value>dec_rep</value>
+      <value>dec_cc</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -1345,19 +1221,35 @@
     </param>
     <param>
       <key>dim2</key>
-      <value>1</value>
+      <value>4</value>
     </param>
     <param>
       <key>framebits</key>
       <value>MTU*8</value>
     </param>
     <param>
-      <key>rep</key>
-      <value>3</value>
+      <key>k</key>
+      <value>k</value>
     </param>
     <param>
-      <key>prob</key>
-      <value>0.5</value>
+      <key>rate</key>
+      <value>rate</value>
+    </param>
+    <param>
+      <key>polys</key>
+      <value>polys</value>
+    </param>
+    <param>
+      <key>state_start</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>state_end</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>mode</key>
+      <value>fec.CC_STREAMING</value>
     </param>
     <param>
       <key>alias</key>
@@ -1365,7 +1257,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1215, 765)</value>
+      <value>(563, 1076)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1373,46 +1265,50 @@
     </param>
   </block>
   <block>
-    <key>variable_repetition_encoder_def</key>
+    <key>fec_extended_encoder</key>
     <param>
       <key>id</key>
-      <value>enc_rep</value>
+      <value>fec_extended_encoder_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>encoder_list</key>
+      <value>enc_cc</value>
     </param>
     <param>
-      <key>ndim</key>
-      <value>1</value>
+      <key>threadtype</key>
+      <value>none</value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>1</value>
+      <key>puncpat</key>
+      <value>puncpat</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>lentagname</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>MTU*8</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>rep</key>
-      <value>3</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1215, 623)</value>
+      <value>(138, 658)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1420,22 +1316,38 @@
     </param>
   </block>
   <block>
-    <key>blocks_char_to_float</key>
+    <key>fec_extended_decoder</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_0_1</value>
+      <value>fec_extended_decoder_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
     </param>
     <param>
-      <key>scale</key>
-      <value>1</value>
+      <key>decoder_list</key>
+      <value>dec_ccsds</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>none</value>
+    </param>
+    <param>
+      <key>ann</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>lentagname</key>
+      <value>length_tag</value>
     </param>
     <param>
       <key>alias</key>
@@ -1455,7 +1367,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1540, 340)</value>
+      <value>(900, 494)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1466,7 +1378,7 @@
     <key>qtgui_time_sink_x</key>
     <param>
       <key>id</key>
-      <value>qtgui_time_sink_x_0_0</value>
+      <value>qtgui_time_sink_x_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -1502,7 +1414,7 @@
     </param>
     <param>
       <key>nconnections</key>
-      <value>1</value>
+      <value>2</value>
     </param>
     <param>
       <key>update_time</key>
@@ -1542,7 +1454,7 @@
     </param>
     <param>
       <key>label1</key>
-      <value>Input</value>
+      <value></value>
     </param>
     <param>
       <key>width1</key>
@@ -1566,7 +1478,7 @@
     </param>
     <param>
       <key>label2</key>
-      <value>CC</value>
+      <value></value>
     </param>
     <param>
       <key>width2</key>
@@ -1790,7 +1702,58 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1812, 287)</value>
+      <value>(1478, 577)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_extended_encoder</key>
+    <param>
+      <key>id</key>
+      <value>fec_extended_encoder_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>encoder_list</key>
+      <value>enc_ccsds</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>none</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>lentagname</key>
+      <value>length_tag</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(138, 505)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1810,44 +1773,44 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>digital_map_bb_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_1</sink_block_id>
+    <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
+    <sink_block_id>fec_extended_encoder_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_1</source_block_id>
-    <sink_block_id>fec_extended_decoder_0_0</sink_block_id>
+    <source_block_id>blocks_unpack_k_bits_bb_0_0</source_block_id>
+    <sink_block_id>blocks_stream_to_tagged_stream_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_decoder_0_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
+    <source_block_id>blocks_throttle_0</source_block_id>
+    <sink_block_id>blocks_unpack_k_bits_bb_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_encoder_0</source_block_id>
-    <sink_block_id>digital_map_bb_0</sink_block_id>
+    <source_block_id>fec_extended_decoder_0_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
-    <sink_block_id>fec_extended_encoder_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_1_1</source_block_id>
+    <sink_block_id>fec_extended_decoder_0_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_unpack_k_bits_bb_0_0</source_block_id>
-    <sink_block_id>blocks_stream_to_tagged_stream_0_0</sink_block_id>
+    <source_block_id>fec_extended_encoder_0_0</source_block_id>
+    <sink_block_id>digital_map_bb_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_throttle_0</source_block_id>
-    <sink_block_id>blocks_unpack_k_bits_bb_0_0</sink_block_id>
+    <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
+    <sink_block_id>fec_extended_encoder_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
@@ -1858,8 +1821,38 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_0_1</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_0_0</sink_block_id>
+    <source_block_id>fec_extended_encoder_0</source_block_id>
+    <sink_block_id>digital_map_bb_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_extended_decoder_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_char_to_float_1</source_block_id>
+    <sink_block_id>fec_extended_decoder_0_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>digital_map_bb_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_1</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_char_to_float_1_0_0</source_block_id>
+    <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>1</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>digital_map_bb_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
diff --git a/gr-fec/examples/fecapi_tagged_encoders.grc 
b/gr-fec/examples/fecapi_tagged_encoders.grc
index 649df7d..0af3d84 100644
--- a/gr-fec/examples/fecapi_tagged_encoders.grc
+++ b/gr-fec/examples/fecapi_tagged_encoders.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Mon May 12 15:18:11 2014</timestamp>
+  <timestamp>Tue May 13 16:20:56 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -556,334 +556,202 @@
     </param>
   </block>
   <block>
-    <key>qtgui_time_sink_x</key>
+    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>qtgui_time_sink_x_0_0_0</value>
+      <value>blocks_char_to_float_1</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>name</key>
-      <value>QT GUI Plot</value>
-    </param>
-    <param>
-      <key>size</key>
-      <value>2048</value>
-    </param>
-    <param>
-      <key>srate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>autoscale</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>ymin</key>
-      <value>-0.5</value>
-    </param>
-    <param>
-      <key>ymax</key>
-      <value>1.5</value>
-    </param>
-    <param>
-      <key>nconnections</key>
+      <key>vlen</key>
       <value>1</value>
     </param>
     <param>
-      <key>update_time</key>
-      <value>0.05</value>
-    </param>
-    <param>
-      <key>entags</key>
-      <value>True</value>
+      <key>scale</key>
+      <value>1</value>
     </param>
     <param>
-      <key>gui_hint</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>tr_mode</key>
-      <value>qtgui.TRIG_MODE_FREE</value>
-    </param>
-    <param>
-      <key>tr_slope</key>
-      <value>qtgui.TRIG_SLOPE_POS</value>
-    </param>
-    <param>
-      <key>tr_level</key>
-      <value>0.0</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>tr_delay</key>
+      <key>minoutbuf</key>
       <value>0</value>
     </param>
     <param>
-      <key>tr_chan</key>
+      <key>maxoutbuf</key>
       <value>0</value>
     </param>
     <param>
-      <key>tr_tag</key>
-      <value>packet_len</value>
-    </param>
-    <param>
-      <key>label1</key>
-      <value>CCSDS</value>
-    </param>
-    <param>
-      <key>width1</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color1</key>
-      <value>"blue"</value>
-    </param>
-    <param>
-      <key>style1</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker1</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha1</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label2</key>
-      <value>CC</value>
-    </param>
-    <param>
-      <key>width2</key>
-      <value>1</value>
+      <key>_coordinate</key>
+      <value>(881, 525)</value>
     </param>
     <param>
-      <key>color2</key>
-      <value>"red"</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_ctrlport_monitor_performance</key>
     <param>
-      <key>style2</key>
-      <value>1</value>
+      <key>id</key>
+      <value>blocks_ctrlport_monitor_performance_0</value>
     </param>
     <param>
-      <key>marker2</key>
-      <value>-1</value>
+      <key>_enabled</key>
+      <value>False</value>
     </param>
     <param>
-      <key>alpha2</key>
-      <value>0.6</value>
+      <key>en</key>
+      <value>True</value>
     </param>
     <param>
-      <key>label3</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>width3</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color3</key>
-      <value>"green"</value>
-    </param>
-    <param>
-      <key>style3</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker3</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha3</key>
-      <value>1.0</value>
+      <key>_coordinate</key>
+      <value>(651, 10)</value>
     </param>
     <param>
-      <key>label4</key>
-      <value></value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>parameter</key>
     <param>
-      <key>width4</key>
-      <value>1</value>
+      <key>id</key>
+      <value>frame_size</value>
     </param>
     <param>
-      <key>color4</key>
-      <value>"black"</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>style4</key>
-      <value>1</value>
+      <key>label</key>
+      <value>Frame Size</value>
     </param>
     <param>
-      <key>marker4</key>
-      <value>-1</value>
+      <key>value</key>
+      <value>30</value>
     </param>
     <param>
-      <key>alpha4</key>
-      <value>1.0</value>
+      <key>type</key>
+      <value>intx</value>
     </param>
     <param>
-      <key>label5</key>
+      <key>short_id</key>
       <value></value>
     </param>
     <param>
-      <key>width5</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color5</key>
-      <value>"cyan"</value>
-    </param>
-    <param>
-      <key>style5</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker5</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha5</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label6</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>width6</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color6</key>
-      <value>"magenta"</value>
-    </param>
-    <param>
-      <key>style6</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker6</key>
-      <value>-1</value>
+      <key>_coordinate</key>
+      <value>(483, 10)</value>
     </param>
     <param>
-      <key>alpha6</key>
-      <value>1.0</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_stream_to_tagged_stream</key>
     <param>
-      <key>label7</key>
-      <value></value>
+      <key>id</key>
+      <value>blocks_stream_to_tagged_stream_0_0</value>
     </param>
     <param>
-      <key>width7</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>color7</key>
-      <value>"yellow"</value>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
-      <key>style7</key>
+      <key>vlen</key>
       <value>1</value>
     </param>
     <param>
-      <key>marker7</key>
-      <value>-1</value>
+      <key>packet_len</key>
+      <value>frame_size*8</value>
     </param>
     <param>
-      <key>alpha7</key>
-      <value>1.0</value>
+      <key>len_tag_key</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>label8</key>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>width8</key>
-      <value>1</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>color8</key>
-      <value>"dark red"</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>style8</key>
-      <value>1</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>marker8</key>
-      <value>-1</value>
+      <key>_coordinate</key>
+      <value>(158, 515)</value>
     </param>
     <param>
-      <key>alpha8</key>
-      <value>1.0</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>variable_dummy_encoder_def</key>
     <param>
-      <key>label9</key>
-      <value></value>
+      <key>id</key>
+      <value>enc_dummy</value>
     </param>
     <param>
-      <key>width9</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>color9</key>
-      <value>"dark green"</value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>style9</key>
+      <key>ndim</key>
       <value>1</value>
     </param>
     <param>
-      <key>marker9</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha9</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label10</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width10</key>
+      <key>dim1</key>
       <value>1</value>
     </param>
     <param>
-      <key>color10</key>
-      <value>"blue"</value>
-    </param>
-    <param>
-      <key>style10</key>
+      <key>dim2</key>
       <value>1</value>
     </param>
     <param>
-      <key>marker10</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha10</key>
-      <value>1.0</value>
+      <key>framebits</key>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
       <key>_coordinate</key>
-      <value>(1106, 494)</value>
+      <value>(1209, 693)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -891,61 +759,54 @@
     </param>
   </block>
   <block>
-    <key>blocks_char_to_float</key>
+    <key>variable_cc_encoder_def</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_1</value>
+      <value>enc_cc</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>scale</key>
+      <key>ndim</key>
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
+      <key>dim1</key>
+      <value>2</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>dim2</key>
+      <value>1</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>framebits</key>
+      <value>MTU*8</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(881, 525)</value>
+      <key>k</key>
+      <value>k</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>rate</key>
+      <value>rate</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_ctrlport_monitor_performance</key>
     <param>
-      <key>id</key>
-      <value>blocks_ctrlport_monitor_performance_0</value>
+      <key>polys</key>
+      <value>polys</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>False</value>
+      <key>state_start</key>
+      <value>0</value>
     </param>
     <param>
-      <key>en</key>
-      <value>True</value>
+      <key>mode</key>
+      <value>fec.CC_TERMINATED</value>
     </param>
     <param>
       <key>alias</key>
@@ -953,7 +814,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(651, 10)</value>
+      <value>(618, 691)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -961,30 +822,42 @@
     </param>
   </block>
   <block>
-    <key>parameter</key>
+    <key>variable_ccsds_encoder_def</key>
     <param>
       <key>id</key>
-      <value>frame_size</value>
+      <value>enc_ccsds</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>label</key>
-      <value>Frame Size</value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>value</key>
-      <value>30</value>
+      <key>ndim</key>
+      <value>1</value>
     </param>
     <param>
-      <key>type</key>
-      <value>intx</value>
+      <key>dim1</key>
+      <value>2</value>
     </param>
     <param>
-      <key>short_id</key>
-      <value></value>
+      <key>dim2</key>
+      <value>4</value>
+    </param>
+    <param>
+      <key>framebits</key>
+      <value>MTU*8</value>
+    </param>
+    <param>
+      <key>state_start</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>mode</key>
+      <value>fec.CC_TERMINATED</value>
     </param>
     <param>
       <key>alias</key>
@@ -992,7 +865,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(483, 10)</value>
+      <value>(909, 693)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1000,62 +873,50 @@
     </param>
   </block>
   <block>
-    <key>variable_cc_encoder_def</key>
+    <key>fec_extended_encoder</key>
     <param>
       <key>id</key>
-      <value>enc_cc</value>
+      <value>fec_extended_encoder_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>ndim</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>dim1</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>encoder_list</key>
+      <value>enc_ccsds</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>MTU*8</value>
+      <key>threadtype</key>
+      <value>none</value>
     </param>
     <param>
-      <key>k</key>
-      <value>k</value>
+      <key>puncpat</key>
+      <value>puncpat</value>
     </param>
     <param>
-      <key>rate</key>
-      <value>rate</value>
+      <key>lentagname</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>polys</key>
-      <value>polys</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>state_start</key>
-      <value>0</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>mode</key>
-      <value>fec.CC_TERMINATED</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(621, 691)</value>
+      <value>(542, 364)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1098,7 +959,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(880, 370)</value>
+      <value>(881, 395)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1433,7 +1294,50 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1111, 339)</value>
+      <value>(1112, 364)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
+    <param>
+      <key>id</key>
+      <value>blocks_char_to_float_1_0_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>scale</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(880, 262)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1444,7 +1348,7 @@
     <key>fec_extended_encoder</key>
     <param>
       <key>id</key>
-      <value>fec_extended_encoder_0_0</value>
+      <value>fec_extended_encoder_0_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -1452,7 +1356,7 @@
     </param>
     <param>
       <key>encoder_list</key>
-      <value>enc_ccsds</value>
+      <value>enc_dummy</value>
     </param>
     <param>
       <key>threadtype</key>
@@ -1483,153 +1387,343 @@
       <value>0</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(541, 339)</value>
+      <key>_coordinate</key>
+      <value>(541, 231)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>qtgui_time_sink_x</key>
+    <param>
+      <key>id</key>
+      <value>qtgui_time_sink_x_0_0_1</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>float</value>
+    </param>
+    <param>
+      <key>name</key>
+      <value>QT GUI Plot</value>
+    </param>
+    <param>
+      <key>size</key>
+      <value>2048</value>
+    </param>
+    <param>
+      <key>srate</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>autoscale</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>ymin</key>
+      <value>-0.5</value>
+    </param>
+    <param>
+      <key>ymax</key>
+      <value>1.5</value>
+    </param>
+    <param>
+      <key>nconnections</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>update_time</key>
+      <value>0.05</value>
+    </param>
+    <param>
+      <key>entags</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>gui_hint</key>
+      <value></value>
+    </param>
+    <param>
+      <key>tr_mode</key>
+      <value>qtgui.TRIG_MODE_FREE</value>
+    </param>
+    <param>
+      <key>tr_slope</key>
+      <value>qtgui.TRIG_SLOPE_POS</value>
+    </param>
+    <param>
+      <key>tr_level</key>
+      <value>0.0</value>
+    </param>
+    <param>
+      <key>tr_delay</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>tr_chan</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>tr_tag</key>
+      <value>packet_len</value>
+    </param>
+    <param>
+      <key>label1</key>
+      <value>CCSDS</value>
+    </param>
+    <param>
+      <key>width1</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>color1</key>
+      <value>"blue"</value>
+    </param>
+    <param>
+      <key>style1</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>marker1</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>alpha1</key>
+      <value>1.0</value>
+    </param>
+    <param>
+      <key>label2</key>
+      <value>CC</value>
+    </param>
+    <param>
+      <key>width2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>color2</key>
+      <value>"red"</value>
+    </param>
+    <param>
+      <key>style2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>marker2</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>alpha2</key>
+      <value>0.6</value>
+    </param>
+    <param>
+      <key>label3</key>
+      <value></value>
+    </param>
+    <param>
+      <key>width3</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>color3</key>
+      <value>"green"</value>
+    </param>
+    <param>
+      <key>style3</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>marker3</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>alpha3</key>
+      <value>1.0</value>
+    </param>
+    <param>
+      <key>label4</key>
+      <value></value>
+    </param>
+    <param>
+      <key>width4</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>color4</key>
+      <value>"black"</value>
+    </param>
+    <param>
+      <key>style4</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>marker4</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>alpha4</key>
+      <value>1.0</value>
+    </param>
+    <param>
+      <key>label5</key>
+      <value></value>
+    </param>
+    <param>
+      <key>width5</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>color5</key>
+      <value>"cyan"</value>
+    </param>
+    <param>
+      <key>style5</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>marker5</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>alpha5</key>
+      <value>1.0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_stream_to_tagged_stream</key>
     <param>
-      <key>id</key>
-      <value>blocks_stream_to_tagged_stream_0_0</value>
+      <key>label6</key>
+      <value></value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>width6</key>
+      <value>1</value>
     </param>
     <param>
-      <key>type</key>
-      <value>byte</value>
+      <key>color6</key>
+      <value>"magenta"</value>
     </param>
     <param>
-      <key>vlen</key>
+      <key>style6</key>
       <value>1</value>
     </param>
     <param>
-      <key>packet_len</key>
-      <value>frame_size*8</value>
+      <key>marker6</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>len_tag_key</key>
-      <value>length_tag</value>
+      <key>alpha6</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>alias</key>
+      <key>label7</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>width7</key>
+      <value>1</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>color7</key>
+      <value>"yellow"</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>style7</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(158, 515)</value>
+      <key>marker7</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>alpha7</key>
+      <value>1.0</value>
     </param>
-  </block>
-  <block>
-    <key>variable_ccsds_encoder_def</key>
     <param>
-      <key>id</key>
-      <value>enc_ccsds</value>
+      <key>label8</key>
+      <value></value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>width8</key>
+      <value>1</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>color8</key>
+      <value>"dark red"</value>
     </param>
     <param>
-      <key>ndim</key>
+      <key>style8</key>
       <value>1</value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>2</value>
+      <key>marker8</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>4</value>
+      <key>alpha8</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>MTU*8</value>
+      <key>label9</key>
+      <value></value>
     </param>
     <param>
-      <key>state_start</key>
-      <value>0</value>
+      <key>width9</key>
+      <value>1</value>
     </param>
     <param>
-      <key>mode</key>
-      <value>fec.CC_TERMINATED</value>
+      <key>color9</key>
+      <value>"dark green"</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>style9</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(909, 693)</value>
+      <key>marker9</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>alpha9</key>
+      <value>1.0</value>
     </param>
-  </block>
-  <block>
-    <key>variable_dummy_encoder_def</key>
     <param>
-      <key>id</key>
-      <value>enc_dummy</value>
+      <key>label10</key>
+      <value></value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>width10</key>
+      <value>1</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>color10</key>
+      <value>"blue"</value>
     </param>
     <param>
-      <key>ndim</key>
+      <key>style10</key>
       <value>1</value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>1</value>
+      <key>marker10</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>alpha10</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>MTU*8</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>alias</key>
+      <key>affinity</key>
       <value></value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1209, 693)</value>
+      <value>(1111, 231)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1640,7 +1734,7 @@
     <key>qtgui_time_sink_x</key>
     <param>
       <key>id</key>
-      <value>qtgui_time_sink_x_0_0_1</value>
+      <value>qtgui_time_sink_x_0_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -1964,101 +2058,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1114, 206)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_char_to_float</key>
-    <param>
-      <key>id</key>
-      <value>blocks_char_to_float_1_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>scale</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(883, 237)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>fec_extended_encoder</key>
-    <param>
-      <key>id</key>
-      <value>fec_extended_encoder_0_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>encoder_list</key>
-      <value>enc_dummy</value>
-    </param>
-    <param>
-      <key>threadtype</key>
-      <value>none</value>
-    </param>
-    <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
-    </param>
-    <param>
-      <key>lentagname</key>
-      <value>length_tag</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(544, 206)</value>
+      <value>(1112, 494)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2072,12 +2072,6 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
-    <sink_block_id>fec_extended_encoder_0_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
     <source_block_id>fec_extended_encoder_0</source_block_id>
     <sink_block_id>blocks_char_to_float_1</sink_block_id>
     <source_key>0</source_key>
@@ -2114,14 +2108,14 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_1_0</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_0_0</sink_block_id>
+    <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
+    <sink_block_id>fec_extended_encoder_0_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_encoder_0_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
+    <source_block_id>fec_extended_encoder_0_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
@@ -2132,14 +2126,20 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_encoder_0_0_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_1_0_0</sink_block_id>
+    <source_block_id>fec_extended_encoder_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>blocks_char_to_float_1_0</source_block_id>
+    <sink_block_id>qtgui_time_sink_x_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
     <source_block_id>blocks_stream_to_tagged_stream_0_0</source_block_id>
-    <sink_block_id>fec_extended_encoder_0_0_0</sink_block_id>
+    <sink_block_id>fec_extended_encoder_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
diff --git a/gr-fec/grc/fec_bercurve_generator.xml 
b/gr-fec/grc/fec_bercurve_generator.xml
index d10a886..4d0d47e 100644
--- a/gr-fec/grc/fec_bercurve_generator.xml
+++ b/gr-fec/grc/fec_bercurve_generator.xml
@@ -14,45 +14,74 @@
        $decoder_list, \#name
        $esno, \#range of esnos
        $samp_rate, \#throttle
-       $puncpat \#puncture pattern
+        $threadtype, \#threading mode
+       $puncpat, \#puncture pattern
+        $seed \# noise gen. seed
 )
   </make>
 
   <param>
-    <name>esno</name>
+    <name>Es/N0</name>
     <key>esno</key>
     <value>numpy.arange(0.0, 4.0, .5)</value>
     <type>raw</type>
   </param>
 
   <param>
-    <name>samp_rate</name>
+    <name>Sample Rate</name>
     <key>samp_rate</key>
     <value>3200000</value>
-    <type>raw</type>
+    <type>float</type>
   </param>
 
   <param>
-    <name>encoder_list</name>
+    <name>Encoder list</name>
     <key>encoder_list</key>
     <value>0</value>
     <type>raw</type>
   </param>
 
   <param>
-    <name>decoder_list</name>
+    <name>Decoder list</name>
     <key>decoder_list</key>
     <value>0</value>
     <type>raw</type>
   </param>
 
   <param>
-    <name>puncpat</name>
+    <name>Puncture Pat.</name>
     <key>puncpat</key>
     <value>'11'</value>
     <type>string</type>
   </param>
 
+  <param>
+    <name>Threading Type</name>
+    <key>threadtype</key>
+    <type>enum</type>
+    <hide>part</hide>
+    <option>
+      <name>Capillary</name>
+      <key>"capillary"</key>
+    </option>
+    <option>
+      <name>Ordinary</name>
+      <key>"ordinary"</key>
+    </option>
+    <option>
+      <name>None</name>
+      <key>"none"</key>
+    </option>
+  </param>
+
+  <param>
+    <name>Noise Seed</name>
+    <key>seed</key>
+    <value>0</value>
+    <type>int</type>
+    <hide>part</hide>
+  </param>
+
   <bus_source>1</bus_source>
 
   <source>
@@ -62,8 +91,5 @@
   </source>
 
   <doc>
-    The GUI hint can be used to position the widget within the application. \
-    The hint is of the form address@hidden: [row, col, row_span, col_span]. \
-    Both the tab specification and the grid position are optional.
   </doc>
 </block>
diff --git a/gr-fec/grc/fec_block_tree.xml b/gr-fec/grc/fec_block_tree.xml
index 7eabe03..8828210 100644
--- a/gr-fec/grc/fec_block_tree.xml
+++ b/gr-fec/grc/fec_block_tree.xml
@@ -11,7 +11,6 @@
     <cat>
       <name>Decoders</name>
       <block>variable_cc_decoder_def</block>
-      <block>variable_ccsds_decoder_def</block>
       <block>variable_repetition_decoder_def</block>
       <block>variable_dummy_decoder_def</block>
     </cat>
diff --git a/gr-fec/grc/variable_cc_decoder_def_list.xml 
b/gr-fec/grc/variable_cc_decoder_def_list.xml
index 1e17468..37e5cb6 100644
--- a/gr-fec/grc/variable_cc_decoder_def_list.xml
+++ b/gr-fec/grc/variable_cc_decoder_def_list.xml
@@ -25,7 +25,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a: 
fec.cc_decoder.make($frame
     </param>
 
     <param>
-        <name>Threading Dimensions</name>
+        <name>Parallelism</name>
         <key>ndim</key>
         <value></value>
         <type>enum</type>
diff --git a/gr-fec/grc/variable_cc_encoder_def_list.xml 
b/gr-fec/grc/variable_cc_encoder_def_list.xml
index 6b20401..7e56cf1 100644
--- a/gr-fec/grc/variable_cc_encoder_def_list.xml
+++ b/gr-fec/grc/variable_cc_encoder_def_list.xml
@@ -25,25 +25,24 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a: 
fec.cc_encoder_make($frame
     </param>
 
     <param>
-        <name>Threading Dimensions</name>
+        <name>Parallelism</name>
         <key>ndim</key>
         <value></value>
         <type>enum</type>
         <option>
-            <name>2</name>
-            <key>2</key>
-        </option>
-        <option>
             <name>1</name>
             <key>1</key>
         </option>
-
+        <option>
+            <name>2</name>
+            <key>2</key>
+        </option>
     </param>
 
     <param>
         <name>Dimension 1</name>
         <key>dim1</key>
-        <value>4</value>
+        <value>1</value>
         <type>int</type>
         <hide>#if (int($ndim()) >= 1) then 'none' else 'all' #</hide>
     </param>
@@ -51,7 +50,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a: 
fec.cc_encoder_make($frame
     <param>
         <name>Dimension 2</name>
         <key>dim2</key>
-        <value>4</value>
+        <value>1</value>
         <type>int</type>
         <hide>#if (int($ndim()) >= 2) then 'none' else 'all' #</hide>
     </param>
diff --git a/gr-fec/grc/variable_ccsds_decoder_def_list.xml 
b/gr-fec/grc/variable_ccsds_decoder_def_list.xml
deleted file mode 100644
index 1017a81..0000000
--- a/gr-fec/grc/variable_ccsds_decoder_def_list.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-# FEC CCSDS Decoder
-###################################################
- -->
-<block>
-    <name>CCSDS Decoder Definition</name>
-    <key>variable_ccsds_decoder_def</key>
-    <import>from gnuradio import fec</import>
-    <var_make>
-#if int($ndim())==1 #
-self.$(id) = $(id) = map( (lambda a: fec.ccsds_decoder.make($framebits, 
$state_start, $end_state, $mode)), range(0,$dim1) ); #slurp
-#else
-self.$(id) = $(id) = map( (lambda b: map( ( lambda a: 
fec.ccsds_decoder.make($framebits, $state_start, $end_state, $mode)), 
range(0,$dim2) ) ), range(0,$dim1)); #slurp
-#end if</var_make>
-    <make></make>
-
-    <param>
-        <name>Ignore Me</name>
-        <key>value</key>
-        <value>"ok"</value>
-        <type>raw</type>
-        <hide>all</hide>
-    </param>
-
-    <param>
-        <name>Threading Dimensions</name>
-        <key>ndim</key>
-        <value></value>
-        <type>enum</type>
-        <option>
-            <name>2</name>
-            <key>2</key>
-        </option>
-        <option>
-            <name>1</name>
-            <key>1</key>
-        </option>
-
-    </param>
-
-    <param>
-        <name>Dimension 1</name>
-        <key>dim1</key>
-        <value>4</value>
-        <type>int</type>
-        <hide>#if (int($ndim()) >= 1) then 'none' else 'all' #</hide>
-    </param>
-
-    <param>
-        <name>Dimension 2</name>
-        <key>dim2</key>
-        <value>4</value>
-        <type>int</type>
-        <hide>#if (int($ndim()) >= 2) then 'none' else 'all' #</hide>
-    </param>
-
-    <param>
-        <name>Frame Bits</name>
-        <key>framebits</key>
-        <value>2048</value>
-        <type>int</type>
-    </param>
-
-    <param>
-        <name>Start State</name>
-        <key>state_start</key>
-        <value>0</value>
-        <type>int</type>
-    </param>
-
-    <param>
-        <name>End State</name>
-        <key>end_state</key>
-        <value>-1</value>
-        <type>int</type>
-    </param>
-
-    <param>
-        <name>Streaming Behavior</name>
-        <key>mode</key>
-        <value></value>
-        <type>enum</type>
-        <option>
-            <name>Streaming</name>
-            <key>fec.CC_STREAMING</key>
-        </option>
-    </param>
-
-    <doc>
-    </doc>
-</block>
diff --git a/gr-fec/grc/variable_ccsds_encoder_def_list.xml 
b/gr-fec/grc/variable_ccsds_encoder_def_list.xml
index 72623a6..8a9fde8 100644
--- a/gr-fec/grc/variable_ccsds_encoder_def_list.xml
+++ b/gr-fec/grc/variable_ccsds_encoder_def_list.xml
@@ -25,25 +25,24 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a: 
fec.ccsds_encoder_make($fr
     </param>
 
     <param>
-        <name>Threading Dimensions</name>
+        <name>Parallelism</name>
         <key>ndim</key>
         <value></value>
         <type>enum</type>
         <option>
-            <name>2</name>
-            <key>2</key>
-        </option>
-        <option>
             <name>1</name>
             <key>1</key>
         </option>
-
+        <option>
+            <name>2</name>
+            <key>2</key>
+        </option>
     </param>
 
     <param>
         <name>Dimension 1</name>
         <key>dim1</key>
-        <value>4</value>
+        <value>1</value>
         <type>int</type>
         <hide>#if (int($ndim()) >= 1) then 'none' else 'all' #</hide>
     </param>
@@ -51,7 +50,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a: 
fec.ccsds_encoder_make($fr
     <param>
         <name>Dimension 2</name>
         <key>dim2</key>
-        <value>4</value>
+        <value>1</value>
         <type>int</type>
         <hide>#if (int($ndim()) >= 2) then 'none' else 'all' #</hide>
     </param>
diff --git a/gr-fec/grc/variable_dummy_decoder_def_list.xml 
b/gr-fec/grc/variable_dummy_decoder_def_list.xml
index 2756b58..f89a42b 100644
--- a/gr-fec/grc/variable_dummy_decoder_def_list.xml
+++ b/gr-fec/grc/variable_dummy_decoder_def_list.xml
@@ -25,7 +25,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a: 
fec.dummy_decoder.make($fr
     </param>
 
     <param>
-        <name>Threading Dimensions</name>
+        <name>Parallelism</name>
         <key>ndim</key>
         <value></value>
         <type>enum</type>
diff --git a/gr-fec/grc/variable_dummy_encoder_def_list.xml 
b/gr-fec/grc/variable_dummy_encoder_def_list.xml
index b599d33..ca59c07 100644
--- a/gr-fec/grc/variable_dummy_encoder_def_list.xml
+++ b/gr-fec/grc/variable_dummy_encoder_def_list.xml
@@ -25,7 +25,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a: 
fec.dummy_encoder_make($fr
     </param>
 
     <param>
-        <name>Threading Dimensions</name>
+        <name>Parallelism</name>
         <key>ndim</key>
         <value></value>
         <type>enum</type>
diff --git a/gr-fec/grc/variable_repetition_decoder_def_list.xml 
b/gr-fec/grc/variable_repetition_decoder_def_list.xml
index 162b01d..1e94f26 100644
--- a/gr-fec/grc/variable_repetition_decoder_def_list.xml
+++ b/gr-fec/grc/variable_repetition_decoder_def_list.xml
@@ -25,7 +25,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a: 
fec.repetition_decoder.mak
     </param>
 
     <param>
-        <name>Threading Dimensions</name>
+        <name>Parallelism</name>
         <key>ndim</key>
         <value></value>
         <type>enum</type>
diff --git a/gr-fec/grc/variable_repetition_encoder_def_list.xml 
b/gr-fec/grc/variable_repetition_encoder_def_list.xml
index 615d2b8..f5d877f 100644
--- a/gr-fec/grc/variable_repetition_encoder_def_list.xml
+++ b/gr-fec/grc/variable_repetition_encoder_def_list.xml
@@ -25,7 +25,7 @@ self.$(id) = $(id) = map( (lambda b: map( ( lambda a: 
fec.repetition_encoder_mak
     </param>
 
     <param>
-        <name>Threading Dimensions</name>
+        <name>Parallelism</name>
         <key>ndim</key>
         <value></value>
         <type>enum</type>
diff --git a/gr-fec/include/gnuradio/fec/CMakeLists.txt 
b/gr-fec/include/gnuradio/fec/CMakeLists.txt
index 0935b73..4d3b58a 100644
--- a/gr-fec/include/gnuradio/fec/CMakeLists.txt
+++ b/gr-fec/include/gnuradio/fec/CMakeLists.txt
@@ -84,7 +84,6 @@ install(FILES
     tagged_encoder.h
     cc_decoder.h
     cc_encoder.h
-    ccsds_decoder.h
     ccsds_encoder.h
     dummy_encoder.h
     dummy_decoder.h
diff --git a/gr-fec/include/gnuradio/fec/cc_decoder.h 
b/gr-fec/include/gnuradio/fec/cc_decoder.h
index 11f2112..8aad328 100644
--- a/gr-fec/include/gnuradio/fec/cc_decoder.h
+++ b/gr-fec/include/gnuradio/fec/cc_decoder.h
@@ -53,21 +53,12 @@ namespace gr {
        * \li polynomials = [109, 79]
        *
        * This is the well-known convolutional part of the Voyager code
-       * implemented in the CCSDS encoder. See
-       * gr::fec::code::ccsds_decoder for another variation on this
-       * block.
+       * implemented in the CCSDS encoder.
        *
-       * Currently, in profiling tests run, the VOLK-accelerated
-       * Viterbi code used in this block specific to the CCSDS code
-       * runs faster than the ccsds_decoder version. Furthenr, due to
-       * I/O issues, the ccsds_decoder does not fully handle all
-       * streaming behaviors, only 'Streaming' mode. This block
-       * enables all four streaming modes.
-       *
-       * The intent of having both FECAPI code classes is to
-       * eventually allow this block to take on generic settings, much
-       * like the cc_encoder class. The ccsds_decoder would then
-       * handle this specific code case as optimized as possible.
+       * The intent of having this FECAPI code classes fully
+       * parameterizable is to eventually allow it to take on generic
+       * settings, much like the cc_encoder class where the CCSDS
+       * settings would be a highly-optimized version of this.
        *
        * The encoder is set up wtih a number of bits per frame in the
        * constructor. When not being used in a tagged stream mode,
diff --git a/gr-fec/include/gnuradio/fec/ccsds_decoder.h 
b/gr-fec/include/gnuradio/fec/ccsds_decoder.h
deleted file mode 100644
index 84212b4..0000000
--- a/gr-fec/include/gnuradio/fec/ccsds_decoder.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2014 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_FEC_CCSDS_DECODER_H
-#define INCLUDED_FEC_CCSDS_DECODER_H
-
-#include <gnuradio/fec/api.h>
-#include <gnuradio/fec/generic_decoder.h>
-#include <gnuradio/fec/cc_common.h>
-#include <map>
-#include <string>
-
-namespace gr {
-  namespace fec {
-    namespace code {
-
-      /*!
-       * \brief Convolutional Code Decoding class.
-       * \ingroup error_coding_blk
-       *
-       * \details
-       * This class performs convolutional decoding via the Viterbi
-       * algorithm specific to the CCSDS code:
-       *
-       * \li K = 7
-       * \li rate = 1/2
-       * \li polynomials = [109, 79]
-       *
-       * This is the well-known convolutional part of the Voyager
-       * code. See the discussion in gr::fec::code::cc_decoder for
-       * the current state of convolutional decoding.
-       *
-       * Currently, this block is transitional and only implements
-       * parts of the FECAPI.
-       *
-       * The encoder is set up wtih a number of bits per frame in the
-       * constructor. When not being used in a tagged stream mode,
-       * this encoder will only process frames of the length provided
-       * here. If used in a tagged stream block, this setting becomes
-       * the maximum allowable frame size that the block may process.
-       */
-      class FEC_API ccsds_decoder : virtual public generic_decoder
-      {
-      public:
-
-        /*!
-         * Build a convolutional code decoding FECAPI object.
-         *
-         * \param frame_size Number of bits per frame. If using in the
-         *        tagged stream style, this is the maximum allowable
-         *        number of bits per frame.
-         * \param start_state Initialization state of the shift register.
-         * \param end_state Ending state of the shift register.
-         * \param mode cc_mode_t mode of the encoding.
-         */
-        static generic_decoder::sptr make
-          (int frame_size,
-           int start_state=0, int end_state=-1,
-           cc_mode_t mode=CC_STREAMING);
-
-        /*!
-         * Sets the uncoded frame size to \p frame_size. If \p
-         * frame_size is greater than the value given to the
-         * constructor, the frame size will be capped by that initial
-         * value and this function will return false. Otherwise, it
-         * returns true.
-         */
-        virtual bool set_frame_size(unsigned int frame_size) = 0;
-
-        /*!
-         * Returns the coding rate of this encoder.
-         */
-        virtual double rate() = 0;
-      };
-
-    } /* namespace code */
-  } /* namespace fec */
-} /* namespace gr */
-
-#endif /* INCLUDED_FEC_CCSDS_DECODER_H */
diff --git a/gr-fec/lib/CMakeLists.txt b/gr-fec/lib/CMakeLists.txt
index abd0769..42940be 100644
--- a/gr-fec/lib/CMakeLists.txt
+++ b/gr-fec/lib/CMakeLists.txt
@@ -57,7 +57,6 @@ list(APPEND gnuradio_fec_sources
   tagged_encoder_impl.cc
   cc_decoder_impl.cc
   cc_encoder_impl.cc
-  ccsds_decoder_impl.cc
   ccsds_encoder_impl.cc
   dummy_decoder_impl.cc
   dummy_encoder_impl.cc
diff --git a/gr-fec/lib/ccsds_decoder_impl.cc b/gr-fec/lib/ccsds_decoder_impl.cc
deleted file mode 100644
index a68d027..0000000
--- a/gr-fec/lib/ccsds_decoder_impl.cc
+++ /dev/null
@@ -1,192 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2013-2014 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "ccsds_decoder_impl.h"
-#include <math.h>
-#include <boost/assign/list_of.hpp>
-#include <volk/volk.h>
-#include <sstream>
-#include <vector>
-#include <iostream>
-
-namespace gr {
-  namespace fec {
-    namespace code {
-
-      generic_decoder::sptr
-      ccsds_decoder::make(int frame_size,
-                          int start_state, int end_state,
-                          cc_mode_t mode)
-      {
-        return generic_decoder::sptr
-          (new ccsds_decoder_impl(frame_size, start_state, end_state, mode));
-      }
-
-      ccsds_decoder_impl::ccsds_decoder_impl(int frame_size,
-                                             int start_state, int end_state,
-                                             cc_mode_t mode)
-        : generic_decoder("ccsds_decoder"),
-          d_count(0), d_frame_size(frame_size),
-          d_mode(mode),
-          d_start_state_chaining(start_state),
-          d_start_state_nonchaining(start_state),
-          d_end_state_nonchaining(end_state)
-      {
-        // Set max frame size here; all buffers and settings will be
-        // based on this value.
-        d_max_frame_size = frame_size;
-        set_frame_size(frame_size);
-
-        float RATE = 0.5;
-        float ebn0 = 12.0;
-        float esn0 = RATE*pow(10.0, ebn0/10.0);
-
-        gen_met(d_mettab, 100, esn0, 0.0, 4);
-        viterbi_chunks_init(d_state0);
-        viterbi_chunks_init(d_state1);
-      }
-
-      ccsds_decoder_impl::~ccsds_decoder_impl()
-      {
-      }
-
-      int
-      ccsds_decoder_impl::get_output_size()
-      {
-        // packed bits
-        return d_frame_size/8;
-      }
-
-      int
-      ccsds_decoder_impl::get_input_size()
-      {
-        if(d_mode == CC_TERMINATED) {
-          return 2*(d_frame_size + 7 - 1);
-        }
-        else {
-          return 2*d_frame_size;
-        }
-      }
-
-      int
-      ccsds_decoder_impl::get_input_item_size()
-      {
-        return sizeof(float);
-      }
-
-      int
-      ccsds_decoder_impl::get_history()
-      {
-        if(d_mode == CC_STREAMING) {
-          return 2*(7 - 1);
-        }
-        else {
-          return 0;
-        }
-      }
-
-      float
-      ccsds_decoder_impl::get_shift()
-      {
-        return 0.0;
-      }
-
-      const char*
-      ccsds_decoder_impl::get_input_conversion()
-      {
-        return "none";
-      }
-
-      const char*
-      ccsds_decoder_impl::get_output_conversion()
-      {
-        return "unpack";
-      }
-
-      bool
-      ccsds_decoder_impl::set_frame_size(unsigned int frame_size)
-      {
-        bool ret = true;
-        if(frame_size > d_max_frame_size) {
-          GR_LOG_INFO(d_logger, boost::format("tried to set frame to %1%; max 
possible is %2%") \
-                      % frame_size % d_max_frame_size);
-          frame_size = d_max_frame_size;
-          ret = false;
-        }
-
-        d_frame_size = frame_size;
-
-        return ret;
-     }
-
-      double
-      ccsds_decoder_impl::rate()
-      {
-        return 0.5;
-      }
-
-      void
-      ccsds_decoder_impl::generic_work(void *inbuffer, void *outbuffer)
-      {
-        const float *in = (const float*)inbuffer;
-        unsigned char *out = (unsigned char*)outbuffer;
-
-        switch(d_mode) {
-
-        case(CC_STREAMING):
-          for(unsigned int i = 0; i < d_frame_size*2; i++) {
-            // Translate and clip [-1.0..1.0] to [28..228]
-            float sample = in[i]*100.0+128.0;
-            if(sample > 255.0)
-              sample = 255.0;
-            else if(sample < 0.0)
-              sample = 0.0;
-
-            d_viterbi_in[d_count % 4] = (unsigned char)(floorf(sample));
-            if((d_count % 4) == 3) {
-              // Every fourth symbol, perform butterfly operation
-              viterbi_butterfly2(d_viterbi_in, d_mettab, d_state0, d_state1);
-
-              // Every sixteenth symbol, read out a byte
-              if(d_count % 16 == 11) {
-                unsigned char tmp;
-                viterbi_get_output(d_state0, out++);
-                viterbi_get_output(d_state0, &tmp);
-              }
-            }
-
-            d_count++;
-          }
-          break;
-
-        default:
-          throw std::runtime_error("ccsds_decoder: mode not recognized");
-        }
-      }
-
-    } /* namespace code */
-  } /* namespace fec */
-} /* namespace gr */
diff --git a/gr-fec/lib/ccsds_decoder_impl.h b/gr-fec/lib/ccsds_decoder_impl.h
deleted file mode 100644
index 26ccec4..0000000
--- a/gr-fec/lib/ccsds_decoder_impl.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2013-2014 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_FEC_CCSDS_DECODER_IMPL_H
-#define INCLUDED_FEC_CCSDS_DECODER_IMPL_H
-
-#include <map>
-#include <string>
-#include <gnuradio/fec/ccsds_decoder.h>
-
-extern "C" {
-#include <gnuradio/fec/viterbi.h>
-}
-
-namespace gr {
-  namespace fec {
-    namespace code {
-
-      class FEC_API ccsds_decoder_impl : public ccsds_decoder
-      {
-      private:
-        //plug into the generic FECAPI
-        void generic_work(void *inbuffer, void *outbuffer);
-        int get_output_size();
-        int get_input_size();
-        int get_history();
-        float get_shift();
-        int get_input_item_size();
-        const char* get_input_conversion();
-        const char* get_output_conversion();
-
-        // Viterbi state
-        int d_mettab[2][256];
-        struct viterbi_state d_state0[64];
-        struct viterbi_state d_state1[64];
-        unsigned char d_viterbi_in[16];
-        int d_count;
-
-        unsigned int d_max_frame_size;
-        unsigned int d_frame_size;
-        cc_mode_t d_mode;
-
-        int *d_start_state;
-        int d_start_state_chaining;
-        int d_start_state_nonchaining;
-        int *d_end_state;
-        int d_end_state_chaining;
-        int d_end_state_nonchaining;
-
-      public:
-        ccsds_decoder_impl(int frame_size,
-                           int start_state=0, int end_state=-1,
-                           cc_mode_t mode=CC_STREAMING);
-        ~ccsds_decoder_impl();
-
-        bool set_frame_size(unsigned int frame_size);
-        double rate();
-      };
-
-    } /* namespace code */
-  } /* namespace fec */
-} /* namespace gr */
-
-#endif /* INCLUDED_FEC_CCSDS_DECODER_IMPL_H */
diff --git a/gr-fec/lib/decoder_impl.cc b/gr-fec/lib/decoder_impl.cc
index dfc0842..ba8a7d0 100644
--- a/gr-fec/lib/decoder_impl.cc
+++ b/gr-fec/lib/decoder_impl.cc
@@ -50,7 +50,6 @@ namespace gr {
     {
       set_fixed_rate(true);
       
set_relative_rate((double)(my_decoder->get_output_size())/my_decoder->get_input_size());
-      GR_LOG_DEBUG(d_debug_logger, boost::format("relative_rate: %1%") % 
relative_rate());
 
       //want to guarantee you have enough to run at least one time...
       //remember! this is not a sync block... set_output_multiple does not
@@ -58,7 +57,6 @@ namespace gr {
       //outputs (hence inputs) are made available... this is WEIRD to do in
       //GNU Radio, and the algorithm is sensitive to this value
       set_output_multiple(my_decoder->get_output_size() + 
(my_decoder->get_history()));
-      d_inbuf = buf_sptr(new unsigned char[(my_decoder->get_input_size() + 
my_decoder->get_history())*input_item_size]);
       d_decoder = my_decoder;
     }
 
@@ -101,11 +99,7 @@ namespace gr {
                    % outnum % ninput_items[0] % items);
 
       for(int i = 0; i < items; ++i) {
-        memcpy((void *)d_inbuf.get(),
-               in+(i*(d_decoder->get_input_size()) * d_input_item_size),
-               (d_decoder->get_input_size() + d_decoder->get_history()) * 
d_input_item_size);
-
-        d_decoder->generic_work((void*)d_inbuf.get(),
+        
d_decoder->generic_work((void*)(in+(i*d_decoder->get_input_size()*d_input_item_size)),
                                 
(void*)(out+(i*d_decoder->get_output_size()*d_output_item_size)));
 
         add_item_tag(0, nitems_written(0) + 
((i+1)*d_decoder->get_output_size()*d_output_item_size),
diff --git a/gr-fec/lib/decoder_impl.h b/gr-fec/lib/decoder_impl.h
index 92cc537..78b1b92 100644
--- a/gr-fec/lib/decoder_impl.h
+++ b/gr-fec/lib/decoder_impl.h
@@ -34,7 +34,6 @@ namespace gr {
       generic_decoder::sptr d_decoder;
       size_t d_input_item_size;
       size_t d_output_item_size;
-      buf_sptr d_inbuf;
 
     public:
       decoder_impl(generic_decoder::sptr my_decoder,
diff --git a/gr-fec/python/fec/bercurve_generator.py 
b/gr-fec/python/fec/bercurve_generator.py
index ee51493..e67d1e1 100644
--- a/gr-fec/python/fec/bercurve_generator.py
+++ b/gr-fec/python/fec/bercurve_generator.py
@@ -28,7 +28,7 @@ from fec_test import fec_test
 class bercurve_generator(gr.hier_block2):
 
     def __init__(self, encoder_list, decoder_list, esno=numpy.arange(0.0, 3.0, 
.25),
-                 samp_rate=3200000, threading='capillary', puncpat='11'):
+                 samp_rate=3200000, threading='capillary', puncpat='11', 
seed=0):
         gr.hier_block2.__init__(
             self, "ber_curve_generator",
             gr.io_signature(0, 0, 0),
@@ -51,7 +51,8 @@ class bercurve_generator(gr.hier_block2):
                 esno=esno[i],
                 samp_rate=samp_rate,
                 threading=threading,
-                puncpat=puncpat)
+                puncpat=puncpat,
+                seed=seed)
             self.ber_generators.append(ber_generator_temp);
 
         for i in range(0, len(esno)):
diff --git a/gr-fec/python/fec/extended_decoder.py 
b/gr-fec/python/fec/extended_decoder.py
index 17c9810..072adcd 100644
--- a/gr-fec/python/fec/extended_decoder.py
+++ b/gr-fec/python/fec/extended_decoder.py
@@ -86,10 +86,18 @@ class extended_decoder(gr.hier_block2):
         self.puncpat=puncpat
         self.flush=flush
 
+        if(type(decoder_obj_list[0]) == list):
+            gr.log.info("fec.extended_decoder: Parallelism must be 1.")
+            raise AttributeError
+
         if type(lentagname) == str:
             if(lentagname.lower() == 'none'):
                 lentagname = None
 
+        if lentagname and threading:
+            gr.log.info("fec.extended_decoder: Cannot use threading with 
tagged_stream mode.")
+            raise AttributeError
+
         message_collector_connected=False
 
         ##anything going through the annihilator needs shifted, uchar vals
diff --git a/gr-fec/python/fec/extended_encoder.py 
b/gr-fec/python/fec/extended_encoder.py
index 01b9e09..f511b53 100644
--- a/gr-fec/python/fec/extended_encoder.py
+++ b/gr-fec/python/fec/extended_encoder.py
@@ -37,10 +37,18 @@ class extended_encoder(gr.hier_block2):
         self.blocks=[]
         self.puncpat=puncpat
 
+        if(type(encoder_obj_list[0]) == list):
+            gr.log.info("fec.extended_encoder: Parallelism must be 1.")
+            raise AttributeError
+
         if type(lentagname) == str:
             if(lentagname.lower() == 'none'):
                 lentagname = None
 
+        if lentagname and threading:
+            gr.log.info("fec.extended_decoder: Cannot use threading with 
tagged_stream mode.")
+            raise AttributeError
+
         if fec.get_encoder_input_conversion(encoder_obj_list[0]) == "pack":
             self.blocks.append(blocks.pack_k_bits_bb(8))
 
diff --git a/gr-fec/python/fec/fec_test.py b/gr-fec/python/fec/fec_test.py
index cacbb35..0a7524a 100644
--- a/gr-fec/python/fec/fec_test.py
+++ b/gr-fec/python/fec/fec_test.py
@@ -30,11 +30,11 @@ from extended_decoder import extended_decoder
 class fec_test(gr.hier_block2):
 
     def __init__(self, generic_encoder=0, generic_decoder=0, esno=0,
-                 samp_rate=3200000, threading="capillary", puncpat='11'):
-        gr.hier_block2.__init__(
-            self, "fec_test",
-            gr.io_signature(1, 1, gr.sizeof_char*1),
-            gr.io_signature(2, 2, gr.sizeof_char*1))
+                 samp_rate=3200000, threading="capillary", puncpat='11',
+                 seed=0):
+        gr.hier_block2.__init__(self, "fec_test",
+                                gr.io_signature(1, 1, gr.sizeof_char*1),
+                                gr.io_signature(2, 2, gr.sizeof_char*1))
 
         self.generic_encoder = generic_encoder
         self.generic_decoder = generic_decoder
@@ -50,16 +50,17 @@ class fec_test(gr.hier_block2):
         self.pack8 = blocks.pack_k_bits_bb(8)
 
         self.encoder = extended_encoder(encoder_obj_list=generic_encoder,
-                                        threading='capillary',
+                                        threading=threading,
                                         puncpat=puncpat)
 
         self.decoder = extended_decoder(decoder_obj_list=generic_decoder,
-                                        threading='capillary',
+                                        threading=threading,
                                         ann=None, puncpat=puncpat,
                                         integration_period=10000, rotator=None)
 
         noise = math.sqrt((10.0**(-esno/10.0))/2.0)
-        self.fastnoise = analog.fastnoise_source_f(analog.GR_GAUSSIAN, noise, 
0, 8192)
+        #self.fastnoise = analog.fastnoise_source_f(analog.GR_GAUSSIAN, noise, 
seed, 8192)
+        self.fastnoise = analog.noise_source_f(analog.GR_GAUSSIAN, noise, seed)
         self.addnoise = blocks.add_ff(1)
 
         # Send packed input directly to the second output
diff --git a/gr-fec/swig/fec_swig.i b/gr-fec/swig/fec_swig.i
index 54924a1..051896c 100644
--- a/gr-fec/swig/fec_swig.i
+++ b/gr-fec/swig/fec_swig.i
@@ -44,7 +44,6 @@
 #include "gnuradio/fec/tagged_encoder.h"
 #include "gnuradio/fec/cc_decoder.h"
 #include "gnuradio/fec/cc_encoder.h"
-#include "gnuradio/fec/ccsds_decoder.h"
 #include "gnuradio/fec/ccsds_encoder.h"
 #include "gnuradio/fec/dummy_decoder.h"
 #include "gnuradio/fec/dummy_encoder.h"
@@ -67,7 +66,6 @@
 %include "gnuradio/fec/tagged_encoder.h"
 %include "gnuradio/fec/cc_decoder.h"
 %include "gnuradio/fec/cc_encoder.h"
-%include "gnuradio/fec/ccsds_decoder.h"
 %include "gnuradio/fec/ccsds_encoder.h"
 %include "gnuradio/fec/dummy_decoder.h"
 %include "gnuradio/fec/dummy_encoder.h"
diff --git a/gr-qtgui/lib/ber_sink_b_impl.cc b/gr-qtgui/lib/ber_sink_b_impl.cc
index c371a73..bcbe146 100644
--- a/gr-qtgui/lib/ber_sink_b_impl.cc
+++ b/gr-qtgui/lib/ber_sink_b_impl.cc
@@ -22,9 +22,10 @@
 
 #include "ber_sink_b_impl.h"
 #include <gnuradio/io_signature.h>
+#include <gnuradio/math.h>
 #include <gnuradio/fft/fft.h>
-//#include <fec/libbertools.h>
-#include <math.h>
+#include <volk/volk.h>
+//#include <math.h>
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
@@ -35,89 +36,73 @@ namespace gr {
 
     ber_sink_b::sptr
     ber_sink_b::make(std::vector<float> esnos, int curves,
-                     int berminerrors, float berLimit,
+                     int ber_min_errors, float ber_limit,
                      std::vector<std::string> curvenames,
                      QWidget *parent)
     {
       return gnuradio::get_initial_sptr
         (new ber_sink_b_impl(esnos, curves,
-                             berminerrors, berLimit,
+                             ber_min_errors, ber_limit,
                              curvenames, parent));
     }
 
-    int
-    ber_sink_b_impl::compBER(unsigned char *inBuffer1, unsigned char 
*inBuffer2,int buffSize)
-    {
-      int i,totalDiff=0;
-      int popCnt[256] =
-        {
-          0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
-          1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
-          1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
-          2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
-          1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
-          2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
-          2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
-          3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
-          1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
-          2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
-          2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
-          3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
-          2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
-          3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
-          3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
-          4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8
-        };
-
-
-      for (i=0;i<buffSize;i++)
-        {
-          totalDiff += popCnt[inBuffer1[i]^inBuffer2[i]];
-
-        }
-
-      return totalDiff;
-    }
-
     ber_sink_b_impl::ber_sink_b_impl(std::vector<float> esnos, int curves,
-                                     int berminerrors, float berLimit,
+                                     int ber_min_errors, float ber_limit,
                                      std::vector<std::string> curvenames,
                                      QWidget *parent)
       : block("ber_sink_b",
               io_signature::make(curves*esnos.size()*2, curves*esnos.size()*2, 
sizeof(unsigned char)),
               io_signature::make(0, 0, 0)),
-        d_berminerrors(berminerrors),
-        d_berLimit(berLimit),
+        d_ber_min_errors(ber_min_errors),
+        d_ber_limit(ber_limit),
         d_parent(parent),
         d_nconnections(esnos.size()),
         d_last_time(0)
     {
       d_main_gui = NULL;
 
-      d_residbufs_real.reserve(curves);
-      d_residbufs_imag.reserve(curves);
+      // Enough curves for the input streams plus the BPSK AWGN curve.
+      d_curves = curves;
+      d_esno_buffers.reserve(curves + 1);
+      d_ber_buffers.reserve(curves + 1);
       d_total.reserve(curves * esnos.size());
-      d_totalErrors.reserve(curves * esnos.size());
+      d_total_errors.reserve(curves * esnos.size());
+
+      for(int j = 0; j < curves; j++) {
+       
d_esno_buffers.push_back((double*)volk_malloc(esnos.size()*sizeof(double),
+                                                        volk_get_alignment()));
+       
d_ber_buffers.push_back((double*)volk_malloc(esnos.size()*sizeof(double),
+                                                        volk_get_alignment()));
 
-      for(int j= 0; j < curves; j++) {
-        d_residbufs_real.push_back(fft::malloc_double(esnos.size()));
-        d_residbufs_imag.push_back(fft::malloc_double(esnos.size()));
         for(int i = 0; i < d_nconnections; i++) {
-          d_residbufs_real[j][i] = esnos[i];
-          d_residbufs_imag[j][i] = 0.0;
+          d_esno_buffers[j][i] = esnos[i];
+          d_ber_buffers[j][i] = 0.0;
           d_total.push_back(0);
-          d_totalErrors.push_back(1);
+          d_total_errors.push_back(1);
         }
       }
 
+      // Now add the known curves
+      
d_esno_buffers.push_back((double*)volk_malloc(esnos.size()*sizeof(double),
+                                                      volk_get_alignment()));
+      d_ber_buffers.push_back((double*)volk_malloc(esnos.size()*sizeof(double),
+                                                      volk_get_alignment()));
+      for(size_t i = 0; i < esnos.size(); i++) {
+        double e = pow(10.0, esnos[i]/10.0);
+        d_esno_buffers[curves][i] = esnos[i];
+        d_ber_buffers[curves][i] = log10(erfc(sqrt(e)));
+      }
+
+
+      // Initialize and set up some of the curve visual properties
       initialize();
       for(int j= 0; j < curves; j++) {
         set_line_width(j, 1);
         //35 unique styles supported
         set_line_style(j, (j%5) + 1);
         set_line_marker(j, (j%7));
-
       }
+
       if(curvenames.size() == (unsigned int)curves) {
         for(int j = 0; j < curves; j++) {
           if(curvenames[j] != "") {
@@ -125,6 +110,11 @@ namespace gr {
           }
         }
       }
+
+      set_line_label(d_curves, "BPSK AWGN");
+      set_line_style(d_curves, 5);    // non-solid line
+      set_line_marker(d_curves, -1);  // no marker
+      set_line_alpha(d_curves, 0.25); // high transparency
     }
 
     ber_sink_b_impl::~ber_sink_b_impl()
@@ -133,16 +123,16 @@ namespace gr {
         d_main_gui->close();
       }
 
-      for(unsigned int i = 0; i < d_residbufs_real.size(); i++) {
-        gr::fft::free(d_residbufs_real[i]);
-        gr::fft::free(d_residbufs_imag[i]);
+      for(unsigned int i = 0; i < d_esno_buffers.size(); i++) {
+       volk_free(d_esno_buffers[i]);
+       volk_free(d_ber_buffers[i]);
       }
     }
 
     bool
     ber_sink_b_impl::check_topology(int ninputs, int noutputs)
     {
-      return ninputs == (int)(d_residbufs_real.size() * d_nconnections * 2);
+      return ninputs == (int)(d_curves * d_nconnections * 2);
     }
 
     void
@@ -157,7 +147,7 @@ namespace gr {
         d_qApplication = new QApplication(argc, argv);
       }
 
-      d_main_gui = new ConstellationDisplayForm(d_residbufs_real.size(), 
d_parent);
+      d_main_gui = new ConstellationDisplayForm(d_esno_buffers.size(), 
d_parent);
 
       d_main_gui->setNPoints(d_nconnections);
       d_main_gui->getPlot()->setAxisTitle(QwtPlot::yLeft, "LogScale BER");
@@ -178,7 +168,7 @@ namespace gr {
       return d_main_gui;
     }
 
-    //#ifdef ENABLE_PYTHON
+#ifdef ENABLE_PYTHON
     PyObject*
     ber_sink_b_impl::pyqwidget()
     {
@@ -186,7 +176,13 @@ namespace gr {
       PyObject *retarg = Py_BuildValue("N", w);
       return retarg;
     }
-    //#endif
+#else
+    void *
+    ber_sink_b_impl::pyqwidget()
+    {
+      return NULL;
+    }
+#endif
 
     void
     ber_sink_b_impl::set_y_axis(double min, double max)
@@ -327,57 +323,68 @@ namespace gr {
       if(gr::high_res_timer_now() - d_last_time > d_update_time) {
         d_last_time = gr::high_res_timer_now();
         d_qApplication->postEvent(d_main_gui,
-                                  new ConstUpdateEvent(d_residbufs_real,
-                                                       d_residbufs_imag,
+                                  new ConstUpdateEvent(d_esno_buffers,
+                                                       d_ber_buffers,
                                                        d_nconnections));
       }
 
       //check stopping condition
       int done=0, maxed=0;
-      for(unsigned int j = 0; j < d_residbufs_real.size(); ++j) {
+      for(int j = 0; j < d_curves; ++j) {
         for(int i = 0; i < d_nconnections; ++i) {
 
-          if (d_totalErrors[j * d_nconnections + i] >= d_berminerrors) {
+          if(d_total_errors[j * d_nconnections + i] >= d_ber_min_errors) {
             done++;
           }
-          else if(log10(((double)d_berminerrors)/(d_total[j * d_nconnections + 
i] * 8.0)) < d_berLimit) {
+          else if(log10(((double)d_ber_min_errors)/(d_total[j * d_nconnections 
+ i] * 8.0)) < d_ber_limit) {
             maxed++;
           }
         }
       }
 
-      if(done+maxed == (int)(d_nconnections * d_residbufs_real.size())) {
+      if(done+maxed == (int)(d_nconnections * d_curves)) {
         d_qApplication->postEvent(d_main_gui,
-                                  new ConstUpdateEvent(d_residbufs_real,
-                                                       d_residbufs_imag,
+                                  new ConstUpdateEvent(d_esno_buffers,
+                                                       d_ber_buffers,
                                                        d_nconnections));
         return -1;
       }
 
+      float ber;
       for(unsigned int i = 0; i < ninput_items.size(); i += 2) {
-        if((d_totalErrors[i >> 1] < d_berminerrors) && 
(log10(((double)d_berminerrors)/(d_total[i >> 1] * 8.0)) >= d_berLimit)) {
+
+        if((d_total_errors[i >> 1] < d_ber_min_errors) && \
+           (log10(((double)d_ber_min_errors)/(d_total[i >> 1] * 8.0)) >= 
d_ber_limit)) {
+
           int items = ninput_items[i] <= ninput_items[i+1] ? ninput_items[i] : 
ninput_items[i+1];
 
-          unsigned char *inBuffer0 = (unsigned char *)input_items[i];
-          unsigned char *inBuffer1 = (unsigned char *)input_items[i+1];
+          unsigned char *inbuffer0 = (unsigned char *)input_items[i];
+          unsigned char *inbuffer1 = (unsigned char *)input_items[i+1];
 
           if(items > 0) {
-            d_totalErrors[i >> 1] += compBER(inBuffer0, inBuffer1, items);
+            uint32_t ret;
+            for(int j = 0; j < items; j++) {
+              volk_32u_popcnt(&ret, 
static_cast<uint32_t>(inbuffer0[j]^inbuffer1[j]));
+              d_total_errors[i >> 1] += ret;
+            }
+
             d_total[i >> 1] += items;
 
-            d_residbufs_imag[i/(d_nconnections * 2)][(i%(d_nconnections * 2)) 
>> 1] = log10(((double)d_totalErrors[i >> 1])/(d_total[i >> 1] * 8.0));
+            ber = log10(((double)d_total_errors[i >> 1])/(d_total[i >> 1] * 
8.0));
+            d_ber_buffers[i/(d_nconnections * 2)][(i%(d_nconnections * 2)) >> 
1] = ber;
 
           }
           consume(i, items);
           consume(i + 1, items);
 
-          if(d_totalErrors[i >> 1] >= d_berminerrors) {
-            printf("    %u over %d\n", d_totalErrors[i >> 1], d_total[i >> 1] 
* 8);
+          if(d_total_errors[i >> 1] >= d_ber_min_errors) {
+            GR_LOG_INFO(d_logger, boost::format("    %1% over %2%  -->  %3%") \
+                        % d_total_errors[i >> 1] % (d_total[i >> 1] * 8) % 
ber);
           }
-          else if(log10(((double)d_berminerrors)/(d_total[i >> 1] * 8.0)) < 
d_berLimit) {
-            printf("BER Limit Reached\n");
-            d_residbufs_imag[i/(d_nconnections * 2)][(i%(d_nconnections * 2)) 
>> 1] = d_berLimit;
-            d_totalErrors[i >> 1] = d_berminerrors + 1;
+          else if(log10(((double)d_ber_min_errors)/(d_total[i >> 1] * 8.0)) < 
d_ber_limit) {
+            GR_LOG_INFO(d_logger, "BER Limit Reached");
+            d_ber_buffers[i/(d_nconnections * 2)][(i%(d_nconnections * 2)) >> 
1] = d_ber_limit;
+            d_total_errors[i >> 1] = d_ber_min_errors + 1;
           }
         }
         else {
diff --git a/gr-qtgui/lib/ber_sink_b_impl.h b/gr-qtgui/lib/ber_sink_b_impl.h
index c7bbfcb..9ab61e6 100644
--- a/gr-qtgui/lib/ber_sink_b_impl.h
+++ b/gr-qtgui/lib/ber_sink_b_impl.h
@@ -38,24 +38,25 @@ namespace gr {
 
       gr::thread::mutex d_mutex;
 
-      std::vector<double*> d_residbufs_real;
-      std::vector<double*> d_residbufs_imag;
-      
+      std::vector<double*> d_esno_buffers;
+      std::vector<double*> d_ber_buffers;
+
       ConstellationDisplayForm *d_main_gui;
       gr::high_res_timer_type d_update_time;
-      std::vector<int> d_totalErrors;
-      int d_berminerrors;
-      float d_berLimit;
+      std::vector<int> d_total_errors;
+      int d_ber_min_errors;
+      float d_ber_limit;
       QWidget *d_parent;
       int d_nconnections;
+      int d_curves;
       gr::high_res_timer_type d_last_time;
       std::vector<int> d_total;
 
-      int compBER(unsigned char *inBuffer1, unsigned char *inBuffer2,int 
buffSize);
+      //int compBER(unsigned char *inBuffer1, unsigned char *inBuffer2,int 
buffSize);
 
     public:
       ber_sink_b_impl(std::vector<float> esnos, int curves = 1,
-                      int berminerrors = 100, float berLimit = -7.0,
+                      int ber_min_errors = 100, float ber_limit = -7.0,
                       std::vector<std::string> curvenames = 
std::vector<std::string>(),
                       QWidget *parent=NULL);
       ~ber_sink_b_impl();



reply via email to

[Prev in Thread] Current Thread [Next in Thread]