commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] [gnuradio] 02/04: gr-blocks: removed blks2 namespace b


From: git
Subject: [Commit-gnuradio] [gnuradio] 02/04: gr-blocks: removed blks2 namespace blocks
Date: Sun, 23 Oct 2016 20:27:33 +0000 (UTC)

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

jcorgan pushed a commit to branch next
in repository gnuradio.

commit fd1148e8cf75c83693a32183edafa8b076067127
Author: Johnathan Corgan <address@hidden>
Date:   Sun Oct 23 09:18:04 2016 -0700

    gr-blocks: removed blks2 namespace blocks
    
    * This also removes blks2 from gr-digital; however,
      the old style OFDM code still uses this and are
      broken until they are removed.
---
 gr-blocks/CMakeLists.txt                          |    1 -
 gr-blocks/grc/blks2_error_rate.xml                |   70 --
 gr-blocks/grc/blks2_selector.xml                  |   98 --
 gr-blocks/grc/blks2_tcp_sink.xml                  |   90 --
 gr-blocks/grc/blks2_tcp_source.xml                |   90 --
 gr-blocks/grc/blks2_valve.xml                     |   73 --
 gr-blocks/python/grc_gnuradio/CMakeLists.txt      |   35 -
 gr-blocks/python/grc_gnuradio/README              |    8 -
 gr-blocks/python/grc_gnuradio/__init__.py         |    1 -
 gr-blocks/python/grc_gnuradio/blks2/__init__.py   |   30 -
 gr-blocks/python/grc_gnuradio/blks2/error_rate.py |  143 ---
 gr-blocks/python/grc_gnuradio/blks2/selector.py   |  147 ---
 gr-blocks/python/grc_gnuradio/blks2/tcp.py        |   74 --
 gr-digital/CMakeLists.txt                         |    9 +-
 gr-digital/examples/CMakeLists.txt                |    3 -
 gr-digital/examples/demod/ber_simulation.grc      | 1238 ---------------------
 gr-digital/examples/demod/dpsk_loopback.grc       |  878 ---------------
 gr-digital/examples/demod/gfsk_loopback.grc       |  598 ----------
 gr-digital/examples/demod/gmsk_loopback.grc       |  590 ----------
 gr-digital/grc/blks2_packet_decoder.xml           |   77 --
 gr-digital/grc/blks2_packet_encoder.xml           |  121 --
 gr-digital/python/grc_gnuradio/CMakeLists.txt     |   29 -
 gr-digital/python/grc_gnuradio/blks2/packet.py    |  261 -----
 gr-trellis/examples/python/CMakeLists.txt         |    1 -
 gr-trellis/examples/python/test_cpm.py            |  161 ---
 grc/core/Param.py                                 |    2 +-
 26 files changed, 5 insertions(+), 4823 deletions(-)

diff --git a/gr-blocks/CMakeLists.txt b/gr-blocks/CMakeLists.txt
index 6f573a0..6877ddc 100644
--- a/gr-blocks/CMakeLists.txt
+++ b/gr-blocks/CMakeLists.txt
@@ -53,7 +53,6 @@ add_subdirectory(lib)
 #endif(ENABLE_TESTING)
 if(ENABLE_PYTHON)
      add_subdirectory(python/blocks)
-     add_subdirectory(python/grc_gnuradio)
      add_subdirectory(swig)
      add_subdirectory(grc)
      add_subdirectory(doc)
