Glen, I'm going through a pain similar to yours. For working examples, you can look at the source for the blocks that are part of GNU Radio. For example, the Multiply Constant block shows how to do a callback, and the Add block shows how to do variable number of inputs. Unfortunately, these blocks also have the complexity of allowing Vector inputs, and different types of inputs, so you have to dig through that to get at the parts you want.
The closest thing I found for a working OOT module, is documented here: https://wiki.gnuradio.org/index.php/Guided_Tutorial_GNU_Radio_in_C%2B%2B It only applies to 3.7 & 3.8, so you still have to sleuth out the differences for 3.9. Also, it does not show how to do variable # of inputs, nor a parameter callback. I'm working on a block that needs those; so as soon as I have it sorted out, I'll put the sources on Github. Guided Tutorial GNU Radio in C++ - GNU Radio<https://wiki.gnuradio.org/index.php/Guided_Tutorial_GNU_Radio_in_C%2B%2B> Note: the get_minimum_distances function declaration also needs to be added to the class header (my_qpsk_demod_cb_impl.h).The function get_minimum_distances is a maximum likelihood decoder for the QPSK demodulater. Theoretically, the function should compute the distance from each ideal QPSK symbol to the received symbol (It is mathematically equivalent to determining the Voronoi regions of the ... wiki.gnuradio.org ________________________________ Date: Tue, 2 Feb 2021 21:19:32 -0500 From: Glen Langston <glen.i.langs...@gmail.com> To: Marcus Müller <mmuel...@gnuradio.org> Cc: discuss-gnuradio@gnu.org Subject: Re: New Raspberry PI Complete OS release I appreciate gr-modtool, but it is frustrating that modtool does not generate working code. There really, really, really needs to be an ultra-simple working example of C++ code for 3.8 and 3.9 that actually build. The code could do anything, but just allow us to use it as the basis for creating YAML and SWIG/PYBIND code based on the new requirements.