Logging: Error messages contain a lot of uncessary information
Unhandled exceptions in a flowgraph produce hard-to-read log output.
When running a flowgraph with no SDR connected, the following error message is emitted:
tb = top_block_cls(antenna=options.antenna, baudrate=options.baudrate, bb_freq=options.bb_freq, bw=options.bw, dc_removal=options.dc_removal, decoded_data_file_path=options.decoded_data_file_path, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, enable_iq_dump=options.enable_iq_dump, file_path=options.file_path, framing=options.framing, gain=options.gain, gain_mode=options.gain_mode, iq_file_path=options.iq_file_path, lo_offset=options.lo_offset, other_settings=options.other_settings, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, samp_rate_rx=options.samp_rate_rx, soapy_rx_device=options.soapy_rx_device, stream_args=options.stream_args, tune_args=options.tune_args, udp_IP=options.udp_IP, udp_dump_host=options.udp_dump_host, udp_dump_port=options.udp_dump_port, udp_port=options.udp_port, waterfall_file_path=options.waterfall_file_path)
File "/usr/bin/satnogs_fsk.py", line 97, in __init__
self.soapy_source_0_0 = soapy.source(1, dev, dev_args, stream_args,
File "/usr/lib/python3/dist-packages/soapy/soapy_swig.py", line 131, in make
return _soapy_swig.source_make(nchan, device, dev_args, stream_args, tune_args, other_settings, sampling_rate, type)
RuntimeError: device_id missing.
Presented in isolation, it's not too complicated to find the relevant information (last line). But usually this output is part of a larger log file, spanning multiple observations and being interleaved with log output by satnogs-client. Especially confusing can be the insanely long tob_block_cls parameter list.
Ideally, an unconnected SDR results in a single line of log output containing the error name (and description if available) only.