commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] [gnuradio] 03/07: trellis: working on issue to fix loc


From: git
Subject: [Commit-gnuradio] [gnuradio] 03/07: trellis: working on issue to fix locations of fsm files in examples.
Date: Mon, 28 Jul 2014 18:42:38 +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 e20ba633b19373ce908d71aa93966bd7241d5988
Author: Jan <address@hidden>
Date:   Mon Jul 21 10:38:41 2014 +0200

    trellis: working on issue to fix locations of fsm files in examples.
    
    + Workaround for the path problem with cmake to use templates for install
    + GRC blocks now check if FSM_Args are strings and if the file exists
    + Changed example generation with CMake
---
 gr-trellis/examples/grc/CMakeLists.txt             |   37 +-
 .../examples/grc/interference_cancellation.grc     | 1424 ++++++++------------
 gr-trellis/examples/grc/pccc.grc                   |  228 ++--
 gr-trellis/examples/grc/pccc1.grc                  |  245 ++--
 gr-trellis/examples/grc/sccc.grc                   |  345 ++---
 gr-trellis/examples/grc/sccc1.grc                  |  297 ++--
 gr-trellis/grc/trellis_encoder_xx.xml              |  135 +-
 .../grc/trellis_pccc_decoder_combined_xx.xml       |  316 ++---
 gr-trellis/grc/trellis_pccc_decoder_x.xml          |  210 +--
 gr-trellis/grc/trellis_pccc_encoder_xx.xml         |  178 +--
 .../grc/trellis_sccc_decoder_combined_xx.xml       |  314 ++---
 gr-trellis/grc/trellis_sccc_decoder_x.xml          |  210 +--
 gr-trellis/grc/trellis_sccc_encoder_xx.xml         |  178 +--
 gr-trellis/grc/trellis_siso_f.xml                  |  153 +--
 gr-trellis/grc/trellis_viterbi_combined_xx.xml     |  227 ++--
 gr-trellis/grc/trellis_viterbi_x.xml               |  115 +-
 16 files changed, 2109 insertions(+), 2503 deletions(-)

diff --git a/gr-trellis/examples/grc/CMakeLists.txt 
b/gr-trellis/examples/grc/CMakeLists.txt
index 46b825d..9927215 100644
--- a/gr-trellis/examples/grc/CMakeLists.txt
+++ b/gr-trellis/examples/grc/CMakeLists.txt
@@ -17,13 +17,40 @@
 # the Free Software Foundation, Inc., 51 Franklin Street,
 # Boston, MA 02110-1301, USA.
 
