Hi All,

I am sorry to be covering what is old ground, but I am having a final loading 
issue with an otherwise working OOT block.

The block works under GRC 3.8.2.0 and GRC 3.9.4.0 was built on another computer 
without issue.

ImportError:generic_type "channel_signal_generator_cc" referenced unknown base 
type "gr::sync_block"

Ubuntu 20.04
python 3.8
pybind11 2.5.0 – replacing 2.4.3 in accordance with the latest 3.9 Module 
Porting Guide (28 Feb 2022)
pygccxml 2.2.1
Additional libraries are found at cmake and during the build. The block imports 
correctly with no changes necessary to the .yml file.

The new block was created using 3.9 gr_modtool and code dropped in, noting the 
changes to shared_ptr use.
The block was sync_block type at definition, with the virtual block classes 
noted in the porting guide automatically inserted during bind in 
/python/bindings/....

void bind_channel_signal_generator_cc(py::module& m)
{
    using channel_signal_generator_cc    = 
::gr::oot::channel_signal_generator_cc;

    py::class_<channel_signal_generator_cc, gr::sync_block, gr::block, 
gr::basic_block,
        std::shared_ptr<channel_signal_generator_cc>>(m, 
"channel_signal_generator_cc", D(channel_signal_generator_cc))

        .def(py::init(&channel_signal_generator_cc::make),
           py::arg("samp_rate"),
           py::arg("length_chips"),
           py::arg("duration_sec"),
           py::arg("filename"),
           py::arg("CN0_dB"),
           D(channel_signal_generator_cc,make)
        )

Any comments would be welcome.

Many thanks,

David GD4FMB

Reply via email to