mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-07-28 13:04:17 -04:00
e86e95feabb3002c4f07624d9491b96522c0db32
The original leansdr code uses fatal() and fail() for unrecoverable errors by terminating execution. When integrated into SDRangel, these error paths did not provide a mechanism for the plugin to handle failures locally, allowing initialization failures to escape the normal plugin lifecycle. Convert leansdr fatal() and fail() handling into C++ exceptions so DATV can detect framework initialization failures, report them, and cleanly return control to SDRangel instead of allowing the error to terminate the application. This behavior is desirable because a DATV framework configuration failure should not bring down the entire application. Catch initialization exceptions in DATVDemodSink::feed(), report the failure, clean up the partially initialized framework, and return to the caller. Add noreturn annotations to the leansdr error functions and include the leansdr source in exception messages to make failures easier to diagnose. This does not redesign leansdr error handling or provide recovery from runtime DSP failures. It only adds an exception boundary between the leansdr library code and the SDRangel plugin lifecycle. noticed via cppcheck indicating many Array indexes could go out of bounds due to fail and fatal returning. Signed-off-by: Robin Getz <rgetz503@gmail.com>
SDRangel is an open-source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
Wiki: Most of the information and documentation related to SDRangel can be found in the Wiki. Please make sure to check it in case of questions or trouble and before you post issues on GitHub. You may also seek help from other users using the discussion group below. Before running the program, make sure you read at least the Home and Quick Start pages.
Discussion group: You can ask other users for help or discuss subjects related to SDRangel and its ancillary projects here.
Ancillary projects
- SDRangelcli is a web application that can be used to control a headless (server flavor) instance of SDRangel. It can also be used as a remote control for the GUI flavor.
- SDRangel-Docker is a collection of Docker files and scripts to facilitate building and running SDRangel in a Docker container. Works for either the GUI (only on a Linux host) or the server.
Languages
C++
69.8%
JavaScript
27.5%
CMake
0.9%
C
0.8%
Python
0.3%
Other
0.6%
