Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no attribute 'blockname'

2015-08-24 Thread Washbourne, Logan
Patrick and All,

I figured out my original error. In my XML file I was trying to use a
variable without including it in the line:

makeACK.Text_Sanitize($msg)/make

the $msg is what I added and that error no longer occurs.

This error: RuntimeError: attempt to set_msg_handler() on bad input message
port!

still occurs, but that's just going to take some time for me to learn about
PMTs and PDUs.

Thanks for everyone's help!


Logan Washbourne
Electrical Engineering Graduate Student
(Electromagnetics)


On Sat, Aug 22, 2015 at 1:57 PM, Washbourne, Logan 
lwas...@ostatemail.okstate.edu wrote:

 Patrick,

 Thanks for the advice! So I added that string parameter(or char array) to
 the Top_Block.py file

 the new line looks like this:self.ACK_Text_Sanitize_0 =
 ACK.Text_Sanitize(String).

 When I run python top_block.py this error occurs:

 comm1@comm1:~/Logan/Thesis$ python top_block.py
 Traceback (most recent call last):
   File top_block.py, line 92, in module
 tb = top_block()
   File top_block.py, line 65, in __init__
 self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize(String)
   File /usr/local/lib/python2.7/dist-packages/ACK/ACK_swig.py, line 399,
 in make
 return _ACK_swig.Text_Sanitize_make(*args, **kwargs)
 RuntimeError: attempt to set_msg_handler() on bad input message port!


 My XML file can be found here:
 https://gist.github.com/loganwashbourne/68367a93b7fe9bf28bce

 So the RuntimeError seems to be the problem, I'm leaning towards the idea
 that I am not handling the PMT's correctly. Thoughts?

 Richard,

 I appreciate the advice, I've been pretty diligent about using sudo
 ldconfig after I read that not using it could create problems. All advice
 helps!



 Logan Washbourne
 Electrical Engineering Graduate Student
 (Electromagnetics)


 On Fri, Aug 21, 2015 at 4:37 PM, Patrick Sathyanathan wp...@hotmail.com
 wrote:

 I see the following in the output of nm -C -u:

  U gr::ACK::Text_Sanitize_impl::forecast(int, std::vectorint,
 std::allocatorint )

 This was the undefined symbol that was causing the module import to
 fail... as you have discovered yourself. Now that the module import has
 succeeded you are seeing a different error.

 This error is because of the following in the generated python file:

self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()

 Note that this will invoke Text_Sanitize::make which expects a char *
 message argument. That causes the error message below. For some reason GRC
 is not adding that parameter in the above statement. Did you add a
 declaration for that parameter in the XML file ?

 To verify that the XML file is the issue just try editing the generated
 python file and changing the above to:

self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize(some string)

 and running it from the command line (run python top_block.py in a
 terminal window).

 --Patrick

 --
 Date: Thu, 20 Aug 2015 11:08:56 -0500
 From: lwas...@ostatemail.okstate.edu
 To: discuss-gnuradio@gnu.org

 Subject: Re: [Discuss-gnuradio] OOT Module Attribute Error module object
 has no attribute 'blockname'

 Nathan and Patrick,

 Thanks for the tips!

 I started with running: nm -C -u libgnuradio-modulename.so

 and the results of that can be found here:
 https://gist.github.com/loganwashbourne under the *nm -C -u
 libgnuradio-modulename.so*
 https://gist.github.com/loganwashbourne/3bb90d787308b45211d0 file. (I
 think github thinks I'm a robot so I can't link to the direct page yet).

 I'll be honest, I'm not really sure what I'm looking at in this return, I
 do see some error statements but I'm not sure if they are just stating how
 it would handle an error or if it is an actual error.

 I really don't think I have any callbacks in my XML code, I just
 reference certain input variables in the XML code.

 Next, the ACK_swig.i file can be found here :
 https://gist.github.com/loganwashbourne under the same file name. I
 checked it against the gr-tutorial swig file and the only difference was
 that the ACK_swig.i file included a magic2 function call for each of my OOT
 blocks(check and Text_Sanitize), while the gr-tutorial didn't.

 Last thing, I realized that I am creating the forecast function in the
 Text_Sanitize_impl.h file but not referencing it it the .cc file (I
 commented it out). I tried commenting out the void deceleration of the
 forecast function in the .h file but then I get a new error when I try to
 run the grc file(which is just a constant int source connected to my
 Text_Sanitize block, which is connected the the message debug print port).

 The new error is :

 Traceback (most recent call last):
   File /home/comm1/Logan/Thesis/top_block.py, line 92, in module
 tb = top_block()
   File /home/comm1/Logan/Thesis/top_block.py, line 65, in __init__
 self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
   File /usr/local/lib/python2.7/dist-packages/ACK/ACK_swig.py, line
 399, in make
 return _ACK_swig.Text_Sanitize_make(*args, **kwargs)
 TypeError

Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no attribute 'blockname'

2015-08-22 Thread Washbourne, Logan
Patrick,

Thanks for the advice! So I added that string parameter(or char array) to
the Top_Block.py file

the new line looks like this:self.ACK_Text_Sanitize_0 =
ACK.Text_Sanitize(String).

When I run python top_block.py this error occurs:

comm1@comm1:~/Logan/Thesis$ python top_block.py
Traceback (most recent call last):
  File top_block.py, line 92, in module
tb = top_block()
  File top_block.py, line 65, in __init__
self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize(String)
  File /usr/local/lib/python2.7/dist-packages/ACK/ACK_swig.py, line 399,
in make
return _ACK_swig.Text_Sanitize_make(*args, **kwargs)
RuntimeError: attempt to set_msg_handler() on bad input message port!


My XML file can be found here:
https://gist.github.com/loganwashbourne/68367a93b7fe9bf28bce

So the RuntimeError seems to be the problem, I'm leaning towards the idea
that I am not handling the PMT's correctly. Thoughts?

Richard,

I appreciate the advice, I've been pretty diligent about using sudo
ldconfig after I read that not using it could create problems. All advice
helps!