+## Configure GRC examples to point to the right fsm_files directory
+set(FSM_FILE_INSTALL_DIR 
"${CMAKE_INSTALL_PREFIX}/${GR_PKG_TRELLIS_EXAMPLES_DIR}/fsm_files/")
+configure_file(
+    "${CMAKE_CURRENT_LIST_DIR}/pccc.grc"
+    "${CMAKE_CURRENT_BINARY_DIR}/pccc.grc"
+)
+
+configure_file(
+    "${CMAKE_CURRENT_LIST_DIR}/pccc1.grc"
+    "${CMAKE_CURRENT_BINARY_DIR}/pccc1.grc"
+)
+
+configure_file(
+    "${CMAKE_CURRENT_LIST_DIR}/sccc.grc"
+    "${CMAKE_CURRENT_BINARY_DIR}/sccc.grc"
+)
+
+configure_file(
+    "${CMAKE_CURRENT_LIST_DIR}/sccc1.grc"
+    "${CMAKE_CURRENT_BINARY_DIR}/sccc1.grc"
+)
+
+configure_file(
+    "${CMAKE_CURRENT_LIST_DIR}/interference_cancellation.grc"
+    "${CMAKE_CURRENT_BINARY_DIR}/interference_cancellation.grc"
+)
+
 install(
     FILES
-    interference_cancellation.grc
-    pccc1.grc
-    pccc.grc
-    sccc1.grc
-    sccc.grc
+    ${CMAKE_CURRENT_BINARY_DIR}/interference_cancellation.grc
+    ${CMAKE_CURRENT_BINARY_DIR}/pccc.grc
+    ${CMAKE_CURRENT_BINARY_DIR}/pccc1.grc
+    ${CMAKE_CURRENT_BINARY_DIR}/sccc1.grc
+    ${CMAKE_CURRENT_BINARY_DIR}/sccc.grc
     readme.txt
     DESTINATION ${GR_PKG_TRELLIS_EXAMPLES_DIR}
     COMPONENT "trellis-examples"
diff --git a/gr-trellis/examples/grc/interference_cancellation.grc 
b/gr-trellis/examples/grc/interference_cancellation.grc
index ef011c5..fa969f1 100644
--- a/gr-trellis/examples/grc/interference_cancellation.grc
+++ b/gr-trellis/examples/grc/interference_cancellation.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Sat Jul 12 17:33:47 2014</timestamp>
+  <timestamp>Wed Jul 23 09:31:45 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -52,12 +52,8 @@
       <value></value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>_coordinate</key>
-      <value>(0, 0)</value>
+      <value>(10, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -68,7 +64,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>prefix</value>
+      <value>R</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -76,15 +72,34 @@
     </param>
     <param>
       <key>value</key>
-      <value>"~/src/gnuradio/"</value>
+      <value>100e3</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>_coordinate</key>
+      <value>(502, 10)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable</key>
+    <param>
+      <key>id</key>
+      <value>block</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>1000</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(871, 14)</value>
+      <value>(765, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -106,12 +121,8 @@
       <value>10**(-snr_db/10)</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>_coordinate</key>
-      <value>(637, 13)</value>
+      <value>(428, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -122,7 +133,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>R</value>
+      <value>prefix</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -130,15 +141,11 @@
     </param>
     <param>
       <key>value</key>
-      <value>100e3</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
+      <value>"@FSM_FILE_INSTALL_DIR@"</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(748, 12)</value>
+      <value>(578, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -176,10 +183,6 @@
       <value>True</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -231,10 +234,6 @@
       <value>True</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -259,7 +258,7 @@
     <key>blocks_sub_xx</key>
     <param>
       <key>id</key>
-      <value>blocks_sub_xx_3</value>
+      <value>blocks_sub_xx_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -278,10 +277,92 @@
       <value>2</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>(536, 529)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_multiply_xx</key>
+    <param>
+      <key>id</key>
+      <value>blocks_multiply_xx_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>short</value>
+    </param>
+    <param>
+      <key>num_inputs</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</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>(771, 525)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_sub_xx</key>
+    <param>
+      <key>id</key>
+      <value>blocks_sub_xx_3</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>short</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>num_inputs</key>
+      <value>2</value>
+    </param>
+    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -325,10 +406,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -372,10 +449,6 @@
       <value>2</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -419,10 +492,49 @@
       <value>2</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>(540, 1141)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_multiply_xx</key>
+    <param>
+      <key>id</key>
+      <value>blocks_multiply_xx_2</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>short</value>
+    </param>
+    <param>
+      <key>num_inputs</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -436,7 +548,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(540, 1141)</value>
+      <value>(796, 1136)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -466,10 +578,6 @@
       <value>2</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -513,10 +621,6 @@
       <value>2</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -560,10 +664,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -607,10 +707,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -658,10 +754,6 @@
       <value>-42</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -709,10 +801,6 @@
       <value>True</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -756,10 +844,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -811,10 +895,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -858,10 +938,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -913,10 +989,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -964,12 +1036,8 @@
       <value>1</value>
     </param>
     <param>
-      <key>num_ports</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
       <key>affinity</key>
@@ -1015,10 +1083,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -1062,10 +1126,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -1117,10 +1177,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -1142,475 +1198,113 @@
     </param>
   </block>
   <block>
-    <key>trellis_viterbi_combined_xx</key>
+    <key>variable_qtgui_range</key>
     <param>
       <key>id</key>
-      <value>trellis_viterbi_combined_xx_1</value>
+      <value>alpha</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>c</value>
+      <key>label</key>
+      <value>P1/P</value>
     </param>
     <param>
-      <key>out_type</key>
-      <value>s</value>
+      <key>value</key>
+      <value>0.6</value>
     </param>
     <param>
-      <key>fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
+      <key>start</key>
+      <value>0</value>
     </param>
     <param>
-      <key>block_size</key>
-      <value>1000</value>
+      <key>stop</key>
+      <value>1</value>
     </param>
     <param>
-      <key>init_state</key>
-      <value>-1</value>
+      <key>step</key>
+      <value>0.01</value>
     </param>
     <param>
-      <key>final_state</key>
-      <value>-1</value>
+      <key>widget</key>
+      <value>counter_slider</value>
     </param>
     <param>
-      <key>dim</key>
-      <value>1</value>
+      <key>orient</key>
+      <value>Qt.Horizontal</value>
     </param>
     <param>
-      <key>table</key>
-      
<value>alpha**0.5*1,alpha**0.5*1j,alpha**0.5*(-1j),alpha**0.5*(-1)</value>
+      <key>min_len</key>
+      <value>200</value>
     </param>
     <param>
-      <key>metric_type</key>
-      <value>digital.TRELLIS_EUCLIDEAN</value>
+      <key>gui_hint</key>
+      <value></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>(80, 501)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>trellis_viterbi_combined_xx</key>
-    <param>
-      <key>id</key>
-      <value>trellis_viterbi_combined_xx_2</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>c</value>
-    </param>
-    <param>
-      <key>out_type</key>
-      <value>s</value>
-    </param>
-    <param>
-      <key>fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
-    </param>
-    <param>
-      <key>block_size</key>
-      <value>1000</value>
-    </param>
-    <param>
-      <key>init_state</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>final_state</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>dim</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>table</key>
-      
<value>(1-alpha)**0.5*1,(1-alpha)**0.5*1j,(1-alpha)**0.5*(-1j),(1-alpha)**0.5*(-1)</value>
-    </param>
-    <param>
-      <key>metric_type</key>
-      <value>digital.TRELLIS_EUCLIDEAN</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>(82, 766)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>trellis_encoder_xx</key>
-    <param>
-      <key>id</key>
-      <value>trellis_encoder_xx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>ss</value>
-    </param>
-    <param>
-      <key>fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
-    </param>
-    <param>
-      <key>init_state</key>
-      <value>0</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>(340, 187)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>trellis_encoder_xx</key>
-    <param>
-      <key>id</key>
-      <value>trellis_encoder_xx_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>ss</value>
-    </param>
-    <param>
-      <key>fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
-    </param>
-    <param>
-      <key>init_state</key>
-      <value>0</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>(336, 311)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>trellis_encoder_xx</key>
-    <param>
-      <key>id</key>
-      <value>trellis_encoder_xx_2</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>ss</value>
-    </param>
-    <param>
-      <key>fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
-    </param>
-    <param>
-      <key>init_state</key>
-      <value>0</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>(89, 1000)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>trellis_encoder_xx</key>
-    <param>
-      <key>id</key>
-      <value>trellis_encoder_xx_2_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>ss</value>
-    </param>
-    <param>
-      <key>fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
-    </param>
-    <param>
-      <key>init_state</key>
-      <value>0</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>(103, 1366)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>trellis_viterbi_combined_xx</key>
-    <param>
-      <key>id</key>
-      <value>trellis_viterbi_combined_xx_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>c</value>
-    </param>
-    <param>
-      <key>out_type</key>
-      <value>s</value>
-    </param>
-    <param>
-      <key>fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
-    </param>
-    <param>
-      <key>block_size</key>
-      <value>1000</value>
-    </param>
-    <param>
-      <key>init_state</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>final_state</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>dim</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>table</key>
-      
<value>alpha**0.5*1,alpha**0.5*1j,alpha**0.5*(-1j),alpha**0.5*(-1)</value>
-    </param>
-    <param>
-      <key>metric_type</key>
-      <value>digital.TRELLIS_EUCLIDEAN</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>(75, 1494)</value>
+      <key>_coordinate</key>
+      <value>(177, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>0</value>
+      <value>180</value>
     </param>
   </block>
   <block>
-    <key>trellis_viterbi_combined_xx</key>
+    <key>variable_qtgui_range</key>
     <param>
       <key>id</key>
-      <value>trellis_viterbi_combined_xx_0</value>
+      <value>snr_db</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>c</value>
-    </param>
-    <param>
-      <key>out_type</key>
-      <value>s</value>
-    </param>
-    <param>
-      <key>fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_16.fsm"</value>
+      <key>label</key>
+      <value>P/sigma^2 (dB)</value>
     </param>
     <param>
-      <key>block_size</key>
-      <value>1000</value>
+      <key>value</key>
+      <value>16</value>
     </param>
     <param>
-      <key>init_state</key>
-      <value>-1</value>
+      <key>start</key>
+      <value>0</value>
     </param>
     <param>
-      <key>final_state</key>
-      <value>-1</value>
+      <key>stop</key>
+      <value>20</value>
     </param>
     <param>
-      <key>dim</key>
-      <value>1</value>
+      <key>step</key>
+      <value>0.01</value>
     </param>
     <param>
-      <key>table</key>
-      
<value>(1-alpha)**0.5*1,(1-alpha)**0.5*1j,(1-alpha)**0.5*(-1j),(1-alpha)**0.5*(-1)</value>
+      <key>widget</key>
+      <value>counter_slider</value>
     </param>
     <param>
-      <key>metric_type</key>
-      <value>digital.TRELLIS_EUCLIDEAN</value>
+      <key>orient</key>
+      <value>Qt.Horizontal</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>min_len</key>
+      <value>200</value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>gui_hint</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>(83, 1111)</value>
+      <value>(300, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>0</value>
+      <value>180</value>
     </param>
   </block>
   <block>
@@ -1636,10 +1330,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -1715,26 +1405,6 @@
       <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_chan</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>tr_tag</key>
-      <value>""</value>
-    </param>
-    <param>
       <key>label1</key>
       <value></value>
     </param>
@@ -1843,285 +1513,315 @@
       <value>"red"</value>
     </param>
     <param>
-      <key>style5</key>
-      <value>0</value>
+      <key>size</key>
+      <value>1024</value>
     </param>
     <param>
-      <key>marker5</key>
-      <value>0</value>
+      <key>autoscale</key>
+      <value>False</value>
     </param>
     <param>
-      <key>alpha5</key>
-      <value>1.0</value>
+      <key>ymin</key>
+      <value>-2</value>
     </param>
     <param>
-      <key>label6</key>
+      <key>ymax</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>xmin</key>
+      <value>-2</value>
+    </param>
+    <param>
+      <key>xmax</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>nconnections</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>update_time</key>
+      <value>0.10</value>
+    </param>
+    <param>
+      <key>gui_hint</key>
       <value></value>
     </param>
     <param>
-      <key>width6</key>
+      <key>label1</key>
+      <value></value>
+    </param>
+    <param>
+      <key>width1</key>
       <value>1</value>
     </param>
     <param>
-      <key>color6</key>
-      <value>"red"</value>
+      <key>color1</key>
+      <value>"blue"</value>
     </param>
     <param>
-      <key>style6</key>
+      <key>style1</key>
       <value>0</value>
     </param>
     <param>
-      <key>marker6</key>
+      <key>marker1</key>
       <value>0</value>
     </param>
     <param>
-      <key>alpha6</key>
+      <key>alpha1</key>
       <value>1.0</value>
     </param>
     <param>
-      <key>label7</key>
+      <key>label2</key>
       <value></value>
     </param>
     <param>
-      <key>width7</key>
+      <key>width2</key>
       <value>1</value>
     </param>
     <param>
-      <key>color7</key>
+      <key>color2</key>
       <value>"red"</value>
     </param>
     <param>
-      <key>style7</key>
+      <key>style2</key>
       <value>0</value>
     </param>
     <param>
-      <key>marker7</key>
+      <key>marker2</key>
       <value>0</value>
     </param>
     <param>
-      <key>alpha7</key>
+      <key>alpha2</key>
       <value>1.0</value>
     </param>
     <param>
-      <key>label8</key>
+      <key>label3</key>
       <value></value>
     </param>
     <param>
-      <key>width8</key>
+      <key>width3</key>
       <value>1</value>
     </param>
     <param>
-      <key>color8</key>
+      <key>color3</key>
       <value>"red"</value>
     </param>
     <param>
-      <key>style8</key>
+      <key>style3</key>
       <value>0</value>
     </param>
     <param>
-      <key>marker8</key>
+      <key>marker3</key>
       <value>0</value>
     </param>
     <param>
-      <key>alpha8</key>
+      <key>alpha3</key>
       <value>1.0</value>
     </param>
     <param>
-      <key>label9</key>
+      <key>label4</key>
       <value></value>
     </param>
     <param>
-      <key>width9</key>
+      <key>width4</key>
       <value>1</value>
     </param>
     <param>
-      <key>color9</key>
+      <key>color4</key>
       <value>"red"</value>
     </param>
     <param>
-      <key>style9</key>
+      <key>style4</key>
       <value>0</value>
     </param>
     <param>
-      <key>marker9</key>
+      <key>marker4</key>
       <value>0</value>
     </param>
     <param>
-      <key>alpha9</key>
+      <key>alpha4</key>
       <value>1.0</value>
     </param>
     <param>
-      <key>label10</key>
+      <key>label5</key>
       <value></value>
     </param>
     <param>
-      <key>width10</key>
+      <key>width5</key>
       <value>1</value>
     </param>
     <param>
-      <key>color10</key>
+      <key>color5</key>
       <value>"red"</value>
     </param>
     <param>
-      <key>style10</key>
+      <key>style5</key>
       <value>0</value>
     </param>
     <param>
-      <key>marker10</key>
+      <key>marker5</key>
       <value>0</value>
     </param>
     <param>
-      <key>alpha10</key>
+      <key>alpha5</key>
       <value>1.0</value>
     </param>
     <param>
-      <key>alias</key>
+      <key>label6</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>width6</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(1523, 255)</value>
+      <key>color6</key>
+      <value>"red"</value>
     </param>
     <param>
-      <key>_rotation</key>
+      <key>style6</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>marker6</key>
       <value>0</value>
     </param>
   </block>
   <block>
-    <key>blocks_sub_xx</key>
+    <key>qtgui_number_sink</key>
     <param>
       <key>id</key>
-      <value>blocks_sub_xx_0</value>
+      <value>qtgui_number_sink_0_0_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>float</value>
+    </param>
+    <param>
+      <key>autoscale</key>
+      <value>False</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>avg</key>
+      <value>0.001</value>
     </param>
     <param>
-      <key>type</key>
-      <value>short</value>
+      <key>graph_type</key>
+      <value>qtgui.NUM_GRAPH_HORIZ</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>alpha6</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>num_inputs</key>
-      <value>2</value>
+      <key>label7</key>
+      <value></value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>width7</key>
+      <value>1</value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>color7</key>
+      <value>"red"</value>
     </param>
     <param>
-      <key>minoutbuf</key>
+      <key>style7</key>
       <value>0</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
+      <key>marker7</key>
       <value>0</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(554, 464)</value>
+      <key>alpha7</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>label8</key>
+      <value></value>
     </param>
-  </block>
-  <block>
-    <key>blocks_multiply_xx</key>
     <param>
-      <key>id</key>
-      <value>blocks_multiply_xx_0</value>
+      <key>width8</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>color8</key>
+      <value>"red"</value>
     </param>
     <param>
-      <key>type</key>
-      <value>short</value>
+      <key>style8</key>
+      <value>0</value>
     </param>
     <param>
-      <key>num_inputs</key>
-      <value>2</value>
+      <key>marker8</key>
+      <value>0</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>alpha8</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>alias</key>
+      <key>label9</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>width9</key>
+      <value>1</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>color9</key>
+      <value>"red"</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
+      <key>style9</key>
       <value>0</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(773, 473)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
+      <key>marker9</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_short_to_float</key>
     <param>
-      <key>id</key>
-      <value>blocks_short_to_float_0</value>
+      <key>alpha9</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>label10</key>
+      <value></value>
     </param>
     <param>
-      <key>vlen</key>
+      <key>width10</key>
       <value>1</value>
     </param>
     <param>
-      <key>scale</key>
-      <value>1</value>
+      <key>color10</key>
+      <value>"red"</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>style10</key>
+      <value>0</value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>marker10</key>
+      <value>0</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>alpha10</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(925, 486)</value>
+      <value>(1537, 259)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2132,7 +1832,7 @@
     <key>blocks_short_to_float</key>
     <param>
       <key>id</key>
-      <value>blocks_short_to_float_2</value>
+      <value>blocks_short_to_float_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -2147,10 +1847,6 @@
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
@@ -2164,7 +1860,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1010, 769)</value>
+      <value>(1010, 1551)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2175,7 +1871,7 @@
     <key>qtgui_number_sink</key>
     <param>
       <key>id</key>
-      <value>qtgui_number_sink_0</value>
+      <value>qtgui_number_sink_0_0_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -2215,18 +1911,18 @@
     </param>
     <param>
       <key>gui_hint</key>
-      <value>0,0,1,1</value>
+      <value>1,0,1,1</value>
     </param>
     <param>
       <key>label1</key>
-      <value>BER 1 (raw)</value>
+      <value>BER 2 (raw)</value>
     </param>
     <param>
-      <key>color1</key>
+      <key>color3</key>
       <value>("black", "black")</value>
     </param>
     <param>
-      <key>label2</key>
+      <key>label4</key>
       <value></value>
     </param>
     <param>
@@ -2298,16 +1994,20 @@
       <value>("black", "black")</value>
     </param>
     <param>
-      <key>alias</key>
+      <key>affinity</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1153, 436)</value>
+      <value>(1266, 1535)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2318,7 +2018,7 @@
     <key>qtgui_number_sink</key>
     <param>
       <key>id</key>
-      <value>qtgui_number_sink_0_0</value>
+      <value>qtgui_number_sink_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -2358,11 +2058,11 @@
     </param>
     <param>
       <key>gui_hint</key>
-      <value>0,1,1,1</value>
+      <value>0,0,1,1</value>
     </param>
     <param>
       <key>label1</key>
-      <value>BER 2 (raw)</value>
+      <value></value>
     </param>
     <param>
       <key>color1</key>
@@ -2441,16 +2141,12 @@
       <value>("black", "black")</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1260, 719)</value>
+      <value>(1257, 471)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2461,7 +2157,7 @@
     <key>qtgui_number_sink</key>
     <param>
       <key>id</key>
-      <value>qtgui_number_sink_0_0_0</value>
+      <value>qtgui_number_sink_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -2501,11 +2197,11 @@
     </param>
     <param>
       <key>gui_hint</key>
-      <value>1,1,1,1</value>
+      <value>0,1,1,1</value>
     </param>
     <param>
       <key>label1</key>
-      <value>BER 2 (after cancelling user 1)</value>
+      <value>BER 2 (raw)</value>
     </param>
     <param>
       <key>color1</key>
@@ -2520,7 +2216,7 @@
       <value>("black", "black")</value>
     </param>
     <param>
-      <key>label3</key>
+      <key>label5</key>
       <value></value>
     </param>
     <param>
@@ -2528,7 +2224,7 @@
       <value>("black", "black")</value>
     </param>
     <param>
-      <key>label4</key>
+      <key>label6</key>
       <value></value>
     </param>
     <param>
@@ -2536,19 +2232,51 @@
       <value>("black", "black")</value>
     </param>
     <param>
-      <key>label5</key>
-      <value></value>
+      <key>autoscale</key>
+      <value>False</value>
     </param>
     <param>
-      <key>color5</key>
+      <key>avg</key>
+      <value>0.001</value>
+    </param>
+    <param>
+      <key>graph_type</key>
+      <value>qtgui.NUM_GRAPH_HORIZ</value>
+    </param>
+    <param>
+      <key>nconnections</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>min</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>max</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>update_time</key>
+      <value>0.10</value>
+    </param>
+    <param>
+      <key>gui_hint</key>
+      <value>0,1,1,1</value>
+    </param>
+    <param>
+      <key>label1</key>
+      <value>BER 2 (raw)</value>
+    </param>
+    <param>
+      <key>color1</key>
       <value>("black", "black")</value>
     </param>
     <param>
-      <key>label6</key>
+      <key>label2</key>
       <value></value>
     </param>
     <param>
-      <key>color6</key>
+      <key>color2</key>
       <value>("black", "black")</value>
     </param>
     <param>
@@ -2584,16 +2312,12 @@
       <value>("black", "black")</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>affinity</key>
       <value></value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1221, 1116)</value>
+      <value>(1271, 742)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2601,26 +2325,26 @@
     </param>
   </block>
   <block>
-    <key>blocks_short_to_float</key>
+    <key>trellis_encoder_xx</key>
     <param>
       <key>id</key>
-      <value>blocks_short_to_float_1</value>
+      <value>trellis_encoder_xx_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>type</key>
+      <value>ss</value>
     </param>
     <param>
-      <key>scale</key>
-      <value>1</value>
+      <key>fsm_args</key>
+      <value>prefix+"awgn1o2_16.fsm"</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>init_state</key>
+      <value>0</value>
     </param>
     <param>
       <key>affinity</key>
@@ -2636,7 +2360,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1006, 1153)</value>
+      <value>(340, 187)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2644,10 +2368,10 @@
     </param>
   </block>
   <block>
-    <key>blocks_multiply_xx</key>
+    <key>trellis_encoder_xx</key>
     <param>
       <key>id</key>
-      <value>blocks_multiply_xx_2</value>
+      <value>trellis_encoder_xx_1</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -2655,19 +2379,15 @@
     </param>
     <param>
       <key>type</key>
-      <value>short</value>
-    </param>
-    <param>
-      <key>num_inputs</key>
-      <value>2</value>
+      <value>ss</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>fsm_args</key>
+      <value>prefix+"awgn1o2_16.fsm"</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>init_state</key>
+      <value>0</value>
     </param>
     <param>
       <key>affinity</key>
@@ -2683,7 +2403,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(796, 1136)</value>
+      <value>(336, 311)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2691,26 +2411,50 @@
     </param>
   </block>
   <block>
-    <key>blocks_short_to_float</key>
+    <key>trellis_viterbi_combined_xx</key>
     <param>
       <key>id</key>
-      <value>blocks_short_to_float_1_0</value>
+      <value>trellis_viterbi_combined_xx_1</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>type</key>
+      <value>c</value>
     </param>
     <param>
-      <key>scale</key>
+      <key>out_type</key>
+      <value>s</value>
+    </param>
+    <param>
+      <key>fsm_args</key>
+      <value>prefix+"awgn1o2_16.fsm"</value>
+    </param>
+    <param>
+      <key>block_size</key>
+      <value>1000</value>
+    </param>
+    <param>
+      <key>init_state</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>final_state</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>dim</key>
       <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>table</key>
+      
<value>alpha**0.5*1,alpha**0.5*1j,alpha**0.5*(-1j),alpha**0.5*(-1)</value>
+    </param>
+    <param>
+      <key>metric_type</key>
+      <value>digital.TRELLIS_EUCLIDEAN</value>
     </param>
     <param>
       <key>affinity</key>
@@ -2726,7 +2470,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1008, 1549)</value>
+      <value>(79, 501)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2734,10 +2478,10 @@
     </param>
   </block>
   <block>
-    <key>qtgui_number_sink</key>
+    <key>trellis_viterbi_combined_xx</key>
     <param>
       <key>id</key>
-      <value>qtgui_number_sink_0_0_0_0</value>
+      <value>trellis_viterbi_combined_xx_2</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -2745,131 +2489,165 @@
     </param>
     <param>
       <key>type</key>
-      <value>float</value>
+      <value>c</value>
     </param>
     <param>
-      <key>autoscale</key>
-      <value>False</value>
+      <key>out_type</key>
+      <value>s</value>
     </param>
     <param>
-      <key>avg</key>
-      <value>0.001</value>
+      <key>fsm_args</key>
+      <value>prefix+"awgn1o2_16.fsm"</value>
     </param>
     <param>
-      <key>graph_type</key>
-      <value>qtgui.NUM_GRAPH_HORIZ</value>
+      <key>block_size</key>
+      <value>1000</value>
     </param>
     <param>
-      <key>nconnections</key>
-      <value>1</value>
+      <key>init_state</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>min</key>
+      <key>final_state</key>
       <value>-1</value>
     </param>
     <param>
-      <key>max</key>
+      <key>dim</key>
       <value>1</value>
     </param>
     <param>
-      <key>update_time</key>
-      <value>0.10</value>
+      <key>table</key>
+      
<value>(1-alpha)**0.5*1,(1-alpha)**0.5*1j,(1-alpha)**0.5*(-1j),(1-alpha)**0.5*(-1)</value>
     </param>
     <param>
-      <key>gui_hint</key>
-      <value>1,0,1,1</value>
+      <key>metric_type</key>
+      <value>digital.TRELLIS_EUCLIDEAN</value>
     </param>
     <param>
-      <key>label1</key>
-      <value>BER 1 (after cancelling user 2)</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>color1</key>
-      <value>("black", "black")</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>label2</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>color2</key>
-      <value>("black", "black")</value>
+      <key>_coordinate</key>
+      <value>(82, 766)</value>
     </param>
     <param>
-      <key>label3</key>
-      <value></value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>trellis_encoder_xx</key>
     <param>
-      <key>color3</key>
-      <value>("black", "black")</value>
+      <key>id</key>
+      <value>trellis_encoder_xx_2</value>
     </param>
     <param>
-      <key>label4</key>
-      <value></value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>color4</key>
-      <value>("black", "black")</value>
+      <key>type</key>
+      <value>ss</value>
     </param>
     <param>
-      <key>label5</key>
-      <value></value>
+      <key>fsm_args</key>
+      <value>prefix+"awgn1o2_16.fsm"</value>
     </param>
     <param>
-      <key>color5</key>
-      <value>("black", "black")</value>
+      <key>init_state</key>
+      <value>0</value>
     </param>
     <param>
-      <key>label6</key>
+      <key>affinity</key>
       <value></value>
     </param>
     <param>
-      <key>color6</key>
-      <value>("black", "black")</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>label7</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>color7</key>
-      <value>("black", "black")</value>
+      <key>_coordinate</key>
+      <value>(89, 1000)</value>
     </param>
     <param>
-      <key>label8</key>
-      <value></value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>trellis_viterbi_combined_xx</key>
     <param>
-      <key>color8</key>
-      <value>("black", "black")</value>
+      <key>id</key>
+      <value>trellis_viterbi_combined_xx_0</value>
     </param>
     <param>
-      <key>label9</key>
-      <value></value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>color9</key>
-      <value>("black", "black")</value>
+      <key>type</key>
+      <value>c</value>
     </param>
     <param>
-      <key>label10</key>
-      <value></value>
+      <key>out_type</key>
+      <value>s</value>
     </param>
     <param>
-      <key>color10</key>
-      <value>("black", "black")</value>
+      <key>fsm_args</key>
+      <value>prefix+"awgn1o2_16.fsm"</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>block_size</key>
+      <value>1000</value>
+    </param>
+    <param>
+      <key>init_state</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>final_state</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>dim</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>table</key>
+      
<value>(1-alpha)**0.5*1,(1-alpha)**0.5*1j,(1-alpha)**0.5*(-1j),(1-alpha)**0.5*(-1)</value>
+    </param>
+    <param>
+      <key>metric_type</key>
+      <value>digital.TRELLIS_EUCLIDEAN</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>(1271, 1507)</value>
+      <value>(83, 1111)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2877,58 +2655,42 @@
     </param>
   </block>
   <block>
-    <key>variable_qtgui_range</key>
+    <key>trellis_encoder_xx</key>
     <param>
       <key>id</key>
-      <value>alpha</value>
+      <value>trellis_encoder_xx_2_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>label</key>
-      <value>P2/P</value>
+      <key>type</key>
+      <value>ss</value>
     </param>
     <param>
-      <key>value</key>
-      <value>.6</value>
+      <key>fsm_args</key>
+      <value>prefix+"awgn1o2_16.fsm"</value>
     </param>
     <param>
-      <key>start</key>
+      <key>init_state</key>
       <value>0</value>
     </param>
     <param>
-      <key>stop</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>step</key>
-      <value>.01</value>
-    </param>
-    <param>
-      <key>widget</key>
-      <value>counter_slider</value>
-    </param>
-    <param>
-      <key>orient</key>
-      <value>Qt.Horizontal</value>
-    </param>
-    <param>
-      <key>min_len</key>
-      <value>200</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>gui_hint</key>
-      <value></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>(164, 0)</value>
+      <value>(103, 1366)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -2936,58 +2698,66 @@
     </param>
   </block>
   <block>
-    <key>variable_qtgui_range</key>
+    <key>trellis_viterbi_combined_xx</key>
     <param>
       <key>id</key>
-      <value>snr_db</value>
+      <value>trellis_viterbi_combined_xx_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>label</key>
-      <value>P/sigma^2 (dB)</value>
+      <key>type</key>
+      <value>c</value>
     </param>
     <param>
-      <key>value</key>
-      <value>16</value>
+      <key>out_type</key>
+      <value>s</value>
     </param>
     <param>
-      <key>start</key>
-      <value>0</value>
+      <key>fsm_args</key>
+      <value>prefix+"awgn1o2_16.fsm"</value>
     </param>
     <param>
-      <key>stop</key>
-      <value>20</value>
+      <key>block_size</key>
+      <value>1000</value>
     </param>
     <param>
-      <key>step</key>
-      <value>1</value>
+      <key>init_state</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>widget</key>
-      <value>counter_slider</value>
+      <key>final_state</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>orient</key>
-      <value>Qt.Horizontal</value>
+      <key>dim</key>
+      <value>1</value>
     </param>
     <param>
-      <key>min_len</key>
-      <value>200</value>
+      <key>table</key>
+      
<value>alpha**0.5*1,alpha**0.5*1j,alpha**0.5*(-1j),alpha**0.5*(-1)</value>
     </param>
     <param>
-      <key>gui_hint</key>
-      <value></value>
+      <key>metric_type</key>
+      <value>digital.TRELLIS_EUCLIDEAN</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>(310, 0)</value>
+      <value>(75, 1495)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -3049,6 +2819,12 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
+    <source_block_id>blocks_add_xx_1</source_block_id>
+    <sink_block_id>trellis_viterbi_combined_xx_1</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
     <source_block_id>analog_random_source_x_0</source_block_id>
     <sink_block_id>blocks_sub_xx_0</sink_block_id>
     <source_key>0</source_key>
@@ -3079,6 +2855,12 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
+    <source_block_id>blocks_sub_xx_1</source_block_id>
+    <sink_block_id>blocks_multiply_xx_2</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>1</sink_key>
+  </connection>
+  <connection>
     <source_block_id>blocks_sub_xx_2</source_block_id>
     <sink_block_id>trellis_viterbi_combined_xx_0</sink_block_id>
     <source_key>0</source_key>
@@ -3248,12 +3030,6 @@
   </connection>
   <connection>
     <source_block_id>blocks_add_xx_1</source_block_id>
-    <sink_block_id>trellis_viterbi_combined_xx_1</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_add_xx_1</source_block_id>
     <sink_block_id>qtgui_const_sink_x_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
@@ -3283,12 +3059,6 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_sub_xx_1</source_block_id>
-    <sink_block_id>blocks_multiply_xx_2</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>1</sink_key>
-  </connection>
-  <connection>
     <source_block_id>blocks_short_to_float_1_0</source_block_id>
     <sink_block_id>qtgui_number_sink_0_0_0_0</sink_block_id>
     <source_key>0</source_key>
diff --git a/gr-trellis/examples/grc/pccc.grc b/gr-trellis/examples/grc/pccc.grc
index 0f8d76d..e4f4dda 100644
--- a/gr-trellis/examples/grc/pccc.grc
+++ b/gr-trellis/examples/grc/pccc.grc
@@ -1,11 +1,11 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Thu Jul 17 14:55:30 2014</timestamp>
+  <timestamp>Tue Jul 22 09:01:43 2014</timestamp>
   <block>
     <key>options</key>
     <param>
       <key>id</key>
-      <value>sccc1</value>
+      <value>pccc</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -52,10 +52,6 @@
       <value></value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>_coordinate</key>
       <value>(10, 10)</value>
     </param>
@@ -68,7 +64,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>GNURADIO_SRC_DIR</value>
+      <value>block</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -76,11 +72,11 @@
     </param>
     <param>
       <key>value</key>
-      <value>"/home/jank/src/gnuradio/"</value>
+      <value>1000</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(656, 10)</value>
+      <value>(621, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -91,7 +87,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>R</value>
+      <value>prefix</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -99,7 +95,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>GNURADIO_SRC_DIR</value>
+      <value>"@FSM_FILE_INSTALL_DIR@"</value>
     </param>
     <param>
       <key>_coordinate</key>
@@ -114,33 +110,6 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>noisevar</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>10**(-snr_db/10)</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(279, 10)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
       <value>R</value>
     </param>
     <param>
@@ -164,7 +133,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>block</value>
+      <value>noisevar</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -172,15 +141,11 @@
     </param>
     <param>
       <key>value</key>
-      <value>1000</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
+      <value>10**(-snr_db/10)</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(593, 10)</value>
+      <value>(279, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -296,8 +261,8 @@
       <value>True</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>type</key>
+      <value>float</value>
     </param>
     <param>
       <key>noise_type</key>
@@ -453,14 +418,6 @@
       <value>0</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
       <key>_coordinate</key>
       <value>(409, 530)</value>
     </param>
@@ -500,22 +457,6 @@
       <value>0</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>(552, 548)</value>
     </param>
@@ -525,65 +466,6 @@
     </param>
   </block>
   <block>
-    <key>blocks_sub_xx</key>
-    <param>
-      <key>id</key>
-      <value>blocks_sub_xx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>short</value>
-    </param>
-    <param>
-      <key>o_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
-    </param>
-    <param>
-      <key>num_inputs</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>i_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</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>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>(234, 154)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>qtgui_number_sink</key>
     <param>
       <key>id</key>
@@ -779,21 +661,20 @@
       <key>_rotation</key>
       <value>180</value>
     </param>
+  </block>
+  <block>
+    <key>digital_chunks_to_symbols_xx</key>
     <param>
-      <key>number_rate</key>
-      <value>15</value>
-    </param>
-    <param>
-      <key>peak_hold</key>
-      <value>False</value>
+      <key>id</key>
+      <value>digital_chunks_to_symbols_xx_0</value>
     </param>
     <param>
       <key>average</key>
       <value>True</value>
     </param>
     <param>
-      <key>avg_alpha</key>
-      <value>0.001</value>
+      <key>in_type</key>
+      <value>short</value>
     </param>
     <param>
       <key>show_gauge</key>
@@ -804,20 +685,71 @@
       <value>-7,0, -5,0, -3,0, -1,0, 1,0, 3,0, 5,0, 7,0,   0,-7,0, -5,0, -3,0, 
-1,0, 1,0, 3,0, 5,0, 7,0</value>
     </param>
     <param>
-      <key>grid_pos</key>
-      <value>1,0,1,1</value>
+      <key>dimension</key>
+      <value>2</value>
     </param>
     <param>
-      <key>notebook</key>
-      <value></value>
+      <key>num_ports</key>
+      <value>1</value>
     </param>
     <param>
-      <key>alias</key>
+      <key>affinity</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(559, 180)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>trellis_pccc_encoder_xx</key>
+    <param>
+      <key>id</key>
+      <value>trellis_pccc_encoder_xx_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>ss</value>
+    </param>
+    <param>
+      <key>o_fsm_args</key>
+      <value>prefix + "awgn1o2_4.fsm"</value>
+    </param>
+    <param>
+      <key>o_init_state</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>i_fsm_args</key>
+      <value>prefix + "awgn1o2_4.fsm"</value>
+    </param>
+    <param>
+      <key>i_init_state</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>interleaver_args</key>
+      <value>trellis.interleaver(block,666)</value>
+    </param>
+    <param>
+      <key>bl</key>
+      <value>block</value>
     </param>
     <param>
       <key>affinity</key>
@@ -833,7 +765,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(719, 462)</value>
+      <value>(234, 154)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -860,7 +792,7 @@
     </param>
     <param>
       <key>o_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
+      <value>prefix + "awgn1o2_4.fsm"</value>
     </param>
     <param>
       <key>o_init_state</key>
@@ -872,7 +804,7 @@
     </param>
     <param>
       <key>i_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
+      <value>prefix + "awgn1o2_4.fsm"</value>
     </param>
     <param>
       <key>i_init_state</key>
diff --git a/gr-trellis/examples/grc/pccc1.grc 
b/gr-trellis/examples/grc/pccc1.grc
index 8aaa28a..c27c658 100644
--- a/gr-trellis/examples/grc/pccc1.grc
+++ b/gr-trellis/examples/grc/pccc1.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Thu Jul 17 14:55:59 2014</timestamp>
+  <timestamp>Tue Jul 22 09:01:29 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -76,7 +76,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(593, 10)</value>
+      <value>(621, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -118,7 +118,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>GNURADIO_SRC_DIR</value>
+      <value>"@FSM_FILE_INSTALL_DIR@"</value>
     </param>
     <param>
       <key>_coordinate</key>
@@ -133,29 +133,6 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>GNURADIO_SRC_DIR</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>"/home/jank/src/gnuradio/"</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(656, 10)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
       <value>R</value>
     </param>
     <param>
@@ -628,42 +605,34 @@
     </param>
   </block>
   <block>
-    <key>trellis_pccc_encoder_xx</key>
+    <key>digital_chunks_to_symbols_xx</key>
     <param>
       <key>id</key>
-      <value>trellis_pccc_encoder_xx_0</value>
+      <value>digital_chunks_to_symbols_xx_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>ss</value>
-    </param>
-    <param>
-      <key>o_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
-    </param>
-    <param>
-      <key>o_init_state</key>
-      <value>0</value>
+      <key>in_type</key>
+      <value>short</value>
     </param>
     <param>
-      <key>i_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
+      <key>out_type</key>
+      <value>float</value>
     </param>
     <param>
-      <key>i_init_state</key>
-      <value>0</value>
+      <key>symbol_table</key>
+      
<value>-7,0,-5,0,-3,0,-1,0,1,0,3,0,5,0,7,0,-7,0,-5,0,-3,0,-1,0,1,0,3,0,5,0,7,0</value>
     </param>
     <param>
-      <key>interleaver_args</key>
-      <value>trellis.interleaver(block,666)</value>
+      <key>dimension</key>
+      <value>2</value>
     </param>
     <param>
-      <key>bl</key>
-      <value>block</value>
+      <key>num_ports</key>
+      <value>1</value>
     </param>
     <param>
       <key>affinity</key>
@@ -679,7 +648,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(235, 154)</value>
+      <value>(552, 178)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -687,34 +656,34 @@
     </param>
   </block>
   <block>
-    <key>digital_chunks_to_symbols_xx</key>
+    <key>trellis_metrics_x</key>
     <param>
       <key>id</key>
-      <value>digital_chunks_to_symbols_xx_0</value>
+      <value>trellis_metrics_x_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>in_type</key>
-      <value>short</value>
+      <key>type</key>
+      <value>f</value>
     </param>
     <param>
-      <key>out_type</key>
-      <value>float</value>
+      <key>card</key>
+      <value>16</value>
     </param>
     <param>
-      <key>symbol_table</key>
-      
<value>-7,0,-5,0,-3,0,-1,0,1,0,3,0,5,0,7,0,-7,0,-5,0,-3,0,-1,0,1,0,3,0,5,0,7,0</value>
+      <key>dim</key>
+      <value>2</value>
     </param>
     <param>
-      <key>dimension</key>
-      <value>2</value>
+      <key>table</key>
+      <value>-7,0, -5,0, -3,0, -1,0, 1,0, 3,0, 5,0, 7,0,   0,-7,0, -5,0, -3,0, 
-1,0, 1,0, 3,0, 5,0, 7,0</value>
     </param>
     <param>
-      <key>num_ports</key>
-      <value>1</value>
+      <key>metric_type</key>
+      <value>digital.TRELLIS_EUCLIDEAN</value>
     </param>
     <param>
       <key>affinity</key>
@@ -730,7 +699,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(552, 178)</value>
+      <value>(56, 370)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -738,85 +707,65 @@
     </param>
   </block>
   <block>
-    <key>trellis_pccc_decoder_x</key>
+    <key>variable_qtgui_range</key>
     <param>
       <key>id</key>
-      <value>trellis_pccc_decoder_x_0</value>
+      <value>snr_db</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>out_type</key>
-      <value>s</value>
-    </param>
-    <param>
-      <key>o_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
-    </param>
-    <param>
-      <key>o_init_state</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>o_final_state</key>
-      <value>-1</value>
+      <key>label</key>
+      <value>SNR (dB)</value>
     </param>
     <param>
-      <key>i_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
+      <key>value</key>
+      <value>5</value>
     </param>
     <param>
-      <key>i_init_state</key>
-      <value>0</value>
+      <key>start</key>
+      <value>-10</value>
     </param>
     <param>
-      <key>i_final_state</key>
-      <value>-1</value>
+      <key>stop</key>
+      <value>10</value>
     </param>
     <param>
-      <key>interleaver</key>
-      <value>trellis.interleaver(block,666)</value>
+      <key>step</key>
+      <value>0.01</value>
     </param>
     <param>
-      <key>block_size</key>
-      <value>block</value>
+      <key>widget</key>
+      <value>counter_slider</value>
     </param>
     <param>
-      <key>iterations</key>
-      <value>10</value>
+      <key>orient</key>
+      <value>Qt.Horizontal</value>
     </param>
     <param>
-      <key>siso_type</key>
-      <value>trellis.TRELLIS_MIN_SUM</value>
+      <key>min_len</key>
+      <value>200</value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>gui_hint</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>(359, 322)</value>
+      <value>(177, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>0</value>
+      <value>180</value>
     </param>
   </block>
   <block>
-    <key>trellis_metrics_x</key>
+    <key>trellis_pccc_encoder_xx</key>
     <param>
       <key>id</key>
-      <value>trellis_metrics_x_0</value>
+      <value>trellis_pccc_encoder_xx_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -824,23 +773,31 @@
     </param>
     <param>
       <key>type</key>
-      <value>f</value>
+      <value>ss</value>
     </param>
     <param>
-      <key>card</key>
-      <value>16</value>
+      <key>o_fsm_args</key>
+      <value>prefix+"awgn1o2_4.fsm"</value>
     </param>
     <param>
-      <key>dim</key>
-      <value>2</value>
+      <key>o_init_state</key>
+      <value>0</value>
     </param>
     <param>
-      <key>table</key>
-      <value>-7,0, -5,0, -3,0, -1,0, 1,0, 3,0, 5,0, 7,0,   0,-7,0, -5,0, -3,0, 
-1,0, 1,0, 3,0, 5,0, 7,0</value>
+      <key>i_fsm_args</key>
+      <value>prefix+"awgn1o2_4.fsm"</value>
     </param>
     <param>
-      <key>metric_type</key>
-      <value>digital.TRELLIS_EUCLIDEAN</value>
+      <key>i_init_state</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>interleaver_args</key>
+      <value>trellis.interleaver(block,666)</value>
+    </param>
+    <param>
+      <key>bl</key>
+      <value>block</value>
     </param>
     <param>
       <key>affinity</key>
@@ -856,7 +813,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(56, 370)</value>
+      <value>(235, 154)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -864,58 +821,78 @@
     </param>
   </block>
   <block>
-    <key>variable_qtgui_range</key>
+    <key>trellis_pccc_decoder_x</key>
     <param>
       <key>id</key>
-      <value>snr_db</value>
+      <value>trellis_pccc_decoder_x_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>label</key>
-      <value>SNR (dB)</value>
+      <key>out_type</key>
+      <value>s</value>
     </param>
     <param>
-      <key>value</key>
-      <value>5</value>
+      <key>o_fsm_args</key>
+      <value>prefix+"awgn1o2_4.fsm"</value>
     </param>
     <param>
-      <key>start</key>
-      <value>-10</value>
+      <key>o_init_state</key>
+      <value>0</value>
     </param>
     <param>
-      <key>stop</key>
-      <value>10</value>
+      <key>o_final_state</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>step</key>
-      <value>0.01</value>
+      <key>i_fsm_args</key>
+      <value>prefix+"awgn1o2_4.fsm"</value>
     </param>
     <param>
-      <key>widget</key>
-      <value>counter_slider</value>
+      <key>i_init_state</key>
+      <value>0</value>
     </param>
     <param>
-      <key>orient</key>
-      <value>Qt.Horizontal</value>
+      <key>i_final_state</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>min_len</key>
-      <value>200</value>
+      <key>interleaver</key>
+      <value>trellis.interleaver(block,666)</value>
     </param>
     <param>
-      <key>gui_hint</key>
+      <key>block_size</key>
+      <value>block</value>
+    </param>
+    <param>
+      <key>iterations</key>
+      <value>10</value>
+    </param>
+    <param>
+      <key>siso_type</key>
+      <value>trellis.TRELLIS_MIN_SUM</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>(177, 10)</value>
+      <value>(359, 322)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>180</value>
+      <value>0</value>
     </param>
   </block>
   <connection>
diff --git a/gr-trellis/examples/grc/sccc.grc b/gr-trellis/examples/grc/sccc.grc
index 44d8f26..ace871a 100644
--- a/gr-trellis/examples/grc/sccc.grc
+++ b/gr-trellis/examples/grc/sccc.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Thu Jul 17 14:56:16 2014</timestamp>
+  <timestamp>Tue Jul 22 09:01:11 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -52,10 +52,6 @@
       <value></value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
       <key>_coordinate</key>
       <value>(10, 10)</value>
     </param>
@@ -80,37 +76,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(593, 10)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>noisevar</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>10**(-snr_db/10)</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(279, 10)</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>block</value>
+      <value>(622, 9)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -129,11 +95,11 @@
     </param>
     <param>
       <key>value</key>
-      <value>GNURADIO_SRC_DIR</value>
+      <value>"@FSM_FILE_INSTALL_DIR@"</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(434, 10)</value>
+      <value>(435, 9)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -144,7 +110,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>GNURADIO_SRC_DIR</value>
+      <value>noisevar</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -152,11 +118,11 @@
     </param>
     <param>
       <key>value</key>
-      <value>"/home/jank/src/gnuradio/"</value>
+      <value>10**(-snr_db/10)</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(656, 10)</value>
+      <value>(279, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -164,7 +130,7 @@
     </param>
   </block>
   <block>
-    <key>analog_random_source_x</key>
+    <key>variable</key>
     <param>
       <key>id</key>
       <value>R</value>
@@ -178,26 +144,6 @@
       <value>100e3</value>
     </param>
     <param>
-      <key>repeat</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>(358, 10)</value>
     </param>
@@ -292,22 +238,6 @@
       <value>0</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>(951, 256)</value>
     </param>
@@ -578,14 +508,6 @@
       <value>0</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
       <key>_coordinate</key>
       <value>(551, 181)</value>
     </param>
@@ -595,116 +517,6 @@
     </param>
   </block>
   <block>
-    <key>blocks_throttle</key>
-    <param>
-      <key>id</key>
-      <value>blocks_throttle_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>short</value>
-    </param>
-    <param>
-      <key>samples_per_second</key>
-      <value>R</value>
-    </param>
-    <param>
-      <key>o_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
-    </param>
-    <param>
-      <key>ignoretag</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>i_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn2o3_4.fsm"</value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(514, 105)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_add_xx</key>
-    <param>
-      <key>id</key>
-      <value>blocks_add_xx_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>num_inputs</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>table</key>
-      <value>1,0,1j,0,-1j,0,-1,0,1,0,1j,0,-1j,0,-1,0</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>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>(241, 287)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>qtgui_number_sink</key>
     <param>
       <key>id</key>
@@ -844,6 +656,61 @@
     </param>
   </block>
   <block>
+    <key>variable_qtgui_range</key>
+    <param>
+      <key>id</key>
+      <value>snr_db</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>SNR (dB)</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>5</value>
+    </param>
+    <param>
+      <key>start</key>
+      <value>-10</value>
+    </param>
+    <param>
+      <key>stop</key>
+      <value>10</value>
+    </param>
+    <param>
+      <key>step</key>
+      <value>0.01</value>
+    </param>
+    <param>
+      <key>widget</key>
+      <value>counter_slider</value>
+    </param>
+    <param>
+      <key>orient</key>
+      <value>Qt.Horizontal</value>
+    </param>
+    <param>
+      <key>min_len</key>
+      <value>200</value>
+    </param>
+    <param>
+      <key>gui_hint</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(177, 10)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>180</value>
+    </param>
+  </block>
+  <block>
     <key>trellis_sccc_encoder_xx</key>
     <param>
       <key>id</key>
@@ -859,7 +726,7 @@
     </param>
     <param>
       <key>o_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
+      <value>prefix+"awgn1o2_4.fsm"</value>
     </param>
     <param>
       <key>o_init_state</key>
@@ -867,7 +734,7 @@
     </param>
     <param>
       <key>i_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn2o3_4.fsm"</value>
+      <value>prefix+"awgn2o3_4.fsm"</value>
     </param>
     <param>
       <key>i_init_state</key>
@@ -903,58 +770,98 @@
     </param>
   </block>
   <block>
-    <key>variable_qtgui_range</key>
+    <key>trellis_sccc_decoder_combined_xx</key>
     <param>
       <key>id</key>
-      <value>snr_db</value>
+      <value>trellis_sccc_decoder_combined_xx_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>label</key>
-      <value>SNR (dB)</value>
+      <key>type</key>
+      <value>c</value>
     </param>
     <param>
-      <key>value</key>
-      <value>5</value>
+      <key>out_type</key>
+      <value>s</value>
     </param>
     <param>
-      <key>start</key>
-      <value>-10</value>
+      <key>o_fsm_args</key>
+      <value>prefix+"awgn1o2_4.fsm"</value>
     </param>
     <param>
-      <key>stop</key>
-      <value>10</value>
+      <key>o_init_state</key>
+      <value>0</value>
     </param>
     <param>
-      <key>step</key>
-      <value>0.01</value>
+      <key>o_final_state</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>widget</key>
-      <value>counter_slider</value>
+      <key>i_fsm_args</key>
+      <value>prefix+"awgn2o3_4.fsm"</value>
     </param>
     <param>
-      <key>orient</key>
-      <value>Qt.Horizontal</value>
+      <key>i_init_state</key>
+      <value>0</value>
     </param>
     <param>
-      <key>min_len</key>
-      <value>200</value>
+      <key>i_final_state</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>gui_hint</key>
+      <key>interleaver</key>
+      <value>trellis.interleaver(block,666)</value>
+    </param>
+    <param>
+      <key>block_size</key>
+      <value>block</value>
+    </param>
+    <param>
+      <key>iterations</key>
+      <value>5</value>
+    </param>
+    <param>
+      <key>dim</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>table</key>
+      <value>1,0,1j,0,-1j,0,-1,0,1,0,1j,0,-1j,0,-1,0</value>
+    </param>
+    <param>
+      <key>metric_type</key>
+      <value>digital.TRELLIS_EUCLIDEAN</value>
+    </param>
+    <param>
+      <key>siso_type</key>
+      <value>trellis.TRELLIS_SUM_PRODUCT</value>
+    </param>
+    <param>
+      <key>scaling</key>
+      <value>1.0</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>(177, 10)</value>
+      <value>(241, 287)</value>
     </param>
     <param>
       <key>_rotation</key>
-      <value>180</value>
+      <value>0</value>
     </param>
   </block>
   <connection>
diff --git a/gr-trellis/examples/grc/sccc1.grc 
b/gr-trellis/examples/grc/sccc1.grc
index 2dbf581..f4a4673 100644
--- a/gr-trellis/examples/grc/sccc1.grc
+++ b/gr-trellis/examples/grc/sccc1.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Thu Jul 17 14:56:39 2014</timestamp>
+  <timestamp>Tue Jul 22 09:01:31 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -76,7 +76,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(593, 10)</value>
+      <value>(621, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -118,7 +118,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>GNURADIO_SRC_DIR</value>
+      <value>"@FSM_FILE_INSTALL_DIR@"</value>
     </param>
     <param>
       <key>_coordinate</key>
@@ -133,29 +133,6 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>GNURADIO_SRC_DIR</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>"/home/jank/src/gnuradio/"</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(656, 10)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
       <value>R</value>
     </param>
     <param>
@@ -493,140 +470,6 @@
     </param>
   </block>
   <block>
-    <key>trellis_sccc_decoder_x</key>
-    <param>
-      <key>id</key>
-      <value>trellis_sccc_decoder_x_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>out_type</key>
-      <value>s</value>
-    </param>
-    <param>
-      <key>o_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
-    </param>
-    <param>
-      <key>o_init_state</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>o_final_state</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>i_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn2o3_4.fsm"</value>
-    </param>
-    <param>
-      <key>i_init_state</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>i_final_state</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>interleaver</key>
-      <value>trellis.interleaver(block,666)</value>
-    </param>
-    <param>
-      <key>block_size</key>
-      <value>block</value>
-    </param>
-    <param>
-      <key>iterations</key>
-      <value>10</value>
-    </param>
-    <param>
-      <key>siso_type</key>
-      <value>trellis.TRELLIS_MIN_SUM</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>(292, 280)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>trellis_sccc_encoder_xx</key>
-    <param>
-      <key>id</key>
-      <value>trellis_sccc_encoder_xx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>ss</value>
-    </param>
-    <param>
-      <key>o_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn1o2_4.fsm"</value>
-    </param>
-    <param>
-      <key>o_init_state</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>i_fsm_args</key>
-      
<value>prefix+"gr-trellis/examples/python/fsm_files/awgn2o3_4.fsm"</value>
-    </param>
-    <param>
-      <key>i_init_state</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>interleaver_args</key>
-      <value>trellis.interleaver(block,666)</value>
-    </param>
-    <param>
-      <key>bl</key>
-      <value>block</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>(294, 154)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>digital_chunks_to_symbols_xx</key>
     <param>
       <key>id</key>
@@ -918,6 +761,140 @@
       <value>180</value>
     </param>
   </block>
+  <block>
+    <key>trellis_sccc_encoder_xx</key>
+    <param>
+      <key>id</key>
+      <value>trellis_sccc_encoder_xx_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>ss</value>
+    </param>
+    <param>
+      <key>o_fsm_args</key>
+      <value>prefix+"awgn1o2_4.fsm"</value>
+    </param>
+    <param>
+      <key>o_init_state</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>i_fsm_args</key>
+      <value>prefix+"awgn2o3_4.fsm"</value>
+    </param>
+    <param>
+      <key>i_init_state</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>interleaver_args</key>
+      <value>trellis.interleaver(block,666)</value>
+    </param>
+    <param>
+      <key>bl</key>
+      <value>block</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>(294, 154)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>trellis_sccc_decoder_x</key>
+    <param>
+      <key>id</key>
+      <value>trellis_sccc_decoder_x_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>out_type</key>
+      <value>s</value>
+    </param>
+    <param>
+      <key>o_fsm_args</key>
+      <value>prefix+"awgn1o2_4.fsm"</value>
+    </param>
+    <param>
+      <key>o_init_state</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>o_final_state</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>i_fsm_args</key>
+      <value>prefix+"awgn2o3_4.fsm"</value>
+    </param>
+    <param>
+      <key>i_init_state</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>i_final_state</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>interleaver</key>
+      <value>trellis.interleaver(block,666)</value>
+    </param>
+    <param>
+      <key>block_size</key>
+      <value>block</value>
+    </param>
+    <param>
+      <key>iterations</key>
+      <value>10</value>
+    </param>
+    <param>
+      <key>siso_type</key>
+      <value>trellis.TRELLIS_MIN_SUM</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>(292, 280)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
   <connection>
     <source_block_id>analog_random_source_x_0</source_block_id>
     <sink_block_id>blocks_sub_xx_0</sink_block_id>
diff --git a/gr-trellis/grc/trellis_encoder_xx.xml 
b/gr-trellis/grc/trellis_encoder_xx.xml
index fe9c38f..d877d53 100644
--- a/gr-trellis/grc/trellis_encoder_xx.xml
+++ b/gr-trellis/grc/trellis_encoder_xx.xml
@@ -6,72 +6,73 @@
  -->
 
 <block>
-       <name>Trellis Encoder</name>
-       <key>trellis_encoder_xx</key>
-       <category>Trellis Coding</category>
-       <import>from gnuradio import trellis</import>
-       <make>trellis.encoder_$(type)(trellis.fsm($fsm_args), 
$init_state)</make>
-       <param>
-               <name>Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Byte->Byte</name>
-                       <key>bb</key>
-                       <opt>input:byte</opt>
-                       <opt>output:byte</opt>
-               </option>
-               <option>
-                       <name>Byte->Short</name>
-                       <key>bs</key>
-                       <opt>input:byte</opt>
-                       <opt>output:short</opt>
-               </option>
-               <option>
-                       <name>Byte->Int</name>
-                       <key>bi</key>
-                       <opt>input:byte</opt>
-                       <opt>output:int</opt>
-               </option>
-               <option>
-                       <name>Short->Short</name>
-                       <key>ss</key>
-                       <opt>input:short</opt>
-                       <opt>output:short</opt>
-               </option>
-               <option>
-                       <name>Short->Int</name>
-                       <key>si</key>
-                       <opt>input:short</opt>
-                       <opt>output:int</opt>
-               </option>
-               <option>
-                       <name>Int->Int</name>
-                       <key>ii</key>
-                       <opt>input:int</opt>
-                       <opt>output:int</opt>
-               </option>
-       </param>
-       <param>
-               <name>FSM Args</name>
-               <key>fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Initial State</name>
-               <key>init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>$type.input</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$type.output</type>
-       </source>
-       <doc>
+  <name>Trellis Encoder</name>
+  <key>trellis_encoder_xx</key>
+  <category>Trellis Coding</category>
+  <import>from gnuradio import trellis</import>
+  <make>trellis.encoder_$(type)(trellis.fsm($fsm_args), $init_state)</make>
+  <param>
+    <name>Type</name>
+    <key>type</key>
+    <type>enum</type>
+    <option>
+      <name>Byte->Byte</name>
+      <key>bb</key>
+      <opt>input:byte</opt>
+      <opt>output:byte</opt>
+    </option>
+    <option>
+      <name>Byte->Short</name>
+      <key>bs</key>
+      <opt>input:byte</opt>
+      <opt>output:short</opt>
+    </option>
+    <option>
+      <name>Byte->Int</name>
+      <key>bi</key>
+      <opt>input:byte</opt>
+      <opt>output:int</opt>
+    </option>
+    <option>
+      <name>Short->Short</name>
+      <key>ss</key>
+      <opt>input:short</opt>
+      <opt>output:short</opt>
+    </option>
+    <option>
+      <name>Short->Int</name>
+      <key>si</key>
+      <opt>input:short</opt>
+      <opt>output:int</opt>
+    </option>
+    <option>
+      <name>Int->Int</name>
+      <key>ii</key>
+      <opt>input:int</opt>
+      <opt>output:int</opt>
+    </option>
+  </param>
+  <param>
+    <name>FSM Args</name>
+    <key>fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Initial State</name>
+    <key>init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <check>(isinstance(eval(""" $fsm_args """[1:-1], locals(),globals()), str) 
and open($fsm_args).close()) or True</check>
+  <sink>
+    <name>in</name>
+    <type>$type.input</type>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>$type.output</type>
+  </source>
+  <doc>
 The fsm arguments are passed directly to the trellis.fsm() constructor.
-       </doc>
+  </doc>
 </block>
diff --git a/gr-trellis/grc/trellis_pccc_decoder_combined_xx.xml 
b/gr-trellis/grc/trellis_pccc_decoder_combined_xx.xml
index 2583f08..9bb4b03 100644
--- a/gr-trellis/grc/trellis_pccc_decoder_combined_xx.xml
+++ b/gr-trellis/grc/trellis_pccc_decoder_combined_xx.xml
@@ -7,164 +7,166 @@
 
 
 <block>
-       <name>PCCC Decoder Combo</name>
-       <key>trellis_pccc_decoder_combined_xx</key>
-       <category>Trellis Coding</category>
-       <import>from gnuradio import trellis, digital</import>
-       <make>trellis.pccc_decoder_combined_$(type)$(out_type)(
-               trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
-               trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
-               trellis.interleaver($interleaver),
-               $block_size,
-               $iterations,
-                $siso_type,
-               $dim, $table, $metric_type,
-               $scaling)
-       </make>
+  <name>PCCC Decoder Combo</name>
+  <key>trellis_pccc_decoder_combined_xx</key>
+  <category>Trellis Coding</category>
+  <import>from gnuradio import trellis, digital</import>
+  <make>trellis.pccc_decoder_combined_$(type)$(out_type)(
+    trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
+    trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
+    trellis.interleaver($interleaver),
+    $block_size,
+    $iterations,
+    $siso_type,
+    $dim, $table, $metric_type,
+    $scaling)
+  </make>
         <callback>set_TABLE($table)</callback>
-       <param>
-               <name>Input Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>c</key>
-                       <opt>io:complex</opt>
-                       <opt>table:complex_vector</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>f</key>
-                       <opt>io:float</opt>
-                       <opt>table:real_vector</opt>
-               </option>
-       </param>
-       <param>
-               <name>Output Type</name>
-               <key>out_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Int</name>
-                       <key>i</key>
-                       <opt>io:int</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>s</key>
-                       <opt>io:short</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>b</key>
-                       <opt>io:byte</opt>
-               </option>
-       </param>
-       <param>
-               <name>FSM 1</name>
-               <key>o_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Initial State 1</name>
-               <key>o_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Final State 1</name>
-               <key>o_final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>FSM 2</name>
-               <key>i_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Initial State 2</name>
-               <key>i_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Final State 2</name>
-               <key>i_final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Interleaver</name>
-               <key>interleaver</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Block Size</name>
-               <key>block_size</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Iterations</name>
-               <key>iterations</key>
-               <value>10</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Dimensionality</name>
-               <key>dim</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Constellation</name>
-               <key>table</key>
-               <type>$type.table</type>
-       </param>
-       <param>
-               <name>Metric Type</name>
-               <key>metric_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Euclidean</name>
-                       <key>digital.TRELLIS_EUCLIDEAN</key>
-               </option>
-               <option>
-                       <name>Hard Symbol</name>
-                       <key>digital.TRELLIS_HARD_SYMBOL</key>
-               </option>
-               <option>
-                       <name>Hard Bit</name>
-                       <key>digital.TRELLIS_HARD_BIT</key>
-               </option>
-       </param>
-       <param>
-               <name>SISO Type</name>
-               <key>siso_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Min Sum</name>
-                       <key>trellis.TRELLIS_MIN_SUM</key>
-               </option>
-               <option>
-                       <name>Sum Product</name>
-                       <key>trellis.TRELLIS_SUM_PRODUCT</key>
-               </option>
-       </param>
-       <param>
-               <name>Scaling</name>
-               <key>scaling</key>
-               <value>1.0</value>
-               <type>real</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>$type.io</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$out_type.io</type>
-       </source>
-       <doc>
+  <param>
+    <name>Input Type</name>
+    <key>type</key>
+    <type>enum</type>
+    <option>
+      <name>Complex</name>
+      <key>c</key>
+      <opt>io:complex</opt>
+      <opt>table:complex_vector</opt>
+    </option>
+    <option>
+      <name>Float</name>
+      <key>f</key>
+      <opt>io:float</opt>
+      <opt>table:real_vector</opt>
+    </option>
+  </param>
+  <param>
+    <name>Output Type</name>
+    <key>out_type</key>
+    <type>enum</type>
+    <option>
+      <name>Int</name>
+      <key>i</key>
+      <opt>io:int</opt>
+    </option>
+    <option>
+      <name>Short</name>
+      <key>s</key>
+      <opt>io:short</opt>
+    </option>
+    <option>
+      <name>Byte</name>
+      <key>b</key>
+      <opt>io:byte</opt>
+    </option>
+  </param>
+  <param>
+    <name>FSM 1</name>
+    <key>o_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Initial State 1</name>
+    <key>o_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Final State 1</name>
+    <key>o_final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>FSM 2</name>
+    <key>i_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Initial State 2</name>
+    <key>i_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Final State 2</name>
+    <key>i_final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Interleaver</name>
+    <key>interleaver</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Block Size</name>
+    <key>block_size</key>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Iterations</name>
+    <key>iterations</key>
+    <value>10</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Dimensionality</name>
+    <key>dim</key>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Constellation</name>
+    <key>table</key>
+    <type>$type.table</type>
+  </param>
+  <param>
+    <name>Metric Type</name>
+    <key>metric_type</key>
+    <type>enum</type>
+    <option>
+      <name>Euclidean</name>
+      <key>digital.TRELLIS_EUCLIDEAN</key>
+    </option>
+    <option>
+      <name>Hard Symbol</name>
+      <key>digital.TRELLIS_HARD_SYMBOL</key>
+    </option>
+    <option>
+      <name>Hard Bit</name>
+      <key>digital.TRELLIS_HARD_BIT</key>
+    </option>
+  </param>
+  <param>
+    <name>SISO Type</name>
+    <key>siso_type</key>
+    <type>enum</type>
+    <option>
+      <name>Min Sum</name>
+      <key>trellis.TRELLIS_MIN_SUM</key>
+    </option>
+    <option>
+      <name>Sum Product</name>
+      <key>trellis.TRELLIS_SUM_PRODUCT</key>
+    </option>
+  </param>
+  <param>
+    <name>Scaling</name>
+    <key>scaling</key>
+    <value>1.0</value>
+    <type>real</type>
+  </param>
+  <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str) 
and open($o_fsm_args).close()) or True</check>
+  <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str) 
and open($i_fsm_args).close()) or True </check>
+  <sink>
+    <name>in</name>
+    <type>$type.io</type>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>$out_type.io</type>
+  </source>
+  <doc>
 PCCC turbo Decoder combined with metric calculation.
 The fsm arguments are passed directly to the trellis.fsm() constructor.
-       </doc>
+  </doc>
 </block>
diff --git a/gr-trellis/grc/trellis_pccc_decoder_x.xml 
b/gr-trellis/grc/trellis_pccc_decoder_x.xml
index 0467315..81f4282 100644
--- a/gr-trellis/grc/trellis_pccc_decoder_x.xml
+++ b/gr-trellis/grc/trellis_pccc_decoder_x.xml
@@ -7,111 +7,113 @@
 
 
 <block>
-       <name>PCCC Decoder</name>
-       <key>trellis_pccc_decoder_x</key>
-       <category>Trellis Coding</category>
-       <import>from gnuradio import trellis</import>
-       <make>trellis.pccc_decoder_$(out_type)(
-               trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
-               trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
-               trellis.interleaver($interleaver),
-               $block_size,
-               $iterations,
+  <name>PCCC Decoder</name>
+  <key>trellis_pccc_decoder_x</key>
+  <category>Trellis Coding</category>
+  <import>from gnuradio import trellis</import>
+  <make>trellis.pccc_decoder_$(out_type)(
+    trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
+    trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
+    trellis.interleaver($interleaver),
+    $block_size,
+    $iterations,
                 $siso_type)
-       </make>
-       <param>
-               <name>Output Type</name>
-               <key>out_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Int</name>
-                       <key>i</key>
-                       <opt>io:int</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>s</key>
-                       <opt>io:short</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>b</key>
-                       <opt>io:byte</opt>
-               </option>
-       </param>
-       <param>
-               <name>FSM 1</name>
-               <key>o_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Initial State 1</name>
-               <key>o_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Final State 1</name>
-               <key>o_final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>FSM 2</name>
-               <key>i_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Initial State 2</name>
-               <key>i_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Final State 2</name>
-               <key>i_final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Interleaver</name>
-               <key>interleaver</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Block Size</name>
-               <key>block_size</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Iterations</name>
-               <key>iterations</key>
-               <value>10</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>SISO Type</name>
-               <key>siso_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Min Sum</name>
-                       <key>trellis.TRELLIS_MIN_SUM</key>
-               </option>
-               <option>
-                       <name>Sum Product</name>
-                       <key>trellis.TRELLIS_SUM_PRODUCT</key>
-               </option>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>float</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$out_type.io</type>
-       </source>
-       <doc>
+  </make>
+  <param>
+    <name>Output Type</name>
+    <key>out_type</key>
+    <type>enum</type>
+    <option>
+      <name>Int</name>
+      <key>i</key>
+      <opt>io:int</opt>
+    </option>
+    <option>
+      <name>Short</name>
+      <key>s</key>
+      <opt>io:short</opt>
+    </option>
+    <option>
+      <name>Byte</name>
+      <key>b</key>
+      <opt>io:byte</opt>
+    </option>
+  </param>
+  <param>
+    <name>FSM 1</name>
+    <key>o_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Initial State 1</name>
+    <key>o_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Final State 1</name>
+    <key>o_final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>FSM 2</name>
+    <key>i_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Initial State 2</name>
+    <key>i_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Final State 2</name>
+    <key>i_final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Interleaver</name>
+    <key>interleaver</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Block Size</name>
+    <key>block_size</key>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Iterations</name>
+    <key>iterations</key>
+    <value>10</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>SISO Type</name>
+    <key>siso_type</key>
+    <type>enum</type>
+    <option>
+      <name>Min Sum</name>
+      <key>trellis.TRELLIS_MIN_SUM</key>
+    </option>
+    <option>
+      <name>Sum Product</name>
+      <key>trellis.TRELLIS_SUM_PRODUCT</key>
+    </option>
+  </param>
+  <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str) 
and open($o_fsm_args).close()) or True</check>
+  <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str) 
and open($i_fsm_args).close()) or True </check>
+  <sink>
+    <name>in</name>
+    <type>float</type>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>$out_type.io</type>
+  </source>
+  <doc>
 PCCC turbo Decoder.
 The fsm and interleaver arguments are passed directly to the trellis.fsm() and 
