I am adding additional option in a GRC block. Its Soft Frame Equalizer
As you see in the figure, the block has options for Algorithm,
Frequency, Bandwidth, Log and Debug. I added my own variable "*Scaling*".
For this, first I edited in soft_frame_equalizer_impl.cc as follows :
soft_frame_equalizer::sptr
soft_frame_equalizer::make(Equalizer_soft algo, double freq, double
bw,*int scaling*, bool log, bool debug) {
return gnuradio::get_initial_sptr
(new soft_frame_equalizer_impl(algo, freq, bw, scaling, log,
debug));
}
soft_frame_equalizer_impl::soft_frame_equalizer_impl(Equalizer_soft
algo, double freq, double bw, *int scaling*, bool log, bool debug) :
gr::block("soft_frame_equalizer",
gr::io_signature::make(1, 1, 64 * sizeof(gr_complex)),
gr::io_signature::make2(2, 2, 48, 48 * sizeof(float))),
d_current_symbol(0), d_log(log), d_debug(debug), d_equalizer(NULL),
d_freq(freq), d_bw(bw), *d_scaling(scaling)*, d_frame_bytes(0),
d_frame_symbols(0),
d_freq_offset_from_synclong(0.0)
*void**
**soft_frame_equalizer_impl::set_scaling(int scaling) {**
** d_scaling = scaling;**
**}*
And then in soft_frame_equalizer_impl.h as follows :
public:
soft_frame_equalizer_impl(Equalizer_soft algo, double freq, double
bw, *int scaling*, bool log, bool debug);
~soft_frame_equalizer_impl();
void set_algorithm(Equalizer_soft algo);
void set_bandwidth(double bw);
void set_frequency(double freq);
*void set_scaling(int scaling);
*private:*
int d_scaling;
*
And then in soft_frame_equalizer.h from the include directory as follows :
public:
typedef boost::shared_ptr<soft_frame_equalizer> sptr;
static sptr make(Equalizer_soft algo, double freq, double bw, *int
scaling,*
bool log, bool debug);
virtual void set_algorithm(Equalizer_soft algo) = 0;
virtual void set_bandwidth(double bw) = 0;
virtual void set_frequency(double freq) = 0;
*virtual void set_scaling(int scaling) = 0;
*And finally in the xml file as follows : *
<param>
<name>Scaling</name>
<key>scaling</key>
<value>0</value>
<type>real</type>
</param>
*It compiles well, but when I execute the program, it throws following
error:
sender started
Traceback (most recent call last):
File
"/home/john/myprefix/src/gr-ieee-80211/examples/soft_decision_receiver_simulator_under_interference.py",
line 569, in <module>
main()
File
"/home/john/myprefix/src/gr-ieee-80211/examples/soft_decision_receiver_simulator_under_interference.py",
line 557, in main
tb = top_block_cls(bandwidth=options.bandwidth,
encoding=options.encoding, frequency=options.frequency,
sensitivity=options.sensitivity)
File
"/home/john/myprefix/src/gr-ieee-80211/examples/soft_decision_receiver_simulator_under_interference.py",
line 282, in __init__
self.ieee802_11_soft_frame_equalizer_0 =
ieee802_11.soft_frame_equalizer(ieee802_11.LS, 2.437e9, 20e6, False, False)
File
"/home/john/myprefix/lib/python2.7/dist-packages/ieee802_11/ieee802_11_swig.py",
line 644, in make
return _ieee802_11_swig.soft_frame_equalizer_make(*args, **kwargs)
TypeError: Required argument 'debug' (pos 6) not found
What I am missing ? Where else I need to edit ?
Regards
Sumit
**
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio