sighandler explicit function

fixing_gr_cariboulite
David Michaeli 2024-01-29 16:24:13 +02:00
rodzic 5ca7c52d81
commit 43c505db2d
2 zmienionych plików z 12 dodań i 0 usunięć

Wyświetl plik

@ -243,6 +243,9 @@ public:
std::string GetHwGuid(void);
CaribouLiteRadio* GetRadioChannel(CaribouLiteRadio::RadioType ch);
// Signal Handler
void RegisterSignalHandler(std::function<void(int)> on_signal_caught);
// Static detection and factory
static CaribouLite &GetInstance(bool forceFpgaProg = false, LogLevel logLvl = LogLevel::None);
static bool DetectBoard(SysVersion *sysVer, std::string& name, std::string& guid);
@ -258,6 +261,7 @@ public:
uint8_t GetPmodState (void);
private:
std::function<void(int)> _on_signal_caught;
std::vector<CaribouLiteRadio*> _channels;
SysVersion _systemVersion;
std::string _productName;

Wyświetl plik

@ -9,9 +9,17 @@ void CaribouLite::DefaultSignalHandler(void* context, int signal_number, siginfo
{
CaribouLite* cl = (CaribouLite*)context;
std::cout << " >> Signal caught: " << signal_number << std::endl << std::flush;
if (cl->_on_signal_caught) cl->_on_signal_caught(signal_number);
//cl->ReleaseResources();
}
//==================================================================
void CaribouLite::RegisterSignalHandler(std::function<void(int)> on_signal_caught)
{
_on_signal_caught = on_signal_caught;
}
//==================================================================
bool CaribouLite::DetectBoard(SysVersion *sysVer, std::string& name, std::string& guid)
{