Makefile \
run_tests.sh \
config/Makefile \
- debian/changelog \
])
dnl run_tests.sh is created from run_tests.sh.in . Make it executable.
-/changelog
-/*.log
+*.log
+*.debhelper
+*.substvars
+files
+tmp
+gnuradio-companion.install
+gnuradio-examples.install
+gnuradio-gpio.install
+gnuradio-pager.install
+gnuradio-radar-mono.install
+gnuradio-radio-astronomy.install
+gnuradio-sounder.install
+gnuradio-utils.install
+libgnuradio-audio-alsa-dev.install
+libgnuradio-audio-alsa0.install
+libgnuradio-audio-jack-dev.install
+libgnuradio-audio-jack0.install
+libgnuradio-audio-oss-dev.install
+libgnuradio-audio-oss0.install
+libgnuradio-audio-portaudio-dev.install
+libgnuradio-audio-portaudio0.install
+libgnuradio-core-dev.install
+libgnuradio-cvsd-vocoder-dev.install
+libgnuradio-cvsd-vocoder0.install
+libgnuradio-gsm-fr-vocoder-dev.install
+libgnuradio-gsm-fr-vocoder0.install
+libgnuradio-pager-dev.install
+libgnuradio-pager0.install
+libgnuradio-qtgui-dev.install
+libgnuradio-qtgui0.install
+libgnuradio-trellis-dev.install
+libgnuradio-trellis0.install
+libgnuradio-usrp-dev.install
+libgnuradio-usrp0.install
+libgnuradio-usrp2-0.install
+libgnuradio-usrp2-dev.install
+libgnuradio-video-sdl-dev.install
+libgnuradio-video-sdl0.install
+libusrp-dev.install
+libusrp2-dev.install
+python-gnuradio-audio-alsa.install
+python-gnuradio-audio-jack.install
+python-gnuradio-audio-oss.install
+python-gnuradio-audio-portaudio.install
+python-gnuradio-core.install
+python-gnuradio-cvsd-vocoder.install
+python-gnuradio-gsm-fr-vocoder.install
+python-gnuradio-qtgui.install
+python-gnuradio-trellis.install
+python-gnuradio-usrp.install
+python-gnuradio-usrp2.install
+python-gnuradio-video-sdl.install
+python-gnuradio-wxgui.install
+python-usrp.install
+/gnuradio/
+/gnuradio-apps/
+/gnuradio-companion/
+/gnuradio-doc/
+/gnuradio-examples/
+/gnuradio-gpio/
+/gnuradio-pager/
+/gnuradio-radar-mono/
+/gnuradio-radio-astronomy/
+/gnuradio-sounder/
+/gnuradio-utils/
+/libgnuradio/
+/libgnuradio-dev/
+/libgnuradio-audio-alsa-dev/
+/libgnuradio-audio-alsa0/
+/libgnuradio-audio-jack-dev/
+/libgnuradio-audio-jack0/
+/libgnuradio-audio-oss-dev/
+/libgnuradio-audio-oss0/
+/libgnuradio-audio-portaudio0/
+/libgnuradio-audio-portaudio-dev/
+/libgnuradio-core-dev/
+/libgnuradio-core0/
+/libgnuradio-cvsd-vocoder-dev/
+/libgnuradio-cvsd-vocoder0/
+/libgnuradio-gsm-fr-vocoder-dev/
+/libgnuradio-gsm-fr-vocoder0/
+/libgnuradio-pager-dev/
+/libgnuradio-pager0/
+/libgnuradio-qtgui-dev/
+/libgnuradio-qtgui0/
+/libgnuradio-trellis-dev/
+/libgnuradio-trellis0/
+/libgnuradio-usrp-dev/
+/libgnuradio-usrp0/
+/libgnuradio-usrp2-0/
+/libgnuradio-usrp2-dev/
+/libgnuradio-video-sdl-dev/
+/libgnuradio-video-sdl0/
+/libgromnithread-dev/
+/libgromnithread0
+/libgruel-dev/
+/libgruel0/
+/libmblock-dev/
+/libmblock0/
+/libusrp-dev/
+/libusrp0/
+/libusrp2-0/
+/libusrp2-dev/
+/python-gnuradio/
+/python-gnuradio-audio-alsa/
+/python-gnuradio-audio-jack/
+/python-gnuradio-audio-oss/
+/python-gnuradio-audio-portaudio/
+/python-gnuradio-core/
+/python-gnuradio-cvsd-vocoder/
+/python-gnuradio-gsm-fr-vocoder/
+/python-gnuradio-qtgui/
+/python-gnuradio-trellis/
+/python-gnuradio-usrp/
+/python-gnuradio-usrp2/
+/python-gnuradio-video-sdl/
+/python-gnuradio-wxgui/
+/python-usrp/
+/usrp-doc/
echo usr/lib/libgnuradio-core.so >>$NAME
echo usr/lib/pkgconfig/gnuradio-core.pc >>$NAME
-# libgnuradio-audio-alsa
-NAME=debian/libgnuradio-audio-alsa.install
+# libgnuradio-audio-alsa0
+NAME=debian/libgnuradio-audio-alsa0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-audio-alsa/src/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-audio-alsa/Makefile dist_pkgconfig_DATA >>$NAME
echo usr/lib/libgnuradio-audio-alsa.so >>$NAME
-# libgnuradio-audio-jack
-NAME=debian/libgnuradio-audio-jack.install
+# libgnuradio-audio-jack0
+NAME=debian/libgnuradio-audio-jack0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-audio-jack/src/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-audio-jack/Makefile dist_pkgconfig_DATA >>$NAME
echo usr/lib/libgnuradio-audio-jack.so >>$NAME
-# libgnuradio-audio-oss
-NAME=debian/libgnuradio-audio-oss.install
+# libgnuradio-audio-oss0
+NAME=debian/libgnuradio-audio-oss0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-audio-oss/src/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-audio-oss/Makefile dist_pkgconfig_DATA >>$NAME
echo usr/lib/libgnuradio-audio-oss.so >>$NAME
-# libgnuradio-audio-portaudio
-NAME=debian/libgnuradio-audio-portaudio.install
+# libgnuradio-audio-portaudio0
+NAME=debian/libgnuradio-audio-portaudio0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-audio-portaudio/src/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-audio-portaudio/Makefile dist_pkgconfig_DATA >>$NAME
echo usr/lib/libgnuradio-audio-portaudio.so >>$NAME
-# libgnuradio-cvsd-vocoder
-NAME=debian/libgnuradio-cvsd-vocoder.install
+# libgnuradio-cvsd-vocoder0
+NAME=debian/libgnuradio-cvsd-vocoder0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-cvsd-vocoder/src/lib/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-cvsd-vocoder/Makefile dist_pkgconfig_DATA >>$NAME
echo usr/lib/libgnuradio-cvsd-vocoder.so >>$NAME
-# libgnuradio-gsm-fr-vocoder
-NAME=debian/libgnuradio-gsm-fr-vocoder.install
+# libgnuradio-gsm-fr-vocoder0
+NAME=debian/libgnuradio-gsm-fr-vocoder0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-gsm-fr-vocoder/src/lib/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-gsm-fr-vocoder/Makefile dist_pkgconfig_DATA >>$NAME
echo usr/lib/libgnuradio-gsm-fr-vocoder.so >>$NAME
-# libgnuradio-pager
-NAME=debian/libgnuradio-pager.install
+# libgnuradio-pager0
+NAME=debian/libgnuradio-pager0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-pager/src/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-pager/Makefile dist_pkgconfig_DATA >>$NAME
echo usr/lib/libgnuradio-pager.so >>$NAME
-# libgnuradio-qtgui
-NAME=debian/libgnuradio-qtgui.install
+# libgnuradio-qtgui0
+NAME=debian/libgnuradio-qtgui0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-qtgui/src/lib/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-qtgui/src/lib/Makefile grinclude_HEADERS >>$NAME
echo usr/lib/libgnuradio-qtgui.so >>$NAME
-# libgnuradio-trellis
-NAME=debian/libgnuradio-trellis.install
+# libgnuradio-trellis0
+NAME=debian/libgnuradio-trellis0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-trellis/src/lib/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-trellis/Makefile dist_pkgconfig_DATA >>$NAME
echo usr/lib/libgnuradio-trellis.so >>$NAME
-# libgnuradio-usrp
-NAME=debian/libgnuradio-usrp.install
+# libgnuradio-usrp0
+NAME=debian/libgnuradio-usrp0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-usrp/src/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-usrp/src/Makefile grinclude_HEADERS >>$NAME
echo usr/lib/libgnuradio-usrp.so >>$NAME
-# libgnuradio-usrp2
-NAME=debian/libgnuradio-usrp2.install
+# libgnuradio-usrp2-0
+NAME=debian/libgnuradio-usrp2-0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-usrp2/src/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gr-usrp2/src/Makefile grinclude_HEADERS >>$NAME
echo usr/lib/libgnuradio-usrp2.so >>$NAME
-# libgnuradio-video-sdl
-NAME=debian/libgnuradio-video-sdl.install
+# libgnuradio-video-sdl0
+NAME=debian/libgnuradio-video-sdl0.install
rm -f $NAME
touch $NAME
$EXTRACT gr-video-sdl/src/Makefile lib_LTLIBRARIES >>$NAME
$EXTRACT gnuradio-examples/python/network/Makefile dist_ourdata_SCRIPTS >>$NAME
$EXTRACT gnuradio-examples/python/ofdm/Makefile dist_ourdata_DATA >>$NAME
$EXTRACT gnuradio-examples/python/ofdm/Makefile dist_ourdata_SCRIPTS >>$NAME
+$EXTRACT gnuradio-examples/python/pfb/Makefile dist_ourdata_SCRIPTS >>$NAME
+$EXTRACT gnuradio-examples/python/pfb/Makefile dist_ourdata_PYTHON >>$NAME
+$EXTRACT gnuradio-examples/python/pfb/Makefile dist_ourdata_DATA >>$NAME
$EXTRACT gnuradio-examples/python/usrp/Makefile dist_ourdata_SCRIPTS >>$NAME
$EXTRACT gnuradio-examples/python/usrp2/Makefile dist_ourdata_SCRIPTS >>$NAME
$EXTRACT gnuradio-examples/python/usrp2/Makefile dist_ourdata_DATA >>$NAME
--- /dev/null
+gnuradio (3.3git-1) unstable; urgency=low
+
+ * upstream unstable version from git repository
+
+ -- Johnathan Corgan <jcorgan@corganenterprises.com> Thu, 24 Sep 2009 23:00:00 -0600
+
+gnuradio (3.2.2-1) unstable; urgency=low
+
+ * new upstream version, includes gcc4.3 support, closes: #474801, #524387
+ * merge debian/ content restructuring from upstream svn
+ * change build-dep from fftw3-dev to libfftw3-dev, closes: #458231
+ * fix problem with rebuilding, closes: #441739
+ * no longer need to move to contrib now that sdcc is fully back in main,
+ we just need to build depend on sdcc 2.9.0 or later, closes: #457402
+ * rebuild reflects python-central file location change, closes: #490513
+ * change Jack build depend to libjack-dev, closes: #527413
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 15 Sep 2009 23:37:57 -0600
+
+gnuradio (3.0.4-2) unstable; urgency=high
+
+ * rebuild with new version number and upload to finally (?) recover from
+ over-zealous removal in response to bug 453154
+ * recommend udev instead of hotplug, closes: #448907
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 23 Dec 2007 12:11:49 -0700
+
+gnuradio (3.0.4-1) unstable; urgency=low
+
+ * new upstream version
+ * fix build failure with gcc-4.3 by adding a #include, closes: #420896
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 14 Aug 2007 22:38:32 -0600
+
+gnuradio (3.0.3-1) unstable; urgency=low
+
+ * new upstream version
+ * tweak gnuradio-doc package to eliminate spurious subdirectory level
+ * add a usrp-doc binary package, recommended by the usrp package, and
+ include xmlto in build dependencies so usrp_guide.html gets generated,
+ closes: #407368
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 11 Mar 2007 23:55:32 -0600
+
+gnuradio (3.0.2-2) unstable; urgency=high
+
+ * add run-time dependency on python-wxgtk2.6. leaving urgency high since
+ this would be a silly bug to release etch with if we can avoid it.
+
+ -- Bdale Garbee <bdale@gag.com> Mon, 4 Dec 2006 15:35:53 -0700
+
+gnuradio (3.0.2-1) unstable; urgency=high
+
+ * new upstream version, fixes FTBFS issues
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 12 Nov 2006 14:52:33 -0800
+
+gnuradio (3.0-3) unstable; urgency=high
+
+ * put python-all-dev back in the build-depends list, closes: #398246
+ * move gr-wxgui conflicts/depends to python-gnuradio, closes: #396302
+ * fix up sections in control to match overrides
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 12 Nov 2006 10:59:58 -0800
+
+gnuradio (3.0-2) unstable; urgency=high
+
+ * reworked package dependencies so that the 'gnuradio' binary package no
+ longer depends on the pieces in contrib. instead, the 'usrp' binary
+ package in contrib now depends on all the USRP-related pieces. A user
+ who doesn't have a USRP board can just install 'gnuradio' and get all
+ the relevant pieces, a USRP user needs to install both 'gnuradio' and
+ 'usrp'. Closes: #394533
+ * improve consistency of references to 'GNU Radio' as upstream project name
+ * make the gnuradio package dependencies on python-gnuradio and python-usrp
+ be version specific on suggestion from Ramakrishnan Muthukrishnan
+
+ -- Bdale Garbee <bdale@gag.com> Fri, 10 Nov 2006 00:39:38 -0800
+
+gnuradio (3.0-1) unstable; urgency=low
+
+ * new maintainer, new upstream version
+ * Restructuring source and binary packages to follow upstream changes, more
+ or less repackaging from scratch taking ideas from the previous packaging
+ by Ramakrishnan Muthukrishnan and Steinar H. Gunderson. This single
+ source package replaces all of:
+ gnuradio-core
+ gnuradio-examples
+ gr-audio-alsa
+ gr-audio-jack
+ gr-audio-oss
+ gr-usrp
+ gr-wxgui
+ usrp
+ In addition, the 'gnuradio' binary package is a new meta-package that
+ conveniently depends on everything gnuradio related to ease installation.
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 8 Oct 2006 13:28:21 -0600
+
+++ /dev/null
-gnuradio (3.3svn-@SVNVERSION@) unstable; urgency=low
-
- * Development trunk updates as of revision @SVNVERSION@
- * See http://gnuradio.org/trac
-
- -- Johnathan Corgan <jcorgan@corganenterprises.com> @BUILD_DATE@
-
-gnuradio (3.2) unstable; urgency=low
-
- * New upstream release 3.2
- * See http://gnuradio.org/trac
-
- -- Johnathan Corgan <jcorgan@corganenterprises.com> Sat, 23 May 2009 18:00:00 -0800
-
-gnuradio (3.1.3) stable; urgency=low
-
- * "Upstream" release, see http://gnuradio.org/trac/wiki/Release3.1Branch
-
- -- Johnathan Corgan <jcorgan@corganenterprises.com> Sat, 23 Aug 2008 19:00:00 -0800
-
-gnuradio (3.1.2) stable; urgency=low
-
- * "Upstream" release, see http://gnuradio.org/trac/wiki/Release3.1Branch
-
- -- Johnathan Corgan <jcorgan@corganenterprises.com> Wed, 24 Mar 2008 09:00:00 -0800
-
-gnuradio (3.1.1) stable; urgency=high
-
- * Fixed regressions in digital packet radio (t196,t198)
- * Fixed RX phase offset causing sidebands (t195)
- * Fixed TX I/Q swapping bug (t179)
- * Fixed loopback bug in gr-sounder
- * Added complex and dual-channel options to oscope for
- BasicRX and LFRX
-
- -- Johnathan Corgan <jcorgan@corganenterprises.com> Sun, 4 Nov 2007 21:15:00 -0800
-
-gnuradio (3.1.0) stable; urgency=low
-
- * Release 3.1 stable branch
- * add/split packages to cover entire GNU Radio distribution
-
- -- Johnathan Corgan <jcorgan@corganenterprises.com> Mon, 22 Oct 2007 10:37:00 -0800
-
-gnuradio (3.0.svn) unstable; urgency=low
-
- * add/split packages to cover entire GNU Radio distribution
- * fix build failure with gcc-4.3 by adding a #include, closes: #420896
- * update copyright assertion on the debian/ contents, since I have
- assigned my copyright to the FSF and now have upstream commit rights
- * merge debian/ into upstream SVN repository
- * add --disable-gr-qtgui (at least until we figure out qwt build deps!)
- * add build dep on python-numpy
- * conditionalize configure and clean targets to handle build from SVN
-
- -- Bdale Garbee <bdale@gag.com> Thu, 26 Jul 2007 18:07:52 -0600
-
-gnuradio (3.0.3-1) unstable; urgency=low
-
- * new upstream version
- * tweak gnuradio-doc package to eliminate spurious subdirectory level
- * add a usrp-doc binary package, recommended by the usrp package, and
- include xmlto in build dependencies so usrp_guide.html gets generated,
- closes: #407368
-
- -- Bdale Garbee <bdale@gag.com> Sun, 11 Mar 2007 23:55:32 -0600
-
-gnuradio (3.0.2-2) unstable; urgency=high
-
- * add run-time dependency on python-wxgtk2.6. leaving urgency high since
- this would be a silly bug to release etch with if we can avoid it.
-
- -- Bdale Garbee <bdale@gag.com> Mon, 4 Dec 2006 15:35:53 -0700
-
-gnuradio (3.0.2-1) unstable; urgency=high
-
- * new upstream version, fixes FTBFS issues
-
- -- Bdale Garbee <bdale@gag.com> Sun, 12 Nov 2006 14:52:33 -0800
-
-gnuradio (3.0-3) unstable; urgency=high
-
- * put python-all-dev back in the build-depends list, closes: #398246
- * move gr-wxgui conflicts/depends to python-gnuradio, closes: #396302
- * fix up sections in control to match overrides
-
- -- Bdale Garbee <bdale@gag.com> Sun, 12 Nov 2006 10:59:58 -0800
-
-gnuradio (3.0-2) unstable; urgency=high
-
- * reworked package dependencies so that the 'gnuradio' binary package no
- longer depends on the pieces in contrib. instead, the 'usrp' binary
- package in contrib now depends on all the USRP-related pieces. A user
- who doesn't have a USRP board can just install 'gnuradio' and get all
- the relevant pieces, a USRP user needs to install both 'gnuradio' and
- 'usrp'. Closes: #394533
- * improve consistency of references to 'GNU Radio' as upstream project name
- * make the gnuradio package dependencies on python-gnuradio and python-usrp
- be version specific on suggestion from Ramakrishnan Muthukrishnan
-
- -- Bdale Garbee <bdale@gag.com> Fri, 10 Nov 2006 00:39:38 -0800
-
-gnuradio (3.0-1) unstable; urgency=low
-
- * new maintainer, new upstream version
- * Restructuring source and binary packages to follow upstream changes, more
- or less repackaging from scratch taking ideas from the previous packaging
- by Ramakrishnan Muthukrishnan and Steinar H. Gunderson. This single
- source package replaces all of:
- gnuradio-core
- gnuradio-examples
- gr-audio-alsa
- gr-audio-jack
- gr-audio-oss
- gr-usrp
- gr-wxgui
- usrp
- In addition, the 'gnuradio' binary package is a new meta-package that
- conveniently depends on everything gnuradio related to ease installation.
-
- -- Bdale Garbee <bdale@gag.com> Sun, 8 Oct 2006 13:28:21 -0600
-
Source: gnuradio
Section: comm
Priority: optional
-Maintainer: Johnathan Corgan <jcorgan@corganenterprises.com>
+Maintainer: Bdale Garbee <bdale@gag.com>
Build-Conflicts: automake1.8, automake1.9
-Build-Depends: debhelper (>= 5.0.38), build-essential, python-central (>=0.5.6), automake, libtool, pkg-config, python-dev (>=2.6), python-dev (<2.7), swig, fftw3-dev | libfftw3-dev, libcppunit-dev, libboost1.37-dev, libgsl0-dev, guile-1.8, libasound2-dev, python-wxgtk2.8, python-numpy, doxygen, xmlto, sdcc-nf, libusb-dev, libjack-dev, portaudio19-dev, libsdl1.2-dev, python-cheetah, python-lxml, python-gtk2, libqt4-dev, libqwt5-qt4-dev, libqwtplot3d-qt4-dev, libblas-dev, texlive-latex-base
-Standards-Version: 3.7.2
-XS-Python-Version: =2.6
+Build-Depends: automake, debhelper (>= 5), doxygen, ghostscript, guile-1.8, libasound2-dev, libaudio-dev, libblas-dev, libboost-date-time1.37-dev | libboost-date-time-dev, libboost-program-options-dev | libboost-program-options1.37-dev, libboost-thread-dev | libboost-thread1.37-dev, libcppunit-dev, libfftw3-dev, libfontconfig1-dev, libfreetype6-dev, libglib2.0-dev, libgsl0-dev, libjack-dev, libpng12-dev, libqt4-dev, libqt4-opengl-dev, libqwt5-qt4-dev, libqwtplot3d-qt4-dev, libsdl1.2-dev, libtool, libusb-dev, libwxgtk2.8-dev, libxext-dev, libxrender-dev, libxt-dev, pkg-config, portaudio19-dev, python-central, python-cheetah, python-dev, python-gtk2, python-lxml, python-numpy, python-qt4, python-qt4-dev, python-wxgtk2.8, sdcc, swig, texlive-latex-base, xdg-utils, xmlto
+Standards-Version: 3.8.3
+XS-Python-Version: >=2.5
################################################################################
# C++ auxiliary libraries #
################################################################################
-Package: libgruel
+Package: libgruel0
Section: libs
Architecture: any
Depends: ${shlibs:Depends}
-Replaces: libpmt
-Conflicts: libpmt
+Replaces: libpmt0
+Conflicts: libpmt0
Description: GNU Radio Utility Etcetera Library
This package implements a variety of low-level utility
routines for GNU Radio.
Package: libgruel-dev
Section: libdevel
Architecture: any
-Depends: libgruel (= ${binary:Version}), libboost1.37-dev, guile-1.8
+Depends: libgruel0 (= ${binary:Version}), libboost-date-time1.37-dev | libboost-date-time-dev
Replaces: libpmt-dev
Conflicts: libpmt-dev
Description: GNU Radio Utility Etcetera Library
.
This package contains header files needed by developers.
-Package: libgnuradio-omnithread
+Package: libgromnithread0
Section: libs
Architecture: any
Replaces: libgnuradio-omnithread0c2a
This package is a fork of the omniORB-4.0.1 threading library
for use with GNU Radio.
-Package: libgnuradio-omnithread-dev
+Package: libgromnithread-dev
Section: libdevel
Architecture: any
Replaces: libgnuradio-omnithread0-dev
Conflicts: libgnuradio-omnithread0-dev
-Depends: libgnuradio-omnithread (= ${binary:Version})
+Depends: libgromnithread0 (= ${binary:Version})
Description: GNU Radio Omnithreads Abstraction Library
This package is a fork of the omniORB-4.0.1 threading library
for use with GNU Radio.
# C++ M-Block library packages #
################################################################################
-Package: libmblock
+Package: libmblock0
Section: libs
Architecture: any
Replaces: libmblock0c2a
Conflicts: libmblock0c2a
-Depends: libpmt (= ${binary:Version}), libgnuradio-omnithread (= ${binary:Version}), libgruel (= ${binary:Version}), ${shlibs:Depends}
+Depends: libpmt0 (= ${binary:Version}), libgromnithread0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio Message Block Library
This package provides the GNU Radio message block library.
Architecture: any
Replaces: libmblock0-dev
Conflicts: libmblock0-dev
-Depends: libmblock (= ${binary:Version}), libgnuradio-omnithread-dev (= ${binary:Version}), libgruel-dev (= ${binary:Version})
+Depends: libmblock0 (= ${binary:Version}), libgromnithread-dev (= ${binary:Version}), libgruel-dev (= ${binary:Version})
Description: GNU Radio Message Block Library
This package provides the GNU Radio message block library.
.
# C++ USRP/USRP2 library packages #
################################################################################
-Package: libusrp
+Package: libusrp0
Section: comm
Architecture: any
Depends: ${shlibs:Depends}
-Replaces: libusrp0, libusrp0c2a, usrp-firmware
+Replaces: libusrp0c2a, usrp-firmware
Conflicts: usrp-firmware
Suggests: usrp-doc
Description: Client side library for the USRP(1) hardware
Section: libdevel
Architecture: any
Replaces: libusrp0-dev
-Depends: libusrp (= ${binary:Version}), libusb-dev, libboost-thread1.37-dev
+Depends: libusrp0 (= ${binary:Version}), libusb-dev, libboost-thread1.37-dev | libboost-thread-dev
Description: Client side library for the USRP(1) hardware
The Universal Software Radio Peripheral (USRP) is an USB-connected,
low-cost and open board. It features four high-speed analog-to-digital
.
This package contains header files needed by developers.
-Package: libusrp2
+Package: libusrp2-0
Section: comm
Architecture: any
-Depends: libgruel (= ${binary:Version}), libgnuradio-omnithread (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgruel0 (= ${binary:Version}), libgromnithread0 (= ${binary:Version}), ${shlibs:Depends}
Description: Client side library for the USRP2 hardware
The Universal Software Radio Peripheral 2 (USRP2) is a GbE-connected,
low-cost and open board. It features two high-speed analog-to-digital
Package: libusrp2-dev
Section: libdevel
Architecture: any
-Depends: libusrp2 (= ${binary:Version}), libboost-thread1.37-dev, libgnuradio-omnithread-dev (= ${binary:Version}), libgruel-dev (= ${binary:Version})
+Depends: libusrp2-0 (= ${binary:Version}), libboost-thread1.37-dev | libboost-thread-dev, libgromnithread-dev (= ${binary:Version}), libgruel-dev (= ${binary:Version})
Description: Client side library for the USRP2 hardware
The Universal Software Radio Peripheral 2 (USRP2) is a GbE-connected,
low-cost and open board. It features two high-speed analog-to-digital
# C++ GNU Radio block library packages #
################################################################################
-Package: libgnuradio-core
+Package: libgnuradio-core0
Section: libs
Architecture: any
-Depends: libgruel (= ${binary:Version}), ${shlibs:Depends}
-Conflicts: libgnuradio-core0, libgnuradio-core0c2, libgnuradio-core0c2a
-Replaces: libgnuradio-core0, libgnuradio-core0c2, libgnuradio-core0c2a
+Depends: libgruel0 (= ${binary:Version}), ${shlibs:Depends}
+Conflicts: libgnuradio-core0c2, libgnuradio-core0c2a
+Replaces: libgnuradio-core0c2, libgnuradio-core0c2a
Suggests: gnuradio-doc
Description: The GNU Sofware Radio Core Library
This package contains the core GNU Radio libraries.
Architecture: any
Replaces: libgnuradio-core0-dev
Conflicts: libgnuradio-core0-dev
-Depends: libgnuradio-core (= ${binary:Version}), libgruel-dev (= ${binary:Version}), libboost-thread1.37-dev, libboost-date-time1.37-dev, libcppunit-dev, libgsl0-dev, libatlas-base-dev, libfftw3-dev, swig
+Depends: libgnuradio-core0 (= ${binary:Version}), libgruel-dev (= ${binary:Version}), libboost-thread1.37-dev | libboost-thread-dev, libboost-date-time1.37-dev | libboost-date-time-dev, libboost-program-options1.37-dev | libboost-program-options-dev, libgsl0-dev, libatlas-base-dev, libfftw3-dev, swig
Description: The GNU Software Radio Core Library
This package contains the core GNU Radio libraries.
.
This package contains header files needed by developers.
-Package: libgnuradio-audio-alsa
+Package: libgnuradio-audio-alsa0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ block for ALSA sound system
This package contains the ALSA sound system driver for GNU Radio.
Package: libgnuradio-audio-alsa-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-audio-alsa (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), libasound2-dev
+Depends: libgnuradio-audio-alsa0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), libasound2-dev
Description: GNU Radio C++ block for ALSA sound system
This package contains the ALSA sound system driver for GNU Radio.
.
This package contains header files needed by developers.
-Package: libgnuradio-audio-jack
+Package: libgnuradio-audio-jack0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ block for JACK sound system
This package contains the JACK sound system driver for GNU Radio.
Package: libgnuradio-audio-jack-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-audio-jack (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), libjack-dev
+Depends: libgnuradio-audio-jack0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), libjack-dev
Description: GNU Radio C++ block for JACK sound system
This package contains the JACK sound system driver for GNU Radio.
.
This package contains header files needed by developers.
-Package: libgnuradio-audio-oss
+Package: libgnuradio-audio-oss0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ block for OSS sound system
This package contains the OSS sound system driver for GNU Radio.
Package: libgnuradio-audio-oss-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-audio-oss (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
+Depends: libgnuradio-audio-oss0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
Description: GNU Radio C++ block for OSS sound system
This package contains the OSS sound system driver for GNU Radio.
.
This package contains header files needed by developers.
-Package: libgnuradio-audio-portaudio
+Package: libgnuradio-audio-portaudio0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ block for PORTAUDIO sound system
This package contains the PORTAUDIO sound system driver for GNU Radio.
Package: libgnuradio-audio-portaudio-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-audio-portaudio (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), portaudio19-dev
+Depends: libgnuradio-audio-portaudio0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), portaudio19-dev
Description: GNU Radio C++ block for PORTAUDIO sound system
This package contains the PORTAUDIO sound system driver for GNU Radio.
.
This package contains header files needed by developers.
-Package: libgnuradio-cvsd-vocoder
+Package: libgnuradio-cvsd-vocoder0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ block implementing the CVSD vocoder
This package provides an implementation of a CVSD vocoder for
GNU Radio.
Package: libgnuradio-cvsd-vocoder-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-cvsd-vocoder (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
+Depends: libgnuradio-cvsd-vocoder0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
Description: GNU Radio C++ block implement the CVSD vocoder
This package provides an implementation of a CVSD vocoder for
GNU Radio.
.
This package contains header files needed by developers.
-Package: libgnuradio-gsm-fr-vocoder
+Package: libgnuradio-gsm-fr-vocoder0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ block implementing the GSM full rate vocoder
This package provides an implementation of a GSM-FR vocoder for
GNU Radio.
Package: libgnuradio-gsm-fr-vocoder-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-gsm-fr-vocoder (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
+Depends: libgnuradio-gsm-fr-vocoder0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
Description: GNU Radio C++ block implementing the GSM full rate vocoder
This package provides an implementation of a GSM-FR vocoder for
GNU Radio.
.
This package contains header files needed by developers.
-Package: libgnuradio-pager
+Package: libgnuradio-pager0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ block implementing the FLEX one-way pager protocol
This package provides an implementation of the FLEX one-way pager protocol
for GNU Radio.
Package: libgnuradio-pager-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-pager (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
+Depends: libgnuradio-pager0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
Description: GNU Radio C++ block implementing the FLEX one-way pager protocol
This package provides an implementation of the FLEX one-way pager protocol
for GNU Radio.
.
This package contains header files needed by developers.
-Package: libgnuradio-qtgui
+Package: libgnuradio-qtgui0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ blocks fro QT-based GUI applications
This package contains the C++ library for using GNU Radio inside
QT-based GUI applications.
Package: libgnuradio-qtgui-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-qtgui (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), libqt4-dev, libqwtplot3d-qt4-dev
+Depends: libgnuradio-qtgui0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), libqt4-dev, libqwtplot3d-qt4-dev
Description: GNU Radio C++ blocks fro QT-based GUI applications
This package contains the C++ library for using GNU Radio inside
QT-based GUI applications.
.
This package contains header files needed by developers.
-Package: libgnuradio-trellis
+Package: libgnuradio-trellis0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ block implementing trellis-coded modulation
This package provides an implementation of tellis-coded modulation
for GNU Radio.
Package: libgnuradio-trellis-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-trellis (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
+Depends: libgnuradio-trellis0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
Description: GNU Radio C++ block implementing trellis-coded modulation
This package provides an implementation of trellis-coded modulation
for GNU Radio.
.
This package contains header files needed by developers.
-Package: libgnuradio-video-sdl
+Package: libgnuradio-video-sdl0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ block implementing video-sdl-coded modulation
This package provides an interface to the SDL rendering library
for GNU Radio.
Package: libgnuradio-video-sdl-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-video-sdl (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
+Depends: libgnuradio-video-sdl0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version})
Description: GNU Radio C++ block implementing video-sdl-coded modulation
This package provides an interface to the SDL rendering library
for GNU Radio.
.
This package contains header files needed by developers.
-Package: libgnuradio-usrp
+Package: libgnuradio-usrp0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), libusrp (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), libusrp0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ blocks for USRP(1) hardware
This package contains the C++ API blocks for the Universal Software Radio
Peripheral.
Package: libgnuradio-usrp-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-usrp (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), libusrp-dev (= ${binary:Version})
+Depends: libgnuradio-usrp0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), libusrp-dev (= ${binary:Version})
Description: GNU Radio C++ blocks for USRP(1) hardware
This package contains the C++ API blocks for the Universal Software Radio
Peripheral.
.
This package contains header files needed by developers.
-Package: libgnuradio-usrp2
+Package: libgnuradio-usrp2-0
Section: libs
Architecture: any
-Depends: libgnuradio-core (= ${binary:Version}), libusrp2 (= ${binary:Version}), ${shlibs:Depends}
+Depends: libgnuradio-core0 (= ${binary:Version}), libusrp2-0 (= ${binary:Version}), ${shlibs:Depends}
Description: GNU Radio C++ blocks for USRP2 hardware
This package contains the C++ API blocks for the Universal Software Radio
Peripheral 2.
Package: libgnuradio-usrp2-dev
Section: libdevel
Architecture: any
-Depends: libgnuradio-usrp2 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), libusrp2-dev (= ${binary:Version})
+Depends: libgnuradio-usrp2-0 (= ${binary:Version}), libgnuradio-core-dev (= ${binary:Version}), libusrp2-dev (= ${binary:Version})
Description: GNU Radio C++ blocks for USRP2 hardware
This package contains the C++ API blocks for the Universal Software Radio
Peripheral 2.
Package: python-usrp
Architecture: any
-Depends: ${python:Depends}, libusrp (= ${binary:Version}), ${shlibs:Depends}
+Depends: ${python:Depends}, libusrp0 (= ${binary:Version}), ${shlibs:Depends}
Provides: ${python:Provides}
Section: python
XB-Python-Version: ${python:Versions}
Package: python-gnuradio-audio-alsa
Architecture: any
-Depends: ${python:Depends}, ${shlibs:Depends}, libgnuradio-audio-alsa (= ${binary:Version}), python-gnuradio-core
+Depends: ${python:Depends}, ${shlibs:Depends}, libgnuradio-audio-alsa0 (= ${binary:Version}), python-gnuradio-core
Section: python
Provides: ${python:Provides}, python-gnuradio-audio
XB-Python-Version: ${python:Versions}
Package: python-gnuradio-qtgui
Architecture: any
-Depends: ${python:Depends}, ${shlibs:Depends}, libgnuradio-qtgui (= ${binary:Version}), python-gnuradio-core
+Depends: ${python:Depends}, ${shlibs:Depends}, libgnuradio-qtgui0 (= ${binary:Version}), python-gnuradio-core
Section: python
Provides: ${python:Provides}
XB-Python-Version: ${python:Versions}
Package: libgnuradio
Section: libs
Architecture: all
-Depends: libgnuradio-core (= ${binary:Version}),
-Recommends: libgnuradio-audio-alsa, libgnuradio-cvsd-vocoder, libgnuradio-gsm-fr-vocoder, libgnuradio-pager, libgnuradio-qtqui, libgnuradio-trellis, libgnuradio-usrp, libgnuradio-usrp2, libgnuradio-video-sdl
+Depends: libgnuradio-core0
+Recommends: libgnuradio-audio-alsa0, libgnuradio-cvsd-vocoder0, libgnuradio-gsm-fr-vocoder0, libgnuradio-pager0, libgnuradio-qtqui0, libgnuradio-trellis0, libgnuradio-usrp0, libgnuradio-usrp20, libgnuradio-video-sdl0
Description: GNU Radio C++ API libraries
This is a virtual package that depends, recommends, or suggests all of the
binary packages that make up the GNU Radio C++ API. For development headers,
Package: libgnuradio-dev
Section: libdevel
Architecture: all
-Depends: libgnuradio (= ${binary:Version}), libgnuradio-core-dev
+Depends: libgnuradio0 (= ${binary:Version}), libgnuradio-core-dev
Recommends: libgnuradio-audio-alsa-dev, libgnuradio-cvsd-vocoder-dev, libgnuradio-gsm-fr-vocoder-dev, libgnuradio-pager-dev, libgnuradio-qtgui-dev, libgnuradio-trellis-dev, libgnuradio-usrp-dev, libgnuradio-usrp2-dev, libgnuradio-video-sdl-dev
Suggests: gnuradio-doc, usrp-doc
Replaces: gnuradio-dev
learned and portions were taken from the previous Debian packages built
by Ramakrishnan Muthukrishnan and Steinar H. Gunderson.
-GNU Radio was downloaded from http://www.gnu.org/software/gnuradio/
+GNU Radio was downloaded from http://gnuradio.org/
Upstream Authors:
Eric Blossom <eb@comsec.com>
Copyright:
GNU Radio is copyrighted by the Free Software Foundation and is licensed
-under the GNU General Public License (GPL), a copy of which is available
-on a Debian system at:
+under the GNU General Public License (GPL), version 3 or later, a copy of
+which is available on a Debian system at:
/usr/share/common-licenses/GPL
-The Debian packaging was created by Bdale Garbee <bdale@gag.com>, is
-(c) Copyright 2006 Hewlett-Packard Development Company, L.P.,
-and is made available under the terms of the GPL.
+The GNU Radio source distribution also incorporates a few components that
+carry other copyrights and license assertions, as follows:
+
+gcell/ibm/sync/ppu_source/*
+gcell/ibm/sync/spu_source/*
+ (C)Copyright 2001,2007,
+ International Business Machines Corporation,
+ Sony Computer Entertainment, Incorporated,
+ Toshiba Corporation,
+
+ All Rights Reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the
+ following conditions are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ - Neither the name of IBM Corporation nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ The gcell subsystem is not included in Debian binary package builds.
+
+gnuradio-core/src/lib/g72x/*
+ This source code is released by Sun Microsystems, Inc. to the public
+ domain. Please give your acknowledgement in product literature if
+ this code is used in your product implementation.
+
+gnuradio-core/src/lib/general/malloc16.c
+ Copyright 2001 Phil Karn, KA9Q
+ May be used under the terms of the GNU Public License (GPL)
+
+gnuradio-core/src/lib/reed-solomon/*
+ Copyright 2002, Phil Karn, KA9Q
+ May be used under the terms of the GNU Public License (GPL)
+
+*.{qpf,qsf}
+ Copyright (C) 1991-2004 Altera Corporation
+ Any megafunction design, and related netlist (encrypted or decrypted),
+ support information, device programming or simulation file, and any
+ other associated documentation or information provided by Altera or
+ a partner under Altera's Megafunction Partnership Program may be used
+ only to program PLD devices (but not masked PLD devices) from Altera.
+ Any other use of such megafunction design, netlist, support
+ information, device programming or simulation file, or any other
+ related documentation or information is prohibited for any other
+ purpose, including, but not limited to modification, reverse
+ engineering, de-compiling, or use with any other silicon devices,
+ unless such use is explicitly licensed under a separate agreement with
+ Altera or a megafunction partner. Title to the intellectual property,
+ including patents, copyrights, trademarks, trade secrets, or maskworks,
+ embodied in any such megafunction design, netlist, support information,
+ device programming or simulation file, or any other related
+ documentation or information provided by Altera or a megafunction
+ partner, remains with Altera, the megafunction partner, or their
+ respective licensors. No other licenses, including any licenses needed
+ under any third party's intellectual property, are provided herein.
+
+ Thesea are configuration files generated by Altera proprietary tools
+ used in the creation of an open hardware design often used with GNU
+ Radio, and for which GNU Radio includes device drivers. These files
+ are not used in the Debian package build process.
+
+gr-gsm-fr-vocoders/src/lib/gsm/*
+ Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann,
+ Technische Universitaet Berlin
+
+ Permission to use, copy, modify, and distribute this software
+ for any purpose with or without fee is hereby granted,
+ provided that this notice is not removed and that neither
+ the authors nor the Technische Universitaet Berlin are
+ deemed to have made any representations as to the suitability
+ of this software for any purpose nor are held responsible
+ for any defects of this software. THERE IS ABSOLUTELY NO
+ WARRANTY FOR THIS SOFTWARE.
+
+gruel/src/include/gruel/thread_group.h
+ Copyright (C) 2001-2003 William E. Kempf
+ Copyright (C) 2007 Anthony Williams
+ Copyright 2008 Free Software Foundation, Inc.
+
+ The original was distributed under the Boost Software License,
+ Version 1.0, but this derivative work is now covered by the overall
+ license assertion for GNU Radio.
+
+gnuradio-core/src/lib/general/gr_remez.cc
+ Copyright (c) 1995,1998 Jake Janovetz (janovetz@uiuc.edu)
+ Copyright (c) 2004 Free Software Foundation, Inc.
+
+ The original was distributed under LGPL version 2 or later, this
+ derivative work is now covered by the overall license assertion
+ for GNU Radio.
+
+gr-gpio/src/fpga/include/common_config*.vh
+ Copyright (C) 2006,2007 Matt Ettus
+ Copyright (C) 2008 Corgan Enterprises LLC
+
+ The original was distributed under GPL version 2 or later, this
+ derivative work is now covered by the overall license assertion
+ for GNU Radio.
+
+gr-wxgui/src/python/plot.py
+ (C) 2002, 2007 Gordon Williams
+
+ The original was licensed "Use as you wish", this derivative work
+ is now covered by the overall license assertion for GNU Radio.
+
+gr-wxgui/src/python/plotter/gltext.py
+ Copyright (C) 2007 Christian Brugger, Stefan Hacker
+
+ The original was distributed under GPL version 2 or later, this
+ derivative work is now covered by the overall license assertion
+ for GNU Radio.
+
+Various files in the omnithread library carry these copyrights:
+ Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 1994,1995,1996,1997 Olivetti & Oracle Research Laboratory
+ Copyright Wavetek Wandel & Goltermann, Plymouth.
+ Copyright (C) 1994,1995,1996, 1997 Immisch, becker & Partner
+ Copyright (C) 1998 Steven Brennes
+ Copyright (C) 1995-1999 AT&T Laboratories Cambridge
+
+ The original omnithread library was distributed under LGPL version 2
+ or later, this derivative work is now covered by the overall license
+ assertion for GNU Radio.
+
+++ /dev/null
-ACTION=="add", BUS=="usb", SYSFS{idVendor}=="fffe", SYSFS{idProduct}=="0002", GROUP:="usrp", MODE:="0660"
--- /dev/null
+ACTION=="add", BUS=="usb", SYSFS{idVendor}=="fffe", SYSFS{idProduct}=="0002", GROUP:="usrp", MODE:="0660"
--- /dev/null
+@usrp - rtprio 50
+++ /dev/null
-@usrp - rtprio 50
+++ /dev/null
-#! /bin/sh
-
-GROUP=usrp
-
-# Set the permissions for the USRP devices right.
-set_permissions() {
- if [ -f "$1" ]
- then
- if getent group $GROUP > /dev/null; then
- chmod 660 "$DEVICE"
- chown root.$GROUP "$1"
- fi
- fi
-}
-
-#
-# If we do not have /sbin/hotplug, we are being called by post-sarge udev
-# emulating hotplug. In that case, all of this is handled by our udev rules,
-# so we don't need to duplicate the work done here.
-#
-if ! [ -x /sbin/hotplug ]; then
- exit
-fi
-
-if [ "$ACTION" != "add" ]; then
- exit
-fi
-
-# FIXME: Map the USB device ID to usrper's idea of "which USRP".
-# For now, we just assume the user only has a single one.
-
-case $PRODUCT in
- # USRP without loaded firmware
- fffe/2/2 | fffe/2/4)
- sleep 1 # required on some machines
- /usr/bin/usrper load_standard_bits
- set_permissions "$DEVICE"
- ;;
-
- # USRP with loaded firmware
- fffe/2/102 | fffe/2/104)
- set_permissions "$DEVICE"
- ;;
-esac
-
-
-
+++ /dev/null
-etc/gnuradio/conf.d
+++ /dev/null
-etc/gnuradio/conf.d/gnuradio-core.conf
-usr/lib/libgnuradio-core.la
-usr/lib/libgnuradio-core.so.*
--- /dev/null
+etc/gnuradio/conf.d
--- /dev/null
+etc/gnuradio/conf.d/gnuradio-core.conf
+usr/lib/libgnuradio-core.la
+usr/lib/libgnuradio-core.so.*
+usr/bin/gnuradio-config-info
+++ /dev/null
-usr/lib/pkgconfig
-usr/include/gnuradio
+++ /dev/null
-usr/include/gnuradio/omni_time.h
-usr/include/gnuradio/omnithread.h
-usr/include/gnuradio/ot_posix.h
-usr/lib/pkgconfig/gnuradio-omnithread.pc
-usr/lib/libgromnithread.so
+++ /dev/null
-usr/lib/libgromnithread.la
-usr/lib/libgromnithread.so.*
--- /dev/null
+usr/lib/pkgconfig
+usr/include/gnuradio
--- /dev/null
+usr/include/gnuradio/omni_time.h
+usr/include/gnuradio/omnithread.h
+usr/include/gnuradio/ot_posix.h
+usr/lib/pkgconfig/gnuradio-omnithread.pc
+usr/lib/libgromnithread.so
--- /dev/null
+usr/lib/libgromnithread.la
+usr/lib/libgromnithread.so.*
+++ /dev/null
-usr/lib/libgruel.la
-usr/lib/libgruel.so.*
-
-
--- /dev/null
+usr/lib/libgruel.la
+usr/lib/libgruel.so.*
+
+
+++ /dev/null
-usr/lib/libmblock.la
-usr/lib/libmblock.so.*
-
--- /dev/null
+usr/lib/libmblock.la
+usr/lib/libmblock.so.*
+
+++ /dev/null
-usr/lib/libusrp-inband.la
-usr/lib/libusrp-inband.so.*
+++ /dev/null
-etc/udev/rules.d
-/usr/share/usrp/rev2
-/usr/share/usrp/rev4
+++ /dev/null
-usr/lib/libusrp.la
-usr/lib/libusrp.so.*
-etc/udev/rules.d/40-usrp.rules
-usr/share/usrp/rev2/multi_2rxhb_2tx.rbf
-usr/share/usrp/rev2/std.ihx
-usr/share/usrp/rev2/std_2rxhb_2tx.rbf
-usr/share/usrp/rev2/std_4rx_0tx.rbf
-usr/share/usrp/rev4/multi_2rxhb_2tx.rbf
-usr/share/usrp/rev4/std.ihx
-usr/share/usrp/rev4/std_2rxhb_2tx.rbf
-usr/share/usrp/rev4/std_4rx_0tx.rbf
+++ /dev/null
-#! /bin/sh
-
-set -e
-
-if [ "$1" != "configure" ]; then
- exit 0
-fi
-
-# Create usrp group for udev access
-if ! getent group usrp >/dev/null; then
- addgroup --system usrp
-fi
-
-ldconfig
-exit 0
+++ /dev/null
-#! /bin/sh
-
-set -e
-
-if [ "$1" != "remove" ]; then
- exit 0
-fi
-
-/sbin/ldconfig
-exit 0
--- /dev/null
+etc/udev/rules.d
+/usr/share/usrp/rev2
+/usr/share/usrp/rev4
--- /dev/null
+usr/lib/libusrp.la
+usr/lib/libusrp.so.*
+etc/udev/rules.d/40-usrp.rules
+usr/share/usrp/rev2/multi_2rxhb_2tx.rbf
+usr/share/usrp/rev2/std.ihx
+usr/share/usrp/rev2/std_2rxhb_2tx.rbf
+usr/share/usrp/rev2/std_4rx_0tx.rbf
+usr/share/usrp/rev4/multi_2rxhb_2tx.rbf
+usr/share/usrp/rev4/std.ihx
+usr/share/usrp/rev4/std_2rxhb_2tx.rbf
+usr/share/usrp/rev4/std_4rx_0tx.rbf
--- /dev/null
+#! /bin/sh
+
+set -e
+
+if [ "$1" != "configure" ]; then
+ exit 0
+fi
+
+# Create usrp group for udev access
+if ! getent group usrp >/dev/null; then
+ addgroup --system usrp
+fi
+
+#DEBHELPER#
+
+exit 0
--- /dev/null
+etc/security/limits.d
+
--- /dev/null
+usr/lib/libusrp2.la
+usr/lib/libusrp2.so.*
+usr/bin/usrp2_socket_opener
+usr/bin/find_usrps
+etc/security/limits.d/libusrp2-0.limits
--- /dev/null
+#! /bin/sh
+
+set -e
+
+if [ "$1" != "configure" ]; then
+ exit 0
+fi
+
+# Create usrp group for access
+if ! getent group usrp >/dev/null; then
+ addgroup --system usrp
+fi
+
+# Create setuid root for group usrp on socket opener
+chown root:usrp /usr/bin/usrp2_socket_opener
+chmod 04750 /usr/bin/usrp2_socket_opener
+
+#DEBHELPER#
+
+exit 0
+++ /dev/null
-etc/security/limits.d
-
+++ /dev/null
-usr/lib/libusrp2.la
-usr/lib/libusrp2.so.*
-usr/bin/usrp2_socket_opener
-usr/bin/find_usrps
-etc/security/limits.d/libusrp2.limits
+++ /dev/null
-#! /bin/sh
-
-set -e
-
-if [ "$1" != "configure" ]; then
- exit 0
-fi
-
-# Create usrp group for access
-if ! getent group usrp >/dev/null; then
- addgroup --system usrp
-fi
-
-# Create setuid root for group usrp on socket opener
-chown root.usrp /usr/bin/usrp2_socket_opener
-chmod 04750 /usr/bin/usrp2_socket_opener
-ldconfig
-exit 0
+++ /dev/null
-#! /bin/sh
-
-set -e
-
-if [ "$1" != "remove" ]; then
- exit 0
-fi
-
-/sbin/ldconfig
-exit 0
export DH_PYCENTRAL=nomove
+DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
clean:
dh_testdir
dh_testroot
dh_testdir
[ -f ./configure ] || ./bootstrap
./configure \
+ --build=$(DEB_BUILD_GNU_TYPE) \
--prefix=/usr \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
--disable-gr-audio-osx \
--disable-gr-audio-windows \
--disable-gcell --disable-gr-gcell \
- --disable-gr-comedi --disable-usrp2-firmware
+ --disable-gr-comedi --disable-usrp2-firmware
touch configure-stamp
build: build-stamp
extract: extract-stamp
extract-stamp: build-stamp debian/bin/gen-install-files.sh
dh_testdir
- debian/bin/gen-install-files.sh
+ chmod +x debian/bin/gen-install-files.sh debian/bin/extract-install-filenames
+ debian/bin/gen-install-files.sh
touch $@
install: install-stamp
done
: # Deposit rule to allow group 'usrp' access to USRP hardware
- install -m 0644 -D debian/custom/libusrp.udev \
+ install -m 0644 -D debian/custom/libusrp0.udev \
debian/tmp/etc/udev/rules.d/40-usrp.rules
: # Deposit rule to allow group 'usrp' access to USRP2 hardware
- install -m 0644 -D debian/custom/libusrp2.limits \
- debian/tmp/etc/security/limits.d/libusrp2.limits
+ install -m 0644 -D debian/custom/libusrp2-0.limits \
+ debian/tmp/etc/security/limits.d/libusrp2-0.limits
: # Install custom grc.conf
install -m 0644 -D debian/custom/grc.conf \
parser.print_help()
sys.exit(1)
+ #FIXME to use git now
svn_rev = get_svn_rev()
os.environ['TZ'] = 'PST8PDT' # always pacific
#include <gri_fft.h>
#include <gr_io_signature.h>
#include <cstdio>
+#include <cstring>
gr_pfb_channelizer_ccf_sptr gr_make_pfb_channelizer_ccf (unsigned int numchans,
const std::vector<float> &taps)
in order for them to operate.
-HRPT Operation
---------------
+HRPT OPERATION
usrp_rx_hrpt.py
+---------------
This GUI script will receive HRPT RF, demodulate, synchronize, and deframe
HRPT minor frames into a file. The file stores a series of 11090 word,
valid decimation rates are 24 and 32, which may word but with more bit
errors. No other decimation rates will work.
+usrp_rx_hrpt2.py
+----------------
+
+This GUI script uses fewer graphical displays to reduce CPU consumption on
+slower machines, but otherwise operates identically to userp_rx_hrpt.py.
+
+usrp_rx_hrpt_nogui.py
+---------------------
+
+This non-GUI script operates without a display and requires that all parameters
+be set in the configuration file prior to running. It has no command-line
+parameters, and works identically to the GUI scripts.
demod_hrpt_file.py
+------------------
-This command-line only script will operate on a file generated with
+This non-GUI script will operate on a file generated with
usrp_rx_cfile.py and output frames in the same format as above. It does
-*not* use the configuration file above.
+*not* use the configuration file above; instead you must pass parameters to
+it on the command line. To exit the program, press Enter.
Usage: demod_hrpt_file.py: [options]
dist_bin_SCRIPTS = \
demod_hrpt_file.py \
usrp_rx_hrpt.py \
+ usrp_rx_hrpt2.py \
+ usrp_rx_hrpt_nogui.py \
usrp_rx_lrit.py
EXTRA_DIST = \
demod_hrpt_file.grc \
usrp_rx_hrpt.grc \
+ usrp_rx_hrpt2.grc \
+ usrp_rx_hrpt_nogui.grc \
usrp_rx_lrit.grc
endif
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Wed Sep 23 11:37:25 2009</timestamp>
+ <timestamp>Sun Sep 27 09:51:42 2009</timestamp>
<block>
<key>options</key>
<param>
</param>
</block>
<block>
- <key>parameter</key>
+ <key>import</key>
<param>
<key>id</key>
- <value>decim</value>
+ <value>import_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Decimation</value>
- </param>
- <param>
- <key>value</key>
- <value>16</value>
- </param>
- <param>
- <key>type</key>
- <value>intx</value>
- </param>
- <param>
- <key>short_id</key>
- <value>d</value>
+ <key>import</key>
+ <value>import math</value>
</param>
<param>
<key>_coordinate</key>
- <value>(404, 102)</value>
+ <value>(9, 92)</value>
</param>
<param>
<key>_rotation</key>
<key>parameter</key>
<param>
<key>id</key>
- <value>pll_alpha</value>
+ <value>filename</value>
</param>
<param>
<key>_enabled</key>
</param>
<param>
<key>label</key>
- <value></value>
+ <value>Filename</value>
</param>
<param>
<key>value</key>
- <value>0.05</value>
+ <value>usrp.dat</value>
</param>
<param>
<key>type</key>
- <value>eng_float</value>
+ <value>string</value>
</param>
<param>
<key>short_id</key>
- <value>p</value>
+ <value>F</value>
</param>
<param>
<key>_coordinate</key>
- <value>(516, 102)</value>
+ <value>(200, 101)</value>
</param>
<param>
<key>_rotation</key>
<key>parameter</key>
<param>
<key>id</key>
- <value>sync_alpha</value>
+ <value>output</value>
</param>
<param>
<key>_enabled</key>
</param>
<param>
<key>label</key>
- <value></value>
+ <value>Output</value>
</param>
<param>
<key>value</key>
- <value>0.05</value>
+ <value>frames.dat</value>
</param>
<param>
<key>type</key>
- <value>eng_float</value>
+ <value>string</value>
</param>
<param>
<key>short_id</key>
- <value>s</value>
+ <value>o</value>
</param>
<param>
<key>_coordinate</key>
- <value>(601, 103)</value>
+ <value>(302, 101)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>import</key>
+ <key>gr_float_to_complex</key>
<param>
<key>id</key>
- <value>import_0</value>
+ <value>f2c</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>import</key>
- <value>import math</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(9, 92)</value>
+ <value>(832, 363)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>parameter</key>
+ <key>virtual_sink</key>
<param>
<key>id</key>
- <value>filename</value>
+ <value>samples_sink</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Filename</value>
+ <key>stream_id</key>
+ <value>samples</value>
</param>
<param>
- <key>value</key>
- <value>usrp.dat</value>
+ <key>_coordinate</key>
+ <value>(1070, 376)</value>
</param>
<param>
- <key>type</key>
- <value>string</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>noaa_hrpt_sync_fb</key>
<param>
- <key>short_id</key>
- <value>F</value>
+ <key>id</key>
+ <value>sync</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alpha</key>
+ <value>sync_alpha</value>
+ </param>
+ <param>
+ <key>beta</key>
+ <value>sync_alpha**2/4.0</value>
+ </param>
+ <param>
+ <key>sps</key>
+ <value>sps</value>
+ </param>
+ <param>
+ <key>max_offset</key>
+ <value>max_sync_offset</value>
</param>
<param>
<key>_coordinate</key>
- <value>(200, 101)</value>
+ <value>(813, 455)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>gr_file_source</key>
+ <key>noaa_hrpt_deframer</key>
<param>
<key>id</key>
- <value>file_source</value>
+ <value>deframer</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1037, 483)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_file_sink</key>
+ <param>
+ <key>id</key>
+ <value>file_sink</value>
</param>
<param>
<key>_enabled</key>
</param>
<param>
<key>file</key>
- <value>filename</value>
+ <value>output</value>
</param>
<param>
<key>type</key>
<value>short</value>
</param>
- <param>
- <key>repeat</key>
- <value>False</value>
- </param>
<param>
<key>vlen</key>
<value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(102, 368)</value>
+ <value>(1238, 479)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>gr_short_to_float</key>
+ <key>noaa_hrpt_decoder</key>
<param>
<key>id</key>
- <value>s2f</value>
+ <value>decoder</value>
</param>
<param>
<key>_enabled</key>
</param>
<param>
<key>_coordinate</key>
- <value>(305, 380)</value>
+ <value>(1237, 542)</value>
</param>
<param>
<key>_rotation</key>
</param>
<param>
<key>_coordinate</key>
- <value>(526, 363)</value>
+ <value>(628, 363)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>gr_float_to_complex</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>f2c</value>
+ <value>decim</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(730, 363)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
+ <key>label</key>
+ <value>Decimation</value>
</param>
- </block>
- <block>
- <key>virtual_sink</key>
<param>
- <key>id</key>
- <value>samples_sink</value>
+ <key>value</key>
+ <value>16</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>type</key>
+ <value>intx</value>
</param>
<param>
- <key>stream_id</key>
- <value>samples</value>
+ <key>short_id</key>
+ <value>d</value>
</param>
<param>
<key>_coordinate</key>
- <value>(968, 376)</value>
+ <value>(415, 101)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>virtual_source</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>samples_source</value>
+ <value>pll_alpha</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>stream_id</key>
- <value>samples</value>
+ <key>label</key>
+ <value></value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0.05</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>eng_float</value>
+ </param>
+ <param>
+ <key>short_id</key>
+ <value>p</value>
</param>
<param>
<key>_coordinate</key>
- <value>(104, 479)</value>
+ <value>(527, 101)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>gr_moving_average_xx</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>matched_filter</value>
+ <value>sync_alpha</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>label</key>
+ <value></value>
</param>
<param>
- <key>length</key>
- <value>hs</value>
+ <key>value</key>
+ <value>0.05</value>
</param>
<param>
- <key>scale</key>
- <value>1.0/hs</value>
+ <key>type</key>
+ <value>eng_float</value>
</param>
<param>
- <key>max_iter</key>
- <value>4000</value>
+ <key>short_id</key>
+ <value>s</value>
</param>
<param>
<key>_coordinate</key>
- <value>(302, 463)</value>
+ <value>(615, 99)</value>
</param>
<param>
<key>_rotation</key>
</param>
<param>
<key>_coordinate</key>
- <value>(504, 463)</value>
+ <value>(606, 463)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>noaa_hrpt_sync_fb</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>sync</value>
+ <value>samples_source</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>alpha</key>
- <value>sync_alpha</value>
- </param>
- <param>
- <key>beta</key>
- <value>sync_alpha**2/4.0</value>
- </param>
- <param>
- <key>sps</key>
- <value>sps</value>
- </param>
- <param>
- <key>max_offset</key>
- <value>max_sync_offset</value>
+ <key>stream_id</key>
+ <value>samples</value>
</param>
<param>
<key>_coordinate</key>
- <value>(711, 455)</value>
+ <value>(164, 479)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>noaa_hrpt_deframer</key>
+ <key>gr_short_to_float</key>
<param>
<key>id</key>
- <value>deframer</value>
+ <value>s2f</value>
</param>
<param>
<key>_enabled</key>
</param>
<param>
<key>_coordinate</key>
- <value>(935, 483)</value>
+ <value>(365, 380)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>gr_file_sink</key>
+ <key>gr_file_source</key>
<param>
<key>id</key>
- <value>file_sink</value>
+ <value>file_source</value>
</param>
<param>
<key>_enabled</key>
</param>
<param>
<key>file</key>
- <value>output</value>
+ <value>filename</value>
</param>
<param>
<key>type</key>
<value>short</value>
</param>
+ <param>
+ <key>repeat</key>
+ <value>False</value>
+ </param>
<param>
<key>vlen</key>
<value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1136, 479)</value>
+ <value>(162, 368)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>noaa_hrpt_decoder</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>decoder</value>
+ <value>mf_taps</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
+ <param>
+ <key>value</key>
+ <value>[-0.5/hs,]*hs+[0.5/hs,]*hs</value>
+ </param>
<param>
<key>_coordinate</key>
- <value>(1135, 542)</value>
+ <value>(829, 21)</value>
</param>
<param>
<key>_rotation</key>
</param>
</block>
<block>
- <key>parameter</key>
+ <key>gr_fir_filter_xxx</key>
<param>
<key>id</key>
- <value>output</value>
+ <value>gr_fir_filter_xxx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Output</value>
- </param>
- <param>
- <key>value</key>
- <value>frames.dat</value>
+ <key>type</key>
+ <value>ccc</value>
</param>
<param>
- <key>type</key>
- <value>string</value>
+ <key>decim</key>
+ <value>1</value>
</param>
<param>
- <key>short_id</key>
- <value>o</value>
+ <key>taps</key>
+ <value>mf_taps</value>
</param>
<param>
<key>_coordinate</key>
- <value>(302, 101)</value>
+ <value>(359, 471)</value>
</param>
<param>
<key>_rotation</key>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
- <connection>
- <source_block_id>matched_filter</source_block_id>
- <sink_block_id>pll</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>s2f</source_block_id>
- <sink_block_id>deinterleave</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
<connection>
<source_block_id>deinterleave</source_block_id>
<sink_block_id>f2c</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
- <connection>
- <source_block_id>file_source</source_block_id>
- <sink_block_id>s2f</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
<connection>
<source_block_id>deframer</source_block_id>
<sink_block_id>decoder</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
+ <connection>
+ <source_block_id>gr_fir_filter_xxx_0</source_block_id>
+ <sink_block_id>pll</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
<connection>
<source_block_id>samples_source</source_block_id>
- <sink_block_id>matched_filter</sink_block_id>
+ <sink_block_id>gr_fir_filter_xxx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>s2f</source_block_id>
+ <sink_block_id>deinterleave</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>file_source</source_block_id>
+ <sink_block_id>s2f</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
##################################################
# Gnuradio Python Flow Graph
# Title: USRP HRPT Receiver
-# Generated: Wed Sep 23 11:37:25 2009
+# Generated: Sun Sep 27 09:34:15 2009
##################################################
from gnuradio import eng_notation
class demod_hrpt_file(gr.top_block):
- def __init__(self, decim=16, pll_alpha=0.05, sync_alpha=0.05, filename="usrp.dat", output="frames.dat"):
+ def __init__(self, filename="usrp.dat", output="frames.dat", decim=16, pll_alpha=0.05, sync_alpha=0.05):
gr.top_block.__init__(self, "USRP HRPT Receiver")
##################################################
# Parameters
##################################################
+ self.filename = filename
+ self.output = output
self.decim = decim
self.pll_alpha = pll_alpha
self.sync_alpha = sync_alpha
- self.filename = filename
- self.output = output
##################################################
# Variables
self.sym_rate = sym_rate = 600*1109
self.sample_rate = sample_rate = 64e6/decim
self.sps = sps = sample_rate/sym_rate
+ self.hs = hs = int(sps/2.0)
+ self.mf_taps = mf_taps = [-0.5/hs,]*hs+[0.5/hs,]*hs
self.max_sync_offset = max_sync_offset = 0.01
self.max_carrier_offset = max_carrier_offset = 2*math.pi*100e3/sample_rate
- self.hs = hs = int(sps/2.0)
##################################################
# Blocks
self.f2c = gr.float_to_complex(1)
self.file_sink = gr.file_sink(gr.sizeof_short*1, output)
self.file_source = gr.file_source(gr.sizeof_short*1, filename, False)
- self.matched_filter = gr.moving_average_cc(hs, 1.0/hs, 4000)
+ self.gr_fir_filter_xxx_0 = gr.fir_filter_ccc(1, (mf_taps))
self.pll = noaa.hrpt_pll_cf(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
self.s2f = gr.short_to_float()
self.sync = noaa.hrpt_sync_fb(sync_alpha, sync_alpha**2/4.0, sps, max_sync_offset)
self.connect((self.deframer, 0), (self.file_sink, 0))
self.connect((self.sync, 0), (self.deframer, 0))
self.connect((self.pll, 0), (self.sync, 0))
- self.connect((self.matched_filter, 0), (self.pll, 0))
- self.connect((self.s2f, 0), (self.deinterleave, 0))
self.connect((self.deinterleave, 1), (self.f2c, 1))
self.connect((self.deinterleave, 0), (self.f2c, 0))
- self.connect((self.file_source, 0), (self.s2f, 0))
self.connect((self.deframer, 0), (self.decoder, 0))
- self.connect((self.f2c, 0), (self.matched_filter, 0))
+ self.connect((self.gr_fir_filter_xxx_0, 0), (self.pll, 0))
+ self.connect((self.f2c, 0), (self.gr_fir_filter_xxx_0, 0))
+ self.connect((self.s2f, 0), (self.deinterleave, 0))
+ self.connect((self.file_source, 0), (self.s2f, 0))
+
+ def set_filename(self, filename):
+ self.filename = filename
+
+ def set_output(self, output):
+ self.output = output
def set_decim(self, decim):
self.decim = decim
self.sync.set_alpha(self.sync_alpha)
self.sync.set_beta(self.sync_alpha**2/4.0)
- def set_filename(self, filename):
- self.filename = filename
-
- def set_output(self, output):
- self.output = output
-
def set_sym_rate(self, sym_rate):
self.sym_rate = sym_rate
self.set_sps(self.sample_rate/self.sym_rate)
self.sps = sps
self.set_hs(int(self.sps/2.0))
+ def set_hs(self, hs):
+ self.hs = hs
+ self.set_mf_taps([-0.5/self.hs,]*self.hs+[0.5/self.hs,]*self.hs)
+
+ def set_mf_taps(self, mf_taps):
+ self.mf_taps = mf_taps
+ self.gr_fir_filter_xxx_0.set_taps((self.mf_taps))
+
def set_max_sync_offset(self, max_sync_offset):
self.max_sync_offset = max_sync_offset
self.sync.set_max_offset(self.max_sync_offset)
self.max_carrier_offset = max_carrier_offset
self.pll.set_max_offset(self.max_carrier_offset)
- def set_hs(self, hs):
- self.hs = hs
- self.matched_filter.set_length_and_scale(self.hs, 1.0/self.hs)
-
if __name__ == '__main__':
parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
+ parser.add_option("-F", "--filename", dest="filename", type="string", default="usrp.dat",
+ help="Set Filename [default=%default]")
+ parser.add_option("-o", "--output", dest="output", type="string", default="frames.dat",
+ help="Set Output [default=%default]")
parser.add_option("-d", "--decim", dest="decim", type="intx", default=16,
help="Set Decimation [default=%default]")
parser.add_option("-p", "--pll-alpha", dest="pll_alpha", type="eng_float", default=eng_notation.num_to_str(0.05),
help="Set pll_alpha [default=%default]")
parser.add_option("-s", "--sync-alpha", dest="sync_alpha", type="eng_float", default=eng_notation.num_to_str(0.05),
help="Set sync_alpha [default=%default]")
- parser.add_option("-F", "--filename", dest="filename", type="string", default="usrp.dat",
- help="Set Filename [default=%default]")
- parser.add_option("-o", "--output", dest="output", type="string", default="frames.dat",
- help="Set Output [default=%default]")
(options, args) = parser.parse_args()
- tb = demod_hrpt_file(decim=options.decim, pll_alpha=options.pll_alpha, sync_alpha=options.sync_alpha, filename=options.filename, output=options.output)
+ tb = demod_hrpt_file(filename=options.filename, output=options.output, decim=options.decim, pll_alpha=options.pll_alpha, sync_alpha=options.sync_alpha)
tb.start()
raw_input('Press Enter to quit: ')
tb.stop()
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Wed Sep 23 11:32:00 2009</timestamp>
+ <timestamp>Sun Sep 27 13:37:22 2009</timestamp>
<block>
<key>options</key>
<param>
<value>0</value>
</param>
</block>
- <block>
- <key>gr_moving_average_xx</key>
- <param>
- <key>id</key>
- <value>matched_filter</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>length</key>
- <value>hs</value>
- </param>
- <param>
- <key>scale</key>
- <value>1.0/hs</value>
- </param>
- <param>
- <key>max_iter</key>
- <value>4000</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(441, 723)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
<block>
<key>import</key>
<param>
<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','Demod']</value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value>2, 0, 1, 4</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(15, 237)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_sync_fb</key>
+ <param>
+ <key>id</key>
+ <value>sync</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alpha</key>
+ <value>sync_alpha</value>
+ </param>
+ <param>
+ <key>beta</key>
+ <value>sync_alpha**2/4.0</value>
+ </param>
+ <param>
+ <key>sps</key>
+ <value>sps</value>
+ </param>
+ <param>
+ <key>max_offset</key>
+ <value>max_sync_offset</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(840, 715)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_deframer</key>
+ <param>
+ <key>id</key>
+ <value>deframer</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1071, 743)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_decoder</key>
+ <param>
+ <key>id</key>
+ <value>decoder</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1274, 743)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_file_sink</key>
+ <param>
+ <key>id</key>
+ <value>frame_sink</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>file</key>
+ <value>output_filename</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>short</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1273, 851)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>mf_taps</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>[-0.5/hs,]*hs+[0.5/hs]*hs</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(792, 158)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_pll_cf</key>
+ <param>
+ <key>id</key>
+ <value>pll</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alpha</key>
+ <value>pll_alpha</value>
+ </param>
+ <param>
+ <key>beta</key>
+ <value>pll_alpha**2/4.0</value>
+ </param>
+ <param>
+ <key>max_offset</key>
+ <value>max_carrier_offset</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(632, 723)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_fir_filter_xxx</key>
+ <param>
+ <key>id</key>
+ <value>gr_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>1</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value>mf_taps</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(400, 731)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
<block>
<key>usrp_simple_source_x</key>
<param>
</param>
<param>
<key>_coordinate</key>
- <value>(56, 699)</value>
+ <value>(28, 699)</value>
</param>
<param>
<key>_rotation</key>
</param>
<param>
<key>_coordinate</key>
- <value>(273, 715)</value>
+ <value>(240, 715)</value>
</param>
<param>
<key>_rotation</key>
</param>
<param>
<key>_coordinate</key>
- <value>(439, 829)</value>
+ <value>(406, 838)</value>
</param>
<param>
<key>_rotation</key>
</param>
<param>
<key>fft_rate</key>
- <value>30</value>
+ <value>15</value>
</param>
<param>
<key>peak_hold</key>
</param>
<param>
<key>_coordinate</key>
- <value>(439, 465)</value>
+ <value>(406, 466)</value>
</param>
<param>
<key>_rotation</key>
</param>
<param>
<key>title</key>
- <value>Post-PLL</value>
+ <value>Demod Waveform</value>
</param>
<param>
<key>samp_rate</key>
<value>180</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','Demod']</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value>2, 0, 1, 4</value>
- </param>
- <param>
- <key>notebook</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(15, 237)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>noaa_hrpt_pll_cf</key>
- <param>
- <key>id</key>
- <value>pll</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>alpha</key>
- <value>pll_alpha</value>
- </param>
- <param>
- <key>beta</key>
- <value>pll_alpha**2/4.0</value>
- </param>
- <param>
- <key>max_offset</key>
- <value>max_carrier_offset</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(632, 723)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>noaa_hrpt_sync_fb</key>
- <param>
- <key>id</key>
- <value>sync</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>alpha</key>
- <value>sync_alpha</value>
- </param>
- <param>
- <key>beta</key>
- <value>sync_alpha**2/4.0</value>
- </param>
- <param>
- <key>sps</key>
- <value>sps</value>
- </param>
- <param>
- <key>max_offset</key>
- <value>max_sync_offset</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(840, 715)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>noaa_hrpt_deframer</key>
- <param>
- <key>id</key>
- <value>deframer</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1071, 743)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>noaa_hrpt_decoder</key>
- <param>
- <key>id</key>
- <value>decoder</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1274, 743)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>gr_file_sink</key>
- <param>
- <key>id</key>
- <value>frame_sink</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>file</key>
- <value>output_filename</value>
- </param>
- <param>
- <key>type</key>
- <value>short</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(1273, 851)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
<connection>
<source_block_id>deframer</source_block_id>
<sink_block_id>frame_sink</sink_block_id>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>agc</source_block_id>
- <sink_block_id>matched_filter</sink_block_id>
+ <source_block_id>deframer</source_block_id>
+ <sink_block_id>decoder</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>matched_filter</source_block_id>
- <sink_block_id>pll</sink_block_id>
+ <source_block_id>agc</source_block_id>
+ <sink_block_id>gr_fir_filter_xxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>deframer</source_block_id>
- <sink_block_id>decoder</sink_block_id>
+ <source_block_id>gr_fir_filter_xxx_0</source_block_id>
+ <sink_block_id>pll</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
##################################################
# Gnuradio Python Flow Graph
# Title: USRP HRPT Receiver
-# Generated: Wed Sep 23 11:32:04 2009
+# Generated: Sun Sep 27 13:37:23 2009
##################################################
from gnuradio import eng_notation
try: saved_freq = self._saved_freq_config.getfloat('usrp', 'freq')
except: saved_freq = 1698e6
self.saved_freq = saved_freq
+ self.hs = hs = int(sps/2.0)
self.sync_alpha = sync_alpha = saved_sync_alpha
self.side_text = side_text = side
self.pll_alpha = pll_alpha = saved_pll_alpha
try: output_filename = self._output_filename_config.get('output', 'filename')
except: output_filename = 'frames.dat'
self.output_filename = output_filename
+ self.mf_taps = mf_taps = [-0.5/hs,]*hs+[0.5/hs]*hs
self.max_sync_offset = max_sync_offset = 0.01
self.max_carrier_offset = max_carrier_offset = 2*math.pi*100e3/sample_rate
- self.hs = hs = int(sps/2.0)
self.gain = gain = saved_gain
self.freq = freq = saved_freq
self.decim_text = decim_text = decim
self.decoder = noaa.hrpt_decoder()
self.deframer = noaa.hrpt_deframer()
self.frame_sink = gr.file_sink(gr.sizeof_short*1, output_filename)
- self.matched_filter = gr.moving_average_cc(hs, 1.0/hs, 4000)
+ self.gr_fir_filter_xxx_0 = gr.fir_filter_ccc(1, (mf_taps))
self.pll = noaa.hrpt_pll_cf(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
self.pll_scope = scopesink2.scope_sink_f(
self.displays.GetPage(1).GetWin(),
- title="Post-PLL",
+ title="Demod Waveform",
sample_rate=sample_rate,
v_scale=0.5,
t_scale=20.0/sample_rate,
ref_scale=2.0,
sample_rate=sample_rate,
fft_size=1024,
- fft_rate=30,
+ fft_rate=15,
average=True,
avg_alpha=0.1,
title="RX Spectrum",
self.connect((self.pll, 0), (self.pll_scope, 0))
self.connect((self.agc, 0), (self.rx_scope, 0))
self.connect((self.agc, 0), (self.rx_fft, 0))
- self.connect((self.agc, 0), (self.matched_filter, 0))
- self.connect((self.matched_filter, 0), (self.pll, 0))
self.connect((self.deframer, 0), (self.decoder, 0))
+ self.connect((self.agc, 0), (self.gr_fir_filter_xxx_0, 0))
+ self.connect((self.gr_fir_filter_xxx_0, 0), (self.pll, 0))
self.connect((self.usrp_source, 0), (self.agc, 0))
def set_config_filename(self, config_filename):
self.saved_freq = saved_freq
self.set_freq(self.saved_freq)
+ def set_hs(self, hs):
+ self.hs = hs
+ self.set_mf_taps([-0.5/self.hs,]*self.hs+[0.5/self.hs]*self.hs)
+
def set_sync_alpha(self, sync_alpha):
self.sync_alpha = sync_alpha
self._sync_alpha_slider.set_value(self.sync_alpha)
self._output_filename_config.set('output', 'filename', str(self.output_filename))
self._output_filename_config.write(open(self.config_filename, 'w'))
+ def set_mf_taps(self, mf_taps):
+ self.mf_taps = mf_taps
+ self.gr_fir_filter_xxx_0.set_taps((self.mf_taps))
+
def set_max_sync_offset(self, max_sync_offset):
self.max_sync_offset = max_sync_offset
self.sync.set_max_offset(self.max_sync_offset)
self.max_carrier_offset = max_carrier_offset
self.pll.set_max_offset(self.max_carrier_offset)
- def set_hs(self, hs):
- self.hs = hs
- self.matched_filter.set_length_and_scale(self.hs, 1.0/self.hs)
-
def set_gain(self, gain):
self.gain = gain
self._gain_slider.set_value(self.gain)
--- /dev/null
+<?xml version='1.0' encoding='ASCII'?>
+<flow_graph>
+ <timestamp>Sun Sep 27 13:32:47 2009</timestamp>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>max_carrier_offset</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>2*math.pi*100e3/sample_rate</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(575, 19)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>sym_rate</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>600*1109</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(301, 19)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>sps</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>sample_rate/sym_rate</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(397, 19)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>hs</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>int(sps/2.0)</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(499, 19)</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>64e6/decim</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(198, 17)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_slider</key>
+ <param>
+ <key>id</key>
+ <value>gain</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>RX Gain</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>saved_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>float_converter</value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value>0, 1, 1, 1</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(340, 106)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_text_box</key>
+ <param>
+ <key>id</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>Frequency</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>saved_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>_coordinate</key>
+ <value>(199, 106)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_slider</key>
+ <param>
+ <key>id</key>
+ <value>pll_alpha</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>PLL Alpha</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>saved_pll_alpha</value>
+ </param>
+ <param>
+ <key>min</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>max</key>
+ <value>0.5</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, 2, 1, 1</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(479, 106)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_slider</key>
+ <param>
+ <key>id</key>
+ <value>sync_alpha</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>SYNC Alpha</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>saved_sync_alpha</value>
+ </param>
+ <param>
+ <key>min</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>max</key>
+ <value>0.5</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>_coordinate</key>
+ <value>(618, 106)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_static_text</key>
+ <param>
+ <key>id</key>
+ <value>side_text</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>USRP Side</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>side</value>
+ </param>
+ <param>
+ <key>converver</key>
+ <value>str_converter</value>
+ </param>
+ <param>
+ <key>formatter</key>
+ <value>None</value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value>1, 0, 1, 1</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(828, 20)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>side</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>'A'</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>string</value>
+ </param>
+ <param>
+ <key>config_file</key>
+ <value>config_filename</value>
+ </param>
+ <param>
+ <key>section</key>
+ <value>'usrp'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'side'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>side</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(194, 253)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>decim</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>16</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>'usrp'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'decim'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>decim</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(351, 255)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>saved_freq</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>1698e6</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>'usrp'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'freq'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(507, 258)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>saved_gain</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>35</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>'usrp'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'gain'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>gain</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(664, 259)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>saved_pll_alpha</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0.05</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>'demod'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'pll_alpha'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>pll_alpha</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(823, 258)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>saved_sync_alpha</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0.05</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>'demod'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'sync_alpha'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>sync_alpha</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(981, 258)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>output_filename</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>'frames.dat'</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>string</value>
+ </param>
+ <param>
+ <key>config_file</key>
+ <value>config_filename</value>
+ </param>
+ <param>
+ <key>section</key>
+ <value>'output'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'filename'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>output_filename</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1139, 259)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_static_text</key>
+ <param>
+ <key>id</key>
+ <value>decim_text</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>Decimation</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>decim</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>1, 1, 1, 1</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(973, 20)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>max_sync_offset</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0.01</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(705, 19)</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>'usrp_rx_hrpt.cfg'</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(12, 160)</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 math</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(11, 102)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_pll_cf</key>
+ <param>
+ <key>id</key>
+ <value>pll</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alpha</key>
+ <value>pll_alpha</value>
+ </param>
+ <param>
+ <key>beta</key>
+ <value>pll_alpha**2/4.0</value>
+ </param>
+ <param>
+ <key>max_offset</key>
+ <value>max_carrier_offset</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(664, 809)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_sync_fb</key>
+ <param>
+ <key>id</key>
+ <value>sync</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alpha</key>
+ <value>sync_alpha</value>
+ </param>
+ <param>
+ <key>beta</key>
+ <value>sync_alpha**2/4.0</value>
+ </param>
+ <param>
+ <key>sps</key>
+ <value>sps</value>
+ </param>
+ <param>
+ <key>max_offset</key>
+ <value>max_sync_offset</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(865, 801)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_file_sink</key>
+ <param>
+ <key>id</key>
+ <value>frame_sink</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>file</key>
+ <value>output_filename</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>short</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1283, 937)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_deframer</key>
+ <param>
+ <key>id</key>
+ <value>deframer</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1091, 829)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_decoder</key>
+ <param>
+ <key>id</key>
+ <value>decoder</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1281, 829)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>wxgui_scopesink2</key>
+ <param>
+ <key>id</key>
+ <value>pll_scope</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>title</key>
+ <value>Demod Waveform</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>sample_rate</value>
+ </param>
+ <param>
+ <key>v_scale</key>
+ <value>0.5</value>
+ </param>
+ <param>
+ <key>t_scale</key>
+ <value>20.0/sample_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>grid_pos</key>
+ <value>2,0,1,4</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(631, 632)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>180</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_agc_xx</key>
+ <param>
+ <key>id</key>
+ <value>agc</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>rate</key>
+ <value>1e-6</value>
+ </param>
+ <param>
+ <key>reference</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>gain</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>max_gain</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(269, 801)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_fir_filter_xxx</key>
+ <param>
+ <key>id</key>
+ <value>gr_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>1</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value>mf_taps</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(418, 817)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>mf_taps</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>[-0.5/hs,]*hs+[0.5/hs,]*hs</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(830, 154)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_file_source</key>
+ <param>
+ <key>id</key>
+ <value>file_source</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>file</key>
+ <value>'usrp.dat'</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>short</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(215, 490)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_deinterleave</key>
+ <param>
+ <key>id</key>
+ <value>gr_deinterleave_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>num_streams</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(598, 485)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_float_to_complex</key>
+ <param>
+ <key>id</key>
+ <value>gr_float_to_complex_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(801, 485)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_short_to_float</key>
+ <param>
+ <key>id</key>
+ <value>s2f</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(393, 502)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>sample_stream</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>samples</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1027, 498)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>usrp_simple_source_x</key>
+ <param>
+ <key>id</key>
+ <value>usrp_source</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>format</key>
+ <value></value>
+ </param>
+ <param>
+ <key>which</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>decimation</key>
+ <value>decim</value>
+ </param>
+ <param>
+ <key>frequency</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>lo_offset</key>
+ <value>float('inf')</value>
+ </param>
+ <param>
+ <key>gain</key>
+ <value>gain</value>
+ </param>
+ <param>
+ <key>side</key>
+ <value>side</value>
+ </param>
+ <param>
+ <key>rx_ant</key>
+ <value>RXA</value>
+ </param>
+ <param>
+ <key>hb_filters</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(63, 785)</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>False</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>samples</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(69, 671)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>options</key>
+ <param>
+ <key>id</key>
+ <value>usrp_rx_hrpt2</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>title</key>
+ <value>USRP HRPT Receiver</value>
+ </param>
+ <param>
+ <key>author</key>
+ <value></value>
+ </param>
+ <param>
+ <key>description</key>
+ <value></value>
+ </param>
+ <param>
+ <key>window_size</key>
+ <value>4096,4096</value>
+ </param>
+ <param>
+ <key>generate_options</key>
+ <value>wx_gui</value>
+ </param>
+ <param>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(10, 10)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <connection>
+ <source_block_id>gr_fir_filter_xxx_0</source_block_id>
+ <sink_block_id>pll</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>agc</source_block_id>
+ <sink_block_id>gr_fir_filter_xxx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>usrp_source</source_block_id>
+ <sink_block_id>agc</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>deframer</source_block_id>
+ <sink_block_id>decoder</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>pll</source_block_id>
+ <sink_block_id>pll_scope</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>pll</source_block_id>
+ <sink_block_id>sync</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>sync</source_block_id>
+ <sink_block_id>deframer</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>deframer</source_block_id>
+ <sink_block_id>frame_sink</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>agc</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>file_source</source_block_id>
+ <sink_block_id>s2f</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>s2f</source_block_id>
+ <sink_block_id>gr_deinterleave_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>gr_deinterleave_0</source_block_id>
+ <sink_block_id>gr_float_to_complex_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>gr_deinterleave_0</source_block_id>
+ <sink_block_id>gr_float_to_complex_0</sink_block_id>
+ <source_key>1</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>gr_float_to_complex_0</source_block_id>
+ <sink_block_id>sample_stream</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+</flow_graph>
--- /dev/null
+#!/usr/bin/env python
+##################################################
+# Gnuradio Python Flow Graph
+# Title: USRP HRPT Receiver
+# Generated: Sun Sep 27 13:32:48 2009
+##################################################
+
+from gnuradio import eng_notation
+from gnuradio import gr
+from gnuradio import noaa
+from gnuradio.eng_option import eng_option
+from gnuradio.gr import firdes
+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 math
+import wx
+
+class usrp_rx_hrpt2(grc_wxgui.top_block_gui):
+
+ def __init__(self):
+ grc_wxgui.top_block_gui.__init__(self, title="USRP HRPT Receiver")
+
+ ##################################################
+ # Variables
+ ##################################################
+ self.config_filename = config_filename = 'usrp_rx_hrpt.cfg'
+ self._decim_config = ConfigParser.ConfigParser()
+ self._decim_config.read(config_filename)
+ try: decim = self._decim_config.getfloat('usrp', 'decim')
+ except: decim = 16
+ self.decim = decim
+ self.sym_rate = sym_rate = 600*1109
+ self.sample_rate = sample_rate = 64e6/decim
+ self.sps = sps = sample_rate/sym_rate
+ self._side_config = ConfigParser.ConfigParser()
+ self._side_config.read(config_filename)
+ try: side = self._side_config.get('usrp', 'side')
+ except: side = 'A'
+ self.side = side
+ self._saved_sync_alpha_config = ConfigParser.ConfigParser()
+ self._saved_sync_alpha_config.read(config_filename)
+ try: saved_sync_alpha = self._saved_sync_alpha_config.getfloat('demod', 'sync_alpha')
+ except: saved_sync_alpha = 0.05
+ self.saved_sync_alpha = saved_sync_alpha
+ self._saved_pll_alpha_config = ConfigParser.ConfigParser()
+ self._saved_pll_alpha_config.read(config_filename)
+ try: saved_pll_alpha = self._saved_pll_alpha_config.getfloat('demod', 'pll_alpha')
+ except: saved_pll_alpha = 0.05
+ self.saved_pll_alpha = saved_pll_alpha
+ self._saved_gain_config = ConfigParser.ConfigParser()
+ self._saved_gain_config.read(config_filename)
+ try: saved_gain = self._saved_gain_config.getfloat('usrp', 'gain')
+ except: saved_gain = 35
+ self.saved_gain = saved_gain
+ self._saved_freq_config = ConfigParser.ConfigParser()
+ self._saved_freq_config.read(config_filename)
+ try: saved_freq = self._saved_freq_config.getfloat('usrp', 'freq')
+ except: saved_freq = 1698e6
+ self.saved_freq = saved_freq
+ self.hs = hs = int(sps/2.0)
+ self.sync_alpha = sync_alpha = saved_sync_alpha
+ self.side_text = side_text = side
+ self.pll_alpha = pll_alpha = saved_pll_alpha
+ self._output_filename_config = ConfigParser.ConfigParser()
+ self._output_filename_config.read(config_filename)
+ try: output_filename = self._output_filename_config.get('output', 'filename')
+ except: output_filename = 'frames.dat'
+ self.output_filename = output_filename
+ self.mf_taps = mf_taps = [-0.5/hs,]*hs+[0.5/hs,]*hs
+ self.max_sync_offset = max_sync_offset = 0.01
+ self.max_carrier_offset = max_carrier_offset = 2*math.pi*100e3/sample_rate
+ self.gain = gain = saved_gain
+ self.freq = freq = saved_freq
+ self.decim_text = decim_text = decim
+
+ ##################################################
+ # Controls
+ ##################################################
+ _sync_alpha_sizer = wx.BoxSizer(wx.VERTICAL)
+ self._sync_alpha_text_box = forms.text_box(
+ parent=self.GetWin(),
+ sizer=_sync_alpha_sizer,
+ value=self.sync_alpha,
+ callback=self.set_sync_alpha,
+ label="SYNC Alpha",
+ converter=forms.float_converter(),
+ proportion=0,
+ )
+ self._sync_alpha_slider = forms.slider(
+ parent=self.GetWin(),
+ sizer=_sync_alpha_sizer,
+ value=self.sync_alpha,
+ callback=self.set_sync_alpha,
+ minimum=0.0,
+ maximum=0.5,
+ num_steps=100,
+ style=wx.SL_HORIZONTAL,
+ cast=float,
+ proportion=1,
+ )
+ self.GridAdd(_sync_alpha_sizer, 0, 3, 1, 1)
+ self._side_text_static_text = forms.static_text(
+ parent=self.GetWin(),
+ value=self.side_text,
+ callback=self.set_side_text,
+ label="USRP Side",
+ converter=forms.str_converter(),
+ )
+ self.GridAdd(self._side_text_static_text, 1, 0, 1, 1)
+ _pll_alpha_sizer = wx.BoxSizer(wx.VERTICAL)
+ self._pll_alpha_text_box = forms.text_box(
+ parent=self.GetWin(),
+ sizer=_pll_alpha_sizer,
+ value=self.pll_alpha,
+ callback=self.set_pll_alpha,
+ label="PLL Alpha",
+ converter=forms.float_converter(),
+ proportion=0,
+ )
+ self._pll_alpha_slider = forms.slider(
+ parent=self.GetWin(),
+ sizer=_pll_alpha_sizer,
+ value=self.pll_alpha,
+ callback=self.set_pll_alpha,
+ minimum=0.0,
+ maximum=0.5,
+ num_steps=100,
+ style=wx.SL_HORIZONTAL,
+ cast=float,
+ proportion=1,
+ )
+ self.GridAdd(_pll_alpha_sizer, 0, 2, 1, 1)
+ _gain_sizer = wx.BoxSizer(wx.VERTICAL)
+ self._gain_text_box = forms.text_box(
+ parent=self.GetWin(),
+ sizer=_gain_sizer,
+ value=self.gain,
+ callback=self.set_gain,
+ label="RX Gain",
+ converter=forms.float_converter(),
+ proportion=0,
+ )
+ self._gain_slider = forms.slider(
+ parent=self.GetWin(),
+ sizer=_gain_sizer,
+ value=self.gain,
+ callback=self.set_gain,
+ minimum=0,
+ maximum=100,
+ num_steps=100,
+ style=wx.SL_HORIZONTAL,
+ cast=float,
+ proportion=1,
+ )
+ self.GridAdd(_gain_sizer, 0, 1, 1, 1)
+ self._freq_text_box = forms.text_box(
+ parent=self.GetWin(),
+ value=self.freq,
+ callback=self.set_freq,
+ label="Frequency",
+ converter=forms.float_converter(),
+ )
+ self.GridAdd(self._freq_text_box, 0, 0, 1, 1)
+ self._decim_text_static_text = forms.static_text(
+ parent=self.GetWin(),
+ value=self.decim_text,
+ callback=self.set_decim_text,
+ label="Decimation",
+ converter=forms.float_converter(),
+ )
+ self.GridAdd(self._decim_text_static_text, 1, 1, 1, 1)
+
+ ##################################################
+ # Blocks
+ ##################################################
+ self.agc = gr.agc_cc(1e-6, 1.0, 1.0, 1.0)
+ self.decoder = noaa.hrpt_decoder()
+ self.deframer = noaa.hrpt_deframer()
+ self.frame_sink = gr.file_sink(gr.sizeof_short*1, output_filename)
+ self.gr_fir_filter_xxx_0 = gr.fir_filter_ccc(1, (mf_taps))
+ self.pll = noaa.hrpt_pll_cf(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
+ self.pll_scope = scopesink2.scope_sink_f(
+ self.GetWin(),
+ title="Demod Waveform",
+ sample_rate=sample_rate,
+ v_scale=0.5,
+ t_scale=20.0/sample_rate,
+ ac_couple=False,
+ xy_mode=False,
+ num_inputs=1,
+ )
+ self.GridAdd(self.pll_scope.win, 2, 0, 1, 4)
+ self.sync = noaa.hrpt_sync_fb(sync_alpha, sync_alpha**2/4.0, sps, max_sync_offset)
+ self.usrp_source = grc_usrp.simple_source_c(which=0, side=side, rx_ant="RXA")
+ self.usrp_source.set_decim_rate(decim)
+ self.usrp_source.set_frequency(freq, verbose=True)
+ self.usrp_source.set_gain(gain)
+
+ ##################################################
+ # Connections
+ ##################################################
+ self.connect((self.gr_fir_filter_xxx_0, 0), (self.pll, 0))
+ self.connect((self.agc, 0), (self.gr_fir_filter_xxx_0, 0))
+ self.connect((self.usrp_source, 0), (self.agc, 0))
+ self.connect((self.deframer, 0), (self.decoder, 0))
+ self.connect((self.pll, 0), (self.pll_scope, 0))
+ self.connect((self.pll, 0), (self.sync, 0))
+ self.connect((self.sync, 0), (self.deframer, 0))
+ self.connect((self.deframer, 0), (self.frame_sink, 0))
+
+ def set_config_filename(self, config_filename):
+ self.config_filename = config_filename
+ self._side_config = ConfigParser.ConfigParser()
+ self._side_config.read(self.config_filename)
+ if not self._side_config.has_section('usrp'):
+ self._side_config.add_section('usrp')
+ self._side_config.set('usrp', 'side', str(self.side))
+ self._side_config.write(open(self.config_filename, 'w'))
+ self._decim_config = ConfigParser.ConfigParser()
+ self._decim_config.read(self.config_filename)
+ if not self._decim_config.has_section('usrp'):
+ self._decim_config.add_section('usrp')
+ self._decim_config.set('usrp', 'decim', str(self.decim))
+ self._decim_config.write(open(self.config_filename, 'w'))
+ self._saved_freq_config = ConfigParser.ConfigParser()
+ self._saved_freq_config.read(self.config_filename)
+ if not self._saved_freq_config.has_section('usrp'):
+ self._saved_freq_config.add_section('usrp')
+ self._saved_freq_config.set('usrp', 'freq', str(self.freq))
+ self._saved_freq_config.write(open(self.config_filename, 'w'))
+ self._saved_gain_config = ConfigParser.ConfigParser()
+ self._saved_gain_config.read(self.config_filename)
+ if not self._saved_gain_config.has_section('usrp'):
+ self._saved_gain_config.add_section('usrp')
+ self._saved_gain_config.set('usrp', 'gain', str(self.gain))
+ self._saved_gain_config.write(open(self.config_filename, 'w'))
+ self._saved_pll_alpha_config = ConfigParser.ConfigParser()
+ self._saved_pll_alpha_config.read(self.config_filename)
+ if not self._saved_pll_alpha_config.has_section('demod'):
+ self._saved_pll_alpha_config.add_section('demod')
+ self._saved_pll_alpha_config.set('demod', 'pll_alpha', str(self.pll_alpha))
+ self._saved_pll_alpha_config.write(open(self.config_filename, 'w'))
+ self._saved_sync_alpha_config = ConfigParser.ConfigParser()
+ self._saved_sync_alpha_config.read(self.config_filename)
+ if not self._saved_sync_alpha_config.has_section('demod'):
+ self._saved_sync_alpha_config.add_section('demod')
+ self._saved_sync_alpha_config.set('demod', 'sync_alpha', str(self.sync_alpha))
+ self._saved_sync_alpha_config.write(open(self.config_filename, 'w'))
+ self._output_filename_config = ConfigParser.ConfigParser()
+ self._output_filename_config.read(self.config_filename)
+ if not self._output_filename_config.has_section('output'):
+ self._output_filename_config.add_section('output')
+ self._output_filename_config.set('output', 'filename', str(self.output_filename))
+ self._output_filename_config.write(open(self.config_filename, 'w'))
+
+ def set_decim(self, decim):
+ self.decim = decim
+ self.set_sample_rate(64e6/self.decim)
+ self._decim_config = ConfigParser.ConfigParser()
+ self._decim_config.read(self.config_filename)
+ if not self._decim_config.has_section('usrp'):
+ self._decim_config.add_section('usrp')
+ self._decim_config.set('usrp', 'decim', str(self.decim))
+ self._decim_config.write(open(self.config_filename, 'w'))
+ self.set_decim_text(self.decim)
+ self.usrp_source.set_decim_rate(self.decim)
+
+ def set_sym_rate(self, sym_rate):
+ self.sym_rate = sym_rate
+ self.set_sps(self.sample_rate/self.sym_rate)
+
+ def set_sample_rate(self, sample_rate):
+ self.sample_rate = sample_rate
+ self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
+ self.set_sps(self.sample_rate/self.sym_rate)
+ self.pll_scope.set_sample_rate(self.sample_rate)
+
+ def set_sps(self, sps):
+ self.sps = sps
+ self.set_hs(int(self.sps/2.0))
+
+ def set_side(self, side):
+ self.side = side
+ self.set_side_text(self.side)
+ self._side_config = ConfigParser.ConfigParser()
+ self._side_config.read(self.config_filename)
+ if not self._side_config.has_section('usrp'):
+ self._side_config.add_section('usrp')
+ self._side_config.set('usrp', 'side', str(self.side))
+ self._side_config.write(open(self.config_filename, 'w'))
+
+ def set_saved_sync_alpha(self, saved_sync_alpha):
+ self.saved_sync_alpha = saved_sync_alpha
+ self.set_sync_alpha(self.saved_sync_alpha)
+
+ def set_saved_pll_alpha(self, saved_pll_alpha):
+ self.saved_pll_alpha = saved_pll_alpha
+ self.set_pll_alpha(self.saved_pll_alpha)
+
+ def set_saved_gain(self, saved_gain):
+ self.saved_gain = saved_gain
+ self.set_gain(self.saved_gain)
+
+ def set_saved_freq(self, saved_freq):
+ self.saved_freq = saved_freq
+ self.set_freq(self.saved_freq)
+
+ def set_hs(self, hs):
+ self.hs = hs
+ self.set_mf_taps([-0.5/self.hs,]*self.hs+[0.5/self.hs,]*self.hs)
+
+ def set_sync_alpha(self, sync_alpha):
+ self.sync_alpha = sync_alpha
+ self._sync_alpha_slider.set_value(self.sync_alpha)
+ self._sync_alpha_text_box.set_value(self.sync_alpha)
+ self._saved_sync_alpha_config = ConfigParser.ConfigParser()
+ self._saved_sync_alpha_config.read(self.config_filename)
+ if not self._saved_sync_alpha_config.has_section('demod'):
+ self._saved_sync_alpha_config.add_section('demod')
+ self._saved_sync_alpha_config.set('demod', 'sync_alpha', str(self.sync_alpha))
+ self._saved_sync_alpha_config.write(open(self.config_filename, 'w'))
+ self.sync.set_alpha(self.sync_alpha)
+ self.sync.set_beta(self.sync_alpha**2/4.0)
+
+ def set_side_text(self, side_text):
+ self.side_text = side_text
+ self._side_text_static_text.set_value(self.side_text)
+
+ def set_pll_alpha(self, pll_alpha):
+ self.pll_alpha = pll_alpha
+ self._pll_alpha_slider.set_value(self.pll_alpha)
+ self._pll_alpha_text_box.set_value(self.pll_alpha)
+ self._saved_pll_alpha_config = ConfigParser.ConfigParser()
+ self._saved_pll_alpha_config.read(self.config_filename)
+ if not self._saved_pll_alpha_config.has_section('demod'):
+ self._saved_pll_alpha_config.add_section('demod')
+ self._saved_pll_alpha_config.set('demod', 'pll_alpha', str(self.pll_alpha))
+ self._saved_pll_alpha_config.write(open(self.config_filename, 'w'))
+ self.pll.set_alpha(self.pll_alpha)
+ self.pll.set_beta(self.pll_alpha**2/4.0)
+
+ def set_output_filename(self, output_filename):
+ self.output_filename = output_filename
+ self._output_filename_config = ConfigParser.ConfigParser()
+ self._output_filename_config.read(self.config_filename)
+ if not self._output_filename_config.has_section('output'):
+ self._output_filename_config.add_section('output')
+ self._output_filename_config.set('output', 'filename', str(self.output_filename))
+ self._output_filename_config.write(open(self.config_filename, 'w'))
+
+ def set_mf_taps(self, mf_taps):
+ self.mf_taps = mf_taps
+ self.gr_fir_filter_xxx_0.set_taps((self.mf_taps))
+
+ def set_max_sync_offset(self, max_sync_offset):
+ self.max_sync_offset = max_sync_offset
+ self.sync.set_max_offset(self.max_sync_offset)
+
+ def set_max_carrier_offset(self, max_carrier_offset):
+ self.max_carrier_offset = max_carrier_offset
+ self.pll.set_max_offset(self.max_carrier_offset)
+
+ def set_gain(self, gain):
+ self.gain = gain
+ self._gain_slider.set_value(self.gain)
+ self._gain_text_box.set_value(self.gain)
+ self._saved_gain_config = ConfigParser.ConfigParser()
+ self._saved_gain_config.read(self.config_filename)
+ if not self._saved_gain_config.has_section('usrp'):
+ self._saved_gain_config.add_section('usrp')
+ self._saved_gain_config.set('usrp', 'gain', str(self.gain))
+ self._saved_gain_config.write(open(self.config_filename, 'w'))
+ self.usrp_source.set_gain(self.gain)
+
+ def set_freq(self, freq):
+ self.freq = freq
+ self._freq_text_box.set_value(self.freq)
+ self._saved_freq_config = ConfigParser.ConfigParser()
+ self._saved_freq_config.read(self.config_filename)
+ if not self._saved_freq_config.has_section('usrp'):
+ self._saved_freq_config.add_section('usrp')
+ self._saved_freq_config.set('usrp', 'freq', str(self.freq))
+ self._saved_freq_config.write(open(self.config_filename, 'w'))
+ self.usrp_source.set_frequency(self.freq)
+
+ def set_decim_text(self, decim_text):
+ self.decim_text = decim_text
+ self._decim_text_static_text.set_value(self.decim_text)
+
+if __name__ == '__main__':
+ parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
+ (options, args) = parser.parse_args()
+ if gr.enable_realtime_scheduling() != gr.RT_OK:
+ print "Error: failed to enable realtime scheduling."
+ tb = usrp_rx_hrpt2()
+ tb.Run(True)
+
--- /dev/null
+<?xml version='1.0' encoding='ASCII'?>
+<flow_graph>
+ <timestamp>Sun Sep 27 10:13:25 2009</timestamp>
+ <block>
+ <key>options</key>
+ <param>
+ <key>id</key>
+ <value>usrp_rx_hrpt_nogui</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>title</key>
+ <value>USRP HRPT Receiver</value>
+ </param>
+ <param>
+ <key>author</key>
+ <value></value>
+ </param>
+ <param>
+ <key>description</key>
+ <value></value>
+ </param>
+ <param>
+ <key>window_size</key>
+ <value>4096,4096</value>
+ </param>
+ <param>
+ <key>generate_options</key>
+ <value>no_gui</value>
+ </param>
+ <param>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
+ <value>1</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>max_carrier_offset</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>2*math.pi*100e3/sample_rate</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(575, 19)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>sym_rate</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>600*1109</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(301, 19)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>sps</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>sample_rate/sym_rate</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(397, 19)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>hs</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>int(sps/2.0)</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(499, 19)</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>64e6/decim</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(198, 17)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>max_sync_offset</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0.01</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(705, 19)</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>'usrp_rx_hrpt.cfg'</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(12, 167)</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 math</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(11, 112)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>output_filename</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>'frames.dat'</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>string</value>
+ </param>
+ <param>
+ <key>config_file</key>
+ <value>config_filename</value>
+ </param>
+ <param>
+ <key>section</key>
+ <value>'output'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'filename'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>output_filename</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1146, 122)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>sync_alpha</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0.05</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>'demod'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'sync_alpha'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>sync_alpha</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(988, 121)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>pll_alpha</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0.05</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>'demod'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'pll_alpha'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>pll_alpha</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(830, 121)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>gain</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>35</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>'usrp'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'gain'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>gain</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(671, 122)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>1698e6</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>'usrp'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'freq'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(514, 121)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>decim</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>16</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>'usrp'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'decim'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>decim</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(358, 118)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_config</key>
+ <param>
+ <key>id</key>
+ <value>side</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>'A'</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>string</value>
+ </param>
+ <param>
+ <key>config_file</key>
+ <value>config_filename</value>
+ </param>
+ <param>
+ <key>section</key>
+ <value>'usrp'</value>
+ </param>
+ <param>
+ <key>option</key>
+ <value>'side'</value>
+ </param>
+ <param>
+ <key>writeback</key>
+ <value>side</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(201, 116)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_decoder</key>
+ <param>
+ <key>id</key>
+ <value>decoder</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1247, 347)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>usrp_simple_source_x</key>
+ <param>
+ <key>id</key>
+ <value>usrp_source</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>format</key>
+ <value></value>
+ </param>
+ <param>
+ <key>which</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>decimation</key>
+ <value>decim</value>
+ </param>
+ <param>
+ <key>frequency</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>lo_offset</key>
+ <value>float('inf')</value>
+ </param>
+ <param>
+ <key>gain</key>
+ <value>gain</value>
+ </param>
+ <param>
+ <key>side</key>
+ <value>side</value>
+ </param>
+ <param>
+ <key>rx_ant</key>
+ <value>RXA</value>
+ </param>
+ <param>
+ <key>hb_filters</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(29, 303)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>mf_taps</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>[-0.5/hs,]*hs+[0.5/hs,]*hs</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(825, 19)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_agc_xx</key>
+ <param>
+ <key>id</key>
+ <value>agc</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>rate</key>
+ <value>1e-6</value>
+ </param>
+ <param>
+ <key>reference</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>gain</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>max_gain</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(246, 319)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_deframer</key>
+ <param>
+ <key>id</key>
+ <value>deframer</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1060, 347)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_file_sink</key>
+ <param>
+ <key>id</key>
+ <value>frame_sink</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>file</key>
+ <value>output_filename</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>short</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1251, 454)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_sync_fb</key>
+ <param>
+ <key>id</key>
+ <value>sync</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alpha</key>
+ <value>sync_alpha</value>
+ </param>
+ <param>
+ <key>beta</key>
+ <value>sync_alpha**2/4.0</value>
+ </param>
+ <param>
+ <key>sps</key>
+ <value>sps</value>
+ </param>
+ <param>
+ <key>max_offset</key>
+ <value>max_sync_offset</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(833, 319)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>noaa_hrpt_pll_cf</key>
+ <param>
+ <key>id</key>
+ <value>pll</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alpha</key>
+ <value>pll_alpha</value>
+ </param>
+ <param>
+ <key>beta</key>
+ <value>pll_alpha**2/4.0</value>
+ </param>
+ <param>
+ <key>max_offset</key>
+ <value>max_carrier_offset</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(638, 327)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>gr_fir_filter_xxx</key>
+ <param>
+ <key>id</key>
+ <value>gr_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>1</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value>mf_taps</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(402, 335)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <connection>
+ <source_block_id>usrp_source</source_block_id>
+ <sink_block_id>agc</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>deframer</source_block_id>
+ <sink_block_id>decoder</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>pll</source_block_id>
+ <sink_block_id>sync</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>sync</source_block_id>
+ <sink_block_id>deframer</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>deframer</source_block_id>
+ <sink_block_id>frame_sink</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>agc</source_block_id>
+ <sink_block_id>gr_fir_filter_xxx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>gr_fir_filter_xxx_0</source_block_id>
+ <sink_block_id>pll</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+</flow_graph>
--- /dev/null
+#!/usr/bin/env python
+##################################################
+# Gnuradio Python Flow Graph
+# Title: USRP HRPT Receiver
+# Generated: Sun Sep 27 10:13:25 2009
+##################################################
+
+from gnuradio import eng_notation
+from gnuradio import gr
+from gnuradio import noaa
+from gnuradio.eng_option import eng_option
+from gnuradio.gr import firdes
+from grc_gnuradio import usrp as grc_usrp
+from optparse import OptionParser
+import ConfigParser
+import math
+
+class usrp_rx_hrpt_nogui(gr.top_block):
+
+ def __init__(self):
+ gr.top_block.__init__(self, "USRP HRPT Receiver")
+
+ ##################################################
+ # Variables
+ ##################################################
+ self.config_filename = config_filename = 'usrp_rx_hrpt.cfg'
+ self._decim_config = ConfigParser.ConfigParser()
+ self._decim_config.read(config_filename)
+ try: decim = self._decim_config.getfloat('usrp', 'decim')
+ except: decim = 16
+ self.decim = decim
+ self.sym_rate = sym_rate = 600*1109
+ self.sample_rate = sample_rate = 64e6/decim
+ self.sps = sps = sample_rate/sym_rate
+ self.hs = hs = int(sps/2.0)
+ self._sync_alpha_config = ConfigParser.ConfigParser()
+ self._sync_alpha_config.read(config_filename)
+ try: sync_alpha = self._sync_alpha_config.getfloat('demod', 'sync_alpha')
+ except: sync_alpha = 0.05
+ self.sync_alpha = sync_alpha
+ self._side_config = ConfigParser.ConfigParser()
+ self._side_config.read(config_filename)
+ try: side = self._side_config.get('usrp', 'side')
+ except: side = 'A'
+ self.side = side
+ self._pll_alpha_config = ConfigParser.ConfigParser()
+ self._pll_alpha_config.read(config_filename)
+ try: pll_alpha = self._pll_alpha_config.getfloat('demod', 'pll_alpha')
+ except: pll_alpha = 0.05
+ self.pll_alpha = pll_alpha
+ self._output_filename_config = ConfigParser.ConfigParser()
+ self._output_filename_config.read(config_filename)
+ try: output_filename = self._output_filename_config.get('output', 'filename')
+ except: output_filename = 'frames.dat'
+ self.output_filename = output_filename
+ self.mf_taps = mf_taps = [-0.5/hs,]*hs+[0.5/hs,]*hs
+ self.max_sync_offset = max_sync_offset = 0.01
+ self.max_carrier_offset = max_carrier_offset = 2*math.pi*100e3/sample_rate
+ self._gain_config = ConfigParser.ConfigParser()
+ self._gain_config.read(config_filename)
+ try: gain = self._gain_config.getfloat('usrp', 'gain')
+ except: gain = 35
+ self.gain = gain
+ self._freq_config = ConfigParser.ConfigParser()
+ self._freq_config.read(config_filename)
+ try: freq = self._freq_config.getfloat('usrp', 'freq')
+ except: freq = 1698e6
+ self.freq = freq
+
+ ##################################################
+ # Blocks
+ ##################################################
+ self.agc = gr.agc_cc(1e-6, 1.0, 1.0, 1.0)
+ self.decoder = noaa.hrpt_decoder()
+ self.deframer = noaa.hrpt_deframer()
+ self.frame_sink = gr.file_sink(gr.sizeof_short*1, output_filename)
+ self.gr_fir_filter_xxx_0 = gr.fir_filter_ccc(1, (mf_taps))
+ self.pll = noaa.hrpt_pll_cf(pll_alpha, pll_alpha**2/4.0, max_carrier_offset)
+ self.sync = noaa.hrpt_sync_fb(sync_alpha, sync_alpha**2/4.0, sps, max_sync_offset)
+ self.usrp_source = grc_usrp.simple_source_c(which=0, side=side, rx_ant="RXA")
+ self.usrp_source.set_decim_rate(decim)
+ self.usrp_source.set_frequency(freq, verbose=True)
+ self.usrp_source.set_gain(gain)
+
+ ##################################################
+ # Connections
+ ##################################################
+ self.connect((self.usrp_source, 0), (self.agc, 0))
+ self.connect((self.deframer, 0), (self.decoder, 0))
+ self.connect((self.pll, 0), (self.sync, 0))
+ self.connect((self.sync, 0), (self.deframer, 0))
+ self.connect((self.deframer, 0), (self.frame_sink, 0))
+ self.connect((self.agc, 0), (self.gr_fir_filter_xxx_0, 0))
+ self.connect((self.gr_fir_filter_xxx_0, 0), (self.pll, 0))
+
+ def set_config_filename(self, config_filename):
+ self.config_filename = config_filename
+ self._output_filename_config = ConfigParser.ConfigParser()
+ self._output_filename_config.read(self.config_filename)
+ if not self._output_filename_config.has_section('output'):
+ self._output_filename_config.add_section('output')
+ self._output_filename_config.set('output', 'filename', str(self.output_filename))
+ self._output_filename_config.write(open(self.config_filename, 'w'))
+ self._sync_alpha_config = ConfigParser.ConfigParser()
+ self._sync_alpha_config.read(self.config_filename)
+ if not self._sync_alpha_config.has_section('demod'):
+ self._sync_alpha_config.add_section('demod')
+ self._sync_alpha_config.set('demod', 'sync_alpha', str(self.sync_alpha))
+ self._sync_alpha_config.write(open(self.config_filename, 'w'))
+ self._pll_alpha_config = ConfigParser.ConfigParser()
+ self._pll_alpha_config.read(self.config_filename)
+ if not self._pll_alpha_config.has_section('demod'):
+ self._pll_alpha_config.add_section('demod')
+ self._pll_alpha_config.set('demod', 'pll_alpha', str(self.pll_alpha))
+ self._pll_alpha_config.write(open(self.config_filename, 'w'))
+ self._gain_config = ConfigParser.ConfigParser()
+ self._gain_config.read(self.config_filename)
+ if not self._gain_config.has_section('usrp'):
+ self._gain_config.add_section('usrp')
+ self._gain_config.set('usrp', 'gain', str(self.gain))
+ self._gain_config.write(open(self.config_filename, 'w'))
+ self._freq_config = ConfigParser.ConfigParser()
+ self._freq_config.read(self.config_filename)
+ if not self._freq_config.has_section('usrp'):
+ self._freq_config.add_section('usrp')
+ self._freq_config.set('usrp', 'freq', str(self.freq))
+ self._freq_config.write(open(self.config_filename, 'w'))
+ self._decim_config = ConfigParser.ConfigParser()
+ self._decim_config.read(self.config_filename)
+ if not self._decim_config.has_section('usrp'):
+ self._decim_config.add_section('usrp')
+ self._decim_config.set('usrp', 'decim', str(self.decim))
+ self._decim_config.write(open(self.config_filename, 'w'))
+ self._side_config = ConfigParser.ConfigParser()
+ self._side_config.read(self.config_filename)
+ if not self._side_config.has_section('usrp'):
+ self._side_config.add_section('usrp')
+ self._side_config.set('usrp', 'side', str(self.side))
+ self._side_config.write(open(self.config_filename, 'w'))
+
+ def set_decim(self, decim):
+ self.decim = decim
+ self.set_sample_rate(64e6/self.decim)
+ self._decim_config = ConfigParser.ConfigParser()
+ self._decim_config.read(self.config_filename)
+ if not self._decim_config.has_section('usrp'):
+ self._decim_config.add_section('usrp')
+ self._decim_config.set('usrp', 'decim', str(self.decim))
+ self._decim_config.write(open(self.config_filename, 'w'))
+ self.usrp_source.set_decim_rate(self.decim)
+
+ def set_sym_rate(self, sym_rate):
+ self.sym_rate = sym_rate
+ self.set_sps(self.sample_rate/self.sym_rate)
+
+ def set_sample_rate(self, sample_rate):
+ self.sample_rate = sample_rate
+ self.set_max_carrier_offset(2*math.pi*100e3/self.sample_rate)
+ self.set_sps(self.sample_rate/self.sym_rate)
+
+ def set_sps(self, sps):
+ self.sps = sps
+ self.set_hs(int(self.sps/2.0))
+
+ def set_hs(self, hs):
+ self.hs = hs
+ self.set_mf_taps([-0.5/self.hs,]*self.hs+[0.5/self.hs,]*self.hs)
+
+ def set_sync_alpha(self, sync_alpha):
+ self.sync_alpha = sync_alpha
+ self._sync_alpha_config = ConfigParser.ConfigParser()
+ self._sync_alpha_config.read(self.config_filename)
+ if not self._sync_alpha_config.has_section('demod'):
+ self._sync_alpha_config.add_section('demod')
+ self._sync_alpha_config.set('demod', 'sync_alpha', str(self.sync_alpha))
+ self._sync_alpha_config.write(open(self.config_filename, 'w'))
+ self.sync.set_alpha(self.sync_alpha)
+ self.sync.set_beta(self.sync_alpha**2/4.0)
+
+ def set_side(self, side):
+ self.side = side
+ self._side_config = ConfigParser.ConfigParser()
+ self._side_config.read(self.config_filename)
+ if not self._side_config.has_section('usrp'):
+ self._side_config.add_section('usrp')
+ self._side_config.set('usrp', 'side', str(self.side))
+ self._side_config.write(open(self.config_filename, 'w'))
+
+ def set_pll_alpha(self, pll_alpha):
+ self.pll_alpha = pll_alpha
+ self._pll_alpha_config = ConfigParser.ConfigParser()
+ self._pll_alpha_config.read(self.config_filename)
+ if not self._pll_alpha_config.has_section('demod'):
+ self._pll_alpha_config.add_section('demod')
+ self._pll_alpha_config.set('demod', 'pll_alpha', str(self.pll_alpha))
+ self._pll_alpha_config.write(open(self.config_filename, 'w'))
+ self.pll.set_alpha(self.pll_alpha)
+ self.pll.set_beta(self.pll_alpha**2/4.0)
+
+ def set_output_filename(self, output_filename):
+ self.output_filename = output_filename
+ self._output_filename_config = ConfigParser.ConfigParser()
+ self._output_filename_config.read(self.config_filename)
+ if not self._output_filename_config.has_section('output'):
+ self._output_filename_config.add_section('output')
+ self._output_filename_config.set('output', 'filename', str(self.output_filename))
+ self._output_filename_config.write(open(self.config_filename, 'w'))
+
+ def set_mf_taps(self, mf_taps):
+ self.mf_taps = mf_taps
+ self.gr_fir_filter_xxx_0.set_taps((self.mf_taps))
+
+ def set_max_sync_offset(self, max_sync_offset):
+ self.max_sync_offset = max_sync_offset
+ self.sync.set_max_offset(self.max_sync_offset)
+
+ def set_max_carrier_offset(self, max_carrier_offset):
+ self.max_carrier_offset = max_carrier_offset
+ self.pll.set_max_offset(self.max_carrier_offset)
+
+ def set_gain(self, gain):
+ self.gain = gain
+ self._gain_config = ConfigParser.ConfigParser()
+ self._gain_config.read(self.config_filename)
+ if not self._gain_config.has_section('usrp'):
+ self._gain_config.add_section('usrp')
+ self._gain_config.set('usrp', 'gain', str(self.gain))
+ self._gain_config.write(open(self.config_filename, 'w'))
+ self.usrp_source.set_gain(self.gain)
+
+ def set_freq(self, freq):
+ self.freq = freq
+ self._freq_config = ConfigParser.ConfigParser()
+ self._freq_config.read(self.config_filename)
+ if not self._freq_config.has_section('usrp'):
+ self._freq_config.add_section('usrp')
+ self._freq_config.set('usrp', 'freq', str(self.freq))
+ self._freq_config.write(open(self.config_filename, 'w'))
+ self.usrp_source.set_frequency(self.freq)
+
+if __name__ == '__main__':
+ parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
+ (options, args) = parser.parse_args()
+ if gr.enable_realtime_scheduling() != gr.RT_OK:
+ print "Error: failed to enable realtime scheduling."
+ tb = usrp_rx_hrpt_nogui()
+ tb.start()
+ raw_input('Press Enter to quit: ')
+ tb.stop()
+
#include <noaa_hrpt_deframer.h>
#include <gr_io_signature.h>
#include <cstring>
+#include <cstdio>
#define ST_IDLE 0
#define ST_SYNCED 1
# additional SWIG files to be installed
noaa_swig_swiginclude_headers = \
- noaa_swig.i \
noaa_hrpt_decoder.i \
noaa_hrpt_deframer.i \
noaa_hrpt_pll_cf.i \
that are needed for the connections creation phase.
@param n the nested data odict
"""
- get_hash = lambda: reduce(lambda x, y: x ^ y, [hash(param) for param in self.get_params()], 0)
+ get_hash = lambda: hash(tuple(map(hash, self.get_params())))
my_hash = 0
while get_hash() != my_hash:
params_n = n.findall('param')