diff --git a/gr-blocks/grc/blks2_error_rate.xml 
b/gr-blocks/grc/blks2_error_rate.xml
deleted file mode 100644
index c71739f..0000000
--- a/gr-blocks/grc/blks2_error_rate.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Error Rate:
-##     Custom blks2 block
-###################################################
- -->
-<block>
-       <name>Error Rate</name>
-       <key>blks2_error_rate</key>
-       <category>[Core]/Deprecated</category>
-       <import>from grc_gnuradio import blks2 as grc_blks2</import>
-       <make>grc_blks2.error_rate(
-       type=$type,
-       win_size=$win_size,
-       bits_per_symbol=$bits_per_symbol,
-)</make>
-       <param>
-               <name>Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Bit Error Rate</name>
-                       <key>'BER'</key>
-                       <opt>hide_bps:</opt>
-               </option>
-               <option>
-                       <name>Symbol Error Rate</name>
-                       <key>'SER'</key>
-                       <opt>hide_bps:all</opt>
-               </option>
-       </param>
-       <param>
-               <name>Window Size</name>
-               <key>win_size</key>
-               <value>1000</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Bits per Symbol</name>
-               <key>bits_per_symbol</key>
-               <value>2</value>
-               <type>int</type>
-               <hide>$type.hide_bps</hide>
-       </param>
-       <sink>
-               <name>ref</name>
-               <type>byte</type>
-       </sink>
-       <sink>
-               <name>in</name>
-               <type>byte</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>float</type>
-       </source>
-       <doc>
-Calculate the bit error rate (BER) or the symbol error rate (SER) over a 
number of samples given by the window size. \
-The actual window size will start at size one and grow to the full window size 
as new samples arrive. \
-Once the window has reached full size, old samples are shifted out of the 
window and new samples shfited in.
-
-The error block compares the input byte stream to the reference byte stream. \
-For example, the reference byte stream could be the input to a modulator, \
-and the input byte stream could be the output of a modulator.
-
-Each byte in the incoming stream represents one symbol. \
-The bits per symbol parameter is only useful for calculating the BER.
-       </doc>
-</block>
diff --git a/gr-blocks/grc/blks2_selector.xml b/gr-blocks/grc/blks2_selector.xml
deleted file mode 100644
index 3442b2c..0000000
--- a/gr-blocks/grc/blks2_selector.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Selector:
-##     Custom blks2 block
-###################################################
- -->
-<block>
-       <name>Selector</name>
-       <key>blks2_selector</key>
-       <category>[Core]/Deprecated</category>
-       <import>from grc_gnuradio import blks2 as grc_blks2</import>
-       <make>grc_blks2.selector(
-       item_size=$type.size*$vlen,
-       num_inputs=$num_inputs,
-       num_outputs=$num_outputs,
-       input_index=$input_index,
-       output_index=$output_index,
-)</make>
-       <callback>set_input_index(int($input_index))</callback>
-       <callback>set_output_index(int($output_index))</callback>
-       <param>
-               <name>Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>complex</key>
-                       <opt>size:gr.sizeof_gr_complex</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>float</key>
-                       <opt>size:gr.sizeof_float</opt>
-               </option>
-               <option>
-                       <name>Int</name>
-                       <key>int</key>
-                       <opt>size:gr.sizeof_int</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>short</key>
-                       <opt>size:gr.sizeof_short</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>byte</key>
-                       <opt>size:gr.sizeof_char</opt>
-               </option>
-       </param>
-       <param>
-               <name>Num Inputs</name>
-               <key>num_inputs</key>
-               <value>2</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Num Outputs</name>
-               <key>num_outputs</key>
-               <value>2</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Input Index</name>
-               <key>input_index</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Output Index</name>
-               <key>output_index</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Vec Length</name>
-               <key>vlen</key>
-               <value>1</value>
-               <type>int</type>
-       </param>
-       <check>$vlen &gt; 0</check>
-       <sink>
-               <name>in</name>
-               <type>$type</type>
-               <vlen>$vlen</vlen>
-               <nports>$num_inputs</nports>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$type</type>
-               <vlen>$vlen</vlen>
-               <nports>$num_outputs</nports>
-       </source>
-       <doc>
-Connect the sink at input index to the source at output index. Leave all other 
ports disconnected.
-       </doc>
-</block>
diff --git a/gr-blocks/grc/blks2_tcp_sink.xml b/gr-blocks/grc/blks2_tcp_sink.xml
deleted file mode 100644
index 2bff7e6..0000000
--- a/gr-blocks/grc/blks2_tcp_sink.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##TCP Sink: Custom blks2 block
-###################################################
- -->
-<block>
-       <name>TCP Sink</name>
-       <key>blks2_tcp_sink</key>
-       <category>[Core]/Deprecated</category>
-       <import>from grc_gnuradio import blks2 as grc_blks2</import>
-       <make>grc_blks2.tcp_sink(
-       itemsize=$type.size*$vlen,
-       addr=$addr,
-       port=$port,
-       server=$server,
-)</make>
-       <param>
-               <name>Input Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>complex</key>
-                       <opt>size:gr.sizeof_gr_complex</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>float</key>
-                       <opt>size:gr.sizeof_float</opt>
-               </option>
-               <option>
-                       <name>Int</name>
-                       <key>int</key>
-                       <opt>size:gr.sizeof_int</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>short</key>
-                       <opt>size:gr.sizeof_short</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>byte</key>
-                       <opt>size:gr.sizeof_char</opt>
-               </option>
-       </param>
-       <param>
-               <name>Address</name>
-               <key>addr</key>
-               <value>127.0.0.1</value>
-               <type>string</type>
-       </param>
-       <param>
-               <name>Port</name>
-               <key>port</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Mode</name>
-               <key>server</key>
-               <value>False</value>
-               <type>enum</type>
-               <option>
-                       <name>Server</name>
-                       <key>True</key>
-               </option>
-               <option>
-                       <name>Client</name>
-                       <key>False</key>
-               </option>
-       </param>
-       <param>
-               <name>Vec Length</name>
-               <key>vlen</key>
-               <value>1</value>
-               <type>int</type>
-       </param>
-       <check>$vlen &gt; 0</check>
-       <sink>
-               <name>in</name>
-               <type>$type</type>
-               <vlen>$vlen</vlen>
-       </sink>
-               <doc>
-In client mode, we attempt to connect to a server at the given address and 
port. \
-In server mode, we bind a socket to the given address and port and accept the 
first client.
-       </doc>
-</block>
diff --git a/gr-blocks/grc/blks2_tcp_source.xml 
b/gr-blocks/grc/blks2_tcp_source.xml
deleted file mode 100644
index f6cc410..0000000
--- a/gr-blocks/grc/blks2_tcp_source.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##TCP Source: Custom blks2 block
-###################################################
- -->
-<block>
-       <name>TCP Source</name>
-       <key>blks2_tcp_source</key>
-       <category>[Core]/Deprecated</category>
-       <import>from grc_gnuradio import blks2 as grc_blks2</import>
-       <make>grc_blks2.tcp_source(
-       itemsize=$type.size*$vlen,
-       addr=$addr,
-       port=$port,
-       server=$server,
-)</make>
-       <param>
-               <name>Output Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>complex</key>
-                       <opt>size:gr.sizeof_gr_complex</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>float</key>
-                       <opt>size:gr.sizeof_float</opt>
-               </option>
-               <option>
-                       <name>Int</name>
-                       <key>int</key>
-                       <opt>size:gr.sizeof_int</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>short</key>
-                       <opt>size:gr.sizeof_short</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>byte</key>
-                       <opt>size:gr.sizeof_char</opt>
-               </option>
-       </param>
-       <param>
-               <name>Address</name>
-               <key>addr</key>
-               <value>127.0.0.1</value>
-               <type>string</type>
-       </param>
-       <param>
-               <name>Port</name>
-               <key>port</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Mode</name>
-               <key>server</key>
-               <value>True</value>
-               <type>enum</type>
-               <option>
-                       <name>Server</name>
-                       <key>True</key>
-               </option>
-               <option>
-                       <name>Client</name>
-                       <key>False</key>
-               </option>
-       </param>
-       <param>
-               <name>Vec Length</name>
-               <key>vlen</key>
-               <value>1</value>
-               <type>int</type>
-       </param>
-       <check>$vlen &gt; 0</check>
-       <source>
-               <name>out</name>
-               <type>$type</type>
-               <vlen>$vlen</vlen>
-       </source>
-       <doc>
-In client mode, we attempt to connect to a server at the given address and 
port. \
-In server mode, we bind a socket to the given address and port and accept the 
first client.
-       </doc>
-</block>
diff --git a/gr-blocks/grc/blks2_valve.xml b/gr-blocks/grc/blks2_valve.xml
deleted file mode 100644
index c3f2516..0000000
--- a/gr-blocks/grc/blks2_valve.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Valve:
-##     Custom blks2 block
-###################################################
- -->
-<block>
-       <name>Valve</name>
-       <key>blks2_valve</key>
-       <category>[Core]/Deprecated</category>
-       <import>from grc_gnuradio import blks2 as grc_blks2</import>
-       <make>grc_blks2.valve(item_size=$type.size*$vlen, 
open=bool($open))</make>
-       <callback>set_open(bool($open))</callback>
-       <param>
-               <name>Type</name>
-               <key>type</key>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>complex</key>
-                       <opt>size:gr.sizeof_gr_complex</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>float</key>
-                       <opt>size:gr.sizeof_float</opt>
-               </option>
-               <option>
-                       <name>Int</name>
-                       <key>int</key>
-                       <opt>size:gr.sizeof_int</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>short</key>
-                       <opt>size:gr.sizeof_short</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>byte</key>
-                       <opt>size:gr.sizeof_char</opt>
-               </option>
-       </param>
-       <param>
-               <name>Open</name>
-               <key>open</key>
-               <value>0</value>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Vec Length</name>
-               <key>vlen</key>
-               <value>1</value>
-               <type>int</type>
-       </param>
-       <check>$vlen &gt; 0</check>
-       <sink>
-               <name>in</name>
-               <type>$type</type>
-               <vlen>$vlen</vlen>
-               <nports>$num_inputs</nports>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$type</type>
-               <vlen>$vlen</vlen>
-               <nports>$num_outputs</nports>
-       </source>
-       <doc>
-Connect output to input when valve is closed (not open).
-       </doc>
-</block>
diff --git a/gr-blocks/python/grc_gnuradio/CMakeLists.txt 
b/gr-blocks/python/grc_gnuradio/CMakeLists.txt
deleted file mode 100644
index 33c7560..0000000
--- a/gr-blocks/python/grc_gnuradio/CMakeLists.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2011 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-
-########################################################################
-
-include(GrPython)
-
-GR_PYTHON_INSTALL(
-    FILES __init__.py
-    DESTINATION ${GR_PYTHON_DIR}/grc_gnuradio
-)
-
-GR_PYTHON_INSTALL(FILES
-    blks2/__init__.py
-    blks2/error_rate.py
-    blks2/selector.py
-    blks2/tcp.py
-    DESTINATION ${GR_PYTHON_DIR}/grc_gnuradio/blks2
-)
diff --git a/gr-blocks/python/grc_gnuradio/README 
b/gr-blocks/python/grc_gnuradio/README
deleted file mode 100644
index e27b01a..0000000
--- a/gr-blocks/python/grc_gnuradio/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This is the grc_gnuradio module.
-It contains supplemental python modules that grc uses at runtime.
-The supplemental modules are meant to mimic modules in gnuradio.
-These will be phased-out as new functionaility is merged into gnuradio.
-
-The blk2s module wraps many blocks in blks2 and gives them streaming outputs.
-Will be phased-out by new message passing implementations.
-Other blks2 blocks will hopefully make their way into blks2impl.
diff --git a/gr-blocks/python/grc_gnuradio/__init__.py 
b/gr-blocks/python/grc_gnuradio/__init__.py
deleted file mode 100644
index 8b13789..0000000
--- a/gr-blocks/python/grc_gnuradio/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/gr-blocks/python/grc_gnuradio/blks2/__init__.py 
b/gr-blocks/python/grc_gnuradio/blks2/__init__.py
deleted file mode 100644
index d3c8210..0000000
--- a/gr-blocks/python/grc_gnuradio/blks2/__init__.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2008-2011 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from selector import selector, valve
-from error_rate import error_rate
-from tcp import tcp_source, tcp_sink
-
-try:
-    from packet import options, packet_encoder, packet_decoder, \
-        packet_mod_b, packet_mod_s, packet_mod_i, packet_mod_f, packet_mod_c, \
-        packet_demod_b, packet_demod_s, packet_demod_i, packet_demod_f, 
packet_demod_c
-except ImportError:
-    pass  # only available if gr-digital is install
diff --git a/gr-blocks/python/grc_gnuradio/blks2/error_rate.py 
b/gr-blocks/python/grc_gnuradio/blks2/error_rate.py
deleted file mode 100644
index df03f55..0000000
--- a/gr-blocks/python/grc_gnuradio/blks2/error_rate.py
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 2008 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-default_win_size = 1000
-
-from gnuradio import gr
-from gnuradio import blocks
-import gnuradio.gr.gr_threading as _threading
-import numpy
-
-#generate 1s counts array
-_1s_counts = [sum([1&(i>>j) for j in range(8)]) for i in range(2**8)]
-
-class input_watcher(_threading.Thread):
-    """
-    Read samples from the message queue and hand them to the callback.
-    """
-
-    def __init__(self, msgq, callback):
-        self._msgq = msgq
-        self._callback = callback
-        _threading.Thread.__init__(self)
-        self.setDaemon(1)
-        self.keep_running = True
-        self.start()
-
-    def run(self):
-        r = ''
-        while True:
-            msg = self._msgq.delete_head()
-            itemsize = int(msg.arg1())
-            nitems = int(msg.arg2())
-            s = r + msg.to_string()
-            i = (nitems-nitems%2)*itemsize
-            r = s[i:]
-            s = s[:i]
-            samples = numpy.fromstring(s, numpy.int8)
-            self._callback(samples)
-
-class error_rate(gr.hier_block2):
-    """
-    Sample the incoming data streams (byte) and calculate the bit or symbol 
error rate.
-    Write the running rate to the output data stream (float).
-    """
-
-    def __init__(self, type='BER', win_size=default_win_size, 
bits_per_symbol=2):
-        """
-        Error rate constructor.
-
-        Args:
-            type: a string 'BER' or 'SER'
-            win_size: the number of samples to calculate over
-            bits_per_symbol: the number of information bits per symbol (BER 
only)
-        """
-        #init
-        gr.hier_block2.__init__(
-            self, 'error_rate',
-            gr.io_signature(2, 2, gr.sizeof_char),
-            gr.io_signature(1, 1, gr.sizeof_float),
-        )
-
-        print "Warning: the blks2.error_rate is deprecated."
-
-        assert type in ('BER', 'SER')
-        self._max_samples = win_size
-        self._bits_per_symbol = bits_per_symbol
-        #setup message queue
-        msg_source = blocks.message_source(gr.sizeof_float, 1)
-        self._msgq_source = msg_source.msgq()
-        msgq_sink = gr.msg_queue(2)
-        msg_sink = blocks.message_sink(gr.sizeof_char, msgq_sink, False) 
#False -> blocking
-        inter = blocks.interleave(gr.sizeof_char)
-        #start thread
-        self._num_errs = 0
-        self._err_index = 0
-        self._num_samps = 0
-        self._err_array = numpy.zeros(self._max_samples, numpy.int8)
-        if type == 'BER':
-            input_watcher(msgq_sink, self._handler_ber)
-        elif type == 'SER':
-            input_watcher(msgq_sink, self._handler_ser)
-        #connect
-        self.connect(msg_source, self)
-        self.connect((self, 0), (inter, 0))
-        self.connect((self, 1), (inter, 1))
-        self.connect(inter, msg_sink)
-
-    def _handler_ber(self, samples):
-        num = len(samples)/2
-        arr = numpy.zeros(num, numpy.float32)
-        for i in range(num):
-            old_err = self._err_array[self._err_index]
-            #record error
-            self._err_array[self._err_index] = _1s_counts[samples[i*2] ^ 
samples[i*2 + 1]]
-            self._num_errs = self._num_errs + self._err_array[self._err_index] 
- old_err
-            #increment index
-            self._err_index = (self._err_index + 1)%self._max_samples
-            self._num_samps = min(self._num_samps + 1, self._max_samples)
-            #write sample
-            arr[i] = 
float(self._num_errs)/float(self._num_samps*self._bits_per_symbol)
-        #write message
-        msg = gr.message_from_string(arr.tostring(), 0, gr.sizeof_float, num)
-        self._msgq_source.insert_tail(msg)
-
-    def _handler_ser(self, samples):
-        num = len(samples)/2
-        arr = numpy.zeros(num, numpy.float32)
-        for i in range(num):
-            old_err = self._err_array[self._err_index]
-            #record error
-            ref = samples[i*2]
-            res = samples[i*2 + 1]
-            if ref == res:
-                self._err_array[self._err_index] = 0
-            else:
-                self._err_array[self._err_index] = 1
-            #update number of errors
-            self._num_errs = self._num_errs + self._err_array[self._err_index] 
- old_err
-            #increment index
-            self._err_index = (self._err_index + 1)%self._max_samples
-            self._num_samps = min(self._num_samps + 1, self._max_samples)
-            #write sample
-            arr[i] = float(self._num_errs)/float(self._num_samps)
-        #write message
-        msg = gr.message_from_string(arr.tostring(), 0, gr.sizeof_float, num)
-        self._msgq_source.insert_tail(msg)
diff --git a/gr-blocks/python/grc_gnuradio/blks2/selector.py 
b/gr-blocks/python/grc_gnuradio/blks2/selector.py
deleted file mode 100644
index 0a74309..0000000
--- a/gr-blocks/python/grc_gnuradio/blks2/selector.py
+++ /dev/null
@@ -1,147 +0,0 @@
-#
-# Copyright 2008,2013 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from gnuradio import gr
-from gnuradio import blocks
-
-class selector(gr.hier_block2):
-    """A hier2 block with N inputs and M outputs, where data is only forwarded 
through input n to output m."""
-    def __init__(self, item_size, num_inputs, num_outputs, input_index, 
output_index):
-        """
-        Selector constructor.
-
-        Args:
-            item_size: the size of the gr data stream in bytes
-            num_inputs: the number of inputs (integer)
-            num_outputs: the number of outputs (integer)
-            input_index: the index for the source data
-            output_index: the index for the destination data
-        """
-        gr.hier_block2.__init__(
-            self, 'selector',
-            gr.io_signature(num_inputs, num_inputs, item_size),
-            gr.io_signature(num_outputs, num_outputs, item_size),
-        )
-
-        print "Warning: the blks2.selector block is deprecated."
-
-        #terminator blocks for unused inputs and outputs
-        self.input_terminators = [blocks.null_sink(item_size) for i in 
range(num_inputs)]
-        self.output_terminators = [blocks.head(item_size, 0) for i in 
range(num_outputs)]
-        self.copy = blocks.copy(item_size)
-        #connections
-        for i in range(num_inputs): self.connect((self, i), 
self.input_terminators[i])
-        for i in range(num_outputs): 
self.connect(blocks.null_source(item_size),
-                                                          
self.output_terminators[i], (self, i))
-        self.item_size = item_size
-        self.input_index = input_index
-        self.output_index = output_index
-        self.num_inputs = num_inputs
-        self.num_outputs = num_outputs
-        self._connect_current()
-
-    def _indexes_valid(self):
-        """
-        Are the input and output indexes within range of the number of inputs 
and outputs?
-
-        Returns:
-            true if input index and output index are in range
-        """
-        return self.input_index in range(self.num_inputs) and 
self.output_index in range(self.num_outputs)
-
-    def _connect_current(self):
-        """If the input and output indexes are valid:
-        disconnect the blocks at the input and output index from their 
terminators,
-        and connect them to one another. Then connect the terminators to one 
another."""
-        if self._indexes_valid():
-            self.disconnect((self, self.input_index), 
self.input_terminators[self.input_index])
-            self.disconnect(self.output_terminators[self.output_index], (self, 
self.output_index))
-            self.connect((self, self.input_index), self.copy)
-            self.connect(self.copy, (self, self.output_index))
-            self.connect(self.output_terminators[self.output_index], 
self.input_terminators[self.input_index])
-
-    def _disconnect_current(self):
-        """If the input and output indexes are valid:
-        disconnect the blocks at the input and output index from one another,
-        and the terminators at the input and output index from one another.
-        Reconnect the blocks to the terminators."""
-        if self._indexes_valid():
-            self.disconnect((self, self.input_index), self.copy)
-            self.disconnect(self.copy, (self, self.output_index))
-            self.disconnect(self.output_terminators[self.output_index], 
self.input_terminators[self.input_index])
-            self.connect((self, self.input_index), 
self.input_terminators[self.input_index])
-            self.connect(self.output_terminators[self.output_index], (self, 
self.output_index))
-
-    def set_input_index(self, input_index):
-        """
-        Change the block to the new input index if the index changed.
-
-        Args:
-            input_index: the new input index
-        """
-        if self.input_index != input_index:
-            self.lock()
-            self._disconnect_current()
-            self.input_index = input_index
-            self._connect_current()
-            self.unlock()
-
-    def set_output_index(self, output_index):
-        """
-        Change the block to the new output index if the index changed.
-
-        Args:
-            output_index: the new output index
-        """
-        if self.output_index != output_index:
-            self.lock()
-            self._disconnect_current()
-            self.output_index = output_index
-            self._connect_current()
-            self.unlock()
-
-class valve(selector):
-    """Wrapper for selector with 1 input and 1 output."""
-
-    def __init__(self, item_size, open):
-        """
-        Constructor for valve.
-
-        Args:
-            item_size: the size of the gr data stream in bytes
-            open: true if initial valve state is open
-        """
-        if open: output_index = -1
-        else: output_index = 0
-        selector.__init__(self, item_size, 1, 1, 0, output_index)
-
-        print "Warning: the blks2.valve block is deprecated."
-
-    def set_open(self, open):
-        """
-        Callback to set open state.
-
-        Args:
-            open: true to set valve state to open
-        """
-        if open: output_index = -1
-        else: output_index = 0
-        self.set_output_index(output_index)
diff --git a/gr-blocks/python/grc_gnuradio/blks2/tcp.py 
b/gr-blocks/python/grc_gnuradio/blks2/tcp.py
deleted file mode 100644
index 6ae24d3..0000000
--- a/gr-blocks/python/grc_gnuradio/blks2/tcp.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-# Copyright 2009 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from gnuradio import gr, blocks
-import socket
-import os
-
-def _get_sock_fd(addr, port, server):
-    """
-    Get the file descriptor for the socket.
-    As a client, block on connect, dup the socket descriptor.
-    As a server, block on accept, dup the client descriptor.
-
-    Args:
-        addr: the ip address string
-        port: the tcp port number
-        server: true for server mode, false for client mode
-
-    Returns:
-        the file descriptor number
-    """
-    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-    if server:
-        sock.bind((addr, port))
-        sock.listen(1)
-        clientsock, address = sock.accept()
-        return os.dup(clientsock.fileno())
-    else:
-        sock.connect((addr, port))
-        return os.dup(sock.fileno())
-
-class tcp_source(gr.hier_block2):
-    def __init__(self, itemsize, addr, port, server=True):
-        #init hier block
-        gr.hier_block2.__init__(
-            self, 'tcp_source',
-            gr.io_signature(0, 0, 0),
-            gr.io_signature(1, 1, itemsize),
-        )
-        fd = _get_sock_fd(addr, port, server)
-        self.connect(blocks.file_descriptor_source(itemsize, fd), self)
-
-        print "Warning: the blks2.tcp_source block is deprecated."
-
-class tcp_sink(gr.hier_block2):
-    def __init__(self, itemsize, addr, port, server=False):
-        #init hier block
-        gr.hier_block2.__init__(
-            self, 'tcp_sink',
-            gr.io_signature(1, 1, itemsize),
-            gr.io_signature(0, 0, 0),
-        )
-        fd = _get_sock_fd(addr, port, server)
-        self.connect(self, blocks.file_descriptor_sink(itemsize, fd))
-
-        print "Warning: the blks2.tcp_sink block is deprecated."
diff --git a/gr-digital/CMakeLists.txt b/gr-digital/CMakeLists.txt
index cafadf6..b2409bd 100644
--- a/gr-digital/CMakeLists.txt
+++ b/gr-digital/CMakeLists.txt
@@ -1,17 +1,17 @@
 # Copyright 2011 Free Software Foundation, Inc.
-# 
+#
 # This file is part of GNU Radio
-# 
+#
 # GNU Radio is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 3, or (at your option)
 # any later version.
-# 
+#
 # GNU Radio is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with GNU Radio; see the file COPYING.  If not, write to
 # the Free Software Foundation, Inc., 51 Franklin Street,
@@ -63,7 +63,6 @@ add_subdirectory(doc)
 if(ENABLE_PYTHON)
     add_subdirectory(swig)
     add_subdirectory(python/digital)
-    add_subdirectory(python/grc_gnuradio)
     add_subdirectory(grc)
     add_subdirectory(examples)
 endif(ENABLE_PYTHON)
diff --git a/gr-digital/examples/CMakeLists.txt 
b/gr-digital/examples/CMakeLists.txt
index 76568b5..b4c6008 100644
--- a/gr-digital/examples/CMakeLists.txt
+++ b/gr-digital/examples/CMakeLists.txt
@@ -80,9 +80,6 @@ install(
     demod/mpsk_demod.grc
     demod/pam_sync.grc
     demod/pam_timing.grc
-    demod/ber_simulation.grc
-    demod/dpsk_loopback.grc
-    demod/gfsk_loopback.grc
     demod/test_corr_est.grc
     DESTINATION ${GR_PKG_DIGITAL_EXAMPLES_DIR}/demod
 )
diff --git a/gr-digital/examples/demod/ber_simulation.grc 
b/gr-digital/examples/demod/ber_simulation.grc
deleted file mode 100644
index 8f9351f..0000000
--- a/gr-digital/examples/demod/ber_simulation.grc
+++ /dev/null
@@ -1,1238 +0,0 @@
-<?xml version='1.0' encoding='ASCII'?>
-<flow_graph>
-  <timestamp>Sat Jul 12 13:50:53 2014</timestamp>
-  <block>
-    <key>options</key>
-    <param>
-      <key>id</key>
-      <value>ber_simulation</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value>BER Simulation</value>
-    </param>
-    <param>
-      <key>author</key>
-      <value>Example</value>
-    </param>
-    <param>
-      <key>description</key>
-      <value>Adjust the noise and constellation... see what happens!</value>
-    </param>
-    <param>
-      <key>window_size</key>
-      <value>1280, 1024</value>
-    </param>
-    <param>
-      <key>generate_options</key>
-      <value>qt_gui</value>
-    </param>
-    <param>
-      <key>category</key>
-      <value>Custom</value>
-    </param>
-    <param>
-      <key>run_options</key>
-      <value>prompt</value>
-    </param>
-    <param>
-      <key>run</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>max_nouts</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>realtime_scheduling</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(16, 10)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>const_type</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(18, 428)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>const</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>(digital.constellation_bpsk(), digital.constellation_qpsk(), 
digital.constellation_8psk())</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(116, 310)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>100e3</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(16, 308)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_throttle</key>
-    <param>
-      <key>id</key>
-      <value>blocks_throttle</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>byte</value>
-    </param>
-    <param>
-      <key>samples_per_second</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>ignoretag</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>(284, 24)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>import</key>
-    <param>
-      <key>id</key>
-      <value>import</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>import</key>
-      <value>import math</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(18, 373)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>analog_random_source_x</key>
-    <param>
-      <key>id</key>
-      <value>analog_random_source_x</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>byte</value>
-    </param>
-    <param>
-      <key>min</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>max</key>
-      <value>const[const_type].arity()</value>
-    </param>
-    <param>
-      <key>num_samps</key>
-      <value>10000000</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>(17, 125)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>analog_noise_source_x</key>
-    <param>
-      <key>id</key>
-      <value>analog_noise_source_x</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>noise_type</key>
-      <value>analog.GR_GAUSSIAN</value>
-    </param>
-    <param>
-      <key>amp</key>
-      <value>1.0 / math.sqrt(2.0 * const[const_type].bits_per_symbol() * 
10**(EbN0/10))</value>
-    </param>
-    <param>
-      <key>seed</key>
-      <value>42</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>(16, 224)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>digital_chunks_to_symbols_xx</key>
-    <param>
-      <key>id</key>
-      <value>digital_chunks_to_symbols_xx</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>in_type</key>
-      <value>byte</value>
-    </param>
-    <param>
-      <key>out_type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>symbol_table</key>
-      <value>const[const_type].points()</value>
-    </param>
-    <param>
-      <key>dimension</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>num_ports</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(240, 140)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>digital_constellation_decoder_cb</key>
-    <param>
-      <key>id</key>
-      <value>digital_constellation_decoder_cb_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>constellation</key>
-      <value>const[const_type].base()</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>(618, 164)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_qtgui_range</key>
-    <param>
-      <key>id</key>
-      <value>EbN0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>Eb / N0 (dB)</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>10</value>
-    </param>
-    <param>
-      <key>start</key>
-      <value>-10</value>
-    </param>
-    <param>
-      <key>stop</key>
-      <value>200</value>
-    </param>
-    <param>
-      <key>step</key>
-      <value>1</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>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(317, 281)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_qtgui_label</key>
-    <param>
-      <key>id</key>
-      <value>variable_qtgui_label_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>Constellation Type</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>string</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>{0: 'BPSK', 1: 'QPSK', 2: '8-PSK'}[const_type] + " - Change 
const_type for different constellation types!"</value>
-    </param>
-    <param>
-      <key>formatter</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>gui_hint</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(294, 413)</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</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>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(486, 151)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blks2_error_rate</key>
-    <param>
-      <key>id</key>
-      <value>blks2_error_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>'BER'</value>
-    </param>
-    <param>
-      <key>win_size</key>
-      <value>int(1e7)</value>
-    </param>
-    <param>
-      <key>bits_per_symbol</key>
-      <value>const[const_type].bits_per_symbol()</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>(720, 25)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>qtgui_const_sink_x</key>
-    <param>
-      <key>id</key>
-      <value>qtgui_const_sink_x_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>name</key>
-      <value>"foo"</value>
-    </param>
-    <param>
-      <key>size</key>
-      <value>1024</value>
-    </param>
-    <param>
-      <key>grid</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>autoscale</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>ymin</key>
-      <value>-2</value>
-    </param>
-    <param>
-      <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>2,0,1,1</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>"Constellation: "+str(const[const_type].arity()) + "-PSK"</value>
-    </param>
-    <param>
-      <key>width1</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color1</key>
-      <value>"blue"</value>
-    </param>
-    <param>
-      <key>style1</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>marker1</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alpha1</key>
-      <value>0.6</value>
-    </param>
-    <param>
-      <key>label2</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width2</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color2</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style2</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>marker2</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alpha2</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label3</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width3</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color3</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style3</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>marker3</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alpha3</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label4</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width4</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color4</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style4</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>marker4</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alpha4</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label5</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width5</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color5</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style5</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>marker5</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alpha5</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label6</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width6</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color6</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style6</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>marker6</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alpha6</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label7</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width7</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color7</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style7</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>marker7</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alpha7</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label8</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width8</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color8</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style8</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>marker8</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alpha8</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label9</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width9</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color9</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style9</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>marker9</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alpha9</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label10</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width10</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color10</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style10</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>marker10</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alpha10</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(603, 253)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>qtgui_number_sink</key>
-    <param>
-      <key>id</key>
-      <value>qtgui_number_sink_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>name</key>
-      <value>""</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>autoscale</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>avg</key>
-      <value>0</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>0</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>1,0,1,1</value>
-    </param>
-    <param>
-      <key>label1</key>
-      <value>BER</value>
-    </param>
-    <param>
-      <key>unit1</key>
-      <value>x10^-6</value>
-    </param>
-    <param>
-      <key>color1</key>
-      <value>("black", "black")</value>
-    </param>
-    <param>
-      <key>factor1</key>
-      <value>1e6</value>
-    </param>
-    <param>
-      <key>label2</key>
-      <value></value>
-    </param>
-    <param>
-      <key>unit2</key>
-      <value></value>
-    </param>
-    <param>
-      <key>color2</key>
-      <value>("black", "black")</value>
-    </param>
-    <param>
-      <key>factor2</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>label3</key>
-      <value></value>
-    </param>
-    <param>
-      <key>unit3</key>
-      <value></value>
-    </param>
-    <param>
-      <key>color3</key>
-      <value>("black", "black")</value>
-    </param>
-    <param>
-      <key>factor3</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>label4</key>
-      <value></value>
-    </param>
-    <param>
-      <key>unit4</key>
-      <value></value>
-    </param>
-    <param>
-      <key>color4</key>
-      <value>("black", "black")</value>
-    </param>
-    <param>
-      <key>factor4</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>label5</key>
-      <value></value>
-    </param>
-    <param>
-      <key>unit5</key>
-      <value></value>
-    </param>
-    <param>
-      <key>color5</key>
-      <value>("black", "black")</value>
-    </param>
-    <param>
-      <key>factor5</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>label6</key>
-      <value></value>
-    </param>
-    <param>
-      <key>unit6</key>
-      <value></value>
-    </param>
-    <param>
-      <key>color6</key>
-      <value>("black", "black")</value>
-    </param>
-    <param>
-      <key>factor6</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>label7</key>
-      <value></value>
-    </param>
-    <param>
-      <key>unit7</key>
-      <value></value>
-    </param>
-    <param>
-      <key>color7</key>
-      <value>("black", "black")</value>
-    </param>
-    <param>
-      <key>factor7</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>label8</key>
-      <value></value>
-    </param>
-    <param>
-      <key>unit8</key>
-      <value></value>
-    </param>
-    <param>
-      <key>color8</key>
-      <value>("black", "black")</value>
-    </param>
-    <param>
-      <key>factor8</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>label9</key>
-      <value></value>
-    </param>
-    <param>
-      <key>unit9</key>
-      <value></value>
-    </param>
-    <param>
-      <key>color9</key>
-      <value>("black", "black")</value>
-    </param>
-    <param>
-      <key>factor9</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>label10</key>
-      <value></value>
-    </param>
-    <param>
-      <key>unit10</key>
-      <value></value>
-    </param>
-    <param>
-      <key>color10</key>
-      <value>("black", "black")</value>
-    </param>
-    <param>
-      <key>factor10</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(940, 26)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <connection>
-    <source_block_id>blocks_throttle</source_block_id>
-    <sink_block_id>blks2_error_rate</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_chunks_to_symbols_xx</source_block_id>
-    <sink_block_id>blocks_add_xx</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>analog_noise_source_x</source_block_id>
-    <sink_block_id>blocks_add_xx</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>1</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>analog_random_source_x</source_block_id>
-    <sink_block_id>blocks_throttle</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>analog_random_source_x</source_block_id>
-    <sink_block_id>digital_chunks_to_symbols_xx</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_constellation_decoder_cb_0</source_block_id>
-    <sink_block_id>blks2_error_rate</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>1</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_add_xx</source_block_id>
-    <sink_block_id>digital_constellation_decoder_cb_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_add_xx</source_block_id>
-    <sink_block_id>qtgui_const_sink_x_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blks2_error_rate</source_block_id>
-    <sink_block_id>qtgui_number_sink_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-</flow_graph>
diff --git a/gr-digital/examples/demod/dpsk_loopback.grc 
b/gr-digital/examples/demod/dpsk_loopback.grc
deleted file mode 100644
index c0ad423..0000000
--- a/gr-digital/examples/demod/dpsk_loopback.grc
+++ /dev/null
@@ -1,878 +0,0 @@
-<?xml version='1.0' encoding='ASCII'?>
-<flow_graph>
-  <timestamp>Tue Jul  8 23:26:29 2014</timestamp>
-  <block>
-    <key>blocks_throttle</key>
-    <param>
-      <key>id</key>
-      <value>blocks_throttle_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>samples_per_second</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>ignoretag</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>(381, 51)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>10000</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(5, 115)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blks2_packet_encoder</key>
-    <param>
-      <key>id</key>
-      <value>blks2_packet_encoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>samples_per_symbol</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>bits_per_symbol</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>preamble</key>
-      <value></value>
-    </param>
-    <param>
-      <key>access_code</key>
-      <value></value>
-    </param>
-    <param>
-      <key>pad_for_usrp</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>payload_length</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>(598, 19)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>digital_dxpsk_mod</key>
-    <param>
-      <key>id</key>
-      <value>digital_dxpsk_mod_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>dbpsk</value>
-    </param>
-    <param>
-      <key>samples_per_symbol</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>excess_bw</key>
-      <value>0.35</value>
-    </param>
-    <param>
-      <key>mod_code</key>
-      <value>"gray"</value>
-    </param>
-    <param>
-      <key>verbose</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>log</key>
-      <value>False</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>(806, 27)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>digital_dxpsk_demod</key>
-    <param>
-      <key>id</key>
-      <value>digital_dxpsk_demod_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>dbpsk</value>
-    </param>
-    <param>
-      <key>samples_per_symbol</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>excess_bw</key>
-      <value>0.35</value>
-    </param>
-    <param>
-      <key>freq_bw</key>
-      <value>6.28/100.0</value>
-    </param>
-    <param>
-      <key>phase_bw</key>
-      <value>6.28/100.0</value>
-    </param>
-    <param>
-      <key>timing_bw</key>
-      <value>6.28/100.0</value>
-    </param>
-    <param>
-      <key>mod_code</key>
-      <value>"gray"</value>
-    </param>
-    <param>
-      <key>verbose</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>log</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>sync_out</key>
-      <value>False</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>(745, 139)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
-  <block>
-    <key>blks2_packet_decoder</key>
-    <param>
-      <key>id</key>
-      <value>blks2_packet_decoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>access_code</key>
-      <value></value>
-    </param>
-    <param>
-      <key>threshold</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(545, 187)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
-  <block>
-    <key>qtgui_time_sink_x</key>
-    <param>
-      <key>id</key>
-      <value>qtgui_time_sink_x_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>name</key>
-      <value>QT GUI Plot</value>
-    </param>
-    <param>
-      <key>size</key>
-      <value>1024</value>
-    </param>
-    <param>
-      <key>srate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>autoscale</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>ymin</key>
-      <value>-1.1</value>
-    </param>
-    <param>
-      <key>ymax</key>
-      <value>1.1</value>
-    </param>
-    <param>
-      <key>nconnections</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>update_time</key>
-      <value>0.10</value>
-    </param>
-    <param>
-      <key>entags</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>gui_hint</key>
-      <value></value>
-    </param>
-    <param>
-      <key>tr_mode</key>
-      <value>qtgui.TRIG_MODE_FREE</value>
-    </param>
-    <param>
-      <key>tr_slope</key>
-      <value>qtgui.TRIG_SLOPE_POS</value>
-    </param>
-    <param>
-      <key>tr_level</key>
-      <value>0.0</value>
-    </param>
-    <param>
-      <key>tr_delay</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>tr_chan</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>tr_tag</key>
-      <value>""</value>
-    </param>
-    <param>
-      <key>label1</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width1</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color1</key>
-      <value>"blue"</value>
-    </param>
-    <param>
-      <key>style1</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker1</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha1</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label2</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width2</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color2</key>
-      <value>"red"</value>
-    </param>
-    <param>
-      <key>style2</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker2</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha2</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label3</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width3</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color3</key>
-      <value>"green"</value>
-    </param>
-    <param>
-      <key>style3</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker3</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha3</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label4</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width4</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color4</key>
-      <value>"black"</value>
-    </param>
-    <param>
-      <key>style4</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker4</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha4</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label5</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width5</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color5</key>
-      <value>"cyan"</value>
-    </param>
-    <param>
-      <key>style5</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker5</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha5</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label6</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width6</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color6</key>
-      <value>"magenta"</value>
-    </param>
-    <param>
-      <key>style6</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker6</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha6</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label7</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width7</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color7</key>
-      <value>"yellow"</value>
-    </param>
-    <param>
-      <key>style7</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker7</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha7</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label8</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width8</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color8</key>
-      <value>"dark red"</value>
-    </param>
-    <param>
-      <key>style8</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker8</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha8</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label9</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width9</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color9</key>
-      <value>"dark green"</value>
-    </param>
-    <param>
-      <key>style9</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker9</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha9</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>label10</key>
-      <value></value>
-    </param>
-    <param>
-      <key>width10</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>color10</key>
-      <value>"blue"</value>
-    </param>
-    <param>
-      <key>style10</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>marker10</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>alpha10</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(249, 172)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_qtgui_range</key>
-    <param>
-      <key>id</key>
-      <value>freq</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value></value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>500</value>
-    </param>
-    <param>
-      <key>start</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>stop</key>
-      <value>5000</value>
-    </param>
-    <param>
-      <key>step</key>
-      <value>1</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>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(0, 187)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>options</key>
-    <param>
-      <key>id</key>
-      <value>dpsk_loopback</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value>DPSK Loopback</value>
-    </param>
-    <param>
-      <key>author</key>
-      <value>GNU Radio</value>
-    </param>
-    <param>
-      <key>description</key>
-      <value>Encode a signal into a packet, modulate, demodulate, decode and 
show it's the same data.</value>
-    </param>
-    <param>
-      <key>window_size</key>
-      <value>1280, 1024</value>
-    </param>
-    <param>
-      <key>generate_options</key>
-      <value>qt_gui</value>
-    </param>
-    <param>
-      <key>category</key>
-      <value>Custom</value>
-    </param>
-    <param>
-      <key>run_options</key>
-      <value>prompt</value>
-    </param>
-    <param>
-      <key>run</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>max_nouts</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>realtime_scheduling</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(0, -1)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>analog_sig_source_x</key>
-    <param>
-      <key>id</key>
-      <value>analog_sig_source_x_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>waveform</key>
-      <value>analog.GR_COS_WAVE</value>
-    </param>
-    <param>
-      <key>freq</key>
-      <value>freq</value>
-    </param>
-    <param>
-      <key>amp</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>offset</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>(188, 23)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <connection>
-    <source_block_id>blks2_packet_encoder_0</source_block_id>
-    <sink_block_id>digital_dxpsk_mod_1</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_dxpsk_mod_1</source_block_id>
-    <sink_block_id>digital_dxpsk_demod_1</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_dxpsk_demod_1</source_block_id>
-    <sink_block_id>blks2_packet_decoder_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_throttle_0_0</source_block_id>
-    <sink_block_id>blks2_packet_encoder_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>analog_sig_source_x_0</source_block_id>
-    <sink_block_id>blocks_throttle_0_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blks2_packet_decoder_0</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-</flow_graph>
diff --git a/gr-digital/examples/demod/gfsk_loopback.grc 
b/gr-digital/examples/demod/gfsk_loopback.grc
deleted file mode 100644
index b9a7a07..0000000
--- a/gr-digital/examples/demod/gfsk_loopback.grc
+++ /dev/null
@@ -1,598 +0,0 @@
-<?xml version='1.0' encoding='ASCII'?>
-<flow_graph>
-  <timestamp>Tue Nov  6 20:52:00 2012</timestamp>
-  <block>
-    <key>options</key>
-    <param>
-      <key>id</key>
-      <value>gfsk_loopback</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value></value>
-    </param>
-    <param>
-      <key>author</key>
-      <value></value>
-    </param>
-    <param>
-      <key>description</key>
-      <value></value>
-    </param>
-    <param>
-      <key>window_size</key>
-      <value>1280, 1024</value>
-    </param>
-    <param>
-      <key>generate_options</key>
-      <value>qt_gui</value>
-    </param>
-    <param>
-      <key>category</key>
-      <value>Custom</value>
-    </param>
-    <param>
-      <key>run_options</key>
-      <value>prompt</value>
-    </param>
-    <param>
-      <key>run</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>max_nouts</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>realtime_scheduling</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(10, 10)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>fm_sensitivity</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(14, 273)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>sps</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>4</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(15, 338)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>32000</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(12, 76)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_qtgui_range</key>
-    <param>
-      <key>id</key>
-      <value>freq</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value></value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>500</value>
-    </param>
-    <param>
-      <key>start</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>stop</key>
-      <value>500</value>
-    </param>
-    <param>
-      <key>step</key>
-      <value>1</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>(13, 152)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>qtgui_time_sink_x</key>
-    <param>
-      <key>id</key>
-      <value>qtgui_time_sink_x_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>name</key>
-      <value></value>
-    </param>
-    <param>
-      <key>size</key>
-      <value>1024</value>
-    </param>
-    <param>
-      <key>srate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>ymin</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>ymax</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>nconnections</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>gui_hint</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(906, 122)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blks2_packet_encoder</key>
-    <param>
-      <key>id</key>
-      <value>blks2_packet_encoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>samples_per_symbol</key>
-      <value>sps</value>
-    </param>
-    <param>
-      <key>bits_per_symbol</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>access_code</key>
-      <value></value>
-    </param>
-    <param>
-      <key>pad_for_usrp</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>payload_length</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(237, 261)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blks2_packet_decoder</key>
-    <param>
-      <key>id</key>
-      <value>blks2_packet_decoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>access_code</key>
-      <value></value>
-    </param>
-    <param>
-      <key>threshold</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(720, 130)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_throttle</key>
-    <param>
-      <key>id</key>
-      <value>blocks_throttle_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>samples_per_second</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(413, 50)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>analog_sig_source_x</key>
-    <param>
-      <key>id</key>
-      <value>analog_sig_source_x_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>waveform</key>
-      <value>analog.GR_COS_WAVE</value>
-    </param>
-    <param>
-      <key>freq</key>
-      <value>freq</value>
-    </param>
-    <param>
-      <key>amp</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>offset</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(214, 18)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>digital_gfsk_demod</key>
-    <param>
-      <key>id</key>
-      <value>digital_gfsk_demod_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>samples_per_symbol</key>
-      <value>sps</value>
-    </param>
-    <param>
-      <key>sensitivity</key>
-      <value>fm_sensitivity</value>
-    </param>
-    <param>
-      <key>gain_mu</key>
-      <value>0.175</value>
-    </param>
-    <param>
-      <key>mu</key>
-      <value>0.5</value>
-    </param>
-    <param>
-      <key>omega_relative_limit</key>
-      <value>0.005</value>
-    </param>
-    <param>
-      <key>freq_error</key>
-      <value>0.0</value>
-    </param>
-    <param>
-      <key>verbose</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>log</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(670, 253)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>digital_gfsk_mod</key>
-    <param>
-      <key>id</key>
-      <value>digital_gfsk_mod_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>samples_per_symbol</key>
-      <value>sps</value>
-    </param>
-    <param>
-      <key>sensitivity</key>
-      <value>fm_sensitivity</value>
-    </param>
-    <param>
-      <key>bt</key>
-      <value>0.35</value>
-    </param>
-    <param>
-      <key>verbose</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>log</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(456, 277)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>qtgui_time_sink_x</key>
-    <param>
-      <key>id</key>
-      <value>qtgui_time_sink_x_1_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>name</key>
-      <value></value>
-    </param>
-    <param>
-      <key>size</key>
-      <value>1024</value>
-    </param>
-    <param>
-      <key>srate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>ymin</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>ymax</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>nconnections</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>gui_hint</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(888, 386)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>analog_quadrature_demod_cf</key>
-    <param>
-      <key>id</key>
-      <value>analog_quadrature_demod_cf_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>gain</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(673, 403)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <connection>
-    <source_block_id>blks2_packet_encoder_0</source_block_id>
-    <sink_block_id>digital_gfsk_mod_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_throttle_0_0</source_block_id>
-    <sink_block_id>blks2_packet_encoder_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_gfsk_demod_0</source_block_id>
-    <sink_block_id>blks2_packet_decoder_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_gfsk_mod_0</source_block_id>
-    <sink_block_id>digital_gfsk_demod_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blks2_packet_decoder_0</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>analog_sig_source_x_0</source_block_id>
-    <sink_block_id>blocks_throttle_0_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_gfsk_mod_0</source_block_id>
-    <sink_block_id>analog_quadrature_demod_cf_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>analog_quadrature_demod_cf_0</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_1_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-</flow_graph>
diff --git a/gr-digital/examples/demod/gmsk_loopback.grc 
b/gr-digital/examples/demod/gmsk_loopback.grc
deleted file mode 100644
index 7fb1a5f..0000000
--- a/gr-digital/examples/demod/gmsk_loopback.grc
+++ /dev/null
@@ -1,590 +0,0 @@
-<?xml version='1.0' encoding='ASCII'?>
-<flow_graph>
-  <timestamp>Tue Nov  6 20:49:18 2012</timestamp>
-  <block>
-    <key>options</key>
-    <param>
-      <key>id</key>
-      <value>gfsk_loopback</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value></value>
-    </param>
-    <param>
-      <key>author</key>
-      <value></value>
-    </param>
-    <param>
-      <key>description</key>
-      <value></value>
-    </param>
-    <param>
-      <key>window_size</key>
-      <value>1280, 1024</value>
-    </param>
-    <param>
-      <key>generate_options</key>
-      <value>qt_gui</value>
-    </param>
-    <param>
-      <key>category</key>
-      <value>Custom</value>
-    </param>
-    <param>
-      <key>run_options</key>
-      <value>prompt</value>
-    </param>
-    <param>
-      <key>run</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>max_nouts</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>realtime_scheduling</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(10, 10)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>fm_sensitivity</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>1.0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(14, 273)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>sps</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>4</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(15, 338)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>32000</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(12, 76)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_qtgui_range</key>
-    <param>
-      <key>id</key>
-      <value>freq</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value></value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>500</value>
-    </param>
-    <param>
-      <key>start</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>stop</key>
-      <value>500</value>
-    </param>
-    <param>
-      <key>step</key>
-      <value>1</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>(13, 152)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>qtgui_time_sink_x</key>
-    <param>
-      <key>id</key>
-      <value>qtgui_time_sink_x_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>name</key>
-      <value></value>
-    </param>
-    <param>
-      <key>size</key>
-      <value>1024</value>
-    </param>
-    <param>
-      <key>srate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>ymin</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>ymax</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>nconnections</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>gui_hint</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(906, 122)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blks2_packet_encoder</key>
-    <param>
-      <key>id</key>
-      <value>blks2_packet_encoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>samples_per_symbol</key>
-      <value>sps</value>
-    </param>
-    <param>
-      <key>bits_per_symbol</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>access_code</key>
-      <value></value>
-    </param>
-    <param>
-      <key>pad_for_usrp</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>payload_length</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(237, 261)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blks2_packet_decoder</key>
-    <param>
-      <key>id</key>
-      <value>blks2_packet_decoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>access_code</key>
-      <value></value>
-    </param>
-    <param>
-      <key>threshold</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(720, 130)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>digital_gmsk_demod</key>
-    <param>
-      <key>id</key>
-      <value>digital_gmsk_demod_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>samples_per_symbol</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>gain_mu</key>
-      <value>0.175</value>
-    </param>
-    <param>
-      <key>mu</key>
-      <value>0.5</value>
-    </param>
-    <param>
-      <key>omega_relative_limit</key>
-      <value>0.005</value>
-    </param>
-    <param>
-      <key>freq_error</key>
-      <value>0.0</value>
-    </param>
-    <param>
-      <key>verbose</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>log</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(666, 261)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_throttle</key>
-    <param>
-      <key>id</key>
-      <value>blocks_throttle_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>samples_per_second</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(413, 50)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>analog_sig_source_x</key>
-    <param>
-      <key>id</key>
-      <value>analog_sig_source_x_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>waveform</key>
-      <value>analog.GR_COS_WAVE</value>
-    </param>
-    <param>
-      <key>freq</key>
-      <value>freq</value>
-    </param>
-    <param>
-      <key>amp</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>offset</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(210, 18)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>qtgui_time_sink_x</key>
-    <param>
-      <key>id</key>
-      <value>qtgui_time_sink_x_1_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>name</key>
-      <value></value>
-    </param>
-    <param>
-      <key>size</key>
-      <value>1024</value>
-    </param>
-    <param>
-      <key>srate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>ymin</key>
-      <value>-1</value>
-    </param>
-    <param>
-      <key>ymax</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>nconnections</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>gui_hint</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(888, 386)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>digital_gmsk_mod</key>
-    <param>
-      <key>id</key>
-      <value>digital_gmsk_mod_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>samples_per_symbol</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>bt</key>
-      <value>0.35</value>
-    </param>
-    <param>
-      <key>verbose</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>log</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(446, 285)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>analog_quadrature_demod_cf</key>
-    <param>
-      <key>id</key>
-      <value>analog_quadrature_demod_cf_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>gain</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(675, 402)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <connection>
-    <source_block_id>blocks_throttle_0_0</source_block_id>
-    <sink_block_id>blks2_packet_encoder_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blks2_packet_decoder_0</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blks2_packet_encoder_0</source_block_id>
-    <sink_block_id>digital_gmsk_mod_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_gmsk_mod_0</source_block_id>
-    <sink_block_id>digital_gmsk_demod_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_gmsk_demod_0</source_block_id>
-    <sink_block_id>blks2_packet_decoder_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>analog_sig_source_x_0</source_block_id>
-    <sink_block_id>blocks_throttle_0_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>analog_quadrature_demod_cf_0</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_1_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>digital_gmsk_mod_0</source_block_id>
-    <sink_block_id>analog_quadrature_demod_cf_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-</flow_graph>
diff --git a/gr-digital/grc/blks2_packet_decoder.xml 
b/gr-digital/grc/blks2_packet_decoder.xml
deleted file mode 100644
index fedb2e7..0000000
--- a/gr-digital/grc/blks2_packet_decoder.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Packet Decoder
-###################################################
- -->
-<block>
-       <name>Packet Decoder</name>
-       <key>blks2_packet_decoder</key>
-       <category>[Core]/Deprecated</category>
-       <flags>deprecated</flags>
-       <import>from grc_gnuradio import blks2 as grc_blks2</import>
-       <make>grc_blks2.packet_demod_$(type.fcn)(grc_blks2.packet_decoder(
-               access_code=$access_code,
-               threshold=$threshold,
-               callback=lambda ok, payload: self.$(id).recv_pkt(ok, payload),
-       ),
-)</make>
-       <param>
-               <name>Output Type</name>
-               <key>type</key>
-               <value>float</value>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>complex</key>
-                       <opt>fcn:c</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>float</key>
-                       <opt>fcn:f</opt>
-               </option>
-               <option>
-                       <name>Int</name>
-                       <key>int</key>
-                       <opt>fcn:i</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>short</key>
-                       <opt>fcn:s</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>byte</key>
-                       <opt>fcn:b</opt>
-               </option>
-       </param>
-       <param>
-               <name>Access Code</name>
-               <key>access_code</key>
-               <value></value>
-               <type>string</type>
-       </param>
-       <param>
-               <name>Threshold</name>
-               <key>threshold</key>
-               <value>-1</value>
-               <type>int</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>byte</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$type</type>
-       </source>
-       <doc>
-Packet decoder block, for use with the gnuradio demodulator blocks: gmsk, psk, 
qam.
-
-Access Code: string of 1's and 0's, leave blank for automatic.
-
-Threshold: -1 for automatic.
-       </doc>
-</block>
diff --git a/gr-digital/grc/blks2_packet_encoder.xml 
b/gr-digital/grc/blks2_packet_encoder.xml
deleted file mode 100644
index d030f6a..0000000
--- a/gr-digital/grc/blks2_packet_encoder.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Packet Encoder
-###################################################
- -->
-<block>
-       <name>Packet Encoder</name>
-       <key>blks2_packet_encoder</key>
-       <category>[Core]/Deprecated</category>
-       <flags>deprecated</flags>
-       <import>from grc_gnuradio import blks2 as grc_blks2</import>
-       <make>grc_blks2.packet_mod_$(type.fcn)(grc_blks2.packet_encoder(
-               samples_per_symbol=$samples_per_symbol,
-               bits_per_symbol=$bits_per_symbol,
-               preamble=$preamble,
-               access_code=$access_code,
-               pad_for_usrp=$pad_for_usrp,
-       ),
-       payload_length=$payload_length,
-)</make>
-       <param>
-               <name>Input Type</name>
-               <key>type</key>
-               <value>float</value>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>complex</key>
-                       <opt>fcn:c</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>float</key>
-                       <opt>fcn:f</opt>
-               </option>
-               <option>
-                       <name>Int</name>
-                       <key>int</key>
-                       <opt>fcn:i</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>short</key>
-                       <opt>fcn:s</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>byte</key>
-                       <opt>fcn:b</opt>
-               </option>
-       </param>
-       <param>
-               <name>Samples/Symbol</name>
-               <key>samples_per_symbol</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Bits/Symbol</name>
-               <key>bits_per_symbol</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Preamble</name>
-               <key>preamble</key>
-               <value></value>
-               <type>string</type>
-       </param>
-       <param>
-               <name>Access Code</name>
-               <key>access_code</key>
-               <value></value>
-               <type>string</type>
-       </param>
-       <param>
-               <name>Pad for USRP</name>
-               <key>pad_for_usrp</key>
-               <type>enum</type>
-               <option>
-                       <name>Yes</name>
-                       <key>True</key>
-               </option>
-               <option>
-                       <name>No</name>
-                       <key>False</key>
-               </option>
-       </param>
-       <param>
-               <name>Payload Length</name>
-               <key>payload_length</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>$type</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>byte</type>
-       </source>
-       <doc>
-Packet encoder block, for use with the gnuradio modulator blocks: gmsk, dpsk, 
qam.
-
-Preamble: string of 1's and 0's, leave blank for automatic.
-
-Access Code: string of 1's and 0's, leave blank for automatic.
-
-Payload Length: 0 for automatic.
-
-Bits/Symbol should be set accordingly:
-       gmsk -> 1
-       dbpsk -> 1
-       dqpsk -> 2
-       d8psk -> 3
-       qam8 -> 3
-       qam16 -> 4
-       qam64 -> 6
-       qam256 -> 8
-       </doc>
-</block>
diff --git a/gr-digital/python/grc_gnuradio/CMakeLists.txt 
b/gr-digital/python/grc_gnuradio/CMakeLists.txt
deleted file mode 100644
index 7284573..0000000
--- a/gr-digital/python/grc_gnuradio/CMakeLists.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2011 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-
-########################################################################
-
-include(GrPython)
-
-# __init__ files come from gr-blocks
-
-GR_PYTHON_INSTALL(FILES
-    blks2/packet.py
-    DESTINATION ${GR_PYTHON_DIR}/grc_gnuradio/blks2
-)
diff --git a/gr-digital/python/grc_gnuradio/blks2/packet.py 
b/gr-digital/python/grc_gnuradio/blks2/packet.py
deleted file mode 100644
index dc06544..0000000
--- a/gr-digital/python/grc_gnuradio/blks2/packet.py
+++ /dev/null
@@ -1,261 +0,0 @@
-# Copyright 2008,2009,2012-2013 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from gnuradio import gr, digital
-from gnuradio import blocks
-from gnuradio.digital import packet_utils
-import gnuradio.gr.gr_threading as _threading
-
-##payload length in bytes
-DEFAULT_PAYLOAD_LEN = 512
-
-##how many messages in a queue
-DEFAULT_MSGQ_LIMIT = 2
-
-##threshold for unmaking packets
-DEFAULT_THRESHOLD = 12
-
-##################################################
-## Options Class for OFDM
-##################################################
-class options(object):
-    def __init__(self, **kwargs):
-        for key, value in kwargs.iteritems(): setattr(self, key, value)
-
-##################################################
-## Packet Encoder
-##################################################
-class _packet_encoder_thread(_threading.Thread):
-
-    def __init__(self, msgq, payload_length, send):
-        self._msgq = msgq
-        self._payload_length = payload_length
-        self._send = send
-        _threading.Thread.__init__(self)
-        self.setDaemon(1)
-        self.keep_running = True
-        self.start()
-
-    def run(self):
-        sample = '' #residual sample
-        while self.keep_running:
-            msg = self._msgq.delete_head() #blocking read of message queue
-            sample = sample + msg.to_string() #get the body of the msg as a 
string
-            while len(sample) >= self._payload_length:
-                payload = sample[:self._payload_length]
-                sample = sample[self._payload_length:]
-                self._send(payload)
-
-class packet_encoder(gr.hier_block2):
-    """
-    Hierarchical block for wrapping packet-based modulators.
-    """
-
-    def __init__(self, samples_per_symbol, bits_per_symbol, preamble='', 
access_code='', pad_for_usrp=True):
-        """
-        packet_mod constructor.
-
-        Args:
-            samples_per_symbol: number of samples per symbol
-            bits_per_symbol: number of bits per symbol
-            preamble: string of ascii 0's and 1's
-            access_code: AKA sync vector
-            pad_for_usrp: If true, packets are padded such that they end up a 
multiple of 128 samples
-        """
-        #setup parameters
-        self._samples_per_symbol = samples_per_symbol
-        self._bits_per_symbol = bits_per_symbol
-        self._pad_for_usrp = pad_for_usrp
-        if not preamble: #get preamble
-            preamble = packet_utils.default_preamble
-        if not access_code: #get access code
-            access_code = packet_utils.default_access_code
-        if not packet_utils.is_1_0_string(preamble):
-            raise ValueError, "Invalid preamble %r. Must be string of 1's and 
0's" % (preamble,)
-        if not packet_utils.is_1_0_string(access_code):
-            raise ValueError, "Invalid access_code %r. Must be string of 1's 
and 0's" % (access_code,)
-        self._preamble = preamble
-        self._access_code = access_code
-        self._pad_for_usrp = pad_for_usrp
-        #create blocks
-        msg_source = blocks.message_source(gr.sizeof_char, DEFAULT_MSGQ_LIMIT)
-        self._msgq_out = msg_source.msgq()
-        #initialize hier2
-        gr.hier_block2.__init__(
-            self,
-            "packet_encoder",
-            gr.io_signature(0, 0, 0), # Input signature
-            gr.io_signature(1, 1, gr.sizeof_char) # Output signature
-        )
-        #connect
-        self.connect(msg_source, self)
-
-        print "Warning: the blks2.packet_encoder block is deprecated."
-
-    def send_pkt(self, payload):
-        """
-        Wrap the payload in a packet and push onto the message queue.
-
-        Args:
-            payload: string, data to send
-        """
-        packet = packet_utils.make_packet(
-            payload,
-            self._samples_per_symbol,
-            self._bits_per_symbol,
-            self._preamble,
-            self._access_code,
-            self._pad_for_usrp
-        )
-        msg = gr.message_from_string(packet)
-        self._msgq_out.insert_tail(msg)
-
-##################################################
-## Packet Decoder
-##################################################
-class _packet_decoder_thread(_threading.Thread):
-
-    def __init__(self, msgq, callback):
-        _threading.Thread.__init__(self)
-        self.setDaemon(1)
-        self._msgq = msgq
-        self.callback = callback
-        self.keep_running = True
-        self.start()
-
-    def run(self):
-        while self.keep_running:
-            msg = self._msgq.delete_head()
-            ok, payload = packet_utils.unmake_packet(msg.to_string(), 
int(msg.arg1()))
-            if self.callback:
-                self.callback(ok, payload)
-
-class packet_decoder(gr.hier_block2):
-    """
-    Hierarchical block for wrapping packet-based demodulators.
-    """
-
-    def __init__(self, access_code='', threshold=-1, callback=None):
-        """
-        packet_demod constructor.
-
-        Args:
-            access_code: AKA sync vector
-            threshold: detect access_code with up to threshold bits wrong (0 
-> use default)
-            callback: a function of args: ok, payload
-        """
-        #access code
-        if not access_code: #get access code
-            access_code = packet_utils.default_access_code
-        if not packet_utils.is_1_0_string(access_code):
-            raise ValueError, "Invalid access_code %r. Must be string of 1's 
and 0's" % (access_code,)
-        self._access_code = access_code
-        #threshold
-        if threshold < 0: threshold = DEFAULT_THRESHOLD
-        self._threshold = threshold
-        #blocks
-        msgq = gr.msg_queue(DEFAULT_MSGQ_LIMIT) #holds packets from the PHY
-        correlator = digital.correlate_access_code_bb(self._access_code, 
self._threshold)
-        framer_sink = digital.framer_sink_1(msgq)
-        #initialize hier2
-        gr.hier_block2.__init__(
-            self,
-            "packet_decoder",
-            gr.io_signature(1, 1, gr.sizeof_char), # Input signature
-            gr.io_signature(0, 0, 0) # Output signature
-        )
-        #connect
-        self.connect(self, correlator, framer_sink)
-        #start thread
-        _packet_decoder_thread(msgq, callback)
-
-        print "Warning: the blks2.packet_decoder block is deprecated."
-
-##################################################
-## Packet Mod for OFDM Mod and Packet Encoder
-##################################################
-class packet_mod_base(gr.hier_block2):
-    """
-    Hierarchical block for wrapping packet source block.
-    """
-
-    def __init__(self, packet_source=None, payload_length=0):
-        if not payload_length: #get payload length
-            payload_length = DEFAULT_PAYLOAD_LEN
-        if payload_length%self._item_size_in != 0:  #verify that packet length 
is a multiple of the stream size
-            raise ValueError, 'The payload length: "%d" is not a mutiple of 
the stream size: "%d".'%(payload_length, self._item_size_in)
-        #initialize hier2
-        gr.hier_block2.__init__(
-            self,
-            "ofdm_mod",
-            gr.io_signature(1, 1, self._item_size_in), # Input signature
-            gr.io_signature(1, 1, 
packet_source.output_signature().sizeof_stream_item(0)) # Output signature
-        )
-        #create blocks
-        msgq = gr.msg_queue(DEFAULT_MSGQ_LIMIT)
-        msg_sink = blocks.message_sink(self._item_size_in, msgq, False) #False 
-> blocking
-        #connect
-        self.connect(self, msg_sink)
-        self.connect(packet_source, self)
-        #start thread
-        _packet_encoder_thread(msgq, payload_length, packet_source.send_pkt)
-
-class packet_mod_b(packet_mod_base): _item_size_in = gr.sizeof_char
-class packet_mod_s(packet_mod_base): _item_size_in = gr.sizeof_short
-class packet_mod_i(packet_mod_base): _item_size_in = gr.sizeof_int
-class packet_mod_f(packet_mod_base): _item_size_in = gr.sizeof_float
-class packet_mod_c(packet_mod_base): _item_size_in = gr.sizeof_gr_complex
-
-##################################################
-## Packet Demod for OFDM Demod and Packet Decoder
-##################################################
-class packet_demod_base(gr.hier_block2):
-    """
-    Hierarchical block for wrapping packet sink block.
-    """
-
-    def __init__(self, packet_sink=None):
-        #initialize hier2
-        gr.hier_block2.__init__(
-            self,
-            "ofdm_mod",
-            gr.io_signature(1, 1, 
packet_sink.input_signature().sizeof_stream_item(0)), # Input signature
-            gr.io_signature(1, 1, self._item_size_out) # Output signature
-        )
-        #create blocks
-        msg_source = blocks.message_source(self._item_size_out, 
DEFAULT_MSGQ_LIMIT)
-        self._msgq_out = msg_source.msgq()
-        #connect
-        self.connect(self, packet_sink)
-        self.connect(msg_source, self)
-        if packet_sink.output_signature().sizeof_stream_item(0):
-            self.connect(packet_sink,
-                         
blocks.null_sink(packet_sink.output_signature().sizeof_stream_item(0)))
-
-    def recv_pkt(self, ok, payload):
-        msg = gr.message_from_string(payload, 0, self._item_size_out,
-                                     len(payload)/self._item_size_out)
-        if ok: self._msgq_out.insert_tail(msg)
-
-class packet_demod_b(packet_demod_base): _item_size_out = gr.sizeof_char
-class packet_demod_s(packet_demod_base): _item_size_out = gr.sizeof_short
-class packet_demod_i(packet_demod_base): _item_size_out = gr.sizeof_int
-class packet_demod_f(packet_demod_base): _item_size_out = gr.sizeof_float
-class packet_demod_c(packet_demod_base): _item_size_out = gr.sizeof_gr_complex
diff --git a/gr-trellis/examples/python/CMakeLists.txt 
b/gr-trellis/examples/python/CMakeLists.txt
index 76c88ee..efb8d98 100644
--- a/gr-trellis/examples/python/CMakeLists.txt
+++ b/gr-trellis/examples/python/CMakeLists.txt
@@ -22,7 +22,6 @@ include(GrPython)
 GR_PYTHON_INSTALL(
     PROGRAMS
     test_tcm.py
-    test_cpm.py
     DESTINATION ${GR_PKG_TRELLIS_EXAMPLES_DIR}
 )
 