Logan Washbourne
Electrical Engineering Graduate Student
(Electromagnetics)


On Fri, Aug 21, 2015 at 4:37 PM, Patrick Sathyanathan wp...@hotmail.com
wrote:

 I see the following in the output of nm -C -u:

  U gr::ACK::Text_Sanitize_impl::forecast(int, std::vectorint,
 std::allocatorint )

 This was the undefined symbol that was causing the module import to
 fail... as you have discovered yourself. Now that the module import has
 succeeded you are seeing a different error.

 This error is because of the following in the generated python file:

self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()

 Note that this will invoke Text_Sanitize::make which expects a char *
 message argument. That causes the error message below. For some reason GRC
 is not adding that parameter in the above statement. Did you add a
 declaration for that parameter in the XML file ?

 To verify that the XML file is the issue just try editing the generated
 python file and changing the above to:

self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize(some string)

 and running it from the command line (run python top_block.py in a
 terminal window).

 --Patrick

 --
 Date: Thu, 20 Aug 2015 11:08:56 -0500
 From: lwas...@ostatemail.okstate.edu
 To: discuss-gnuradio@gnu.org

 Subject: Re: [Discuss-gnuradio] OOT Module Attribute Error module object
 has no attribute 'blockname'

 Nathan and Patrick,

 Thanks for the tips!

 I started with running: nm -C -u libgnuradio-modulename.so

 and the results of that can be found here:
 https://gist.github.com/loganwashbourne under the *nm -C -u
 libgnuradio-modulename.so*
 https://gist.github.com/loganwashbourne/3bb90d787308b45211d0 file. (I
 think github thinks I'm a robot so I can't link to the direct page yet).

 I'll be honest, I'm not really sure what I'm looking at in this return, I
 do see some error statements but I'm not sure if they are just stating how
 it would handle an error or if it is an actual error.

 I really don't think I have any callbacks in my XML code, I just reference
 certain input variables in the XML code.

 Next, the ACK_swig.i file can be found here :
 https://gist.github.com/loganwashbourne under the same file name. I
 checked it against the gr-tutorial swig file and the only difference was
 that the ACK_swig.i file included a magic2 function call for each of my OOT
 blocks(check and Text_Sanitize), while the gr-tutorial didn't.

 Last thing, I realized that I am creating the forecast function in the
 Text_Sanitize_impl.h file but not referencing it it the .cc file (I
 commented it out). I tried commenting out the void deceleration of the
 forecast function in the .h file but then I get a new error when I try to
 run the grc file(which is just a constant int source connected to my
 Text_Sanitize block, which is connected the the message debug print port).

 The new error is :

 Traceback (most recent call last):
   File /home/comm1/Logan/Thesis/top_block.py, line 92, in module
 tb = top_block()
   File /home/comm1/Logan/Thesis/top_block.py, line 65, in __init__
 self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
   File /usr/local/lib/python2.7/dist-packages/ACK/ACK_swig.py, line 399,
 in make
 return _ACK_swig.Text_Sanitize_make(*args, **kwargs)
 TypeError: Required argument 'message' (pos 1) not found

 I do apologize for the long questions, if any of you feel like I need to
 spend more time looking into this myself before asking the mailing list,
 please don't hesitate to mention it.



 Logan Washbourne
 Electrical Engineering Graduate Student
 (Electromagnetics)


 On Wed, Aug 19, 2015 at 5:06 PM, Patrick Sathyanathan wp...@hotmail.com
 wrote:

 Hi Logan,

 I have faced the same error twice recently in my OOT module and finally
 tracked it down to two causes. The basic reason for the 'object has no
 attribute' error is that Python's import of your module failed. In the two

Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no attribute 'blockname'

2015-08-21 Thread Patrick Sathyanathan
I see the following in the output of nm -C -u:
 U gr::ACK::Text_Sanitize_impl::forecast(int, std::vectorint, 
std::allocatorint )
This was the undefined symbol that was causing the module import to fail... as 
you have discovered yourself. Now that the module import has succeeded you are 
seeing a different error. 
This error is because of the following in the generated python file:
   self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
Note that this will invoke Text_Sanitize::make which expects a char * 
message argument. That causes the error message below. For some reason GRC is 
not adding that parameter in the above statement. Did you add a declaration for 
that parameter in the XML file ?
To verify that the XML file is the issue just try editing the generated python 
file and changing the above to:
   self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize(some string)
and running it from the command line (run python top_block.py in a terminal 
window).
--Patrick
Date: Thu, 20 Aug 2015 11:08:56 -0500
From: lwas...@ostatemail.okstate.edu
To: discuss-gnuradio@gnu.org
Subject: Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no 
attribute 'blockname'

Nathan and Patrick,

Thanks for the tips!

I started with running: nm -C -u libgnuradio-modulename.so

and the results of that can be found here: 
https://gist.github.com/loganwashbourne under the nm -C -u 
libgnuradio-modulename.so file. (I think github thinks I'm a robot so I can't 
link to the direct page yet).

I'll be honest, I'm not really sure what I'm looking at in this return, I do 
see some error statements but I'm not sure if they are just stating how it 
would handle an error or if it is an actual error.

I really don't think I have any callbacks in my XML code, I just reference 
certain input variables in the XML code.

Next, the ACK_swig.i file can be found here : 
 https://gist.github.com/loganwashbourne under the same file name. I checked it 
against the gr-tutorial swig file and the only difference was that the 
ACK_swig.i file included a magic2 function call for each of my OOT blocks(check 
and Text_Sanitize), while the gr-tutorial didn't.

Last thing, I realized that I am creating the forecast function in the 
Text_Sanitize_impl.h file but not referencing it it the .cc file (I commented 
it out). I tried commenting out the void deceleration of the forecast function 
in the .h file but then I get a new error when I try to run the grc file(which 
is just a constant int source connected to my Text_Sanitize block, which is 
connected the the message debug print port).

The new error is :

