9#include <QLoggingCategory>
16Q_DECLARE_LOGGING_CATEGORY(aprsisclient_js8)
31 APRSISClient(QString host, quint16 port, QObject *parent =
nullptr);
45 static QString
loginFrame(QString callsign, QString filter = QString());
46 static QPair<float, float>
grid2deg(QString grid);
47 static QPair<QString, QString>
grid2aprs(QString grid);
51 bool isPasscodeValid() {
52 return m_localPasscode == QString::number(
hashCallsign(m_localCall));
65 void setSkipPercent(
float skipPercent) { m_skipPercent = skipPercent; }
67 void setServer(QString host, quint16 port) {
68 if (state() == QTcpSocket::ConnectedState) {
75 qCDebug(aprsisclient_js8)
76 <<
"APRSISClient Server Change:" << m_host << m_port;
79 void setPaused(
bool paused) { m_paused = paused; }
81 void setLocalStation(QString mycall, QString passcode) {
83 m_localPasscode = passcode;
86 void enqueueSpot(QString by_call, QString from_call, QString grid,
117 void onSocketConnected();
118 void onSocketReadyRead();
119 void onSocketDisconnected();
120 void onSocketError(QAbstractSocket::SocketError socketError);
124 QString m_localPasscode;
126 QQueue<QPair<QString, QDateTime>> m_frameQueue;
131 bool m_incomingRelayEnabled;
void enqueueSpot(QString by_call, QString from_call, QString grid, QString comment)
Enqueue a spot frame for APRS-IS.
Definition APRSISClient.cpp:348
static QString stripSSID(QString call)
Strip SSID from callsign.
Definition APRSISClient.cpp:283
APRSISClient(QString host, quint16 port, QObject *parent=nullptr)
Construct a new APRSISClient object.
Definition APRSISClient.cpp:51
void enqueueThirdParty(QString by_call, QString from_call, QString text)
Enqueue a third-party message frame for APRS-IS.
Definition APRSISClient.cpp:371
static QString replaceCallsignSuffixWithSSID(QString call, QString base)
Replace callsign suffix with SSID.
Definition APRSISClient.cpp:294
void messageReceived(QString from, QString to, QString message, QString messageId)
Emitted when a parsed APRS-IS message is received.
void enqueueMessageAck(QString from_call, QString to_call, QString messageId)
Enqueue a standard APRS message ACK frame.
Definition APRSISClient.cpp:392
static QString loginFrame(QString callsign, QString filter=QString())
Build an APRS-IS login frame.
Definition APRSISClient.cpp:101
void processQueue(bool disconnect=true)
Process the APRS-IS frame queue.
Definition APRSISClient.cpp:425
static QPair< float, float > grid2deg(QString grid)
Convert grid locator to degrees.
Definition APRSISClient.cpp:161
static QPair< QString, QString > grid2aprs(QString grid)
Convert grid locator to APRS format.
Definition APRSISClient.cpp:222
void setIncomingRelayEnabled(bool enabled)
Enable or disable persistent inbound message relay.
Definition APRSISClient.cpp:319
static quint32 hashCallsign(QString callsign)
Compute APRS-IS passcode for a callsign.
Definition APRSISClient.cpp:76
void enqueueRaw(QString aprsFrame)
Enqueue a raw APRS frame for APRS-IS.
Definition APRSISClient.cpp:416