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