Traceback (most recent call last):
  File /home/comm1/Logan/Thesis/top_block.py, line 92, in module
tb = top_block()
  File /home/comm1/Logan/Thesis/top_block.py, line 65, in __init__
self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
  File /usr/local/lib/python2.7/dist-packages/ACK/ACK_swig.py, line 399, in 
make
return _ACK_swig.Text_Sanitize_make(*args, **kwargs)
TypeError: Required argument 'message' (pos 1) not found

I do apologize for the long questions, if any of you feel like I need to spend 
more time looking into this myself before asking the mailing list, please don't 
hesitate to mention it.


Logan Washbourne
Electrical Engineering Graduate Student
(Electromagnetics)



On Wed, Aug 19, 2015 at 5:06 PM, Patrick Sathyanathan wp...@hotmail.com wrote:



Hi Logan,
I have faced the same error twice recently in my OOT module and finally tracked 
it down to two causes. The basic reason for the 'object has no attribute' error 
is that Python's import of your module failed. In the two cases that I saw it 
was due to undefined symbols in the shared library for my module. My module was 
called 'tutorial' so the corresponding library is libgnuradio-tutorial.so and 
you can find it in the .../build/lib directory. To find out the undefined 
symbols do the following:
nm -C -u libgnuradio-modulename.so
and search for method names in your class. So if your class is 'MyClass' you 
could do:
nm -C -u libgnuradio-modulename.so | grep MyClass
The two cases that I ran into were:
1. A non-virtual method in my implementation class was undefined because I had 
forgotten to prefix the method definition with the class name. So the .cc file 
had void foo(...) instead of void MyClass_impl::foo(...) and foo was 
compiled as a ordinary function. Then the command above will report 
MyClass_impl::foo as undefined.
2. The second case I ran into was with defining callbacks in the XML file. If 
you do then you will need to add matching virtual function declarations in the 
header file. This is needed for SWIG to work correctly. For my case the 
callback foo needed a virtual function declaration virtual sometype 
foo(...) = 0; in the actual class declaration (not the ..._impl version) in 
the header file.
Do you have callbacks ? If this is the issue then you should do a make clean 
before running make again to force SWIG to run.
Hope this helps.
--Patrick

Date: Wed

Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no attribute 'blockname'

2015-08-20 Thread Patrick Sathyanathan
Hi Logan,
I have faced the same error twice recently in my OOT module and finally tracked 
it down to two causes. The basic reason for the 'object has no attribute' error 
is that Python's import of your module failed. In the two cases that I saw it 
was due to undefined symbols in the shared library for my module. My module was 
called 'tutorial' so the corresponding library is libgnuradio-tutorial.so and 
you can find it in the .../build/lib directory. To find out the undefined 
symbols do the following:
nm -C -u libgnuradio-modulename.so
and search for method names in your class. So if your class is 'MyClass' you 
could do:
nm -C -u libgnuradio-modulename.so | grep MyClass
The two cases that I ran into were:
1. A non-virtual method in my implementation class was undefined because I had 
forgotten to prefix the method definition with the class name. So the .cc file 
had void foo(...) instead of void MyClass_impl::foo(...) and foo was 
compiled as a ordinary function. Then the command above will report 
MyClass_impl::foo as undefined.
2. The second case I ran into was with defining callbacks in the XML file. If 
you do then you will need to add matching virtual function declarations in the 
header file. This is needed for SWIG to work correctly. For my case the 
callback foo needed a virtual function declaration virtual sometype 
foo(...) = 0; in the actual class declaration (not the ..._impl version) in 
the header file.
Do you have callbacks ? If this is the issue then you should do a make clean 
before running make again to force SWIG to run.
Hope this helps.
--Patrick

Date: Wed, 19 Aug 2015 14:51:27 -0400
From: n...@ostatemail.okstate.edu
To: lwas...@ostatemail.okstate.edu
CC: discuss-gnuradio@gnu.org
Subject: Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no 
attribute 'blockname'

My gut is telling me this is a swig problem. I don't know that it's frowned 
upon, but it's not easy to read without some kind of highlighting that we'd get 
from github or a gist with files. If I'm correct we'd also need to see 
swig/ACK.i (probably missing an include and/or gr swig block magic. compare to 
tutorial swig for sanity check)
On Wed, Aug 19, 2015 at 10:38 AM, Washbourne, Logan 
lwas...@ostatemail.okstate.edu wrote:
Hello all,

I know this question has been asked before, several times, but I didn't find a 
solution that allowed me to use my OOT blocks without running into the error 
stated in the subject of this email.

I scoured through this 
webpage(http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModulesConfig)
 and tried adding:
set(GR_REQUIRED_COMPONENTS RUNTIME PMT)

to my top level CMakeLists.txt file, because I am using PMT objects in my 
block, but that didn't get rid of the error.

The full error thrown is this:

Executing: /home/comm1/Logan/Thesis/top_block.py

Traceback (most recent call last):
  File /home/comm1/Logan/Thesis/top_block.py, line 92, in module
tb = top_block()
  File /home/comm1/Logan/Thesis/top_block.py, line 65, in __init__
self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
AttributeError: 'module' object has no attribute 'Text_Sanitize'


I looked on the mailing list for that last line error and it pointed me to 
doing what I mentioned above with the CMakeLists.txt file, but could it be an 
actual problem with the top_block.py file?

In the addendum is all of the files I could think would be necessary for 
someone to look at if they chose to, if including this much text is frowned 
upon, please let me know.

 
Addendum:

Text_Sanitize_impl.cc
*
#ifdef HAVE_CONFIG_H
#include config.h
#endif

#include gnuradio/io_signature.h
#include Text_Sanitize_impl.h
#include pmt/pmt.h
#include stdio.h
#include string
#include iostream
#include cstdio

