The implementation of the uhd_control_port block in gnuradio-extras has
an empty work function because it doesn’t actually process any samples.
I believe gnuradio-extras uses the gnuradio advanced scheduler (GRAS),
so apparently GRAS doesn’t mind blocks that don’t have any connections
in a flowgraph or do any work. Does the standard gnuradio scheduler also
support this? I just want to know for reference if the gnuradio
scheduler will keep or ignore a block with no connections, or empty
io_signatures, or no code body in the work function.
What I want to do is change power using timed commands independent of
the data path in the flowgraphs. I can do this one of two ways:
- Make a block with a message queue and some logic to handle timing (to
play nice with the timed commands implementation, which has a limited
FIFO size and only a 10 second timeout window).
- Launch a separate thread in Python that does the same thing as 1) but
isn’t a block. I assume this will be a lot easier.