Enhancement: add the possibility to hook another decoder in parallel with the SatNOGS flowgraph
I'm thinking about possibilities of integrating gr-satellites (specifically the gr_satellites
command line tool) into the SatNOGS decode chain for users interested in doing so.
Looking at the prototypical flowgraph fsk.grc
in satnogs-flowgraphs, I see that it would be possible to send the output of the doppler_corrected Virtual Sink to gr-satellites, and then get decoded frames from gr-satellites into the satnogs_json_converter.
ZMQ sockets are probably a good way to do these connections, since they are easy to use in GNU Radio. gr-satellites can already send decoded frames with a ZMQ PUB socket (using the GNU Radio ZMQ PUB Message Sink), so a ZMQ SUB Message Source in the satnogs-flowgraph would grab this. For the IQ input, I haven't implemented a ZMQ input in gr-satellites, but this is trivial: a ZMQ SUB Source on gr-satellites would get the data from a ZMQ PUB Sink in the satnogs-flowgraph.
ZMQ sockets "are harmless" if no one connects to them, so the sockets could be left in place even if gr-satellites is not used. This approach is so generic that any other decoder may easily be plugged in instead of gr-satellites.
A remaining question is how to run gr-satellites automatically when the satnogs-flowgraph is run, but this is probably best handled elsewhere, in the same place that runs the satnogs-flowgraph.
Do you think this is a sound idea for integration?