Thank you for the advice, I have gotten this working now. It was a user error in that I was not including the gnuradio/digital/constellation.h file in the swig .i. Also to note for anybody in the future, I also had to link the libgnuradio-digital.so into the CMakeLists.txt file in the lib directory at the end of the target_link_libraries line. This was due to a runtime python error about not being able to find the constellation object in the OOT .so object.
Thank you very much, Michael Berman On Thu, Sep 26, 2013 at 8:14 AM, Tom Rondeau <t...@trondeau.com> wrote: > On Tue, Sep 24, 2013 at 7:56 PM, Michael Berman <mrberma...@gmail.com> > wrote: > > Upon looking at the generated *_swig.py files, I am seeing more of the > > differences. For some reason my OOT module is not generating the python > > wrapper for the constellation_theta class, it is only creating the > wrapper > > for the shared pointer object. I am curious now as to what the gnuradio > > swig interface files are doing elsewhere that are causing that build to > pick > > up the object files when only the shared pointer is called out in the > swig > > .i file. > > > > Thank you very much for the help, > > > > Michael Berman > > All I can suggest right now is to make sure your .h file is properly > included in the swig.i file. Notice that in digital_swig.i, it's > included twice, once in line 51 (#include inside the %{ and %}) and > line 121 (as %include). > > But also note the %include of constellation.i. This is needed to > Python-ize some of the interfaces. > > Tom > > > > > On Tue, Sep 24, 2013 at 1:16 PM, Michael Berman <mrberma...@gmail.com> > > wrote: > >> > >> I am having issues implementing what was discussed previously. I have > >> created an OOT module (constellation_theta), and placed it within the > >> gr::digital namespace. All of the cpp code is written and working > fine. As > >> I am attempting to add a custom constellation, I used the existing > instances > >> of constellations (bpsk, qpsk, etc.) as an example for my constellation > >> object as far as the swig .i files and the cpp files from the gr-digital > >> section of the gnuradio gr-digital source for my new module. When I > attempt > >> to run this module, I get the following python runtime error: > >> > >> ........ > >> File > >> > "/usr/local/lib/python2.7/dist-packages/constellation_theta/constellation_theta_swig.py", > >> line 102, in <module> > >> constellation_theta = constellation_theta.make; > >> NameError: name 'constellation_theta' is not defined > >> > >> This line is driven directly from the swig .i file, of which I copied > the > >> format from the .../gnuradio/gr-digital/swig/constellation.i file. > >> Comparing the generated .py files from the installed swig generated > code, I > >> also do not understand why I have so many differences from this. The > >> gnuradio code has the cpp class laid out inside the .py file perfectly, > with > >> all of the exposed methods; however, my code has none of that, just the > >> basic constructor (which I don't even want exposed to preserve the > shared > >> pointer structure). > >> > >> I am not sure where to go from this point on getting this up and > running, > >> any help would be greatly appreciated. > >> > >> > >> Thank you very much, > >> > >> Michael Berman > >> > >> > >> On Mon, Sep 23, 2013 at 9:21 AM, Michael Berman <mrberma...@gmail.com> > >> wrote: > >>> > >>> Tom, > >>> > >>> Thanks for the response. This is what i was thinking was the > appropriate > >>> action, I just wanted to make sure. As for the header, I didn't > realize I > >>> didn't add one until after I sent the email out; I'll try to not let > that > >>> one happen again. > >>> > >>> > >>> Thanks, > >>> > >>> Michael Berman > >>> > >>> > >>> On Sat, Sep 21, 2013 at 8:09 AM, Tom Rondeau <t...@trondeau.com> wrote: > >>>> > >>>> On Fri, Sep 20, 2013 at 7:55 PM, Michael Berman <mrberma...@gmail.com > > > >>>> wrote: > >>>> > I am attempting to add a custom constellation class to be used with > >>>> > the > >>>> > generic_mod_demod object for digital PSK. I have the code working > as > >>>> > a > >>>> > simple addition to the gnuradio source with a re-compilation, > however > >>>> > I > >>>> > would like to set this up similar to an Out Of Tree module (although > >>>> > it > >>>> > isn't entirely a standalone module). Would the way I go about > >>>> > approaching > >>>> > this be the same as the adding an Out Of Tree module tutorial on the > >>>> > gnuradio website? Or would there be a preferred method than the > >>>> > gr_modtool. > >>>> > I would like to set this up so that the code I add sits in the > >>>> > gr::digital > >>>> > scope and have everything look as though it all sits in the > >>>> > constellation.{cc, h, i} files. Does anybody have recommendations > for > >>>> > attacking this task? > >>>> > > >>>> > > >>>> > Thank you very much, > >>>> > > >>>> > Michael Berman > >>>> > >>>> Hi Michael, > >>>> Please use a proper subject line in the future to help us sort and > >>>> keep track of things. > >>>> > >>>> As to your question, that shouldn't be a problem. You should be able > >>>> to create a class in your OOT module and inherit from > >>>> gr::digital::constellation (or one of it's children). And just putting > >>>> it inside the gr::digital namespace. This will obviously now exist in > >>>> your own lib<yourlibrary>.so and not in libgnuradio-digital.so. So I'm > >>>> not sure what you mean by "sits inside constellation.{cc,h,i}". If you > >>>> are in an OOT project, you wouldn't be able to add this directly to > >>>> the gnuradio-digital library or Python module (ok, there's a way to do > >>>> the latter by smashing it in during install, but that's seriously ugly > >>>> business that you want no part of). > >>>> > >>>> And use gr_modtool. Definitely the best, easiest, and preferred way of > >>>> setting things up. When creating your new class, use 'gr_modtool add' > >>>> and for the 'code type' use 'noblock.' > >>>> > >>>> -- > >>>> Tom > >>>> GRCon13 Oct. 1 - 4 > >>>> http://www.trondeau.com/grcon13 >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio