Hi Peter,

Thanks for your reply and suggestions.

I checked all the 4 files. I changed the original module and block names of
build-in block into my module and block names. But unfortunately, the error
still exists.

Could it be possibly because the build-in block, in my case
"clock_recovery_mm_ff" block, has some special dependency which is included
in the code of the module but not in the code of the block.

The type of "clock_recovery_mm_ff" block is abnormal. It is just block, not
gr::block nor gr::sync_block as mentioned in the OOT tutorial . Here is the
code of declaration of this block in *.h file in "include" folder.

class DIGITAL_API clock_recovery_mm_ff : virtual public block

In my code, I change it into

class MY_MODULE_API my_block : virtual public block

Thank you for your reply again.

Best regards,

Su Li




2015-05-13 20:36 GMT+02:00 Peter Mathys <mat...@colorado.edu>:

>  I've had a similar problem when I generated files for my own module using
> the gr_modtool and then copied some existing code by replacing the file(s)
> that gr_modtool generates. It turns out I had overlooked that the new
> "my_block" name needs to be changed in several places, like the namespace
> declaration, the #include compiler directive, and the conditional #ifndef
> INCLUDED ... directives. Once I updated that correctly the AttributeError
> got resolved.
>
> -Peter-
>
>
>
> On 5/13/2015 10:38 AM, Su Li wrote:
>
> Dear All,
>
>  I am trying to make an out of tree module by following the tutorial on
> Gnu radio website. I can write simple blocks in C++, compile it and install
> it to it usable in Gnuradio company.
>
>  But for some complex block, I want to implement them based on the
> gnuradio build-in blocks, for example, clock_recovery_mm_ff. So I make a
> new block in my out-of-tree module and try to first "copy" the build-in
> block into my out-of-tree module.
>
>  I changed the following 4 files in my OOT module to match the
> corresponding files of the build-in block:
>
>  lib/my_block_impl.cc
> lib/my_block_impl.h
> include/my_block.h
> grc/my_block.xml
>
>  In each file, I changed all the "clock_recovery_mm_ff" into "my_block".
>
>  I can successfully make and install the block without error and warring.
> But when I try to run the grc graph, an error happens.
>
>  AttributeError: 'module' object has no attribute 'my_block'.
>
>  Anyone can tell me what I should do to correct this error? Is there any
> other files I should change?
>
>  When I make simple blocks by myself, I only change this 4 files and it
> works.
>
>  Best regards,
>
>  Su Li
>
>
> _______________________________________________
> Discuss-gnuradio mailing 
> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to