trellis.interleaver() constructors.
-       </doc>
+  </doc>
 </block>
diff --git a/gr-trellis/grc/trellis_pccc_encoder_xx.xml 
b/gr-trellis/grc/trellis_pccc_encoder_xx.xml
index 7441ba8..faaa0c1 100644
--- a/gr-trellis/grc/trellis_pccc_encoder_xx.xml
+++ b/gr-trellis/grc/trellis_pccc_encoder_xx.xml
@@ -6,93 +6,95 @@
  -->
 
 <block>
-       <name>PCCC Encoder</name>
-       <key>trellis_pccc_encoder_xx</key>
-       <category>Trellis Coding</category>
-       <import>from gnuradio import trellis</import>
-       <make>trellis.pccc_encoder_$(type)(trellis.fsm($o_fsm_args), 
$o_init_state, trellis.fsm($i_fsm_args), $i_init_state, 
trellis.interleaver($interleaver_args), $bl)</make>
-       <param>
-               <name>Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Byte->Byte</name>
-                       <key>bb</key>
-                       <opt>input:byte</opt>
-                       <opt>output:byte</opt>
-               </option>
-               <option>
-                       <name>Byte->Short</name>
-                       <key>bs</key>
-                       <opt>input:byte</opt>
-                       <opt>output:short</opt>
-               </option>
-               <option>
-                       <name>Byte->Int</name>
-                       <key>bi</key>
-                       <opt>input:byte</opt>
-                       <opt>output:int</opt>
-               </option>
-               <option>
-                       <name>Short->Short</name>
-                       <key>ss</key>
-                       <opt>input:short</opt>
-                       <opt>output:short</opt>
-               </option>
-               <option>
-                       <name>Short->Int</name>
-                       <key>si</key>
-                       <opt>input:short</opt>
-                       <opt>output:int</opt>
-               </option>
-               <option>
-                       <name>Int->Int</name>
-                       <key>ii</key>
-                       <opt>input:int</opt>
-                       <opt>output:int</opt>
-               </option>
-       </param>
-       <param>
-               <name>FSM 1</name>
-               <key>o_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Initial State 1</name>
-               <key>o_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>FSM 2</name>
-               <key>i_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Initial State 2</name>
-               <key>i_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Interleaver</name>
-               <key>interleaver_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Blocklength</name>
-               <key>bl</key>
-               <type>int</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>$type.input</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$type.output</type>
-       </source>
-       <doc>
+  <name>PCCC Encoder</name>
+  <key>trellis_pccc_encoder_xx</key>
+  <category>Trellis Coding</category>
+  <import>from gnuradio import trellis</import>
+  <make>trellis.pccc_encoder_$(type)(trellis.fsm($o_fsm_args), $o_init_state, 
trellis.fsm($i_fsm_args), $i_init_state, 
trellis.interleaver($interleaver_args), $bl)</make>
+  <param>
+    <name>Type</name>
+    <key>type</key>
+    <type>enum</type>
+    <option>
+      <name>Byte->Byte</name>
+      <key>bb</key>
+      <opt>input:byte</opt>
+      <opt>output:byte</opt>
+    </option>
+    <option>
+      <name>Byte->Short</name>
+      <key>bs</key>
+      <opt>input:byte</opt>
+      <opt>output:short</opt>
+    </option>
+    <option>
+      <name>Byte->Int</name>
+      <key>bi</key>
+      <opt>input:byte</opt>
+      <opt>output:int</opt>
+    </option>
+    <option>
+      <name>Short->Short</name>
+      <key>ss</key>
+      <opt>input:short</opt>
+      <opt>output:short</opt>
+    </option>
+    <option>
+      <name>Short->Int</name>
+      <key>si</key>
+      <opt>input:short</opt>
+      <opt>output:int</opt>
+    </option>
+    <option>
+      <name>Int->Int</name>
+      <key>ii</key>
+      <opt>input:int</opt>
+      <opt>output:int</opt>
+    </option>
+  </param>
+  <param>
+    <name>FSM 1</name>
+    <key>o_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Initial State 1</name>
+    <key>o_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>FSM 2</name>
+    <key>i_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Initial State 2</name>
+    <key>i_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Interleaver</name>
+    <key>interleaver_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Blocklength</name>
+    <key>bl</key>
+    <type>int</type>
+  </param>
+  <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str) 
and open($o_fsm_args).close()) or True</check>
+  <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str) 
and open($i_fsm_args).close()) or True </check>
+  <sink>
+    <name>in</name>
+    <type>$type.input</type>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>$type.output</type>
+  </source>
+  <doc>
 The fsm and interleaver arguments are passed directly to the trellis.fsm() and 
