Hello,

I am trying to create a block that has a publicly accessible method and am
having trouble accessing the method from within Python.  Here is a simple
example of my process.

First, I boot Gnuradio Live DVD, Ubutnu 12.04, Gnuradio 3.7.2

Second, i create a new module according to:
http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModules

> gr_modtool newmod testmod
> cd gr-testmod
> gr_modtool add -t general testblock (empty argument list, default answers)
> vim lib/testblock_impl.cc (Edit this to the same as the square_ff.cc code
from the example)
> mkdir build
> cd build
> cmake ../
> make
> sudo make install
> sudo ldconfig


This works fine, I can verify the block is working correctly.

Then I edit the public header file to add a pure virtual method pub()

vim include/testmod/testblock.h

> ....
> public:
>     virtual int pub() = 0;
> ......


Then I edit the private header file to implement the method

> .....
> public:
>     int pub(){ return 1; }
> ....


If I build this, it will make and install just fine.  The only problem
comes when I run python like so

> import testmod
> b = testmod.testblock()
> b.pub()


I get the following error:

> AttributeError: 'testblock_sptr' object has no attribute 'pub'


I've tried following the examples of in tree blocks, but just cannot seem
to be able to access pub() from python.  Am I missing an include, or
something?

Thank you,

Dirk
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to