namespace gr {
  namespace ACK {

Text_Sanitize::sptr
Text_Sanitize::make(char* message)
{
  return gnuradio::get_initial_sptr
(new Text_Sanitize_impl(message));
}

void
Text_Sanitize_impl::print_message(pmt::pmt_t d_message)
{
pmt::print(d_message);
}



  
/*
void
Text_Sanitize_impl::forecast (int noutput_items, gr_vector_int 
ninput_items_required)
{
 +forecast+ e.g. ninput_items_required[0] = noutput_items 
}
*/
int
Text_Sanitize_impl::general_work (int noutput_items,
   gr_vector_int ninput_items,
   gr_vector_const_void_star input_items,
   gr_vector_void_star output_items)
{
const int *in = (int *) input_items[0];
pmt::pmt_t *out = (pmt::pmt_t *) output_items[0];


d_out_msg = pmt::string_to_symbol(d_message);
//for(int i = 0; istrlen(d_message); i++)
//{
//pmt::vector_set(d_out_msg,i,d_message[i]);
//}

// Do +signal processing+
// Tell runtime system how many input items we consumed on
// each input stream

Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no attribute 'blockname'

2015-08-20 Thread Washbourne, Logan
Nathan and Patrick,

Thanks for the tips!

I started with running: nm -C -u libgnuradio-modulename.so

and the results of that can be found here:
https://gist.github.com/loganwashbourne under the *nm -C -u
libgnuradio-modulename.so*
https://gist.github.com/loganwashbourne/3bb90d787308b45211d0 file. (I
think github thinks I'm a robot so I can't link to the direct page yet).

I'll be honest, I'm not really sure what I'm looking at in this return, I
do see some error statements but I'm not sure if they are just stating how
it would handle an error or if it is an actual error.

I really don't think I have any callbacks in my XML code, I just reference
certain input variables in the XML code.

Next, the ACK_swig.i file can be found here :
https://gist.github.com/loganwashbourne under the same file name. I checked
it against the gr-tutorial swig file and the only difference was that the
ACK_swig.i file included a magic2 function call for each of my OOT
blocks(check and Text_Sanitize), while the gr-tutorial didn't.

Last thing, I realized that I am creating the forecast function in the
Text_Sanitize_impl.h file but not referencing it it the .cc file (I
commented it out). I tried commenting out the void deceleration of the
forecast function in the .h file but then I get a new error when I try to
run the grc file(which is just a constant int source connected to my
Text_Sanitize block, which is connected the the message debug print port).

The new error is :

Traceback (most recent call last):
  File /home/comm1/Logan/Thesis/top_block.py, line 92, in module
tb = top_block()
  File /home/comm1/Logan/Thesis/top_block.py, line 65, in __init__
self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
  File /usr/local/lib/python2.7/dist-packages/ACK/ACK_swig.py, line 399,
in make
return _ACK_swig.Text_Sanitize_make(*args, **kwargs)
TypeError: Required argument 'message' (pos 1) not found

I do apologize for the long questions, if any of you feel like I need to
spend more time looking into this myself before asking the mailing list,
please don't hesitate to mention it.



Logan Washbourne
Electrical Engineering Graduate Student
(Electromagnetics)


On Wed, Aug 19, 2015 at 5:06 PM, Patrick Sathyanathan wp...@hotmail.com
wrote:

 Hi Logan,

 I have faced the same error twice recently in my OOT module and finally
 tracked it down to two causes. The basic reason for the 'object has no
 attribute' error is that Python's import of your module failed. In the two
 cases that I saw it was due to undefined symbols in the shared library for
 my module. My module was called 'tutorial' so the corresponding library is
 libgnuradio-tutorial.so and you can find it in the .../build/lib directory.
 To find out the undefined symbols do the following:

 nm -C -u libgnuradio-modulename.so

 and search for method names in your class. So if your class is 'MyClass'
 you could do:

 nm -C -u libgnuradio-modulename.so | grep MyClass

 The two cases that I ran into were:

 1. A non-virtual method in my implementation class was undefined because I
 had forgotten to prefix the method definition with the class name. So the
 .cc file had void foo(...) instead of void MyClass_impl::foo(...) and
 foo was compiled as a ordinary function. Then the command above will report
 MyClass_impl::foo as undefined.

 2. The second case I ran into was with defining callbacks in the XML file.
 If you do then you will need to add matching virtual function declarations
 in the header file. This is needed for SWIG to work correctly. For my case
 the callback foo needed a virtual function declaration virtual
 sometype foo(...) = 0; in the actual class declaration (not the ..._impl
 version) in the header file.

 Do you have callbacks ? If this is the issue then you should do a make
 clean before running make again to force SWIG to run.

 Hope this helps.

 --Patrick

 --
 Date: Wed, 19 Aug 2015 14:51:27 -0400
 From: n...@ostatemail.okstate.edu
 To: lwas...@ostatemail.okstate.edu
 CC: discuss-gnuradio@gnu.org
 Subject: Re: [Discuss-gnuradio] OOT Module Attribute Error module object
 has no attribute 'blockname'


 My gut is telling me this is a swig problem. I don't know that it's
 frowned upon, but it's not easy to read without some kind of highlighting
 that we'd get from github or a gist with files. If I'm correct we'd also
 need to see swig/ACK.i (probably missing an include and/or gr swig block
 magic. compare to tutorial swig for sanity check)

 On Wed, Aug 19, 2015 at 10:38 AM, Washbourne, Logan 
 lwas...@ostatemail.okstate.edu wrote:

 Hello all,

 I know this question has been asked before, several times, but I didn't
 find a solution that allowed me to use my OOT blocks without running into
 the error stated in the subject of this email.

 I scoured through this webpage(
 http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModulesConfig)
 and tried adding:
 set(GR_REQUIRED_COMPONENTS RUNTIME PMT)

