[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);
- [Commit-gnuradio] [gnuradio] branch next updated (0dc8072 -> 090103c), git, 2016/06/10
- [Commit-gnuradio] [gnuradio] 03/05: Merge remote-tracking branch 'gnuradio-wg-grc/next_grcwg' into next, git, 2016/06/10
- [Commit-gnuradio] [gnuradio] 05/05: grc: removed stray checkin, git, 2016/06/10
- [Commit-gnuradio] [gnuradio] 02/05: grc: fix generated argparser help strings, git, 2016/06/10
- [Commit-gnuradio] [gnuradio] 01/05: grc: fix parameter blocks, empty Short ID and string type, git, 2016/06/10
- [Commit-gnuradio] [gnuradio] 04/05: pager: deprecated in 3.7, removed for 3.8,
git <=