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: Vasil Velichkov
Subject: Re: porting OOT blocks (gr-ais) to gnuradio 3.8
Date: Wed, 18 Dec 2019 02:58:08 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2

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]