commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] [gnuradio] 04/05: pager: deprecated in 3.7, removed fo


From: git
Subject: [Commit-gnuradio] [gnuradio] 04/05: pager: deprecated in 3.7, removed for 3.8
Date: Fri, 10 Jun 2016 21:05:40 +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 2d2caa205f3c3059deab7c82660908656167fd90
Author: Johnathan Corgan <address@hidden>
Date:   Fri Jun 10 13:55:48 2016 -0700

    pager: deprecated in 3.7, removed for 3.8
---
 CMakeLists.txt                                     |    1 -
 cmake/Modules/FindGnuradio.cmake                   |    1 -
 gnuradio-runtime/python/gnuradio/__init__.py       |    1 -
 gr-pager/CMakeLists.txt                            |  112 -
 gr-pager/README                                    |   85 -
 gr-pager/apps/CMakeLists.txt                       |   29 -
 gr-pager/apps/usrp_flex                            |  164 --
 gr-pager/apps/usrp_flex_all                        |  166 --
 gr-pager/apps/usrp_flex_band                       |  144 -
 gr-pager/apps/usrp_rx_flex.grc                     | 2840 --------------------
 gr-pager/apps/usrp_rx_flex.py                      |  435 ---
 gr-pager/gnuradio-pager.pc.in                      |   11 -
 gr-pager/grc/CMakeLists.txt                        |   26 -
 gr-pager/grc/pager_flex_deinterleave.xml           |   23 -
 gr-pager/grc/pager_flex_sync.xml                   |   36 -
 gr-pager/grc/pager_slicer_fb.xml                   |   31 -
 gr-pager/include/gnuradio/pager/CMakeLists.txt     |   32 -
 gr-pager/include/gnuradio/pager/api.h              |   33 -
 .../include/gnuradio/pager/flex_deinterleave.h     |   51 -
 gr-pager/include/gnuradio/pager/flex_frame.h       |   48 -
 gr-pager/include/gnuradio/pager/flex_parse.h       |   52 -
 gr-pager/include/gnuradio/pager/flex_sync.h        |   49 -
 gr-pager/include/gnuradio/pager/slicer_fb.h        |   53 -
 gr-pager/lib/CMakeLists.txt                        |  100 -
 gr-pager/lib/bch3221.cc                            |   43 -
 gr-pager/lib/bch3221.h                             |   36 -
 gr-pager/lib/flex_deinterleave_impl.cc             |  107 -
 gr-pager/lib/flex_deinterleave_impl.h              |   54 -
 gr-pager/lib/flex_frame_impl.cc                    |   48 -
 gr-pager/lib/flex_frame_impl.h                     |   41 -
 gr-pager/lib/flex_modes.cc                         |   66 -
 gr-pager/lib/flex_modes.h                          |   79 -
 gr-pager/lib/flex_parse_impl.cc                    |  258 --
 gr-pager/lib/flex_parse_impl.h                     |   70 -
 gr-pager/lib/flex_sync_impl.cc                     |  365 ---
 gr-pager/lib/flex_sync_impl.h                      |   95 -
 gr-pager/lib/gnuradio-pager.rc.in                  |   55 -
 gr-pager/lib/slicer_fb_impl.cc                     |   99 -
 gr-pager/lib/slicer_fb_impl.h                      |   54 -
 gr-pager/lib/util.cc                               |   55 -
 gr-pager/lib/util.h                                |   37 -
 gr-pager/python/pager/CMakeLists.txt               |   49 -
 gr-pager/python/pager/__init__.py                  |   37 -
 gr-pager/python/pager/flex_demod.py                |   66 -
 gr-pager/python/pager/pager_utils.py               |   60 -
 gr-pager/python/pager/qa_pager.py                  |   34 -
 gr-pager/swig/CMakeLists.txt                       |   56 -
 gr-pager/swig/pager_swig.i                         |   47 -
 48 files changed, 6434 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a0d60c..5fc01f2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -445,7 +445,6 @@ add_subdirectory(gr-dtv)
 add_subdirectory(gr-audio)
 add_subdirectory(gr-comedi)
 add_subdirectory(gr-channels)
-add_subdirectory(gr-pager)
 add_subdirectory(gr-qtgui)
 add_subdirectory(gr-trellis)
 add_subdirectory(gr-uhd)
diff --git a/cmake/Modules/FindGnuradio.cmake b/cmake/Modules/FindGnuradio.cmake
index 716e6f9..72b7313 100644
--- a/cmake/Modules/FindGnuradio.cmake
+++ b/cmake/Modules/FindGnuradio.cmake
@@ -110,7 +110,6 @@ GR_MODULE(DIGITAL gnuradio-digital gnuradio/digital/api.h 
gnuradio-digital)
 GR_MODULE(FEC gnuradio-fec gnuradio/fec/api.h gnuradio-fec)
 GR_MODULE(FFT gnuradio-fft gnuradio/fft/api.h gnuradio-fft)
 GR_MODULE(FILTER gnuradio-filter gnuradio/filter/api.h gnuradio-filter)
-GR_MODULE(PAGER gnuradio-pager gnuradio/pager/api.h gnuradio-pager)
 GR_MODULE(QTGUI gnuradio-qtgui gnuradio/qtgui/api.h gnuradio-qtgui)
 GR_MODULE(TRELLIS gnuradio-trellis gnuradio/trellis/api.h gnuradio-trellis)
 GR_MODULE(UHD gnuradio-uhd gnuradio/uhd/api.h gnuradio-uhd)
diff --git a/gnuradio-runtime/python/gnuradio/__init__.py 
b/gnuradio-runtime/python/gnuradio/__init__.py
index 263ac28..43274db 100644
--- a/gnuradio-runtime/python/gnuradio/__init__.py
+++ b/gnuradio-runtime/python/gnuradio/__init__.py
@@ -38,7 +38,6 @@ if path.endswith(path_ending):
     __path__.append(os.path.join(build_path, 'gr-audio', 'python'))
     __path__.append(os.path.join(build_path, 'gr-qtgui', 'python'))
     __path__.append(os.path.join(build_path, 'gr-wxgui', 'python'))
-    __path__.append(os.path.join(build_path, 'gr-pager', 'python'))
     __path__.append(os.path.join(build_path, 'gr-video-sdl', 'python'))
     __path__.append(os.path.join(build_path, 'gr-vocoder', 'python'))
     __path__.append(os.path.join(build_path, 'gr-comedi', 'python'))
diff --git a/gr-pager/CMakeLists.txt b/gr-pager/CMakeLists.txt
deleted file mode 100644
index 3054214..0000000
--- a/gr-pager/CMakeLists.txt
+++ /dev/null
@@ -1,112 +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.
-
-########################################################################
-# Setup dependencies
-########################################################################
-include(GrBoost)
-
-########################################################################
-# Register component
-########################################################################
-include(GrComponent)
-GR_REGISTER_COMPONENT("gr-pager" ENABLE_GR_PAGER
-    Boost_FOUND
-    ENABLE_GNURADIO_RUNTIME
-    ENABLE_GR_FILTER
-    ENABLE_GR_ANALOG
-)
-
-GR_SET_GLOBAL(GR_PAGER_INCLUDE_DIRS
-    ${CMAKE_CURRENT_SOURCE_DIR}/include
-    ${CMAKE_CURRENT_BINARY_DIR}/include
-)
-
-GR_SET_GLOBAL(GR_PAGER_SWIG_INCLUDE_DIRS
-    ${CMAKE_CURRENT_SOURCE_DIR}/swig
-)
-
-SET(GR_PKG_PAGER_EXAMPLES_DIR ${GR_PKG_DATA_DIR}/examples/pager)
-
-########################################################################
-# Begin conditional configuration
-########################################################################
-if(ENABLE_GR_PAGER)
-
-########################################################################
-# Setup CPack components
-########################################################################
-include(GrPackage)
-CPACK_SET(CPACK_COMPONENT_GROUP_PAGER_DESCRIPTION "GNU Radio Pager Blocks")
-
-CPACK_COMPONENT("pager_runtime"
-    GROUP        "Pager"
-    DISPLAY_NAME "Runtime"
-    DESCRIPTION  "Runtime"
-    DEPENDS      "runtime_runtime"
-)
-
-CPACK_COMPONENT("pager_devel"
-    GROUP        "Pager"
-    DISPLAY_NAME "Development"
-    DESCRIPTION  "C++ headers, package config, import libraries"
-    DEPENDS      "runtime_devel"
-)
-
-CPACK_COMPONENT("pager_python"
-    GROUP        "Pager"
-    DISPLAY_NAME "Python"
-    DESCRIPTION  "Python modules for runtime; GRC xml files"
-    DEPENDS      "runtime_python;pager_runtime"
-)
-
-CPACK_COMPONENT("pager_swig"
-    GROUP        "Pager"
-    DISPLAY_NAME "SWIG"
-    DESCRIPTION  "SWIG development .i files"
-    DEPENDS      "runtime_swig;pager_python;pager_devel"
-)
-
-########################################################################
-# Add subdirectories
-########################################################################
-add_subdirectory(include/gnuradio/pager)
-add_subdirectory(lib)
-if(ENABLE_PYTHON)
-    add_subdirectory(python/pager)
-    add_subdirectory(swig)
-    add_subdirectory(grc)
-    add_subdirectory(apps)
-endif(ENABLE_PYTHON)
-
-########################################################################
-# Create Pkg Config File
-########################################################################
-configure_file(
-    ${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-pager.pc.in
-    ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-pager.pc
address@hidden)
-
-install(
-    FILES ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-pager.pc
-    DESTINATION ${GR_LIBRARY_DIR}/pkgconfig
-    COMPONENT "pager_devel"
-)
-
-endif(ENABLE_GR_PAGER)
diff --git a/gr-pager/README b/gr-pager/README
deleted file mode 100644
index 441fee0..0000000
--- a/gr-pager/README
+++ /dev/null
@@ -1,85 +0,0 @@
-This GNU Radio component implements a FLEX radiopager receiver/demodulator.
-
-FLEX pager towers are between 929 MHz and 932 MHz at 25 KHz centers.
-
-Current status (7/16/07):
-
-FLEX receiving is completed except for addition of BCH error correction.
-
-There are three scripts:
-
-usrp_flex.py - Receives and displays pages from a single paging channel. To
-               work from recorded data, record from USRP with decimation 256
-              at center frequency.
-
-    Usage: usrp_flex.py [options]
-
-    Options:
-      -h, --help                          show this help message and exit
-      -f Hz, --frequency=Hz               set receive frequency to Hz
-      -R SUBDEV, --rx-subdev-spec=SUBDEV  select USRP Rx side A or B
-      -c Hz, --calibration=Hz             set frequency offset to Hz
-      -g dB, --gain=dB                    set RF gain
-      -l, --log                           log flowgraph to files (LOTS of data)
-      -v, --verbose                       display debug output
-      -F FROM_FILE, --from-file=FROM_FILE read samples from file instead of 
USRP
-
-    Example, to receive from 931.95M (a common nationwide channel) with DBSRX 
in
-    side A of USRP:
-
-    $ usrp_flex.py -f 931.95M -g 32 -R A
-
-
-usrp_flex_band.py - Receives and displays pages from a 1 MHz paging band (40 
pager
-                   channels.) To work from recorded data, record from USRP with
-                   decimation 64 at center frequency.
-
-Usage: usrp_flex_band.py [options]
-
-    Options:
-      -h, --help                              show this help message and exit
-      -f Hz, --frequency=Hz                   set receive center frequency to 
Hz
-      -R SUBDEV, --rx-subdev-spec=SUBDEV      select USRP Rx side A or B
-      -c Hz, --calibration=Hz                 set frequency offset to Hz
-      -g dB, --gain=dB                        set RF gain
-      -F FROM_FILE, --from-file=FROM_FILE     Read from file instead of USRP
-      -l, --log                              log flowgraph to files (LOTS of 
data)
-      -v, --verbose                           display debug output
-
-    Example, to receive from the lower third of the pager band with DBSRX in 
side B
-    of USRP:
-
-    $ usrp_flex_band.py -f 929.5M -g 32 -R B
-
-usrp_flex_all.py - Receives and displays pages from entire pager band (3 MHz,
-                   120 pager channels.)  This does not work in real time due
-                  to CPU limitations, but can work from recorded USRP data. To
-                  work from recorded data, record from USRP with decimation 20 
at
-                  center frequency of 930.5M.
-
-    Usage: usrp_flex_all.py [options]
-
-       Options:
-          -h, --help                         show this help message and exit
-          -R SUBDEV, --rx-subdev-spec=SUBDEVC select USRP Rx side A or B
-          -c Hz, --calibration=Hz             set frequency offset to Hz
-          -g dB, --gain=dB                    set RF gain
-          -F FROM_FILE, --from-file=FROM_FILE Read from file instead of USRP
-          -l, --log                           log flowgraph to files (LOTS of 
data)
-          -v, --verbose                       display debug output
-
-    Example, to receive all pager channels with DBSRX in side A:
-
-    $ usrp_flex_all.py -R A
-
-The demodulator is relatively sensitive to frequency offset and can capture a 
signal
-within 3k of the actual signal.
-
-All three scripts take a 'calibration' parameter, which specifies the 
frequency offset
-of the daughterboard.  This causes the USRP to be tuned to the given center 
frequency
-plus the calibration offset.  For example, if your DBSRX shows 930MHz as 
930.001MHz in
-usrp_fft.py, then use '-c 1k' in the command line to automatically add this.
-
-Johnathan Corgan
-Corgan Enterprises LLC
address@hidden
diff --git a/gr-pager/apps/CMakeLists.txt b/gr-pager/apps/CMakeLists.txt
deleted file mode 100644
index a02cad5..0000000
--- a/gr-pager/apps/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)
-
-GR_PYTHON_INSTALL(
-    PROGRAMS
-    usrp_flex
-    usrp_flex_all
-    usrp_flex_band
-    DESTINATION ${GR_RUNTIME_DIR}
-    COMPONENT "pager_python"
-)
diff --git a/gr-pager/apps/usrp_flex b/gr-pager/apps/usrp_flex
deleted file mode 100755
index 94a13e5..0000000
--- a/gr-pager/apps/usrp_flex
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2006,2007,2009,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 gnuradio import gr, gru, uhd, eng_notation, pager
-from gnuradio import filter
-from gnuradio.filter import optfir
-from gnuradio import blocks
-from gnuradio.eng_option import eng_option
-from optparse import OptionParser
-import time, os, sys
-
-class app_top_block(gr.top_block):
-    def __init__(self, options, queue):
-        gr.top_block.__init__(self, "usrp_flex")
-        self.options = options
-       self.offset = 0.0
-       self.adj_time = time.time()
-       self.verbose = options.verbose
-
-       if options.from_file is None:
-            # Set up USRP source
-            self.u = uhd.usrp_source(device_addr=options.address, 
stream_args=uhd.stream_args('fc32'))
-
-            # Grab 250 KHz of spectrum
-            # (A UHD facility to get sample rate range and granularity would 
be useful)
-            self.u.set_samp_rate(250e3)
-            rate = self.u.get_samp_rate()
-            if rate != 250e3:
-                print "Unable to set required sample rate of 250 Ksps (got 
%f)" % rate
-                sys.exit(1)
-
-            # Tune daughterboard
-            r = self.u.set_center_freq(options.freq+options.calibration, 0)
-            if not r:
-                frange = self.u.get_freq_range()
-                sys.stderr.write(("\nRequested frequency (%f) out or range 
[%f, %f]\n") % \
-                                     (freq, frange.start(), frange.stop()))
-                sys.exit(1)
-
-            # if no gain was specified, use the mid-point in dB
-            if options.rx_gain is None:
-                grange = self.u.get_gain_range()
-                options.rx_gain = float(grange.start()+grange.stop())/2.0
-                print "\nNo gain specified."
-                print "Setting gain to %f (from [%f, %f])" % \
-                    (options.rx_gain, grange.start(), grange.stop())
-
-            self.u.set_gain(options.rx_gain, 0)
-
-        else:
-            # Use supplied file as source of samples
-            self.u = blocks.file_source(gr.sizeof_gr_complex, 
options.from_file)
-            if options.verbose:
-                print "Reading samples from", options.from_file
-
-        if options.log and not options.from_file:
-            usrp_sink = blocks.file_sink(gr.sizeof_gr_complex, 'usrp.dat')
-            self.connect(self.u, usrp_sink)
-
-        # Set up 22KHz-wide bandpass about center frequency. Decimate by 10
-        # to get channel rate of 25Ksps
-        taps = optfir.low_pass(1.0,   # Filter gain
-                               250e3, # Sample rate
-                               11000, # One-sided modulation bandwidth
-                               12500, # One-sided channel bandwidth
-                               0.1,   # Passband ripple
-                               60)    # Stopband attenuation
-
-       if options.verbose:
-           print "Channel filter has", len(taps), "taps."
-
-        self.chan = filter.freq_xlating_fir_filter_ccf(10,    # Decimation rate
-                                                       taps,  # Filter taps
-                                                       0.0,   # Offset 
frequency
-                                                       250e3) # Sample rate
-
-       if options.log:
-           chan_sink = blocks.file_sink(gr.sizeof_gr_complex, 'chan.dat')
-           self.connect(self.chan, chan_sink)
-
-        # FLEX protocol demodulator
-        self.flex = pager.flex_demod(queue, options.freq, options.verbose, 
options.log)
-
-        self.connect(self.u, self.chan, self.flex)
-
-    def freq_offset(self):
-       return self.flex.dc_offset()*1600
-
-    def adjust_freq(self):
-       if time.time() - self.adj_time > 1.6:   # Only do it once per FLEX frame
-           self.adj_time = time.time()
-           self.offset -= self.freq_offset()
-           self.chan.set_center_freq(self.offset)
-           if self.verbose:
-               print "Channel frequency offset (Hz):", int(self.offset)
-
-
-def get_options():
-    parser = OptionParser(option_class=eng_option)
-
-    parser.add_option('-f', '--freq', type="eng_float", default=None,
-                      help="Set receive frequency to FREQ [default=%default]",
-                      metavar="FREQ")
-    parser.add_option("-a", "--address", type="string", 
default="addr=192.168.10.2",
-                      help="Address of UHD device, [default=%default]")
-    parser.add_option("-A", "--antenna", type="string", default=None,
-                      help="select Rx Antenna where appropriate")
-    parser.add_option("", "--rx-gain", type="eng_float", default=None,
-                      help="set receive gain in dB (default is midpoint)")
-    parser.add_option("-c",   "--calibration", type="eng_float", default=0.0,
-                      help="set frequency offset to Hz", metavar="Hz")
-    parser.add_option("-v", "--verbose", action="store_true", default=False)
-    parser.add_option("-l", "--log", action="store_true", default=False,
-                      help="log flowgraph to files (LOTS of data)")
-    parser.add_option("-F", "--from-file", default=None,
-                      help="read samples from file instead of USRP")
-
-    (options, args) = parser.parse_args()
-
-    if len(args) > 0:
-       print "Run 'usrp_flex.py -h' for options."
-       sys.exit(1)
-
-    if (options.freq is None):
-        sys.stderr.write("You must specify -f FREQ or --freq FREQ\n")
-        sys.exit(1)
-
-    return (options, args)
-
-if __name__ == "__main__":
-
-    (options, args) = get_options()
-
-    # Flow graph emits pages into message queue
-    queue = gr.msg_queue()
-    tb = app_top_block(options, queue)
-    runner = pager.queue_runner(queue)
-
-    try:
-        tb.run()
-    except KeyboardInterrupt:
-        pass
-
-    runner.end()
-
diff --git a/gr-pager/apps/usrp_flex_all b/gr-pager/apps/usrp_flex_all
deleted file mode 100755
index 4d95086..0000000
--- a/gr-pager/apps/usrp_flex_all
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2006,2007,2009,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, uhd, eng_notation, pager
-from gnuradio import blocks
-from gnuradio import filter
-from gnuradio.eng_option import eng_option
-from optparse import OptionParser
-from string import split, join, printable
-import sys
-
-class app_top_block(gr.top_block):
-    def __init__(self, options, queue):
-       gr.top_block.__init__(self, "usrp_flex_all")
-
-        if options.from_file is not None:
-            self.u = blocks.file_source(gr.sizeof_gr_complex, 
options.from_file)
-            self.nchan = options.nchan
-            if options.verbose:
-                print "Reading samples from file", options.from_file
-                print "User specified file contains", options.nchan, "25 KHz 
channels."
-
-        else:
-            # Set up USRP source
-            self.u = uhd.usrp_source(device_addr=options.address, 
stream_args=uhd.stream_args('fc32'))
-
-            # Tune daughterboard
-            r = self.u.set_center_freq(options.freq+options.calibration, 0)
-            if not r:
-                frange = self.u.get_freq_range()
-                sys.stderr.write(("\nRequested frequency (%f) out or range 
[%f, %f]\n") % \
-                                     (freq, frange.start(), frange.stop()))
-                sys.exit(1)
-
-            if options.verbose:
-                print "Tuned to center frequency", 
(options.freq+options.calibration)/1e6, "MHz"
-
-            # if no gain was specified, use the mid-point in dB
-            if options.rx_gain is None:
-                grange = self.u.get_gain_range()
-                options.rx_gain = float(grange.start()+grange.stop())/2.0
-                print "\nNo gain specified."
-                print "Setting gain to %f (from [%f, %f])" % \
-                    (options.rx_gain, grange.start(), grange.stop())
-
-            self.u.set_gain(options.rx_gain, 0)
-
-            # Grab >=3 MHz of spectrum, evenly divisible by 25 KHz channels
-            # (A UHD facility to get sample rate range and granularity would 
be useful)
-
-            self.u.set_samp_rate(3.125e6) # Works if USRP is 100 Msps and can 
decimate by 32
-            rate = self.u.get_samp_rate()
-
-            if rate != 3.125e6:
-                self.u.set_samp_rate(3.2e6) # Works if USRP is 64 Msps and can 
decimate by 20
-                rate = self.u.get_samp_rate()
-                if (rate != 3.2e6):
-                    print "Unable to set required sample rate for >= 3MHz of 
25 KHz channels."
-                    sys.exit(1)
-
-            self.nchan = int(rate/25e3)
-            if options.verbose:
-                print "\nReceiving", rate/1e6, "MHz of bandwidth containing", 
self.nchan, "baseband channels."
-
-        taps = filter.firdes.low_pass(1.0,
-                                      1.0,
-                                      1.0/self.nchan*0.4,
-                                      1.0/self.nchan*0.1,
-                                      filter.firdes.WIN_HANN)
-
-        if options.verbose:
-            print "Channel filter has", len(taps), "taps"
-
-        self.bank = filter.analysis_filterbank(self.nchan, taps)
-        self.connect(self.u, self.bank)
-
-        if options.log and options.from_file == None:
-            src_sink = blocks.file_sink(gr.sizeof_gr_complex, 'usrp.dat')
-            self.connect(self.u, src_sink)
-
-        mid_chan = int(self.nchan/2)
-        for i in range(self.nchan):
-           if i < mid_chan:
-               freq = options.freq+i*25e3
-           else:
-               freq = options.freq-(self.nchan-i)*25e3
-
-           if (freq < 929.0e6 or freq > 932.0e6):
-                self.connect((self.bank, i), 
blocks.null_sink(gr.sizeof_gr_complex))
-           else:
-               self.connect((self.bank, i), pager.flex_demod(queue, freq, 
options.verbose, options.log))
-                if options.log:
-                    self.connect((self.bank, i), 
blocks.file_sink(gr.sizeof_gr_complex, 'chan_'+'%3.3f'%(freq/1e6)+'.dat'))
-
-
-def get_options():
-    parser = OptionParser(option_class=eng_option)
-
-    parser.add_option('-f', '--freq', type="eng_float", default=929.5125e6,
-                      help="Set receive frequency to FREQ [default=%default]",
-                      metavar="FREQ")
-    parser.add_option("-a", "--address", type="string", 
default="addr=192.168.10.2",
-                      help="Address of UHD device, [default=%default]")
-    parser.add_option("-A", "--antenna", type="string", default=None,
-                      help="select Rx Antenna where appropriate")
-    parser.add_option("", "--rx-gain", type="eng_float", default=None,
-                      help="set receive gain in dB (default is midpoint)")
-    parser.add_option("-c",   "--calibration", type="eng_float", default=0.0,
-                      help="set frequency offset to Hz", metavar="Hz")
-    parser.add_option("-v", "--verbose", action="store_true", default=False)
-    parser.add_option("-l", "--log", action="store_true", default=False,
-                      help="log flowgraph to files (LOTS of data)")
-    parser.add_option("-F", "--from-file", default=None,
-                      help="read samples from file instead of USRP")
-    parser.add_option("", "--nchan", type="int", default=None,
-                      help="set to number of channels in capture file", 
metavar="nchan")
-
-    (options, args) = parser.parse_args()
-
-    if len(args) > 0:
-       print "Run 'usrp_flex_all.py -h' for options."
-       sys.exit(1)
-
-    if options.nchan is None and options.from_file is not None:
-        print "You must specify the number of baseband channels with --nchan 
when reading from a file"
-        sys.exit(1)
-
-    return (options, args)
-
-
-def main():
-
-    (options, args) = get_options()
-
-    queue = gr.msg_queue()
-    tb = app_top_block(options, queue)
-    runner = pager.queue_runner(queue)
-
-    try:
-        tb.run()
-    except KeyboardInterrupt:
-        pass
-
-    runner.end()
-
-if __name__ == "__main__":
-    main()
diff --git a/gr-pager/apps/usrp_flex_band b/gr-pager/apps/usrp_flex_band
deleted file mode 100755
index 3a24d6c..0000000
--- a/gr-pager/apps/usrp_flex_band
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2006,2007,2009,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 gnuradio import gr, uhd, eng_notation, pager
-from gnuradio import blocks
-from gnuradio import filter
-from gnuradio.eng_option import eng_option
-from optparse import OptionParser
-import sys
-
-class app_top_block(gr.top_block):
-    def __init__(self, options, queue):
-       gr.top_block.__init__(self, "usrp_flex_all")
-
-        if options.from_file is not None:
-            self.u = blocks.file_source(gr.sizeof_gr_complex, 
options.from_file)
-            if options.verbose:
-                print "Reading samples from file", options.from_file
-        else:
-            # Set up USRP source
-            self.u = uhd.usrp_source(device_addr=options.address, 
stream_args=uhd.stream_args('fc32'))
-
-            # Grab 1 MHz of spectrum
-            # (A UHD facility to get sample rate range and granularity would 
be useful)
-            self.u.set_samp_rate(1e6)
-            rate = self.u.get_samp_rate()
-            if rate != 1e6:
-                print "Unable to set required sample rate of 1 Msps (got %f)" 
% rate
-                sys.exit(1)
-
-            # Tune daughterboard
-            r = self.u.set_center_freq(options.freq+options.calibration, 0)
-            if not r:
-                frange = self.u.get_freq_range()
-                sys.stderr.write(("\nRequested frequency (%f) out or range 
[%f, %f]\n") % \
-                                     (freq, frange.start(), frange.stop()))
-                sys.exit(1)
-
-            # if no gain was specified, use the mid-point in dB
-            if options.rx_gain is None:
-                grange = self.u.get_gain_range()
-                options.rx_gain = float(grange.start()+grange.stop())/2.0
-                print "\nNo gain specified."
-                print "Setting gain to %f (from [%f, %f])" % \
-                    (options.rx_gain, grange.start(), grange.stop())
-
-            self.u.set_gain(options.rx_gain, 0)
-
-
-        taps = filter.firdes.low_pass(1.0,
-                                      1.0,
-                                      1.0/40.0*0.4,
-                                      1.0/40.0*0.1,
-                                      filter.firdes.WIN_HANN)
-
-        if options.verbose:
-            print "Channel filter has", len(taps), "taps"
-
-        bank = filter.analysis_filterbank(40, taps)
-        self.connect(self.u, bank)
-
-        if options.log and options.from_file == None:
-            src_sink = blocks.file_sink(gr.sizeof_gr_complex, 'usrp.dat')
-            self.connect(self.u, src_sink)
-
-        for i in range(40):
-           if i < 20:
-               freq = options.freq+i*25e3
-           else:
-               freq = options.freq-0.5e6+(i-20)*25e3
-
-           self.connect((bank, i), pager.flex_demod(queue, freq, 
options.verbose, options.log))
-           if options.log:
-               self.connect((bank, i), blocks.file_sink(gr.sizeof_gr_complex, 
'chan_'+'%3.3f'%(freq/1e6)+'.dat'))
-
-
-def get_options():
-    parser = OptionParser(option_class=eng_option)
-
-    parser.add_option('-f', '--freq', type="eng_float", default=None,
-                      help="Set receive frequency to FREQ [default=%default]",
-                      metavar="FREQ")
-    parser.add_option("-a", "--address", type="string", 
default="addr=192.168.10.2",
-                      help="Address of UHD device, [default=%default]")
-    parser.add_option("-A", "--antenna", type="string", default=None,
-                      help="select Rx Antenna where appropriate")
-    parser.add_option("", "--rx-gain", type="eng_float", default=None,
-                      help="set receive gain in dB (default is midpoint)")
-    parser.add_option("-c",   "--calibration", type="eng_float", default=0.0,
-                      help="set frequency offset to Hz", metavar="Hz")
-    parser.add_option("-v", "--verbose", action="store_true", default=False)
-    parser.add_option("-l", "--log", action="store_true", default=False,
-                      help="log flowgraph to files (LOTS of data)")
-    parser.add_option("-F", "--from-file", default=None,
-                      help="read samples from file instead of USRP")
-
-    (options, args) = parser.parse_args()
-
-    if len(args) > 0:
-       print "Run 'usrp_flex_band.py -h' for options."
-       sys.exit(1)
-
-    if (options.freq is None):
-        sys.stderr.write("You must specify -f FREQ or --freq FREQ\n")
-        sys.exit(1)
-
-    return (options, args)
-
-
-if __name__ == "__main__":
-
-    (options, args) = get_options()
-
-    queue = gr.msg_queue()
-    tb = app_top_block(options, queue)
-    runner = pager.queue_runner(queue)
-
-    try:
-        tb.run()
-    except KeyboardInterrupt:
-        pass
-
-    runner.end()
-
-
diff --git a/gr-pager/apps/usrp_rx_flex.grc b/gr-pager/apps/usrp_rx_flex.grc
deleted file mode 100644
index e806f0d..0000000
--- a/gr-pager/apps/usrp_rx_flex.grc
+++ /dev/null
@@ -1,2840 +0,0 @@
-<?xml version='1.0' encoding='ASCII'?>
-<flow_graph>
-  <timestamp>Sat Jul 12 11:24:07 2014</timestamp>
-  <block>
-    <key>options</key>
-    <param>
-      <key>id</key>
-      <value>usrp_rx_flex</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value>USRP FLEX Pager Receiver (Single Channel)</value>
-    </param>
-    <param>
-      <key>author</key>
-      <value></value>
-    </param>
-    <param>
-      <key>description</key>
-      <value></value>
-    </param>
-    <param>
-      <key>window_size</key>
-      <value>4095,4095</value>
-    </param>
-    <param>
-      <key>generate_options</key>
-      <value>wx_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>(10, 10)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>bb_decim</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>8</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1027, 864)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>bb_interp</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>5</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(938, 862)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>ma_ntaps</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>int(channel_rate/symbol_rate)</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(850, 863)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>nchan_taps</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>len(channel_taps)</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(412, 931)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>baseband_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>16000</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1019, 17)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>channel_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>8*3200</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(792, 13)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>passband</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>2*(deviation+symbol_rate)</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(327, 930)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>config_filename</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>os.environ["HOME"]+"/.gnuradio/config.conf"</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(9, 133)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>channel_taps</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>firdes.low_pass(10, sample_rate, passband/2.0, 
(channel_rate-passband)/2.0)</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(325, 857)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>demod_k</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>3*channel_rate/(2*math.pi*deviation)</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(598, 857)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>deviation</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>4800</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(688, 14)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>channel_decim</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>int(sample_rate/channel_rate)</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(906, 12)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>symbol_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>3200</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(590, 12)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>decim</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>20</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(310, 11)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>freq</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>band_freq+(channel-61)*25e3</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(480, 11)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>sample_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>adc_rate/decim</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(382, 12)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>adc_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>64e6</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(225, 12)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>notebook</key>
-    <param>
-      <key>id</key>
-      <value>displays</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>style</key>
-      <value>wx.NB_TOP</value>
-    </param>
-    <param>
-      <key>labels</key>
-      <value>['RX Spectrum','Baseband']</value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>1, 0, 1, 5</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(9, 209)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>import</key>
-    <param>
-      <key>id</key>
-      <value>import_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>import</key>
-      <value>import os, math</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(10, 76)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_config</key>
-    <param>
-      <key>id</key>
-      <value>saved_band_freq</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>930.5125e6</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>real</value>
-    </param>
-    <param>
-      <key>config_file</key>
-      <value>config_filename</value>
-    </param>
-    <param>
-      <key>section</key>
-      <value>gr-pager</value>
-    </param>
-    <param>
-      <key>option</key>
-      <value>band_center</value>
-    </param>
-    <param>
-      <key>writeback</key>
-      <value>band_freq</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(228, 311)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_config</key>
-    <param>
-      <key>id</key>
-      <value>saved_channel</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>25</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>int</value>
-    </param>
-    <param>
-      <key>config_file</key>
-      <value>config_filename</value>
-    </param>
-    <param>
-      <key>section</key>
-      <value>gr-pager</value>
-    </param>
-    <param>
-      <key>option</key>
-      <value>channel</value>
-    </param>
-    <param>
-      <key>writeback</key>
-      <value>channel</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(387, 312)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_config</key>
-    <param>
-      <key>id</key>
-      <value>saved_offset</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>real</value>
-    </param>
-    <param>
-      <key>config_file</key>
-      <value>config_filename</value>
-    </param>
-    <param>
-      <key>section</key>
-      <value>gr-pager</value>
-    </param>
-    <param>
-      <key>option</key>
-      <value>freq_offset</value>
-    </param>
-    <param>
-      <key>writeback</key>
-      <value>offset</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(547, 312)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_config</key>
-    <param>
-      <key>id</key>
-      <value>saved_rx_gain</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>40</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>int</value>
-    </param>
-    <param>
-      <key>config_file</key>
-      <value>config_filename</value>
-    </param>
-    <param>
-      <key>section</key>
-      <value>gr-pager</value>
-    </param>
-    <param>
-      <key>option</key>
-      <value>rx_gain</value>
-    </param>
-    <param>
-      <key>writeback</key>
-      <value>rx_gain</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(706, 312)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_text_box</key>
-    <param>
-      <key>id</key>
-      <value>band_freq</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>Band Freq.</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>saved_band_freq</value>
-    </param>
-    <param>
-      <key>converver</key>
-      <value>float_converter</value>
-    </param>
-    <param>
-      <key>formatter</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>0, 0, 1, 1</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(225, 121)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_static_text</key>
-    <param>
-      <key>id</key>
-      <value>freq_text</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>Ch. Freq</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>freq</value>
-    </param>
-    <param>
-      <key>converver</key>
-      <value>float_converter</value>
-    </param>
-    <param>
-      <key>formatter</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>0, 2, 1, 1</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(801, 124)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_slider</key>
-    <param>
-      <key>id</key>
-      <value>channel</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>Channel</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>saved_channel</value>
-    </param>
-    <param>
-      <key>min</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>max</key>
-      <value>120</value>
-    </param>
-    <param>
-      <key>num_steps</key>
-      <value>119</value>
-    </param>
-    <param>
-      <key>style</key>
-      <value>wx.SL_HORIZONTAL</value>
-    </param>
-    <param>
-      <key>converver</key>
-      <value>int_converter</value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>0, 1, 1, 1</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(376, 120)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_slider</key>
-    <param>
-      <key>id</key>
-      <value>rx_gain</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>Analog Gain</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>saved_rx_gain</value>
-    </param>
-    <param>
-      <key>min</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>max</key>
-      <value>100</value>
-    </param>
-    <param>
-      <key>num_steps</key>
-      <value>100</value>
-    </param>
-    <param>
-      <key>style</key>
-      <value>wx.SL_HORIZONTAL</value>
-    </param>
-    <param>
-      <key>converver</key>
-      <value>int_converter</value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>0, 4, 1, 1</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(658, 122)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_slider</key>
-    <param>
-      <key>id</key>
-      <value>offset</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>Freq. Offset</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>saved_offset</value>
-    </param>
-    <param>
-      <key>min</key>
-      <value>-12.5e3</value>
-    </param>
-    <param>
-      <key>max</key>
-      <value>12.5e3</value>
-    </param>
-    <param>
-      <key>num_steps</key>
-      <value>100</value>
-    </param>
-    <param>
-      <key>style</key>
-      <value>wx.SL_HORIZONTAL</value>
-    </param>
-    <param>
-      <key>converver</key>
-      <value>float_converter</value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>0, 3, 1, 1</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(518, 118)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>virtual_source</key>
-    <param>
-      <key>id</key>
-      <value>virtual_source_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>stream_id</key>
-      <value>baseband</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(79, 1186)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>pager_slicer_fb</key>
-    <param>
-      <key>id</key>
-      <value>pager_slicer_fb_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>alpha</key>
-      <value>1e-6</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>(304, 1186)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>wxgui_scopesink2</key>
-    <param>
-      <key>id</key>
-      <value>wxgui_scopesink2_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value>Slicer Output</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>baseband_rate</value>
-    </param>
-    <param>
-      <key>v_scale</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>v_offset</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>t_scale</key>
-      <value>40.0/baseband_rate</value>
-    </param>
-    <param>
-      <key>ac_couple</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>xy_mode</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>num_inputs</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>win_size</key>
-      <value></value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>1,0,1,1</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value>displays, 1</value>
-    </param>
-    <param>
-      <key>trig_mode</key>
-      <value>wxgui.TRIG_MODE_AUTO</value>
-    </param>
-    <param>
-      <key>y_axis_label</key>
-      <value>Counts</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(75, 1044)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_char_to_float</key>
-    <param>
-      <key>id</key>
-      <value>blocks_char_to_float_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>scale</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(325, 1088)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
-  <block>
-    <key>pager_flex_sync</key>
-    <param>
-      <key>id</key>
-      <value>pager_flex_sync_0</value>
-    </param>
-    <param>
-      <key>_enabled</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>(529, 1139)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>pager_flex_deinterleave</key>
-    <param>
-      <key>id</key>
-      <value>pager_flex_deinterleave_0</value>
-    </param>
-    <param>
-      <key>_enabled</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>(777, 1116)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_null_sink</key>
-    <param>
-      <key>id</key>
-      <value>blocks_null_sink_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>int</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>num_inputs</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>bus_conns</key>
-      <value>[[0,],]</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1042, 1116)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>pager_flex_deinterleave</key>
-    <param>
-      <key>id</key>
-      <value>pager_flex_deinterleave_0_1_0</value>
-    </param>
-    <param>
-      <key>_enabled</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>(778, 1168)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>pager_flex_deinterleave</key>
-    <param>
-      <key>id</key>
-      <value>pager_flex_deinterleave_0_1</value>
-    </param>
-    <param>
-      <key>_enabled</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>(776, 1225)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>pager_flex_deinterleave</key>
-    <param>
-      <key>id</key>
-      <value>pager_flex_deinterleave_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</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>(776, 1273)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_null_sink</key>
-    <param>
-      <key>id</key>
-      <value>blocks_null_sink_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>int</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>num_inputs</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>bus_conns</key>
-      <value>[[0,],]</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1042, 1168)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_null_sink</key>
-    <param>
-      <key>id</key>
-      <value>blocks_null_sink_0_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>int</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>num_inputs</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>bus_conns</key>
-      <value>[[0,],]</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1041, 1225)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_null_sink</key>
-    <param>
-      <key>id</key>
-      <value>blocks_null_sink_0_2</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>int</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>num_inputs</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>bus_conns</key>
-      <value>[[0,],]</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1040, 1273)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>virtual_sink</key>
-    <param>
-      <key>id</key>
-      <value>virtual_sink_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>stream_id</key>
-      <value>baseband</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1100, 774)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>wxgui_scopesink2</key>
-    <param>
-      <key>id</key>
-      <value>wxgui_scopesink2_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value>Baseband</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>16e3</value>
-    </param>
-    <param>
-      <key>v_scale</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>v_offset</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>t_scale</key>
-      <value>40.0/16e3</value>
-    </param>
-    <param>
-      <key>ac_couple</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>xy_mode</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>num_inputs</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>win_size</key>
-      <value></value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>0, 0, 1, 1</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value>displays, 1</value>
-    </param>
-    <param>
-      <key>trig_mode</key>
-      <value>wxgui.TRIG_MODE_AUTO</value>
-    </param>
-    <param>
-      <key>y_axis_label</key>
-      <value>Counts</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(851, 586)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
-  <block>
-    <key>rational_resampler_xxx</key>
-    <param>
-      <key>id</key>
-      <value>rational_resampler_xxx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>fff</value>
-    </param>
-    <param>
-      <key>interp</key>
-      <value>bb_decim</value>
-    </param>
-    <param>
-      <key>decim</key>
-      <value>bb_interp</value>
-    </param>
-    <param>
-      <key>taps</key>
-      <value>[1.0/ma_ntaps,]*ma_ntaps*bb_interp</value>
-    </param>
-    <param>
-      <key>fbw</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>(831, 750)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>analog_quadrature_demod_cf</key>
-    <param>
-      <key>id</key>
-      <value>fm_demod</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>gain</key>
-      <value>demod_k</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>(599, 774)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>wxgui_fftsink2</key>
-    <param>
-      <key>id</key>
-      <value>wxgui_fftsink2_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value>Channel Spectrum</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>channel_rate</value>
-    </param>
-    <param>
-      <key>baseband_freq</key>
-      <value>freq</value>
-    </param>
-    <param>
-      <key>y_per_div</key>
-      <value>10</value>
-    </param>
-    <param>
-      <key>y_divs</key>
-      <value>10</value>
-    </param>
-    <param>
-      <key>ref_level</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ref_scale</key>
-      <value>65536</value>
-    </param>
-    <param>
-      <key>fft_size</key>
-      <value>1024</value>
-    </param>
-    <param>
-      <key>fft_rate</key>
-      <value>30</value>
-    </param>
-    <param>
-      <key>peak_hold</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>average</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>avg_alpha</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>win</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>win_size</key>
-      <value></value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>1, 0, 1, 1</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value>displays, 0</value>
-    </param>
-    <param>
-      <key>freqvar</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(344, 511)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
-  <block>
-    <key>wxgui_fftsink2</key>
-    <param>
-      <key>id</key>
-      <value>wxgui_fftsink2_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value>FLEX Spectrum</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>sample_rate</value>
-    </param>
-    <param>
-      <key>baseband_freq</key>
-      <value>band_freq</value>
-    </param>
-    <param>
-      <key>y_per_div</key>
-      <value>10</value>
-    </param>
-    <param>
-      <key>y_divs</key>
-      <value>10</value>
-    </param>
-    <param>
-      <key>ref_level</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ref_scale</key>
-      <value>65536</value>
-    </param>
-    <param>
-      <key>fft_size</key>
-      <value>1024</value>
-    </param>
-    <param>
-      <key>fft_rate</key>
-      <value>30</value>
-    </param>
-    <param>
-      <key>peak_hold</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>average</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>avg_alpha</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>win</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>win_size</key>
-      <value></value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>0,0,1,1</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value>displays,0</value>
-    </param>
-    <param>
-      <key>freqvar</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(34, 508)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
-  <block>
-    <key>freq_xlating_fir_filter_xxx</key>
-    <param>
-      <key>id</key>
-      <value>freq_xlating_fir_filter_xxx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>ccc</value>
-    </param>
-    <param>
-      <key>decim</key>
-      <value>channel_decim</value>
-    </param>
-    <param>
-      <key>taps</key>
-      <value>channel_taps</value>
-    </param>
-    <param>
-      <key>center_freq</key>
-      <value>band_freq-freq+offset</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>sample_rate</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>(339, 741)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>uhd_usrp_source</key>
-    <param>
-      <key>id</key>
-      <value>uhd_usrp_source_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>fc32</value>
-    </param>
-    <param>
-      <key>otw</key>
-      <value>sc16</value>
-    </param>
-    <param>
-      <key>stream_args</key>
-      <value></value>
-    </param>
-    <param>
-      <key>stream_chans</key>
-      <value>[]</value>
-    </param>
-    <param>
-      <key>dev_addr</key>
-      <value>""</value>
-    </param>
-    <param>
-      <key>dev_args</key>
-      <value>""</value>
-    </param>
-    <param>
-      <key>sync</key>
-      <value></value>
-    </param>
-    <param>
-      <key>clock_rate</key>
-      <value>0.0</value>
-    </param>
-    <param>
-      <key>num_mboards</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>clock_source0</key>
-      <value></value>
-    </param>
-    <param>
-      <key>time_source0</key>
-      <value></value>
-    </param>
-    <param>
-      <key>sd_spec0</key>
-      <value></value>
-    </param>
-    <param>
-      <key>clock_source1</key>
-      <value></value>
-    </param>
-    <param>
-      <key>time_source1</key>
-      <value></value>
-    </param>
-    <param>
-      <key>sd_spec1</key>
-      <value></value>
-    </param>
-    <param>
-      <key>clock_source2</key>
-      <value></value>
-    </param>
-    <param>
-      <key>time_source2</key>
-      <value></value>
-    </param>
-    <param>
-      <key>sd_spec2</key>
-      <value></value>
-    </param>
-    <param>
-      <key>clock_source3</key>
-      <value></value>
-    </param>
-    <param>
-      <key>time_source3</key>
-      <value></value>
-    </param>
-    <param>
-      <key>sd_spec3</key>
-      <value></value>
-    </param>
-    <param>
-      <key>clock_source4</key>
-      <value></value>
-    </param>
-    <param>
-      <key>time_source4</key>
-      <value></value>
-    </param>
-    <param>
-      <key>sd_spec4</key>
-      <value></value>
-    </param>
-    <param>
-      <key>clock_source5</key>
-      <value></value>
-    </param>
-    <param>
-      <key>time_source5</key>
-      <value></value>
-    </param>
-    <param>
-      <key>sd_spec5</key>
-      <value></value>
-    </param>
-    <param>
-      <key>clock_source6</key>
-      <value></value>
-    </param>
-    <param>
-      <key>time_source6</key>
-      <value></value>
-    </param>
-    <param>
-      <key>sd_spec6</key>
-      <value></value>
-    </param>
-    <param>
-      <key>clock_source7</key>
-      <value></value>
-    </param>
-    <param>
-      <key>time_source7</key>
-      <value></value>
-    </param>
-    <param>
-      <key>sd_spec7</key>
-      <value></value>
-    </param>
-    <param>
-      <key>nchan</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>sample_rate</value>
-    </param>
-    <param>
-      <key>center_freq0</key>
-      <value>band_freq</value>
-    </param>
-    <param>
-      <key>gain0</key>
-      <value>rx_gain</value>
-    </param>
-    <param>
-      <key>ant0</key>
-      <value>RX2</value>
-    </param>
-    <param>
-      <key>bw0</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq1</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain1</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant1</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw1</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq2</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain2</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant2</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw2</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq3</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain3</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant3</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw3</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq4</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain4</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant4</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw4</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq5</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain5</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant5</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw5</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq6</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain6</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant6</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw6</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq7</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain7</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant7</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw7</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq8</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain8</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant8</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw8</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq9</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain9</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant9</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw9</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq10</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain10</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant10</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw10</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq11</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain11</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant11</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw11</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq12</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain12</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant12</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw12</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq13</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain13</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant13</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw13</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq14</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain14</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant14</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw14</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq15</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain15</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant15</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw15</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq16</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain16</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant16</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw16</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq17</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain17</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant17</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw17</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq18</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain18</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant18</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw18</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq19</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain19</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant19</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw19</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq20</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain20</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant20</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw20</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq21</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain21</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant21</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw21</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq22</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain22</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant22</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw22</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq23</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain23</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant23</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw23</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq24</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain24</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant24</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw24</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq25</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain25</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant25</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw25</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq26</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain26</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant26</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw26</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq27</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain27</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant27</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw27</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq28</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain28</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant28</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw28</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq29</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain29</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant29</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw29</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq30</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain30</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant30</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw30</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>center_freq31</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>gain31</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ant31</key>
-      <value></value>
-    </param>
-    <param>
-      <key>bw31</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>(20, 735)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <connection>
-    <source_block_id>pager_slicer_fb_0</source_block_id>
-    <sink_block_id>pager_flex_sync_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>virtual_source_0</source_block_id>
-    <sink_block_id>pager_slicer_fb_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pager_slicer_fb_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_char_to_float_0</source_block_id>
-    <sink_block_id>wxgui_scopesink2_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pager_flex_sync_0</source_block_id>
-    <sink_block_id>pager_flex_deinterleave_0_1_0</sink_block_id>
-    <source_key>1</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pager_flex_sync_0</source_block_id>
-    <sink_block_id>pager_flex_deinterleave_0_1</sink_block_id>
-    <source_key>2</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pager_flex_sync_0</source_block_id>
-    <sink_block_id>pager_flex_deinterleave_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pager_flex_sync_0</source_block_id>
-    <sink_block_id>pager_flex_deinterleave_0_0</sink_block_id>
-    <source_key>3</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pager_flex_deinterleave_0</source_block_id>
-    <sink_block_id>blocks_null_sink_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pager_flex_deinterleave_0_1_0</source_block_id>
-    <sink_block_id>blocks_null_sink_0_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pager_flex_deinterleave_0_1</source_block_id>
-    <sink_block_id>blocks_null_sink_0_1</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pager_flex_deinterleave_0_0</source_block_id>
-    <sink_block_id>blocks_null_sink_0_2</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>fm_demod</source_block_id>
-    <sink_block_id>rational_resampler_xxx_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>rational_resampler_xxx_0</source_block_id>
-    <sink_block_id>virtual_sink_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>rational_resampler_xxx_0</source_block_id>
-    <sink_block_id>wxgui_scopesink2_0_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>freq_xlating_fir_filter_xxx_0</source_block_id>
-    <sink_block_id>fm_demod</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>freq_xlating_fir_filter_xxx_0</source_block_id>
-    <sink_block_id>wxgui_fftsink2_1</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>uhd_usrp_source_0</source_block_id>
-    <sink_block_id>wxgui_fftsink2_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>uhd_usrp_source_0</source_block_id>
-    <sink_block_id>freq_xlating_fir_filter_xxx_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-</flow_graph>
diff --git a/gr-pager/apps/usrp_rx_flex.py b/gr-pager/apps/usrp_rx_flex.py
deleted file mode 100755
index 4de4ded..0000000
--- a/gr-pager/apps/usrp_rx_flex.py
+++ /dev/null
@@ -1,435 +0,0 @@
-#!/usr/bin/env python
-##################################################
-# Gnuradio Python Flow Graph
-# Title: USRP FLEX Pager Receiver (Single Channel)
-# Generated: Thu Oct 29 11:03:16 2009
-##################################################
-
-from gnuradio import eng_notation
-from gnuradio import gr
-from gnuradio import blocks
-from gnuradio import filter
-from gnuradio import pager
-from gnuradio.eng_option import eng_option
-from gnuradio.filter import window
-from gnuradio.filter import firdes
-from gnuradio.wxgui import fftsink2
-from gnuradio.wxgui import forms
-from gnuradio.wxgui import scopesink2
-from grc_gnuradio import usrp as grc_usrp
-from grc_gnuradio import wxgui as grc_wxgui
-from optparse import OptionParser
-import ConfigParser
-import os, math
-import wx
-
-class usrp_rx_flex(grc_wxgui.top_block_gui):
-
-       def __init__(self):
-               grc_wxgui.top_block_gui.__init__(self, title="USRP FLEX Pager 
Receiver (Single Channel)")
-
-               ##################################################
-               # Variables
-               ##################################################
-               self.config_filename = config_filename = 
os.environ["HOME"]+"/.gnuradio/config.conf"
-               self.symbol_rate = symbol_rate = 3200
-               self._saved_channel_config = ConfigParser.ConfigParser()
-               self._saved_channel_config.read(config_filename)
-               try: saved_channel = 
self._saved_channel_config.getint("gr-pager", "channel")
-               except: saved_channel = 25
-               self.saved_channel = saved_channel
-               self._saved_band_freq_config = ConfigParser.ConfigParser()
-               self._saved_band_freq_config.read(config_filename)
-               try: saved_band_freq = 
self._saved_band_freq_config.getfloat("gr-pager", "band_center")
-               except: saved_band_freq = 930.5125e6
-               self.saved_band_freq = saved_band_freq
-               self.deviation = deviation = 4800
-               self.decim = decim = 20
-               self.adc_rate = adc_rate = 64e6
-               self.sample_rate = sample_rate = adc_rate/decim
-               self.passband = passband = 2*(deviation+symbol_rate)
-               self.channel_rate = channel_rate = 8*3200
-               self.channel = channel = saved_channel
-               self.band_freq = band_freq = saved_band_freq
-               self._saved_rx_gain_config = ConfigParser.ConfigParser()
-               self._saved_rx_gain_config.read(config_filename)
-               try: saved_rx_gain = 
self._saved_rx_gain_config.getint("gr-pager", "rx_gain")
-               except: saved_rx_gain = 40
-               self.saved_rx_gain = saved_rx_gain
-               self._saved_offset_config = ConfigParser.ConfigParser()
-               self._saved_offset_config.read(config_filename)
-               try: saved_offset = 
self._saved_offset_config.getfloat("gr-pager", "freq_offset")
-               except: saved_offset = 0
-               self.saved_offset = saved_offset
-               self.freq = freq = band_freq+(channel-61)*25e3
-               self.channel_taps = channel_taps = firdes.low_pass(10, 
sample_rate, passband/2.0, (channel_rate-passband)/2.0)
-               self.rx_gain = rx_gain = saved_rx_gain
-               self.offset = offset = saved_offset
-               self.nchan_taps = nchan_taps = len(channel_taps)
-               self.ma_ntaps = ma_ntaps = int(channel_rate/symbol_rate)
-               self.freq_text = freq_text = freq
-               self.demod_k = demod_k = 3*channel_rate/(2*math.pi*deviation)
-               self.channel_decim = channel_decim = 
int(sample_rate/channel_rate)
-               self.bb_interp = bb_interp = 5
-               self.bb_decim = bb_decim = 8
-               self.baseband_rate = baseband_rate = 16000
-
-               ##################################################
-               # Notebooks
-               ##################################################
-               self.displays = wx.Notebook(self.GetWin(), style=wx.NB_TOP)
-               self.displays.AddPage(grc_wxgui.Panel(self.displays), "RX 
Spectrum")
-               self.displays.AddPage(grc_wxgui.Panel(self.displays), 
"Baseband")
-               self.GridAdd(self.displays, 1, 0, 1, 5)
-
-               ##################################################
-               # Controls
-               ##################################################
-               _channel_sizer = wx.BoxSizer(wx.VERTICAL)
-               self._channel_text_box = forms.text_box(
-                       parent=self.GetWin(),
-                       sizer=_channel_sizer,
-                       value=self.channel,
-                       callback=self.set_channel,
-                       label="Channel",
-                       converter=forms.int_converter(),
-                       proportion=0,
-               )
-               self._channel_slider = forms.slider(
-                       parent=self.GetWin(),
-                       sizer=_channel_sizer,
-                       value=self.channel,
-                       callback=self.set_channel,
-                       minimum=1,
-                       maximum=120,
-                       num_steps=119,
-                       style=wx.SL_HORIZONTAL,
-                       cast=int,
-                       proportion=1,
-               )
-               self.GridAdd(_channel_sizer, 0, 1, 1, 1)
-               self._band_freq_text_box = forms.text_box(
-                       parent=self.GetWin(),
-                       value=self.band_freq,
-                       callback=self.set_band_freq,
-                       label="Band Freq.",
-                       converter=forms.float_converter(),
-               )
-               self.GridAdd(self._band_freq_text_box, 0, 0, 1, 1)
-               _rx_gain_sizer = wx.BoxSizer(wx.VERTICAL)
-               self._rx_gain_text_box = forms.text_box(
-                       parent=self.GetWin(),
-                       sizer=_rx_gain_sizer,
-                       value=self.rx_gain,
-                       callback=self.set_rx_gain,
-                       label="Analog Gain",
-                       converter=forms.int_converter(),
-                       proportion=0,
-               )
-               self._rx_gain_slider = forms.slider(
-                       parent=self.GetWin(),
-                       sizer=_rx_gain_sizer,
-                       value=self.rx_gain,
-                       callback=self.set_rx_gain,
-                       minimum=0,
-                       maximum=100,
-                       num_steps=100,
-                       style=wx.SL_HORIZONTAL,
-                       cast=int,
-                       proportion=1,
-               )
-               self.GridAdd(_rx_gain_sizer, 0, 4, 1, 1)
-               _offset_sizer = wx.BoxSizer(wx.VERTICAL)
-               self._offset_text_box = forms.text_box(
-                       parent=self.GetWin(),
-                       sizer=_offset_sizer,
-                       value=self.offset,
-                       callback=self.set_offset,
-                       label="Freq. Offset",
-                       converter=forms.float_converter(),
-                       proportion=0,
-               )
-               self._offset_slider = forms.slider(
-                       parent=self.GetWin(),
-                       sizer=_offset_sizer,
-                       value=self.offset,
-                       callback=self.set_offset,
-                       minimum=-12.5e3,
-                       maximum=12.5e3,
-                       num_steps=100,
-                       style=wx.SL_HORIZONTAL,
-                       cast=float,
-                       proportion=1,
-               )
-               self.GridAdd(_offset_sizer, 0, 3, 1, 1)
-               self._freq_text_static_text = forms.static_text(
-                       parent=self.GetWin(),
-                       value=self.freq_text,
-                       callback=self.set_freq_text,
-                       label="Ch. Freq",
-                       converter=forms.float_converter(),
-               )
-               self.GridAdd(self._freq_text_static_text, 0, 2, 1, 1)
-
-               ##################################################
-               # Blocks
-               ##################################################
-               self.fm_demod = gr.quadrature_demod_cf(demod_k)
-               self.gr_freq_xlating_fir_filter_xxx_0 = 
gr.freq_xlating_fir_filter_ccc(channel_decim, (channel_taps), 
band_freq-freq+offset, sample_rate)
-               self.blocks_null_sink_0 = blocks.null_sink(gr.sizeof_int*1)
-               self.blocks_null_sink_0_0 = blocks.null_sink(gr.sizeof_int*1)
-               self.blocks_null_sink_0_1 = blocks.null_sink(gr.sizeof_int*1)
-               self.blocks_null_sink_0_2 = blocks.null_sink(gr.sizeof_int*1)
-               self.pager_flex_deinterleave_0 = pager.flex_deinterleave()
-               self.pager_flex_deinterleave_0_0 = pager.flex_deinterleave()
-               self.pager_flex_deinterleave_0_1 = pager.flex_deinterleave()
-               self.pager_flex_deinterleave_0_1_0 = pager.flex_deinterleave()
-               self.pager_flex_sync_0 = pager.flex_sync()
-               self.pager_slicer_fb_0 = pager.slicer_fb(1e-6)
-               self.resampler = filter.rational_resampler_fff(
-                       interpolation=bb_interp,
-                       decimation=bb_decim,
-                       taps=([1.0/ma_ntaps,]*ma_ntaps*bb_interp),
-                       fractional_bw=None,
-               )
-               self.usrp_source = grc_usrp.simple_source_c(which=0, side="A", 
rx_ant="RXA")
-               self.usrp_source.set_decim_rate(decim)
-               self.usrp_source.set_frequency(band_freq, verbose=True)
-               self.usrp_source.set_gain(rx_gain)
-               self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
-                       self.displays.GetPage(0).GetWin(),
-                       baseband_freq=band_freq,
-                       y_per_div=10,
-                       y_divs=10,
-                       ref_level=0,
-                       ref_scale=65536,
-                       sample_rate=sample_rate,
-                       fft_size=1024,
-                       fft_rate=30,
-                       average=False,
-                       avg_alpha=None,
-                       title="FLEX Spectrum",
-                       peak_hold=False,
-               )
-               self.displays.GetPage(0).GridAdd(self.wxgui_fftsink2_0.win, 0, 
0, 1, 1)
-               self.wxgui_fftsink2_1 = fftsink2.fft_sink_c(
-                       self.displays.GetPage(0).GetWin(),
-                       baseband_freq=freq,
-                       y_per_div=10,
-                       y_divs=10,
-                       ref_level=0,
-                       ref_scale=65536,
-                       sample_rate=channel_rate,
-                       fft_size=1024,
-                       fft_rate=30,
-                       average=False,
-                       avg_alpha=None,
-                       title="Channel Spectrum",
-                       peak_hold=False,
-               )
-               self.displays.GetPage(0).GridAdd(self.wxgui_fftsink2_1.win, 1, 
0, 1, 1)
-               self.wxgui_scopesink2_0_0 = scopesink2.scope_sink_f(
-                       self.displays.GetPage(1).GetWin(),
-                       title="Baseband",
-                       sample_rate=16e3,
-                       v_scale=1,
-                       v_offset=0,
-                       t_scale=40.0/16e3,
-                       ac_couple=False,
-                       xy_mode=False,
-                       num_inputs=1,
-               )
-               self.displays.GetPage(1).GridAdd(self.wxgui_scopesink2_0_0.win, 
0, 0, 1, 1)
-
-               ##################################################
-               # Connections
-               ##################################################
-               self.connect((self.gr_freq_xlating_fir_filter_xxx_0, 0), 
(self.wxgui_fftsink2_1, 0))
-               self.connect((self.usrp_source, 0), 
(self.gr_freq_xlating_fir_filter_xxx_0, 0))
-               self.connect((self.usrp_source, 0), (self.wxgui_fftsink2_0, 0))
-               self.connect((self.gr_freq_xlating_fir_filter_xxx_0, 0), 
(self.fm_demod, 0))
-               self.connect((self.resampler, 0), (self.wxgui_scopesink2_0_0, 
0))
-               self.connect((self.fm_demod, 0), (self.resampler, 0))
-               self.connect((self.pager_slicer_fb_0, 0), 
(self.pager_flex_sync_0, 0))
-               self.connect((self.resampler, 0), (self.pager_slicer_fb_0, 0))
-               self.connect((self.pager_flex_sync_0, 1), 
(self.pager_flex_deinterleave_0_1_0, 0))
-               self.connect((self.pager_flex_sync_0, 2), 
(self.pager_flex_deinterleave_0_1, 0))
-               self.connect((self.pager_flex_sync_0, 0), 
(self.pager_flex_deinterleave_0, 0))
-               self.connect((self.pager_flex_sync_0, 3), 
(self.pager_flex_deinterleave_0_0, 0))
-               self.connect((self.pager_flex_deinterleave_0, 0), 
(self.blocks_null_sink_0, 0))
-               self.connect((self.pager_flex_deinterleave_0_1_0, 0), 
(self.blocks_null_sink_0_0, 0))
-               self.connect((self.pager_flex_deinterleave_0_1, 0), 
(self.blocks_null_sink_0_1, 0))
-               self.connect((self.pager_flex_deinterleave_0_0, 0), 
(self.blocks_null_sink_0_2, 0))
-
-       def set_config_filename(self, config_filename):
-               self.config_filename = config_filename
-               self._saved_band_freq_config = ConfigParser.ConfigParser()
-               self._saved_band_freq_config.read(self.config_filename)
-               if not self._saved_band_freq_config.has_section("gr-pager"):
-                       self._saved_band_freq_config.add_section("gr-pager")
-               self._saved_band_freq_config.set("gr-pager", "band_center", 
str(self.band_freq))
-               self._saved_band_freq_config.write(open(self.config_filename, 
'w'))
-               self._saved_channel_config = ConfigParser.ConfigParser()
-               self._saved_channel_config.read(self.config_filename)
-               if not self._saved_channel_config.has_section("gr-pager"):
-                       self._saved_channel_config.add_section("gr-pager")
-               self._saved_channel_config.set("gr-pager", "channel", 
str(self.channel))
-               self._saved_channel_config.write(open(self.config_filename, 
'w'))
-               self._saved_offset_config = ConfigParser.ConfigParser()
-               self._saved_offset_config.read(self.config_filename)
-               if not self._saved_offset_config.has_section("gr-pager"):
-                       self._saved_offset_config.add_section("gr-pager")
-               self._saved_offset_config.set("gr-pager", "freq_offset", 
str(self.offset))
-               self._saved_offset_config.write(open(self.config_filename, 'w'))
-               self._saved_rx_gain_config = ConfigParser.ConfigParser()
-               self._saved_rx_gain_config.read(self.config_filename)
-               if not self._saved_rx_gain_config.has_section("gr-pager"):
-                       self._saved_rx_gain_config.add_section("gr-pager")
-               self._saved_rx_gain_config.set("gr-pager", "rx_gain", 
str(self.rx_gain))
-               self._saved_rx_gain_config.write(open(self.config_filename, 
'w'))
-
-       def set_symbol_rate(self, symbol_rate):
-               self.symbol_rate = symbol_rate
-               self.set_passband(2*(self.deviation+self.symbol_rate))
-               self.set_ma_ntaps(int(self.channel_rate/self.symbol_rate))
-
-       def set_saved_channel(self, saved_channel):
-               self.saved_channel = saved_channel
-               self.set_channel(self.saved_channel)
-
-       def set_saved_band_freq(self, saved_band_freq):
-               self.saved_band_freq = saved_band_freq
-               self.set_band_freq(self.saved_band_freq)
-
-       def set_deviation(self, deviation):
-               self.deviation = deviation
-               self.set_demod_k(3*self.channel_rate/(2*math.pi*self.deviation))
-               self.set_passband(2*(self.deviation+self.symbol_rate))
-
-       def set_decim(self, decim):
-               self.decim = decim
-               self.set_sample_rate(self.adc_rate/self.decim)
-               self.usrp_source.set_decim_rate(self.decim)
-
-       def set_adc_rate(self, adc_rate):
-               self.adc_rate = adc_rate
-               self.set_sample_rate(self.adc_rate/self.decim)
-
-       def set_sample_rate(self, sample_rate):
-               self.sample_rate = sample_rate
-               self.wxgui_fftsink2_0.set_sample_rate(self.sample_rate)
-               self.set_channel_decim(int(self.sample_rate/self.channel_rate))
-               self.set_channel_taps(firdes.low_pass(10, self.sample_rate, 
self.passband/2.0, (self.channel_rate-self.passband)/2.0))
-
-       def set_passband(self, passband):
-               self.passband = passband
-               self.set_channel_taps(firdes.low_pass(10, self.sample_rate, 
self.passband/2.0, (self.channel_rate-self.passband)/2.0))
-
-       def set_channel_rate(self, channel_rate):
-               self.channel_rate = channel_rate
-               self.wxgui_fftsink2_1.set_sample_rate(self.channel_rate)
-               self.set_channel_decim(int(self.sample_rate/self.channel_rate))
-               self.set_demod_k(3*self.channel_rate/(2*math.pi*self.deviation))
-               self.set_channel_taps(firdes.low_pass(10, self.sample_rate, 
self.passband/2.0, (self.channel_rate-self.passband)/2.0))
-               self.set_ma_ntaps(int(self.channel_rate/self.symbol_rate))
-
-       def set_channel(self, channel):
-               self.channel = channel
-               self.set_freq(self.band_freq+(self.channel-61)*25e3)
-               self._saved_channel_config = ConfigParser.ConfigParser()
-               self._saved_channel_config.read(self.config_filename)
-               if not self._saved_channel_config.has_section("gr-pager"):
-                       self._saved_channel_config.add_section("gr-pager")
-               self._saved_channel_config.set("gr-pager", "channel", 
str(self.channel))
-               self._saved_channel_config.write(open(self.config_filename, 
'w'))
-               self._channel_slider.set_value(self.channel)
-               self._channel_text_box.set_value(self.channel)
-
-       def set_band_freq(self, band_freq):
-               self.band_freq = band_freq
-               self.set_freq(self.band_freq+(self.channel-61)*25e3)
-               self.wxgui_fftsink2_0.set_baseband_freq(self.band_freq)
-               self.usrp_source.set_frequency(self.band_freq)
-               
self.gr_freq_xlating_fir_filter_xxx_0.set_center_freq(self.band_freq-self.freq+self.offset)
-               self._saved_band_freq_config = ConfigParser.ConfigParser()
-               self._saved_band_freq_config.read(self.config_filename)
-               if not self._saved_band_freq_config.has_section("gr-pager"):
-                       self._saved_band_freq_config.add_section("gr-pager")
-               self._saved_band_freq_config.set("gr-pager", "band_center", 
str(self.band_freq))
-               self._saved_band_freq_config.write(open(self.config_filename, 
'w'))
-               self._band_freq_text_box.set_value(self.band_freq)
-
-       def set_saved_rx_gain(self, saved_rx_gain):
-               self.saved_rx_gain = saved_rx_gain
-               self.set_rx_gain(self.saved_rx_gain)
-
-       def set_saved_offset(self, saved_offset):
-               self.saved_offset = saved_offset
-               self.set_offset(self.saved_offset)
-
-       def set_freq(self, freq):
-               self.freq = freq
-               
self.gr_freq_xlating_fir_filter_xxx_0.set_center_freq(self.band_freq-self.freq+self.offset)
-               self.wxgui_fftsink2_1.set_baseband_freq(self.freq)
-               self.set_freq_text(self.freq)
-
-       def set_channel_taps(self, channel_taps):
-               self.channel_taps = channel_taps
-               
self.gr_freq_xlating_fir_filter_xxx_0.set_taps((self.channel_taps))
-               self.set_nchan_taps(len(self.channel_taps))
-
-       def set_rx_gain(self, rx_gain):
-               self.rx_gain = rx_gain
-               self.usrp_source.set_gain(self.rx_gain)
-               self._saved_rx_gain_config = ConfigParser.ConfigParser()
-               self._saved_rx_gain_config.read(self.config_filename)
-               if not self._saved_rx_gain_config.has_section("gr-pager"):
-                       self._saved_rx_gain_config.add_section("gr-pager")
-               self._saved_rx_gain_config.set("gr-pager", "rx_gain", 
str(self.rx_gain))
-               self._saved_rx_gain_config.write(open(self.config_filename, 
'w'))
-               self._rx_gain_slider.set_value(self.rx_gain)
-               self._rx_gain_text_box.set_value(self.rx_gain)
-
-       def set_offset(self, offset):
-               self.offset = offset
-               
self.gr_freq_xlating_fir_filter_xxx_0.set_center_freq(self.band_freq-self.freq+self.offset)
-               self._saved_offset_config = ConfigParser.ConfigParser()
-               self._saved_offset_config.read(self.config_filename)
-               if not self._saved_offset_config.has_section("gr-pager"):
-                       self._saved_offset_config.add_section("gr-pager")
-               self._saved_offset_config.set("gr-pager", "freq_offset", 
str(self.offset))
-               self._saved_offset_config.write(open(self.config_filename, 'w'))
-               self._offset_slider.set_value(self.offset)
-               self._offset_text_box.set_value(self.offset)
-
-       def set_nchan_taps(self, nchan_taps):
-               self.nchan_taps = nchan_taps
-
-       def set_ma_ntaps(self, ma_ntaps):
-               self.ma_ntaps = ma_ntaps
-
-       def set_freq_text(self, freq_text):
-               self.freq_text = freq_text
-               self._freq_text_static_text.set_value(self.freq_text)
-
-       def set_demod_k(self, demod_k):
-               self.demod_k = demod_k
-
-       def set_channel_decim(self, channel_decim):
-               self.channel_decim = channel_decim
-
-       def set_bb_interp(self, bb_interp):
-               self.bb_interp = bb_interp
-
-       def set_bb_decim(self, bb_decim):
-               self.bb_decim = bb_decim
-
-       def set_baseband_rate(self, baseband_rate):
-               self.baseband_rate = baseband_rate
-
-if __name__ == '__main__':
-       parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
-       (options, args) = parser.parse_args()
-       tb = usrp_rx_flex()
-       tb.Run(True)
-
diff --git a/gr-pager/gnuradio-pager.pc.in b/gr-pager/gnuradio-pager.pc.in
deleted file mode 100644
index 42fce74..0000000
--- a/gr-pager/gnuradio-pager.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
-
-Name: gnuradio-pager
-Description: GNU Radio blocks implementing a FLEX pager decoder
-Requires: gnuradio-runtime
-Version: @LIBVER@
-Libs: -L${libdir} -lgnuradio-pager
-Cflags: -I${includedir}
diff --git a/gr-pager/grc/CMakeLists.txt b/gr-pager/grc/CMakeLists.txt
deleted file mode 100644
index c982995..0000000
--- a/gr-pager/grc/CMakeLists.txt
+++ /dev/null
@@ -1,26 +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.
-
-install(FILES
-    pager_slicer_fb.xml
-    pager_flex_sync.xml
-    pager_flex_deinterleave.xml
-    DESTINATION ${GRC_BLOCKS_DIR}
-    COMPONENT "pager_python"
-)
diff --git a/gr-pager/grc/pager_flex_deinterleave.xml 
b/gr-pager/grc/pager_flex_deinterleave.xml
deleted file mode 100644
index a006023..0000000
--- a/gr-pager/grc/pager_flex_deinterleave.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## FLEX Pager Deinterleaver
-###################################################
- -->
-<block>
-       <name>FLEX Deinterleave</name>
-       <key>pager_flex_deinterleave</key>
-       <category>[Core]/Pager</category>
-       <import>from gnuradio import pager</import>
-       <make>pager.flex_deinterleave()</make>
-
-       <sink>
-               <name>bits</name>
-               <type>byte</type>
-       </sink>
-
-       <source>
-               <name>codes</name>
-               <type>int</type>
-       </source>
-</block>
diff --git a/gr-pager/grc/pager_flex_sync.xml b/gr-pager/grc/pager_flex_sync.xml
deleted file mode 100644
index d37a4fb..0000000
--- a/gr-pager/grc/pager_flex_sync.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## FLEX Pager Synchronizer
-###################################################
- -->
-<block>
-       <name>FLEX Synchronizer</name>
-       <key>pager_flex_sync</key>
-       <category>[Core]/Pager</category>
-       <import>from gnuradio import pager</import>
-       <make>pager.flex_sync()</make>
-
-       <sink>
-               <name>dibits</name>
-               <type>byte</type>
-       </sink>
-
-       <source>
-               <name>A</name>
-               <type>byte</type>
-       </source>
-       <source>
-               <name>B</name>
-               <type>byte</type>
-       </source>
-       <source>
-               <name>C</name>
-               <type>byte</type>
-       </source>
-       <source>
-               <name>D</name>
-               <type>byte</type>
-       </source>
-
-</block>
diff --git a/gr-pager/grc/pager_slicer_fb.xml b/gr-pager/grc/pager_slicer_fb.xml
deleted file mode 100644
index f3e95e0..0000000
--- a/gr-pager/grc/pager_slicer_fb.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-## FLEX Pager Slicer w/DC offset removal
-###################################################
- -->
-<block>
-       <name>4-Level Slicer/DCR</name>
-       <key>pager_slicer_fb</key>
-       <category>[Core]/Pager</category>
-       <import>from gnuradio import pager</import>
-       <make>pager.slicer_fb($alpha)</make>
-
-       <param>
-               <name>Alpha</name>
-               <key>alpha</key>
-               <value>1e-6</value>
-               <type>real</type>
-       </param>
-
-       <sink>
-               <name>bb</name>
-               <type>float</type>
-       </sink>
-
-       <source>
-               <name>dibits</name>
-               <type>byte</type>
-       </source>
-
-</block>
diff --git a/gr-pager/include/gnuradio/pager/CMakeLists.txt 
b/gr-pager/include/gnuradio/pager/CMakeLists.txt
deleted file mode 100644
index 6577e7f..0000000
--- a/gr-pager/include/gnuradio/pager/CMakeLists.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 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.
-
-########################################################################
-# Install header files
-########################################################################
-install(FILES
-    api.h
-    flex_frame.h
-    slicer_fb.h
-    flex_deinterleave.h
-    flex_parse.h
-    flex_sync.h
-    DESTINATION ${GR_INCLUDE_DIR}/gnuradio/pager
-    COMPONENT "pager_devel"
-)
diff --git a/gr-pager/include/gnuradio/pager/api.h 
b/gr-pager/include/gnuradio/pager/api.h
deleted file mode 100644
index 3d76e67..0000000
--- a/gr-pager/include/gnuradio/pager/api.h
+++ /dev/null
@@ -1,33 +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.
- */
-
-#ifndef INCLUDED_PAGER_API_H
-#define INCLUDED_PAGER_API_H
-
-#include <gnuradio/attributes.h>
-
-#ifdef gnuradio_pager_EXPORTS
-#  define PAGER_API __GR_ATTR_EXPORT
-#else
-#  define PAGER_API __GR_ATTR_IMPORT
-#endif
-
-#endif /* INCLUDED_PAGER_API_H */
diff --git a/gr-pager/include/gnuradio/pager/flex_deinterleave.h 
b/gr-pager/include/gnuradio/pager/flex_deinterleave.h
deleted file mode 100644
index 224bc29..0000000
--- a/gr-pager/include/gnuradio/pager/flex_deinterleave.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_DEINTERLEAVE_H
-#define INCLUDED_PAGER_FLEX_DEINTERLEAVE_H
-
-#include <gnuradio/pager/api.h>
-#include <gnuradio/sync_decimator.h>
-
-namespace gr {
-  namespace pager {
-
-    /*!
-     * \brief flex deinterleave description
-     * \ingroup pager_blk
-     */
-    class PAGER_API flex_deinterleave : virtual public sync_decimator
-    {
-    public:
-      // gr::pager::flex_deinterleave::sptr
-      typedef boost::shared_ptr<flex_deinterleave> sptr;
-
-      /*!
-       * \brief Make flex deinterleaver
-       */
-      static sptr make();
-    };
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_DEINTERLEAVE_H */
diff --git a/gr-pager/include/gnuradio/pager/flex_frame.h 
b/gr-pager/include/gnuradio/pager/flex_frame.h
deleted file mode 100644
index 6e19f41..0000000
--- a/gr-pager/include/gnuradio/pager/flex_frame.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_FRAME_H
-#define INCLUDED_PAGER_FLEX_FRAME_H
-
-#include <gnuradio/pager/api.h>
-#include <boost/shared_ptr.hpp>
-
-namespace gr {
-  namespace pager {
-
-    /*!
-     * \brief flex_frame.
-     * \ingroup pager_blk
-     */
-    class PAGER_API flex_frame
-    {
-    public:
-      // gr::pager::flex_frame::sptr
-      typedef boost::shared_ptr<flex_frame> sptr;
-
-      static sptr make();
-    };
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_FRAME_H */
diff --git a/gr-pager/include/gnuradio/pager/flex_parse.h 
b/gr-pager/include/gnuradio/pager/flex_parse.h
deleted file mode 100644
index 42adaff..0000000
--- a/gr-pager/include/gnuradio/pager/flex_parse.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_PARSE_H
-#define INCLUDED_PAGER_FLEX_PARSE_H
-
-#include <gnuradio/pager/api.h>
-#include <gnuradio/sync_block.h>
-#include <gnuradio/msg_queue.h>
-#include <sstream>
-
-namespace gr {
-  namespace pager {
-
-#define FIELD_DELIM ((unsigned char)128)
-
-    /*!
-     * \brief flex parse description
-     * \ingroup pager_blk
-     */
-    class PAGER_API flex_parse : virtual public sync_block
-    {
-    public:
-      // gr::pager::flex_parse::sptr
-      typedef boost::shared_ptr<flex_parse> sptr;
-
-      static sptr make(msg_queue::sptr queue, float freq);
-    };
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_PARSE_H */
diff --git a/gr-pager/include/gnuradio/pager/flex_sync.h 
b/gr-pager/include/gnuradio/pager/flex_sync.h
deleted file mode 100644
index 54c3d82..0000000
--- a/gr-pager/include/gnuradio/pager/flex_sync.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_SYNC_H
-#define INCLUDED_PAGER_FLEX_SYNC_H
-
-#include <gnuradio/pager/api.h>
-#include <gnuradio/block.h>
-
-namespace gr {
-  namespace pager {
-
-    /*!
-     * \brief flex sync description
-     * \ingroup pager_blk
-     */
-    class PAGER_API flex_sync : virtual public block
-    {
-    public:
-      // gr::pager::flex_sync::sptr
-      typedef boost::shared_ptr<flex_sync> sptr;
-
-      static sptr make();
-
-    };
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_SYNC_H */
diff --git a/gr-pager/include/gnuradio/pager/slicer_fb.h 
b/gr-pager/include/gnuradio/pager/slicer_fb.h
deleted file mode 100644
index 478c2b0..0000000
--- a/gr-pager/include/gnuradio/pager/slicer_fb.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2007,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_SLICER_FB_H
-#define INCLUDED_PAGER_SLICER_FB_H
-
-#include <gnuradio/pager/api.h>
-#include <gnuradio/sync_block.h>
-
-namespace gr {
-  namespace pager {
-
-    /*!
-     * \brief slicer description
-     * \ingroup pager_blk
-     */
-    class PAGER_API slicer_fb : virtual public sync_block
-    {
-    public:
-      // gr::pager::slicer_fb::sptr
-      typedef boost::shared_ptr<slicer_fb> sptr;
-
-      /*!
-       * \brief Make a pager slicer
-       */
-      static sptr make(float alpha);
-
-      virtual float dc_offset() const = 0;
-    };
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_SLICER_FB_H */
diff --git a/gr-pager/lib/CMakeLists.txt b/gr-pager/lib/CMakeLists.txt
deleted file mode 100644
index 4a8c91c..0000000
--- a/gr-pager/lib/CMakeLists.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2011,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.
-
-########################################################################
-# Setup the include and linker paths
-########################################################################
-include_directories(
-    ${GR_PAGER_INCLUDE_DIRS}
-    ${GR_BLOCKS_INCLUDE_DIRS}
-    ${GNURADIO_RUNTIME_INCLUDE_DIRS}
-    ${Boost_INCLUDE_DIRS}
-)
-
-if(ENABLE_GR_CTRLPORT)
-  ADD_DEFINITIONS(-DGR_CTRLPORT)
-endif(ENABLE_GR_CTRLPORT)
-
-link_directories(${Boost_LIBRARY_DIRS})
-
-include_directories(${LOG4CPP_INCLUDE_DIRS})
-link_directories(${LOG4CPP_LIBRARY_DIRS})
-
-########################################################################
-# Setup library
-########################################################################
-list(APPEND pager_sources
-    flex_deinterleave_impl.cc
-    flex_frame_impl.cc
-    flex_parse_impl.cc
-    flex_sync_impl.cc
-    slicer_fb_impl.cc
-    bch3221.cc
-    flex_modes.cc
-    util.cc
-)
-
-#Add Windows DLL resource file if using MSVC
-if(MSVC)
-    include(${CMAKE_SOURCE_DIR}/cmake/Modules/GrVersion.cmake)
-
-    configure_file(
-        ${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-pager.rc.in
-        ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-pager.rc
-    @ONLY)
-
-    list(APPEND gr_pager_sources
-        ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-pager.rc
-    )
-endif(MSVC)
-
-list(APPEND pager_libs
-    gnuradio-runtime
-    gnuradio-blocks
-    ${Boost_LIBRARIES}
-    ${LOG4CPP_LIBRARIES}
-)
-
-add_library(gnuradio-pager SHARED ${pager_sources})
-target_link_libraries(gnuradio-pager ${pager_libs})
-GR_LIBRARY_FOO(gnuradio-pager RUNTIME_COMPONENT "pager_runtime" 
DEVEL_COMPONENT "pager_devel")
-
-if(ENABLE_STATIC_LIBS)
-  if(ENABLE_GR_CTRLPORT)
-    # Remove GR_CTRLPORT set this target's definitions.
-    # Makes sure we don't try to use ControlPort stuff in source files
-    GET_DIRECTORY_PROPERTY(STATIC_DEFS COMPILE_DEFINITIONS)
-    list(REMOVE_ITEM STATIC_DEFS "GR_CTRLPORT")
-    SET_PROPERTY(DIRECTORY PROPERTY COMPILE_DEFINITIONS "${STATIC_DEFS}")
-
-    # readd it to the target since we removed it from the directory-wide list.
-    SET_PROPERTY(TARGET gnuradio-pager APPEND PROPERTY COMPILE_DEFINITIONS 
"GR_CTRLPORT")
-  endif(ENABLE_GR_CTRLPORT)
-
-  add_library(gnuradio-pager_static STATIC ${pager_sources})
-
-  if(NOT WIN32)
-    set_target_properties(gnuradio-pager_static
-      PROPERTIES OUTPUT_NAME gnuradio-pager)
-  endif(NOT WIN32)
-
-  install(TARGETS gnuradio-pager_static
-    ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "pager_devel"   # .lib file
-    )
-endif(ENABLE_STATIC_LIBS)
diff --git a/gr-pager/lib/bch3221.cc b/gr-pager/lib/bch3221.cc
deleted file mode 100644
index 4672261..0000000
--- a/gr-pager/lib/bch3221.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "bch3221.h"
-
-namespace gr {
-  namespace pager {
-
-    // Corrects supplied data word according to BCH3221 encoding and
-    // returns the number of errors detected/corrected.
-    //
-    // Not implemented yet
-
-    int bch3221(int &data)
-    {
-      return 0;
-    }
-
-  } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/bch3221.h b/gr-pager/lib/bch3221.h
deleted file mode 100644
index 24f39e3..0000000
--- a/gr-pager/lib/bch3221.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_BCH3221_H
-#define INCLUDED_PAGER_BCH3221_H
-
-namespace gr {
-  namespace pager {
-
-    // Perform BCH (32,21) error correction on supplied data
-    // Return number of errors found/corrected (0, 1, or 2)
-    int bch3221(int &data);
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_BCH3221_H */
diff --git a/gr-pager/lib/flex_deinterleave_impl.cc 
b/gr-pager/lib/flex_deinterleave_impl.cc
deleted file mode 100644
index 08ced37..0000000
--- a/gr-pager/lib/flex_deinterleave_impl.cc
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2006,2010,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "flex_deinterleave_impl.h"
-#include "bch3221.h"
-#include "util.h"
-#include <gnuradio/io_signature.h>
-
-namespace gr {
-  namespace pager {
-
-    flex_deinterleave::sptr
-    flex_deinterleave::make()
-    {
-      return gnuradio::get_initial_sptr
-       (new flex_deinterleave_impl());
-    }
-
-    flex_deinterleave_impl::flex_deinterleave_impl() :
-      sync_decimator("flex_deinterleave",
-                       io_signature::make(1, 1, sizeof(unsigned char)),
-                       io_signature::make(1, 1, sizeof(int)), 32)
-    {
-      set_output_multiple(8); // One FLEX block at a time
-    }
-
-    flex_deinterleave_impl::~flex_deinterleave_impl()
-    {
-    }
-
-    int flex_deinterleave_impl::work(int noutput_items,
-                                    gr_vector_const_void_star &input_items,
-                                    gr_vector_void_star &output_items)
-    {
-      const unsigned char *in = (const unsigned char *)input_items[0];
-      int *out = (int *)output_items[0];
-
-      // FLEX codewords are interleaved in blocks of 256 bits or 8, 32
-      // bit codes.  To deinterleave we parcel each incoming bit into
-      // the MSB of each codeword, then switch to MSB-1, etc.  This is
-      // done by shifting in the bits from the right on each codeword
-      // as the bits come in. When we are done we have a FLEX block of
-      // eight codewords, ready for conversion to data words.
-      //
-      // FLEX data words are recovered by reversing the bit order of
-      // the code word, masking off the (reversed) ECC, and inverting
-      // the remainder of the bits (!).
-      //
-      // The data portion of a FLEX frame consists of 11 of these
-      // deinterleaved and converted blocks.
-      //
-      // set_output_multiple garauntees we have output space for at
-      // least eight data words, and 256 bits are supplied on input
-
-      int i, j;
-      for(i = 0; i < 32; i++) {
-       for(j = 0; j < 8; j++) {
-         d_codewords[j] <<= 1;
-         d_codewords[j]  |= *in++;
-       }
-      }
-
-      // Now convert code words into data words
-      for(j = 0; j < 8; j++) {
-       int codeword = d_codewords[j];
-
-       // Apply BCH 32,21 error correction
-       // TODO: mark dataword when codeword fails ECC
-       bch3221(codeword);
-
-       // Reverse bit order
-       codeword = reverse_bits32(codeword);
-
-       // Mask off ECC then invert lower 21 bits
-       codeword = (codeword & 0x001FFFFF)^0x001FFFFF;
-
-       *out++ = codeword;
-      }
-
-      return j;
-    }
-
-  } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/flex_deinterleave_impl.h 
b/gr-pager/lib/flex_deinterleave_impl.h
deleted file mode 100644
index 79aabf4..0000000
--- a/gr-pager/lib/flex_deinterleave_impl.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_DEINTERLEAVE_IMPL_H
-#define INCLUDED_PAGER_FLEX_DEINTERLEAVE_IMPL_H
-
-#include <gnuradio/pager/flex_deinterleave.h>
-#include <gnuradio/sync_decimator.h>
-
-namespace gr {
-  namespace pager {
-
-    /*!
-     * \brief flex deinterleave description
-     * \ingroup pager_blk
-     */
-    class flex_deinterleave_impl : public flex_deinterleave
-    {
-    private:
-      // One FLEX block of deinterleaved data
-      int d_codewords[8];
-
-    public:
-      flex_deinterleave_impl();
-      ~flex_deinterleave_impl();
-
-      int work(int noutput_items,
-              gr_vector_const_void_star &input_items,
-              gr_vector_void_star &output_items);
-    };
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_DEINTERLEAVE_IMPL_H */
diff --git a/gr-pager/lib/flex_frame_impl.cc b/gr-pager/lib/flex_frame_impl.cc
deleted file mode 100644
index 869a03c..0000000
--- a/gr-pager/lib/flex_frame_impl.cc
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "flex_frame_impl.h"
-
-namespace gr {
-  namespace pager {
-
-    flex_frame::sptr
-    flex_frame::make()
-    {
-      return flex_frame::sptr
-       (new flex_frame_impl());
-    }
-
-    flex_frame_impl::flex_frame_impl()
-    {
-    }
-
-    flex_frame_impl::~flex_frame_impl()
-    {
-    }
-
-  } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/flex_frame_impl.h b/gr-pager/lib/flex_frame_impl.h
deleted file mode 100644
index e7d1139..0000000
--- a/gr-pager/lib/flex_frame_impl.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_FRAME_IMPL_H
-#define INCLUDED_PAGER_FLEX_FRAME_IMPL_H
-
-#include <gnuradio/pager/flex_frame.h>
-
-namespace gr {
-  namespace pager {
-
-    class flex_frame_impl : public flex_frame
-    {
-    public:
-      flex_frame_impl();
-      ~flex_frame_impl();
-    };
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_FRAME_IMPL_H */
diff --git a/gr-pager/lib/flex_modes.cc b/gr-pager/lib/flex_modes.cc
deleted file mode 100644
index 333883f..0000000
--- a/gr-pager/lib/flex_modes.cc
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2007,2012 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 "flex_modes.h"
-
-namespace gr {
-  namespace pager {
-
-    const flex_mode_t
-    flex_modes[] =
-      {
-       { (int32_t) 0x870C78F3, 1600, 2 },
-       { (int32_t) 0xB0684F97, 1600, 4 },
-       { (int32_t) 0x7B1884E7, 3200, 2 },
-       { (int32_t) 0xDEA0215F, 3200, 4 },
-       { (int32_t) 0x4C7CB383, 3200, 4 }
-      };
-
-    const int num_flex_modes = sizeof(flex_modes)/sizeof(flex_modes[0]);
-
-    unsigned char flex_bcd[17] = "0123456789 U -][";
-
-    const char *flex_page_desc[] =
-      {
-       "ENC",
-       "UNK",
-       "TON",
-       "NUM",
-       "SPN",
-       "ALN",
-       "BIN",
-       "NNM"
-      };
-
-    int
-    find_flex_mode(int32_t sync_code)
-    {
-      for(int i = 0; i < num_flex_modes; i++)
-       if(flex_modes[i].sync == sync_code)
-         return i;
-
-      // Not found
-      return -1;
-    }
-
-  } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/flex_modes.h b/gr-pager/lib/flex_modes.h
deleted file mode 100644
index 9cb06ff..0000000
--- a/gr-pager/lib/flex_modes.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2007,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_MODES_H
-#define INCLUDED_PAGER_FLEX_MODES_H
-
-#include <stdint.h>
-
-namespace gr {
-  namespace pager {
-
-#define FLEX_SYNC_MARKER 0xA6C6AAAA
-
-    typedef struct flex_mode
-    {
-      int32_t     sync;          // Outer synchronization code
-      unsigned int baud;          // Baudrate of SYNC2 and DATA
-      unsigned int levels;        // FSK encoding of SYNC2 and DATA
-    } flex_mode_t;
-
-    extern const flex_mode_t flex_modes[];
-    extern const char *flex_page_desc[];
-    extern const int num_flex_modes;
-    int find_flex_mode(int32_t sync_code);
-    extern unsigned char flex_bcd[];
-
-    typedef enum {
-      FLEX_SECURE,
-      FLEX_UNKNOWN,
-      FLEX_TONE,
-      FLEX_STANDARD_NUMERIC,
-      FLEX_SPECIAL_NUMERIC,
-      FLEX_ALPHANUMERIC,
-      FLEX_BINARY,
-      FLEX_NUMBERED_NUMERIC,
-      NUM_FLEX_PAGE_TYPES
-    } page_type_t;
-
-    inline bool is_alphanumeric_page(page_type_t type)
-    {
-      return (type == FLEX_ALPHANUMERIC ||
-             type == FLEX_SECURE);
-    }
-
-    inline bool is_numeric_page(page_type_t type)
-    {
-      return (type == FLEX_STANDARD_NUMERIC ||
-             type == FLEX_SPECIAL_NUMERIC  ||
-             type == FLEX_NUMBERED_NUMERIC);
-    }
-
-    inline bool is_tone_page(page_type_t type)
-    {
-      return (type == FLEX_TONE);
-    }
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif // INCLUDED_PAGER_FLEX_MODES_H
diff --git a/gr-pager/lib/flex_parse_impl.cc b/gr-pager/lib/flex_parse_impl.cc
deleted file mode 100644
index 80123da..0000000
--- a/gr-pager/lib/flex_parse_impl.cc
+++ /dev/null
@@ -1,258 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2006,2007,2010,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "flex_parse_impl.h"
-#include "bch3221.h"
-#include <gnuradio/io_signature.h>
-#include <ctype.h>
-#include <iostream>
-#include <iomanip>
-
-namespace gr {
-  namespace pager {
-
-    flex_parse::sptr
-    flex_parse::make(msg_queue::sptr queue, float freq)
-    {
-      return gnuradio::get_initial_sptr
-       (new flex_parse_impl(queue, freq));
-    }
-
-    flex_parse_impl::flex_parse_impl(msg_queue::sptr queue, float freq) :
-      sync_block("flex_parse",
-                   io_signature::make(1, 1, sizeof(int32_t)),
-                   io_signature::make(0, 0, 0)),
-      d_queue(queue),
-      d_freq(freq)
-    {
-      d_count = 0;
-    }
-
-    flex_parse_impl::~flex_parse_impl()
-    {
-    }
-
-    int flex_parse_impl::work(int noutput_items,
-                             gr_vector_const_void_star &input_items,
-                             gr_vector_void_star &output_items)
-    {
-      const int32_t *in = (const int32_t *)input_items[0];
-
-      int i = 0;
-      while(i < noutput_items) {
-       // Accumulate one whole frame's worth of data words (88 of them)
-       d_datawords[d_count] = *in++; i++;
-       if(++d_count == 88) {
-         parse_data();
-         d_count = 0;
-       }
-      }
-
-      return i;
-    }
-
-    /* FLEX data frames (that is, 88 data words per phase recovered
-       after sync, symbol decoding, dephasing, deinterleaving, error
-       correction, and conversion from codewords to data words) start
-       with a block information word containing indices of the page
-       address field and page vector fields.  */
-    void
-    flex_parse_impl::parse_capcode(int aw1, int aw2)
-    {
-      d_laddr = (aw1 < 0x008001L) ||
-       (aw1 > 0x1E0000L) ||
-       (aw1 > 0x1E7FFEL);
-
-      if(d_laddr)
-        d_capcode = aw1+((aw2^0x001FFFFF)<<15)+0x1F9000;  // Don't ask
-      else
-        d_capcode = aw1-0x8000;
-    }
-
-    void
-    flex_parse_impl::parse_data()
-    {
-      // Block information word is the first data word in frame
-      int biw = d_datawords[0];
-
-      // Nothing to see here, please move along
-      if(biw == 0 || biw == 0x001FFFFF)
-       return;
-
-      // Vector start index is bits 15-10
-      // Address start address is bits 9-8, plus one for offset
-      int voffset = (biw >> 10) & 0x3f;
-      int aoffset = ((biw >> 8) & 0x03) + 1;
-
-      //printf("BIW:%08X AW:%02i-%02i\n", biw, aoffset, voffset);
-
-      // Iterate through pages and dispatch to appropriate handler
-      for(int i = aoffset; i < voffset; i++) {
-       int j = voffset+i-aoffset;              // Start of vector field for 
address @ i
-
-       if(d_datawords[i] == 0x00000000 ||
-          d_datawords[i] == 0x001FFFFF)
-         continue;                             // Idle codewords, invalid 
address
-
-       parse_capcode(d_datawords[i], d_datawords[i+1]);
-        if(d_laddr)
-         i++;
-
-        if(d_capcode < 0)                      // Invalid address, skip
-          continue;
-
-        // Parse vector information word for address @ offset 'i'
-       int viw = d_datawords[j];
-       d_type = (page_type_t)((viw >> 4) & 0x00000007);
-       int mw1 = (viw >> 7) & 0x00000007F;
-       int len = (viw >> 14) & 0x0000007F;
-
-       if(is_numeric_page(d_type))
-         len &= 0x07;
-        int mw2 = mw1+len;
-
-       if(mw1 == 0 && mw2 == 0)
-         continue;                             // Invalid VIW
-
-       if(is_tone_page(d_type))
-         mw1 = mw2 = 0;
-
-       if(mw1 > 87 || mw2 > 87)
-         continue;                             // Invalid offsets
-
-       d_payload.str("");
-       d_payload.setf(std::ios::showpoint);
-       d_payload << std::setprecision(6) << std::setw(7)
-                 << d_freq/1e6 << FIELD_DELIM
-                 << std::setw(10) << d_capcode << FIELD_DELIM
-                 << flex_page_desc[d_type] << FIELD_DELIM;
-
-       if(is_alphanumeric_page(d_type))
-         parse_alphanumeric(mw1, mw2-1, j);
-       else if(is_numeric_page(d_type))
-         parse_numeric(mw1, mw2, j);
-       else if(is_tone_page(d_type))
-         parse_tone_only();
-       else
-         parse_unknown(mw1, mw2);
-
-       message::sptr msg = 
message::make_from_string(std::string(d_payload.str()));
-       d_queue->handle(msg);
-      }
-    }
-
-    void
-    flex_parse_impl::parse_alphanumeric(int mw1, int mw2, int j)
-    {
-      int frag;
-      //bool cont;
-
-      if(!d_laddr) {
-       frag = (d_datawords[mw1] >> 11) & 0x03;
-       //cont = (d_datawords[mw1] >> 10) & 0x01;
-       mw1++;
-      }
-      else {
-       frag = (d_datawords[j+1] >> 11) & 0x03;
-       //cont = (d_datawords[j+1] >> 10) & 0x01;
-       mw2--;
-      }
-
-      //d_payload << frag << FIELD_DELIM;
-      //d_payload << cont << FIELD_DELIM;
-
-      for(int i = mw1; i <= mw2; i++) {
-       int dw = d_datawords[i];
-       unsigned char ch;
-
-       if(i > mw1 || frag != 0x03) {
-         ch = dw & 0x7F;
-         if(ch != 0x03)
-           d_payload << ch;
-       }
-
-       ch = (dw >> 7) & 0x7F;
-       if(ch != 0x03)  // Fill
-         d_payload << ch;
-
-       ch = (dw >> 14) & 0x7F;
-       if(ch != 0x03)  // Fill
-         d_payload << ch;
-      }
-    }
-
-    void
-    flex_parse_impl::parse_numeric(int mw1, int mw2, int j)
-    {
-      // Get first dataword from message field or from second
-      // vector word if long address
-      int dw;
-      if(!d_laddr) {
-       dw = d_datawords[mw1];
-       mw1++;
-       mw2++;
-      }
-      else {
-       dw = d_datawords[j+1];
-      }
-
-      unsigned char digit = 0;
-      int count = 4;
-      if(d_type == FLEX_NUMBERED_NUMERIC)
-       count += 10;    // Skip 10 header bits for numbered numeric pages
-      else
-       count += 2;     // Otherwise skip 2
-
-      for(int i = mw1; i <= mw2; i++) {
-       for(int k = 0; k < 21; k++) {
-         // Shift LSB from data word into digit
-         digit = (digit >> 1) & 0x0F;
-         if(dw & 0x01)
-           digit ^= 0x08;
-         dw >>= 1;
-         if(--count == 0) {
-           if(digit != 0x0C) // Fill
-             d_payload << flex_bcd[digit];
-           count = 4;
-         }
-       }
-
-       dw = d_datawords[i];
-      }
-    }
-
-    void
-    flex_parse_impl::parse_tone_only()
-    {
-    }
-
-    void
-    flex_parse_impl::parse_unknown(int mw1, int mw2)
-    {
-    }
-
-  } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/flex_parse_impl.h b/gr-pager/lib/flex_parse_impl.h
deleted file mode 100644
index f2e4236..0000000
--- a/gr-pager/lib/flex_parse_impl.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_PARSE_IMPL_H
-#define INCLUDED_PAGER_FLEX_PARSE_IMPL_H
-
-#include <gnuradio/pager/flex_parse.h>
-#include <gnuradio/sync_block.h>
-#include <gnuradio/msg_queue.h>
-#include "flex_modes.h"
-#include <sstream>
-
-namespace gr {
-  namespace pager {
-
-#define FIELD_DELIM ((unsigned char)128)
-
-    class flex_parse_impl : public flex_parse
-    {
-    private:
-      std::ostringstream d_payload;
-      msg_queue::sptr d_queue;           // Destination for decoded pages
-
-      int d_count;                       // Count of received codewords
-      int d_datawords[88];                // 11 blocks of 8 32-bit words
-
-      page_type_t d_type;                // Current page type
-      int d_capcode;                     // Current page destination address
-      bool d_laddr;                      // Current page has long address
-      float d_freq;                      // Channel frequency
-
-      void parse_data();                 // Handle a frame's worth of data
-      void parse_capcode(int32_t aw1, int32_t aw2);
-      void parse_alphanumeric(int mw1, int mw2, int j);
-      void parse_numeric(int mw1, int mw2, int j);
-      void parse_tone_only();
-      void parse_unknown(int mw1, int mw2);
-
-    public:
-      flex_parse_impl(msg_queue::sptr queue, float freq);
-      ~flex_parse_impl();
-
-      int work(int noutput_items,
-              gr_vector_const_void_star &input_items,
-              gr_vector_void_star &output_items);
-    };
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_PARSE_IMPL_H */
diff --git a/gr-pager/lib/flex_sync_impl.cc b/gr-pager/lib/flex_sync_impl.cc
deleted file mode 100644
index 5124155..0000000
--- a/gr-pager/lib/flex_sync_impl.cc
+++ /dev/null
@@ -1,365 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2006,2010,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "flex_sync_impl.h"
-#include "flex_modes.h"
-#include "bch3221.h"
-#include "util.h"
-#include <gnuradio/io_signature.h>
-#include <gnuradio/blocks/count_bits.h>
-#include <cstdio>
-
-namespace gr {
-  namespace pager {
-
-    flex_sync::sptr
-    flex_sync::make()
-    {
-      return gnuradio::get_initial_sptr
-       (new flex_sync_impl());
-    }
-
-    // FLEX sync block takes input from sliced baseband stream [0-3]
-    // at specified channel rate. Symbol timing is established based
-    // on receiving one of the defined FLEX protocol synchronization
-    // words. The block outputs one FLEX frame worth of bits on each
-    // output phase for the data portion of the frame. Unused phases
-    // get all zeros, which are considered idle code words.
-
-    flex_sync_impl::flex_sync_impl() :
-      block("flex_sync",
-              io_signature::make(1, 1, sizeof(unsigned char)),
-              io_signature::make(4, 4, sizeof(unsigned char))),
-      d_sync(10) // Fixed at 10 samples per baud (@ 1600 baud)
-    {
-      enter_idle();
-    }
-
-    flex_sync_impl::~flex_sync_impl()
-    {
-    }
-
-    void
-    flex_sync_impl::forecast(int noutput_items, gr_vector_int &inputs_required)
-    {
-      // samples per bit X number of outputs needed
-      int items = noutput_items*d_spb;
-      for(unsigned int i = 0; i < inputs_required.size(); i++)
-        inputs_required[i] = items;
-    }
-
-    int
-    flex_sync_impl::index_avg(int start, int end)
-    {
-      // modulo average
-      if(start < end)
-        return (end + start)/2;
-      else
-        return ((end + start)/2 + d_spb/2) % d_spb;
-    }
-
-    bool
-    flex_sync_impl::test_sync(unsigned char sym)
-    {
-      // 64-bit FLEX sync code:
-      // AAAA:BBBBBBBB:CCCC
-      //
-      // Where BBBBBBBB is always 0xA6C6AAAA
-      // and AAAA^CCCC is 0xFFFF
-      //
-      // Specific values of AAAA determine what bps and encoding the
-      // packet is beyond the frame information word
-      //
-      // First we match on the marker field with a hamming distance < 4
-      // Then we match on the outer code with a hamming distance < 4
-
-      d_sync[d_index] = (d_sync[d_index] << 1) | (sym < 2);
-      int64_t val = d_sync[d_index];
-      int32_t marker = ((val & 0x0000FFFFFFFF0000ULL)) >> 16;
-
-      if(gr::blocks::count_bits32(marker^FLEX_SYNC_MARKER) < 4) {
-        int32_t code = ((val & 0xFFFF000000000000ULL) >> 32) |
-         (val & 0x000000000000FFFFULL);
-
-        for(int i = 0; i < num_flex_modes; i++) {
-         if(gr::blocks::count_bits32(code^flex_modes[i].sync) < 4) {
-           d_mode = i;
-           return true;
-         }
-        }
-
-        // Marker received but doesn't match known codes
-        // All codes have high word inverted to low word
-        unsigned short high = (code & 0xFFFF0000) >> 16;
-        unsigned short low = code & 0x0000FFFF;
-        unsigned short syn = high^low;
-        if(syn == 0xFFFF)
-         fprintf(stderr, "Unknown sync code detected: %08X\n", code);
-      }
-
-      return false;
-    }
-
-    void
-    flex_sync_impl::enter_idle()
-    {
-      d_state = ST_IDLE;
-      d_index = 0;
-      d_start = 0;
-      d_center = 0;
-      d_end = 0;
-      d_count = 0;
-      d_mode = 0;
-      d_baudrate = 1600;
-      d_levels = 2;
-      d_spb = 16000/d_baudrate;
-      d_bit_a = 0;
-      d_bit_b = 0;
-      d_bit_c = 0;
-      d_bit_d = 0;
-      d_hibit = false;
-      fflush(stdout);
-    }
-
-    void
-    flex_sync_impl::enter_syncing()
-    {
-      d_start = d_index;
-      d_state = ST_SYNCING;
-    }
-
-    void
-    flex_sync_impl::enter_sync1()
-    {
-      d_state = ST_SYNC1;
-      d_end = d_index;
-      d_center = index_avg(d_start, d_end); // Center of goodness
-      d_count = 0;
-    }
-
-    void
-    flex_sync_impl::enter_sync2()
-    {
-      d_state = ST_SYNC2;
-      d_count = 0;
-      d_baudrate = flex_modes[d_mode].baud;
-      d_levels = flex_modes[d_mode].levels;
-      d_spb = 16000/d_baudrate;
-
-      if(d_baudrate == 3200) {
-        // Oversampling buffer just got halved
-        d_center = d_center/2;
-
-       // We're here at the center of a 1600 baud bit
-       // So this hack puts the index and bit counter
-       // in the right place for 3200 bps.
-        d_index = d_index/2-d_spb/2;
-       d_count = -1;
-      }
-    }
-
-    void
-    flex_sync_impl::enter_data()
-    {
-      d_state = ST_DATA;
-      d_count = 0;
-    }
-
-    void
-    flex_sync_impl::parse_fiw()
-    {
-      // Nothing is done with these now, but these will end up getting
-      // passed as metadata when mblocks are available
-
-      // Bits 31-28 are frame number related, but unknown function
-      // This might be a checksum
-      d_unknown2 = reverse_bits8((d_fiw >> 24) & 0xF0);
-
-      // Cycle is bits 27-24, reversed
-      d_cycle = reverse_bits8((d_fiw >> 20) & 0xF0);
-
-      // Frame is bits 23-17, reversed
-      d_frame = reverse_bits8((d_fiw >> 16) & 0xFE);
-
-      // Bits 16-11 are some sort of marker, usually identical across
-      // many frames but sometimes changes between frames or modes
-      d_unknown1 = (d_fiw >> 11) & 0x3F;
-
-      //printf("CYC:%02i FRM:%03i\n", d_cycle, d_frame);
-    }
-
-    int
-    flex_sync_impl::output_symbol(unsigned char sym)
-    {
-      // Here is where we output a 1 or 0 on each phase according
-      // to current FLEX mode and symbol value.  Unassigned phases
-      // are zero from the enter_idle() initialization.
-      //
-      // FLEX can transmit the data portion of the frame at either
-      // 1600 bps or 3200 bps, and can use either two- or four-level
-      // FSK encoding.
-      //
-      // At 1600 bps, 2-level, a single "phase" is transmitted with bit
-      // value '0' using level '3' and bit value '1' using level '0'.
-      //
-      // At 1600 bps, 4-level, a second "phase" is transmitted, and the
-      // di-bits are encoded with a gray code:
-      //
-      // Symbol        Phase 1  Phase 2
-      // ------   -------  -------
-      //   0         1        1
-      //   1         1        0
-      //   2         0        0
-      //   3         0        1
-      //
-      // At 1600 bps, 4-level, these are called PHASE A and PHASE B.
-      //
-      // At 3200 bps, the same 1 or 2 bit encoding occurs, except that
-      // additionally two streams are interleaved on alternating symbols.
-      // Thus, PHASE A (and PHASE B if 4-level) are decoded on one symbol,
-      // then PHASE C (and PHASE D if 4-level) are decoded on the next.
-
-      int bits = 0;
-
-      if(d_baudrate == 1600) {
-       d_bit_a = (sym < 2);
-       if(d_levels == 4)
-         d_bit_b = (sym == 0) || (sym == 3);
-
-       *d_phase_a++ = d_bit_a;
-       *d_phase_b++ = d_bit_b;
-       *d_phase_c++ = d_bit_c;
-       *d_phase_d++ = d_bit_d;
-       bits++;
-      }
-      else {
-       if(!d_hibit) {
-         d_bit_a = (sym < 2);
-         if(d_levels == 4)
-           d_bit_b = (sym == 0) || (sym == 3);
-         d_hibit = true;
-       }
-       else {
-         d_bit_c = (sym < 2);
-         if(d_levels == 4)
-           d_bit_d = (sym == 0) || (sym == 3);
-         d_hibit = false;
-
-         *d_phase_a++ = d_bit_a;
-         *d_phase_b++ = d_bit_b;
-         *d_phase_c++ = d_bit_c;
-         *d_phase_d++ = d_bit_d;
-         bits++;
-       }
-      }
-
-      return bits;
-    }
-
-    int
-    flex_sync_impl::general_work(int noutput_items,
-                                gr_vector_int &ninput_items,
-                                gr_vector_const_void_star &input_items,
-                                gr_vector_void_star &output_items)
-    {
-      const unsigned char *in = (const unsigned char *)input_items[0];
-      d_phase_a = (unsigned char *)output_items[0];
-      d_phase_b = (unsigned char *)output_items[1];
-      d_phase_c = (unsigned char *)output_items[2];
-      d_phase_d = (unsigned char *)output_items[3];
-
-      int i = 0, j = 0;
-      int ninputs = ninput_items[0];
-
-      while(i < ninputs && j < noutput_items) {
-        unsigned char sym = *in++; i++;
-       d_index = (d_index+1) % d_spb;
-
-        switch(d_state) {
-       case ST_IDLE:
-         // Continually compare the received symbol stream
-         // against the known FLEX sync words.
-         if(test_sync(sym))
-           enter_syncing();
-         break;
-
-       case ST_SYNCING:
-         // Wait until we stop seeing sync, then calculate
-         // the center of the bit period (d_center)
-         if(!test_sync(sym))
-           enter_sync1();
-         break;
-
-       case ST_SYNC1:
-         // Skip 16 bits of dotting, then accumulate 32 bits
-         // of Frame Information Word.
-         if(d_index == d_center) {
-           d_fiw = (d_fiw << 1) | (sym > 1);
-           if(++d_count == 48) {
-             // FIW is accumulated, call BCH to error correct it
-             bch3221(d_fiw);
-             parse_fiw();
-             enter_sync2();
-           }
-         }
-         break;
-
-       case ST_SYNC2:
-         // This part and the remainder of the frame are transmitted
-         // at either 1600 bps or 3200 bps based on the received
-         // FLEX sync word. The second SYNC header is 25ms of idle bits
-         // at either speed.
-         if(d_index == d_center) {
-           // Skip 25 ms = 40 bits @ 1600 bps, 80 @ 3200 bps
-           if(++d_count == d_baudrate/40)
-             enter_data();
-         }
-         break;
-
-       case ST_DATA:
-         // The data portion of the frame is 1760 ms long at either
-         // baudrate. This is 2816 bits @ 1600 bps and 5632 bits @ 3200 bps.
-         // The output_symbol() routine decodes and doles out the bits
-         // to each of the four transmitted phases of FLEX interleaved codes.
-         if(d_index == d_center) {
-           j += output_symbol(sym);
-           if(++d_count == d_baudrate*1760/1000)
-             enter_idle();
-         }
-         break;
-
-       default:
-         assert(0); // memory corruption of d_state if ever gets here
-         break;
-        }
-      }
-
-      consume_each(i);
-      return j;
-    }
-
-  } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/flex_sync_impl.h b/gr-pager/lib/flex_sync_impl.h
deleted file mode 100644
index 9bc5111..0000000
--- a/gr-pager/lib/flex_sync_impl.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_FLEX_SYNC_IMPL_H
-#define INCLUDED_PAGER_FLEX_SYNC_IMPL_H
-
-#include <gnuradio/pager/flex_sync.h>
-
-namespace gr {
-  namespace pager {
-
-    class flex_sync_impl : public flex_sync
-    {
-    private:
-      // State machine transitions
-      void enter_idle();
-      void enter_syncing();
-      void enter_sync1();
-      void enter_sync2();
-      void enter_data();
-
-      int index_avg(int start, int end);
-      bool test_sync(unsigned char sym);
-      void parse_fiw();
-      int output_symbol(unsigned char sym);
-
-      // Simple state machine
-      enum state_t { ST_IDLE, ST_SYNCING, ST_SYNC1, ST_SYNC2, ST_DATA };
-      state_t d_state;
-
-      int d_index;    // Index into current baud
-      int d_start;    // Start of good sync
-      int d_center;   // Center of bit
-      int d_end;      // End of good sync
-      int d_count;    // Bit counter
-
-      int d_mode;     // Current packet mode
-      int d_baudrate; // Current decoding baud rate
-      int d_levels;   // Current decoding levels
-      int d_spb;      // Current samples per baud
-      bool d_hibit;   // Alternating bit indicator for 3200 bps
-
-      int d_fiw;      // Frame information word
-      int d_frame;    // Current FLEX frame
-      int d_cycle;    // Current FLEX cycle
-      int d_unknown1;
-      int d_unknown2;
-
-      unsigned char d_bit_a;
-      unsigned char d_bit_b;
-      unsigned char d_bit_c;
-      unsigned char d_bit_d;
-
-      unsigned char *d_phase_a;
-      unsigned char *d_phase_b;
-      unsigned char *d_phase_c;
-      unsigned char *d_phase_d;
-
-      std::vector<int64_t> d_sync; // Trial synchronizers
-
-    public:
-      flex_sync_impl();
-      ~flex_sync_impl();
-
-      void forecast(int noutput_items, gr_vector_int &inputs_required);
-
-      int general_work(int noutput_items,
-                      gr_vector_int &ninput_items,
-                      gr_vector_const_void_star &input_items,
-                      gr_vector_void_star &output_items);
-    };
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_FLEX_SYNC_IMPL_H */
diff --git a/gr-pager/lib/gnuradio-pager.rc.in 
b/gr-pager/lib/gnuradio-pager.rc.in
deleted file mode 100644
index cf9d85b..0000000
--- a/gr-pager/lib/gnuradio-pager.rc.in
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 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.
- */
-
-#include <afxres.h>
-
-VS_VERSION_INFO VERSIONINFO
-  FILEVERSION 
@MAJOR_VERSION@,@API_COMPAT@,@RC_MINOR_VERSION@,@RC_MAINT_VERSION@
-  PRODUCTVERSION 
@MAJOR_VERSION@,@API_COMPAT@,@RC_MINOR_VERSION@,@RC_MAINT_VERSION@
-  FILEFLAGSMASK 0x3fL
-#ifndef NDEBUG
-  FILEFLAGS 0x0L
-#else
-  FILEFLAGS 0x1L
-#endif
-  FILEOS VOS__WINDOWS32
-  FILETYPE VFT_DLL
-  FILESUBTYPE VFT2_DRV_INSTALLABLE
-  BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-      BLOCK "040904b0"
-      BEGIN
-        VALUE "FileDescription", "gnuradio-pager"
-        VALUE "FileVersion", "@VERSION@"
-        VALUE "InternalName", "gnuradio-pager.dll"
-        VALUE "LegalCopyright", "Licensed under GPLv3 or any later version"
-        VALUE "OriginalFilename", "gnuradio-pager.dll"
-        VALUE "ProductName", "gnuradio-pager"
-        VALUE "ProductVersion", "@VERSION@"
-      END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-      VALUE "Translation", 0x409, 1200
-    END
-  END
diff --git a/gr-pager/lib/slicer_fb_impl.cc b/gr-pager/lib/slicer_fb_impl.cc
deleted file mode 100644
index 7d570eb..0000000
--- a/gr-pager/lib/slicer_fb_impl.cc
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2006,2007,2010,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "slicer_fb_impl.h"
-#include <gnuradio/io_signature.h>
-
-namespace gr {
-  namespace pager {
-
-    slicer_fb::sptr
-    slicer_fb::make(float alpha)
-    {
-      return gnuradio::get_initial_sptr
-       (new slicer_fb_impl(alpha));
-    }
-
-    slicer_fb_impl::slicer_fb_impl(float alpha) :
-      sync_block("slicer_fb",
-                   io_signature::make(1, 1, sizeof(float)),
-                   io_signature::make(1, 1, sizeof(unsigned char)))
-    {
-      d_alpha = alpha;
-      d_beta = 1.0-alpha;
-      d_avg = 0.0;
-    }
-
-    slicer_fb_impl::~slicer_fb_impl()
-    {
-    }
-
-    // Tracks average, minimum, and peak, then converts input into one of:
-    //
-    // [0, 1, 2, 3]
-    unsigned char
-    slicer_fb_impl::slice(float sample)
-    {
-      unsigned char decision;
-
-      // Update DC level and remove
-      d_avg = d_avg*d_beta+sample*d_alpha;
-      sample -= d_avg;
-
-      if(sample > 0) {
-        if(sample > 2.0)
-         decision = 3;
-        else
-         decision = 2;
-      }
-      else {
-        if(sample < -2.0)
-         decision = 0;
-        else
-         decision = 1;
-      }
-
-      return decision;
-    }
-
-    int
-    slicer_fb_impl::work(int noutput_items,
-                        gr_vector_const_void_star &input_items,
-                        gr_vector_void_star &output_items)
-    {
-      float *iptr = (float *)input_items[0];
-      unsigned char *optr = (unsigned char *)output_items[0];
-
-      int size = noutput_items;
-
-      for(int i = 0; i < size; i++)
-        *optr++ = slice(*iptr++);
-
-      return noutput_items;
-    }
-
-  } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/slicer_fb_impl.h b/gr-pager/lib/slicer_fb_impl.h
deleted file mode 100644
index d2d6ba7..0000000
--- a/gr-pager/lib/slicer_fb_impl.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2007,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_SLICER_FB_IMPL_H
-#define INCLUDED_PAGER_SLICER_FB_IMPL_H
-
-#include <gnuradio/pager/slicer_fb.h>
-
-namespace gr {
-  namespace pager {
-
-    class slicer_fb_impl : public slicer_fb
-    {
-    private:
-      unsigned char slice(float sample);
-
-      float d_alpha;    // DC removal time constant
-      float d_beta;    // 1.0-d_alpha
-      float d_avg;      // Average value for DC offset subtraction
-
-    public:
-      slicer_fb_impl(float alpha);
-      ~slicer_fb_impl();
-
-      int work(int noutput_items,
-              gr_vector_const_void_star &input_items,
-              gr_vector_void_star &output_items);
-
-      float dc_offset() const { return d_avg; }
-    };
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_SLICER_FB_IMPL_H */
diff --git a/gr-pager/lib/util.cc b/gr-pager/lib/util.cc
deleted file mode 100644
index 8db4e5c..0000000
--- a/gr-pager/lib/util.cc
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "util.h"
-
-namespace gr {
-  namespace pager {
-
-    unsigned char
-    reverse_bits8(unsigned char val)
-    {
-      // This method was attributed to Rich Schroeppel in the Programming
-      // Hacks section of Beeler, M., Gosper, R. W., and Schroeppel, R.
-      // HAKMEM. MIT AI Memo 239, Feb. 29, 1972.
-      //
-      // Reverses 8 bits in 5 machine operations with 64 bit arch
-      return (val * 0x0202020202ULL & 0x010884422010ULL) % 1023;
-    }
-
-    int32_t
-    reverse_bits32(int32_t val)
-    {
-      int32_t out = 0x00000000;
-      out |= (reverse_bits8((val >> 24) & 0x000000FF)      );
-      out |= (reverse_bits8((val >> 16) & 0x000000FF) <<  8);
-      out |= (reverse_bits8((val >>  8) & 0x000000FF) << 16);
-      out |= (reverse_bits8((val      ) & 0x000000FF) << 24);
-      return out;
-    }
-
-  } /* namespace pager */
-} /* namespace gr */
diff --git a/gr-pager/lib/util.h b/gr-pager/lib/util.h
deleted file mode 100644
index db33e66..0000000
--- a/gr-pager/lib/util.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDED_PAGER_UTIL_H
-#define INCLUDED_PAGER_UTIL_H
-
-#include <stdint.h>
-
-namespace gr {
-  namespace pager {
-
-    unsigned char reverse_bits8(unsigned char val);
-    int32_t reverse_bits32(int32_t val);
-
-  } /* namespace pager */
-} /* namespace gr */
-
-#endif /* INCLUDED_PAGER_UTIL_H */
diff --git a/gr-pager/python/pager/CMakeLists.txt 
b/gr-pager/python/pager/CMakeLists.txt
deleted file mode 100644
index 899c62e..0000000
--- a/gr-pager/python/pager/CMakeLists.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 2011-2012 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
-    pager_utils.py
-    flex_demod.py
-    DESTINATION ${GR_PYTHON_DIR}/gnuradio/pager
-    COMPONENT "pager_python"
-)
-
-########################################################################
-# Handle the unit tests
-########################################################################
-if(ENABLE_TESTING)
-
-  set(GR_TEST_TARGET_DEPS "")
-  set(GR_TEST_LIBRARY_DIRS "")
-  set(GR_TEST_PYTHON_DIRS
-    ${CMAKE_BINARY_DIR}/gnuradio-runtime/python
-    )
-
-  include(GrTest)
-  file(GLOB py_qa_test_files "qa_*.py")
-  foreach(py_qa_test_file ${py_qa_test_files})
-    get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE)
-    GR_ADD_TEST(${py_qa_test_name} ${QA_PYTHON_EXECUTABLE} ${PYTHON_DASH_B} 
${py_qa_test_file})
-  endforeach(py_qa_test_file)
-endif(ENABLE_TESTING)
diff --git a/gr-pager/python/pager/__init__.py 
b/gr-pager/python/pager/__init__.py
deleted file mode 100644
index ea4856f..0000000
--- a/gr-pager/python/pager/__init__.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Copyright 2006 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.
-#
-
-# The presence of this file turns this directory into a Python package
-
-'''
-The GNU Radio pager application.
-'''
-import os
-
-try:
-    from pager_swig import *
-except ImportError:
-    dirname, filename = os.path.split(os.path.abspath(__file__))
-    __path__.append(os.path.join(dirname, "..", "..", "swig"))
-    from pager_swig import *
-
-from flex_demod import flex_demod
-from pager_utils import *
diff --git a/gr-pager/python/pager/flex_demod.py 
b/gr-pager/python/pager/flex_demod.py
deleted file mode 100644
index 3ed4698..0000000
--- a/gr-pager/python/pager/flex_demod.py
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# Copyright 2006,2007 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 analog
-from gnuradio import blocks
-from gnuradio import filter
-from math import pi
-import pager_swig
-
-class flex_demod(gr.hier_block2):
-    """
-    FLEX pager protocol demodulation block.
-
-    This block demodulates a band-limited, complex down-converted baseband
-    channel into FLEX protocol frames.
-
-    """
-
-    def __init__(self, queue, freq=0.0, verbose=False, log=False):
-       gr.hier_block2.__init__(self, "flex_demod",
-                               gr.io_signature(1, 1, gr.sizeof_gr_complex),
-                               gr.io_signature(0,0,0))
-
-        k = 25000/(2*pi*1600)        # 4800 Hz max deviation
-        quad = analog.quadrature_demod_cf(k)
-       self.connect(self, quad)
-
-        rsamp = filter.rational_resampler_fff(16, 25)
-        self.slicer = pager_swig.slicer_fb(5e-6) # DC removal averaging filter 
constant
-       self.sync = pager_swig.flex_sync()
-
-        self.connect(quad, rsamp, self.slicer, self.sync)
-
-       for i in range(4):
-           self.connect((self.sync, i), pager_swig.flex_deinterleave(), 
pager_swig.flex_parse(queue, freq))
-
-       if log:
-           suffix = '_'+ "%3.3f" % (freq/1e6,) + '.dat'
-           quad_sink = blocks.file_sink(gr.sizeof_float, 'quad'+suffix)
-           rsamp_sink = blocks.file_sink(gr.sizeof_float, 'rsamp'+suffix)
-           slicer_sink = blocks.file_sink(gr.sizeof_char, 'slicer'+suffix)
-           self.connect(rsamp, rsamp_sink)
-           self.connect(quad, quad_sink)
-           self.connect(self.slicer, slicer_sink)
-
-    def dc_offset(self):
-       return self.slicer.dc_offset()
diff --git a/gr-pager/python/pager/pager_utils.py 
b/gr-pager/python/pager/pager_utils.py
deleted file mode 100644
index e935c86..0000000
--- a/gr-pager/python/pager/pager_utils.py
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# Copyright 2008,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 this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-
-from gnuradio import gr
-import gnuradio.gr.gr_threading as _threading
-from string import split, join, printable
-import time
-
-def make_trans_table():
-    table = 256 * ['.']
-    for i in range(256):
-        if (i < 32):
-            table[i] = '.'
-        else:
-            table[i] = chr(i)
-    return ''.join(table)
-
-_trans_table = make_trans_table()
-
-def make_printable(s):
-    return s.translate(_trans_table)
-
-
-class queue_runner(_threading.Thread):
-    def __init__(self, msgq):
-        _threading.Thread.__init__(self)
-        self.msgq = msgq
-        self.done = False
-        self.start()
-
-    def run(self):
-        while 1:
-            msg = self.msgq.delete_head() # Blocking read
-            if msg.type() != 0:
-                break
-
-            page = join(split(msg.to_string(), chr(128)), '|')
-            s = make_printable(page)
-            print msg.type(), s
-
-    def end(self):
-        self.msgq.insert_tail(gr.message(1))
-        self.done = True
diff --git a/gr-pager/python/pager/qa_pager.py 
b/gr-pager/python/pager/qa_pager.py
deleted file mode 100755
index dc9705e..0000000
--- a/gr-pager/python/pager/qa_pager.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2004,2006,2010 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, gr_unittest, pager
-
-class test_pager(gr_unittest.TestCase):
-
-    def setUp (self):
-        self.tb = gr.top_block ()
-
-    def tearDown (self):
-        self.tb = None
-
-if __name__ == '__main__':
-    gr_unittest.run(test_pager, "test_pager.xml")
diff --git a/gr-pager/swig/CMakeLists.txt b/gr-pager/swig/CMakeLists.txt
deleted file mode 100644
index fc71394..0000000
--- a/gr-pager/swig/CMakeLists.txt
+++ /dev/null
@@ -1,56 +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.
-
-########################################################################
-# Setup swig generation
-########################################################################
-include(GrPython)
-include(GrSwig)
-
-set(GR_SWIG_INCLUDE_DIRS
-    ${GR_PAGER_INCLUDE_DIRS}
-    ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS}
-    ${Boost_INCLUDE_DIRS}
-)
-
-if(ENABLE_GR_CTRLPORT)
-  list(APPEND GR_SWIG_FLAGS "-DGR_CTRLPORT")
-endif(ENABLE_GR_CTRLPORT)
-
-set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/pager_swig_doc.i)
-set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/pager)
-set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
-
-set(GR_SWIG_LIBRARIES gnuradio-pager)
-
-GR_SWIG_MAKE(pager_swig pager_swig.i)
-
-GR_SWIG_INSTALL(
-    TARGETS pager_swig
-    DESTINATION ${GR_PYTHON_DIR}/gnuradio/pager
-    COMPONENT "pager_python"
-)
-
-install(
-    FILES
-    pager_swig.i
-    ${CMAKE_CURRENT_BINARY_DIR}/pager_swig_doc.i
-    DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
-    COMPONENT "pager_swig"
-)
diff --git a/gr-pager/swig/pager_swig.i b/gr-pager/swig/pager_swig.i
deleted file mode 100644
index 1c594ac..0000000
--- a/gr-pager/swig/pager_swig.i
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2005,2006,2009,2012 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.
- */
-
-#define PAGER_API
-
-%include "gnuradio.i"
-
-//load generated python docstrings
-%include "pager_swig_doc.i"
-
-%{
-#include "gnuradio/pager/flex_frame.h"
-#include "gnuradio/pager/slicer_fb.h"
-#include "gnuradio/pager/flex_sync.h"
-#include "gnuradio/pager/flex_deinterleave.h"
-#include "gnuradio/pager/flex_parse.h"
-%}
-
-%include "gnuradio/pager/flex_frame.h"
-%include "gnuradio/pager/slicer_fb.h"
-%include "gnuradio/pager/flex_sync.h"
-%include "gnuradio/pager/flex_deinterleave.h"
-%include "gnuradio/pager/flex_parse.h"
-
-GR_SWIG_BLOCK_MAGIC2(pager, flex_frame);
-GR_SWIG_BLOCK_MAGIC2(pager, slicer_fb);
-GR_SWIG_BLOCK_MAGIC2(pager, flex_sync);
-GR_SWIG_BLOCK_MAGIC2(pager, flex_deinterleave);
-GR_SWIG_BLOCK_MAGIC2(pager, flex_parse);



reply via email to

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