discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: porting OOT blocks (gr-ais) to gnuradio 3.8


From: Nick Foster
Subject: Re: porting OOT blocks (gr-ais) to gnuradio 3.8
Date: Wed, 18 Dec 2019 10:20:51 -0800

I'll get it ported over Christmas break, if you can wait that long

On Tue, Dec 17, 2019 at 4:59 PM Vasil Velichkov <address@hidden> wrote:
Hi Robert,

On 18/12/2019 00.41, Robert Meyer wrote:
> After that I used pybombs to install gr-ais, and then used <gr_modtool
> update -complete> in order to try to convert resources to gnuradio 3.8

This would only convert the GRC blocks from XML to YAML format. You also need a lot of cmake related changes.

https://wiki.gnuradio.org/index.php/GNU_Radio_3.8_OOT_Module_Porting_Guide#CMake_Updates

> I was able to build without errors, but when running the block I got the
> error:
>
> Traceback (most recent call last):
>
>                 File
> "/home/superuser/prefix/default/src/gr-ais/build/testing_gr_ais.py", line 27
> in <module>
>
>                                 From ais import gmsk_sync
>
> ModuleNotFoundError: No module named 'ais'

Make sure there are no undefined symbols in libgnuradio-ais.so and _ais_swig.so

    $ ldd  -r ./lib/libgnuradio-ais.so  | grep undefined
    undefined symbol: _ZN2gr6blocks13vector_sink_c4makeEii      (./lib/libgnuradio-ais.so)
    undefined symbol: _ZN2gr6blocks15vector_source_b4makeERKSt6vectorIhSaIhEEbiRKS2_INS_5tag_tESaIS7_EE (./lib/libgnuradio-ais.so)
    undefined symbol: _ZN2gr6filter14fir_filter_ccf4makeEiRKSt6vectorIfSaIfEE   (./lib/libgnuradio-ais.so)

    $ c++filt  _ZN2gr6blocks13vector_sink_c4makeEii
    gr::blocks::vector_sink_c::make(int, int)

    $ c++filt _ZN2gr6filter14fir_filter_ccf4makeEiRKSt6vectorIfSaIfEE
    gr::filter::fir_filter_ccf::make(int, std::vector<float, std::allocator<float> > const&)

In case you get the same symbols then you need to link with gnuradio-blocks and gnuradio-filter using the new cmake syntax. In lib/CMakeLists.txt add something like

    target_link_libraries(gnuradio-ais gnuradio::gnuradio-blocks gnuradio::gnuradio-filter)

Also in python/__init__.py you can add a try except block around the import statements and log and reraise any exceptions.

P.S.
If you manage to port it successfully consider opening a pull request.

Regards,
Vasil


reply via email to

[Prev in Thread] Current Thread [Next in Thread]