PothosCore icon indicating copy to clipboard operation
PothosCore copied to clipboard

Feature: enable subclassing Pothos::Topology to hook into other dataflow toolkits

Open ncorgan opened this issue 5 years ago • 0 comments

Inspired by: https://github.com/gnuradio/gnuradio/blob/master/gr-uhd/examples/grc/rfnoc_radio_ddc.grc

Currently, the only real hooking into another dataflow infrastructure is in gr-pothos, which hacks in the block_executor to put a GNU Radio block inside a Pothos block. This approach is likely incompatible with other dataflow infrastructures. The idea here would be to put another dataflow toolkit's topology equivalent inside a Pothos::Topology and each of its blocks inside a Pothos::Block subclass. Connections between blocks would be done by overriding the _connect and _disconnect calls inside Pothos::Topology.

Connections between Pothos blocks don't do anything with buffers, and the Pothos blocks have getters and setters to hook into the underlying block's getters and setters and expose them as Pothos block functions (I don't know the implications with the scheduler here). There would be specific input and output blocks to pass Pothos buffers to and from this other toolkit.

I'm trying out this idea locally with an improved version of the GNU Radio RFNoC stuff linked above.

ncorgan avatar Aug 15 '20 15:08 ncorgan