diff options
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | debian/.gitignore | 121 | ||||
-rwxr-xr-x | debian/bin/gen-install-files.sh | 51 | ||||
-rw-r--r-- | debian/changelog (renamed from debian/changelog.in) | 69 | ||||
-rw-r--r-- | debian/control | 134 | ||||
-rw-r--r-- | debian/copyright | 157 | ||||
-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.hotplug | 47 | ||||
-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.install | 2 | ||||
-rw-r--r-- | debian/libusrp.postrm | 10 | ||||
-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.postrm | 10 | ||||
-rwxr-xr-x | debian/rules | 14 | ||||
-rwxr-xr-x | gcell/apps/gen_script.py | 1 | ||||
-rw-r--r-- | gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc | 1 | ||||
-rw-r--r-- | gr-noaa/README | 22 | ||||
-rw-r--r-- | gr-noaa/apps/Makefile.am | 4 | ||||
-rw-r--r-- | gr-noaa/apps/demod_hrpt_file.grc | 331 | ||||
-rwxr-xr-x | gr-noaa/apps/demod_hrpt_file.py | 55 | ||||
-rw-r--r-- | gr-noaa/apps/usrp_rx_hrpt.grc | 455 | ||||
-rwxr-xr-x | gr-noaa/apps/usrp_rx_hrpt.py | 27 | ||||
-rw-r--r-- | gr-noaa/apps/usrp_rx_hrpt2.grc | 1418 | ||||
-rwxr-xr-x | gr-noaa/apps/usrp_rx_hrpt2.py | 401 | ||||
-rw-r--r-- | gr-noaa/apps/usrp_rx_hrpt_nogui.grc | 869 | ||||
-rwxr-xr-x | gr-noaa/apps/usrp_rx_hrpt_nogui.py | 250 | ||||
-rw-r--r-- | gr-noaa/lib/noaa_hrpt_deframer.cc | 1 | ||||
-rw-r--r-- | gr-noaa/swig/Makefile.am | 1 | ||||
-rw-r--r-- | grc/base/Block.py | 2 |
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') |