diff options
author | Marcus Müller <mmueller@gnuradio.org> | 2020-04-11 01:10:17 +0200 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2020-04-13 15:55:41 +0200 |
commit | 572b3f7168c5eb7a4ce1367392286b3e71778184 (patch) | |
tree | 13bfc958e3b92a94b67effefc8a062d7b4718c56 /gr-filter | |
parent | 99a218e5bf11bd45be28836bfe0cdfcacca9e404 (diff) |
filter: replace stderr logging by calls to GR's logging facilties
This also changed a bit on the logging format of the FFT filter; I don't
expect anyone to rely on that, but it's worth noting.
Diffstat (limited to 'gr-filter')
-rw-r--r-- | gr-filter/include/gnuradio/filter/fft_filter.h | 7 | ||||
-rw-r--r-- | gr-filter/lib/fft_filter.cc | 25 | ||||
-rw-r--r-- | gr-filter/lib/pm_remez.cc | 34 |
3 files changed, 47 insertions, 19 deletions
diff --git a/gr-filter/include/gnuradio/filter/fft_filter.h b/gr-filter/include/gnuradio/filter/fft_filter.h index 98ad9f092b..82cb0ecbd5 100644 --- a/gr-filter/include/gnuradio/filter/fft_filter.h +++ b/gr-filter/include/gnuradio/filter/fft_filter.h @@ -14,6 +14,7 @@ #include <gnuradio/fft/fft.h> #include <gnuradio/filter/api.h> #include <gnuradio/gr_complex.h> +#include <gnuradio/logger.h> #include <volk/volk_alloc.hh> #include <vector> @@ -70,6 +71,8 @@ private: void compute_sizes(int ntaps); int tailsize() const { return d_ntaps - 1; } + gr::logger_ptr d_logger, d_debug_logger; + public: /*! * \brief Construct an FFT filter for float vectors with the given taps and decimation @@ -172,6 +175,8 @@ private: void compute_sizes(int ntaps); int tailsize() const { return d_ntaps - 1; } + gr::logger_ptr d_logger, d_debug_logger; + public: /*! * \brief Construct an FFT filter for complex vectors with the given taps and @@ -274,6 +279,8 @@ private: void compute_sizes(int ntaps); int tailsize() const { return d_ntaps - 1; } + gr::logger_ptr d_logger, d_debug_logger; + public: /*! * \brief Construct an FFT filter for complex vectors with the given taps and diff --git a/gr-filter/lib/fft_filter.cc b/gr-filter/lib/fft_filter.cc index be6eb02139..f1aaa061cb 100644 --- a/gr-filter/lib/fft_filter.cc +++ b/gr-filter/lib/fft_filter.cc @@ -13,6 +13,7 @@ #endif #include <gnuradio/filter/fft_filter.h> +#include <gnuradio/logger.h> #include <volk/volk.h> #include <boost/smart_ptr/make_unique.hpp> #include <cstring> @@ -29,6 +30,7 @@ fft_filter_fff::fft_filter_fff(int decimation, int nthreads) : d_fftsize(-1), d_decimation(decimation), d_nthreads(nthreads) { + gr::configure_default_loggers(d_logger, d_debug_logger, "fft_filter_fff"); set_taps(taps); } @@ -76,8 +78,10 @@ void fft_filter_fff::compute_sizes(int ntaps) d_nsamples = d_fftsize - d_ntaps + 1; if (VERBOSE) { - std::cerr << "fft_filter_fff: ntaps = " << d_ntaps << " fftsize = " << d_fftsize - << " nsamples = " << d_nsamples << std::endl; + std::ostringstream msg; + msg << "fft_filter_fff: ntaps = " << d_ntaps << " fftsize = " << d_fftsize + << " nsamples = " << d_nsamples; + GR_LOG_ERROR(d_logger, msg.str()); } // compute new plans @@ -157,6 +161,7 @@ fft_filter_ccc::fft_filter_ccc(int decimation, int nthreads) : d_fftsize(-1), d_decimation(decimation), d_nthreads(nthreads) { + gr::configure_default_loggers(d_logger, d_debug_logger, "fft_filter_ccc"); set_taps(taps); } @@ -204,8 +209,11 @@ void fft_filter_ccc::compute_sizes(int ntaps) d_nsamples = d_fftsize - d_ntaps + 1; if (VERBOSE) { - std::cerr << "fft_filter_ccc: ntaps = " << d_ntaps << " fftsize = " << d_fftsize - << " nsamples = " << d_nsamples << std::endl; + gr::logger_ptr logger, debug_logger; + std::ostringstream msg; + msg << "fft_filter_ccc: ntaps = " << d_ntaps << " fftsize = " << d_fftsize + << " nsamples = " << d_nsamples; + GR_LOG_ERROR(logger, msg.str()); } // compute new plans @@ -286,6 +294,7 @@ fft_filter_ccf::fft_filter_ccf(int decimation, int nthreads) : d_fftsize(-1), d_decimation(decimation), d_nthreads(nthreads) { + gr::configure_default_loggers(d_logger, d_debug_logger, "fft_filter_ccf"); set_taps(taps); } @@ -333,8 +342,12 @@ void fft_filter_ccf::compute_sizes(int ntaps) d_nsamples = d_fftsize - d_ntaps + 1; if (VERBOSE) { - std::cerr << "fft_filter_ccf: ntaps = " << d_ntaps << " fftsize = " << d_fftsize - << " nsamples = " << d_nsamples << std::endl; + gr::logger_ptr logger, debug_logger; + gr::configure_default_loggers(logger, debug_logger, "fft_filter_ccf"); + std::ostringstream msg; + msg << "fft_filter_ccf: ntaps = " << d_ntaps << " fftsize = " << d_fftsize + << " nsamples = " << d_nsamples; + GR_LOG_ERROR(logger, msg.str()); } // compute new plans diff --git a/gr-filter/lib/pm_remez.cc b/gr-filter/lib/pm_remez.cc index 985bac2ff7..58cfd7e051 100644 --- a/gr-filter/lib/pm_remez.cc +++ b/gr-filter/lib/pm_remez.cc @@ -30,6 +30,7 @@ #endif #include <gnuradio/filter/pm_remez.h> +#include <gnuradio/logger.h> #include <assert.h> #include <cmath> #include <iostream> @@ -763,9 +764,9 @@ static int remez(double h[], // ////////////////////////////////////////////////////////////////////////////// -static void punt(const std::string msg) +static void punt(gr::logger_ptr logger, const std::string msg) { - std::cerr << msg << '\n'; + GR_LOG_ERROR(logger, msg); throw std::runtime_error(msg); } @@ -776,22 +777,29 @@ std::vector<double> pm_remez(int order, const std::string filter_type, int grid_density) noexcept(false) { + static bool loggers_set_up = false; + + gr::logger_ptr logger, debug_logger; + if (!loggers_set_up) { + gr::configure_default_loggers(logger, debug_logger, "pm_remez"); + loggers_set_up = true; + } int numtaps = order + 1; if (numtaps < 4) - punt("gr_remez: number of taps must be >= 3"); + punt(logger, "number of taps must be >= 3"); int numbands = arg_bands.size() / 2; LOCAL_BUFFER(double, bands, numbands * 2); if (numbands < 1 || arg_bands.size() % 2 == 1) - punt("gr_remez: must have an even number of band edges"); + punt(logger, "must have an even number of band edges"); for (unsigned int i = 1; i < arg_bands.size(); i++) { if (arg_bands[i] < arg_bands[i - 1]) - punt("gr_remez: band edges must be nondecreasing"); + punt(logger, "band edges must be nondecreasing"); } if (arg_bands[0] < 0 || arg_bands[arg_bands.size() - 1] > 1) - punt("gr_remez: band edges must be in the range [0,1]"); + punt(logger, "band edges must be in the range [0,1]"); // Divide by 2 to fit with the implementation that uses a // sample rate of [0, 0.5] instead of [0, 1.0] @@ -800,7 +808,7 @@ std::vector<double> pm_remez(int order, LOCAL_BUFFER(double, response, numbands * 2); if (arg_response.size() != arg_bands.size()) - punt("gr_remez: must have one response magnitude for each band edge"); + punt(logger, "must have one response magnitude for each band edge"); for (int i = 0; i < 2 * numbands; i++) response[i] = arg_response[i]; @@ -811,7 +819,7 @@ std::vector<double> pm_remez(int order, if (!arg_weight.empty()) { if ((int)arg_weight.size() != numbands) - punt("gr_remez: need one weight for each band [=length(band)/2]"); + punt(logger, "need one weight for each band [=length(band)/2]"); for (int i = 0; i < numbands; i++) weight[i] = arg_weight[i]; } @@ -824,23 +832,23 @@ std::vector<double> pm_remez(int order, else if (filter_type == "hilbert") itype = HILBERT; else - punt("gr_remez: unknown ftype '" + filter_type + "'"); + punt(logger, "unknown ftype '" + filter_type + "'"); if (grid_density < 16) - punt("gr_remez: grid_density is too low; must be >= 16"); + punt(logger, "grid_density is too low; must be >= 16"); LOCAL_BUFFER(double, coeff, numtaps + 5); // FIXME why + 5? int err = remez(coeff, numtaps, numbands, bands, response, weight, itype, grid_density); if (err == -1) - punt("gr_remez: failed to converge"); + punt(logger, "failed to converge"); if (err == -2) - punt("gr_remez: insufficient extremals -- cannot continue"); + punt(logger, "insufficient extremals -- cannot continue"); if (err == -3) - punt("gr_remez: too many extremals -- cannot continue"); + punt(logger, "too many extremals -- cannot continue"); return std::vector<double>(&coeff[0], &coeff[numtaps]); } |