trellis.interleaver() constructors.
-       </doc>
+  </doc>
 </block>
diff --git a/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml 
b/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml
index eee4e2b..bacc16c 100644
--- a/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml
+++ b/gr-trellis/grc/trellis_sccc_decoder_combined_xx.xml
@@ -7,164 +7,166 @@
 
 
 <block>
-       <name>SCCC Decoder Combo</name>
-       <key>trellis_sccc_decoder_combined_xx</key>
-       <category>Trellis Coding</category>
-       <import>from gnuradio import trellis, digital</import>
-       <make>trellis.sccc_decoder_combined_$(type)$(out_type)(
-               trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
-               trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
-               trellis.interleaver($interleaver),
-               $block_size,
-               $iterations,
+  <name>SCCC Decoder Combo</name>
+  <key>trellis_sccc_decoder_combined_xx</key>
+  <category>Trellis Coding</category>
+  <import>from gnuradio import trellis, digital</import>
+  <make>trellis.sccc_decoder_combined_$(type)$(out_type)(
+    trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
+    trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
+    trellis.interleaver($interleaver),
+    $block_size,
+    $iterations,
                 $siso_type,
-               $dim, $table, $metric_type,
-               $scaling)
-       </make>
+    $dim, $table, $metric_type,
+    $scaling)
+  </make>
         <callback>set_TABLE($table)</callback>
