Pretty event printing
This commit is contained in:
parent
111e443ec3
commit
2beffedeea
|
|
@ -13,6 +13,7 @@
|
|||
#include "loguru.hpp"
|
||||
#include "threadname.h"
|
||||
#include "PiScan.h"
|
||||
#include "events.h"
|
||||
|
||||
#define SDR_THREAD_NAME "SDR Interface"
|
||||
|
||||
|
|
@ -116,10 +117,13 @@ bool SDRThread::init() {
|
|||
|
||||
//4. Apply other settings: Frequency, PPM correction, Gains, Device-specific settings:
|
||||
device->setFrequency(SOAPY_SDR_RX,0,"RF",frequency - offset.load());
|
||||
//TEMP
|
||||
piscan::events::publish(std::make_shared<piscan::events::GenericNumberEvent>("tuner_frequency_set", frequency - offset.load()));
|
||||
|
||||
if (devInfo->hasCORR(SOAPY_SDR_RX, 0)) {
|
||||
hasPPM.store(true);
|
||||
device->setFrequency(SOAPY_SDR_RX,0,"CORR",ppm.load());
|
||||
piscan::events::publish(std::make_shared<piscan::events::GenericNumberEvent>("tuner_ppm_set", ppm.load()));
|
||||
} else {
|
||||
hasPPM.store(false);
|
||||
}
|
||||
|
|
@ -514,6 +518,7 @@ void SDRThread::updateSettings() {
|
|||
|
||||
if (ppm_changed.load() && hasPPM.load()) {
|
||||
device->setFrequency(SOAPY_SDR_RX,0,"CORR",ppm.load());
|
||||
piscan::events::publish(std::make_shared<piscan::events::GenericNumberEvent>("tuner_ppm_set", ppm.load()));
|
||||
ppm_changed.store(false);
|
||||
}
|
||||
|
||||
|
|
@ -521,8 +526,10 @@ void SDRThread::updateSettings() {
|
|||
if (frequency_locked.load() && !frequency_lock_init.load()) {
|
||||
device->setFrequency(SOAPY_SDR_RX,0,"RF",lock_freq.load());
|
||||
frequency_lock_init.store(true);
|
||||
piscan::events::publish(std::make_shared<piscan::events::GenericNumberEvent>("tuner_frequency_set", lock_freq.load()));
|
||||
} else if (!frequency_locked.load()) {
|
||||
device->setFrequency(SOAPY_SDR_RX,0,"RF",frequency.load() - offset.load());
|
||||
piscan::events::publish(std::make_shared<piscan::events::GenericNumberEvent>("tuner_frequency_set", frequency.load() - offset.load()));
|
||||
}
|
||||
freq_changed.store(false);
|
||||
|
||||
|
|
|
|||
57
src/events.h
57
src/events.h
|
|
@ -8,6 +8,11 @@ namespace piscan {
|
|||
struct Event {
|
||||
Event(std::string topic) : topic(topic) {};
|
||||
virtual ~Event(){};
|
||||
|
||||
inline virtual std::string to_string() {
|
||||
return "Event type: " + topic + "\n";
|
||||
}
|
||||
|
||||
std::string topic;
|
||||
};
|
||||
|
||||
|
|
@ -22,6 +27,33 @@ namespace piscan {
|
|||
void unsubscribe(std::string topic, int subscriber);
|
||||
|
||||
/*---------------------------------*/
|
||||
struct GenericStringEvent : public Event {
|
||||
GenericStringEvent(std::string topic, std::string data) : Event(topic), data(data) {};
|
||||
virtual ~GenericStringEvent() {};
|
||||
inline virtual std::string to_string() {
|
||||
return Event::to_string() + "\tData:\t" + data + "\n";
|
||||
}
|
||||
std::string data;
|
||||
};
|
||||
|
||||
struct GenericNumberEvent : public Event {
|
||||
GenericNumberEvent(std::string topic, long long data) : Event(topic), data(data) {};
|
||||
virtual ~GenericNumberEvent() {};
|
||||
inline virtual std::string to_string() {
|
||||
return Event::to_string() + "\tData:\t" + std::to_string(data) + "\n";
|
||||
}
|
||||
long long data;
|
||||
};
|
||||
|
||||
struct GenericBoolEvent : public Event {
|
||||
GenericBoolEvent(std::string topic, bool data) : Event(topic), data(data) {};
|
||||
virtual ~GenericBoolEvent() {};
|
||||
inline virtual std::string to_string() {
|
||||
return Event::to_string() + "\tData:\t" + std::to_string(data) + "\n";
|
||||
}
|
||||
bool data;
|
||||
};
|
||||
|
||||
struct ScannerStateEvent : public Event {
|
||||
virtual ~ScannerStateEvent() {};
|
||||
|
||||
|
|
@ -34,6 +66,20 @@ namespace piscan {
|
|||
|
||||
ScannerStateEvent() : Event("scanner_state_change") {};
|
||||
|
||||
inline virtual std::string to_string() {
|
||||
std::string tail = (state == HOLD || state == RECEIVE)?
|
||||
"\tSystem:\t" + systemTag + "\n" +
|
||||
"\tEntry:\t" + entryTag + "\n" +
|
||||
"\tFrequency:\t" + std::to_string(frequency) + "\n" +
|
||||
"\tModulation:\t" + modulation + "\n" +
|
||||
"\tIndex:\t" + entryIndex + "\n" +
|
||||
"\tDelay:\t" + std::to_string(delayMS) + "\n" +
|
||||
"\tLockout:\t" + std::to_string(lockout) + "\n"
|
||||
: "";
|
||||
return Event::to_string() +
|
||||
"\tState:\t" + std::to_string(state) + "\n" + tail;
|
||||
}
|
||||
|
||||
//TODO ported from context messages
|
||||
ScannerState state = OTHER_STATE;
|
||||
std::string systemTag = "";
|
||||
|
|
@ -48,6 +94,11 @@ namespace piscan {
|
|||
struct DemodStateEvent : public Event {
|
||||
DemodStateEvent() : Event("demod_state_change") {};
|
||||
virtual ~DemodStateEvent() {};
|
||||
inline virtual std::string to_string() {
|
||||
return Event::to_string() +
|
||||
"\tTuner gain:\t" + std::to_string(tunerGainState) + "\n"
|
||||
"\tSquelch:\t" + std::to_string(squelchState) + "\n";
|
||||
}
|
||||
float tunerGainState;
|
||||
int squelchState;
|
||||
};
|
||||
|
|
@ -55,12 +106,18 @@ namespace piscan {
|
|||
struct SignalLevelEvent : public Event {
|
||||
SignalLevelEvent(int level) : Event("signal_level"), level(level) {};
|
||||
virtual ~SignalLevelEvent(){};
|
||||
inline virtual std::string to_string() {
|
||||
return Event::to_string() + "\tSignal level:\t" + std::to_string(level) + "\n";
|
||||
}
|
||||
int level;
|
||||
};
|
||||
|
||||
struct LoggingEvent : public Event {
|
||||
LoggingEvent(int level, std::string line) : Event("log_write"), level(level), line(line) {};
|
||||
virtual ~LoggingEvent(){};
|
||||
inline virtual std::string to_string() {
|
||||
return Event::to_string() + "\t> " + line + "\n";
|
||||
}
|
||||
int level;
|
||||
std::string line;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ void exit(int code){
|
|||
}
|
||||
|
||||
void printEvent(events::EventPtr event) {
|
||||
std::cerr << "**EVENT: " << event->topic << std::endl;
|
||||
std::cerr << event->to_string();
|
||||
}
|
||||
|
||||
bool app::system::stopSystem(){
|
||||
|
|
|
|||
Loading…
Reference in New Issue