 to my top level

Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no attribute 'blockname'

2015-08-20 Thread Marcus Müller
Hi!
You only seem to define a version of make with a char*parameter, but try to 
call it without parameters. Can you try doing something like 
ACK.Text_Sanitize(rubber ducky) ?

Best regards,
Marcus

Am 19. August 2015 16:38:30 MESZ, schrieb Washbourne, Logan 
lwas...@ostatemail.okstate.edu:
Hello all,

I know this question has been asked before, several times, but I didn't
find a solution that allowed me to use my OOT blocks without running
into
the error stated in the subject of this email.

I scoured through this webpage(
http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModulesConfig)
and tried adding:
set(GR_REQUIRED_COMPONENTS RUNTIME PMT)

to my top level CMakeLists.txt file, because I am using PMT objects in
my
block, but that didn't get rid of the error.

The full error thrown is this:

Executing: /home/comm1/Logan/Thesis/top_block.py

Traceback (most recent call last):
  File /home/comm1/Logan/Thesis/top_block.py, line 92, in module
tb = top_block()
  File /home/comm1/Logan/Thesis/top_block.py, line 65, in __init__
self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
AttributeError: 'module' object has no attribute 'Text_Sanitize'


I looked on the mailing list for that last line error and it pointed me
to
doing what I mentioned above with the CMakeLists.txt file, but could it
be
an actual problem with the top_block.py file?

In the addendum is all of the files I could think would be necessary
for
someone to look at if they chose to, if including this much text is
frowned
upon, please let me know.


Addendum:

Text_Sanitize_impl.cc
*
#ifdef HAVE_CONFIG_H
#include config.h
#endif

#include gnuradio/io_signature.h
#include Text_Sanitize_impl.h
#include pmt/pmt.h
#include stdio.h
#include string
#include iostream
#include cstdio

namespace gr {
  namespace ACK {

Text_Sanitize::sptr
Text_Sanitize::make(char* message)
{
  return gnuradio::get_initial_sptr
(new Text_Sanitize_impl(message));
}

void
Text_Sanitize_impl::print_message(pmt::pmt_t d_message)
{
pmt::print(d_message);
}




/*
void
Text_Sanitize_impl::forecast (int noutput_items, gr_vector_int
ninput_items_required)
{
 +forecast+ e.g. ninput_items_required[0] = noutput_items
}
*/
int
Text_Sanitize_impl::general_work (int noutput_items,
   gr_vector_int ninput_items,
   gr_vector_const_void_star input_items,
   gr_vector_void_star output_items)
{
const int *in = (int *) input_items[0];
pmt::pmt_t *out = (pmt::pmt_t *) output_items[0];


d_out_msg = pmt::string_to_symbol(d_message);
//for(int i = 0; istrlen(d_message); i++)
//{
//pmt::vector_set(d_out_msg,i,d_message[i]);
//}

// Do +signal processing+
// Tell runtime system how many input items we consumed on
// each input stream.
consume_each (noutput_items);

// Tell runtime system how many output items we produced.
return noutput_items;
}

/*
 * The private constructor
 */
Text_Sanitize_impl::Text_Sanitize_impl(char* message)
  : gr::block(Text_Sanitize,
  gr::io_signature::make(1, 1, sizeof(int)),
  gr::io_signature::make(1, 1, sizeof(pmt::pmt_t))),
d_out_msg(pmt::string_to_symbol(std::string())),
d_message(message)
{

message_port_register_out(pmt::mp(print_message));
set_msg_handler(pmt::mp(print),
boost::bind(Text_Sanitize_impl::print_message, this, _1));
}

/*
 * Our virtual destructor.
 */
Text_Sanitize_impl::~Text_Sanitize_impl()
{
}


  } /* namespace ACK */
} /* namespace gr */

*

Text_Sanitize_impl.h
**
#ifndef INCLUDED_ACK_TEXT_SANITIZE_IMPL_H
#define INCLUDED_ACK_TEXT_SANITIZE_IMPL_H

#include ACK/Text_Sanitize.h
#include gnuradio/block.h
#include gnuradio/thread/thread.h
#include pmt/pmt.h

namespace gr {
  namespace ACK {

class Text_Sanitize_impl : public Text_Sanitize
{
 private:
  // Nothing to declare in this block.
pmt::pmt_t d_out_msg;
char* d_message;
void print_message(pmt::pmt_t d_message);


 public:
  Text_Sanitize_impl(char* message);
  ~Text_Sanitize_impl();

  // Where all the action really happens
  void forecast (int noutput_items, gr_vector_int
ninput_items_required);

  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 ACK
} // namespace gr

#endif /* INCLUDED_ACK_TEXT_SANITIZE_IMPL_H */

*


Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no attribute 'blockname'

2015-08-20 Thread Washbourne, Logan
Marcus,

Thanks for the reply! So I made the make function parameterless and removed
the instances of that parameter throughout my code, tried to run the GRC
again and got the same error as before.

I then changed the: self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
to: self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize(Rubber Ducky)

reran the GRC and got the same error.

Any other hints? I'm just not sure what it's throwing an error about.

I appreciate your help,


Logan Washbourne
Electrical Engineering Graduate Student
(Electromagnetics)


On Wed, Aug 19, 2015 at 10:10 AM, Marcus Müller marcus.muel...@ettus.com
wrote:

 Hi!
 You only seem to define a version of make with a char*parameter, but try
 to call it without parameters. Can you try doing something like
 ACK.Text_Sanitize(rubber ducky) ?

 Best regards,
 Marcus

 Am 19. August 2015 16:38:30 MESZ, schrieb Washbourne, Logan 
 lwas...@ostatemail.okstate.edu:

 Hello all,

 I know this question has been asked before, several times, but I didn't
 find a solution that allowed me to use my OOT blocks without running into
 the error stated in the subject of this email.

 I scoured through this webpage(
 http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModulesConfig)
 and tried adding:
 set(GR_REQUIRED_COMPONENTS RUNTIME PMT)

 to my top level CMakeLists.txt file, because I am using PMT objects in my
 block, but that didn't get rid of the error.

 The full error thrown is this:

 Executing: /home/comm1/Logan/Thesis/top_block.py

 Traceback (most recent call last):
   File /home/comm1/Logan/Thesis/top_block.py, line 92, in module
 tb = top_block()
   File /home/comm1/Logan/Thesis/top_block.py, line 65, in __init__
 self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
 AttributeError: 'module' object has no attribute 'Text_Sanitize'


