diff options
author | Johnathan Corgan <jcorgan@corganenterprises.com> | 2009-08-29 11:12:37 -0700 |
---|---|---|
committer | Johnathan Corgan <jcorgan@corganenterprises.com> | 2009-09-20 09:39:27 -0700 |
commit | 6b6a5522e0b1d12ef5d697b1067a87dfe584cec6 (patch) | |
tree | 3ec76adefa7b434eb5f789679f660f2227c078fc /gr-noaa/lib | |
parent | a02a0e43d49d3bbb9a76ab8333f1bf8e25c48556 (diff) |
Work in progress, incomplete
* Renamed noaa.carrier_pll_cc to noaa.hrpt_pll_cc
* Added nop noaa.hrpt_sync_cc
* Renamed grc apps to use usrp_ prefix and protocol name
* Installed grc generated scripts to path
Diffstat (limited to 'gr-noaa/lib')
-rw-r--r-- | gr-noaa/lib/Makefile.am | 6 | ||||
-rw-r--r-- | gr-noaa/lib/noaa_hrpt_pll_cc.cc (renamed from gr-noaa/lib/noaa_carrier_pll_cc.cc) | 14 | ||||
-rw-r--r-- | gr-noaa/lib/noaa_hrpt_pll_cc.h (renamed from gr-noaa/lib/noaa_carrier_pll_cc.h) | 20 | ||||
-rw-r--r-- | gr-noaa/lib/noaa_hrpt_sync_cc.cc | 62 | ||||
-rw-r--r-- | gr-noaa/lib/noaa_hrpt_sync_cc.h | 57 |
5 files changed, 140 insertions, 19 deletions
diff --git a/gr-noaa/lib/Makefile.am b/gr-noaa/lib/Makefile.am index 39a4f11555..2690ddb54e 100644 --- a/gr-noaa/lib/Makefile.am +++ b/gr-noaa/lib/Makefile.am @@ -29,7 +29,8 @@ lib_LTLIBRARIES = \ libgnuradio-noaa.la libgnuradio_noaa_la_SOURCES = \ - noaa_carrier_pll_cc.cc + noaa_hrpt_pll_cc.cc \ + noaa_hrpt_sync_cc.cc libgnuradio_noaa_la_LIBADD = \ $(GNURADIO_CORE_LA) @@ -37,4 +38,5 @@ libgnuradio_noaa_la_LIBADD = \ libgnuradio_noaa_la_LDFLAGS = $(NO_UNDEFINED) -version-info 0:0:0 grinclude_HEADERS = \ - noaa_carrier_pll_cc.h + noaa_hrpt_pll_cc.h \ + noaa_hrpt_sync_cc.h diff --git a/gr-noaa/lib/noaa_carrier_pll_cc.cc b/gr-noaa/lib/noaa_hrpt_pll_cc.cc index d6a86faa1f..46fe24da46 100644 --- a/gr-noaa/lib/noaa_carrier_pll_cc.cc +++ b/gr-noaa/lib/noaa_hrpt_pll_cc.cc @@ -24,21 +24,21 @@ #include "config.h" #endif -#include <noaa_carrier_pll_cc.h> +#include <noaa_hrpt_pll_cc.h> #include <gr_io_signature.h> #include <gr_math.h> #include <gr_sincos.h> #define M_TWOPI (2*M_PI) -noaa_carrier_pll_cc_sptr -noaa_make_carrier_pll_cc(float alpha, float beta, float max_offset) +noaa_hrpt_pll_cc_sptr +noaa_make_hrpt_pll_cc(float alpha, float beta, float max_offset) { - return gnuradio::get_initial_sptr(new noaa_carrier_pll_cc(alpha, beta, max_offset)); + return gnuradio::get_initial_sptr(new noaa_hrpt_pll_cc(alpha, beta, max_offset)); } -noaa_carrier_pll_cc::noaa_carrier_pll_cc(float alpha, float beta, float max_offset) - : gr_sync_block("noaa_carrier_pll_cc", +noaa_hrpt_pll_cc::noaa_hrpt_pll_cc(float alpha, float beta, float max_offset) + : gr_sync_block("noaa_hrpt_pll_cc", gr_make_io_signature(1, 1, sizeof(gr_complex)), gr_make_io_signature(1, 1, sizeof(gr_complex))), d_alpha(alpha), d_beta(beta), d_max_offset(max_offset), @@ -58,7 +58,7 @@ phase_wrap(float phase) } int -noaa_carrier_pll_cc::work(int noutput_items, +noaa_hrpt_pll_cc::work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { diff --git a/gr-noaa/lib/noaa_carrier_pll_cc.h b/gr-noaa/lib/noaa_hrpt_pll_cc.h index 8e6de866e6..810454406e 100644 --- a/gr-noaa/lib/noaa_carrier_pll_cc.h +++ b/gr-noaa/lib/noaa_hrpt_pll_cc.h @@ -20,21 +20,21 @@ * Boston, MA 02110-1301, USA. */ -#ifndef INCLUDED_NOAA_CARRIER_PLL_CC_H -#define INCLUDED_NOAA_CARRIER_PLL_CC_H +#ifndef INCLUDED_NOAA_HRPT_PLL_CC_H +#define INCLUDED_NOAA_HRPT_PLL_CC_H #include <gr_sync_block.h> -class noaa_carrier_pll_cc; -typedef boost::shared_ptr<noaa_carrier_pll_cc> noaa_carrier_pll_cc_sptr; +class noaa_hrpt_pll_cc; +typedef boost::shared_ptr<noaa_hrpt_pll_cc> noaa_hrpt_pll_cc_sptr; -noaa_carrier_pll_cc_sptr -noaa_make_carrier_pll_cc(float alpha, float beta, float max_offset); +noaa_hrpt_pll_cc_sptr +noaa_make_hrpt_pll_cc(float alpha, float beta, float max_offset); -class noaa_carrier_pll_cc : public gr_sync_block +class noaa_hrpt_pll_cc : public gr_sync_block { - friend noaa_carrier_pll_cc_sptr noaa_make_carrier_pll_cc(float alpha, float beta, float max_offset); - noaa_carrier_pll_cc(float alpha, float beta, float max_offset); + friend noaa_hrpt_pll_cc_sptr noaa_make_hrpt_pll_cc(float alpha, float beta, float max_offset); + noaa_hrpt_pll_cc(float alpha, float beta, float max_offset); float d_alpha; // 1st order loop constant float d_beta; // 2nd order loop constant @@ -52,4 +52,4 @@ class noaa_carrier_pll_cc : public gr_sync_block void set_max_offset(float max_offset) { d_max_offset = max_offset; } }; -#endif /* INCLUDED_NOAA_CARRIER_PLL_CC_H */ +#endif /* INCLUDED_NOAA_HRPT_PLL_CC_H */ diff --git a/gr-noaa/lib/noaa_hrpt_sync_cc.cc b/gr-noaa/lib/noaa_hrpt_sync_cc.cc new file mode 100644 index 0000000000..47858d758b --- /dev/null +++ b/gr-noaa/lib/noaa_hrpt_sync_cc.cc @@ -0,0 +1,62 @@ +/* -*- c++ -*- */ +/* + * Copyright 2009 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * GNU Radio is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3, or (at your option) + * any later version. + * + * GNU Radio is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <noaa_hrpt_sync_cc.h> +#include <gr_io_signature.h> + +noaa_hrpt_sync_cc_sptr +noaa_make_hrpt_sync_cc(float alpha, float beta, float sps, float max_offset) +{ + return gnuradio::get_initial_sptr(new noaa_hrpt_sync_cc(alpha, beta, sps, max_offset)); +} + +noaa_hrpt_sync_cc::noaa_hrpt_sync_cc(float alpha, float beta, float sps, float max_offset) + : gr_block("noaa_hrpt_sync_cc", + gr_make_io_signature(1, 1, sizeof(gr_complex)), + gr_make_io_signature(1, 1, sizeof(gr_complex))), + d_alpha(alpha), d_beta(beta), d_sps(sps), d_max_offset(max_offset), + d_phase(0.0), d_freq(0.0) +{ +} + +int +noaa_hrpt_sync_cc::general_work(int noutput_items, + gr_vector_int &ninput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items) +{ + int ninputs = ninput_items[0]; + const gr_complex *in = (const gr_complex *) input_items[0]; + gr_complex *out = (gr_complex *) output_items[0]; + + int i = 0, j = 0; + while (i < ninputs && j < noutput_items) { + out[j++] = in[i++]; + } + + consume_each(i); + return j; +} diff --git a/gr-noaa/lib/noaa_hrpt_sync_cc.h b/gr-noaa/lib/noaa_hrpt_sync_cc.h new file mode 100644 index 0000000000..f5b23ccaf0 --- /dev/null +++ b/gr-noaa/lib/noaa_hrpt_sync_cc.h @@ -0,0 +1,57 @@ +/* -*- c++ -*- */ +/* + * Copyright 2009 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * GNU Radio is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3, or (at your option) + * any later version. + * + * GNU Radio is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef INCLUDED_NOAA_HRPT_SYNC_CC_H +#define INCLUDED_NOAA_HRPT_SYNC_CC_H + +#include <gr_sync_block.h> + +class noaa_hrpt_sync_cc; +typedef boost::shared_ptr<noaa_hrpt_sync_cc> noaa_hrpt_sync_cc_sptr; + +noaa_hrpt_sync_cc_sptr +noaa_make_hrpt_sync_cc(float alpha, float beta, float sps, float max_offset); + +class noaa_hrpt_sync_cc : public gr_block +{ + friend noaa_hrpt_sync_cc_sptr noaa_make_hrpt_sync_cc(float alpha, float beta, float sps, float max_offset); + noaa_hrpt_sync_cc(float alpha, float beta, float sps, float max_offset); + + float d_alpha; // 1st order loop constant + float d_beta; // 2nd order loop constant + float d_sps; // samples per symbol + float d_max_offset; // Maximum frequency offset for d_sps, samples/symbol + float d_phase; // Instantaneous symbol phase + float d_freq; // Instantaneous symbol frequency, samples/symbol + + public: + int general_work(int noutput_items, + gr_vector_int &ninput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); + + void set_alpha(float alpha) { d_alpha = alpha; } + void set_beta(float beta) { d_beta = beta; } + void set_max_offset(float max_offset) { d_max_offset = max_offset; } +}; + +#endif /* INCLUDED_NOAA_HRPT_SYNC_CC_H */ |