summaryrefslogtreecommitdiff
path: root/gr-filter
diff options
context:
space:
mode:
authorMarcus Müller <mmueller@gnuradio.org>2020-04-11 01:10:17 +0200
committerMarcus Müller <marcus@hostalia.de>2020-04-13 15:55:41 +0200
commit572b3f7168c5eb7a4ce1367392286b3e71778184 (patch)
tree13bfc958e3b92a94b67effefc8a062d7b4718c56 /gr-filter
parent99a218e5bf11bd45be28836bfe0cdfcacca9e404 (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.h7
-rw-r--r--gr-filter/lib/fft_filter.cc25
-rw-r--r--gr-filter/lib/pm_remez.cc34
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]);
}