diff --git a/gr-trellis/examples/python/test_cpm.py 
b/gr-trellis/examples/python/test_cpm.py
deleted file mode 100755
index 8014c87..0000000
--- a/gr-trellis/examples/python/test_cpm.py
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/usr/bin/env python
-##################################################
-# Gnuradio Python Flow Graph
-# Title: CPM test
-# Author: Achilleas Anastasopoulos
-# Description: gnuradio flow graph
-# Generated: Thu Feb 19 23:16:23 2009
-##################################################
-
-from gnuradio import gr
-from gnuradio import trellis, digital, filter, blocks
-from grc_gnuradio import blks2 as grc_blks2
-import math
-import numpy
-from gnuradio import trellis
-from gnuradio.trellis import fsm_utils
-
-try:
-    from gnuradio import analog
-except ImportError:
-    sys.stderr.write("Error: Program requires gr-analog.\n")
-    sys.exit(1)
-
-try:
-       import scipy.stats
-except ImportError:
-       print "Error: Program requires scipy (see: www.scipy.org)."
-       sys.exit(1)
-
-def run_test(seed,blocksize):
-        tb = gr.top_block()
-
-       ##################################################
-       # Variables
-       ##################################################
-       M = 2
-       K = 1
-       P = 2
-       h = (1.0*K)/P
-       L = 3
-       Q = 4
-        frac = 0.99
-        f = trellis.fsm(P,M,L)
-
-        # CPFSK signals
-        #p = numpy.ones(L*Q)
-        #p = p/sum(p)*Q/2.0;
-        #q = numpy.cumsum(p)
-        #q = q/q[-1]/2.0;
-
-        # GMSK signals
-        BT=0.3;
-        tt=numpy.arange(0,L*Q)/(1.0*Q)-L/2.0;
-        #print tt
-        
p=(0.5*scipy.special.erfc(2*math.pi*BT*(tt-0.5)/math.sqrt(math.log(2.0))/math.sqrt(2.0))-0.5*scipy.special.erfc(2*math.pi*BT*(tt+0.5)/math.sqrt(math.log(2.0))/math.sqrt(2.0)))/2.0;
-        p=p/sum(p)*Q/2.0;
-        #print p
-        q=numpy.cumsum(p);
-        q=q/q[-1]/2.0;
-        #print q
-
-        (f0T,SS,S,F,Sf,Ff,N) = fsm_utils.make_cpm_signals(K,P,M,L,q,frac)
-        #print N
-        #print Ff
-        Ffa = numpy.insert(Ff,Q,numpy.zeros(N),axis=0)
-        #print Ffa
-        MF = numpy.fliplr(numpy.transpose(Ffa))
-        #print MF
-        E = numpy.sum(numpy.abs(Sf)**2,axis=0)
-        Es = numpy.sum(E)/f.O()
-        #print Es
-
-        constellation = numpy.reshape(numpy.transpose(Sf),N*f.O())
-        #print Ff
-        #print Sf
-        #print constellation
-        #print numpy.max(numpy.abs(SS - numpy.dot(Ff , Sf)))
-
-       EsN0_db = 10.0
-        N0 =  Es * 10.0**(-(1.0*EsN0_db)/10.0)
-        #N0 = 0.0
-        #print N0
-        head = 4
-        tail = 4
-        numpy.random.seed(seed*666)
-        data = numpy.random.randint(0, M, head+blocksize+tail+1)
-        #data = numpy.zeros(blocksize+1+head+tail,'int')
-        for i in range(head):
-            data[i]=0
-        for i in range(tail+1):
-            data[-i]=0
-
-
-
-       ##################################################
-       # Blocks
-       ##################################################
-       random_source_x_0 = blocks.vector_source_b(data.tolist(), False)
-       digital_chunks_to_symbols_xx_0 = digital.chunks_to_symbols_bf((-1, 1), 
1)
-       filter_interp_fir_filter_xxx_0 = filter.interp_fir_filter_fff(Q, p)
-       analog_frequency_modulator_fc_0 = 
analog.frequency_modulator_fc(2*math.pi*h*(1.0/Q))
-
-       blocks_add_vxx_0 = blocks.add_vcc(1)
-       analog_noise_source_x_0 = analog.noise_source_c(analog.GR_GAUSSIAN, 
(N0/2.0)**0.5, -long(seed))
-
-       blocks_multiply_vxx_0 = blocks.multiply_vcc(1)
-       analog_sig_source_x_0 = analog.sig_source_c(Q, analog.GR_COS_WAVE, 
-f0T, 1, 0)
-        # only works for N=2, do it manually for N>2...
-       filter_fir_filter_xxx_0_0 = filter.fir_filter_ccc(Q, MF[0].conjugate())
-       filter_fir_filter_xxx_0_0_0 = filter.fir_filter_ccc(Q, 
MF[1].conjugate())
-       blocks_streams_to_stream_0 = 
blocks.streams_to_stream(gr.sizeof_gr_complex*1, int(N))
-       blocks_skiphead_0 = blocks.skiphead(gr.sizeof_gr_complex*1, 
int(N*(1+0)))
-       viterbi = trellis.viterbi_combined_cb(f, head+blocksize+tail, 0, -1, 
int(N),
-                                             constellation, 
digital.TRELLIS_EUCLIDEAN)
-
-        blocks_vector_sink_x_0 = blocks.vector_sink_b()
-
-       ##################################################
-       # Connections
-       ##################################################
-       tb.connect((random_source_x_0, 0), (digital_chunks_to_symbols_xx_0, 0))
-       tb.connect((digital_chunks_to_symbols_xx_0, 0), 
(filter_interp_fir_filter_xxx_0, 0))
-       tb.connect((filter_interp_fir_filter_xxx_0, 0), 
(analog_frequency_modulator_fc_0, 0))
-       tb.connect((analog_frequency_modulator_fc_0, 0), (blocks_add_vxx_0, 0))
-       tb.connect((analog_noise_source_x_0, 0), (blocks_add_vxx_0, 1))
-       tb.connect((blocks_add_vxx_0, 0), (blocks_multiply_vxx_0, 0))
-       tb.connect((analog_sig_source_x_0, 0), (blocks_multiply_vxx_0, 1))
-       tb.connect((blocks_multiply_vxx_0, 0), (filter_fir_filter_xxx_0_0, 0))
-       tb.connect((blocks_multiply_vxx_0, 0), (filter_fir_filter_xxx_0_0_0, 0))
-       tb.connect((filter_fir_filter_xxx_0_0, 0), (blocks_streams_to_stream_0, 
0))
-       tb.connect((filter_fir_filter_xxx_0_0_0, 0), 
(blocks_streams_to_stream_0, 1))
-       tb.connect((blocks_streams_to_stream_0, 0), (blocks_skiphead_0, 0))
-       tb.connect((blocks_skiphead_0, 0), (viterbi, 0))
-       tb.connect((viterbi, 0), (blocks_vector_sink_x_0, 0))
-
-
-        tb.run()
-        dataest = blocks_vector_sink_x_0.data()
-        #print data
-        #print numpy.array(dataest)
-        perr = 0
-        err = 0
-        for i in range(blocksize):
-          if data[head+i] != dataest[head+i]:
-            #print i
-            err += 1
-        if err != 0 :
-          perr = 1
-        return (err,perr)
-
-if __name__ == '__main__':
-        blocksize = 1000
-        ss=0
-        ee=0
-        for i in range(10000):
-            (s,e) = run_test(i,blocksize)
-            ss += s
-            ee += e
-            if (i+1) % 100 == 0:
-                print i+1,ss,ee,(1.0*ss)/(i+1)/(1.0*blocksize),(1.0*ee)/(i+1)
-        print i+1,ss,ee,(1.0*ss)/(i+1)/(1.0*blocksize),(1.0*ee)/(i+1)
diff --git a/grc/core/Param.py b/grc/core/Param.py
index d0af979..fd098b7 100644
--- a/grc/core/Param.py
+++ b/grc/core/Param.py
@@ -30,7 +30,7 @@ from .utils import odict
 import __builtin__
 
 
-ID_BLACKLIST = ['self', 'options', 'gr', 'blks2', 'math', 'firdes'] + 
dir(__builtin__)
+ID_BLACKLIST = ['self', 'options', 'gr', 'math', 'firdes'] + dir(__builtin__)
 try:
     from gnuradio import gr
     ID_BLACKLIST.extend(attr for attr in dir(gr.top_block()) if not 
attr.startswith('_'))



reply via email to

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