 I looked on the mailing list for that last line error and it pointed me
 to doing what I mentioned above with the CMakeLists.txt file, but could it
 be an actual problem with the top_block.py file?

 In the addendum is all of the files I could think would be necessary for
 someone to look at if they chose to, if including this much text is frowned
 upon, please let me know.


 Addendum:

 Text_Sanitize_impl.cc

 *
 #ifdef HAVE_CONFIG_H
 #include config.h
 #endif

 #include gnuradio/io_signature.h
 #include Text_Sanitize_impl.h
 #include pmt/pmt.h
 #include stdio.h
 #include string
 #include iostream
 #include cstdio

 namespace gr {
   namespace ACK {

 Text_Sanitize::sptr
 Text_Sanitize::make(char* message)
 {
   return gnuradio::get_initial_sptr
 (new Text_Sanitize_impl(message));
 }

 void
 Text_Sanitize_impl::print_message(pmt::pmt_t d_message)
 {
 pmt::print(d_message);
 }




 /*
 void
 Text_Sanitize_impl::forecast (int noutput_items, gr_vector_int
 ninput_items_required)
 {
  +forecast+ e.g. ninput_items_required[0] = noutput_items
 }
 */
 int
 Text_Sanitize_impl::general_work (int noutput_items,
gr_vector_int ninput_items,
gr_vector_const_void_star input_items,
gr_vector_void_star output_items)
 {
 const int *in = (int *) input_items[0];
 pmt::pmt_t *out = (pmt::pmt_t *) output_items[0];


 d_out_msg = pmt::string_to_symbol(d_message);
 //for(int i = 0; istrlen(d_message); i++)
 //{
 //pmt::vector_set(d_out_msg,i,d_message[i]);
 //}

 // Do +signal processing+
 // Tell runtime system how many input items we consumed on
 // each input stream.
 consume_each (noutput_items);

 // Tell runtime system how many output items we produced.
 return noutput_items;
 }

 /*
  * The private constructor
  */
 Text_Sanitize_impl::Text_Sanitize_impl(char* message)
   : gr::block(Text_Sanitize,
   gr::io_signature::make(1, 1, sizeof(int)),
   gr::io_signature::make(1, 1, sizeof(pmt::pmt_t))),
 d_out_msg(pmt::string_to_symbol(std::string())),
 d_message(message)
 {

 message_port_register_out(pmt::mp(print_message));
 set_msg_handler(pmt::mp(print),
 boost::bind(Text_Sanitize_impl::print_message, this, _1));
 }

 /*
  * Our virtual destructor.
  */
 Text_Sanitize_impl::~Text_Sanitize_impl()
 {
 }


   } /* namespace ACK */
 } /* namespace gr */


 *

 Text_Sanitize_impl.h

 **
 #ifndef INCLUDED_ACK_TEXT_SANITIZE_IMPL_H
 #define INCLUDED_ACK_TEXT_SANITIZE_IMPL_H

 #include ACK/Text_Sanitize.h
 #include gnuradio/block.h
 #include gnuradio/thread/thread.h
 #include pmt/pmt.h

 namespace gr {
   namespace ACK {

 class Text_Sanitize_impl : public 

Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no attribute 'blockname'

2015-08-20 Thread Richard Bell
One simple thing that can cause this is forgetting to do sudo ldconfig
after you do your first sudo make install

Various things can cause this, it's a cryptic error that I always hate
seeing.

Rich

On Wed, Aug 19, 2015 at 11:51 AM, West, Nathan n...@ostatemail.okstate.edu
wrote:

 My gut is telling me this is a swig problem. I don't know that it's
 frowned upon, but it's not easy to read without some kind of highlighting
 that we'd get from github or a gist with files. If I'm correct we'd also
 need to see swig/ACK.i (probably missing an include and/or gr swig block
 magic. compare to tutorial swig for sanity check)

 On Wed, Aug 19, 2015 at 10:38 AM, Washbourne, Logan 
 lwas...@ostatemail.okstate.edu wrote:

 Hello all,

 I know this question has been asked before, several times, but I didn't
 find a solution that allowed me to use my OOT blocks without running into
 the error stated in the subject of this email.

 I scoured through this webpage(
 http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModulesConfig)
 and tried adding:
 set(GR_REQUIRED_COMPONENTS RUNTIME PMT)

 to my top level CMakeLists.txt file, because I am using PMT objects in my
 block, but that didn't get rid of the error.

 The full error thrown is this:

 Executing: /home/comm1/Logan/Thesis/top_block.py

 Traceback (most recent call last):
   File /home/comm1/Logan/Thesis/top_block.py, line 92, in module
 tb = top_block()
   File /home/comm1/Logan/Thesis/top_block.py, line 65, in __init__
 self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
 AttributeError: 'module' object has no attribute 'Text_Sanitize'


 I looked on the mailing list for that last line error and it pointed me
 to doing what I mentioned above with the CMakeLists.txt file, but could it
 be an actual problem with the top_block.py file?

 In the addendum is all of the files I could think would be necessary for
 someone to look at if they chose to, if including this much text is frowned
 upon, please let me know.


 Addendum:

 Text_Sanitize_impl.cc

 *
 #ifdef HAVE_CONFIG_H
 #include config.h
 #endif

 #include gnuradio/io_signature.h
 #include Text_Sanitize_impl.h
 #include pmt/pmt.h
 #include stdio.h
 #include string
 #include iostream
 #include cstdio

 namespace gr {
   namespace ACK {

 Text_Sanitize::sptr
 Text_Sanitize::make(char* message)
 {
   return gnuradio::get_initial_sptr
 (new Text_Sanitize_impl(message));
 }

 void
 Text_Sanitize_impl::print_message(pmt::pmt_t d_message)
 {
 pmt::print(d_message);
 }




