summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac1
-rw-r--r--debian/.gitignore121
-rwxr-xr-xdebian/bin/gen-install-files.sh51
-rw-r--r--debian/changelog (renamed from debian/changelog.in)69
-rw-r--r--debian/control134
-rw-r--r--debian/copyright157
-rw-r--r--debian/custom/libusrp0.udev (renamed from debian/custom/libusrp.udev)0
-rw-r--r--debian/custom/libusrp2-0.limits (renamed from debian/custom/libusrp2.limits)0
-rw-r--r--debian/custom/usrp.hotplug47
-rw-r--r--debian/libgnuradio-core0.dirs (renamed from debian/libgnuradio-core.dirs)0
-rw-r--r--debian/libgnuradio-core0.install (renamed from debian/libgnuradio-core.install)1
-rw-r--r--debian/libgromnithread-dev.dirs (renamed from debian/libgnuradio-omnithread-dev.dirs)0
-rw-r--r--debian/libgromnithread-dev.install (renamed from debian/libgnuradio-omnithread-dev.install)0
-rw-r--r--debian/libgromnithread0.install (renamed from debian/libgnuradio-omnithread.install)0
-rw-r--r--debian/libgruel0.install (renamed from debian/libgruel.install)0
-rw-r--r--debian/libmblock0.install (renamed from debian/libmblock.install)0
-rw-r--r--debian/libusrp-inband.install2
-rw-r--r--debian/libusrp.postrm10
-rw-r--r--debian/libusrp0.dirs (renamed from debian/libusrp.dirs)0
-rw-r--r--debian/libusrp0.install (renamed from debian/libusrp.install)0
-rw-r--r--debian/libusrp0.postinst (renamed from debian/libusrp.postinst)3
-rw-r--r--debian/libusrp2-0.dirs (renamed from debian/libusrp2.dirs)0
-rw-r--r--debian/libusrp2-0.install (renamed from debian/libusrp2.install)2
-rw-r--r--debian/libusrp2-0.postinst (renamed from debian/libusrp2.postinst)6
-rw-r--r--debian/libusrp2.postrm10
-rwxr-xr-xdebian/rules14
-rwxr-xr-xgcell/apps/gen_script.py1
-rw-r--r--gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc1
-rw-r--r--gr-noaa/README22
-rw-r--r--gr-noaa/apps/Makefile.am4
-rw-r--r--gr-noaa/apps/demod_hrpt_file.grc331
-rwxr-xr-xgr-noaa/apps/demod_hrpt_file.py55
-rw-r--r--gr-noaa/apps/usrp_rx_hrpt.grc455
-rwxr-xr-xgr-noaa/apps/usrp_rx_hrpt.py27
-rw-r--r--gr-noaa/apps/usrp_rx_hrpt2.grc1418
-rwxr-xr-xgr-noaa/apps/usrp_rx_hrpt2.py401
-rw-r--r--gr-noaa/apps/usrp_rx_hrpt_nogui.grc869
-rwxr-xr-xgr-noaa/apps/usrp_rx_hrpt_nogui.py250
-rw-r--r--gr-noaa/lib/noaa_hrpt_deframer.cc1
-rw-r--r--gr-noaa/swig/Makefile.am1
-rw-r--r--grc/base/Block.py2
41 files changed, 3826 insertions, 640 deletions
diff --git a/configure.ac b/configure.ac
index b6b596bef..f51f2103f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -392,7 +392,6 @@ AC_CONFIG_FILES([\
Makefile \
run_tests.sh \
config/Makefile \
- debian/changelog \
])
dnl run_tests.sh is created from run_tests.sh.in . Make it executable.
diff --git a/debian/.gitignore b/debian/.gitignore
index ca163135c..fbcff46ca 100644
--- a/debian/.gitignore
+++ b/debian/.gitignore
@@ -1,2 +1,119 @@
-/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/
diff --git a/debian/bin/gen-install-files.sh b/debian/bin/gen-install-files.sh
index ab04787c9..5e900095a 100755
--- a/debian/bin/gen-install-files.sh
+++ b/debian/bin/gen-install-files.sh
@@ -42,8 +42,8 @@ $EXTRACT gnuradio-core/src/lib/swig/Makefile swiginclude_HEADERS >>$NAME
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
@@ -59,8 +59,8 @@ $EXTRACT gr-audio-alsa/src/Makefile grinclude_HEADERS >>$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
@@ -76,8 +76,8 @@ $EXTRACT gr-audio-jack/src/Makefile grinclude_HEADERS >>$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
@@ -93,8 +93,8 @@ $EXTRACT gr-audio-oss/src/Makefile grinclude_HEADERS >>$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
@@ -110,8 +110,8 @@ $EXTRACT gr-audio-portaudio/src/Makefile grinclude_HEADERS >>$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
@@ -126,8 +126,8 @@ $EXTRACT gr-cvsd-vocoder/src/lib/Makefile grinclude_HEADERS >>$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
@@ -142,8 +142,8 @@ $EXTRACT gr-gsm-fr-vocoder/src/lib/Makefile grinclude_HEADERS >>$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
@@ -158,8 +158,8 @@ $EXTRACT gr-pager/src/Makefile grinclude_HEADERS >>$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
@@ -173,8 +173,8 @@ touch $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
@@ -189,8 +189,8 @@ $EXTRACT gr-trellis/src/lib/Makefile grinclude_HEADERS >>$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
@@ -205,8 +205,8 @@ touch $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
@@ -221,8 +221,8 @@ touch $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
@@ -427,6 +427,9 @@ $EXTRACT gnuradio-examples/python/multi_usrp/Makefile dist_ourdata_SCRIPTS >>$NA
$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
diff --git a/debian/changelog.in b/debian/changelog
index 192158a7c..e7b8998be 100644
--- a/debian/changelog.in
+++ b/debian/changelog
@@ -1,59 +1,36 @@
-gnuradio (3.3svn-@SVNVERSION@) unstable; urgency=low
+gnuradio (3.3git-1) unstable; urgency=low
- * Development trunk updates as of revision @SVNVERSION@
- * See http://gnuradio.org/trac
+ * upstream unstable version from git repository
- -- Johnathan Corgan <jcorgan@corganenterprises.com> @BUILD_DATE@
+ -- Johnathan Corgan <jcorgan@corganenterprises.com> Thu, 24 Sep 2009 23:00:00 -0600
+
+gnuradio (3.2.2-1) unstable; urgency=low
-gnuradio (3.2) 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
- * New upstream release 3.2
- * See http://gnuradio.org/trac
+ -- Bdale Garbee <bdale@gag.com> Tue, 15 Sep 2009 23:37:57 -0600
- -- Johnathan Corgan <jcorgan@corganenterprises.com> Sat, 23 May 2009 18:00:00 -0800
+gnuradio (3.0.4-2) unstable; urgency=high
-gnuradio (3.1.3) stable; urgency=low
+ * 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
- * "Upstream" release, see http://gnuradio.org/trac/wiki/Release3.1Branch
+ -- Bdale Garbee <bdale@gag.com> Sun, 23 Dec 2007 12:11:49 -0700
- -- Johnathan Corgan <jcorgan@corganenterprises.com> Sat, 23 Aug 2008 19:00:00 -0800
+gnuradio (3.0.4-1) unstable; urgency=low
-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
+ * new upstream version
* 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
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 14 Aug 2007 22:38:32 -0600
gnuradio (3.0.3-1) unstable; urgency=low
diff --git a/debian/control b/debian/control
index 4c11a9654..a7b33f0be 100644
--- a/debian/control
+++ b/debian/control
@@ -5,22 +5,22 @@
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.
@@ -28,7 +28,7 @@ Description: GNU Radio Utility Etcetera Library
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
@@ -37,7 +37,7 @@ 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
@@ -47,12 +47,12 @@ Description: GNU Radio Omnithreads Abstraction Library
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.
@@ -63,12 +63,12 @@ Description: GNU Radio Omnithreads Abstraction Library
# 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.
@@ -77,7 +77,7 @@ Section: libdevel
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.
.
@@ -87,11 +87,11 @@ Description: 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
@@ -109,7 +109,7 @@ Package: libusrp-dev
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
@@ -123,10 +123,10 @@ Description: Client side library for the USRP(1) hardware
.
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
@@ -141,7 +141,7 @@ Description: Client side library for the USRP2 hardware
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
@@ -159,12 +159,12 @@ Description: Client side library for the USRP2 hardware
# 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.
@@ -174,80 +174,80 @@ Section: libdevel
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.
@@ -255,17 +255,17 @@ Description: GNU Radio C++ block implementing the CVSD vocoder
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.
@@ -273,17 +273,17 @@ Description: GNU Radio C++ block implementing the GSM full rate vocoder
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.
@@ -291,17 +291,17 @@ Description: GNU Radio C++ block implementing the FLEX one-way pager protocol
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.
@@ -309,17 +309,17 @@ Description: GNU Radio C++ blocks fro 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.
@@ -327,17 +327,17 @@ Description: GNU Radio C++ block implementing trellis-coded modulation
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.
@@ -345,17 +345,17 @@ Description: GNU Radio C++ block implementing video-sdl-coded modulation
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.
@@ -363,17 +363,17 @@ Description: GNU Radio C++ blocks for USRP(1) hardware
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.
@@ -381,7 +381,7 @@ Description: GNU Radio C++ blocks for USRP2 hardware
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.
@@ -394,7 +394,7 @@ Description: GNU Radio C++ blocks for USRP2 hardware
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}
@@ -450,7 +450,7 @@ Description: Python bindings for GNU Radio USRP driver
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}
@@ -510,7 +510,7 @@ Description: GNU Radio GSM Full-Rate Vocoder
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}
@@ -646,8 +646,8 @@ Description: Software Defined Radio
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,
@@ -656,7 +656,7 @@ Description: GNU Radio C++ API libraries
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
diff --git a/debian/copyright b/debian/copyright
index d93151a45..05b60abae 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -3,7 +3,7 @@ upstream restructuring on Wed, 6 Sep 2006 16:02:03 -0600. Much was
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>
@@ -16,11 +16,156 @@ The current upstream maintainer is Johnathan Corgan.
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.
+
diff --git a/debian/custom/libusrp.udev b/debian/custom/libusrp0.udev
index e45dc294a..e45dc294a 100644
--- a/debian/custom/libusrp.udev
+++ b/debian/custom/libusrp0.udev
diff --git a/debian/custom/libusrp2.limits b/debian/custom/libusrp2-0.limits
index f259b2992..f259b2992 100644
--- a/debian/custom/libusrp2.limits
+++ b/debian/custom/libusrp2-0.limits
diff --git a/debian/custom/usrp.hotplug b/debian/custom/usrp.hotplug
deleted file mode 100644
index e8b943204..000000000
--- a/debian/custom/usrp.hotplug
+++ /dev/null
@@ -1,47 +0,0 @@
-#! /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
-
-
-
diff --git a/debian/libgnuradio-core.dirs b/debian/libgnuradio-core0.dirs
index 3462501c0..3462501c0 100644
--- a/debian/libgnuradio-core.dirs
+++ b/debian/libgnuradio-core0.dirs
diff --git a/debian/libgnuradio-core.install b/debian/libgnuradio-core0.install
index e5c1d708c..9feb625d8 100644
--- a/debian/libgnuradio-core.install
+++ b/debian/libgnuradio-core0.install
@@ -1,3 +1,4 @@
etc/gnuradio/conf.d/gnuradio-core.conf
usr/lib/libgnuradio-core.la
usr/lib/libgnuradio-core.so.*
+usr/bin/gnuradio-config-info
diff --git a/debian/libgnuradio-omnithread-dev.dirs b/debian/libgromnithread-dev.dirs
index 79e3d4273..79e3d4273 100644
--- a/debian/libgnuradio-omnithread-dev.dirs
+++ b/debian/libgromnithread-dev.dirs
diff --git a/debian/libgnuradio-omnithread-dev.install b/debian/libgromnithread-dev.install
index 3ebc34158..3ebc34158 100644
--- a/debian/libgnuradio-omnithread-dev.install
+++ b/debian/libgromnithread-dev.install
diff --git a/debian/libgnuradio-omnithread.install b/debian/libgromnithread0.install
index 8910fb392..8910fb392 100644
--- a/debian/libgnuradio-omnithread.install
+++ b/debian/libgromnithread0.install
diff --git a/debian/libgruel.install b/debian/libgruel0.install
index 54d2b998c..54d2b998c 100644
--- a/debian/libgruel.install
+++ b/debian/libgruel0.install
diff --git a/debian/libmblock.install b/debian/libmblock0.install
index cc789522d..cc789522d 100644
--- a/debian/libmblock.install
+++ b/debian/libmblock0.install
diff --git a/debian/libusrp-inband.install b/debian/libusrp-inband.install
deleted file mode 100644
index f55f21485..000000000
--- a/debian/libusrp-inband.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib/libusrp-inband.la
-usr/lib/libusrp-inband.so.*
diff --git a/debian/libusrp.postrm b/debian/libusrp.postrm
deleted file mode 100644
index 268d741c3..000000000
--- a/debian/libusrp.postrm
+++ /dev/null
@@ -1,10 +0,0 @@
-#! /bin/sh
-
-set -e
-
-if [ "$1" != "remove" ]; then
- exit 0
-fi
-
-/sbin/ldconfig
-exit 0
diff --git a/debian/libusrp.dirs b/debian/libusrp0.dirs
index cb9eb4204..cb9eb4204 100644
--- a/debian/libusrp.dirs
+++ b/debian/libusrp0.dirs
diff --git a/debian/libusrp.install b/debian/libusrp0.install
index 1cabb1ff4..1cabb1ff4 100644
--- a/debian/libusrp.install
+++ b/debian/libusrp0.install
diff --git a/debian/libusrp.postinst b/debian/libusrp0.postinst
index 48da2b3a4..562b9232e 100644
--- a/debian/libusrp.postinst
+++ b/debian/libusrp0.postinst
@@ -11,5 +11,6 @@ if ! getent group usrp >/dev/null; then
addgroup --system usrp
fi
-ldconfig
+#DEBHELPER#
+
exit 0
diff --git a/debian/libusrp2.dirs b/debian/libusrp2-0.dirs
index 6c09e0d5c..6c09e0d5c 100644
--- a/debian/libusrp2.dirs
+++ b/debian/libusrp2-0.dirs
diff --git a/debian/libusrp2.install b/debian/libusrp2-0.install
index dfe91f8b8..1c5963ab7 100644
--- a/debian/libusrp2.install
+++ b/debian/libusrp2-0.install
@@ -2,4 +2,4 @@ usr/lib/libusrp2.la
usr/lib/libusrp2.so.*
usr/bin/usrp2_socket_opener
usr/bin/find_usrps
-etc/security/limits.d/libusrp2.limits
+etc/security/limits.d/libusrp2-0.limits
diff --git a/debian/libusrp2.postinst b/debian/libusrp2-0.postinst
index 91b9e11bf..8da31a3cd 100644
--- a/debian/libusrp2.postinst
+++ b/debian/libusrp2-0.postinst
@@ -12,7 +12,9 @@ if ! getent group usrp >/dev/null; then
fi
# Create setuid root for group usrp on socket opener
-chown root.usrp /usr/bin/usrp2_socket_opener
+chown root:usrp /usr/bin/usrp2_socket_opener
chmod 04750 /usr/bin/usrp2_socket_opener
-ldconfig
+
+#DEBHELPER#
+
exit 0
diff --git a/debian/libusrp2.postrm b/debian/libusrp2.postrm
deleted file mode 100644
index 268d741c3..000000000
--- a/debian/libusrp2.postrm
+++ /dev/null
@@ -1,10 +0,0 @@
-#! /bin/sh
-
-set -e
-
-if [ "$1" != "remove" ]; then
- exit 0
-fi
-
-/sbin/ldconfig
-exit 0
diff --git a/debian/rules b/debian/rules
index 1fc459280..f0dcd538d 100755
--- a/debian/rules
+++ b/debian/rules
@@ -8,6 +8,8 @@ export DH_OPTIONS
export DH_PYCENTRAL=nomove
+DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
clean:
dh_testdir
dh_testroot
@@ -37,6 +39,7 @@ configure-stamp:
dh_testdir
[ -f ./configure ] || ./bootstrap
./configure \
+ --build=$(DEB_BUILD_GNU_TYPE) \
--prefix=/usr \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
@@ -46,7 +49,7 @@ configure-stamp:
--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
@@ -59,7 +62,8 @@ build-stamp: configure-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
@@ -79,12 +83,12 @@ install-stamp: extract-stamp debian/control
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 \
diff --git a/gcell/apps/gen_script.py b/gcell/apps/gen_script.py
index e4bbc7480..2ad0fb78e 100755
--- a/gcell/apps/gen_script.py
+++ b/gcell/apps/gen_script.py
@@ -57,6 +57,7 @@ def main():
parser.print_help()
sys.exit(1)
+ #FIXME to use git now
svn_rev = get_svn_rev()
os.environ['TZ'] = 'PST8PDT' # always pacific
diff --git a/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc b/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc
index a7e8de62a..7e34551c8 100644
--- a/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc
+++ b/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc
@@ -30,6 +30,7 @@
#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)
diff --git a/gr-noaa/README b/gr-noaa/README
index d99c0d90a..fada3550a 100644
--- a/gr-noaa/README
+++ b/gr-noaa/README
@@ -5,10 +5,10 @@ As the scripts are generated using GRC, GRC must be installed at runtime
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,
@@ -24,12 +24,26 @@ The present HRPT demodulator is only tested at decimation 16. The only other
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]
diff --git a/gr-noaa/apps/Makefile.am b/gr-noaa/apps/Makefile.am
index 906638ff1..b9787a92c 100644
--- a/gr-noaa/apps/Makefile.am
+++ b/gr-noaa/apps/Makefile.am
@@ -26,10 +26,14 @@ if PYTHON
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
diff --git a/gr-noaa/apps/demod_hrpt_file.grc b/gr-noaa/apps/demod_hrpt_file.grc
index 4a5e87170..16f83f780 100644
--- a/gr-noaa/apps/demod_hrpt_file.grc
+++ b/gr-noaa/apps/demod_hrpt_file.grc
@@ -1,6 +1,6 @@
<?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>
@@ -191,34 +191,22 @@
</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>
@@ -229,7 +217,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>pll_alpha</value>
+ <value>filename</value>
</param>
<param>
<key>_enabled</key>
@@ -237,23 +225,23 @@
</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>
@@ -264,7 +252,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>sync_alpha</value>
+ <value>output</value>
</param>
<param>
<key>_enabled</key>
@@ -272,23 +260,23 @@
</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>
@@ -296,22 +284,22 @@
</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>
@@ -319,34 +307,57 @@
</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>
@@ -354,10 +365,29 @@
</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>
@@ -365,23 +395,19 @@
</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>
@@ -389,10 +415,10 @@
</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>
@@ -400,7 +426,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(305, 380)</value>
+ <value>(1237, 542)</value>
</param>
<param>
<key>_rotation</key>
@@ -431,7 +457,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(526, 363)</value>
+ <value>(628, 363)</value>
</param>
<param>
<key>_rotation</key>
@@ -439,45 +465,34 @@
</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>
@@ -485,22 +500,34 @@
</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>
@@ -508,34 +535,34 @@
</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>
@@ -566,7 +593,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(504, 463)</value>
+ <value>(606, 463)</value>
</param>
<param>
<key>_rotation</key>
@@ -574,34 +601,22 @@
</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>
@@ -609,10 +624,10 @@
</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>
@@ -620,7 +635,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(935, 483)</value>
+ <value>(365, 380)</value>
</param>
<param>
<key>_rotation</key>
@@ -628,10 +643,10 @@
</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>
@@ -639,19 +654,23 @@
</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>
@@ -659,18 +678,22 @@
</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>
@@ -678,34 +701,30 @@
</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>
@@ -731,18 +750,6 @@
<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>1</source_key>
@@ -755,12 +762,6 @@
<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>
@@ -773,8 +774,26 @@
<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>
diff --git a/gr-noaa/apps/demod_hrpt_file.py b/gr-noaa/apps/demod_hrpt_file.py
index a1469e9e0..309a79209 100755
--- a/gr-noaa/apps/demod_hrpt_file.py
+++ b/gr-noaa/apps/demod_hrpt_file.py
@@ -2,7 +2,7 @@
##################################################
# 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
@@ -15,17 +15,17 @@ import math
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
@@ -33,9 +33,10 @@ class demod_hrpt_file(gr.top_block):
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
@@ -46,7 +47,7 @@ class demod_hrpt_file(gr.top_block):
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)
@@ -57,13 +58,19 @@ class demod_hrpt_file(gr.top_block):
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
@@ -79,12 +86,6 @@ class demod_hrpt_file(gr.top_block):
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)
@@ -98,6 +99,14 @@ class demod_hrpt_file(gr.top_block):
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)
@@ -106,24 +115,20 @@ class demod_hrpt_file(gr.top_block):
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()
diff --git a/gr-noaa/apps/usrp_rx_hrpt.grc b/gr-noaa/apps/usrp_rx_hrpt.grc
index 90d868769..d06879716 100644
--- a/gr-noaa/apps/usrp_rx_hrpt.grc
+++ b/gr-noaa/apps/usrp_rx_hrpt.grc
@@ -1,6 +1,6 @@
<?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>
@@ -76,41 +76,6 @@
</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>
<key>id</key>
@@ -867,6 +832,230 @@
</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>
<key>id</key>
@@ -918,7 +1107,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(56, 699)</value>
+ <value>(28, 699)</value>
</param>
<param>
<key>_rotation</key>
@@ -957,7 +1146,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(273, 715)</value>
+ <value>(240, 715)</value>
</param>
<param>
<key>_rotation</key>
@@ -1016,7 +1205,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(439, 829)</value>
+ <value>(406, 838)</value>
</param>
<param>
<key>_rotation</key>
@@ -1071,7 +1260,7 @@
</param>
<param>
<key>fft_rate</key>
- <value>30</value>
+ <value>15</value>
</param>
<param>
<key>peak_hold</key>
@@ -1095,7 +1284,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(439, 465)</value>
+ <value>(406, 466)</value>
</param>
<param>
<key>_rotation</key>
@@ -1118,7 +1307,7 @@
</param>
<param>
<key>title</key>
- <value>Post-PLL</value>
+ <value>Demod Waveform</value>
</param>
<param>
<key>samp_rate</key>
@@ -1161,176 +1350,6 @@
<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>
@@ -1368,20 +1387,20 @@
<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>
diff --git a/gr-noaa/apps/usrp_rx_hrpt.py b/gr-noaa/apps/usrp_rx_hrpt.py
index 7efbecd3a..ae70f25c8 100755
--- a/gr-noaa/apps/usrp_rx_hrpt.py
+++ b/gr-noaa/apps/usrp_rx_hrpt.py
@@ -2,7 +2,7 @@
##################################################
# 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
@@ -62,6 +62,7 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
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
@@ -70,9 +71,9 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
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
@@ -189,11 +190,11 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
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,
@@ -211,7 +212,7 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
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",
@@ -244,9 +245,9 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
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):
@@ -348,6 +349,10 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
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)
@@ -387,6 +392,10 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
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)
@@ -395,10 +404,6 @@ class usrp_rx_hrpt(grc_wxgui.top_block_gui):
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)
diff --git a/gr-noaa/apps/usrp_rx_hrpt2.grc b/gr-noaa/apps/usrp_rx_hrpt2.grc
new file mode 100644
index 000000000..d42a9eab6
--- /dev/null
+++ b/gr-noaa/apps/usrp_rx_hrpt2.grc
@@ -0,0 +1,1418 @@
+<?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>
diff --git a/gr-noaa/apps/usrp_rx_hrpt2.py b/gr-noaa/apps/usrp_rx_hrpt2.py
new file mode 100755
index 000000000..319335169
--- /dev/null
+++ b/gr-noaa/apps/usrp_rx_hrpt2.py
@@ -0,0 +1,401 @@
+#!/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)
+
diff --git a/gr-noaa/apps/usrp_rx_hrpt_nogui.grc b/gr-noaa/apps/usrp_rx_hrpt_nogui.grc
new file mode 100644
index 000000000..fadc2d1da
--- /dev/null
+++ b/gr-noaa/apps/usrp_rx_hrpt_nogui.grc
@@ -0,0 +1,869 @@
+<?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>
diff --git a/gr-noaa/apps/usrp_rx_hrpt_nogui.py b/gr-noaa/apps/usrp_rx_hrpt_nogui.py
new file mode 100755
index 000000000..9917847bb
--- /dev/null
+++ b/gr-noaa/apps/usrp_rx_hrpt_nogui.py
@@ -0,0 +1,250 @@
+#!/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()
+
diff --git a/gr-noaa/lib/noaa_hrpt_deframer.cc b/gr-noaa/lib/noaa_hrpt_deframer.cc
index 89486aa19..91c94d2a6 100644
--- a/gr-noaa/lib/noaa_hrpt_deframer.cc
+++ b/gr-noaa/lib/noaa_hrpt_deframer.cc
@@ -27,6 +27,7 @@
#include <noaa_hrpt_deframer.h>
#include <gr_io_signature.h>
#include <cstring>
+#include <cstdio>
#define ST_IDLE 0
#define ST_SYNCED 1
diff --git a/gr-noaa/swig/Makefile.am b/gr-noaa/swig/Makefile.am
index cd7686e21..3ac7879d6 100644
--- a/gr-noaa/swig/Makefile.am
+++ b/gr-noaa/swig/Makefile.am
@@ -52,7 +52,6 @@ noaa_swig_python = \
# 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 \
diff --git a/grc/base/Block.py b/grc/base/Block.py
index 203e878e4..b2015cc40 100644
--- a/grc/base/Block.py
+++ b/grc/base/Block.py
@@ -239,7 +239,7 @@ class Block(Element):
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')