gpt4 book ai didi

c++ - def __init__(self, *args, **kwargs) : raise AttributeError ("No constructor defined") AttributeError: No constructor defined

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:25 29 4
gpt4 key购买 nike

我正在尝试使用 gr_modtool.py 在 gnuradio 中创建一个新的 DSP 模块。 gnuradio 版本是 3.3.0。我在 include 文件夹中的 abc.h 文件中有以下代码

 ifndef INCLUDED_ENERGYDETECTOR_LOCAL_SENSING_FF_H
#define INCLUDED_ENERGYDETECTOR_LOCAL_SENSING_FF_H
#include <gr_block.h>

namespace gr {
namespace energydetector {
class ENERGYDETECTOR_API local_sensing_ff : virtual public gr_block
{
private:

public:
typedef boost::shared_ptr<local_sensing_ff> sptr;
float d_pfa; int d_L; int d_samples;
static sptr make(float pfa=0.01,int L=16,int samples=1000);
virtual void set_pfa(float input_a) { d_pfa = input_a; }
virtual int get_pfa() { return d_pfa; }
virtual void set_L(int input_b) { d_L = input_b; }
virtual int get_L() { return d_L; }
virtual void set_samples(int input_c) { d_samples = input_c; }
virtual int get_samples() { return d_samples; }
};
} // namespace energydetector
} // namespace gr
#endif /* INCLUDED_ENERGYDETECTOR_LOCAL_SENSING_FF_H */

上述头文件的实现类如下:

 #ifndef INCLUDED_ENERGY-DETECTOR_LOCAL_SENSING_FF_IMPL_H
#define INCLUDED_ENERGY-DETECTOR_LOCAL_SENSING_FF_IMPL_H

#include <energy-detector/local_sensing_ff.h>

namespace gr {
namespace energydetector {
class local_sensing_ff_impl : public local_sensing_ff
{
private:
float d_pfa; int d_L; int d_samples;
public:
local_sensing_ff_impl(float pfa,int L,int samples);
~local_sensing_ff_impl();
void set_pfa(float input_a) { d_pfa = input_a; }
int get_pfa() { return d_pfa; }
void set_L(int input_b) { d_L = input_b; }
int get_L() { return d_L; }
void set_samples(int input_c) { d_samples = input_c; }
int get_samples() { return d_samples; }
int general_work(int noutput_items,
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
};
} // namespace energy-detector
} // namespace gr
#endif /* INCLUDED_ENERGY-DETECTOR_LOCAL_SENSING_FF_IMPL_H */

SWIG 文件为 abc.i 为

 #define ENERGY_DETECTOR_API
%include "gnuradio.i" // the common stuff
%include "energydetector_swig_doc.i"
%{
#include "energydetector/local_sensing_ff.h"
%}

%include "energydetector/local_sensing_ff.h"
GR_SWIG_BLOCK_MAGIC2(energydetector, local_sensing_ff);

它构建成功但在执行时出现以下错误:

def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined")
AttributeError: No constructor defined

请帮我调试一下。

最佳答案

终于知道是版本不支持的问题。gr_modtool.py 仅受 GNURadio 3.6 或更高版本支持。

虽然我们可以构建 block 并在 GRC 中使用它,但不确定为什么它不能工作。肯定是 gr_modtool.py 生成的代码结构不适用于 3.3.0 版本

所以任何来到这个问题的人都确保你有 GNURadio 3.6 及以上版本。但是,如果有人通过修改 gr_modtool.py 或任何代码解决了这个问题,请在这个问题中告诉我们。

关于c++ - def __init__(self, *args, **kwargs) : raise AttributeError ("No constructor defined") AttributeError: No constructor defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18092242/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com