 /*
 void
 Text_Sanitize_impl::forecast (int noutput_items, gr_vector_int
 ninput_items_required)
 {
  +forecast+ e.g. ninput_items_required[0] = noutput_items
 }
 */
 int
 Text_Sanitize_impl::general_work (int noutput_items,
gr_vector_int ninput_items,
gr_vector_const_void_star input_items,
gr_vector_void_star output_items)
 {
 const int *in = (int *) input_items[0];
 pmt::pmt_t *out = (pmt::pmt_t *) output_items[0];


 d_out_msg = pmt::string_to_symbol(d_message);
 //for(int i = 0; istrlen(d_message); i++)
 //{
 //pmt::vector_set(d_out_msg,i,d_message[i]);
 //}

 // Do +signal processing+
 // Tell runtime system how many input items we consumed on
 // each input stream.
 consume_each (noutput_items);

 // Tell runtime system how many output items we produced.
 return noutput_items;
 }

 /*
  * The private constructor
  */
 Text_Sanitize_impl::Text_Sanitize_impl(char* message)
   : gr::block(Text_Sanitize,
   gr::io_signature::make(1, 1, sizeof(int)),
   gr::io_signature::make(1, 1, sizeof(pmt::pmt_t))),
 d_out_msg(pmt::string_to_symbol(std::string())),
 d_message(message)
 {

 message_port_register_out(pmt::mp(print_message));
 set_msg_handler(pmt::mp(print),
 boost::bind(Text_Sanitize_impl::print_message, this, _1));
 }

 /*
  * Our virtual destructor.
  */
 Text_Sanitize_impl::~Text_Sanitize_impl()
 {
 }


   } /* namespace ACK */
 } /* namespace gr */


 *

 Text_Sanitize_impl.h

 **
 #ifndef INCLUDED_ACK_TEXT_SANITIZE_IMPL_H
 #define INCLUDED_ACK_TEXT_SANITIZE_IMPL_H

 #include ACK/Text_Sanitize.h
 #include gnuradio/block.h
 #include gnuradio/thread/thread.h
 #include pmt/pmt.h

 namespace gr {
   namespace ACK {

 class Text_Sanitize_impl : public Text_Sanitize
 {
  private:
   // Nothing to declare in this block.
 pmt::pmt_t d_out_msg;
 char* d_message;
 void print_message(pmt::pmt_t d_message);


  public:
   

[Discuss-gnuradio] OOT Module Attribute Error module object has no attribute 'blockname'

2015-08-19 Thread Washbourne, Logan
Hello all,

I know this question has been asked before, several times, but I didn't
find a solution that allowed me to use my OOT blocks without running into
the error stated in the subject of this email.

I scoured through this webpage(
http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModulesConfig)
and tried adding:
set(GR_REQUIRED_COMPONENTS RUNTIME PMT)

to my top level CMakeLists.txt file, because I am using PMT objects in my
block, but that didn't get rid of the error.

The full error thrown is this:

Executing: /home/comm1/Logan/Thesis/top_block.py

Traceback (most recent call last):
  File /home/comm1/Logan/Thesis/top_block.py, line 92, in module
tb = top_block()
  File /home/comm1/Logan/Thesis/top_block.py, line 65, in __init__
self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
AttributeError: 'module' object has no attribute 'Text_Sanitize'


I looked on the mailing list for that last line error and it pointed me to
doing what I mentioned above with the CMakeLists.txt file, but could it be
an actual problem with the top_block.py file?

In the addendum is all of the files I could think would be necessary for
someone to look at if they chose to, if including this much text is frowned
upon, please let me know.


Addendum:

Text_Sanitize_impl.cc
*
#ifdef HAVE_CONFIG_H
#include config.h
#endif

#include gnuradio/io_signature.h
#include Text_Sanitize_impl.h
#include pmt/pmt.h
#include stdio.h
#include string
#include iostream
#include cstdio

namespace gr {
  namespace ACK {

Text_Sanitize::sptr
Text_Sanitize::make(char* message)
{
  return gnuradio::get_initial_sptr
(new Text_Sanitize_impl(message));
}

void
Text_Sanitize_impl::print_message(pmt::pmt_t d_message)
{
pmt::print(d_message);
}




/*
void
Text_Sanitize_impl::forecast (int noutput_items, gr_vector_int
ninput_items_required)
{
 +forecast+ e.g. ninput_items_required[0] = noutput_items
}
*/
int
Text_Sanitize_impl::general_work (int noutput_items,
   gr_vector_int ninput_items,
   gr_vector_const_void_star input_items,
   gr_vector_void_star output_items)
{
const int *in = (int *) input_items[0];
pmt::pmt_t *out = (pmt::pmt_t *) output_items[0];


d_out_msg = pmt::string_to_symbol(d_message);
//for(int i = 0; istrlen(d_message); i++)
//{
//pmt::vector_set(d_out_msg,i,d_message[i]);
//}

// Do +signal processing+
// Tell runtime system how many input items we consumed on
// each input stream.
consume_each (noutput_items);

// Tell runtime system how many output items we produced.
return noutput_items;
}

/*
 * The private constructor
 */
Text_Sanitize_impl::Text_Sanitize_impl(char* message)
  : gr::block(Text_Sanitize,
  gr::io_signature::make(1, 1, sizeof(int)),
  gr::io_signature::make(1, 1, sizeof(pmt::pmt_t))),
d_out_msg(pmt::string_to_symbol(std::string())),
d_message(message)
{

message_port_register_out(pmt::mp(print_message));
set_msg_handler(pmt::mp(print),
boost::bind(Text_Sanitize_impl::print_message, this, _1));
}

/*
 * Our virtual destructor.
 */
Text_Sanitize_impl::~Text_Sanitize_impl()
{
}


  } /* namespace ACK */
} /* namespace gr */

*

Text_Sanitize_impl.h
**
#ifndef INCLUDED_ACK_TEXT_SANITIZE_IMPL_H
#define INCLUDED_ACK_TEXT_SANITIZE_IMPL_H

#include ACK/Text_Sanitize.h
#include gnuradio/block.h
#include gnuradio/thread/thread.h
#include pmt/pmt.h

namespace gr {
  namespace ACK {

class Text_Sanitize_impl : public Text_Sanitize
{
 private:
  // Nothing to declare in this block.
pmt::pmt_t d_out_msg;
char* d_message;
void print_message(pmt::pmt_t d_message);


