From 956dde4fd4e1bbaf87263b688227a8d7b7068169 Mon Sep 17 00:00:00 2001 From: aa5sh <84428382+aa5sh@users.noreply.github.com> Date: Sun, 8 Sep 2024 00:34:07 -0500 Subject: [PATCH 1/2] NetworkNotification-Frequency --- core/NetworkNotification.cpp | 48 ++++++++++ core/NetworkNotification.h | 13 +++ ui/MainWindow.cpp | 1 + ui/SettingsDialog.cpp | 2 + ui/SettingsDialog.ui | 174 +++++++++++++++++++---------------- 5 files changed, 159 insertions(+), 79 deletions(-) diff --git a/core/NetworkNotification.cpp b/core/NetworkNotification.cpp index 1a6c4e36..900ed874 100644 --- a/core/NetworkNotification.cpp +++ b/core/NetworkNotification.cpp @@ -84,6 +84,25 @@ void NetworkNotification::saveNotifSpotAlertAddrs(const QString &addresses) } +QString NetworkNotification::getNotifFreqAlertAddrs() +{ + FCT_IDENTIFICATION; + + QSettings settings; + + return settings.value(NetworkNotification::CONFIG_NOTIF_FREQ_ADDRS_KEY).toString(); +} + +void NetworkNotification::saveNotifFreqAlertAddrs(const QString &addresses) +{ + FCT_IDENTIFICATION; + + QSettings settings; + + settings.setValue(NetworkNotification::CONFIG_NOTIF_FREQ_ADDRS_KEY, addresses); + +} + void NetworkNotification::QSOInserted(const QSqlRecord &record) { FCT_IDENTIFICATION; @@ -240,6 +259,7 @@ QString NetworkNotification::CONFIG_NOTIF_QSO_ADI_ADDRS_KEY = "network/notificat QString NetworkNotification::CONFIG_NOTIF_DXSPOT_ADDRS_KEY = "network/notification/dxspot/addrs"; QString NetworkNotification::CONFIG_NOTIF_WSJTXCQSPOT_ADDRS_KEY = "network/notification/wsjtx/cqspot/addrs"; QString NetworkNotification::CONFIG_NOTIF_SPOTALERT_ADDRS_KEY = "network/notification/alerts/spot/addrs"; +QString NetworkNotification::CONFIG_NOTIF_FREQ_ADDRS_KEY = "network/notification/alerts/freq/addrs"; GenericNotificationMsg::GenericNotificationMsg(QObject *parent) : QObject(parent) @@ -469,3 +489,31 @@ ToAllSpotNotificationMsg::ToAllSpotNotificationMsg(const ToAllSpot &spot, QObjec msg["msgtype"] = "toallspot"; msg["data"] = spotData; } + +void NetworkNotification::updateFrequency(VFOID, double vfoFreq, double ritFreq, double xitFreq) +{ + FCT_IDENTIFICATION; + + qCDebug(function_parameters) << vfoFreq << ritFreq << xitFreq; + + HostsPortString destList(getNotifFreqAlertAddrs()); + + if ( destList.getAddrList().size() > 0 ) + { + FreqNotificationMsg freqAlertMsg(vfoFreq); + send(freqAlertMsg.getJson(), destList); + } +} + +FreqNotificationMsg::FreqNotificationMsg(const double &rx_freq, QObject *parent) : + GenericNotificationMsg(parent) +{ + FCT_IDENTIFICATION; + + QJsonObject freqData; + freqData["Frequency"] = rx_freq; + + + msg["msgtype"] = "freq"; + msg["data"] = freqData; +} diff --git a/core/NetworkNotification.h b/core/NetworkNotification.h index 59583388..72ebffcc 100644 --- a/core/NetworkNotification.h +++ b/core/NetworkNotification.h @@ -14,6 +14,7 @@ #include "data/WCYSpot.h" #include "data/WWVSpot.h" #include "data/ToAllSpot.h" +#include "rig/rig.h" class GenericNotificationMsg : public QObject { @@ -116,6 +117,14 @@ class ToAllSpotNotificationMsg : public GenericNotificationMsg }; +class FreqNotificationMsg : public GenericNotificationMsg +{ + +public: + explicit FreqNotificationMsg(const double&, QObject *parent = nullptr); + +}; + class NetworkNotification : public QObject { Q_OBJECT @@ -130,6 +139,8 @@ class NetworkNotification : public QObject static void saveNotifWSJTXCQSpotAddrs(const QString &); static QString getNotifSpotAlertAddrs(); static void saveNotifSpotAlertAddrs(const QString &); + static QString getNotifFreqAlertAddrs(); + static void saveNotifFreqAlertAddrs(const QString &); public slots: void QSOInserted(const QSqlRecord &); @@ -141,6 +152,7 @@ public slots: void toAllSpot(const ToAllSpot&); void WSJTXCQSpot(const WsjtxEntry&); void spotAlert(const SpotAlert&); + void updateFrequency(VFOID, double, double, double); private: @@ -150,6 +162,7 @@ public slots: static QString CONFIG_NOTIF_DXSPOT_ADDRS_KEY; static QString CONFIG_NOTIF_WSJTXCQSPOT_ADDRS_KEY; static QString CONFIG_NOTIF_SPOTALERT_ADDRS_KEY; + static QString CONFIG_NOTIF_FREQ_ADDRS_KEY; }; diff --git a/ui/MainWindow.cpp b/ui/MainWindow.cpp index acdb2f72..b74f7b2d 100644 --- a/ui/MainWindow.cpp +++ b/ui/MainWindow.cpp @@ -141,6 +141,7 @@ MainWindow::MainWindow(QWidget* parent) : connect(Rig::instance(), &Rig::frequencyChanged, ui->onlineMapWidget, &OnlineMapWidget::setIBPBand); connect(Rig::instance(), &Rig::frequencyChanged, ui->bandmapWidget , &BandmapWidget::updateTunedFrequency); connect(Rig::instance(), &Rig::modeChanged, ui->bandmapWidget, &BandmapWidget::updateMode); + connect(Rig::instance(), &Rig::frequencyChanged, &networknotification, &NetworkNotification::updateFrequency); connect(Rotator::instance(), &Rotator::rotErrorPresent, this, &MainWindow::rotErrorHandler); connect(Rotator::instance(), &Rotator::positionChanged, ui->onlineMapWidget, &OnlineMapWidget::antPositionChanged); diff --git a/ui/SettingsDialog.cpp b/ui/SettingsDialog.cpp index 1bfaadb8..57ef8778 100644 --- a/ui/SettingsDialog.cpp +++ b/ui/SettingsDialog.cpp @@ -2326,6 +2326,7 @@ void SettingsDialog::readSettings() { ui->notifDXSpotsEdit->setText(NetworkNotification::getNotifDXSpotAddrs()); ui->notifWSJTXCQSpotsEdit->setText(NetworkNotification::getNotifWSJTXCQSpotAddrs()); ui->notifSpotAlertEdit->setText(NetworkNotification::getNotifSpotAlertAddrs()); + ui->notifFreqEdit->setText(NetworkNotification::getNotifFreqAlertAddrs()); /******************/ /* END OF Reading */ @@ -2430,6 +2431,7 @@ void SettingsDialog::writeSettings() { NetworkNotification::saveNotifDXSpotAddrs(ui->notifDXSpotsEdit->text()); NetworkNotification::saveNotifWSJTXCQSpotAddrs(ui->notifWSJTXCQSpotsEdit->text()); NetworkNotification::saveNotifSpotAlertAddrs(ui->notifSpotAlertEdit->text()); + NetworkNotification::saveNotifFreqAlertAddrs(ui->notifFreqEdit->text()); } /* this function is called when user modify rig progile diff --git a/ui/SettingsDialog.ui b/ui/SettingsDialog.ui index a106b9d2..3660bb63 100644 --- a/ui/SettingsDialog.ui +++ b/ui/SettingsDialog.ui @@ -35,7 +35,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Save + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Save @@ -186,16 +186,16 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - Qt::NoContextMenu + Qt::ContextMenuPolicy::NoContextMenu List of all available Station Profiles - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers @@ -256,7 +256,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -398,7 +398,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -555,16 +555,16 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - Qt::NoContextMenu + Qt::ContextMenuPolicy::NoContextMenu List of all available Antennas - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers @@ -574,7 +574,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -606,16 +606,16 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - Qt::NoContextMenu + Qt::ContextMenuPolicy::NoContextMenu List of all available CW Keyers - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers @@ -722,7 +722,7 @@ - QFrame::NoFrame + QFrame::Shape::NoFrame 0 @@ -862,7 +862,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -915,16 +915,16 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - Qt::NoContextMenu + Qt::ContextMenuPolicy::NoContextMenu List of all available CW Shortcuts Profiles - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers @@ -1438,16 +1438,16 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - Qt::NoContextMenu + Qt::ContextMenuPolicy::NoContextMenu List of all available Rigs - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers @@ -1568,7 +1568,7 @@ - - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -1890,7 +1890,7 @@ - QFrame::NoFrame + QFrame::Shape::NoFrame 0 @@ -1898,7 +1898,7 @@ - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop 6 @@ -1963,7 +1963,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -2060,7 +2060,7 @@ Parity - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -2117,7 +2117,7 @@ Stop Bits - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -2287,16 +2287,16 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - Qt::NoContextMenu + Qt::ContextMenuPolicy::NoContextMenu List of all available Rigs - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers @@ -2378,7 +2378,7 @@ - QFrame::NoFrame + QFrame::Shape::NoFrame 0 @@ -2514,7 +2514,7 @@ Stop Bits - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -2548,7 +2548,7 @@ Parity - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -2597,7 +2597,7 @@ Port - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -2648,16 +2648,16 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - Qt::NoContextMenu + Qt::ContextMenuPolicy::NoContextMenu List of all available CW Shortcuts Profiles - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers @@ -2975,7 +2975,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -3062,7 +3062,7 @@ true - QLineEdit::Password + QLineEdit::EchoMode::Password @@ -3102,7 +3102,7 @@ true - QLineEdit::Password + QLineEdit::EchoMode::Password @@ -3149,7 +3149,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -3181,7 +3181,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -3201,7 +3201,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -3220,7 +3220,7 @@ - QTabWidget::Rounded + QTabWidget::TabShape::Rounded 0 @@ -3236,10 +3236,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -3269,14 +3269,14 @@ - QLineEdit::Password + QLineEdit::EchoMode::Password - Qt::Vertical + Qt::Orientation::Vertical @@ -3316,10 +3316,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -3349,14 +3349,14 @@ - QLineEdit::Password + QLineEdit::EchoMode::Password - Qt::Vertical + Qt::Orientation::Vertical @@ -3399,7 +3399,7 @@ It is not a password. It is the upload code received via email after the registration to HRDLOG..net - QLineEdit::Password + QLineEdit::EchoMode::Password @@ -3429,10 +3429,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -3445,7 +3445,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -3482,7 +3482,7 @@ - QLineEdit::Password + QLineEdit::EchoMode::Password @@ -3511,8 +3511,7 @@ Browse - - .. + @@ -3521,10 +3520,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -3537,7 +3536,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -3571,17 +3570,17 @@ - QLineEdit::Password + QLineEdit::EchoMode::Password - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -3594,7 +3593,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -3631,10 +3630,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -3664,14 +3663,14 @@ - QLineEdit::Password + QLineEdit::EchoMode::Password - Qt::Vertical + Qt::Orientation::Vertical @@ -3698,7 +3697,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -3721,10 +3720,10 @@ true - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel true @@ -3750,10 +3749,10 @@ true - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel true @@ -4001,13 +4000,30 @@ + + + + Frequency Info + + + + + + + <html><head/><body><p>List of IP addresses to which QLog sends UDP notification packets with current Radio Frequency.</p><p>The IP addresses are separated by a space and have the form IP:PORT</p></body></html> + + + ex. 192.168.1.1:1234 192.168.2.1:1234 + + + - Qt::Vertical + Qt::Orientation::Vertical @@ -4037,13 +4053,13 @@ true - QAbstractItemView::NoSelection + QAbstractItemView::SelectionMode::NoSelection - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel 300 From e3e178be9f9c2929d7a42eb350d52329205632d8 Mon Sep 17 00:00:00 2001 From: aa5sh <84428382+aa5sh@users.noreply.github.com> Date: Sun, 8 Sep 2024 11:08:29 -0500 Subject: [PATCH 2/2] fix labels --- core/NetworkNotification.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/NetworkNotification.cpp b/core/NetworkNotification.cpp index 900ed874..188dc211 100644 --- a/core/NetworkNotification.cpp +++ b/core/NetworkNotification.cpp @@ -505,14 +505,13 @@ void NetworkNotification::updateFrequency(VFOID, double vfoFreq, double ritFreq, } } -FreqNotificationMsg::FreqNotificationMsg(const double &rx_freq, QObject *parent) : +FreqNotificationMsg::FreqNotificationMsg(const double &vfo_freq, QObject *parent) : GenericNotificationMsg(parent) { FCT_IDENTIFICATION; QJsonObject freqData; - freqData["Frequency"] = rx_freq; - + freqData["Frequency"] = vfo_freq; msg["msgtype"] = "freq"; msg["data"] = freqData;