|
From: | Nick Foster |
Subject: | Re: porting OOT blocks (gr-ais) to gnuradio 3.8 |
Date: | Wed, 18 Dec 2019 10:20:51 -0800 |
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
[Prev in Thread] | Current Thread | [Next in Thread] |