-       <param>
-               <name>Input Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>c</key>
-                       <opt>io:complex</opt>
-                       <opt>table:complex_vector</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>f</key>
-                       <opt>io:float</opt>
-                       <opt>table:real_vector</opt>
-               </option>
-       </param>
-       <param>
-               <name>Output Type</name>
-               <key>out_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Int</name>
-                       <key>i</key>
-                       <opt>io:int</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>s</key>
-                       <opt>io:short</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>b</key>
-                       <opt>io:byte</opt>
-               </option>
-       </param>
-       <param>
-               <name>Outer FSM</name>
-               <key>o_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Outer Initial State</name>
-               <key>o_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Outer Final State</name>
-               <key>o_final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Inner FSM</name>
-               <key>i_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Inner Initial State</name>
-               <key>i_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Inner Final State</name>
-               <key>i_final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Interleaver</name>
-               <key>interleaver</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Block Size</name>
-               <key>block_size</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Iterations</name>
-               <key>iterations</key>
-               <value>10</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Dimensionality</name>
-               <key>dim</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Constellation</name>
-               <key>table</key>
-               <type>$type.table</type>
-       </param>
-       <param>
-               <name>Metric Type</name>
-               <key>metric_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Euclidean</name>
-                       <key>digital.TRELLIS_EUCLIDEAN</key>
-               </option>
-               <option>
-                       <name>Hard Symbol</name>
-                       <key>digital.TRELLIS_HARD_SYMBOL</key>
-               </option>
-               <option>
-                       <name>Hard Bit</name>
-                       <key>digital.TRELLIS_HARD_BIT</key>
-               </option>
-       </param>
-       <param>
-               <name>SISO Type</name>
-               <key>siso_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Min Sum</name>
-                       <key>trellis.TRELLIS_MIN_SUM</key>
-               </option>
-               <option>
-                       <name>Sum Product</name>
-                       <key>trellis.TRELLIS_SUM_PRODUCT</key>
-               </option>
-       </param>
-       <param>
-               <name>Scaling</name>
-               <key>scaling</key>
-               <value>1.0</value>
-               <type>real</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>$type.io</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$out_type.io</type>
-       </source>
-       <doc>
+  <param>
+    <name>Input Type</name>
+    <key>type</key>
+    <type>enum</type>
+    <option>
+      <name>Complex</name>
+      <key>c</key>
+      <opt>io:complex</opt>
+      <opt>table:complex_vector</opt>
+    </option>
+    <option>
+      <name>Float</name>
+      <key>f</key>
+      <opt>io:float</opt>
+      <opt>table:real_vector</opt>
+    </option>
+  </param>
+  <param>
+    <name>Output Type</name>
+    <key>out_type</key>
+    <type>enum</type>
+    <option>
+      <name>Int</name>
+      <key>i</key>
+      <opt>io:int</opt>
+    </option>
+    <option>
+      <name>Short</name>
+      <key>s</key>
+      <opt>io:short</opt>
+    </option>
+    <option>
+      <name>Byte</name>
+      <key>b</key>
+      <opt>io:byte</opt>
+    </option>
+  </param>
+  <param>
+    <name>Outer FSM</name>
+    <key>o_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Outer Initial State</name>
+    <key>o_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Outer Final State</name>
+    <key>o_final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Inner FSM</name>
+    <key>i_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Inner Initial State</name>
+    <key>i_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Inner Final State</name>
+    <key>i_final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Interleaver</name>
+    <key>interleaver</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Block Size</name>
+    <key>block_size</key>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Iterations</name>
+    <key>iterations</key>
+    <value>10</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Dimensionality</name>
+    <key>dim</key>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Constellation</name>
+    <key>table</key>
+    <type>$type.table</type>
+  </param>
+  <param>
+    <name>Metric Type</name>
+    <key>metric_type</key>
+    <type>enum</type>
+    <option>
+      <name>Euclidean</name>
+      <key>digital.TRELLIS_EUCLIDEAN</key>
+    </option>
+    <option>
+      <name>Hard Symbol</name>
+      <key>digital.TRELLIS_HARD_SYMBOL</key>
+    </option>
+    <option>
+      <name>Hard Bit</name>
+      <key>digital.TRELLIS_HARD_BIT</key>
+    </option>
+  </param>
+  <param>
+    <name>SISO Type</name>
+    <key>siso_type</key>
+    <type>enum</type>
+    <option>
+      <name>Min Sum</name>
+      <key>trellis.TRELLIS_MIN_SUM</key>
+    </option>
+    <option>
+      <name>Sum Product</name>
+      <key>trellis.TRELLIS_SUM_PRODUCT</key>
+    </option>
+  </param>
+  <param>
+    <name>Scaling</name>
+    <key>scaling</key>
+    <value>1.0</value>
+    <type>real</type>
+  </param>
+  <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str) 
and open($o_fsm_args).close()) or True</check>
+  <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str) 
and open($i_fsm_args).close()) or True </check>
+  <sink>
+    <name>in</name>
+    <type>$type.io</type>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>$out_type.io</type>
+  </source>
+  <doc>
 SCCC turbo Decoder combined with metric calculation.
 The fsm arguments are passed directly to the trellis.fsm() constructor.
-       </doc>
+  </doc>
 </block>
diff --git a/gr-trellis/grc/trellis_sccc_decoder_x.xml 
b/gr-trellis/grc/trellis_sccc_decoder_x.xml
index ac65a6a..38348cb 100644
--- a/gr-trellis/grc/trellis_sccc_decoder_x.xml
+++ b/gr-trellis/grc/trellis_sccc_decoder_x.xml
@@ -7,111 +7,113 @@
 
 
 <block>
-       <name>SCCC Decoder</name>
-       <key>trellis_sccc_decoder_x</key>
-       <category>Trellis Coding</category>
-       <import>from gnuradio import trellis</import>
-       <make>trellis.sccc_decoder_$(out_type)(
-               trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
-               trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
-               trellis.interleaver($interleaver),
-               $block_size,
-               $iterations,
+  <name>SCCC Decoder</name>
+  <key>trellis_sccc_decoder_x</key>
+  <category>Trellis Coding</category>
+  <import>from gnuradio import trellis</import>
+  <make>trellis.sccc_decoder_$(out_type)(
+    trellis.fsm($o_fsm_args), $o_init_state, $o_final_state,
+    trellis.fsm($i_fsm_args), $i_init_state, $i_final_state,
+    trellis.interleaver($interleaver),
+    $block_size,
+    $iterations,
                 $siso_type)
-       </make>
-       <param>
-               <name>Output Type</name>
-               <key>out_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Int</name>
-                       <key>i</key>
-                       <opt>io:int</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>s</key>
-                       <opt>io:short</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>b</key>
-                       <opt>io:byte</opt>
-               </option>
-       </param>
-       <param>
-               <name>Outer FSM</name>
-               <key>o_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Outer Initial State</name>
-               <key>o_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Outer Final State</name>
-               <key>o_final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Inner FSM</name>
-               <key>i_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Inner Initial State</name>
-               <key>i_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Inner Final State</name>
-               <key>i_final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Interleaver</name>
-               <key>interleaver</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Block Size</name>
-               <key>block_size</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Iterations</name>
-               <key>iterations</key>
-               <value>10</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>SISO Type</name>
-               <key>siso_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Min Sum</name>
-                       <key>trellis.TRELLIS_MIN_SUM</key>
-               </option>
-               <option>
-                       <name>Sum Product</name>
-                       <key>trellis.TRELLIS_SUM_PRODUCT</key>
-               </option>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>float</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$out_type.io</type>
-       </source>
-       <doc>
+  </make>
+  <param>
+    <name>Output Type</name>
+    <key>out_type</key>
+    <type>enum</type>
+    <option>
+      <name>Int</name>
+      <key>i</key>
+      <opt>io:int</opt>
+    </option>
+    <option>
+      <name>Short</name>
+      <key>s</key>
+      <opt>io:short</opt>
+    </option>
+    <option>
+      <name>Byte</name>
+      <key>b</key>
+      <opt>io:byte</opt>
+    </option>
+  </param>
+  <param>
+    <name>Outer FSM</name>
+    <key>o_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Outer Initial State</name>
+    <key>o_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Outer Final State</name>
+    <key>o_final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Inner FSM</name>
+    <key>i_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Inner Initial State</name>
+    <key>i_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Inner Final State</name>
+    <key>i_final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Interleaver</name>
+    <key>interleaver</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Block Size</name>
+    <key>block_size</key>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Iterations</name>
+    <key>iterations</key>
+    <value>10</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>SISO Type</name>
+    <key>siso_type</key>
+    <type>enum</type>
+    <option>
+      <name>Min Sum</name>
+      <key>trellis.TRELLIS_MIN_SUM</key>
+    </option>
+    <option>
+      <name>Sum Product</name>
+      <key>trellis.TRELLIS_SUM_PRODUCT</key>
+    </option>
+  </param>
+  <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str) 
and open($o_fsm_args).close()) or True</check>
+  <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str) 
and open($i_fsm_args).close()) or True </check>
+  <sink>
+    <name>in</name>
+    <type>float</type>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>$out_type.io</type>
+  </source>
+  <doc>
 SCCC turbo Decoder.
 The fsm and interleaver arguments are passed directly to the trellis.fsm() and 