 public:
  Text_Sanitize_impl(char* message);
  ~Text_Sanitize_impl();

  // Where all the action really happens
  void forecast (int noutput_items, gr_vector_int
ninput_items_required);

  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 ACK
} // namespace gr

#endif /* INCLUDED_ACK_TEXT_SANITIZE_IMPL_H */

*

Text_Sanitize.h

#ifndef INCLUDED_ACK_TEXT_SANITIZE_H
#define INCLUDED_ACK_TEXT_SANITIZE_H

#include ACK/api.h
#include gnuradio/block.h

namespace gr {
  namespace ACK {

/*!
 * \brief +description of block+
 * 

Re: [Discuss-gnuradio] OOT Module Attribute Error module object has no attribute 'blockname'

2015-08-19 Thread West, Nathan
My gut is telling me this is a swig problem. I don't know that it's frowned
upon, but it's not easy to read without some kind of highlighting that we'd
get from github or a gist with files. If I'm correct we'd also need to see
swig/ACK.i (probably missing an include and/or gr swig block magic. compare
to tutorial swig for sanity check)

On Wed, Aug 19, 2015 at 10:38 AM, Washbourne, Logan 
lwas...@ostatemail.okstate.edu wrote:

 Hello all,

 I know this question has been asked before, several times, but I didn't
 find a solution that allowed me to use my OOT blocks without running into
 the error stated in the subject of this email.

 I scoured through this webpage(
 http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModulesConfig)
 and tried adding:
 set(GR_REQUIRED_COMPONENTS RUNTIME PMT)

 to my top level CMakeLists.txt file, because I am using PMT objects in my
 block, but that didn't get rid of the error.

 The full error thrown is this:

 Executing: /home/comm1/Logan/Thesis/top_block.py

 Traceback (most recent call last):
   File /home/comm1/Logan/Thesis/top_block.py, line 92, in module
 tb = top_block()
   File /home/comm1/Logan/Thesis/top_block.py, line 65, in __init__
 self.ACK_Text_Sanitize_0 = ACK.Text_Sanitize()
 AttributeError: 'module' object has no attribute 'Text_Sanitize'


 I looked on the mailing list for that last line error and it pointed me to
 doing what I mentioned above with the CMakeLists.txt file, but could it be
 an actual problem with the top_block.py file?

 In the addendum is all of the files I could think would be necessary for
 someone to look at if they chose to, if including this much text is frowned
 upon, please let me know.


 Addendum:

 Text_Sanitize_impl.cc

 *
 #ifdef HAVE_CONFIG_H
 #include config.h
 #endif

 #include gnuradio/io_signature.h
 #include Text_Sanitize_impl.h
 #include pmt/pmt.h
 #include stdio.h
 #include string
 #include iostream
 #include cstdio

 namespace gr {
   namespace ACK {

 Text_Sanitize::sptr
 Text_Sanitize::make(char* message)
 {
   return gnuradio::get_initial_sptr
 (new Text_Sanitize_impl(message));
 }

 void
 Text_Sanitize_impl::print_message(pmt::pmt_t d_message)
 {
 pmt::print(d_message);
 }




 /*
 void
 Text_Sanitize_impl::forecast (int noutput_items, gr_vector_int
 ninput_items_required)
 {
  +forecast+ e.g. ninput_items_required[0] = noutput_items
 }
 */
 int
 Text_Sanitize_impl::general_work (int noutput_items,
gr_vector_int ninput_items,
gr_vector_const_void_star input_items,
gr_vector_void_star output_items)
 {
 const int *in = (int *) input_items[0];
 pmt::pmt_t *out = (pmt::pmt_t *) output_items[0];


 d_out_msg = pmt::string_to_symbol(d_message);
 //for(int i = 0; istrlen(d_message); i++)
 //{
 //pmt::vector_set(d_out_msg,i,d_message[i]);
 //}

 // Do +signal processing+
 // Tell runtime system how many input items we consumed on
 // each input stream.
 consume_each (noutput_items);

 // Tell runtime system how many output items we produced.
 return noutput_items;
 }

 /*
  * The private constructor
  */
 Text_Sanitize_impl::Text_Sanitize_impl(char* message)
   : gr::block(Text_Sanitize,
   gr::io_signature::make(1, 1, sizeof(int)),
   gr::io_signature::make(1, 1, sizeof(pmt::pmt_t))),
 d_out_msg(pmt::string_to_symbol(std::string())),
 d_message(message)
 {

 message_port_register_out(pmt::mp(print_message));
 set_msg_handler(pmt::mp(print),
 boost::bind(Text_Sanitize_impl::print_message, this, _1));
 }

 /*
  * Our virtual destructor.
  */
 Text_Sanitize_impl::~Text_Sanitize_impl()
 {
 }


   } /* namespace ACK */
 } /* namespace gr */


 *

 Text_Sanitize_impl.h

 **
 #ifndef INCLUDED_ACK_TEXT_SANITIZE_IMPL_H
 #define INCLUDED_ACK_TEXT_SANITIZE_IMPL_H

 #include ACK/Text_Sanitize.h
 #include gnuradio/block.h
 #include gnuradio/thread/thread.h
 #include pmt/pmt.h

 namespace gr {
   namespace ACK {

 class Text_Sanitize_impl : public Text_Sanitize
 {
  private:
   // Nothing to declare in this block.
 pmt::pmt_t d_out_msg;
 char* d_message;
 void print_message(pmt::pmt_t d_message);


  public:
   Text_Sanitize_impl(char* message);
   ~Text_Sanitize_impl();

   // Where all the action really happens
   void forecast (int noutput_items, gr_vector_int
 ninput_items_required);

   int general_work(int noutput_items,
gr_vector_int ninput_items,