[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