trellis.interleaver() constructors.
-       </doc>
+  </doc>
 </block>
diff --git a/gr-trellis/grc/trellis_sccc_encoder_xx.xml 
b/gr-trellis/grc/trellis_sccc_encoder_xx.xml
index f1054bf..a87db79 100644
--- a/gr-trellis/grc/trellis_sccc_encoder_xx.xml
+++ b/gr-trellis/grc/trellis_sccc_encoder_xx.xml
@@ -6,93 +6,95 @@
  -->
 
 <block>
-       <name>SCCC Encoder</name>
-       <key>trellis_sccc_encoder_xx</key>
-       <category>Trellis Coding</category>
-       <import>from gnuradio import trellis</import>
-       <make>trellis.sccc_encoder_$(type)(trellis.fsm($o_fsm_args), 
$o_init_state, trellis.fsm($i_fsm_args), $i_init_state, 
trellis.interleaver($interleaver_args), $bl)</make>
-       <param>
-               <name>Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Byte->Byte</name>
-                       <key>bb</key>
-                       <opt>input:byte</opt>
-                       <opt>output:byte</opt>
-               </option>
-               <option>
-                       <name>Byte->Short</name>
-                       <key>bs</key>
-                       <opt>input:byte</opt>
-                       <opt>output:short</opt>
-               </option>
-               <option>
-                       <name>Byte->Int</name>
-                       <key>bi</key>
-                       <opt>input:byte</opt>
-                       <opt>output:int</opt>
-               </option>
-               <option>
-                       <name>Short->Short</name>
-                       <key>ss</key>
-                       <opt>input:short</opt>
-                       <opt>output:short</opt>
-               </option>
-               <option>
-                       <name>Short->Int</name>
-                       <key>si</key>
-                       <opt>input:short</opt>
-                       <opt>output:int</opt>
-               </option>
-               <option>
-                       <name>Int->Int</name>
-                       <key>ii</key>
-                       <opt>input:int</opt>
-                       <opt>output:int</opt>
-               </option>
-       </param>
-       <param>
-               <name>Outer FSM</name>
-               <key>o_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Outer Initial State</name>
-               <key>o_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Inner FSM</name>
-               <key>i_fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Inner Initial State</name>
-               <key>i_init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Interleaver</name>
-               <key>interleaver_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Blocklength</name>
-               <key>bl</key>
-               <type>int</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>$type.input</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$type.output</type>
-       </source>
-       <doc>
+  <name>SCCC Encoder</name>
+  <key>trellis_sccc_encoder_xx</key>
+  <category>Trellis Coding</category>
+  <import>from gnuradio import trellis</import>
+  <make>trellis.sccc_encoder_$(type)(trellis.fsm($o_fsm_args), $o_init_state, 
trellis.fsm($i_fsm_args), $i_init_state, 
trellis.interleaver($interleaver_args), $bl)</make>
+  <param>
+    <name>Type</name>
+    <key>type</key>
+    <type>enum</type>
+    <option>
+      <name>Byte->Byte</name>
+      <key>bb</key>
+      <opt>input:byte</opt>
+      <opt>output:byte</opt>
+    </option>
+    <option>
+      <name>Byte->Short</name>
+      <key>bs</key>
+      <opt>input:byte</opt>
+      <opt>output:short</opt>
+    </option>
+    <option>
+      <name>Byte->Int</name>
+      <key>bi</key>
+      <opt>input:byte</opt>
+      <opt>output:int</opt>
+    </option>
+    <option>
+      <name>Short->Short</name>
+      <key>ss</key>
+      <opt>input:short</opt>
+      <opt>output:short</opt>
+    </option>
+    <option>
+      <name>Short->Int</name>
+      <key>si</key>
+      <opt>input:short</opt>
+      <opt>output:int</opt>
+    </option>
+    <option>
+      <name>Int->Int</name>
+      <key>ii</key>
+      <opt>input:int</opt>
+      <opt>output:int</opt>
+    </option>
+  </param>
+  <param>
+    <name>Outer FSM</name>
+    <key>o_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Outer Initial State</name>
+    <key>o_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Inner FSM</name>
+    <key>i_fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Inner Initial State</name>
+    <key>i_init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Interleaver</name>
+    <key>interleaver_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Blocklength</name>
+    <key>bl</key>
+    <type>int</type>
+  </param>
+  <check>(isinstance(eval(""" $o_fsm_args """[1:-1], locals(),globals()), str) 
and open($o_fsm_args).close()) or True</check>
+  <check>(isinstance(eval(""" $i_fsm_args """[1:-1], locals(),globals()), str) 
and open($i_fsm_args).close()) or True </check>
+  <sink>
+    <name>in</name>
+    <type>$type.input</type>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>$type.output</type>
+  </source>
+  <doc>
 The fsm and interleaver arguments are passed directly to the trellis.fsm() and 
