Update to gnuradio 3.7 API
This is one huge / ugly patch. It uses the new 3.7 namespaces and include path stuff. I stayed away from that _impl pattern because that's just dumb. Based on original patch by Dimitri Stolnikov <horiz0n@gmx.net> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
This commit is contained in:
parent
0039c7fec6
commit
022ec6859f
|
@ -1,4 +1,4 @@
|
|||
# Copyright 2011 Free Software Foundation, Inc.
|
||||
# Copyright 2011,2012 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Radio
|
||||
#
|
||||
|
@ -17,6 +17,7 @@
|
|||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||
# Boston, MA 02110-1301, USA.
|
||||
|
||||
|
||||
########################################################################
|
||||
# Project setup
|
||||
########################################################################
|
||||
|
@ -44,9 +45,9 @@ endif()
|
|||
########################################################################
|
||||
# Find boost
|
||||
########################################################################
|
||||
if(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
|
||||
if(UNIX AND EXISTS "/usr/lib64")
|
||||
list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
|
||||
endif(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
|
||||
endif(UNIX AND EXISTS "/usr/lib64")
|
||||
set(Boost_ADDITIONAL_VERSIONS
|
||||
"1.35.0" "1.35" "1.36.0" "1.36" "1.37.0" "1.37" "1.38.0" "1.38" "1.39.0" "1.39"
|
||||
"1.40.0" "1.40" "1.41.0" "1.41" "1.42.0" "1.42" "1.43.0" "1.43" "1.44.0" "1.44"
|
||||
|
@ -56,7 +57,7 @@ set(Boost_ADDITIONAL_VERSIONS
|
|||
"1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64"
|
||||
"1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69"
|
||||
)
|
||||
find_package(Boost "1.35")
|
||||
find_package(Boost "1.35" COMPONENTS system)
|
||||
|
||||
if(NOT Boost_FOUND)
|
||||
message(FATAL_ERROR "Boost required to compile iqbalance")
|
||||
|
@ -107,15 +108,10 @@ set(GRC_BLOCKS_DIR ${GR_PKG_DATA_DIR}/grc/blocks)
|
|||
########################################################################
|
||||
# Find gnuradio build dependencies
|
||||
########################################################################
|
||||
find_package(Gruel)
|
||||
find_package(GnuradioCore)
|
||||
|
||||
if(NOT GRUEL_FOUND)
|
||||
message(FATAL_ERROR "Gruel required to compile iqbalance")
|
||||
endif()
|
||||
|
||||
if(NOT GNURADIO_CORE_FOUND)
|
||||
message(FATAL_ERROR "GnuRadio Core required to compile iqbalance")
|
||||
set(GR_REQUIRED_COMPONENTS RUNTIME)
|
||||
find_package(Gnuradio "3.7.0")
|
||||
if(NOT GNURADIO_RUNTIME_FOUND)
|
||||
message(FATAL_ERROR "GnuRadio Runtime required to compile iqbalance")
|
||||
endif()
|
||||
|
||||
########################################################################
|
||||
|
@ -126,16 +122,14 @@ include_directories(
|
|||
${Boost_INCLUDE_DIRS}
|
||||
${FFTW3F_INCLUDE_DIRS}
|
||||
${LIBOSMODSP_INCLUDE_DIRS}
|
||||
${GRUEL_INCLUDE_DIRS}
|
||||
${GNURADIO_CORE_INCLUDE_DIRS}
|
||||
${GNURADIO_RUNTIME_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${Boost_LIBRARY_DIRS}
|
||||
${FFTW3F_LIBRARY_DIRS}
|
||||
${LIBOSMODSP_LIBRARY_DIRS}
|
||||
${GRUEL_LIBRARY_DIRS}
|
||||
${GNURADIO_CORE_LIBRARY_DIRS}
|
||||
${GNURADIO_RUNTIME_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
# Set component parameters
|
||||
|
@ -157,7 +151,7 @@ add_custom_target(uninstall
|
|||
########################################################################
|
||||
# Add subdirectories
|
||||
########################################################################
|
||||
add_subdirectory(include)
|
||||
add_subdirectory(include/gnuradio/iqbalance)
|
||||
add_subdirectory(lib)
|
||||
add_subdirectory(swig)
|
||||
add_subdirectory(python)
|
||||
|
|
|
@ -18,5 +18,6 @@
|
|||
# Boston, MA 02110-1301, USA.
|
||||
install(FILES
|
||||
iqbalance_fix_cc.xml
|
||||
iqbalance_optimize_c.xml DESTINATION share/gnuradio/grc/blocks
|
||||
iqbalance_optimize_c.xml
|
||||
DESTINATION share/gnuradio/grc/blocks
|
||||
)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<name>IQ Bal Fix</name>
|
||||
<key>iqbalance_fix_cc</key>
|
||||
<category>IQ Balance</category>
|
||||
<import>import iqbalance</import>
|
||||
<import>from gnuradio import iqbalance</import>
|
||||
<make>iqbalance.fix_cc($mag, $phase)</make>
|
||||
<callback>set_mag($mag)</callback>
|
||||
<callback>set_phase($phase)</callback>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<name>IQ Bal Optimize</name>
|
||||
<key>iqbalance_optimize_c</key>
|
||||
<category>IQ Balance</category>
|
||||
<import>import iqbalance</import>
|
||||
<import>from gnuradio import iqbalance</import>
|
||||
<make>iqbalance.optimize_c($period)</make>
|
||||
<callback>set_period($period)</callback>
|
||||
<param>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright 2011 Free Software Foundation, Inc.
|
||||
# Copyright 2011,2012 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Radio
|
||||
#
|
||||
|
@ -21,7 +21,8 @@
|
|||
# Install public header files
|
||||
########################################################################
|
||||
install(FILES
|
||||
iqbalance_api.h
|
||||
iqbalance_fix_cc.h
|
||||
iqbalance_optimize_c.h DESTINATION include/iqbalance
|
||||
api.h
|
||||
fix_cc.h
|
||||
optimize_c.h
|
||||
DESTINATION include/gnuradio/iqbalance
|
||||
)
|
|
@ -22,7 +22,7 @@
|
|||
#ifndef INCLUDED_IQBALANCE_API_H
|
||||
#define INCLUDED_IQBALANCE_API_H
|
||||
|
||||
#include <gruel/attributes.h>
|
||||
#include <gnuradio/attributes.h>
|
||||
|
||||
#ifdef gnuradio_iqbalance_EXPORTS
|
||||
# define IQBALANCE_API __GR_ATTR_EXPORT
|
|
@ -0,0 +1,62 @@
|
|||
/* -*- c++ -*- */
|
||||
/*
|
||||
* Copyright 2013 Sylvain Munaut <tnt@246tNt.com>
|
||||
*
|
||||
* This 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.
|
||||
*
|
||||
* This software 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 this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef INCLUDED_IQBALANCE_FIX_CC_H
|
||||
#define INCLUDED_IQBALANCE_FIX_CC_H
|
||||
|
||||
#include <gnuradio/iqbalance/api.h>
|
||||
#include <gnuradio/sync_block.h>
|
||||
|
||||
namespace gr {
|
||||
namespace iqbalance {
|
||||
|
||||
class IQBALANCE_API fix_cc : public gr::sync_block
|
||||
{
|
||||
private:
|
||||
fix_cc(float mag, float phase);
|
||||
|
||||
float d_mag, d_phase;
|
||||
|
||||
public:
|
||||
typedef boost::shared_ptr<fix_cc> sptr;
|
||||
|
||||
static sptr make(float mag=0.0f, float phase=0.0f);
|
||||
|
||||
~fix_cc();
|
||||
|
||||
void set_mag(float mag) { this->d_mag = mag; }
|
||||
void set_phase(float phase) { this->d_phase = phase; }
|
||||
|
||||
float mag() const { return this->d_mag; }
|
||||
float phase() const { return this->d_phase; }
|
||||
|
||||
void apply_new_corrections (pmt::pmt_t msg);
|
||||
|
||||
int work (int noutput_items,
|
||||
gr_vector_const_void_star &input_items,
|
||||
gr_vector_void_star &output_items);
|
||||
};
|
||||
|
||||
} // namespace iqbalance
|
||||
} // namespace gr
|
||||
|
||||
#endif /* INCLUDED_IQBALANCE_FIX_CC_H */
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
/* -*- c++ -*- */
|
||||
/*
|
||||
* Copyright 2013 Sylvain Munaut <tnt@246tNt.com>
|
||||
*
|
||||
* This 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.
|
||||
*
|
||||
* This software 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 this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef INCLUDED_IQBALANCE_OPTIMIZE_C_H
|
||||
#define INCLUDED_IQBALANCE_OPTIMIZE_C_H
|
||||
|
||||
#include <gnuradio/iqbalance/api.h>
|
||||
#include <gnuradio/sync_block.h>
|
||||
|
||||
namespace gr {
|
||||
namespace iqbalance {
|
||||
|
||||
class IQBALANCE_API optimize_c : public gr::sync_block
|
||||
{
|
||||
private:
|
||||
optimize_c(int period);
|
||||
|
||||
int d_period, d_count;
|
||||
bool d_first;
|
||||
float d_mag, d_phase;
|
||||
|
||||
public:
|
||||
typedef boost::shared_ptr<optimize_c> sptr;
|
||||
|
||||
static sptr make(int period=0);
|
||||
|
||||
~optimize_c();
|
||||
|
||||
void set_period(int period) { this->d_period = period; }
|
||||
int period() const { return this->d_period; }
|
||||
|
||||
float mag() const { return this->d_mag; }
|
||||
float phase() const { return this->d_phase; }
|
||||
|
||||
void reset(void) {
|
||||
this->d_first = true;
|
||||
this->d_count = 0;
|
||||
this->d_mag = this->d_phase = 0.0f;
|
||||
}
|
||||
|
||||
void forecast (int noutput_items, gr_vector_int &ninput_items_required);
|
||||
|
||||
int work (int noutput_items,
|
||||
gr_vector_const_void_star &input_items,
|
||||
gr_vector_void_star &output_items);
|
||||
};
|
||||
|
||||
} // namespace iqbalance
|
||||
} // namespace gr
|
||||
|
||||
#endif /* INCLUDED_IQBALANCE_OPTIMIZE_C_H */
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
/* -*- c++ -*- */
|
||||
/*
|
||||
* Copyright 2013 Sylvain Munaut <tnt@246tNt.com>
|
||||
*
|
||||
* This 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.
|
||||
*
|
||||
* This software 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 this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef INCLUDED_IQBALANCE_FIX_CC_H
|
||||
#define INCLUDED_IQBALANCE_FIX_CC_H
|
||||
|
||||
#include <iqbalance_api.h>
|
||||
#include <gr_sync_block.h>
|
||||
|
||||
class iqbalance_fix_cc;
|
||||
|
||||
typedef boost::shared_ptr<iqbalance_fix_cc> iqbalance_fix_cc_sptr;
|
||||
|
||||
IQBALANCE_API iqbalance_fix_cc_sptr iqbalance_make_fix_cc (float mag=0.0f, float phase=0.0f);
|
||||
|
||||
/*!
|
||||
* \brief <+description+>
|
||||
* \ingroup block
|
||||
*
|
||||
*/
|
||||
class IQBALANCE_API iqbalance_fix_cc : public gr_sync_block
|
||||
{
|
||||
private:
|
||||
friend IQBALANCE_API iqbalance_fix_cc_sptr iqbalance_make_fix_cc (float mag, float phase);
|
||||
|
||||
iqbalance_fix_cc(float mag, float phase);
|
||||
|
||||
float d_mag, d_phase;
|
||||
|
||||
public:
|
||||
~iqbalance_fix_cc();
|
||||
|
||||
void set_mag(float mag) { this->d_mag = mag; }
|
||||
void set_phase(float phase) { this->d_phase = phase; }
|
||||
|
||||
float mag() const { return this->d_mag; }
|
||||
float phase() const { return this->d_phase; }
|
||||
|
||||
void apply_new_corrections (pmt::pmt_t msg);
|
||||
|
||||
int work (int noutput_items,
|
||||
gr_vector_const_void_star &input_items,
|
||||
gr_vector_void_star &output_items);
|
||||
};
|
||||
|
||||
#endif /* INCLUDED_IQBALANCE_FIX_CC_H */
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
/* -*- c++ -*- */
|
||||
/*
|
||||
* Copyright 2013 Sylvain Munaut <tnt@246tNt.com>
|
||||
*
|
||||
* This 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.
|
||||
*
|
||||
* This software 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 this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef INCLUDED_IQBALANCE_OPTIMIZE_C_H
|
||||
#define INCLUDED_IQBALANCE_OPTIMIZE_C_H
|
||||
|
||||
#include <iqbalance_api.h>
|
||||
#include <gr_sync_block.h>
|
||||
|
||||
class iqbalance_optimize_c;
|
||||
|
||||
typedef boost::shared_ptr<iqbalance_optimize_c> iqbalance_optimize_c_sptr;
|
||||
|
||||
IQBALANCE_API iqbalance_optimize_c_sptr iqbalance_make_optimize_c (int period=0);
|
||||
|
||||
/*!
|
||||
* \brief <+description+>
|
||||
* \ingroup block
|
||||
*
|
||||
*/
|
||||
class IQBALANCE_API iqbalance_optimize_c : public gr_sync_block
|
||||
{
|
||||
private:
|
||||
friend IQBALANCE_API iqbalance_optimize_c_sptr iqbalance_make_optimize_c (int period);
|
||||
|
||||
iqbalance_optimize_c(int period);
|
||||
|
||||
int d_period, d_count;
|
||||
bool d_first;
|
||||
float d_mag, d_phase;
|
||||
|
||||
public:
|
||||
~iqbalance_optimize_c();
|
||||
|
||||
void set_period(int period) { this->d_period = period; }
|
||||
int period() const { return this->d_period; }
|
||||
|
||||
float mag() const { return this->d_mag; }
|
||||
float phase() const { return this->d_phase; }
|
||||
|
||||
void reset(void) {
|
||||
this->d_first = true;
|
||||
this->d_count = 0;
|
||||
this->d_mag = this->d_phase = 0.0f;
|
||||
}
|
||||
|
||||
void forecast (int noutput_items, gr_vector_int &ninput_items_required);
|
||||
|
||||
int work (int noutput_items,
|
||||
gr_vector_const_void_star &input_items,
|
||||
gr_vector_void_star &output_items);
|
||||
};
|
||||
|
||||
#endif /* INCLUDED_IQBALANCE_OPTIMIZE_C_H */
|
||||
|
|
@ -19,8 +19,17 @@
|
|||
# Setup library
|
||||
########################################################################
|
||||
include(GrPlatform) #define LIB_SUFFIX
|
||||
add_library(gnuradio-iqbalance SHARED iqbalance_fix_cc.cc iqbalance_optimize_c.cc ${LIBOSMODSP_SOURCES})
|
||||
target_link_libraries(gnuradio-iqbalance ${Boost_LIBRARIES} ${GRUEL_LIBRARIES} ${GNURADIO_CORE_LIBRARIES} ${LIBOSMODSP_LIBRARIES})
|
||||
|
||||
include_directories(${Boost_INCLUDE_DIR})
|
||||
link_directories(${Boost_LIBRARY_DIRS})
|
||||
|
||||
list(APPEND iqbalance_sources
|
||||
fix_cc.cc
|
||||
optimize_c.cc
|
||||
)
|
||||
|
||||
add_library(gnuradio-iqbalance SHARED ${iqbalance_sources} ${LIBOSMODSP_SOURCES})
|
||||
target_link_libraries(gnuradio-iqbalance ${Boost_LIBRARIES} ${GNURADIO_RUNTIME_LIBRARIES} ${LIBOSMODSP_LIBRARIES})
|
||||
set_target_properties(gnuradio-iqbalance PROPERTIES DEFINE_SYMBOL "gnuradio_iqbalance_EXPORTS")
|
||||
|
||||
########################################################################
|
||||
|
|
|
@ -22,49 +22,50 @@
|
|||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <gr_io_signature.h>
|
||||
#include "iqbalance_fix_cc.h"
|
||||
#include <gnuradio/io_signature.h>
|
||||
#include <gnuradio/iqbalance/fix_cc.h>
|
||||
|
||||
namespace gr {
|
||||
|
||||
iqbalance_fix_cc_sptr
|
||||
iqbalance_make_fix_cc (float mag, float phase)
|
||||
iqbalance::fix_cc::sptr
|
||||
iqbalance::fix_cc::make(float mag, float phase)
|
||||
{
|
||||
return gnuradio::get_initial_sptr (new iqbalance_fix_cc(mag, phase));
|
||||
return gnuradio::get_initial_sptr(new iqbalance::fix_cc(mag, phase));
|
||||
}
|
||||
|
||||
|
||||
iqbalance_fix_cc::iqbalance_fix_cc (float mag, float phase)
|
||||
: gr_sync_block ("fix_cc",
|
||||
gr_make_io_signature(1, 1, sizeof (gr_complex)),
|
||||
gr_make_io_signature(1, 1, sizeof (gr_complex))),
|
||||
iqbalance::fix_cc::fix_cc(float mag, float phase)
|
||||
: gr::sync_block ("fix_cc",
|
||||
gr::io_signature::make(1, 1, sizeof (gr_complex)),
|
||||
gr::io_signature::make(1, 1, sizeof (gr_complex))),
|
||||
d_mag(mag),
|
||||
d_phase(phase)
|
||||
{
|
||||
message_port_register_in(pmt::mp("iqbal_corr"));
|
||||
set_msg_handler(pmt::mp("iqbal_corr"),
|
||||
boost::bind(&iqbalance_fix_cc::apply_new_corrections, this, _1));
|
||||
boost::bind(&iqbalance::fix_cc::apply_new_corrections, this, _1));
|
||||
}
|
||||
|
||||
|
||||
iqbalance_fix_cc::~iqbalance_fix_cc()
|
||||
iqbalance::fix_cc::~fix_cc()
|
||||
{
|
||||
/* Nothing to do */
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
iqbalance_fix_cc::apply_new_corrections (pmt::pmt_t msg)
|
||||
iqbalance::fix_cc::apply_new_corrections(pmt::pmt_t msg)
|
||||
{
|
||||
if (!pmt_is_f32vector(msg))
|
||||
if (!pmt::is_f32vector(msg))
|
||||
return;
|
||||
|
||||
this->set_mag(pmt_f32vector_ref(msg, 0));
|
||||
this->set_phase(pmt_f32vector_ref(msg, 1));
|
||||
this->set_mag(pmt::f32vector_ref(msg, 0));
|
||||
this->set_phase(pmt::f32vector_ref(msg, 1));
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
iqbalance_fix_cc::work (int noutput_items,
|
||||
iqbalance::fix_cc::work(int noutput_items,
|
||||
gr_vector_const_void_star &input_items,
|
||||
gr_vector_void_star &output_items)
|
||||
{
|
||||
|
@ -90,3 +91,6 @@ iqbalance_fix_cc::work (int noutput_items,
|
|||
|
||||
return noutput_items;
|
||||
}
|
||||
|
||||
} /* namespace gr */
|
||||
|
|
@ -22,8 +22,8 @@
|
|||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <gr_io_signature.h>
|
||||
#include "iqbalance_optimize_c.h"
|
||||
#include <gnuradio/io_signature.h>
|
||||
#include <gnuradio/iqbalance/optimize_c.h>
|
||||
|
||||
extern "C" {
|
||||
#include <osmocom/dsp/cxvec.h>
|
||||
|
@ -34,30 +34,32 @@ extern "C" {
|
|||
#define FFT_COUNT 4
|
||||
|
||||
|
||||
iqbalance_optimize_c_sptr
|
||||
iqbalance_make_optimize_c (int period)
|
||||
namespace gr {
|
||||
|
||||
iqbalance::optimize_c::sptr
|
||||
iqbalance::optimize_c::make(int period)
|
||||
{
|
||||
return gnuradio::get_initial_sptr (new iqbalance_optimize_c(period));
|
||||
return gnuradio::get_initial_sptr (new iqbalance::optimize_c(period));
|
||||
}
|
||||
|
||||
iqbalance_optimize_c::iqbalance_optimize_c (int period)
|
||||
: gr_sync_block ("optimize_c",
|
||||
gr_make_io_signature(1, 1, sizeof (gr_complex)),
|
||||
gr_make_io_signature(0, 0, 0)),
|
||||
iqbalance::optimize_c::optimize_c(int period)
|
||||
: gr::sync_block ("optimize_c",
|
||||
gr::io_signature::make(1, 1, sizeof (gr_complex)),
|
||||
gr::io_signature::make(0, 0, 0)),
|
||||
d_period(period), d_count(0), d_first(true), d_mag(0.0f), d_phase(0.0f)
|
||||
{
|
||||
message_port_register_out(pmt::mp("iqbal_corr"));
|
||||
}
|
||||
|
||||
|
||||
iqbalance_optimize_c::~iqbalance_optimize_c()
|
||||
iqbalance::optimize_c::~optimize_c()
|
||||
{
|
||||
/* Nothing to do */
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
iqbalance_optimize_c::forecast (int noutput_items, gr_vector_int &ninput_items_required)
|
||||
iqbalance::optimize_c::forecast(int noutput_items, gr_vector_int &ninput_items_required)
|
||||
{
|
||||
unsigned ninputs = ninput_items_required.size ();
|
||||
for (unsigned i = 0; i < ninputs; i++)
|
||||
|
@ -66,7 +68,7 @@ iqbalance_optimize_c::forecast (int noutput_items, gr_vector_int &ninput_items_r
|
|||
|
||||
|
||||
int
|
||||
iqbalance_optimize_c::work(int noutput_items,
|
||||
iqbalance::optimize_c::work(int noutput_items,
|
||||
gr_vector_const_void_star &input_items,
|
||||
gr_vector_void_star &output_items)
|
||||
{
|
||||
|
@ -121,8 +123,11 @@ iqbalance_optimize_c::work(int noutput_items,
|
|||
|
||||
p[0] = this->d_mag;
|
||||
p[1] = this->d_phase;
|
||||
pmt::pmt_t msg = pmt::pmt_init_f32vector(2, p);
|
||||
pmt::pmt_t msg = pmt::init_f32vector(2, p);
|
||||
message_port_pub(pmt::mp("iqbal_corr"), msg);
|
||||
|
||||
return N;
|
||||
}
|
||||
|
||||
} /* namespace gr */
|
||||
|
|
@ -31,7 +31,7 @@ endif()
|
|||
GR_PYTHON_INSTALL(
|
||||
FILES
|
||||
__init__.py
|
||||
DESTINATION ${GR_PYTHON_DIR}/iqbalance
|
||||
DESTINATION ${GR_PYTHON_DIR}/gnuradio/iqbalance
|
||||
)
|
||||
|
||||
########################################################################
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
# Boston, MA 02110-1301, USA.
|
||||
|
||||
########################################################################
|
||||
# Include swig generation macros
|
||||
# Setup swig generation
|
||||
########################################################################
|
||||
find_package(SWIG)
|
||||
find_package(PythonLibs)
|
||||
|
@ -28,34 +28,23 @@ endif()
|
|||
include(GrSwig)
|
||||
include(GrPython)
|
||||
|
||||
########################################################################
|
||||
# Setup swig generation
|
||||
########################################################################
|
||||
foreach(incdir ${GNURADIO_CORE_INCLUDE_DIRS})
|
||||
list(APPEND GR_SWIG_INCLUDE_DIRS ${incdir}/swig)
|
||||
foreach(incdir ${GNURADIO_RUNTIME_INCLUDE_DIRS})
|
||||
list(APPEND GR_SWIG_INCLUDE_DIRS ${incdir}/gnuradio/swig)
|
||||
endforeach(incdir)
|
||||
|
||||
foreach(incdir ${GRUEL_INCLUDE_DIRS})
|
||||
list(APPEND GR_SWIG_INCLUDE_DIRS ${incdir}/gruel/swig)
|
||||
endforeach(incdir)
|
||||
set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/iqbalance_swig_doc.i)
|
||||
set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/iqbalance)
|
||||
set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
|
||||
|
||||
set(GR_SWIG_LIBRARIES gnuradio-iqbalance)
|
||||
set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/iqbalance_swig_doc.i)
|
||||
set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include)
|
||||
|
||||
GR_SWIG_MAKE(iqbalance_swig iqbalance_swig.i)
|
||||
|
||||
########################################################################
|
||||
# Install the build swig module
|
||||
########################################################################
|
||||
GR_SWIG_INSTALL(TARGETS iqbalance_swig DESTINATION ${GR_PYTHON_DIR}/iqbalance)
|
||||
GR_SWIG_INSTALL(TARGETS iqbalance_swig DESTINATION ${GR_PYTHON_DIR}/gnuradio/iqbalance)
|
||||
|
||||
########################################################################
|
||||
# Install swig .i files for development
|
||||
########################################################################
|
||||
install(
|
||||
FILES
|
||||
iqbalance_swig.i
|
||||
${CMAKE_CURRENT_BINARY_DIR}/iqbalance_swig_doc.i
|
||||
DESTINATION ${GR_INCLUDE_DIR}/iqbalance/swig
|
||||
DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
|
||||
)
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
|
||||
|
||||
%{
|
||||
#include "iqbalance_fix_cc.h"
|
||||
#include "iqbalance_optimize_c.h"
|
||||
#include "gnuradio/iqbalance/fix_cc.h"
|
||||
#include "gnuradio/iqbalance/optimize_c.h"
|
||||
%}
|
||||
|
||||
GR_SWIG_BLOCK_MAGIC(iqbalance,fix_cc);
|
||||
%include "iqbalance_fix_cc.h"
|
||||
%include "gnuradio/iqbalance/fix_cc.h"
|
||||
GR_SWIG_BLOCK_MAGIC2(iqbalance, fix_cc);
|
||||
|
||||
GR_SWIG_BLOCK_MAGIC(iqbalance,optimize_c);
|
||||
%include "iqbalance_optimize_c.h"
|
||||
%include "gnuradio/iqbalance/optimize_c.h"
|
||||
GR_SWIG_BLOCK_MAGIC2(iqbalance, optimize_c);
|
||||
|
|
Loading…
Reference in New Issue