trellis.interleaver() constructors.
-       </doc>
+  </doc>
 </block>
diff --git a/gr-trellis/grc/trellis_siso_f.xml 
b/gr-trellis/grc/trellis_siso_f.xml
index 523e6a3..67eeb27 100644
--- a/gr-trellis/grc/trellis_siso_f.xml
+++ b/gr-trellis/grc/trellis_siso_f.xml
@@ -7,82 +7,83 @@
 
 
 <block>
-       <name>SISO</name>
-       <key>trellis_siso_f</key>
-       <category>Trellis Coding</category>
-       <import>from gnuradio import trellis</import>
-       <make>trellis.siso_f(trellis.fsm($fsm_args), $block_size, $init_state, 
$final_state, $a_post_in, $a_post_out, $siso_type)</make>
-       <param>
-               <name>FSM Args</name>
-               <key>fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Block Size</name>
-               <key>block_size</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Initial State</name>
-               <key>init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Final State</name>
-               <key>final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>A-posteriori In</name>
-               <key>a_post_in</key>
-               <type>enum</type>
-               <option>
-                       <name>Yes</name>
-                       <key>True</key>
-               </option>
-               <option>
-                       <name>No</name>
-                       <key>False</key>
-               </option>
-       </param>
-       <param>
-               <name>A-posteriori Out</name>
-               <key>a_post_out</key>
-               <type>enum</type>
-               <option>
-                       <name>Yes</name>
-                       <key>True</key>
-               </option>
-               <option>
-                       <name>No</name>
-                       <key>False</key>
-               </option>
-       </param>
-       <param>
-               <name>SISO Type</name>
-               <key>siso_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Min Sum</name>
-                       <key>trellis.TRELLIS_MIN_SUM</key>
-               </option>
-               <option>
-                       <name>Sum Product</name>
-                       <key>trellis.TRELLIS_SUM_PRODUCT</key>
-               </option>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>float</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>float</type>
-       </source>
-       <doc>
+  <name>SISO</name>
+  <key>trellis_siso_f</key>
+  <category>Trellis Coding</category>
+  <import>from gnuradio import trellis</import>
+  <make>trellis.siso_f(trellis.fsm($fsm_args), $block_size, $init_state, 
$final_state, $a_post_in, $a_post_out, $siso_type)</make>
+  <param>
+    <name>FSM Args</name>
+    <key>fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Block Size</name>
+    <key>block_size</key>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Initial State</name>
+    <key>init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Final State</name>
+    <key>final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>A-posteriori In</name>
+    <key>a_post_in</key>
+    <type>enum</type>
+    <option>
+      <name>Yes</name>
+      <key>True</key>
+    </option>
+    <option>
+      <name>No</name>
+      <key>False</key>
+    </option>
+  </param>
+  <param>
+    <name>A-posteriori Out</name>
+    <key>a_post_out</key>
+    <type>enum</type>
+    <option>
+      <name>Yes</name>
+      <key>True</key>
+    </option>
+    <option>
+      <name>No</name>
+      <key>False</key>
+    </option>
+  </param>
+  <param>
+    <name>SISO Type</name>
+    <key>siso_type</key>
+    <type>enum</type>
+    <option>
+      <name>Min Sum</name>
+      <key>trellis.TRELLIS_MIN_SUM</key>
+    </option>
+    <option>
+      <name>Sum Product</name>
+      <key>trellis.TRELLIS_SUM_PRODUCT</key>
+    </option>
+  </param>
+  <check>(isinstance(eval(""" $fsm_args """[1:-1], locals(),globals()), str) 
and open($fsm_args).close()) or True</check>
+  <sink>
+    <name>in</name>
+    <type>float</type>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>float</type>
+  </source>
+  <doc>
 BCJR Algorithm. \
 The fsm arguments are passed directly to the trellis.fsm() constructor.
-       </doc>
+  </doc>
 </block>
diff --git a/gr-trellis/grc/trellis_viterbi_combined_xx.xml 
b/gr-trellis/grc/trellis_viterbi_combined_xx.xml
index 7faf735..81b4986 100644
--- a/gr-trellis/grc/trellis_viterbi_combined_xx.xml
+++ b/gr-trellis/grc/trellis_viterbi_combined_xx.xml
@@ -7,120 +7,121 @@
 
 
 <block>
-       <name>Viterbi Combo</name>
-       <key>trellis_viterbi_combined_xx</key>
-       <category>Trellis Coding</category>
-       <import>from gnuradio import trellis, digital</import>
-       
<make>trellis.viterbi_combined_$(type)$(out_type)(trellis.fsm($fsm_args), 
$block_size, $init_state, $final_state, $dim, $table, $metric_type)</make>
+  <name>Viterbi Combo</name>
+  <key>trellis_viterbi_combined_xx</key>
+  <category>Trellis Coding</category>
+  <import>from gnuradio import trellis, digital</import>
+  <make>trellis.viterbi_combined_$(type)$(out_type)(trellis.fsm($fsm_args), 
$block_size, $init_state, $final_state, $dim, $table, $metric_type)</make>
         <callback>set_TABLE($table)</callback>
-       <param>
-               <name>Input Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>c</key>
-                       <opt>io:complex</opt>
-                       <opt>table:complex_vector</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>f</key>
-                       <opt>io:float</opt>
-                       <opt>table:real_vector</opt>
-               </option>
-               <option>
-                       <name>Int</name>
-                       <key>i</key>
-                       <opt>io:int</opt>
-                       <opt>table:int_vector</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>s</key>
-                       <opt>io:short</opt>
-                       <opt>table:int_vector</opt>
-               </option>
-       </param>
-       <param>
-               <name>Output Type</name>
-               <key>out_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Int</name>
-                       <key>i</key>
-                       <opt>io:int</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>s</key>
-                       <opt>io:short</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>b</key>
-                       <opt>io:byte</opt>
-               </option>
-       </param>
-       <param>
-               <name>FSM Args</name>
-               <key>fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Block Size</name>
-               <key>block_size</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Initial State</name>
-               <key>init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Final State</name>
-               <key>final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Dimensionality</name>
-               <key>dim</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Constellation</name>
-               <key>table</key>
-               <type>$type.table</type>
-       </param>
-       <param>
-               <name>Metric Type</name>
-               <key>metric_type</key>
-               <type>enum</type>
-               <option>
-                       <name>Euclidean</name>
-                       <key>digital.TRELLIS_EUCLIDEAN</key>
-               </option>
-               <option>
-                       <name>Hard Symbol</name>
-                       <key>digital.TRELLIS_HARD_SYMBOL</key>
-               </option>
-               <option>
-                       <name>Hard Bit</name>
-                       <key>digital.TRELLIS_HARD_BIT</key>
-               </option>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>$type.io</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$out_type.io</type>
-       </source>
-       <doc>
+  <param>
+    <name>Input Type</name>
+    <key>type</key>
+    <type>enum</type>
+    <option>
+      <name>Complex</name>
+      <key>c</key>
+      <opt>io:complex</opt>
+      <opt>table:complex_vector</opt>
+    </option>
+    <option>
+      <name>Float</name>
+      <key>f</key>
+      <opt>io:float</opt>
+      <opt>table:real_vector</opt>
+    </option>
+    <option>
+      <name>Int</name>
+      <key>i</key>
+      <opt>io:int</opt>
+      <opt>table:int_vector</opt>
+    </option>
+    <option>
+      <name>Short</name>
+      <key>s</key>
+      <opt>io:short</opt>
+      <opt>table:int_vector</opt>
+    </option>
+  </param>
+  <param>
+    <name>Output Type</name>
+    <key>out_type</key>
+    <type>enum</type>
+    <option>
+      <name>Int</name>
+      <key>i</key>
+      <opt>io:int</opt>
+    </option>
+    <option>
+      <name>Short</name>
+      <key>s</key>
+      <opt>io:short</opt>
+    </option>
+    <option>
+      <name>Byte</name>
+      <key>b</key>
+      <opt>io:byte</opt>
+    </option>
+  </param>
+  <param>
+    <name>FSM Args</name>
+    <key>fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Block Size</name>
+    <key>block_size</key>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Initial State</name>
+    <key>init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Final State</name>
+    <key>final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Dimensionality</name>
+    <key>dim</key>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Constellation</name>
+    <key>table</key>
+    <type>$type.table</type>
+  </param>
+  <param>
+    <name>Metric Type</name>
+    <key>metric_type</key>
+    <type>enum</type>
+    <option>
+      <name>Euclidean</name>
+      <key>digital.TRELLIS_EUCLIDEAN</key>
+    </option>
+    <option>
+      <name>Hard Symbol</name>
+      <key>digital.TRELLIS_HARD_SYMBOL</key>
+    </option>
+    <option>
+      <name>Hard Bit</name>
+      <key>digital.TRELLIS_HARD_BIT</key>
+    </option>
+  </param>
+  <check>(isinstance(eval(""" $fsm_args """[1:-1], locals(),globals()), str) 
and open($fsm_args).close()) or True</check>
+  <sink>
+    <name>in</name>
+    <type>$type.io</type>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>$out_type.io</type>
+  </source>
+  <doc>
 Viterbi Decoder combined with metric calculation. \
 The fsm arguments are passed directly to the trellis.fsm() constructor.
-       </doc>
+  </doc>
 </block>
diff --git a/gr-trellis/grc/trellis_viterbi_x.xml 
b/gr-trellis/grc/trellis_viterbi_x.xml
index 861b23f..734bb53 100644
--- a/gr-trellis/grc/trellis_viterbi_x.xml
+++ b/gr-trellis/grc/trellis_viterbi_x.xml
@@ -7,63 +7,64 @@
 
 
 <block>
-       <name>Viterbi</name>
-       <key>trellis_viterbi_x</key>
-       <category>Trellis Coding</category>
-       <import>from gnuradio import trellis</import>
-       <make>trellis.viterbi_$(type)(trellis.fsm($fsm_args), $block_size, 
$init_state, $final_state)</make>
-       <param>
-               <name>Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Int</name>
-                       <key>i</key>
-                       <opt>io:int</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>s</key>
-                       <opt>io:short</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>b</key>
-                       <opt>io:byte</opt>
-               </option>
-       </param>
-       <param>
-               <name>FSM Args</name>
-               <key>fsm_args</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Block Size</name>
-               <key>block_size</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Initial State</name>
-               <key>init_state</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Final State</name>
-               <key>final_state</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>float</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$type.io</type>
-       </source>
-       <doc>
+  <name>Viterbi</name>
+  <key>trellis_viterbi_x</key>
+  <category>Trellis Coding</category>
+  <import>from gnuradio import trellis</import>
+  <make>trellis.viterbi_$(type)(trellis.fsm($fsm_args), $block_size, 
$init_state, $final_state)</make>
+  <param>
+    <name>Type</name>
+    <key>type</key>
+    <type>enum</type>
+    <option>
+      <name>Int</name>
+      <key>i</key>
+      <opt>io:int</opt>
+    </option>
+    <option>
+      <name>Short</name>
+      <key>s</key>
+      <opt>io:short</opt>
+    </option>
+    <option>
+      <name>Byte</name>
+      <key>b</key>
+      <opt>io:byte</opt>
+    </option>
+  </param>
+  <param>
+    <name>FSM Args</name>
+    <key>fsm_args</key>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>Block Size</name>
+    <key>block_size</key>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Initial State</name>
+    <key>init_state</key>
+    <value>0</value>
+    <type>int</type>
+  </param>
+  <param>
+    <name>Final State</name>
+    <key>final_state</key>
+    <value>-1</value>
+    <type>int</type>
+  </param>
+  <check>(isinstance(eval(""" $fsm_args """[1:-1], locals(),globals()), str) 
and open($fsm_args).close()) or True</check>
+  <sink>
+    <name>in</name>
+    <type>float</type>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>$type.io</type>
+  </source>
+  <doc>
 Viterbi Decoder. \
 The fsm arguments are passed directly to the trellis.fsm() constructor.
-       </doc>
+  </doc>
 </block>



reply via email to

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