From 0ab857c358035b1721875a8df6b036f6cef02dad Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 17:07:38 +0000 Subject: [PATCH 01/21] Add PipeEndPoint class, that both ChannelAPI and Feature can inherit from, to allow either to be used as pipe sources. Add MsgMapItem, MsgPacket and MsgTargetAzimuthElevation messages that can be passed between channels and features via pipes. --- plugins/feature/vorlocalizer/vorlocalizer.cpp | 4 +- sdrbase/CMakeLists.txt | 2 + sdrbase/channel/channelapi.cpp | 1 + sdrbase/channel/channelapi.h | 3 +- sdrbase/feature/feature.cpp | 13 ++ sdrbase/feature/feature.h | 5 +- sdrbase/maincore.cpp | 3 + sdrbase/maincore.h | 87 ++++++++++- sdrbase/pipes/messagepipes.cpp | 7 +- sdrbase/pipes/messagepipes.h | 10 +- sdrbase/pipes/messagepipescommon.h | 4 +- sdrbase/pipes/messagepipesgcworker.cpp | 9 +- sdrbase/pipes/messagepipesgcworker.h | 4 +- sdrbase/pipes/pipeendpoint.cpp | 147 ++++++++++++++++++ sdrbase/pipes/pipeendpoint.h | 100 ++++++++++++ 15 files changed, 380 insertions(+), 19 deletions(-) create mode 100644 sdrbase/pipes/pipeendpoint.cpp create mode 100644 sdrbase/pipes/pipeendpoint.h diff --git a/plugins/feature/vorlocalizer/vorlocalizer.cpp b/plugins/feature/vorlocalizer/vorlocalizer.cpp index 220b5d7b7..a01a0cc82 100644 --- a/plugins/feature/vorlocalizer/vorlocalizer.cpp +++ b/plugins/feature/vorlocalizer/vorlocalizer.cpp @@ -244,8 +244,8 @@ bool VORLocalizer::handleMessage(const Message& cmd) qDebug() << "VORLocalizer::handleMessage: MsgReportChannelDeleted"; MessagePipesCommon::MsgReportChannelDeleted& report = (MessagePipesCommon::MsgReportChannelDeleted&) cmd; const MessagePipesCommon::ChannelRegistrationKey& channelKey = report.getChannelRegistrationKey(); - const ChannelAPI *channel = channelKey.m_key; - m_availableChannels.remove(const_cast(channel)); + const PipeEndPoint *channel = channelKey.m_key; + m_availableChannels.remove(const_cast(reinterpret_cast(channel))); updateChannels(); MessageQueue *messageQueue = MainCore::instance()->getMessagePipes().unregisterChannelToFeature(channel, this, "report"); disconnect(messageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleChannelMessageQueue(MessageQueue*))); diff --git a/sdrbase/CMakeLists.txt b/sdrbase/CMakeLists.txt index 1b163b135..87ba1431b 100644 --- a/sdrbase/CMakeLists.txt +++ b/sdrbase/CMakeLists.txt @@ -167,6 +167,7 @@ set(sdrbase_SOURCES pipes/messagepipes.cpp pipes/messagepipescommon.cpp pipes/messagepipesgcworker.cpp + pipes/pipeendpoint.cpp settings/featuresetpreset.cpp settings/preferences.cpp @@ -349,6 +350,7 @@ set(sdrbase_HEADERS pipes/messagepipes.h pipes/messagepipescommon.h pipes/messagepipesgcworker.h + pipes/pipeendpoint.h plugin/plugininterface.h plugin/pluginapi.h diff --git a/sdrbase/channel/channelapi.cpp b/sdrbase/channel/channelapi.cpp index 92fcccd1e..b16f8b4e1 100644 --- a/sdrbase/channel/channelapi.cpp +++ b/sdrbase/channel/channelapi.cpp @@ -19,6 +19,7 @@ #include "util/uid.h" #include "channelapi.h" +#include "maincore.h" ChannelAPI::ChannelAPI(const QString& uri, StreamType streamType) : m_streamType(streamType), diff --git a/sdrbase/channel/channelapi.h b/sdrbase/channel/channelapi.h index 6be93b38a..c9b984211 100644 --- a/sdrbase/channel/channelapi.h +++ b/sdrbase/channel/channelapi.h @@ -27,6 +27,7 @@ #include #include "export.h" +#include "pipes/pipeendpoint.h" class DeviceAPI; @@ -37,7 +38,7 @@ namespace SWGSDRangel class SWGChannelActions; } -class SDRBASE_API ChannelAPI { +class SDRBASE_API ChannelAPI : public PipeEndPoint { public: enum StreamType //!< This is the same enum as in PluginInterface { diff --git a/sdrbase/feature/feature.cpp b/sdrbase/feature/feature.cpp index 1e4940c32..51048ac4a 100644 --- a/sdrbase/feature/feature.cpp +++ b/sdrbase/feature/feature.cpp @@ -23,6 +23,7 @@ #include "SWGDeviceState.h" #include "feature.h" +#include "maincore.h" Feature::Feature(const QString& uri, WebAPIAdapterInterface *webAPIAdapterInterface) : m_webAPIAdapterInterface(webAPIAdapterInterface), @@ -45,6 +46,18 @@ void Feature::handleInputMessages() } } +void Feature::handlePipeMessageQueue(MessageQueue* messageQueue) +{ + Message* message; + + while ((message = messageQueue->pop()) != nullptr) + { + if (handleMessage(*message)) { + delete message; + } + } +} + int Feature::webapiRunGet( SWGSDRangel::SWGDeviceState& response, QString& errorMessage) const diff --git a/sdrbase/feature/feature.h b/sdrbase/feature/feature.h index 372419e21..aeac7a18f 100644 --- a/sdrbase/feature/feature.h +++ b/sdrbase/feature/feature.h @@ -25,6 +25,7 @@ #include #include "export.h" +#include "pipes/pipeendpoint.h" #include "util/messagequeue.h" class WebAPIAdapterInterface; @@ -40,7 +41,7 @@ namespace SWGSDRangel class SWGChannelSettings; } -class SDRBASE_API Feature : public QObject { +class SDRBASE_API Feature : public QObject, public PipeEndPoint { Q_OBJECT public: enum FeatureState { @@ -155,6 +156,8 @@ protected: protected slots: void handleInputMessages(); + void handlePipeMessageQueue(MessageQueue* messageQueue); + friend PipeEndPoint; private: QString m_name; //!< Unique identifier in a device set used for sorting may change depending on relative position in device set diff --git a/sdrbase/maincore.cpp b/sdrbase/maincore.cpp index 87cec9ae3..c84adfc0c 100644 --- a/sdrbase/maincore.cpp +++ b/sdrbase/maincore.cpp @@ -48,6 +48,9 @@ MESSAGE_CLASS_DEFINITION(MainCore::MsgDeleteFeature, Message) MESSAGE_CLASS_DEFINITION(MainCore::MsgChannelReport, Message) MESSAGE_CLASS_DEFINITION(MainCore::MsgChannelSettings, Message) MESSAGE_CLASS_DEFINITION(MainCore::MsgChannelDemodReport, Message) +MESSAGE_CLASS_DEFINITION(MainCore::MsgMapItem, Message) +MESSAGE_CLASS_DEFINITION(MainCore::MsgPacket, Message) +MESSAGE_CLASS_DEFINITION(MainCore::MsgTargetAzimuthElevation, Message) MainCore::MainCore() { diff --git a/sdrbase/maincore.h b/sdrbase/maincore.h index be6119abf..1de9ecd46 100644 --- a/sdrbase/maincore.h +++ b/sdrbase/maincore.h @@ -28,10 +28,10 @@ #include "util/message.h" #include "pipes/messagepipes.h" #include "pipes/datapipes.h" +#include "channel/channelapi.h" class DeviceSet; class FeatureSet; -class ChannelAPI; class Feature; class PluginManager; class MessageQueue; @@ -44,6 +44,8 @@ namespace SWGSDRangel { class SWGChannelReport; class SWGChannelSettings; + class SWGMapItem; + class SWGTargetAzimuthElevation; } class SDRBASE_API MainCore @@ -498,6 +500,89 @@ public: { } }; + // Message to Map feature to display an item on the map + class SDRBASE_API MsgMapItem : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const PipeEndPoint *getPipeSource() const { return m_pipeSource; } + SWGSDRangel::SWGMapItem *getSWGMapItem() const { return m_swgMapItem; } + + static MsgMapItem* create(const PipeEndPoint *pipeSource, SWGSDRangel::SWGMapItem *swgMapItem) + { + return new MsgMapItem(pipeSource, swgMapItem); + } + + private: + const PipeEndPoint *m_pipeSource; + SWGSDRangel::SWGMapItem *m_swgMapItem; + + MsgMapItem(const PipeEndPoint *pipeSource, SWGSDRangel::SWGMapItem *swgMapItem) : + Message(), + m_pipeSource(pipeSource), + m_swgMapItem(swgMapItem) + { } + }; + + // Message to pass received packets between channels and features + class SDRBASE_API MsgPacket : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const PipeEndPoint *getPipeSource() const { return m_pipeSource; } + QByteArray getPacket() const { return m_packet; } + QDateTime getDateTime() const { return m_dateTime; } + + static MsgPacket* create(const PipeEndPoint *pipeSource, QByteArray packet) + { + return new MsgPacket(pipeSource, packet, QDateTime::currentDateTime()); + } + + static MsgPacket* create(const PipeEndPoint *pipeSource, QByteArray packet, QDateTime dateTime) + { + return new MsgPacket(pipeSource, packet, dateTime); + } + + private: + const PipeEndPoint *m_pipeSource; + QByteArray m_packet; + QDateTime m_dateTime; + + MsgPacket(const PipeEndPoint *pipeSource, QByteArray packet, QDateTime dateTime) : + Message(), + m_pipeSource(pipeSource), + m_packet(packet), + m_dateTime(dateTime) + { + } + }; + + // Message to pass target azimuth and elevation between channels & features + class SDRBASE_API MsgTargetAzimuthElevation : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const PipeEndPoint *getPipeSource() const { return m_pipeSource; } + SWGSDRangel::SWGTargetAzimuthElevation *getSWGTargetAzimuthElevation() const { return m_swgTargetAzimuthElevation; } + + static MsgTargetAzimuthElevation* create(const PipeEndPoint *pipeSource, SWGSDRangel::SWGTargetAzimuthElevation *swgTargetAzimuthElevation) + { + return new MsgTargetAzimuthElevation(pipeSource, swgTargetAzimuthElevation); + } + + private: + const PipeEndPoint *m_pipeSource; + SWGSDRangel::SWGTargetAzimuthElevation *m_swgTargetAzimuthElevation; + + MsgTargetAzimuthElevation(const PipeEndPoint *pipeSource, SWGSDRangel::SWGTargetAzimuthElevation *swgTargetAzimuthElevation) : + Message(), + m_pipeSource(pipeSource), + m_swgTargetAzimuthElevation(swgTargetAzimuthElevation) + { } + }; + + + MainCore(); ~MainCore(); static MainCore *instance(); diff --git a/sdrbase/pipes/messagepipes.cpp b/sdrbase/pipes/messagepipes.cpp index 9f997d5da..7977bd011 100644 --- a/sdrbase/pipes/messagepipes.cpp +++ b/sdrbase/pipes/messagepipes.cpp @@ -21,6 +21,7 @@ #include "messagepipesgcworker.h" #include "messagepipes.h" +#include "pipeendpoint.h" MessagePipes::MessagePipes() { @@ -41,19 +42,19 @@ MessagePipes::~MessagePipes() } } -MessageQueue *MessagePipes::registerChannelToFeature(const ChannelAPI *source, Feature *feature, const QString& type) +MessageQueue *MessagePipes::registerChannelToFeature(const PipeEndPoint *source, Feature *feature, const QString& type) { return m_registrations.registerProducerToConsumer(source, feature, type); } -MessageQueue *MessagePipes::unregisterChannelToFeature(const ChannelAPI *source, Feature *feature, const QString& type) +MessageQueue *MessagePipes::unregisterChannelToFeature(const PipeEndPoint *source, Feature *feature, const QString& type) { MessageQueue *messageQueue = m_registrations.unregisterProducerToConsumer(source, feature, type); m_gcWorker->addMessageQueueToDelete(messageQueue); return messageQueue; } -QList* MessagePipes::getMessageQueues(const ChannelAPI *source, const QString& type) +QList* MessagePipes::getMessageQueues(const PipeEndPoint *source, const QString& type) { return m_registrations.getElements(source, type); } diff --git a/sdrbase/pipes/messagepipes.h b/sdrbase/pipes/messagepipes.h index 7b66f945d..0848adc13 100644 --- a/sdrbase/pipes/messagepipes.h +++ b/sdrbase/pipes/messagepipes.h @@ -29,7 +29,7 @@ #include "messagepipescommon.h" #include "elementpipesregistrations.h" -class ChannelAPI; +class PipeEndPoint; class Feature; class MessagePipesGCWorker; class MessageQueue; @@ -43,12 +43,12 @@ public: MessagePipes& operator=(const MessagePipes&) = delete; ~MessagePipes(); - MessageQueue *registerChannelToFeature(const ChannelAPI *source, Feature *feature, const QString& type); - MessageQueue *unregisterChannelToFeature(const ChannelAPI *source, Feature *feature, const QString& type); - QList* getMessageQueues(const ChannelAPI *source, const QString& type); + MessageQueue *registerChannelToFeature(const PipeEndPoint *source, Feature *feature, const QString& type); + MessageQueue *unregisterChannelToFeature(const PipeEndPoint *source, Feature *feature, const QString& type); + QList* getMessageQueues(const PipeEndPoint *source, const QString& type); private: - ElementPipesRegistrations m_registrations; + ElementPipesRegistrations m_registrations; QThread m_gcThread; //!< Garbage collector thread MessagePipesGCWorker *m_gcWorker; //!< Garbage collector diff --git a/sdrbase/pipes/messagepipescommon.h b/sdrbase/pipes/messagepipescommon.h index d51b05e50..42e7dbb2c 100644 --- a/sdrbase/pipes/messagepipescommon.h +++ b/sdrbase/pipes/messagepipescommon.h @@ -26,14 +26,14 @@ #include "util/message.h" #include "elementpipescommon.h" -class ChannelAPI; +class PipeEndPoint; class Feature; class MessageQueue; class SDRBASE_API MessagePipesCommon { public: - typedef ElementPipesCommon::RegistrationKey ChannelRegistrationKey; + typedef ElementPipesCommon::RegistrationKey ChannelRegistrationKey; /** Send this message to stakeholders when the garbage collector finds that a channel was deleted */ class SDRBASE_API MsgReportChannelDeleted : public Message { diff --git a/sdrbase/pipes/messagepipesgcworker.cpp b/sdrbase/pipes/messagepipesgcworker.cpp index 53b877022..572da409c 100644 --- a/sdrbase/pipes/messagepipesgcworker.cpp +++ b/sdrbase/pipes/messagepipesgcworker.cpp @@ -15,15 +15,20 @@ // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// +#include "channel/channelapi.h" #include "feature/feature.h" #include "util/messagequeue.h" #include "maincore.h" #include "messagepipescommon.h" #include "messagepipesgcworker.h" -bool MessagePipesGCWorker::MessagePipesGC::existsProducer(const ChannelAPI *channel) +bool MessagePipesGCWorker::MessagePipesGC::existsProducer(const PipeEndPoint *pipeEndPoint) { - return MainCore::instance()->existsChannel(channel); + // Not overly sure about casting to both types here, but currently safeish as the + // existing functions only use the pointer address - and I presume these + // may be pointers to deleted objects anyway? + return MainCore::instance()->existsChannel((const ChannelAPI *)pipeEndPoint) + || MainCore::instance()->existsFeature((const Feature *)pipeEndPoint); } bool MessagePipesGCWorker::MessagePipesGC::existsConsumer(const Feature *feature) diff --git a/sdrbase/pipes/messagepipesgcworker.h b/sdrbase/pipes/messagepipesgcworker.h index 0af0ecfde..5b9ce1543 100644 --- a/sdrbase/pipes/messagepipesgcworker.h +++ b/sdrbase/pipes/messagepipesgcworker.h @@ -50,10 +50,10 @@ public: bool isRunning() const { return m_running; } private: - class MessagePipesGC : public ElementPipesGC + class MessagePipesGC : public ElementPipesGC { private: - virtual bool existsProducer(const ChannelAPI *channelAPI); + virtual bool existsProducer(const PipeEndPoint *pipeEndPoint); virtual bool existsConsumer(const Feature *feature); virtual void sendMessageToConsumer(const MessageQueue *messageQueue, MessagePipesCommon::ChannelRegistrationKey key, Feature *feature); }; diff --git a/sdrbase/pipes/pipeendpoint.cpp b/sdrbase/pipes/pipeendpoint.cpp new file mode 100644 index 000000000..bf5ed4f2b --- /dev/null +++ b/sdrbase/pipes/pipeendpoint.cpp @@ -0,0 +1,147 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include +#include + +#include "dsp/dspengine.h" +#include "device/deviceset.h" +#include "channel/channelapi.h" +#include "feature/featureset.h" +#include "feature/feature.h" +#include "maincore.h" + +#include "pipeendpoint.h" + +MESSAGE_CLASS_DEFINITION(PipeEndPoint::MsgReportPipes, Message) + +QList PipeEndPoint::updateAvailablePipeSources(QString pipeName, QStringList pipeTypes, QStringList pipeURIs, Feature *destinationFeature) +{ + MainCore *mainCore = MainCore::instance(); + MessagePipes& messagePipes = mainCore->getMessagePipes(); + std::vector& deviceSets = mainCore->getDeviceSets(); + QHash availablePipes; + + int deviceIndex = 0; + for (std::vector::const_iterator it = deviceSets.begin(); it != deviceSets.end(); ++it, deviceIndex++) + { + DSPDeviceSourceEngine *deviceSourceEngine = (*it)->m_deviceSourceEngine; + DSPDeviceSinkEngine *deviceSinkEngine = (*it)->m_deviceSinkEngine; + + if (deviceSourceEngine || deviceSinkEngine) + { + for (int chi = 0; chi < (*it)->getNumberOfChannels(); chi++) + { + ChannelAPI *channel = (*it)->getChannelAt(chi); + int i = pipeURIs.indexOf(channel->getURI()); + + if (i >= 0) + { + if (!availablePipes.contains(channel)) + { + MessageQueue *messageQueue = messagePipes.registerChannelToFeature(channel, destinationFeature, pipeName); + QObject::connect( + messageQueue, + &MessageQueue::messageEnqueued, + destinationFeature, + [=](){ destinationFeature->handlePipeMessageQueue(messageQueue); }, + Qt::QueuedConnection + ); + } + + AvailablePipeSource availablePipe = + AvailablePipeSource{ + deviceSinkEngine != nullptr ? AvailablePipeSource::TX : AvailablePipeSource::RX, + deviceIndex, + chi, + channel, + pipeTypes.at(i) + }; + availablePipes[channel] = availablePipe; + } + } + } + } + + std::vector& featureSets = mainCore->getFeatureeSets(); + int featureIndex = 0; + for (std::vector::const_iterator it = featureSets.begin(); it != featureSets.end(); ++it, featureIndex++) + { + for (int fi = 0; fi < (*it)->getNumberOfFeatures(); fi++) + { + Feature *feature = (*it)->getFeatureAt(fi); + int i = pipeURIs.indexOf(feature->getURI()); + + if (i >= 0) + { + if (!availablePipes.contains(feature)) + { + MessageQueue *messageQueue = messagePipes.registerChannelToFeature(feature, destinationFeature, pipeName); + QObject::connect( + messageQueue, + &MessageQueue::messageEnqueued, + destinationFeature, + [=](){ destinationFeature->handlePipeMessageQueue(messageQueue); }, + Qt::QueuedConnection + ); + } + + AvailablePipeSource availablePipe = + AvailablePipeSource{ + AvailablePipeSource::Feature, + featureIndex, + fi, + feature, + pipeTypes.at(i) + }; + availablePipes[feature] = availablePipe; + } + } + } + + QList availablePipeList; + QHash::iterator it = availablePipes.begin(); + + for (; it != availablePipes.end(); ++it) { + availablePipeList.push_back(*it); + } + return availablePipeList; +} + +PipeEndPoint *PipeEndPoint::getPipeEndPoint(const QString name, const QList &availablePipeSources) +{ + QRegExp re("([TRF])([0-9]+):([0-9]+) ([a-zA-Z0-9]+)"); + if (re.exactMatch(name)) + { + QString type = re.capturedTexts()[1]; + int setIndex = re.capturedTexts()[2].toInt(); + int index = re.capturedTexts()[3].toInt(); + QString id = re.capturedTexts()[4]; + + QListIterator itr(availablePipeSources); + while (itr.hasNext()) { + AvailablePipeSource p = itr.next(); + if ((p.m_setIndex == setIndex) && (p.m_index == index) && (id == p.m_id)) + return p.m_source; + } + } + else + qDebug() << "PipeEndPoint::getPipeEndPoint: " << name << " is malformed"; + return nullptr; +} diff --git a/sdrbase/pipes/pipeendpoint.h b/sdrbase/pipes/pipeendpoint.h new file mode 100644 index 000000000..df510f3c4 --- /dev/null +++ b/sdrbase/pipes/pipeendpoint.h @@ -0,0 +1,100 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// Parent for ChannelAPI and Features, where either can be used. // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef SDRBASE_PIPES_PIPEENDPOINT_H_ +#define SDRBASE_PIPES_PIPEENDPOINT_H_ + +#include +#include +#include + +#include "util/message.h" +#include "export.h" + +class Feature; + +class SDRBASE_API PipeEndPoint { +public: + + // Used by pipe sinks (features) to record details about available pipe sources (channels or features) + struct AvailablePipeSource + { + enum {RX, TX, Feature} m_type; + int m_setIndex; + int m_index; + PipeEndPoint *m_source; + QString m_id; + + AvailablePipeSource() = default; + AvailablePipeSource(const AvailablePipeSource&) = default; + AvailablePipeSource& operator=(const AvailablePipeSource&) = default; + friend bool operator==(const AvailablePipeSource &lhs, const AvailablePipeSource &rhs) + { + return (lhs.m_type == rhs.m_type) + && (lhs.m_setIndex == rhs.m_setIndex) + && (lhs.m_source == rhs.m_source) + && (lhs.m_id == rhs.m_id); + } + + QString getTypeName() const + { + QStringList typeNames = {"R", "T", "F"}; + return typeNames[m_type]; + } + + // Name for use in GUI combo boxes and WebAPI + QString getName() const + { + QString type; + + return QString("%1%2:%3 %4").arg(getTypeName()) + .arg(m_setIndex) + .arg(m_index) + .arg(m_id); + } + }; + + class SDRBASE_API MsgReportPipes : public Message { + MESSAGE_CLASS_DECLARATION + + public: + QList& getAvailablePipes() { return m_availablePipes; } + + static MsgReportPipes* create() { + return new MsgReportPipes(); + } + + private: + QList m_availablePipes; + + MsgReportPipes() : + Message() + {} + }; + + +protected: + + // Utility functions for pipe sinks to manage list of sources + QList updateAvailablePipeSources(QString pipeName, QStringList pipeTypes, QStringList pipeURIs, Feature *destinationFeature); + PipeEndPoint *getPipeEndPoint(const QString name, const QList &availablePipeSources); + +}; + +#endif // SDRBASE_PIPES_PIPEENDPOINT_H_ From 41fca9d2fd297e37b6e2346c5449a5e2e77558f0 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 17:10:18 +0000 Subject: [PATCH 02/21] Fix spelling of radiansToDegrees. Add additional unit conversions. --- plugins/channelrx/demodvor/vordemodgui.cpp | 4 +- plugins/channelrx/demodvor/vordemodsink.cpp | 4 +- .../channelrx/demodvorsc/vordemodscsink.cpp | 4 +- .../feature/vorlocalizer/vorlocalizergui.cpp | 4 +- sdrbase/util/units.h | 138 +++++++++++++++++- 5 files changed, 145 insertions(+), 9 deletions(-) diff --git a/plugins/channelrx/demodvor/vordemodgui.cpp b/plugins/channelrx/demodvor/vordemodgui.cpp index 0bd14eff3..c512b82d3 100644 --- a/plugins/channelrx/demodvor/vordemodgui.cpp +++ b/plugins/channelrx/demodvor/vordemodgui.cpp @@ -384,8 +384,8 @@ static bool calcIntersectionPoint(float lat1, float lon1, float bearing1, float double lat3Rad = asin(sinLat1*cos(delta13)+cosLat1*sin(delta13)*cos(theta13)); double lon3Rad = lon1Rad + atan2(sin(theta13)*sin(delta13)*cosLat1, cos(delta13)-sinLat1*sin(lat3Rad)); - intersectLat = Units::radiansToDegress(lat3Rad); - intersectLon = Units::radiansToDegress(lon3Rad); + intersectLat = Units::radiansToDegrees(lat3Rad); + intersectLon = Units::radiansToDegrees(lon3Rad); return true; } diff --git a/plugins/channelrx/demodvor/vordemodsink.cpp b/plugins/channelrx/demodvor/vordemodsink.cpp index 272836971..0a2db5385 100644 --- a/plugins/channelrx/demodvor/vordemodsink.cpp +++ b/plugins/channelrx/demodvor/vordemodsink.cpp @@ -222,7 +222,7 @@ void VORDemodSink::processOneSample(Complex &ci) if (m_varGoertzel.size() == VORDEMOD_CHANNEL_SAMPLE_RATE - 1) { m_varGoertzel.goertzel(mag); - varPhase = Units::radiansToDegress(m_varGoertzel.phase()); + varPhase = Units::radiansToDegrees(m_varGoertzel.phase()); varMag = m_varGoertzel.mag(); m_varGoertzel.reset(); } @@ -245,7 +245,7 @@ void VORDemodSink::processOneSample(Complex &ci) if (m_refGoertzel.size() == VORDEMOD_CHANNEL_SAMPLE_RATE - 1) { m_refGoertzel.goertzel(phi); - float phaseDeg = Units::radiansToDegress(m_refGoertzel.phase()); + float phaseDeg = Units::radiansToDegrees(m_refGoertzel.phase()); double refMag = m_refGoertzel.mag(); int groupDelay = (301-1)/2; float filterPhaseShift = 360.0*30.0*groupDelay/VORDEMOD_CHANNEL_SAMPLE_RATE; diff --git a/plugins/channelrx/demodvorsc/vordemodscsink.cpp b/plugins/channelrx/demodvorsc/vordemodscsink.cpp index 5c31f63a2..46caad290 100644 --- a/plugins/channelrx/demodvorsc/vordemodscsink.cpp +++ b/plugins/channelrx/demodvorsc/vordemodscsink.cpp @@ -211,7 +211,7 @@ void VORDemodSCSink::processOneSample(Complex &ci) if (m_varGoertzel.size() == VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE - 1) { m_varGoertzel.goertzel(mag); - varPhase = Units::radiansToDegress(m_varGoertzel.phase()); + varPhase = Units::radiansToDegrees(m_varGoertzel.phase()); varMag = m_varGoertzel.mag(); m_varGoertzel.reset(); } @@ -234,7 +234,7 @@ void VORDemodSCSink::processOneSample(Complex &ci) if (m_refGoertzel.size() == VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE - 1) { m_refGoertzel.goertzel(phi); - float phaseDeg = Units::radiansToDegress(m_refGoertzel.phase()); + float phaseDeg = Units::radiansToDegrees(m_refGoertzel.phase()); double refMag = m_refGoertzel.mag(); int groupDelay = (301-1)/2; float filterPhaseShift = 360.0*30.0*groupDelay/VORDemodSCSettings::VORDEMOD_CHANNEL_SAMPLE_RATE; diff --git a/plugins/feature/vorlocalizer/vorlocalizergui.cpp b/plugins/feature/vorlocalizer/vorlocalizergui.cpp index c25048bbc..afe9792b4 100644 --- a/plugins/feature/vorlocalizer/vorlocalizergui.cpp +++ b/plugins/feature/vorlocalizer/vorlocalizergui.cpp @@ -376,8 +376,8 @@ static bool calcIntersectionPoint(float lat1, float lon1, float bearing1, float double lat3Rad = asin(sinLat1*cos(delta13)+cosLat1*sin(delta13)*cos(theta13)); double lon3Rad = lon1Rad + atan2(sin(theta13)*sin(delta13)*cosLat1, cos(delta13)-sinLat1*sin(lat3Rad)); - intersectLat = Units::radiansToDegress(lat3Rad); - intersectLon = Units::radiansToDegress(lon3Rad); + intersectLat = Units::radiansToDegrees(lat3Rad); + intersectLon = Units::radiansToDegrees(lon3Rad); return true; } diff --git a/sdrbase/util/units.h b/sdrbase/util/units.h index 4285f26e0..8faecc1fa 100644 --- a/sdrbase/util/units.h +++ b/sdrbase/util/units.h @@ -19,6 +19,10 @@ #define INCLUDE_UNITS_H #include +#include +#include +#include +#include #include "export.h" @@ -72,11 +76,143 @@ public: return degrees * ((float)M_PI) / 180.0f; } - static float radiansToDegress(float radians) + static float radiansToDegrees(float radians) { return radians * 180.0f / ((float)M_PI); } + static float fahrenheitToCelsius(float fahrenheit) + { + return (fahrenheit - 32.0f) * (5.0f/9.0f); + } + + static float celsiusToKelvin(float celsius) + { + return celsius + 273.15f; + } + + static float inchesToMilimetres(float inches) + { + return inches * 25.4f; + } + + static float milesToKilometres(float miles) + { + return miles * 1.60934f; + } + + static float degreesMinutesSecondsToDecimal(int degrees, int minutes, float seconds) + { + float dec = std::abs(degrees) + minutes * 1.0f/60.0f + seconds * 1.0f/(60.0f*60.0f); + if (degrees < 0) + return -dec; + else + return dec; + } + + static float hoursMinutesSecondsToDecimal(int hours, int minutes, float seconds) + { + return hours + minutes * 1.0f/60.0f + seconds * 1.0f/(60.0f*60.0f); + } + + static QString decimalDegreesToDegreeMinutesAndSeconds(float decimal, int secondsFieldWidth=5) + { + float v, d, m, s; + int neg; + + v = decimal; + neg = v < 0.0f; + v = fabs(v); + d = floor(v); + v -= d; + v *= 60.0; + m = floor(v); + v -= m; + v *= 60.0; + s = v; + return QString("%1%2%3%4'%5\"").arg(neg ? "-" : "").arg((int)d).arg(QChar(0xb0)).arg((int)m, 2, 10, QChar('0')).arg(s, secondsFieldWidth, 'f', 2, QChar('0')); + } + + static QString decimalDegreesToDegreesAndMinutes(float decimal) + { + float v, d, m; + int neg; + + v = decimal; + neg = v < 0.0f; + v = fabs(v); + d = floor(v); + v -= d; + v *= 60.0; + m = round(v); + return QString("%1%2%3%4'").arg(neg ? "-" : "").arg((int)d).arg(QChar(0xb0)).arg((int)m, 2, 10, QChar('0')); + } + + static QString decimalDegreesToDegrees(float decimal) + { + float v, d; + int neg; + + v = decimal; + neg = v < 0.0f; + v = fabs(v); + d = round(v); + return QString("%1%2%3").arg(neg ? "-" : "").arg((int)d).arg(QChar(0xb0)); + } + + static QString decimalHoursToHoursMinutesAndSeconds(float decimal, int precision=2) + { + float v, h, m, s; + + v = decimal; + v = fabs(v); + h = floor(v); + v -= h; + v *= 60.0; + m = floor(v); + v -= m; + v *= 60.0; + s = v; + return QString("%1h%2m%3s").arg((int)h).arg((int)m, 2, 10, QChar('0')).arg(s, 2, 'f', precision, QChar('0')); + } + + // Try to convert a string to latitude and longitude. Returns false if not recognised format. + // https://en.wikipedia.org/wiki/ISO_6709 specifies a standard syntax + // We support both decimal and DMS formats + static bool stringToLatitudeAndLongitude(const QString& string, float& latitude, float& longitude) + { + QRegExp decimal("(-?[0-9]+\\.[0-9]+) *,? *(-?[0-9]+\\.[0-9]+)"); + if (decimal.exactMatch(string)) + { + latitude = decimal.capturedTexts()[1].toFloat(); + longitude = decimal.capturedTexts()[2].toFloat(); + return true; + } + QRegExp dms(QString("([0-9]+)[%1d]([0-9]+)['m]([0-9]+(\\.[0-9]+)?)[\"s]([NS]) *,? *([0-9]+)[%1d]([0-9]+)['m]([0-9]+(\\.[0-9]+)?)[\"s]([EW])").arg(QChar(0xb0))); + if (dms.exactMatch(string)) + { + qDebug() << "Captured: " << dms.capturedTexts(); + float latD = dms.capturedTexts()[1].toFloat(); + float latM = dms.capturedTexts()[2].toFloat(); + float latS = dms.capturedTexts()[3].toFloat(); + bool north = dms.capturedTexts()[5] == "N"; + float lonD = dms.capturedTexts()[6].toFloat(); + float lonM = dms.capturedTexts()[7].toFloat(); + float lonS = dms.capturedTexts()[8].toFloat(); + bool east = dms.capturedTexts()[10] == "E"; + latitude = latD + latM/60.0 + latS/(60.0*60.0); + if (!north) + latitude = -latitude; + longitude = lonD + lonM/60.0 + lonS/(60.0*60.0); + if (!east) + longitude = -longitude; + qDebug() << "Lat " << latitude; + qDebug() << "Long " << longitude; + return true; + } + return false; + } + }; #endif // INCLUDE_UNITS_H From 1adfe3415cc14eeeba7cd880842ee21d5e9d8e33 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 17:11:21 +0000 Subject: [PATCH 03/21] Fix WebAPI settings for identThreshold and magDecAdjust --- plugins/channelrx/demodvor/vordemod.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/channelrx/demodvor/vordemod.cpp b/plugins/channelrx/demodvor/vordemod.cpp index d6dc16ce7..48efc60e5 100644 --- a/plugins/channelrx/demodvor/vordemod.cpp +++ b/plugins/channelrx/demodvor/vordemod.cpp @@ -473,10 +473,10 @@ void VORDemod::webapiFormatChannelSettings( swgVORDemodSettings->setStreamIndex(settings.m_streamIndex); } if (channelSettingsKeys.contains("identThreshold") || force) { - swgVORDemodSettings->setAudioMute(settings.m_identThreshold); + swgVORDemodSettings->setIdentThreshold(settings.m_identThreshold); } if (channelSettingsKeys.contains("magDecAdjust") || force) { - swgVORDemodSettings->setAudioMute(settings.m_magDecAdjust ? 1 : 0); + swgVORDemodSettings->setMagDecAdjust(settings.m_magDecAdjust ? 1 : 0); } } From 082904aa1763d7735516fea169e367ce66aaf598 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 17:12:14 +0000 Subject: [PATCH 04/21] Fix bit stuffing and SSID in packet modulator --- .../channeltx/modpacket/packetmodsource.cpp | 69 +++++++++++++++---- 1 file changed, 54 insertions(+), 15 deletions(-) diff --git a/plugins/channeltx/modpacket/packetmodsource.cpp b/plugins/channeltx/modpacket/packetmodsource.cpp index f4f8431d1..379600074 100644 --- a/plugins/channeltx/modpacket/packetmodsource.cpp +++ b/plugins/channeltx/modpacket/packetmodsource.cpp @@ -25,6 +25,7 @@ #include "util/crc.h" #include "util/messagequeue.h" #include "maincore.h" +#include "channel/channelapi.h" PacketModSource::PacketModSource() : m_channelSampleRate(48000), @@ -424,33 +425,56 @@ void PacketModSource::applyChannelSettings(int channelSampleRate, int channelFre } } +static bool ax25_ssid(QByteArray& b, int i, int len, uint8_t& ssid) +{ + if (b[i] == '-') + { + if (len > i + 1) + { + ssid = b[i+1] - '0'; + if ((len > i + 2) && isdigit(b[i+2])) { + ssid = (ssid*10) + (b[i+2] - '0'); + } + if (ssid >= 16) + { + qDebug() << "ax25_address: SSID greater than 15 not supported"; + ssid = ssid & 0xf; + return false; + } + else + { + return true; + } + } + else + { + qDebug() << "ax25_address: SSID number missing"; + return false; + } + } + else + return false; +} + static uint8_t *ax25_address(uint8_t *p, QString address, uint8_t crrl) { int len; int i; QByteArray b; - int ssid; + uint8_t ssid = 0; + bool hyphenSeen = false; len = address.length(); b = address.toUtf8(); ssid = 0; for (i = 0; i < 6; i++) { - if ((i < len) && (ssid == 0)) + if ((i < len) && !hyphenSeen) { if (b[i] == '-') { - if (len > i + 1) - { - ssid = b[i+1] - '0'; - if ((len > i + 2) && isdigit(b[i+2])) { - ssid = (ssid*10) + (b[i+1] - '0'); - } - if (ssid >= 16) - qDebug() << "ax25_address: SSID greater than 15 not supported"; - } - else - qDebug() << "ax25_address: SSID number missing"; + ax25_ssid(b, i, len, ssid); + hyphenSeen = true; *p++ = ' ' << 1; } else @@ -463,6 +487,10 @@ static uint8_t *ax25_address(uint8_t *p, QString address, uint8_t crrl) *p++ = ' ' << 1; } } + if (b[i] == '-') + { + ax25_ssid(b, i, len, ssid); + } *p++ = crrl | (ssid << 1); return p; @@ -534,6 +562,7 @@ void PacketModSource::addTXPacket(QString callsign, QString to, QString via, QSt { uint8_t packet[AX25_MAX_BYTES]; uint8_t *crc_start; + uint8_t *packet_end; uint8_t *p; crc16x25 crc; uint16_t crcValue; @@ -565,6 +594,7 @@ void PacketModSource::addTXPacket(QString callsign, QString to, QString via, QSt crcValue = crc.get(); *p++ = crcValue & 0xff; *p++ = (crcValue >> 8); + packet_end = p; // Flag for (int i = 0; i < std::min(m_settings.m_ax25PostFlags, AX25_MAX_FLAGS); i++) *p++ = AX25_FLAG; @@ -582,8 +612,17 @@ void PacketModSource::addTXPacket(QString callsign, QString to, QString via, QSt for (int j = 0; j < 8; j++) { int tx_bit = (packet[i] >> j) & 1; - // Stuff 0 if last 5 bits are 1s - if ((packet[i] != AX25_FLAG) && (m_last5Bits == 0x1f)) + // Stuff 0 if last 5 bits are 1s, unless transmitting flag + // Except for special case of when last 5 bits of CRC are 1s + if ( ( (packet[i] != AX25_FLAG) + || ( (&packet[i] >= crc_start) + && ( (&packet[i] < packet_end) + || ((&packet[i] == packet_end) && (j == 0)) + ) + ) + ) + && (m_last5Bits == 0x1f) + ) addBit(0); addBit(tx_bit); } From f2ebd720040d3ed8cc60540f845c77df75f007c1 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 17:15:32 +0000 Subject: [PATCH 05/21] ADS-B demodulator updates. Use message pipes for target. Send aircraft to Map feature. All selection of flight paths for all aircraft, or just the selected aircraft. Do not display demod stats by default. --- plugins/channelrx/demodadsb/adsbdemod.cpp | 26 ++ plugins/channelrx/demodadsb/adsbdemod.h | 7 +- plugins/channelrx/demodadsb/adsbdemodgui.cpp | 250 +++++++++++------- plugins/channelrx/demodadsb/adsbdemodgui.h | 24 +- plugins/channelrx/demodadsb/adsbdemodgui.ui | 32 ++- .../channelrx/demodadsb/adsbdemodsettings.cpp | 5 +- .../channelrx/demodadsb/adsbdemodsettings.h | 1 + plugins/channelrx/demodadsb/icons.qrc | 1 + .../demodadsb/icons/allflightpaths.png | Bin 0 -> 2025 bytes 9 files changed, 235 insertions(+), 111 deletions(-) create mode 100644 plugins/channelrx/demodadsb/icons/allflightpaths.png diff --git a/plugins/channelrx/demodadsb/adsbdemod.cpp b/plugins/channelrx/demodadsb/adsbdemod.cpp index 3cd87e795..41a1a6cb7 100644 --- a/plugins/channelrx/demodadsb/adsbdemod.cpp +++ b/plugins/channelrx/demodadsb/adsbdemod.cpp @@ -34,12 +34,14 @@ #include "SWGADSBDemodSettings.h" #include "SWGChannelReport.h" #include "SWGADSBDemodReport.h" +#include "SWGTargetAzimuthElevation.h" #include "dsp/dspengine.h" #include "dsp/dspcommands.h" #include "dsp/devicesamplemimo.h" #include "device/deviceapi.h" #include "util/db.h" +#include "maincore.h" #include "adsbdemod.h" #include "adsbdemodworker.h" @@ -471,3 +473,27 @@ void ADSBDemod::networkManagerFinished(QNetworkReply *reply) reply->deleteLater(); } + +void ADSBDemod::setTarget(const QString& name, float targetAzimuth, float targetElevation) +{ + m_targetAzimuth = targetAzimuth; + m_targetElevation = targetElevation; + m_targetAzElValid = true; + + // Send to Rotator Controllers + MessagePipes& messagePipes = MainCore::instance()->getMessagePipes(); + QList *mapMessageQueues = messagePipes.getMessageQueues(this, "target"); + if (mapMessageQueues) + { + QList::iterator it = mapMessageQueues->begin(); + + for (; it != mapMessageQueues->end(); ++it) + { + SWGSDRangel::SWGTargetAzimuthElevation *swgTarget = new SWGSDRangel::SWGTargetAzimuthElevation(); + swgTarget->setName(new QString(name)); + swgTarget->setAzimuth(targetAzimuth); + swgTarget->setElevation(targetElevation); + (*it)->push(MainCore::MsgTargetAzimuthElevation::create(this, swgTarget)); + } + } +} diff --git a/plugins/channelrx/demodadsb/adsbdemod.h b/plugins/channelrx/demodadsb/adsbdemod.h index 326831f62..104259541 100644 --- a/plugins/channelrx/demodadsb/adsbdemod.h +++ b/plugins/channelrx/demodadsb/adsbdemod.h @@ -119,12 +119,7 @@ public: m_basebandSink->setMessageQueueToGUI(queue); } - void setTarget(float targetAzimuth, float targetElevation) - { - m_targetAzimuth = targetAzimuth; - m_targetElevation = targetElevation; - m_targetAzElValid = true; - } + void setTarget(const QString& name, float targetAzimuth, float targetElevation); void clearTarget() { m_targetAzElValid = false; } uint32_t getNumberOfDeviceStreams() const; diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.cpp b/plugins/channelrx/demodadsb/adsbdemodgui.cpp index 8571c9f84..abd6963c2 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodgui.cpp @@ -29,6 +29,8 @@ #include #include +#include "SWGMapItem.h" + #include "ui_adsbdemodgui.h" #include "channel/channelwebapiutils.h" #include "plugin/pluginapi.h" @@ -148,6 +150,104 @@ static Real modulus(double x, double y) return x - y * std::floor(x/y); } +QString Aircraft::getImage() +{ + if (m_emitterCategory.length() > 0) + { + if (!m_emitterCategory.compare("Heavy")) + return QString("aircraft_4engine.png"); + else if (!m_emitterCategory.compare("Large")) + return QString("aircraft_2engine.png"); + else if (!m_emitterCategory.compare("Small")) + return QString("aircraft_2enginesmall.png"); + else if (!m_emitterCategory.compare("Rotorcraft")) + return QString("aircraft_helicopter.png"); + else if (!m_emitterCategory.compare("High performance")) + return QString("aircraft_fighter.png"); + else if (!m_emitterCategory.compare("Light") + || !m_emitterCategory.compare("Ultralight") + || !m_emitterCategory.compare("Glider/sailplane")) + return QString("aircraft_light.png"); + else if (!m_emitterCategory.compare("Space vehicle")) + return QString("aircraft_space.png"); + else if (!m_emitterCategory.compare("UAV")) + return QString("aircraft_drone.png"); + else if (!m_emitterCategory.compare("Emergency vehicle") + || !m_emitterCategory.compare("Service vehicle")) + return QString("truck.png"); + else + return QString("aircraft_2engine.png"); + } + else + return QString("aircraft_2engine.png"); +} + +QString Aircraft::getText(bool all) +{ + QStringList list; + if (m_flight.length() > 0) + { + list.append(QString("Flight: %1").arg(m_flight)); + } + else + { + list.append(QString("ICAO: %1").arg(m_icao, 1, 16)); + } + if (m_showAll || m_isHighlighted || all) + { + if (m_aircraftInfo != nullptr) + { + if (m_aircraftInfo->m_model.size() > 0) + { + list.append(QString("Aircraft: %1").arg(m_aircraftInfo->m_model)); + } + } + if (m_altitudeValid) + { + if (m_gui->useSIUints()) + list.append(QString("Altitude: %1 (m)").arg(Units::feetToIntegerMetres(m_altitude))); + else + list.append(QString("Altitude: %1 (ft)").arg(m_altitude)); + } + if (m_speedValid) + { + if (m_gui->useSIUints()) + list.append(QString("%1: %2 (kph)").arg(m_speedTypeNames[m_speedType]).arg(Units::knotsToIntegerKPH(m_speed))); + else + list.append(QString("%1: %2 (kn)").arg(m_speedTypeNames[m_speedType]).arg(m_speed)); + } + if (m_verticalRateValid) + { + QString desc; + Real rate; + QString units; + + if (m_gui->useSIUints()) + { + rate = Units::feetPerMinToIntegerMetresPerSecond(m_verticalRate); + units = QString("m/s"); + } + else + { + rate = m_verticalRate; + units = QString("ft/min"); + } + if (m_verticalRate == 0) + desc = "Level flight"; + else if (rate > 0) + desc = QString("Climbing: %1 (%2)").arg(rate).arg(units); + else + desc = QString("Descending: %1 (%2)").arg(rate).arg(units); + list.append(QString(desc)); + } + if ((m_status.length() > 0) && m_status.compare("No emergency")) + { + list.append(m_status); + } + } + return list.join("\n"); +} + QVariant AircraftModel::data(const QModelIndex &index, int role) const { int row = index.row(); @@ -170,101 +270,12 @@ QVariant AircraftModel::data(const QModelIndex &index, int role) const else if (role == AircraftModel::adsbDataRole) { // Create the text to go in the bubble next to the aircraft - QStringList list; - if (m_aircrafts[row]->m_flight.length() > 0) - { - list.append(QString("Flight: %1").arg(m_aircrafts[row]->m_flight)); - } - else - { - list.append(QString("ICAO: %1").arg(m_aircrafts[row]->m_icao, 1, 16)); - } - if (m_aircrafts[row]->m_showAll || m_aircrafts[row]->m_isHighlighted) - { - if (m_aircrafts[row]->m_aircraftInfo != nullptr) - { - if (m_aircrafts[row]->m_aircraftInfo->m_model.size() > 0) - { - list.append(QString("Aircraft: %1").arg(m_aircrafts[row]->m_aircraftInfo->m_model)); - } - } - if (m_aircrafts[row]->m_altitudeValid) - { - if (m_aircrafts[row]->m_gui->useSIUints()) - list.append(QString("Altitude: %1 (m)").arg(Units::feetToIntegerMetres(m_aircrafts[row]->m_altitude))); - else - list.append(QString("Altitude: %1 (ft)").arg(m_aircrafts[row]->m_altitude)); - } - if (m_aircrafts[row]->m_speedValid) - { - if (m_aircrafts[row]->m_gui->useSIUints()) - list.append(QString("%1: %2 (kph)").arg(m_aircrafts[row]->m_speedTypeNames[m_aircrafts[row]->m_speedType]).arg(Units::knotsToIntegerKPH(m_aircrafts[row]->m_speed))); - else - list.append(QString("%1: %2 (kn)").arg(m_aircrafts[row]->m_speedTypeNames[m_aircrafts[row]->m_speedType]).arg(m_aircrafts[row]->m_speed)); - } - if (m_aircrafts[row]->m_verticalRateValid) - { - QString desc; - Real rate; - QString units; - - if (m_aircrafts[row]->m_gui->useSIUints()) - { - rate = Units::feetPerMinToIntegerMetresPerSecond(m_aircrafts[row]->m_verticalRate); - units = QString("m/s"); - } - else - { - rate = m_aircrafts[row]->m_verticalRate; - units = QString("ft/min"); - } - if (m_aircrafts[row]->m_verticalRate == 0) - desc = "Level flight"; - else if (rate > 0) - desc = QString("Climbing: %1 (%2)").arg(rate).arg(units); - else - desc = QString("Descending: %1 (%2)").arg(rate).arg(units); - list.append(QString(desc)); - } - if ((m_aircrafts[row]->m_status.length() > 0) && m_aircrafts[row]->m_status.compare("No emergency")) - { - list.append(m_aircrafts[row]->m_status); - } - } - QString data = list.join("\n"); - return QVariant::fromValue(data); + return QVariant::fromValue(m_aircrafts[row]->getText()); } else if (role == AircraftModel::aircraftImageRole) { // Select an image to use for the aircraft - if (m_aircrafts[row]->m_emitterCategory.length() > 0) - { - if (!m_aircrafts[row]->m_emitterCategory.compare("Heavy")) - return QVariant::fromValue(QString("aircraft_4engine.png")); - else if (!m_aircrafts[row]->m_emitterCategory.compare("Large")) - return QVariant::fromValue(QString("aircraft_2engine.png")); - else if (!m_aircrafts[row]->m_emitterCategory.compare("Small")) - return QVariant::fromValue(QString("aircraft_2enginesmall.png")); - else if (!m_aircrafts[row]->m_emitterCategory.compare("Rotorcraft")) - return QVariant::fromValue(QString("aircraft_helicopter.png")); - else if (!m_aircrafts[row]->m_emitterCategory.compare("High performance")) - return QVariant::fromValue(QString("aircraft_fighter.png")); - else if (!m_aircrafts[row]->m_emitterCategory.compare("Light") - || !m_aircrafts[row]->m_emitterCategory.compare("Ultralight") - || !m_aircrafts[row]->m_emitterCategory.compare("Glider/sailplane")) - return QVariant::fromValue(QString("aircraft_light.png")); - else if (!m_aircrafts[row]->m_emitterCategory.compare("Space vehicle")) - return QVariant::fromValue(QString("aircraft_space.png")); - else if (!m_aircrafts[row]->m_emitterCategory.compare("UAV")) - return QVariant::fromValue(QString("aircraft_drone.png")); - else if (!m_aircrafts[row]->m_emitterCategory.compare("Emergency vehicle") - || !m_aircrafts[row]->m_emitterCategory.compare("Service vehicle")) - return QVariant::fromValue(QString("truck.png")); - else - return QVariant::fromValue(QString("aircraft_2engine.png")); - } - else - return QVariant::fromValue(QString("aircraft_2engine.png")); + return QVariant::fromValue(m_aircrafts[row]->getImage()); } else if (role == AircraftModel::bubbleColourRole) { @@ -280,7 +291,7 @@ QVariant AircraftModel::data(const QModelIndex &index, int role) const } else if (role == AircraftModel::aircraftPathRole) { - if (m_flightPaths) + if ((m_flightPaths && m_aircrafts[row]->m_isHighlighted) || m_allFlightPaths) return m_aircrafts[row]->m_coordinates; else return QVariantList(); @@ -407,7 +418,7 @@ bool AirportModel::setData(const QModelIndex &index, const QVariant& value, int else if (idx == m_airports[row]->m_frequencies.size()) { // Set airport as target - m_gui->target(m_azimuth[row], m_elevation[row]); + m_gui->target(m_airports[row]->m_name, m_azimuth[row], m_elevation[row]); emit dataChanged(index, index); } return true; @@ -442,7 +453,29 @@ void ADSBDemodGUI::updatePosition(Aircraft *aircraft) aircraft->m_rangeItem->setText(QString::number(aircraft->m_range/1000.0, 'f', 1)); aircraft->m_azElItem->setText(QString("%1/%2").arg(std::round(aircraft->m_azimuth)).arg(std::round(aircraft->m_elevation))); if (aircraft == m_trackAircraft) - m_adsbDemod->setTarget(aircraft->m_azimuth, aircraft->m_elevation); + m_adsbDemod->setTarget(aircraft->targetName(), aircraft->m_azimuth, aircraft->m_elevation); + + // Send to Map feature + MessagePipes& messagePipes = MainCore::instance()->getMessagePipes(); + QList *mapMessageQueues = messagePipes.getMessageQueues(m_adsbDemod, "mapitems"); + if (mapMessageQueues) + { + QList::iterator it = mapMessageQueues->begin(); + + for (; it != mapMessageQueues->end(); ++it) + { + SWGSDRangel::SWGMapItem *swgMapItem = new SWGSDRangel::SWGMapItem(); + swgMapItem->setName(new QString(QString("%1").arg(aircraft->m_icao, 0, 16))); + swgMapItem->setLatitude(aircraft->m_latitude); + swgMapItem->setLongitude(aircraft->m_longitude); + swgMapItem->setImage(new QString(QString("qrc:///map/%1").arg(aircraft->getImage()))); + swgMapItem->setImageRotation(aircraft->m_heading); + swgMapItem->setText(new QString(aircraft->getText(true))); + + MainCore::MsgMapItem *msg = MainCore::MsgMapItem::create(m_adsbDemod, swgMapItem); + (*it)->push(msg); + } + } } // Called when we have lat & long from local decode and we need to check if it is in a valid range (<180nm/333km) @@ -1359,6 +1392,12 @@ void ADSBDemodGUI::on_flightPaths_clicked(bool checked) m_aircraftModel.setFlightPaths(checked); } +void ADSBDemodGUI::on_allFlightPaths_clicked(bool checked) +{ + m_settings.m_allFlightPaths = checked; + m_aircraftModel.setAllFlightPaths(checked); +} + QString ADSBDemodGUI::getDataDir() { // Get directory to store app data in (aircraft & airport databases and user-definable icons) @@ -1633,7 +1672,7 @@ void ADSBDemodGUI::updateAirports() } // Set a static target, such as an airport -void ADSBDemodGUI::target(float az, float el) +void ADSBDemodGUI::target(const QString& name, float az, float el) { if (m_trackAircraft) { @@ -1642,7 +1681,7 @@ void ADSBDemodGUI::target(float az, float el) m_aircraftModel.aircraftUpdated(m_trackAircraft); m_trackAircraft = nullptr; } - m_adsbDemod->setTarget(az, el); + m_adsbDemod->setTarget(name, az, el); } void ADSBDemodGUI::targetAircraft(Aircraft *aircraft) @@ -1658,7 +1697,7 @@ void ADSBDemodGUI::targetAircraft(Aircraft *aircraft) // Track this aircraft m_trackAircraft = aircraft; if (aircraft->m_positionValid) - m_adsbDemod->setTarget(aircraft->m_azimuth, aircraft->m_elevation); + m_adsbDemod->setTarget(aircraft->targetName(), aircraft->m_azimuth, aircraft->m_elevation); // Change colour of new target aircraft->m_isTarget = true; m_aircraftModel.aircraftUpdated(aircraft); @@ -1922,6 +1961,8 @@ void ADSBDemodGUI::displaySettings() ui->flightPaths->setChecked(m_settings.m_flightPaths); m_aircraftModel.setFlightPaths(m_settings.m_flightPaths); + ui->allFlightPaths->setChecked(m_settings.m_allFlightPaths); + m_aircraftModel.setAllFlightPaths(m_settings.m_allFlightPaths); displayStreamIndex(); @@ -2035,6 +2076,21 @@ void ADSBDemodGUI::tick() ui->adsbData->removeRow(aircraft->m_icaoItem->row()); // Remove aircraft from hash i = m_aircraft.erase(i); + // Remove from map feature + MessagePipes& messagePipes = MainCore::instance()->getMessagePipes(); + QList *mapMessageQueues = messagePipes.getMessageQueues(m_adsbDemod, "mapitems"); + if (mapMessageQueues) + { + QList::iterator it = mapMessageQueues->begin(); + for (; it != mapMessageQueues->end(); ++it) + { + SWGSDRangel::SWGMapItem *swgMapItem = new SWGSDRangel::SWGMapItem(); + swgMapItem->setName(new QString(QString("%1").arg(aircraft->m_icao, 0, 16))); + swgMapItem->setImage(new QString("")); + MainCore::MsgMapItem *msg = MainCore::MsgMapItem::create(m_adsbDemod, swgMapItem); + (*it)->push(msg); + } + } // And finally free its memory delete aircraft; } diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.h b/plugins/channelrx/demodadsb/adsbdemodgui.h index 512dd8ed7..352fc926d 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.h +++ b/plugins/channelrx/demodadsb/adsbdemodgui.h @@ -34,6 +34,7 @@ #include "util/azel.h" #include "util/movingaverage.h" #include "util/httpdownloadmanager.h" +#include "maincore.h" #include "adsbdemodsettings.h" #include "ourairportsdb.h" @@ -207,6 +208,19 @@ struct Aircraft { m_correlationItem = new QTableWidgetItem(); m_rssiItem = new QTableWidgetItem(); } + + QString getImage(); + QString getText(bool all=false); + + // Name to use when selected as a target + QString targetName() + { + if (!m_flight.isEmpty()) + return QString("Flight: %1").arg(m_flight); + else + return QString("ICAO: %1").arg(m_icao, 0, 16); + } + }; // Aircraft data model used by QML map item @@ -300,9 +314,16 @@ public: allAircraftUpdated(); } + void setAllFlightPaths(bool allFlightPaths) + { + m_allFlightPaths = allFlightPaths; + allAircraftUpdated(); + } + private: QList m_aircrafts; bool m_flightPaths; + bool m_allFlightPaths; }; // Airport data model used by QML map item @@ -445,7 +466,7 @@ public: virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } void highlightAircraft(Aircraft *aircraft); void targetAircraft(Aircraft *aircraft); - void target(float az, float el); + void target(const QString& name, float az, float el); bool setFrequency(float frequency); bool useSIUints() { return m_settings.m_siUnits; } @@ -547,6 +568,7 @@ private slots: void on_getOSNDB_clicked(); void on_getAirportDB_clicked(); void on_flightPaths_clicked(bool checked); + void on_allFlightPaths_clicked(bool checked); void onWidgetRolled(QWidget* widget, bool rollDown); void onMenuDialogCalled(const QPoint& p); void handleInputMessages(); diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.ui b/plugins/channelrx/demodadsb/adsbdemodgui.ui index 95886ee4e..5a0a8d312 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.ui +++ b/plugins/channelrx/demodadsb/adsbdemodgui.ui @@ -546,7 +546,7 @@ - Display flight paths + Display flight path for selected aircraft ^ @@ -563,6 +563,26 @@ + + + + Display flight paths for all aircraft + + + ^ + + + + :/icons/allflightpaths.png:/icons/allflightpaths.png + + + true + + + true + + + @@ -945,17 +965,17 @@ QWidget
QtQuickWidgets/QQuickWidget
- - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
RollupWidget QWidget
gui/rollupwidget.h
1
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
LevelMeterSignalDB QWidget diff --git a/plugins/channelrx/demodadsb/adsbdemodsettings.cpp b/plugins/channelrx/demodadsb/adsbdemodsettings.cpp index c8edf7997..2f608063d 100644 --- a/plugins/channelrx/demodadsb/adsbdemodsettings.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodsettings.cpp @@ -53,10 +53,11 @@ void ADSBDemodSettings::resetToDefaults() m_airportMinimumSize = AirportType::Medium; m_displayHeliports = false; m_flightPaths = true; + m_allFlightPaths = false; m_siUnits = false; m_tableFontName = "Liberation Sans"; m_tableFontSize = 9; - m_displayDemodStats = true; + m_displayDemodStats = false; m_correlateFullPreamble = true; m_demodModeS = false; m_deviceIndex = -1; @@ -109,6 +110,7 @@ QByteArray ADSBDemodSettings::serialize() const s.writeBool(30, m_autoResizeTableColumns); s.writeS32(31, m_interpolatorPhaseSteps); s.writeFloat(32, m_interpolatorTapsPerPhase); + s.writeBool(33, m_allFlightPaths); for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) s.writeS32(100 + i, m_columnIndexes[i]); @@ -188,6 +190,7 @@ bool ADSBDemodSettings::deserialize(const QByteArray& data) d.readBool(30, &m_autoResizeTableColumns, false); d.readS32(31, &m_interpolatorPhaseSteps, 4); d.readFloat(32, &m_interpolatorTapsPerPhase, 3.5f); + d.readBool(33, &m_allFlightPaths, false); for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) d.readS32(100 + i, &m_columnIndexes[i], i); diff --git a/plugins/channelrx/demodadsb/adsbdemodsettings.h b/plugins/channelrx/demodadsb/adsbdemodsettings.h index 081e5934d..e3191632b 100644 --- a/plugins/channelrx/demodadsb/adsbdemodsettings.h +++ b/plugins/channelrx/demodadsb/adsbdemodsettings.h @@ -66,6 +66,7 @@ struct ADSBDemodSettings } m_airportMinimumSize; //!< What's the minimum size airport that should be displayed bool m_displayHeliports; //!< Whether to display heliports on the map bool m_flightPaths; //!< Whether to display flight paths + bool m_allFlightPaths; //!< Whether to display flight paths for all aircraft bool m_siUnits; //!< Uses m,kph rather than ft/knts QString m_tableFontName; //!< Font to use for table int m_tableFontSize; diff --git a/plugins/channelrx/demodadsb/icons.qrc b/plugins/channelrx/demodadsb/icons.qrc index 4bafcd1f5..6923f2feb 100644 --- a/plugins/channelrx/demodadsb/icons.qrc +++ b/plugins/channelrx/demodadsb/icons.qrc @@ -2,5 +2,6 @@ icons/aircraft.png icons/controltower.png + icons/allflightpaths.png diff --git a/plugins/channelrx/demodadsb/icons/allflightpaths.png b/plugins/channelrx/demodadsb/icons/allflightpaths.png new file mode 100644 index 0000000000000000000000000000000000000000..e75c45a8c0bc7ca6eb48745e87c00fe8b1c43cc3 GIT binary patch literal 2025 zcmbVN2~ZPP7>_WofQEM$? zTeafRidN8iQYx*eEl|Lg@hCWI2OT>V588p&sZhoWqo94^$k+~Tr|#_Td;8w^zW@Gr zYeIa~M3FY=dKjX#a(H=wTBv3eq@Ie-HEUIXfUyuRSpmGVqk7tMqp?V!ez_haGO9VRh9G(C`HVX=besOHxJ-%K~3=SkG|` zh9DM;MPLyNXmcil%49M`C_+RcK0xr7rkFq1e( zn>93T7ztFuh{}*iBtRkm<&;TFTi69J9UzrBN6KLkHIy#|cc2E9Vj>YHk*yd)sc9{x z%Nq?P2H_Qrpg^K%aSs1CoR+|JwAqLQ3n?R>Ng|9X6Nc=5!xXfEHUn`$9r4TSDup7! zOzS8E*kF^QmO!cqg%p)ZrF>x2ppt4erZTY{ZX!sPQVs)e2q;R6p#iu|D3eL}5&{+T z#ZpNiKS+v8`6MpZWd!Jifq_!d$ay7AF9|tgkWhMXTi;6cqVYv zf94nh^hRvOIb;Izck2fCUMl1fIOqO}b57OUg;r`>`XFHgpGX|44tuH}aZ&o38W zFS*xV<>fcA@M*W#i!$fBpycg`rmmU$d0NE$FPI~|!lJOXGoq?I*W70-8akD4YJF5S*2D@v+AYf1N!womqHa42=@;~V0Vy-$!KZ5N&MUSFKh zc(F5PdcAYM;N~Q_$tCp49dX~0oyBc2lb;J_o_`o{W_4qa_UZV$CAarDue`86*r`|8 z72uo|TKQnXdcp400w%J2M_h_-<2c{WZ*ObY`4GQOkr0Uu1&m)^>gL3^+~XRk$L(H` zw|qN`D(|~YI$G&>`b@1Rv*q%EP@gPK`Ofou6wkWntiKSJcy?YO)L{>pg8}QuwiL686ym=3cKW&a@ z&$Zw6?>y&(rC(d|z>kp+`1c;2d+M95Jvua19+4g^a@?IYec6ti<&7QL4abPFDSkb^ zbF4nCk2~sI_h;n0{w}~yE;jD;>`!ukw`q^t-8&_n;r;btIU7no{Bqa8qv%}kqbYB0 zX^#}FTS;WBIp+4lxm)$Mh1gKuwh^fczVhs~m9d-7y0zw2oLX?bIq0|9h1mOVT&}3E_a^9smFU literal 0 HcmV?d00001 From 931a63dc8b72d0fd065c333d6bebdf944ebc9bbc Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 19:44:53 +0000 Subject: [PATCH 06/21] GS-232 Controller updates. Update GS-232 controller to use message pipes for the target. Add field displaying the name of the target. Add azimuth and elevation offsets. Report worker thread errors to the GUI. --- doc/img/GS232Controller_plugin.png | Bin 16466 -> 16788 bytes doc/img/GS232Controller_plugin.xcf | Bin 56937 -> 74255 bytes .../gs232controller/gs232controller.cpp | 144 ++++++++---- .../feature/gs232controller/gs232controller.h | 27 ++- .../gs232controller/gs232controllergui.cpp | 215 ++++++------------ .../gs232controller/gs232controllergui.h | 11 +- .../gs232controller/gs232controllergui.ui | 187 ++++++++------- .../gs232controller/gs232controllerreport.h | 12 +- .../gs232controllersettings.cpp | 25 +- .../gs232controller/gs232controllersettings.h | 28 +-- .../gs232controller/gs232controllerworker.cpp | 113 ++++----- .../gs232controller/gs232controllerworker.h | 9 +- plugins/feature/gs232controller/readme.md | 49 ++-- 13 files changed, 417 insertions(+), 403 deletions(-) diff --git a/doc/img/GS232Controller_plugin.png b/doc/img/GS232Controller_plugin.png index a67064ab4a3f619af26cd0374ae1826e8c4fdae1..9dcef6887ea036de9d829106f5d24722bf1173c6 100644 GIT binary patch literal 16788 zcmZ|0b95cuA1@p>wi_pn?KDP{G)`mNw$V6^Z8mC*6Wg|J8;$i&pWnUrzjq}$>&#v! zGiT3ieDwXLASZzY{}~<(3=B!~`!_`}Fz{C3eIe{8;I+R;Nf>AdvJe$jkQ5aqv3ImH zwXik;1EY@fiR1s?tAH6SuT)6JKzK&76Pw4Qfr{mjs7fCYJfmtp-@RApH&s9?>EM8= zjez`4uS%$$>EdFK1=UTA%Ed(`hC_4RQ7}a|fKT+qeVN_s^#CqXHlPf$Ls#G!9s06s z*ilXUNq1Wm*5LWuuQX5E*3>{VpLHd!d7VfzkB2u6(n53AE-Lg%w)N^Tt}rt$hOAow zhaiI7V=880j(_ zxy$N5on|I%GON$2)@m1Xgnvnn75PkN%&s7Ygl+hD@jFXg-dj_sU*C1{FhxQcym&P9 zT%L&I>z3V>SA(gA=ZGx)fd4zr>N_qZM5|D%#p>o@!@2tt8b!rh`)*BaIFcqKMJ zM9*qhzl&PJ!_QGd{YS|Z#NoKtx*$b3cfou!S}@VZuB~+5#t8vA;-3WLmQSC!xuFI| z6WcEwF8w!}-&SYSHc_Mk9aFUOtvrCo^2tzI;v3kYvsV53ucWf+9HRVKE64~#?H8O2Ppp3icR`(Zqk{q4-7%bva zgxbGz7leIjmE!^zW}xpX!vC%a$*HE*DJY&&!|+7ATI-XIa%)iTbTF2d<~HHB@sOF8 z59SRE1>rBm9QF&NScn7_7E0vo-!TcQAr)`{;g8Du?*KMv3GTnppJcN7JW=i_1vbMqr+JyB6edBHd5@73izmhkN6>@)EiCqibd z`Imo4>fueAT-;bbkvjkD6kqE`Zc9sgAPmaydCOlB2vslR?d=l!^Q zQiWVbY!(zOw>&kNdrD^uMh&KUQ00}p+%k(W57r`S?xKJQQDsV_KfRivXT?1tcT|KWIx*kn4wPTAg=7B9bh z^;G&aiB#x4H3#)`M**qW+wHoddA3;$E%b7T*yF|)k|HNujRqRRUq6)_y4rTVWoiop z@A~?>T&t0>N7eSsm1`-2Mm%cTw7AlZ)_l?g( zI%mHSQp$D@^F_}i+6}|*9p&eYp?j=Sxm)){7`eA{f;gPaIedM(ZM*70*k)^vpz(HPY9W5dP8kgz-QRgwzED!by zGus!;`Lg~jz?c&8w%}Z;=^MC?G%iv4wflj_#fDsM8?N%OfOFeQDpzB=0|xuU0`9{) zYY0?DwABvD#PacnZOLr$HD}blQhX3-?Amv9*y_SB&|@&1Wi;3Wrb;fDx9IUtAEtr4 zW%Q>q8oSOnPJx^lu?Xyb6owqhtEtN4SoUk9S58paMt-?11HkL*V_<$lw7OKISZGXq<7V zbd66cl<<<6;e$n{^KZNbh>=q8|GZmq3}OwYIU0sn*Ah)lO$jL}VF+w?J(gyP-(;405u8k{clrvF( zWtPk0#Y*Cd#Qz$tW!oN{uSbMsIo}&{))S1t&dGVNMK}U>#GgLd7~Y)PJhto@=7Y_@;f@R zPb*uarBfJLydUiy(1LwnU&7G(%*SB+Xm)V990|y)@Rn^m2I!)^ryrrm1z7MO6)cq# z5)#0<-7Ye@g?j`(HTp#2Lb?ecribd!*u*lU3-Eq|8Qoe(vM(WRiH5i$+{*cx)^#Vu zaHZFU&{fm@#dTK6;JR_k->!RXb!*RzS!1)&<=>S?&6vyv?#}&Ox2DWO)m!Zt%s%%$ zaE8JU4-a=gA-kO|kwVEcH=XxhK@@xx?As~L6zoq(Z0TJDj830&wZp88ow3e$@*%Dv zd9M({P%cbZc@q$6|2ErXd?&+0NP)Yq+s@#$w5vso9Z42TO)mM+#p7=o8^TVzj03sDF&Awf zmRKX^^(M)V2gKtP6coXU(5?FKj;s(C4-9526H$rozc*8X_8Rl)-}+%v@0gn{!U(Hp z85KvC@KfgO=B$LdTA!^S?{1TSms0odoXaBE8_t*)yp1NmZe)`D@Ll)ntz6-Q!BTAY z6=-!-3b@bHB(9Cwz-%R2mB?8V;;Mc_r*GbJ?OOf_ls?R}q-wi%qVZ{?Ep6omGX~@J z=h;HHhkZ2J%5(*-r6L${a`mbaq4&%oR3P6v>(U}(ZAnSQ5c1}7u2h@WCz6`|f;N$( zEll@5J7Q^_DPb0Fkc>dT(qyH%qA&b@-fCN9_@L4P!7|kZ4!T6m1|I2~*PGv~so(_#1@=c%dDR}k1LX#0K*VbW zf2MOq!i=|D_4XuJkm7m&Q~Y5HA^E{?E~8sLy*4>|=qJop$i-QqE5)a(=5?rNA>TG` z*-tm;o?{i2UJYvkdoQrIyG)?}aERNyK&fg%t3HQ{iht*(L5dm1?99*74UE?8RSCou zp-`e6zq+TA-u9LZ10h<4qmP&K?ww^g&+!UT38eX@5_?NHV44|<9?=NS1}vTy82X(? z)f<;_8eJWdj!MOq1_W$vO7p_XE)P%EZQW@OA;RZj6W*|9TWyuGM{v__!5<0J`HByLmrlpWM_BSd2m2wV&-|+SE!h&EG@wNwiak zB`vl}R?fR4a0YF8FSa(Nlyz(ywNjRcS&QVw3P%i1CbTtDEtTe;4?Ux_6o1fyzE@Dk za$Jb{ta0V{&lOEF$`Gdu5LSTLkJ|s?pl9OPGc38p77s;Y0?UKrL~c6WFM39?`&C`b zX}6@SFc(t-p2oxsM3Jo3*6EX#&>D%qC`npG9(p%>_o})>DD3wQbI$I?w}^iR5xIv2 zbThe(&C>j!t!S#$9&)BdQIUf45iR8TW$NjqL<=UQ)qMQLCn1$ z{iRMrXVNE!=k~-U?ap9$*tEC$y8#-BDoCinH~SJ5YU20vTFTu3dCqr+sVmFbFG zk@_~yHarW~2pO(oHt(;eaa4K6I&wh=PJ0?zR$zcR;;8mo=F<=2^^{ z|6#i`g)kMHK5I6NBSYuQWbt^$d4Hout(%#)JnDdr%=PP`)sxR{758x!E{fAeY-3%u zM4S^NCm4AV={|it7|IGw!~;cLw<`h|JYV4pP)!xN8ga69pgvczJ05{V2@iPxE|UTW z1Al9Pk>HTLvdX7H2Re+)Ditf4GfW!f5_FzvpPrmi>YP6zLtv7Vropyrkb#v|*Wsa` z_IopQ0B1d#r&)WUnr6I7ZBc zA@|!ZhQpCPR&aO-X`|W)3-dL)_qW+5G{$#|gF4P<`Bm1r_yrR|`@DHIMB%30IPEV2 zOI1HTw_<+6guxU+()ka6*Hb*MRKI`954nVNzYyekuo=r=HE=f^)Kg%2gUx>X@d6@( zGS!NmG;_0G5jLI7mR(3j*0@i6*NP9(gpAUF(ro~%ebwxY?Z+cY+_6`5;{)G4QG*$vvW ze1>x!D}di(KA~}X_rvgJBYcn^Q8o6SN043q?aENN`M$b|lcqlnLMwjsh`u5YV1&*N za~_W~<$BDq{|v?_9VvS~i}vD+0GjDRn1{*fA=GHs3pLdPJwm0DoF%w#!4a9y#)|nm z;=sP3-cRGHf`$6`e>d7kkNdsn^)uz?MTZkpPb!2k4n9aI5c^uVM8g|XdufoQHUU3rcAfdaW|k>trpJpr33VpLSrmoHz!5U9^Ymn0Bb_V`=B zh@k@j_8%w=aR z%`vlorwB!DT{2Yer7r!@9A{|U=#d@fx?6(v`G1%=egGi!qydd)ca-B|6bJjRt@$Yp1uqO5>jpK<0*P` z^jyY7D3KReb;$C@!g@#7G_L57y8gRB7#sm{_Xc(NMrK+K+fK)3UnN(28R6!I_E6D1 z-f_e(@JMugNmcR`m>u_qQaM%@vUi0%<12ufy3yv5`ITIthvDe!?qH1B!^Ju~;$LKD}t29K_LcK4&x79f-nk6K7)0 zrE13P%VdCqdZTkyi6Ut5C91zE5^d~b+$yOb9Ov2`JDx56>etcER9=_v{Udr&q$n?y zXtMhcry*THz(sN)ry=8r2>ze^#fZW=p&I^%$l8jfanpV+kGgw#tHvthWqgjb)JD&1N9SaY*guI*8tl&x(ii zX5*dj@#zwN{V%c%P8%MJy)vGDbgN3qKPM#~UF|vP7R|Yvd%8Y%LKIH;CKhLFcf%ci zzAuy`qfi)>Bc5i_^&9Cr^}n%kyY*c%I`+tCY%?Tv4S==rC|6^4aOQh%RHpZI`>gje z93-&Wsaj?-l1TGb^$&Z*5wZYfm3W#rUs->luF%{f-PytHq@2}{;@v3~7P|EIOhJ40ioqj;<%gV(YVR9LI& zs7klFm6g!Q_HyCweeDJ+wZ?LLAUHZ)H%_c1$Z z3M;hYh7%2BZS2l8=rlSRBWQZl!!qhwQ#;T0Rrty+kv#)X7fr6;uuiKh-h7uFp#s2| zI!U9-6PY0U%kWXN*B5Upi=Qkv`Lk#+!?$MjwY3S-($cg$yzw%|7jAo!GzyYUf7i59 zbTiX97+X@iN<$cMq)o5h)|5qIrsc9L1+G_!+cEwgYQpcmP!&nhnGKFD${J6$E?33j zDTbElw{=}z&$F2qx2}E8Lzd|7@S zikH=vD)`G!>(i;m58xLV-|W=xg8DR;#-Zl9Vc_q}A?d2?VM79MkajAk*Ungqe`r!Lb4lU2JVj%^^NBW~^Sciw{**Z@O$FFY z1hr#xHS}5|0H}GS1Mj+ZWJ;8zTRN-;v1%@!o$G3E*6)Y*Vfy4ceuhvrS{p=IYkXY| zb)5MoDWJI*r7g$IFOoiaxVvN}Uu!(<*wBWuRv&4i)o^7;XZA9?Z^G;DFr3ilI@X!B z>!aPx4u*5d8y&pvH@c~LXrpx@@ov=iG~t!%yao1RSvlifm>gc;jH@SzO|N!6j#aL8 z<5xcZ!LUK+(6`PJkp|;>C0_p*)otwQGcWR(@q&)SqqhL#AhB`ht$Lpm8r>)WlzQPc zg^nh&`B&fXu>Yot@jR|Fny;aJykKL#qoP-#W$VN=n=12J2)1U+`#Ob$bm|=6z3BiV zB(S#LM%j4>x^4QTI2}%iEtWxEEhrGeEC1%gj>{_iMuQWjzi<+!n>ha^X?}c*!nGCu ztRM3QW4W{qBvxVN%r8l=Afzh!K3}CiZ(}Q7V$@HU)_dmsth-(okjv%E)%{CVZ-g z;$XPLhCOWb$Vx@b__196ex-lt!(0D(?IOA7@LGg+3%UH8zrBl_SKAi7Si&ZPr~##% z=}0wYv|f}13w`h~7cF=Fhx&uviSi$dYx*C(zcf?V#LbBhN?PB?CUH6sP@F6^>d&*Y ziRDurbCy|oQ!`mTSf}nE(=7!J$0zknR#sffz0HXS7GoTC`rx>)up{)G8`fhiw>X-> zQS2_(ngMcCtdocF4JHR=V+AQ=BjDpJ#4os+7bh#_I}Ww1uB5%{LjJI}ll zH-c7zr?YPt8|@hYIl5`T^ocRc_MmLh)!~*Oq`SQtTNXx{Y+vW+3Bwt?ZK*Z?uG5^(EDb;to#H?AP-!dHQTgtWCM^G1=YCOT1^0RObUa zLCbz`EKVzoykuU(FO%--Evu@!WUeBCN5Msky=LeB(9#rqqp*I$@V=y>dF%KJxyx-R zcNP*AMt*+Cb(IoT-2B)-FR;1R^ zFV5SvQvGpwxO|3YAn4li8S3%EM8oTb#vFT>loNdV&CcstdKVR}n zDPIiM?ejzPC`nSI&x`8cdz2QZPcLW1QO115aYXgoM^Dz?J z<)Wp#k(E6ZmueLYhdIaxd;Q6L|_0uHZ(@c(L zvWttLn3eps!Ul$n0Wt6{&&vU3wb9OOFhVoELCb-tm38Y|WotyP+hZT38UFTj4P<@? z{IkL1{BO5nhoxtarIeA*YtX4AE@6z-UCEZ+q8#BwrmWJRje82er-xaC(adZQ!dbSe z(<>(ffB7V60h|Ru{1%_e_P&wqxQ?=`_I|plHso?WQx}i=j0M8sxN5FG-z{)rnG(R^ z^t!i}%MoDE#1M{2V>WLj80DNGv|oxj>(cMc2gC&b2A0&>PUZ0njRht=w9#Pn`3+~lhGT2BZmFUG(bV-26zf5vE-jvvS}e{Y&WGSs33wdyB1 zRaXQ4LOXm)C1T_*>gE7uA0|M20A-%p^RM~I>1jV4nsWw=(ZD~Cz|inFHy;1it*84o zmIdAr;9&J(IygAE^ARc2Vqs9qpi+ICviXdUUs72~$;c>|iP+tR+S*CnzH}_90S%cE z6a>WxxKVkcp-s-m@!X^VL}G9|J3HUMe@CSfWp?IoT>yC?7)oD(g`f~K%7q9`NsOh@ zj589A-vCzbb7I$v7(h=@;nvS*$oN{R*#Pn|o3E{Fw)B3D#%?0IS2%<20122c(Lcrr zUI&-_3?J^$B0rvCw~t{B(eLtS0hgr?@q#hZpf?1Kn3$;r+)((ePai{gj4O1f9;O?N z^6I@BwGH>`%+O!`O7qu1EQS(4+JKbDU9b*wms=;&io+{zEBM1N64N~UGTfyIDC`l1=+fev)Y6)y$x<4gCKSPV=Qes0 zg@v(o6Bku8A|ZSc-hN5g@cSym)e6hMvu}PQl$1x>Bi@{ACgH(Bquf}Yw(uaNp%Dvg zdQH9tHr+x)kh<1%*AHJA5)mwaih9|;;&i_lj3wBYgbzph%>Ehaa}*qvoXqEs%@D)2 zcAr>4C1{I0tVPkqEme;4ATgQR$^v#L&nvm!JKVebyHP^B_w zvQpb)#Ze#KhK;W}xE{uYf;uL43%&LohCdmBrb5WuCy&GVO4C#-zZLZ>JIm zu=V>tDcJ_a=msXm^v=;RlY!4EZRMo&$P=HmdII~5wXoe}hz9X@WQ| zUcCY53CoH#E+k_{8$rhMM=KGC1EG)=p=@-m9bUD)moX;11Z`uYidJj9JdvJEo=Zh+ zd4fMTU3?H(8Oub1FRu;If=+1+Y&4Sm^sH#E$4m@9Db%O0CDOl2c6-W6-xf2Z_Mg~W z%ohJ%0kNd2sx%~{A2{WdJ37efk^0#PG;+Au$O-oc+UXl(cW;xT1!E%O4~RF2x2H^4smS7LHv?W?O27SC?8Z zrIfA!=nj9Yk@<(ZBbn{iL{O*`#xIxdo_{J8YWpwdS6dfT9+Q9>p*oD zrP2E})$uJYJe>R8wa^B9V|9r183!P`Sl37D>}HQ{-GpF}4x0h2?$sXUVg|Ni>#`S?%F4uboeU28F!JsMO*6~l`{$2YFR z4?mm0=i4_8jQ=N0rzeDWl{SW)2+67JWpmX_!D(VJrj!&at2!6Ud8sehsw>`-;fNBe359aQzwCX*vY04mf zs}9#`Ydo@6#E#rNomryIXv<#ImRQqPk;7b_X$(~IJEhUmNp}aTTV9$C_R*)gzj00S zqpe)}b*l7HzR5pjTjIjcTj4JEaW%3>v;sDFw$54Z{pr94$~J&_{Z=WE6uz4Kmk0Zl zv`DiY6JVO}L8|xc-n)}y125ecHz{bEH|Nt;j+&ZU+q~!wd?A8o&3yT{ynj4Hbsk^# zb5->8KF=y|eN}`ms4tgR!Q=DfqL zx6@R{dRoTFcr$N_*ZvQOhkrxpIcD$2%!eR{&^F3;$Y}vMEt_57rXbAZ`=6L^YK2f$ zW20zDJoX)Vc3GnR9>(xudfif*LfO?n?^S?Txc z$+1<+xN6NVJn6IMc|C{?mNlh@44VD?EbvB$^MdM4ga#Z(Mj4>W;#G%w^!Zt<%R{3; z#*peFSOa8U>m(J-G0oXJZRDeeyVM6c8Bb+=U(yWnDjDlK>mo&bpU?TvmS)CI<%cA4 zimG$_0*j5oY2@1&FMR!l!gM|ywtxTqXye^}&*?R1hYkPFTH4#F3TV{zjFobQ2nyEFIZR3-M7WUmv^O3x-u^%Y@=qic=eQK?MBQ${ep zts}Z4>X;4Eso>7s7gn=EHE=Zw|2Qd_3?tF<=2)(-7I4x578#eBIo9lS7?gBR>W?B^ z?0re;zzPMK4#?R+E&$_oHOT>0?0t%#n1xGdf6_0muTrNwyc@$~bcReu(=T`Sv@d>{ zKMw=QU38HhuoD)42i$K>%!;VkRBSBG#|#=i(y%_+g% zp+Op+?*n~Xd!^0uP0Gtl64XCA72tmmg?>LLPq%U8h0;HCDogXLFI1K^S)dq4n2&42 z-g*3mre25UNZ~W6fcGz7ziMPcb^p9O z+S%R36Yy^0#uL>!`~5WHuWwI=U&FtZ`sm%>^iwpw?0sMHDrLoN0PzVlV+TmaMeMEa z?4$p>y0K>LL_r>K_et*u2yeRo61O*B3U8X2ZhSHz-V*_8!a{xelLfJ8nBJGrL)7I`Nxk#7)?yB^%_`DstvonouMoJ|$LK z7-Om`;$_;`qf6(}^8-tH3lA-VmKcg-I3U9|k7WvQNxU zr)1WPx|)#;(WO@LQ9|Oluz(g7@A$X)}S3AFFM}b)&ANk zltrgQ0Kl)#I2lOtv`phRMX;EA^2B6eBv2~j{Ij!5{+uF(X$IGVMAXzJJ&3HwWJxK+ zG_kGMf@!O?(}f9!suMxJ?~IOb$216>j?TUw(hj%o`tLpreOAxP$A_q1>dELU@=_UT zL%~aT$d0WeeR~Rqtfxj*>Hqag>u)v;tKtuh94x6mS=PLMk z>%DnXqHOCKF4no*q!jJolyE%K7)}g}`qG0H(}L$sF7#pW=qLT-*XT!#OO;d_(ltPe zL$nEP4QXbM|rL3xl$wCv3tRj}7p-*cm*tA}GBY_gsvXR>Z7uNxbSbuZp&X-jp zsJ}^H%Gw}WoAp{Ni$%K+T_%LR%o-&xS9G*{RgqK58}4*hwCR$+X@D*n8uGWZm47a; z`3wp-e8SK(8&|Sgf?^4Rn7I>IX*WV2r*Nj^{Zfrk}bC;-hRNjb%U`{eaqBW25wqc(CWniLud29 zpu^|z_1pzOu}Qy%>QhJ)v$UZ6+=@RpfK9YJgT0zolRkEIuJiYG?skf%oxAicDx_Ry zPTX2mBdy{DFkK)-9bhyYV}Xscyuy-d@^8tX`?G@byGxbJ>QSYM9z<$hMEk_7R%QB3 zWMxT{GS_qCMemP5sTFo*A}j>DQ}wF&K8ML#jrd$~cg>UpV6OlcnO@(5CqVACUTt7F ztNRYb*^HErW|Q0rGu~V`WVKZAX-490%<2rFEqnHpR!uX!XzMy(WmKkY*9q6X4ET7L znPxh->;$}JjAx7iCiF$oQl8nOe{_i*!(USye*rY0L2jew6=2kT9_{cOn>``%QLZ83 zpzJt_Zhn)~Z~L#xeHCA~jr8Dc#b%KAh4h`;SL-K&hf_V+Nybu{Ea-#|_!r+*-pS_v zPweS3QglE6l7(wCTKh|A`S56(m3(3Jt*V+Uq0k|QM^RZ?HxOe7;ubb)!iT2xGluaG z73wbTve1fO8w-9X&O^JIoz8$~lh+lySj>{~)hPAHsoJh?ySe6RrlPG)IPF!_-@&%> zwJsf_q%f*CAk04t`RNYkl>jSdNP9CR*Bc=Ais6EkTuu55oE2JD*V(jeOkyr}W?UN* zR!ylM7Ps3M<#1=c;x)(7iS8asXv_rrvM|7NP&W4@Wip#mB`>RthT|#dHGF^ml4sog zQHZi%@GG8qWb`J&#LJ=`D?Ac9Lq0uIXeJ7d!B-j=OQM$5-+=s+9IlhTyX(V&&@9%{ z!^;NJ`O>;RQxPtQcm@_|W5V?RCOfpan17W6DEYhmIa|4?Dtz>sd+yg3d#TA>L=}b@RyQEWd4BZT(K7FWT?< zT8*k|@AoC?^;(nqg(^->-p^*3zmh1_YkAB%$Y=`Q({e5vUZkDvE?sM;&ehWA)ImmP zg=H>ea4zI<`t4@rH~I8OdB3M1ygn`SOb~YVapdo$dE2qFCCiZ*I1^mH{Z=Y+nSYuSdbj4>(?cBf!FG##l`Fes8YZT#9bboo+GM9No z1)1-BB8xYL-|N24YZieFZ`PJTU2-un>tflm@w_JCLA>=rm+Fs0hfp@#-g4!N>gX>n za5)8D2UaDrU~MWnN{-azk-c9Et(`@?b-D$e*1BKyo>L!TI(hno+0?+zTfCFp@w)o`4T~T)KB^&@zX;|s7~5jHiL1r^vcBn}L{rs9yWgl} zX0s#)Z))y6?IHTT@1?%yn$HNRn9@U&L(_rSlpm{r>zds0i9m6%ILSSH;Xbr=ElLq2& zY5oGxy#EWJC_+s{%qss}U+*wGWMu3&WHWFvk=)0^+)~hFX&%chIdauODwD~&zNyBb-gp85X0#-gRYK>Si4W>}Tpe@PlsNwziaZ;LPhZ=nQ zMzgY~Zg6c4cLzz@Xo&opNr%QC#^JuMc}V?rqdN z5H@JybtTPX#3AhX#UB z{5Q{5Q#R=`JE>Q`(^Q@Oz0p)A;|G?D#T~58~Uk-yMDo1C# z)7LxGA|`tGc~yehPz0jm!1Sby$>A)^Q|AQ;y2T-%HvxA}th^<%de1DWn|16COQR&}0IAr;Oti4yh7fIA0 z@6L+D*F;btAGCavM$6BH5Wp%Ho`OS1M{n|eVhu$m{EUj?;In-^(BB^y8w=)a+i-KO zN8J5b6$1zhRm?uoe_Mq9BQwGfRV1(>pTWB?GpG7zPQe3}&w#883S$4mDb!nN*sBXx=;`kv`+*s0XZt7&ZHa(uA#Z(1uB*B)M40A04guqL?i?f z5)wNH$FB!Z2!TuyVIbs_FCK-C24xWVW*eB*{U9tj?{uJm+N$O`O`U^En%`k<%&6TY zWMs6P%Rc~!*UWzJuX2Z-_S+CS-ZyZ-$$Er>knUTNq%K!n#;!ZNr+0mv_>_vf67fUh z&D@s2Lm$Me+K!!`ZMsGk3QJ0U0T!U^u}`-D5D=~6$#Mhk|C;NnO_O#{83re}z4g_R zL+Z3P9jIc#>QO@l$IW{1k_dm(?3B`EsmK$bW0oHU^_lc27xRFfxV$9IN~#x zK)Dj)RtV+SuXy@GGAUnBIjO@`YFas=iQJKAu!U}*9&a!S*2p{pQYIqGD38?Q6B0D) z%+bJjUC&UXqV%U$x6~+m?Q#-KsXA|eH5{KNclT(-vVwaH{CPvX_d^s^C*(b(zlT^~ zEb0Qm2tSB6xsvr!b-7c}t0U97iN12QgY@drGDd?nHq*RK|NdBSCIXF9%X$+f-OS_K zFlsa6i`RSe!{41ES_G@pp8hE-%deafF<9yHD@CT4l$2ca`*{08K~b-sa`+3=k+oI3 zsfRv({Fp^zz0$L{AqWZC82=3U`uYkVW9`Xh%DdjC#Rrn_j#@@ZWaj&KBIsGW5Wg1U z`*-m$9pjD{Y1|Bmk6Re`XU@lMdvy*%ffew^HRy+fzY`T-|8Is{Y3pBxdyr^8t4u-s zL4S%SE0z6Icw9y6%WvQRqcZ4J3n6||5yBd@Bjt{S&j-2z0wi#vl}@2ahlybp5P zyzd3Ob`gwr2?lg=mEL5{Ti_{Tx+p%b&O4j87g2gUKL{^82sYMH?~129c$lz4;Oz_Z z2croU@NLvVnj3}_=m;a3%2FIpOVdWKg-Qki)(O}YTlL0@TN+YvXLh1BTArm1pBfPO zhRu``G^9#75GeFr3Jpif!G%oNjYch1#4|#5*f>9YyCPt7Eh!h|&d$~g!qx+C zuo=!lDeX^J#<{(!-s--i3nhLOLJsABF=~pfwdM$6$fRW&@`pIzW5(MkjSlpXpYOD!O|qA}eS1)PsiVUP)6 zTmN-FTz)>TN-S9Emu+^7*f)`5zHzm^Ct2OPqK3tZ4Vsth{4p}Er7hG3;YYvK?L|Au z(Pr4HC|yCuI^P|;yt@ZMNm# z`W-4|^m-GxmspcR5s_0IvV?FGYHY$xmr}`UAP!UXy6akZXVRaRHTmh5F=mss`0yEx z&z?PQI7+k_Cs(BED7tk8lSdN2c;A2s% zL(L_+Olp_gS0Aa;u11tyOQrk>I4%-au) z&G~7>iy9)@0i#jxCofUZDvqS|Pbagjg!QW=k67Gs5ETcmR3VmHvi8QAu)%DGEHz=; zUTfYiks}k4+hq=AeJO9dx9bgCcT-&$Sqgd~eNcfajj&bEK5KpAdU)k|9suNukSjAf z%H)U7AC_I#%oZ-{0l3I+!X~d1nc;C%t)Q=#|6jT!@y_aNNm$DpEIz>_C$5h8P=Iw3 z@o-z)?Dj2eO@h-3Bqb8P22$fXLT^IuGnl#~sTU~muxFV%l$pWUGMvH=kwaW7?l0zP z^7DBuOYmjYk;EE+zg^8ldHbJS!@=h~BgIt5h>)I$n7E~_V)Hg?>JrCr?*+c*DJpC7ofb)9xRoe5ItZr&T5q9e zys@|6>FQyH+A<5da8dO8$l94J$z8nnINsVft+E-cJnl}v%aV(26 zw#rhjQ&VZjOBoLnsE%s=43P)p1wEmUt&D*|0Kqz@o(0<>+LUHf7;SWyKF6;KZLcBs!U~oc!`>q2w%`Rxt*=66EYKg z;+;QcnXX)ZkJneWUdTRo}8!?@TAs6MD3c~Q?kx!A4F z8pj^0mAb@dD8!6VV+_(z*Wrv*;-Sm#$Cc4_R`qKSS9CCTMI{3r8r_^QLpL~ROdA-2 z)`@lFQ_SXtk4?`mlJ8Exq5cAt>{vB99Ua1b4~6*FbpIC_Ld$=C^m45Ug4tv?(!1;Z znMQ;4vIu|%sXoC3or0VUtZr{Kco#(!c?ry?ck~_;qyMo__3ACPJqAXc^gz|LQ+rYRu9vKM9nm693ghkpxm}fTqph zix1SGNhi~T>z^)EWb&`FmJ1m4KxN8NN%+!~BwUuo%Z5Ll0XU={DH@NBl09c#S0M;* z?BoUPeb4ekbjs|$%LNDvh;njF?jmfvO-ha5ryOoQ`293+h<(z*O@NY>y?PUIzg?f= z^zub|unZZ&6eK*pT*Q%*w$lC3a0kS4&!>_W7sytVQEZxTPWRTKPtXC~mVup{G(I$9 zUc8aA$sGmgrI2l2xrI}AR5ettIuHsEUspD?OYI&wTt*w4xnb@jrq3~xoJa?X;mg=O*;5TkxMw%#Q2 znU3KCkpM}+J7zub|H}^$ zu|`!_3mXJNLIe3zTQ|zrVfkW^s{{f(MI`QjTMCQd=v8W#t?@6`&MVOLZkm1!@q_0VPV$ zhmS83XW2)c>NnGqVtcAnf>4`o=&;Y=4{1X-n~C^^VnCT^Sbb9OlYI~MyD~5M>hx(p zA<2=CR38m$pU~>V25jy*uZPc@qnqEfpq|39gl)?)rR{gigTn`H{gubEH4mlyCIsNx zxqHC1nj!an{3ex-O0+XjuMZ|ECiksUL_gsF1BV+Vo&W#< literal 16466 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 literal 56937 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 Vj`C5w8T1s-XzJ}7c>3j`{|D4ajlKW? diff --git a/plugins/feature/gs232controller/gs232controller.cpp b/plugins/feature/gs232controller/gs232controller.cpp index 6efc567f2..57e182e81 100644 --- a/plugins/feature/gs232controller/gs232controller.cpp +++ b/plugins/feature/gs232controller/gs232controller.cpp @@ -20,33 +20,42 @@ #include #include #include +#include #include "SWGFeatureSettings.h" #include "SWGFeatureReport.h" #include "SWGFeatureActions.h" -#include "SWGSimplePTTReport.h" #include "SWGDeviceState.h" +#include "SWGTargetAzimuthElevation.h" #include "dsp/dspengine.h" +#include "device/deviceset.h" +#include "channel/channelapi.h" +#include "feature/featureset.h" +#include "maincore.h" -#include "gs232controllerworker.h" #include "gs232controller.h" +#include "gs232controllerworker.h" +#include "gs232controllerreport.h" MESSAGE_CLASS_DEFINITION(GS232Controller::MsgConfigureGS232Controller, Message) MESSAGE_CLASS_DEFINITION(GS232Controller::MsgStartStop, Message) +MESSAGE_CLASS_DEFINITION(GS232Controller::MsgReportWorker, Message) const char* const GS232Controller::m_featureIdURI = "sdrangel.feature.gs232controller"; const char* const GS232Controller::m_featureId = "GS232Controller"; GS232Controller::GS232Controller(WebAPIAdapterInterface *webAPIAdapterInterface) : - Feature(m_featureIdURI, webAPIAdapterInterface), - m_ptt(false) + Feature(m_featureIdURI, webAPIAdapterInterface) { qDebug("GS232Controller::GS232Controller: webAPIAdapterInterface: %p", webAPIAdapterInterface); setObjectName(m_featureId); - m_worker = new GS232ControllerWorker(webAPIAdapterInterface); + m_worker = new GS232ControllerWorker(); m_state = StIdle; m_errorMessage = "GS232Controller error"; + m_selectedPipe = nullptr; + connect(&m_updatePipesTimer, SIGNAL(timeout()), this, SLOT(updatePipes())); + m_updatePipesTimer.start(1000); } GS232Controller::~GS232Controller() @@ -105,21 +114,46 @@ bool GS232Controller::handleMessage(const Message& cmd) return true; } - else if (GS232ControllerSettings::MsgChannelIndexChange::match(cmd)) + else if (MsgReportWorker::match(cmd)) { - GS232ControllerSettings::MsgChannelIndexChange& cfg = (GS232ControllerSettings::MsgChannelIndexChange&) cmd; - int newChannelIndex = cfg.getIndex(); - qDebug() << "GS232Controller::handleMessage: MsgChannelIndexChange: " << newChannelIndex; - GS232ControllerSettings settings = m_settings; - settings.m_channelIndex = newChannelIndex; - applySettings(settings, false); - - if (getMessageQueueToGUI()) + MsgReportWorker& report = (MsgReportWorker&) cmd; + if (report.getMessage() == "Connected") + m_state = StRunning; + else if (report.getMessage() == "Disconnected") + m_state = StIdle; + else { - GS232ControllerSettings::MsgChannelIndexChange *msg = new GS232ControllerSettings::MsgChannelIndexChange(cfg); - getMessageQueueToGUI()->push(msg); + m_state = StError; + m_errorMessage = report.getMessage(); + } + return true; + } + else if (MainCore::MsgTargetAzimuthElevation::match(cmd)) + { + // New target from another plugin + if ((m_state == StRunning) && m_settings.m_track) + { + MainCore::MsgTargetAzimuthElevation& msg = (MainCore::MsgTargetAzimuthElevation&) cmd; + // Is it from the selected pipe? + if (msg.getPipeSource() == m_selectedPipe) + { + if (getMessageQueueToGUI()) + { + // Forward to GUI - which will then send us updated settings + getMessageQueueToGUI()->push(new MainCore::MsgTargetAzimuthElevation(msg)); + } + else + { + // No GUI, so save target - applySettings will propagate to worker + SWGSDRangel::SWGTargetAzimuthElevation *swgTarget = msg.getSWGTargetAzimuthElevation(); + m_settings.m_azimuth = swgTarget->getAzimuth(); + m_settings.m_elevation = swgTarget->getElevation(); + applySettings(m_settings); + } + } + else + qDebug() << "GS232Controller::handleMessage: No match " << msg.getPipeSource() << " " << m_selectedPipe; } - return true; } else @@ -128,6 +162,23 @@ bool GS232Controller::handleMessage(const Message& cmd) } } +void GS232Controller::updatePipes() +{ + QList availablePipes = updateAvailablePipeSources("target", GS232ControllerSettings::m_pipeTypes, GS232ControllerSettings::m_pipeURIs, this); + + if (availablePipes != m_availablePipes) + { + m_availablePipes = availablePipes; + if (getMessageQueueToGUI()) + { + MsgReportPipes *msgToGUI = MsgReportPipes::create(); + QList& msgAvailablePipes = msgToGUI->getAvailablePipes(); + msgAvailablePipes.append(availablePipes); + getMessageQueueToGUI()->push(msgToGUI); + } + } +} + QByteArray GS232Controller::serialize() const { return m_settings.serialize(); @@ -158,8 +209,7 @@ void GS232Controller::applySettings(const GS232ControllerSettings& settings, boo << " m_serialPort: " << settings.m_serialPort << " m_baudRate: " << settings.m_baudRate << " m_track: " << settings.m_track - << " m_deviceIndex: " << settings.m_deviceIndex - << " m_channelIndex: " << settings.m_channelIndex + << " m_target: " << settings.m_target << " m_title: " << settings.m_title << " m_rgbColor: " << settings.m_rgbColor << " m_useReverseAPI: " << settings.m_useReverseAPI @@ -186,11 +236,24 @@ void GS232Controller::applySettings(const GS232ControllerSettings& settings, boo if ((m_settings.m_track != settings.m_track) || force) { reverseAPIKeys.append("track"); } - if ((m_settings.m_deviceIndex != settings.m_deviceIndex) || force) { - reverseAPIKeys.append("deviceIndex"); + if ((m_settings.m_target != settings.m_target) + || (!settings.m_target.isEmpty() && (m_selectedPipe == nullptr)) // Change in available pipes + || force) + { + if (!settings.m_target.isEmpty()) + { + m_selectedPipe = getPipeEndPoint(settings.m_target, m_availablePipes); + if (m_selectedPipe == nullptr) + qDebug() << "GS232Controller::applySettings: No plugin corresponding to target " << settings.m_target; + } + + reverseAPIKeys.append("target"); } - if ((m_settings.m_channelIndex != settings.m_channelIndex) || force) { - reverseAPIKeys.append("channelIndex"); + if ((m_settings.m_azimuthOffset != settings.m_azimuthOffset) || force) { + reverseAPIKeys.append("azimuthOffset"); + } + if ((m_settings.m_elevationOffset != settings.m_elevationOffset) || force) { + reverseAPIKeys.append("elevationOffset"); } if ((m_settings.m_title != settings.m_title) || force) { reverseAPIKeys.append("title"); @@ -252,7 +315,6 @@ int GS232Controller::webapiSettingsPutPatch( MsgConfigureGS232Controller *msg = MsgConfigureGS232Controller::create(settings, force); m_inputMessageQueue.push(msg); - qDebug("GS232Controller::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue); if (m_guiMessageQueue) // forward to GUI if any { MsgConfigureGS232Controller *msgToGUI = MsgConfigureGS232Controller::create(settings, force); @@ -273,8 +335,8 @@ void GS232Controller::webapiFormatFeatureSettings( response.getGs232ControllerSettings()->setSerialPort(new QString(settings.m_serialPort)); response.getGs232ControllerSettings()->setBaudRate(settings.m_baudRate); response.getGs232ControllerSettings()->setTrack(settings.m_track); - response.getGs232ControllerSettings()->setDeviceIndex(settings.m_deviceIndex); - response.getGs232ControllerSettings()->setChannelIndex(settings.m_channelIndex); + response.getGs232ControllerSettings()->setAzimuthOffset(settings.m_azimuthOffset); + response.getGs232ControllerSettings()->setElevationOffset(settings.m_elevationOffset); if (response.getGs232ControllerSettings()->getTitle()) { *response.getGs232ControllerSettings()->getTitle() = settings.m_title; @@ -292,8 +354,6 @@ void GS232Controller::webapiFormatFeatureSettings( } response.getGs232ControllerSettings()->setReverseApiPort(settings.m_reverseAPIPort); - response.getGs232ControllerSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIFeatureSetIndex); - response.getGs232ControllerSettings()->setReverseApiChannelIndex(settings.m_reverseAPIFeatureIndex); } void GS232Controller::webapiUpdateFeatureSettings( @@ -316,11 +376,14 @@ void GS232Controller::webapiUpdateFeatureSettings( if (featureSettingsKeys.contains("track")) { settings.m_track = response.getGs232ControllerSettings()->getTrack() != 0; } - if (featureSettingsKeys.contains("deviceIndex")) { - settings.m_deviceIndex = response.getGs232ControllerSettings()->getDeviceIndex(); + if (featureSettingsKeys.contains("target")) { + settings.m_target = *response.getGs232ControllerSettings()->getTarget(); } - if (featureSettingsKeys.contains("channelIndex")) { - settings.m_channelIndex = response.getGs232ControllerSettings()->getChannelIndex(); + if (featureSettingsKeys.contains("azimuthOffset")) { + settings.m_azimuthOffset = response.getGs232ControllerSettings()->getAzimuthOffset(); + } + if (featureSettingsKeys.contains("elevationOffset")) { + settings.m_elevationOffset = response.getGs232ControllerSettings()->getElevationOffset(); } if (featureSettingsKeys.contains("title")) { settings.m_title = *response.getGs232ControllerSettings()->getTitle(); @@ -337,12 +400,6 @@ void GS232Controller::webapiUpdateFeatureSettings( if (featureSettingsKeys.contains("reverseAPIPort")) { settings.m_reverseAPIPort = response.getGs232ControllerSettings()->getReverseApiPort(); } - if (featureSettingsKeys.contains("reverseAPIDeviceIndex")) { - settings.m_reverseAPIFeatureSetIndex = response.getGs232ControllerSettings()->getReverseApiDeviceIndex(); - } - if (featureSettingsKeys.contains("reverseAPIChannelIndex")) { - settings.m_reverseAPIFeatureIndex = response.getGs232ControllerSettings()->getReverseApiChannelIndex(); - } } void GS232Controller::webapiReverseSendSettings(QList& featureSettingsKeys, const GS232ControllerSettings& settings, bool force) @@ -371,11 +428,14 @@ void GS232Controller::webapiReverseSendSettings(QList& featureSettingsK if (featureSettingsKeys.contains("track") || force) { swgGS232ControllerSettings->setTrack(settings.m_track); } - if (featureSettingsKeys.contains("deviceIndex") || force) { - swgGS232ControllerSettings->setDeviceIndex(settings.m_deviceIndex); + if (featureSettingsKeys.contains("target") || force) { + swgGS232ControllerSettings->setTarget(new QString(settings.m_target)); } - if (featureSettingsKeys.contains("channelIndex") || force) { - swgGS232ControllerSettings->setChannelIndex(settings.m_channelIndex); + if (featureSettingsKeys.contains("azimuthOffset") || force) { + swgGS232ControllerSettings->setAzimuthOffset(settings.m_azimuthOffset); + } + if (featureSettingsKeys.contains("elevationOffset") || force) { + swgGS232ControllerSettings->setElevationOffset(settings.m_elevationOffset); } if (featureSettingsKeys.contains("title") || force) { swgGS232ControllerSettings->setTitle(new QString(settings.m_title)); diff --git a/plugins/feature/gs232controller/gs232controller.h b/plugins/feature/gs232controller/gs232controller.h index 124b5942b..3d2c9b811 100644 --- a/plugins/feature/gs232controller/gs232controller.h +++ b/plugins/feature/gs232controller/gs232controller.h @@ -21,6 +21,7 @@ #include #include +#include #include "feature/feature.h" #include "util/message.h" @@ -81,6 +82,25 @@ public: { } }; + class MsgReportWorker : public Message { + MESSAGE_CLASS_DECLARATION + + public: + QString getMessage() { return m_message; } + + static MsgReportWorker* create(QString message) { + return new MsgReportWorker(message); + } + + private: + QString m_message; + + MsgReportWorker(QString message) : + Message(), + m_message(message) + {} + }; + GS232Controller(WebAPIAdapterInterface *webAPIAdapterInterface); virtual ~GS232Controller(); virtual void destroy() { delete this; } @@ -122,7 +142,10 @@ private: QThread m_thread; GS232ControllerWorker *m_worker; GS232ControllerSettings m_settings; - bool m_ptt; + //QHash m_availablePipes; + QList m_availablePipes; + PipeEndPoint *m_selectedPipe; + QTimer m_updatePipesTimer; QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; @@ -133,7 +156,9 @@ private: void webapiReverseSendSettings(QList& featureSettingsKeys, const GS232ControllerSettings& settings, bool force); private slots: + void updatePipes(); void networkManagerFinished(QNetworkReply *reply); + //void handlePipeMessageQueue(MessageQueue* messageQueue); }; #endif // INCLUDE_FEATURE_GS232CONTROLLER_H_ diff --git a/plugins/feature/gs232controller/gs232controllergui.cpp b/plugins/feature/gs232controller/gs232controllergui.cpp index 6d2e3abad..9ed62c6f0 100644 --- a/plugins/feature/gs232controller/gs232controllergui.cpp +++ b/plugins/feature/gs232controller/gs232controllergui.cpp @@ -21,6 +21,8 @@ #include #include +#include "SWGTargetAzimuthElevation.h" + #include "feature/featureuiset.h" #include "gui/basicfeaturesettingsdialog.h" #include "mainwindow.h" @@ -51,7 +53,6 @@ void GS232ControllerGUI::resetToDefaults() QByteArray GS232ControllerGUI::serialize() const { - qDebug("GS232ControllerGUI::serialize: %d", m_settings.m_channelIndex); return m_settings.serialize(); } @@ -59,8 +60,6 @@ bool GS232ControllerGUI::deserialize(const QByteArray& data) { if (m_settings.deserialize(data)) { - qDebug("GS232ControllerGUI::deserialize: %d", m_settings.m_channelIndex); - updateDeviceSetList(); displaySettings(); applySettings(true); return true; @@ -85,30 +84,28 @@ bool GS232ControllerGUI::handleMessage(const Message& message) return true; } - else if (GS232ControllerSettings::MsgChannelIndexChange::match(message)) + else if (PipeEndPoint::MsgReportPipes::match(message)) { - const GS232ControllerSettings::MsgChannelIndexChange& cfg = (GS232ControllerSettings::MsgChannelIndexChange&) message; - int newChannelIndex = cfg.getIndex(); - qDebug("GS232ControllerGUI::handleMessage: GS232ControllerSettings::MsgChannelIndexChange: %d", newChannelIndex); - ui->channel->blockSignals(true); - ui->channel->setCurrentIndex(newChannelIndex); - m_settings.m_channelIndex = newChannelIndex; - ui->channel->blockSignals(false); - + PipeEndPoint::MsgReportPipes& report = (PipeEndPoint::MsgReportPipes&) message; + m_availablePipes = report.getAvailablePipes(); + updatePipeList(); return true; - } else if (GS232ControllerReport::MsgReportAzAl::match(message)) + } + else if (GS232ControllerReport::MsgReportAzAl::match(message)) { GS232ControllerReport::MsgReportAzAl& azAl = (GS232ControllerReport::MsgReportAzAl&) message; - if (azAl.getType() == GS232ControllerReport::AzAlType::TARGET) - { - ui->azimuth->setValue(round(azAl.getAzimuth())); - ui->elevation->setValue(round(azAl.getElevation())); - } - else - { - ui->azimuthCurrentText->setText(QString("%1").arg(round(azAl.getAzimuth()))); - ui->elevationCurrentText->setText(QString("%1").arg(round(azAl.getElevation()))); - } + ui->azimuthCurrentText->setText(QString("%1").arg(round(azAl.getAzimuth()))); + ui->elevationCurrentText->setText(QString("%1").arg(round(azAl.getElevation()))); + return true; + } + else if (MainCore::MsgTargetAzimuthElevation::match(message)) + { + MainCore::MsgTargetAzimuthElevation& msg = (MainCore::MsgTargetAzimuthElevation&) message; + SWGSDRangel::SWGTargetAzimuthElevation *swgTarget = msg.getSWGTargetAzimuthElevation(); + + ui->azimuth->setValue(round(swgTarget->getAzimuth())); + ui->elevation->setValue(round(swgTarget->getElevation())); + ui->targetName->setText(*swgTarget->getName()); return true; } @@ -157,7 +154,6 @@ GS232ControllerGUI::GS232ControllerGUI(PluginAPI* pluginAPI, FeatureUISet *featu m_statusTimer.start(1000); updateSerialPortList(); - updateDeviceSetList(); displaySettings(); applySettings(true); } @@ -183,6 +179,9 @@ void GS232ControllerGUI::displaySettings() ui->serialPort->lineEdit()->setText(m_settings.m_serialPort); ui->baudRate->setCurrentText(QString("%1").arg(m_settings.m_baudRate)); ui->track->setChecked(m_settings.m_track); + ui->targets->setCurrentIndex(ui->targets->findText(m_settings.m_target)); + ui->azimuthOffset->setValue(m_settings.m_azimuthOffset); + ui->elevationOffset->setValue(m_settings.m_elevationOffset); blockApplySettings(false); } @@ -198,102 +197,34 @@ void GS232ControllerGUI::updateSerialPortList() } } -void GS232ControllerGUI::updateDeviceSetList() +void GS232ControllerGUI::updatePipeList() { - MainWindow *mainWindow = MainWindow::getInstance(); - std::vector& deviceUISets = mainWindow->getDeviceUISets(); - std::vector::const_iterator it = deviceUISets.begin(); + QString currentText = ui->targets->currentText(); + ui->targets->blockSignals(true); + ui->targets->clear(); + QList::const_iterator it = m_availablePipes.begin(); - ui->device->blockSignals(true); - - ui->device->clear(); - unsigned int deviceIndex = 0; - - for (; it != deviceUISets.end(); ++it, deviceIndex++) + for (int i = 0; it != m_availablePipes.end(); ++it, i++) { - DSPDeviceSourceEngine *deviceSourceEngine = (*it)->m_deviceSourceEngine; - - if (deviceSourceEngine) { - ui->device->addItem(QString("R%1").arg(deviceIndex), deviceIndex); - } + ui->targets->addItem(it->getName()); } - int newDeviceIndex; - - if (it != deviceUISets.begin()) + if (currentText.isEmpty()) { - if (m_settings.m_deviceIndex < 0) { - ui->device->setCurrentIndex(0); - } else { - ui->device->setCurrentIndex(m_settings.m_deviceIndex); - } - - newDeviceIndex = ui->device->currentData().toInt(); + if (m_availablePipes.size() > 0) + ui->targets->setCurrentIndex(0); } else + ui->targets->setCurrentIndex(ui->targets->findText(currentText)); + ui->targets->blockSignals(false); + + QString newText = ui->targets->currentText(); + if (currentText != newText) { - newDeviceIndex = -1; + m_settings.m_target = newText; + ui->targetName->setText(""); + applySettings(); } - - - if (newDeviceIndex != m_settings.m_deviceIndex) - { - qDebug("GS232ControllerGUI::updateDeviceSetLists: device index changed: %d", newDeviceIndex); - m_settings.m_deviceIndex = newDeviceIndex; - } - - updateChannelList(); - - ui->device->blockSignals(false); -} - -bool GS232ControllerGUI::updateChannelList() -{ - int newChannelIndex; - ui->channel->blockSignals(true); - ui->channel->clear(); - - if (m_settings.m_deviceIndex < 0) - { - newChannelIndex = -1; - } - else - { - MainWindow *mainWindow = MainWindow::getInstance(); - std::vector& deviceUISets = mainWindow->getDeviceUISets(); - DeviceUISet *deviceUISet = deviceUISets[m_settings.m_deviceIndex]; - int nbChannels = deviceUISet->getNumberOfChannels(); - - for (int ch = 0; ch < nbChannels; ch++) { - ui->channel->addItem(QString("%1").arg(ch), ch); - } - - if (nbChannels > 0) - { - if (m_settings.m_channelIndex < 0) { - ui->channel->setCurrentIndex(0); - } else { - ui->channel->setCurrentIndex(m_settings.m_channelIndex); - } - - newChannelIndex = ui->channel->currentIndex(); - } - else - { - newChannelIndex = -1; - } - } - - ui->channel->blockSignals(false); - - if (newChannelIndex != m_settings.m_channelIndex) - { - qDebug("GS232ControllerGUI::updateChannelList: channel index changed: %d", newChannelIndex); - m_settings.m_channelIndex = newChannelIndex; - return true; - } - - return false; } void GS232ControllerGUI::leaveEvent(QEvent*) @@ -346,32 +277,6 @@ void GS232ControllerGUI::on_startStop_toggled(bool checked) } } -void GS232ControllerGUI::on_devicesRefresh_clicked() -{ - updateDeviceSetList(); - displaySettings(); - applySettings(); -} - -void GS232ControllerGUI::on_device_currentIndexChanged(int index) -{ - if (index >= 0) - { - m_settings.m_deviceIndex = ui->device->currentData().toInt(); - updateChannelList(); - applySettings(); - } -} - -void GS232ControllerGUI::on_channel_currentIndexChanged(int index) -{ - if (index >= 0) - { - m_settings.m_channelIndex = index; - applySettings(); - } -} - void GS232ControllerGUI::on_serialPort_currentIndexChanged(int index) { (void) index; @@ -389,23 +294,43 @@ void GS232ControllerGUI::on_baudRate_currentIndexChanged(int index) void GS232ControllerGUI::on_azimuth_valueChanged(int value) { m_settings.m_azimuth = value; + ui->targetName->setText(""); applySettings(); } void GS232ControllerGUI::on_elevation_valueChanged(int value) { m_settings.m_elevation = value; + ui->targetName->setText(""); + applySettings(); +} + +void GS232ControllerGUI::on_azimuthOffset_valueChanged(int value) +{ + m_settings.m_azimuthOffset = value; + applySettings(); +} + +void GS232ControllerGUI::on_elevationOffset_valueChanged(int value) +{ + m_settings.m_elevationOffset = value; applySettings(); } void GS232ControllerGUI::on_track_stateChanged(int state) { m_settings.m_track = state == Qt::Checked; - ui->devicesRefresh->setEnabled(m_settings.m_track); - ui->deviceLabel->setEnabled(m_settings.m_track); - ui->device->setEnabled(m_settings.m_track); - ui->channelLabel->setEnabled(m_settings.m_track); - ui->channel->setEnabled(m_settings.m_track); + ui->targetsLabel->setEnabled(m_settings.m_track); + ui->targets->setEnabled(m_settings.m_track); + if (!m_settings.m_track) + ui->targetName->setText(""); + applySettings(); +} + +void GS232ControllerGUI::on_targets_currentTextChanged(const QString& text) +{ + m_settings.m_target = text; + ui->targetName->setText(""); applySettings(); } @@ -415,15 +340,23 @@ void GS232ControllerGUI::updateStatus() if (m_lastFeatureState != state) { + // We set checked state of start/stop button, in case it was changed via API + bool oldState; switch (state) { case Feature::StNotStarted: ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); break; case Feature::StIdle: + oldState = ui->startStop->blockSignals(true); + ui->startStop->setChecked(false); + ui->startStop->blockSignals(oldState); ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); break; case Feature::StRunning: + oldState = ui->startStop->blockSignals(true); + ui->startStop->setChecked(true); + ui->startStop->blockSignals(oldState); ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); break; case Feature::StError: diff --git a/plugins/feature/gs232controller/gs232controllergui.h b/plugins/feature/gs232controller/gs232controllergui.h index a8a41f62c..b43356a3d 100644 --- a/plugins/feature/gs232controller/gs232controllergui.h +++ b/plugins/feature/gs232controller/gs232controllergui.h @@ -23,6 +23,7 @@ #include "feature/featuregui.h" #include "util/messagequeue.h" +#include "pipes/pipeendpoint.h" #include "gs232controllersettings.h" class PluginAPI; @@ -50,6 +51,7 @@ private: FeatureUISet* m_featureUISet; GS232ControllerSettings m_settings; bool m_doApplySettings; + QList m_availablePipes; GS232Controller* m_gs232Controller; MessageQueue m_inputMessageQueue; @@ -62,9 +64,8 @@ private: void blockApplySettings(bool block); void applySettings(bool force = false); void displaySettings(); + void updatePipeList(); void updateSerialPortList(); - void updateDeviceSetList(); - bool updateChannelList(); //!< true if channel index has changed bool handleMessage(const Message& message); void leaveEvent(QEvent*); @@ -75,14 +76,14 @@ private slots: void onWidgetRolled(QWidget* widget, bool rollDown); void handleInputMessages(); void on_startStop_toggled(bool checked); - void on_devicesRefresh_clicked(); - void on_device_currentIndexChanged(int index); - void on_channel_currentIndexChanged(int index); void on_serialPort_currentIndexChanged(int index); void on_baudRate_currentIndexChanged(int index); void on_track_stateChanged(int state); void on_azimuth_valueChanged(int value); void on_elevation_valueChanged(int value); + void on_targets_currentTextChanged(const QString& text); + void on_azimuthOffset_valueChanged(int value); + void on_elevationOffset_valueChanged(int value); void updateStatus(); }; diff --git a/plugins/feature/gs232controller/gs232controllergui.ui b/plugins/feature/gs232controller/gs232controllergui.ui index 5189f070b..71b594c3c 100644 --- a/plugins/feature/gs232controller/gs232controllergui.ui +++ b/plugins/feature/gs232controller/gs232controllergui.ui @@ -7,7 +7,7 @@ 0 0 320 - 187 + 175
@@ -24,7 +24,7 @@ - 320 + 350 16777215 @@ -43,7 +43,7 @@ 10 10 301 - 171 + 161 @@ -179,6 +179,74 @@
+ + + + + + Check to enable automatic tracking of azimuth and elevation from the specified channel + + + Track + + + + + + + Source + + + + + + + + 150 + 0 + + + + Target to track + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Target + + + + + + + Name of the target being tracked as indicated by the source channel / feature + + + true + + + + + @@ -271,107 +339,50 @@ - + - - - Check to enable automatic tracking of azimuth and elevation from the specified channel - + - Track + Azimuth offset - - - - 24 - 16777215 - - + - Refresh indexes of available device sets + Specify an offset angel in degrees that will be added to the target azimuth to correct for misalignment - - + + -360 - - - :/recycle.png:/recycle.png + + 360 - + - Device + Elevation offset - - - - 55 - 0 - - + - Receiver deviceset index + Specify an offset angle in degrees that will be added to the target elevation to correct for misalignment + + + -180 + + + 180 + + + 1 - - - - Channel - - - - - - - - 55 - 0 - - - - Channel index - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - @@ -390,6 +401,18 @@
gui/buttonswitch.h
+ + startStop + azimuth + elevation + track + targets + targetName + serialPort + baudRate + azimuthOffset + elevationOffset + diff --git a/plugins/feature/gs232controller/gs232controllerreport.h b/plugins/feature/gs232controller/gs232controllerreport.h index 8e175d8fc..52699961e 100644 --- a/plugins/feature/gs232controller/gs232controllerreport.h +++ b/plugins/feature/gs232controller/gs232controllerreport.h @@ -27,7 +27,6 @@ class GS232ControllerReport : public QObject { Q_OBJECT public: - enum AzAlType {TARGET, ACTUAL}; class MsgReportAzAl : public Message { MESSAGE_CLASS_DECLARATION @@ -35,23 +34,20 @@ public: public: float getAzimuth() const { return m_azimuth; } float getElevation() const { return m_elevation; } - AzAlType getType() const { return m_type; } - static MsgReportAzAl* create(float azimuth, float elevation, AzAlType type) + static MsgReportAzAl* create(float azimuth, float elevation) { - return new MsgReportAzAl(azimuth, elevation, type); + return new MsgReportAzAl(azimuth, elevation); } private: float m_azimuth; float m_elevation; - AzAlType m_type; - MsgReportAzAl(float azimuth, float elevation, AzAlType type) : + MsgReportAzAl(float azimuth, float elevation) : Message(), m_azimuth(azimuth), - m_elevation(elevation), - m_type(type) + m_elevation(elevation) { } }; diff --git a/plugins/feature/gs232controller/gs232controllersettings.cpp b/plugins/feature/gs232controller/gs232controllersettings.cpp index 66f02acdb..16cdec690 100644 --- a/plugins/feature/gs232controller/gs232controllersettings.cpp +++ b/plugins/feature/gs232controller/gs232controllersettings.cpp @@ -23,7 +23,15 @@ #include "gs232controllersettings.h" -MESSAGE_CLASS_DEFINITION(GS232ControllerSettings::MsgChannelIndexChange, Message) +const QStringList GS232ControllerSettings::m_pipeTypes = { + QStringLiteral("ADSBDemod"), + QStringLiteral("StarTracker") +}; + +const QStringList GS232ControllerSettings::m_pipeURIs = { + QStringLiteral("sdrangel.channel.adsbdemod"), + QStringLiteral("sdrangel.feature.startracker") +}; GS232ControllerSettings::GS232ControllerSettings() { @@ -37,8 +45,7 @@ void GS232ControllerSettings::resetToDefaults() m_serialPort = ""; m_baudRate = 9600; m_track = false; - m_deviceIndex = -1; - m_channelIndex = -1; + m_target = ""; m_title = "GS-232 Rotator Controller"; m_rgbColor = QColor(225, 25, 99).rgb(); m_useReverseAPI = false; @@ -46,6 +53,8 @@ void GS232ControllerSettings::resetToDefaults() m_reverseAPIPort = 8888; m_reverseAPIFeatureSetIndex = 0; m_reverseAPIFeatureIndex = 0; + m_azimuthOffset = 0; + m_elevationOffset = 0; } QByteArray GS232ControllerSettings::serialize() const @@ -57,8 +66,7 @@ QByteArray GS232ControllerSettings::serialize() const s.writeString(3, m_serialPort); s.writeS32(4, m_baudRate); s.writeBool(5, m_track); - s.writeS32(6, m_deviceIndex); - s.writeS32(7, m_channelIndex); + s.writeString(6, m_target); s.writeString(8, m_title); s.writeU32(9, m_rgbColor); s.writeBool(10, m_useReverseAPI); @@ -66,6 +74,8 @@ QByteArray GS232ControllerSettings::serialize() const s.writeU32(12, m_reverseAPIPort); s.writeU32(13, m_reverseAPIFeatureSetIndex); s.writeU32(14, m_reverseAPIFeatureIndex); + s.writeS32(15, m_azimuthOffset); + s.writeS32(16, m_elevationOffset); return s.final(); } @@ -91,8 +101,7 @@ bool GS232ControllerSettings::deserialize(const QByteArray& data) d.readString(3, &m_serialPort, ""); d.readS32(4, &m_baudRate, 9600); d.readBool(5, &m_track, false); - d.readS32(6, &m_deviceIndex, -1); - d.readS32(7, &m_channelIndex, -1); + d.readString(6, &m_target, ""); d.readString(8, &m_title, "GS-232 Rotator Controller"); d.readU32(9, &m_rgbColor, QColor(225, 25, 99).rgb()); d.readBool(10, &m_useReverseAPI, false); @@ -109,6 +118,8 @@ bool GS232ControllerSettings::deserialize(const QByteArray& data) m_reverseAPIFeatureSetIndex = utmp > 99 ? 99 : utmp; d.readU32(14, &utmp, 0); m_reverseAPIFeatureIndex = utmp > 99 ? 99 : utmp; + d.readS32(15, &m_azimuthOffset, 0); + d.readS32(16, &m_elevationOffset, 0); return true; } diff --git a/plugins/feature/gs232controller/gs232controllersettings.h b/plugins/feature/gs232controller/gs232controllersettings.h index 01cd25992..6eef7b78f 100644 --- a/plugins/feature/gs232controller/gs232controllersettings.h +++ b/plugins/feature/gs232controller/gs232controllersettings.h @@ -25,35 +25,18 @@ #include "util/message.h" class Serializable; +class PipeEndPoint; struct GS232ControllerSettings { - class MsgChannelIndexChange : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getIndex() const { return m_index; } - - static MsgChannelIndexChange* create(int index) { - return new MsgChannelIndexChange(index); - } - - protected: - int m_index; - - MsgChannelIndexChange(int index) : - Message(), - m_index(index) - { } - }; - int m_azimuth; int m_elevation; QString m_serialPort; int m_baudRate; - int m_deviceIndex; bool m_track; - int m_channelIndex; + QString m_target; // Plugin to get az/el from. E.g: "R0:0 ADSBDemod". Use a string, so can be set via WebAPI + int m_azimuthOffset; + int m_elevationOffset; QString m_title; quint32 m_rgbColor; bool m_useReverseAPI; @@ -66,6 +49,9 @@ struct GS232ControllerSettings void resetToDefaults(); QByteArray serialize() const; bool deserialize(const QByteArray& data); + + static const QStringList m_pipeTypes; + static const QStringList m_pipeURIs; }; #endif // INCLUDE_FEATURE_GS232CONTROLLERSETTINGS_H_ diff --git a/plugins/feature/gs232controller/gs232controllerworker.cpp b/plugins/feature/gs232controller/gs232controllerworker.cpp index 59af9333b..25ba64ac0 100644 --- a/plugins/feature/gs232controller/gs232controllerworker.cpp +++ b/plugins/feature/gs232controller/gs232controllerworker.cpp @@ -24,25 +24,14 @@ #include #include -#include "SWGDeviceState.h" -#include "SWGSuccessResponse.h" -#include "SWGErrorResponse.h" -#include "SWGDeviceSettings.h" -#include "SWGChannelSettings.h" -#include "SWGDeviceSet.h" -#include "SWGChannelReport.h" - -#include "webapi/webapiadapterinterface.h" -#include "webapi/webapiutils.h" - +#include "gs232controller.h" #include "gs232controllerworker.h" #include "gs232controllerreport.h" MESSAGE_CLASS_DEFINITION(GS232ControllerWorker::MsgConfigureGS232ControllerWorker, Message) MESSAGE_CLASS_DEFINITION(GS232ControllerReport::MsgReportAzAl, Message) -GS232ControllerWorker::GS232ControllerWorker(WebAPIAdapterInterface *webAPIAdapterInterface) : - m_webAPIAdapterInterface(webAPIAdapterInterface), +GS232ControllerWorker::GS232ControllerWorker() : m_msgQueueToFeature(nullptr), m_msgQueueToGUI(nullptr), m_running(false), @@ -113,10 +102,10 @@ void GS232ControllerWorker::applySettings(const GS232ControllerSettings& setting qDebug() << "GS232ControllerWorker::applySettings:" << " m_azimuth: " << settings.m_azimuth << " m_elevation: " << settings.m_elevation + << " m_azimuthOffset: " << settings.m_azimuthOffset + << " m_elevationOffset: " << settings.m_elevationOffset << " m_serialPort: " << settings.m_serialPort << " m_baudRate: " << settings.m_baudRate - << " m_deviceIndex: " << settings.m_deviceIndex - << " m_channelIndex: " << settings.m_channelIndex << " force: " << force; if ((settings.m_serialPort != m_settings.m_serialPort) || force) @@ -126,34 +115,57 @@ void GS232ControllerWorker::applySettings(const GS232ControllerSettings& setting m_serialPort.setPortName(settings.m_serialPort); m_serialPort.setBaudRate(settings.m_baudRate); if (!m_serialPort.open(QIODevice::ReadWrite)) + { qCritical() << "GS232ControllerWorker::applySettings: Failed to open serial port " << settings.m_serialPort << ". Error: " << m_serialPort.error(); + if (m_msgQueueToFeature) + m_msgQueueToFeature->push(GS232Controller::MsgReportWorker::create(QString("Failed to open serial port %1: %2").arg(settings.m_serialPort).arg(m_serialPort.error()))); + } } else if ((settings.m_baudRate != m_settings.m_baudRate) || force) { m_serialPort.setBaudRate(settings.m_baudRate); } - if ((settings.m_elevation != m_settings.m_elevation) || force) + if ((settings.m_elevation != m_settings.m_elevation) + || (settings.m_elevationOffset != m_settings.m_elevationOffset) + || force) { - setAzimuthElevation(settings.m_azimuth, settings.m_elevation); + setAzimuthElevation(settings.m_azimuth, settings.m_elevation, settings.m_azimuthOffset, settings.m_elevationOffset); } - else if ((settings.m_azimuth != m_settings.m_azimuth) || force) + else if ((settings.m_azimuth != m_settings.m_azimuth) + || (settings.m_azimuthOffset != m_settings.m_azimuthOffset) + || force) { - setAzimuth(settings.m_azimuth); + setAzimuth(settings.m_azimuth, settings.m_azimuthOffset); } m_settings = settings; } -void GS232ControllerWorker::setAzimuth(int azimuth) +void GS232ControllerWorker::setAzimuth(int azimuth, int azimuthOffset) { + azimuth += azimuthOffset; + if (azimuth < 0) + azimuth = 0; + else if (azimuth > 450) + azimuth = 450; QString cmd = QString("M%1\r\n").arg(azimuth, 3, 10, QLatin1Char('0')); QByteArray data = cmd.toLatin1(); m_serialPort.write(data); } -void GS232ControllerWorker::setAzimuthElevation(int azimuth, int elevation) +void GS232ControllerWorker::setAzimuthElevation(int azimuth, int elevation, int azimuthOffset, int elevationOffset) { + azimuth += azimuthOffset; + if (azimuth < 0) + azimuth = 0; + else if (azimuth > 450) + azimuth = 450; + elevation += elevationOffset; + if (elevation < 0) + elevation = 0; + else if (elevation > 180) + elevation = 180; QString cmd = QString("W%1 %2\r\n").arg(azimuth, 3, 10, QLatin1Char('0')).arg(elevation, 3, 10, QLatin1Char('0')); QByteArray data = cmd.toLatin1(); m_serialPort.write(data); @@ -170,7 +182,6 @@ void GS232ControllerWorker::readSerialData() if (len != -1) { QString response = QString::fromUtf8(buf, len); - QRegularExpression re("AZ=(\\d\\d\\d)EL=(\\d\\d\\d)"); QRegularExpressionMatch match = re.match(response); if (match.hasMatch()) @@ -179,15 +190,17 @@ void GS232ControllerWorker::readSerialData() QString el = match.captured(2); //qDebug() << "GS232ControllerWorker::readSerialData read az " << az << " el " << el; if (getMessageQueueToGUI()) - { - GS232ControllerReport::MsgReportAzAl *msg = GS232ControllerReport::MsgReportAzAl::create( - az.toFloat(), el.toFloat(), GS232ControllerReport::ACTUAL); - getMessageQueueToGUI()->push(msg); - } + getMessageQueueToGUI()->push( GS232ControllerReport::MsgReportAzAl::create(az.toFloat(), el.toFloat())); + } + else if (response == "\r\n") + { + // Ignore } else { - qDebug() << "GS232ControllerWorker::readSerialData unknown response " << response; + qDebug() << "GS232ControllerWorker::readSerialData - unexpected response " << response; + if (m_msgQueueToFeature) + m_msgQueueToFeature->push(GS232Controller::MsgReportWorker::create(QString("Unexpected GS-232 serial reponse: %1").arg(response))); } } } @@ -201,48 +214,4 @@ void GS232ControllerWorker::update() QByteArray cmd("C2\r\n"); m_serialPort.write(cmd); } - - // Request target Az/EL from channel - if (m_settings.m_track) - { - SWGSDRangel::SWGChannelReport response; - SWGSDRangel::SWGErrorResponse errorResponse; - - int httpRC = m_webAPIAdapterInterface->devicesetChannelReportGet( - m_settings.m_deviceIndex, - m_settings.m_channelIndex, - response, - errorResponse - ); - - if (httpRC/100 != 2) - { - qWarning("GS232ControllerWorker::update: get channel report error %d: %s", - httpRC, qPrintable(*errorResponse.getMessage())); - } - else - { - QJsonObject *jsonObj = response.asJsonObject(); - double targetAzimuth; - double targetElevation; - bool gotElevation = false; - bool gotAzimuth = false; - - if (WebAPIUtils::getSubObjectDouble(*jsonObj, "targetAzimuth", targetAzimuth)) - gotAzimuth = true; - - if (WebAPIUtils::getSubObjectDouble(*jsonObj, "targetElevation", targetElevation)) - gotElevation = true; - - if (gotAzimuth && gotElevation) - { - if (getMessageQueueToGUI()) - { - GS232ControllerReport::MsgReportAzAl *msg = GS232ControllerReport::MsgReportAzAl::create( - targetAzimuth, targetElevation, GS232ControllerReport::TARGET); - getMessageQueueToGUI()->push(msg); - } - } - } - } } diff --git a/plugins/feature/gs232controller/gs232controllerworker.h b/plugins/feature/gs232controller/gs232controllerworker.h index 2041e17c8..3be417fe2 100644 --- a/plugins/feature/gs232controller/gs232controllerworker.h +++ b/plugins/feature/gs232controller/gs232controllerworker.h @@ -28,8 +28,6 @@ #include "gs232controllersettings.h" -class WebAPIAdapterInterface; - class GS232ControllerWorker : public QObject { Q_OBJECT @@ -57,7 +55,7 @@ public: { } }; - GS232ControllerWorker(WebAPIAdapterInterface *webAPIAdapterInterface); + GS232ControllerWorker(); ~GS232ControllerWorker(); void reset(); bool startWork(); @@ -69,7 +67,6 @@ public: private: - WebAPIAdapterInterface *m_webAPIAdapterInterface; MessageQueue m_inputMessageQueue; //!< Queue for asynchronous inbound communication MessageQueue *m_msgQueueToFeature; //!< Queue to report channel change to main feature object MessageQueue *m_msgQueueToGUI; @@ -82,8 +79,8 @@ private: bool handleMessage(const Message& cmd); void applySettings(const GS232ControllerSettings& settings, bool force = false); MessageQueue *getMessageQueueToGUI() { return m_msgQueueToGUI; } - void setAzimuth(int azimuth); - void setAzimuthElevation(int azimuth, int elevation); + void setAzimuth(int azimuth, int azimuthOffset); + void setAzimuthElevation(int azimuth, int elevation, int azimuthOffset, int elevationOffset); private slots: void handleInputMessages(); diff --git a/plugins/feature/gs232controller/readme.md b/plugins/feature/gs232controller/readme.md index 3e55f92ea..51bff3925 100644 --- a/plugins/feature/gs232controller/readme.md +++ b/plugins/feature/gs232controller/readme.md @@ -4,11 +4,11 @@ The GS-232 Rotator Controller feature plugin allows SDRangel to send commands to GS-232 rotators. This allows SDRangel to point antennas mounted on a rotator to a specified azimuth and elevation. -Azimuth and elevation can be set manually by a user in the GUI, via the REST API, or via another plugin, such as the ADS-B Demodulator, which can track a selected aircraft. +Azimuth and elevation can be set manually by a user in the GUI, via the REST API, or via another plugin, such as the ADS-B Demodulator, which can track a selected aircraft, or the Star Tracker, for radio astronomy or EME communication.

Interface

-![File source channel plugin GUI](../../../doc/img/GS232Controller_plugin.png) +![GS232 Rotator Controller feature plugin GUI](../../../doc/img/GS232Controller_plugin.png)

1: Start/Stop plugin

@@ -16,37 +16,50 @@ This button starts or stops the plugin. When the plugin is stopped, azimuth and

2: Azimuth

-Specifies the target azimuth (angle in degrees, clockwise from North) to point the antenna towards. Valid values range from 0 to 450 degrees. The value to the right of the target azimuth, is the current azimuth read from the GS-232 rotator. +Specifies the target azimuth (angle in degrees, clockwise from North) to point the antenna towards. Valid values range from 0 to 450 degrees. +The value to the right of the target azimuth, is the current azimuth read from the GS-232 rotator.

3: Elevation

-Specifies the target elevation (angle in degrees) to point the antenna towards. Valid values range from 0 to 180 degrees, where 0 and 180 point towards the horizon and 90 degrees to zenith. The value to the right of the target elevation, is the current elevation read from the GS-232 rotator. +Specifies the target elevation (angle in degrees) to point the antenna towards. Valid values range from 0 to 180 degrees, where 0 and 180 point towards the horizon and 90 degrees to zenith. +The value to the right of the target elevation, is the current elevation read from the GS-232 rotator. -

4: Serial Port

+

4: Track

+ +When checked, the target azimuth and elevation will be controlled by the Channel or Feature Source (5). +For example, this allows an aircraft to be tracked, by setting the Source to the ADS-B Demodulator plugin, or the Moon to be tracked by settng Source to the Star Tracker plugin. + +

5: Source

+ +Specify the SDRangel Channel or Feature that that will control the target aziumth and elevation values, when Track (4) is checked. + +

6: Target

+ +When tracking is enabled, this field will display a name for the target being tracked, as indicated by the selected Source plugin (5). +For example, the ADS-B plugin will display the flight number of the target aircraft. The Star Tracker plugin will display Sun, Moon or Star. + +

7: Serial Port

Specifies the serial port (E.g. COM3 on Windows or /dev/ttyS0 on Linux) that will be used to send commands to the GS-232 rotator. -

5: Baud rate

+

8: Baud rate

Specifies the baud rate that will be used to send commands to the GS-232 rotator. Typically this is 9600. -

6: Track

+

9: Azimuth Offset

-When checked, the GS-232 Rotator Controller plugin will query the channel specified by the Device (8) and Channel (9) combo boxes for the target azimuth and elevation. For example, this allows an aircraft to be tracked, by setting the Device and Channel to correspond to the ADS-B Demodulator plugin. +The azimuth offset specifies an angle in degrees that is added to the target azimuth before sending to the controller. This allows for a misalignment of the rotator to be corrected. -

7: Refresh list of devices and channels

+

10: Elevation Offset

-Use this button to refresh the list of devices (8) and channels (9) +The elevation offset specifies an angle in degrees that is added to the target elevation before sending to the controller. This allows for a misalignment of the rotator to be corrected. -

8: Select device set

+

API

-Specify the SDRangel device set containing the channel plugin that will be asked for aziumth and elevation values. Defaults to R0. +Full details of the API can be found in the Swagger documentation. Here is a quick example of how to set the azimuth and elevation from the command line: -

9: Select channel

+ curl -X PATCH "http://127.0.0.1:8091/sdrangel/featureset/0/feature/0/settings" -d '{"featureType": "GS232Controller", "GS232ControllerSettings": { "azimuth": 180, "elevation": 45 }}' -The channel index specifies the SDRangel channel that will be asked for azimuth and elevation values. Defaults to 0. +To start sending commands to the rotator: -

Developer Information

- -For a channel plugin to be able to set the azimuth and elevation, its channel report should contain targetAzimuth and targetElevation. See the ADS-B plugin as an example. - \ No newline at end of file + curl -X POST "http://127.0.0.1:8091/sdrangel/featureset/0/feature/0/run" From c74ec2c426e73b85b90fb0fd682cd05cbdae16b0 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 19:58:07 +0000 Subject: [PATCH 07/21] Add packet demodulator --- plugins/channelrx/CMakeLists.txt | 1 + plugins/channelrx/demodpacket/CMakeLists.txt | 58 ++ plugins/channelrx/demodpacket/packetdemod.cpp | 434 +++++++++++++ plugins/channelrx/demodpacket/packetdemod.h | 152 +++++ .../demodpacket/packetdemodbaseband.cpp | 170 +++++ .../demodpacket/packetdemodbaseband.h | 94 +++ .../channelrx/demodpacket/packetdemodgui.cpp | 560 +++++++++++++++++ .../channelrx/demodpacket/packetdemodgui.h | 119 ++++ .../channelrx/demodpacket/packetdemodgui.ui | 579 ++++++++++++++++++ .../demodpacket/packetdemodplugin.cpp | 92 +++ .../channelrx/demodpacket/packetdemodplugin.h | 49 ++ .../demodpacket/packetdemodsettings.cpp | 145 +++++ .../demodpacket/packetdemodsettings.h | 61 ++ .../channelrx/demodpacket/packetdemodsink.cpp | 306 +++++++++ .../channelrx/demodpacket/packetdemodsink.h | 135 ++++ .../demodpacket/packetdemodwebapiadapter.cpp | 52 ++ .../demodpacket/packetdemodwebapiadapter.h | 50 ++ plugins/channelrx/demodpacket/readme.md | 63 ++ sdrbase/CMakeLists.txt | 6 + sdrbase/util/ax25.cpp | 213 +++++++ sdrbase/util/ax25.h | 42 ++ 21 files changed, 3381 insertions(+) create mode 100644 plugins/channelrx/demodpacket/CMakeLists.txt create mode 100644 plugins/channelrx/demodpacket/packetdemod.cpp create mode 100644 plugins/channelrx/demodpacket/packetdemod.h create mode 100644 plugins/channelrx/demodpacket/packetdemodbaseband.cpp create mode 100644 plugins/channelrx/demodpacket/packetdemodbaseband.h create mode 100644 plugins/channelrx/demodpacket/packetdemodgui.cpp create mode 100644 plugins/channelrx/demodpacket/packetdemodgui.h create mode 100644 plugins/channelrx/demodpacket/packetdemodgui.ui create mode 100644 plugins/channelrx/demodpacket/packetdemodplugin.cpp create mode 100644 plugins/channelrx/demodpacket/packetdemodplugin.h create mode 100644 plugins/channelrx/demodpacket/packetdemodsettings.cpp create mode 100644 plugins/channelrx/demodpacket/packetdemodsettings.h create mode 100644 plugins/channelrx/demodpacket/packetdemodsink.cpp create mode 100644 plugins/channelrx/demodpacket/packetdemodsink.h create mode 100644 plugins/channelrx/demodpacket/packetdemodwebapiadapter.cpp create mode 100644 plugins/channelrx/demodpacket/packetdemodwebapiadapter.h create mode 100644 plugins/channelrx/demodpacket/readme.md create mode 100644 sdrbase/util/ax25.cpp create mode 100644 sdrbase/util/ax25.h diff --git a/plugins/channelrx/CMakeLists.txt b/plugins/channelrx/CMakeLists.txt index 36623f77b..fc20e0df6 100644 --- a/plugins/channelrx/CMakeLists.txt +++ b/plugins/channelrx/CMakeLists.txt @@ -16,6 +16,7 @@ add_subdirectory(filesink) add_subdirectory(freqtracker) add_subdirectory(demodchirpchat) add_subdirectory(demodvorsc) +add_subdirectory(demodpacket) if(LIBDSDCC_FOUND AND LIBMBE_FOUND) add_subdirectory(demoddsd) diff --git a/plugins/channelrx/demodpacket/CMakeLists.txt b/plugins/channelrx/demodpacket/CMakeLists.txt new file mode 100644 index 000000000..2c50abb49 --- /dev/null +++ b/plugins/channelrx/demodpacket/CMakeLists.txt @@ -0,0 +1,58 @@ +project(demodpacket) + +set(demodpacket_SOURCES + packetdemod.cpp + packetdemodsettings.cpp + packetdemodbaseband.cpp + packetdemodsink.cpp + packetdemodplugin.cpp + packetdemodwebapiadapter.cpp +) + +set(demodpacket_HEADERS + packetdemod.h + packetdemodsettings.h + packetdemodbaseband.h + packetdemodsink.h + packetdemodplugin.h + packetdemodwebapiadapter.h +) + +include_directories( + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client +) + +if(NOT SERVER_MODE) + set(demodpacket_SOURCES + ${demodpacket_SOURCES} + packetdemodgui.cpp + packetdemodgui.ui + ) + set(demodpacket_HEADERS + ${demodpacket_HEADERS} + packetdemodgui.h + ) + + set(TARGET_NAME demodpacket) + set(TARGET_LIB "Qt5::Widgets" Qt5::Quick Qt5::QuickWidgets Qt5::Positioning) + set(TARGET_LIB_GUI "sdrgui") + set(INSTALL_FOLDER ${INSTALL_PLUGINS_DIR}) +else() + set(TARGET_NAME demodpacketsrv) + set(TARGET_LIB "") + set(TARGET_LIB_GUI "") + set(INSTALL_FOLDER ${INSTALL_PLUGINSSRV_DIR}) +endif() + +add_library(${TARGET_NAME} SHARED + ${demodpacket_SOURCES} +) + +target_link_libraries(${TARGET_NAME} + Qt5::Core + ${TARGET_LIB} + sdrbase + ${TARGET_LIB_GUI} +) + +install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER}) diff --git a/plugins/channelrx/demodpacket/packetdemod.cpp b/plugins/channelrx/demodpacket/packetdemod.cpp new file mode 100644 index 000000000..242968501 --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemod.cpp @@ -0,0 +1,434 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2015-2018 Edouard Griffiths, F4EXB. // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include "packetdemod.h" + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "SWGChannelSettings.h" +#include "SWGPacketDemodSettings.h" +#include "SWGChannelReport.h" +#include "SWGMapItem.h" + +#include "dsp/dspengine.h" +#include "dsp/dspcommands.h" +#include "device/deviceapi.h" +#include "feature/feature.h" +#include "util/db.h" +#include "maincore.h" + +MESSAGE_CLASS_DEFINITION(PacketDemod::MsgConfigurePacketDemod, Message) + +const char * const PacketDemod::m_channelIdURI = "sdrangel.channelrx.packetdemod"; +const char * const PacketDemod::m_channelId = "PacketDemod"; + +PacketDemod::PacketDemod(DeviceAPI *deviceAPI) : + ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink), + m_deviceAPI(deviceAPI), + m_basebandSampleRate(0) +{ + setObjectName(m_channelId); + + m_basebandSink = new PacketDemodBaseband(this); + m_basebandSink->setMessageQueueToChannel(getInputMessageQueue()); + m_basebandSink->moveToThread(&m_thread); + + applySettings(m_settings, true); + + m_deviceAPI->addChannelSink(this); + m_deviceAPI->addChannelSinkAPI(this); + + m_networkManager = new QNetworkAccessManager(); + connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); +} + +PacketDemod::~PacketDemod() +{ + qDebug("PacketDemod::~PacketDemod"); + disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); + delete m_networkManager; + m_deviceAPI->removeChannelSinkAPI(this); + m_deviceAPI->removeChannelSink(this); + + if (m_basebandSink->isRunning()) { + stop(); + } + + delete m_basebandSink; +} + +uint32_t PacketDemod::getNumberOfDeviceStreams() const +{ + return m_deviceAPI->getNbSourceStreams(); +} + +void PacketDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst) +{ + (void) firstOfBurst; + m_basebandSink->feed(begin, end); +} + +void PacketDemod::start() +{ + qDebug("PacketDemod::start"); + + m_basebandSink->reset(); + m_basebandSink->startWork(); + m_thread.start(); + + DSPSignalNotification *dspMsg = new DSPSignalNotification(m_basebandSampleRate, m_centerFrequency); + m_basebandSink->getInputMessageQueue()->push(dspMsg); + + PacketDemodBaseband::MsgConfigurePacketDemodBaseband *msg = PacketDemodBaseband::MsgConfigurePacketDemodBaseband::create(m_settings, true); + m_basebandSink->getInputMessageQueue()->push(msg); +} + +void PacketDemod::stop() +{ + qDebug("PacketDemod::stop"); + m_basebandSink->stopWork(); + m_thread.quit(); + m_thread.wait(); +} + +bool PacketDemod::handleMessage(const Message& cmd) +{ + if (MsgConfigurePacketDemod::match(cmd)) + { + MsgConfigurePacketDemod& cfg = (MsgConfigurePacketDemod&) cmd; + qDebug() << "PacketDemod::handleMessage: MsgConfigurePacketDemod"; + applySettings(cfg.getSettings(), cfg.getForce()); + + return true; + } + else if (DSPSignalNotification::match(cmd)) + { + DSPSignalNotification& notif = (DSPSignalNotification&) cmd; + m_basebandSampleRate = notif.getSampleRate(); + m_centerFrequency = notif.getCenterFrequency(); + // Forward to the sink + DSPSignalNotification* rep = new DSPSignalNotification(notif); // make a copy + qDebug() << "PacketDemod::handleMessage: DSPSignalNotification"; + m_basebandSink->getInputMessageQueue()->push(rep); + // Forward to GUI if any + if (m_guiMessageQueue) + { + rep = new DSPSignalNotification(notif); + m_guiMessageQueue->push(rep); + } + + return true; + } + else if (MainCore::MsgPacket::match(cmd)) + { + // Forward to GUI + MainCore::MsgPacket& report = (MainCore::MsgPacket&)cmd; + if (getMessageQueueToGUI()) + { + MainCore::MsgPacket *msg = new MainCore::MsgPacket(report); + getMessageQueueToGUI()->push(msg); + } + + MessagePipes& messagePipes = MainCore::instance()->getMessagePipes(); + + // Forward to APRS and other packet features + QList *packetMessageQueues = messagePipes.getMessageQueues(this, "packets"); + if (packetMessageQueues) + { + QList::iterator it = packetMessageQueues->begin(); + for (; it != packetMessageQueues->end(); ++it) + { + MainCore::MsgPacket *msg = new MainCore::MsgPacket(report); + (*it)->push(msg); + } + } + + return true; + } + else + { + return false; + } +} + +void PacketDemod::applySettings(const PacketDemodSettings& settings, bool force) +{ + qDebug() << "PacketDemod::applySettings:" + << " m_streamIndex: " << settings.m_streamIndex + << " m_useReverseAPI: " << settings.m_useReverseAPI + << " m_reverseAPIAddress: " << settings.m_reverseAPIAddress + << " m_reverseAPIPort: " << settings.m_reverseAPIPort + << " m_reverseAPIDeviceIndex: " << settings.m_reverseAPIDeviceIndex + << " m_reverseAPIChannelIndex: " << settings.m_reverseAPIChannelIndex + << " force: " << force; + + QList reverseAPIKeys; + + if ((settings.m_inputFrequencyOffset != settings.m_inputFrequencyOffset) || force) { + reverseAPIKeys.append("inputFrequencyOffset"); + } + if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) { + reverseAPIKeys.append("rfBandwidth"); + } + if ((settings.m_fmDeviation != m_settings.m_fmDeviation) || force) { + reverseAPIKeys.append("fmDeviation"); + } + + if (m_settings.m_streamIndex != settings.m_streamIndex) + { + if (m_deviceAPI->getSampleMIMO()) // change of stream is possible for MIMO devices only + { + m_deviceAPI->removeChannelSinkAPI(this); + m_deviceAPI->removeChannelSink(this, m_settings.m_streamIndex); + m_deviceAPI->addChannelSink(this, settings.m_streamIndex); + m_deviceAPI->addChannelSinkAPI(this); + } + + reverseAPIKeys.append("streamIndex"); + } + + PacketDemodBaseband::MsgConfigurePacketDemodBaseband *msg = PacketDemodBaseband::MsgConfigurePacketDemodBaseband::create(settings, force); + m_basebandSink->getInputMessageQueue()->push(msg); + + if (settings.m_useReverseAPI) + { + bool fullUpdate = ((m_settings.m_useReverseAPI != settings.m_useReverseAPI) && settings.m_useReverseAPI) || + (m_settings.m_reverseAPIAddress != settings.m_reverseAPIAddress) || + (m_settings.m_reverseAPIPort != settings.m_reverseAPIPort) || + (m_settings.m_reverseAPIDeviceIndex != settings.m_reverseAPIDeviceIndex) || + (m_settings.m_reverseAPIChannelIndex != settings.m_reverseAPIChannelIndex); + webapiReverseSendSettings(reverseAPIKeys, settings, fullUpdate || force); + } + + m_settings = settings; +} + +QByteArray PacketDemod::serialize() const +{ + return m_settings.serialize(); +} + +bool PacketDemod::deserialize(const QByteArray& data) +{ + if (m_settings.deserialize(data)) + { + MsgConfigurePacketDemod *msg = MsgConfigurePacketDemod::create(m_settings, true); + m_inputMessageQueue.push(msg); + return true; + } + else + { + m_settings.resetToDefaults(); + MsgConfigurePacketDemod *msg = MsgConfigurePacketDemod::create(m_settings, true); + m_inputMessageQueue.push(msg); + return false; + } +} + +int PacketDemod::webapiSettingsGet( + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setPacketDemodSettings(new SWGSDRangel::SWGPacketDemodSettings()); + response.getPacketDemodSettings()->init(); + webapiFormatChannelSettings(response, m_settings); + return 200; +} + +int PacketDemod::webapiSettingsPutPatch( + bool force, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + PacketDemodSettings settings = m_settings; + webapiUpdateChannelSettings(settings, channelSettingsKeys, response); + + MsgConfigurePacketDemod *msg = MsgConfigurePacketDemod::create(settings, force); + m_inputMessageQueue.push(msg); + + qDebug("PacketDemod::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue); + if (m_guiMessageQueue) // forward to GUI if any + { + MsgConfigurePacketDemod *msgToGUI = MsgConfigurePacketDemod::create(settings, force); + m_guiMessageQueue->push(msgToGUI); + } + + webapiFormatChannelSettings(response, settings); + + return 200; +} + +void PacketDemod::webapiUpdateChannelSettings( + PacketDemodSettings& settings, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response) +{ + if (channelSettingsKeys.contains("inputFrequencyOffset")) { + settings.m_inputFrequencyOffset = response.getPacketDemodSettings()->getInputFrequencyOffset(); + } + if (channelSettingsKeys.contains("fmDeviation")) { + settings.m_fmDeviation = response.getPacketDemodSettings()->getFmDeviation(); + } + if (channelSettingsKeys.contains("rfBandwidth")) { + settings.m_rfBandwidth = response.getPacketDemodSettings()->getRfBandwidth(); + } + if (channelSettingsKeys.contains("rgbColor")) { + settings.m_rgbColor = response.getPacketDemodSettings()->getRgbColor(); + } + if (channelSettingsKeys.contains("title")) { + settings.m_title = *response.getPacketDemodSettings()->getTitle(); + } + if (channelSettingsKeys.contains("streamIndex")) { + settings.m_streamIndex = response.getPacketDemodSettings()->getStreamIndex(); + } + if (channelSettingsKeys.contains("useReverseAPI")) { + settings.m_useReverseAPI = response.getPacketDemodSettings()->getUseReverseApi() != 0; + } + if (channelSettingsKeys.contains("reverseAPIAddress")) { + settings.m_reverseAPIAddress = *response.getPacketDemodSettings()->getReverseApiAddress(); + } + if (channelSettingsKeys.contains("reverseAPIPort")) { + settings.m_reverseAPIPort = response.getPacketDemodSettings()->getReverseApiPort(); + } + if (channelSettingsKeys.contains("reverseAPIDeviceIndex")) { + settings.m_reverseAPIDeviceIndex = response.getPacketDemodSettings()->getReverseApiDeviceIndex(); + } + if (channelSettingsKeys.contains("reverseAPIChannelIndex")) { + settings.m_reverseAPIChannelIndex = response.getPacketDemodSettings()->getReverseApiChannelIndex(); + } +} + +void PacketDemod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const PacketDemodSettings& settings) +{ + response.getPacketDemodSettings()->setFmDeviation(settings.m_fmDeviation); + response.getPacketDemodSettings()->setInputFrequencyOffset(settings.m_inputFrequencyOffset); + response.getPacketDemodSettings()->setRfBandwidth(settings.m_rfBandwidth); + response.getPacketDemodSettings()->setRgbColor(settings.m_rgbColor); + + if (response.getPacketDemodSettings()->getTitle()) { + *response.getPacketDemodSettings()->getTitle() = settings.m_title; + } else { + response.getPacketDemodSettings()->setTitle(new QString(settings.m_title)); + } + + response.getPacketDemodSettings()->setStreamIndex(settings.m_streamIndex); + response.getPacketDemodSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); + + if (response.getPacketDemodSettings()->getReverseApiAddress()) { + *response.getPacketDemodSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; + } else { + response.getPacketDemodSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); + } + + response.getPacketDemodSettings()->setReverseApiPort(settings.m_reverseAPIPort); + response.getPacketDemodSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIDeviceIndex); + response.getPacketDemodSettings()->setReverseApiChannelIndex(settings.m_reverseAPIChannelIndex); +} + +void PacketDemod::webapiReverseSendSettings(QList& channelSettingsKeys, const PacketDemodSettings& settings, bool force) +{ + SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings(); + webapiFormatChannelSettings(channelSettingsKeys, swgChannelSettings, settings, force); + + QString channelSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/channel/%4/settings") + .arg(settings.m_reverseAPIAddress) + .arg(settings.m_reverseAPIPort) + .arg(settings.m_reverseAPIDeviceIndex) + .arg(settings.m_reverseAPIChannelIndex); + m_networkRequest.setUrl(QUrl(channelSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer = new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgChannelSettings->asJson().toUtf8()); + buffer->seek(0); + + // Always use PATCH to avoid passing reverse API settings + QNetworkReply *reply = m_networkManager->sendCustomRequest(m_networkRequest, "PATCH", buffer); + buffer->setParent(reply); + + delete swgChannelSettings; +} + +void PacketDemod::webapiFormatChannelSettings( + QList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings *swgChannelSettings, + const PacketDemodSettings& settings, + bool force +) +{ + swgChannelSettings->setDirection(0); // Single sink (Rx) + swgChannelSettings->setOriginatorChannelIndex(getIndexInDeviceSet()); + swgChannelSettings->setOriginatorDeviceSetIndex(getDeviceSetIndex()); + swgChannelSettings->setChannelType(new QString("PacketDemod")); + swgChannelSettings->setPacketDemodSettings(new SWGSDRangel::SWGPacketDemodSettings()); + SWGSDRangel::SWGPacketDemodSettings *swgPacketDemodSettings = swgChannelSettings->getPacketDemodSettings(); + + // transfer data that has been modified. When force is on transfer all data except reverse API data + + if (channelSettingsKeys.contains("fmDeviation") || force) { + swgPacketDemodSettings->setFmDeviation(settings.m_fmDeviation); + } + if (channelSettingsKeys.contains("inputFrequencyOffset") || force) { + swgPacketDemodSettings->setInputFrequencyOffset(settings.m_inputFrequencyOffset); + } + if (channelSettingsKeys.contains("rfBandwidth") || force) { + swgPacketDemodSettings->setRfBandwidth(settings.m_rfBandwidth); + } + if (channelSettingsKeys.contains("rgbColor") || force) { + swgPacketDemodSettings->setRgbColor(settings.m_rgbColor); + } + if (channelSettingsKeys.contains("title") || force) { + swgPacketDemodSettings->setTitle(new QString(settings.m_title)); + } + if (channelSettingsKeys.contains("streamIndex") || force) { + swgPacketDemodSettings->setStreamIndex(settings.m_streamIndex); + } +} + +void PacketDemod::networkManagerFinished(QNetworkReply *reply) +{ + QNetworkReply::NetworkError replyError = reply->error(); + + if (replyError) + { + qWarning() << "PacketDemod::networkManagerFinished:" + << " error(" << (int) replyError + << "): " << replyError + << ": " << reply->errorString(); + } + else + { + QString answer = reply->readAll(); + answer.chop(1); // remove last \n + qDebug("PacketDemod::networkManagerFinished: reply:\n%s", answer.toStdString().c_str()); + } + + reply->deleteLater(); +} diff --git a/plugins/channelrx/demodpacket/packetdemod.h b/plugins/channelrx/demodpacket/packetdemod.h new file mode 100644 index 000000000..3bff4f0ef --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemod.h @@ -0,0 +1,152 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2015-2018 Edouard Griffiths, F4EXB. // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_PACKETDEMOD_H +#define INCLUDE_PACKETDEMOD_H + +#include + +#include +#include + +#include "dsp/basebandsamplesink.h" +#include "channel/channelapi.h" +#include "util/message.h" + +#include "packetdemodbaseband.h" +#include "packetdemodsettings.h" + +class QNetworkAccessManager; +class QNetworkReply; +class QThread; +class DeviceAPI; + +class PacketDemod : public BasebandSampleSink, public ChannelAPI { + Q_OBJECT +public: + class MsgConfigurePacketDemod : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const PacketDemodSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } + + static MsgConfigurePacketDemod* create(const PacketDemodSettings& settings, bool force) + { + return new MsgConfigurePacketDemod(settings, force); + } + + private: + PacketDemodSettings m_settings; + bool m_force; + + MsgConfigurePacketDemod(const PacketDemodSettings& settings, bool force) : + Message(), + m_settings(settings), + m_force(force) + { } + }; + + PacketDemod(DeviceAPI *deviceAPI); + virtual ~PacketDemod(); + virtual void destroy() { delete this; } + + using BasebandSampleSink::feed; + virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool po); + virtual void start(); + virtual void stop(); + virtual bool handleMessage(const Message& cmd); + + virtual void getIdentifier(QString& id) { id = objectName(); } + virtual const QString& getURI() const { return getName(); } + virtual void getTitle(QString& title) { title = m_settings.m_title; } + virtual qint64 getCenterFrequency() const { return 0; } + + virtual QByteArray serialize() const; + virtual bool deserialize(const QByteArray& data); + + virtual int getNbSinkStreams() const { return 1; } + virtual int getNbSourceStreams() const { return 0; } + + virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const + { + (void) streamIndex; + (void) sinkElseSource; + return 0; + } + + virtual int webapiSettingsGet( + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage); + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage); + + static void webapiFormatChannelSettings( + SWGSDRangel::SWGChannelSettings& response, + const PacketDemodSettings& settings); + + static void webapiUpdateChannelSettings( + PacketDemodSettings& settings, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response); + + double getMagSq() const { return m_basebandSink->getMagSq(); } + + void getMagSqLevels(double& avg, double& peak, int& nbSamples) { + m_basebandSink->getMagSqLevels(avg, peak, nbSamples); + } +/* void setMessageQueueToGUI(MessageQueue* queue) override { + BasebandSampleSink::setMessageQueueToGUI(queue); + m_basebandSink->setMessageQueueToGUI(queue); + }*/ + + uint32_t getNumberOfDeviceStreams() const; + + static const char * const m_channelIdURI; + static const char * const m_channelId; + +private: + DeviceAPI *m_deviceAPI; + QThread m_thread; + PacketDemodBaseband* m_basebandSink; + PacketDemodSettings m_settings; + int m_basebandSampleRate; //!< stored from device message used when starting baseband sink + qint64 m_centerFrequency; + + QNetworkAccessManager *m_networkManager; + QNetworkRequest m_networkRequest; + + void applySettings(const PacketDemodSettings& settings, bool force = false); + void webapiReverseSendSettings(QList& channelSettingsKeys, const PacketDemodSettings& settings, bool force); + void webapiFormatChannelSettings( + QList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings *swgChannelSettings, + const PacketDemodSettings& settings, + bool force + ); + +private slots: + void networkManagerFinished(QNetworkReply *reply); + +}; + +#endif // INCLUDE_PACKETDEMOD_H diff --git a/plugins/channelrx/demodpacket/packetdemodbaseband.cpp b/plugins/channelrx/demodpacket/packetdemodbaseband.cpp new file mode 100644 index 000000000..61b729f0d --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodbaseband.cpp @@ -0,0 +1,170 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include "dsp/dspengine.h" +#include "dsp/dspcommands.h" +#include "dsp/downchannelizer.h" + +#include "packetdemodbaseband.h" + +MESSAGE_CLASS_DEFINITION(PacketDemodBaseband::MsgConfigurePacketDemodBaseband, Message) + +PacketDemodBaseband::PacketDemodBaseband(PacketDemod *packetDemod) : + m_sink(packetDemod), + m_running(false), + m_mutex(QMutex::Recursive) +{ + qDebug("PacketDemodBaseband::PacketDemodBaseband"); + + m_sampleFifo.setSize(SampleSinkFifo::getSizePolicy(48000)); + m_channelizer = new DownChannelizer(&m_sink); +} + +PacketDemodBaseband::~PacketDemodBaseband() +{ + m_inputMessageQueue.clear(); + + delete m_channelizer; +} + +void PacketDemodBaseband::reset() +{ + QMutexLocker mutexLocker(&m_mutex); + m_inputMessageQueue.clear(); + m_sampleFifo.reset(); +} + +void PacketDemodBaseband::startWork() +{ + QMutexLocker mutexLocker(&m_mutex); + QObject::connect( + &m_sampleFifo, + &SampleSinkFifo::dataReady, + this, + &PacketDemodBaseband::handleData, + Qt::QueuedConnection + ); + connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + m_running = true; +} + +void PacketDemodBaseband::stopWork() +{ + QMutexLocker mutexLocker(&m_mutex); + disconnect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + QObject::disconnect( + &m_sampleFifo, + &SampleSinkFifo::dataReady, + this, + &PacketDemodBaseband::handleData + ); + m_running = false; +} + +void PacketDemodBaseband::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end) +{ + m_sampleFifo.write(begin, end); +} + +void PacketDemodBaseband::handleData() +{ + QMutexLocker mutexLocker(&m_mutex); + + while ((m_sampleFifo.fill() > 0) && (m_inputMessageQueue.size() == 0)) + { + SampleVector::iterator part1begin; + SampleVector::iterator part1end; + SampleVector::iterator part2begin; + SampleVector::iterator part2end; + + std::size_t count = m_sampleFifo.readBegin(m_sampleFifo.fill(), &part1begin, &part1end, &part2begin, &part2end); + + // first part of FIFO data + if (part1begin != part1end) { + m_channelizer->feed(part1begin, part1end); + } + + // second part of FIFO data (used when block wraps around) + if(part2begin != part2end) { + m_channelizer->feed(part2begin, part2end); + } + + m_sampleFifo.readCommit((unsigned int) count); + } +} + +void PacketDemodBaseband::handleInputMessages() +{ + Message* message; + + while ((message = m_inputMessageQueue.pop()) != nullptr) + { + if (handleMessage(*message)) { + delete message; + } + } +} + +bool PacketDemodBaseband::handleMessage(const Message& cmd) +{ + if (MsgConfigurePacketDemodBaseband::match(cmd)) + { + QMutexLocker mutexLocker(&m_mutex); + MsgConfigurePacketDemodBaseband& cfg = (MsgConfigurePacketDemodBaseband&) cmd; + qDebug() << "PacketDemodBaseband::handleMessage: MsgConfigurePacketDemodBaseband"; + + applySettings(cfg.getSettings(), cfg.getForce()); + + return true; + } + else if (DSPSignalNotification::match(cmd)) + { + QMutexLocker mutexLocker(&m_mutex); + DSPSignalNotification& notif = (DSPSignalNotification&) cmd; + qDebug() << "PacketDemodBaseband::handleMessage: DSPSignalNotification: basebandSampleRate: " << notif.getSampleRate(); + setBasebandSampleRate(notif.getSampleRate()); + m_sampleFifo.setSize(SampleSinkFifo::getSizePolicy(notif.getSampleRate())); + + return true; + } + else + { + return false; + } +} + +void PacketDemodBaseband::applySettings(const PacketDemodSettings& settings, bool force) +{ + if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force) + { + m_channelizer->setChannelization(PACKETDEMOD_CHANNEL_SAMPLE_RATE, settings.m_inputFrequencyOffset); + m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset()); + } + + m_sink.applySettings(settings, force); + + m_settings = settings; +} + +void PacketDemodBaseband::setBasebandSampleRate(int sampleRate) +{ + m_channelizer->setBasebandSampleRate(sampleRate); + m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset()); +} diff --git a/plugins/channelrx/demodpacket/packetdemodbaseband.h b/plugins/channelrx/demodpacket/packetdemodbaseband.h new file mode 100644 index 000000000..cee2cd39a --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodbaseband.h @@ -0,0 +1,94 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_PACKETDEMODBASEBAND_H +#define INCLUDE_PACKETDEMODBASEBAND_H + +#include +#include + +#include "dsp/samplesinkfifo.h" +#include "util/message.h" +#include "util/messagequeue.h" + +#include "packetdemodsink.h" + +class DownChannelizer; +class PacketDemod; + +class PacketDemodBaseband : public QObject +{ + Q_OBJECT +public: + class MsgConfigurePacketDemodBaseband : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const PacketDemodSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } + + static MsgConfigurePacketDemodBaseband* create(const PacketDemodSettings& settings, bool force) + { + return new MsgConfigurePacketDemodBaseband(settings, force); + } + + private: + PacketDemodSettings m_settings; + bool m_force; + + MsgConfigurePacketDemodBaseband(const PacketDemodSettings& settings, bool force) : + Message(), + m_settings(settings), + m_force(force) + { } + }; + + PacketDemodBaseband(PacketDemod *packetDemod); + ~PacketDemodBaseband(); + void reset(); + void startWork(); + void stopWork(); + void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end); + MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } //!< Get the queue for asynchronous inbound communication + void getMagSqLevels(double& avg, double& peak, int& nbSamples) { + m_sink.getMagSqLevels(avg, peak, nbSamples); + } + void setMessageQueueToChannel(MessageQueue *messageQueue) { m_sink.setMessageQueueToChannel(messageQueue); } + void setBasebandSampleRate(int sampleRate); + double getMagSq() const { return m_sink.getMagSq(); } + bool isRunning() const { return m_running; } + +private: + SampleSinkFifo m_sampleFifo; + DownChannelizer *m_channelizer; + PacketDemodSink m_sink; + MessageQueue m_inputMessageQueue; //!< Queue for asynchronous inbound communication + PacketDemodSettings m_settings; + bool m_running; + QMutex m_mutex; + + bool handleMessage(const Message& cmd); + void calculateOffset(PacketDemodSink *sink); + void applySettings(const PacketDemodSettings& settings, bool force = false); + +private slots: + void handleInputMessages(); + void handleData(); //!< Handle data when samples have to be processed +}; + +#endif // INCLUDE_PACKETDEMODBASEBAND_H diff --git a/plugins/channelrx/demodpacket/packetdemodgui.cpp b/plugins/channelrx/demodpacket/packetdemodgui.cpp new file mode 100644 index 000000000..c11cdfb58 --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodgui.cpp @@ -0,0 +1,560 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "packetdemodgui.h" +#include "util/ax25.h" + +#include "device/deviceuiset.h" +#include "dsp/dspengine.h" +#include "dsp/dspcommands.h" +#include "ui_packetdemodgui.h" +#include "plugin/pluginapi.h" +#include "util/simpleserializer.h" +#include "util/db.h" +#include "util/morse.h" +#include "util/units.h" +#include "gui/basicchannelsettingsdialog.h" +#include "gui/devicestreamselectiondialog.h" +#include "dsp/dspengine.h" +#include "gui/crightclickenabler.h" +#include "channel/channelwebapiutils.h" +#include "maincore.h" + +#include "packetdemod.h" +#include "packetdemodsink.h" + +#define PACKET_COL_FROM 0 +#define PACKET_COL_TO 1 +#define PACKET_COL_VIA 2 +#define PACKET_COL_TYPE 3 +#define PACKET_COL_PID 4 +#define PACKET_COL_DATA_ASCII 5 +#define PACKET_COL_DATA_HEX 6 + +void PacketDemodGUI::resizeTable() +{ + // Fill table with a row of dummy data that will size the columns nicely + // Trailing spaces are for sort arrow + int row = ui->packets->rowCount(); + ui->packets->setRowCount(row + 1); + ui->packets->setItem(row, PACKET_COL_FROM, new QTableWidgetItem("123456-15-")); + ui->packets->setItem(row, PACKET_COL_TO, new QTableWidgetItem("123456-15-")); + ui->packets->setItem(row, PACKET_COL_VIA, new QTableWidgetItem("123456-15-")); + ui->packets->setItem(row, PACKET_COL_TYPE, new QTableWidgetItem("Type-")); + ui->packets->setItem(row, PACKET_COL_PID, new QTableWidgetItem("PID-")); + ui->packets->setItem(row, PACKET_COL_DATA_ASCII, new QTableWidgetItem("ABCEDGHIJKLMNOPQRSTUVWXYZ")); + ui->packets->setItem(row, PACKET_COL_DATA_HEX, new QTableWidgetItem("ABCEDGHIJKLMNOPQRSTUVWXYZ")); + ui->packets->resizeColumnsToContents(); + ui->packets->removeRow(row); +} + +// Columns in table reordered +void PacketDemodGUI::packets_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex) +{ + (void) oldVisualIndex; + + m_settings.m_columnIndexes[logicalIndex] = newVisualIndex; +} + +// Column in table resized (when hidden size is 0) +void PacketDemodGUI::packets_sectionResized(int logicalIndex, int oldSize, int newSize) +{ + (void) oldSize; + + m_settings.m_columnSizes[logicalIndex] = newSize; +} + +// Right click in table header - show column select menu +void PacketDemodGUI::columnSelectMenu(QPoint pos) +{ + menu->popup(ui->packets->horizontalHeader()->viewport()->mapToGlobal(pos)); +} + +// Hide/show column when menu selected +void PacketDemodGUI::columnSelectMenuChecked(bool checked) +{ + (void) checked; + + QAction* action = qobject_cast(sender()); + if (action != nullptr) + { + int idx = action->data().toInt(nullptr); + ui->packets->setColumnHidden(idx, !action->isChecked()); + } +} + +// Create column select menu item +QAction *PacketDemodGUI::createCheckableItem(QString &text, int idx, bool checked) +{ + QAction *action = new QAction(text, this); + action->setCheckable(true); + action->setChecked(checked); + action->setData(QVariant(idx)); + connect(action, SIGNAL(triggered()), this, SLOT(columnSelectMenuChecked())); + return action; +} + +PacketDemodGUI* PacketDemodGUI::create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel) +{ + PacketDemodGUI* gui = new PacketDemodGUI(pluginAPI, deviceUISet, rxChannel); + return gui; +} + +void PacketDemodGUI::destroy() +{ + delete this; +} + +void PacketDemodGUI::resetToDefaults() +{ + m_settings.resetToDefaults(); + displaySettings(); + applySettings(true); +} + +QByteArray PacketDemodGUI::serialize() const +{ + return m_settings.serialize(); +} + +bool PacketDemodGUI::deserialize(const QByteArray& data) +{ + if(m_settings.deserialize(data)) { + displaySettings(); + applySettings(true); + return true; + } else { + resetToDefaults(); + return false; + } +} + +// Add row to table +void PacketDemodGUI::packetReceived(QByteArray packet) +{ + AX25Packet ax25; + + if (ax25.decode(packet)) + { + ui->packets->setSortingEnabled(false); + int row = ui->packets->rowCount(); + ui->packets->setRowCount(row + 1); + + QTableWidgetItem *fromItem = new QTableWidgetItem(); + QTableWidgetItem *toItem = new QTableWidgetItem(); + QTableWidgetItem *viaItem = new QTableWidgetItem(); + QTableWidgetItem *typeItem = new QTableWidgetItem(); + QTableWidgetItem *pidItem = new QTableWidgetItem(); + QTableWidgetItem *dataASCIIItem = new QTableWidgetItem(); + QTableWidgetItem *dataHexItem = new QTableWidgetItem(); + QTableWidgetItem *dataAPRSItem = new QTableWidgetItem(); + ui->packets->setItem(row, PACKET_COL_FROM, fromItem); + ui->packets->setItem(row, PACKET_COL_TO, toItem); + ui->packets->setItem(row, PACKET_COL_VIA, viaItem); + ui->packets->setItem(row, PACKET_COL_TYPE, typeItem); + ui->packets->setItem(row, PACKET_COL_PID, pidItem); + ui->packets->setItem(row, PACKET_COL_DATA_ASCII, dataASCIIItem); + ui->packets->setItem(row, PACKET_COL_DATA_HEX, dataHexItem); + fromItem->setText(ax25.m_from); + toItem->setText(ax25.m_to); + viaItem->setText(ax25.m_via); + typeItem->setText(ax25.m_type); + pidItem->setText(ax25.m_pid); + dataASCIIItem->setText(ax25.m_dataASCII); + dataHexItem->setText(ax25.m_dataHex); + ui->packets->setSortingEnabled(true); + ui->packets->scrollToItem(fromItem); + filterRow(row); + } + else + qDebug() << "Unsupported AX.25 packet: " << packet; +} + +bool PacketDemodGUI::handleMessage(const Message& message) +{ + if (PacketDemod::MsgConfigurePacketDemod::match(message)) + { + qDebug("PacketDemodGUI::handleMessage: PacketDemod::MsgConfigurePacketDemod"); + const PacketDemod::MsgConfigurePacketDemod& cfg = (PacketDemod::MsgConfigurePacketDemod&) message; + m_settings = cfg.getSettings(); + blockApplySettings(true); + displaySettings(); + blockApplySettings(false); + return true; + } + else if (DSPSignalNotification::match(message)) + { + DSPSignalNotification& notif = (DSPSignalNotification&) message; + m_basebandSampleRate = notif.getSampleRate(); + return true; + } + else if (MainCore::MsgPacket::match(message)) + { + MainCore::MsgPacket& report = (MainCore::MsgPacket&) message; + packetReceived(report.getPacket()); + return true; + } + + return false; +} + +void PacketDemodGUI::handleInputMessages() +{ + Message* message; + + while ((message = getInputMessageQueue()->pop()) != 0) + { + if (handleMessage(*message)) + { + delete message; + } + } +} + +void PacketDemodGUI::channelMarkerChangedByCursor() +{ + ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency()); + m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency(); + applySettings(); +} + +void PacketDemodGUI::channelMarkerHighlightedByCursor() +{ + setHighlighted(m_channelMarker.getHighlighted()); +} + +void PacketDemodGUI::on_deltaFrequency_changed(qint64 value) +{ + m_channelMarker.setCenterFrequency(value); + m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency(); + applySettings(); +} + +void PacketDemodGUI::on_mode_currentIndexChanged(int value) +{ + QString mode = ui->mode->currentText(); + // TODO: Support 9600 FSK +} + +void PacketDemodGUI::on_rfBW_valueChanged(int value) +{ + float bw = value * 100.0f; + ui->rfBWText->setText(QString("%1k").arg(value / 10.0, 0, 'f', 1)); + m_channelMarker.setBandwidth(bw); + m_settings.m_rfBandwidth = bw; + applySettings(); +} + +void PacketDemodGUI::on_fmDev_valueChanged(int value) +{ + ui->fmDevText->setText(QString("%1k").arg(value / 10.0, 0, 'f', 1)); + m_settings.m_fmDeviation = value * 100.0; + applySettings(); +} + +void PacketDemodGUI::on_filterFrom_editingFinished() +{ + m_settings.m_filterFrom = ui->filterFrom->text(); + filter(); + applySettings(); +} + +void PacketDemodGUI::on_filterTo_editingFinished() +{ + m_settings.m_filterTo = ui->filterTo->text(); + filter(); + applySettings(); +} + +void PacketDemodGUI::on_filterPID_stateChanged(int state) +{ + m_settings.m_filterPID = state==Qt::Checked ? "f0" : ""; + filter(); + applySettings(); +} + +void PacketDemodGUI::on_clearTable_clicked() +{ + ui->packets->setRowCount(0); +} + +void PacketDemodGUI::filterRow(int row) +{ + bool hidden = false; + if (m_settings.m_filterFrom != "") + { + QRegExp re(m_settings.m_filterFrom); + QTableWidgetItem *fromItem = ui->packets->item(row, PACKET_COL_FROM); + if (!re.exactMatch(fromItem->text())) + hidden = true; + } + if (m_settings.m_filterTo != "") + { + QRegExp re(m_settings.m_filterTo); + QTableWidgetItem *toItem = ui->packets->item(row, PACKET_COL_TO); + if (!re.exactMatch(toItem->text())) + hidden = true; + } + if (m_settings.m_filterPID != "") + { + QTableWidgetItem *pidItem = ui->packets->item(row, PACKET_COL_PID); + if (pidItem->text() != m_settings.m_filterPID) + hidden = true; + } + ui->packets->setRowHidden(row, hidden); +} + +void PacketDemodGUI::filter() +{ + for (int i = 0; i < ui->packets->rowCount(); i++) + { + filterRow(i); + } +} + +void PacketDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) +{ + (void) widget; + (void) rollDown; +} + +void PacketDemodGUI::onMenuDialogCalled(const QPoint &p) +{ + if (m_contextMenuType == ContextMenuChannelSettings) + { + BasicChannelSettingsDialog dialog(&m_channelMarker, this); + dialog.setUseReverseAPI(m_settings.m_useReverseAPI); + dialog.setReverseAPIAddress(m_settings.m_reverseAPIAddress); + dialog.setReverseAPIPort(m_settings.m_reverseAPIPort); + dialog.setReverseAPIDeviceIndex(m_settings.m_reverseAPIDeviceIndex); + dialog.setReverseAPIChannelIndex(m_settings.m_reverseAPIChannelIndex); + dialog.move(p); + dialog.exec(); + + m_settings.m_rgbColor = m_channelMarker.getColor().rgb(); + m_settings.m_title = m_channelMarker.getTitle(); + m_settings.m_useReverseAPI = dialog.useReverseAPI(); + m_settings.m_reverseAPIAddress = dialog.getReverseAPIAddress(); + m_settings.m_reverseAPIPort = dialog.getReverseAPIPort(); + m_settings.m_reverseAPIDeviceIndex = dialog.getReverseAPIDeviceIndex(); + m_settings.m_reverseAPIChannelIndex = dialog.getReverseAPIChannelIndex(); + + setWindowTitle(m_settings.m_title); + setTitleColor(m_settings.m_rgbColor); + + applySettings(); + } + else if ((m_contextMenuType == ContextMenuStreamSettings) && (m_deviceUISet->m_deviceMIMOEngine)) + { + DeviceStreamSelectionDialog dialog(this); + dialog.setNumberOfStreams(m_packetDemod->getNumberOfDeviceStreams()); + dialog.setStreamIndex(m_settings.m_streamIndex); + dialog.move(p); + dialog.exec(); + + m_settings.m_streamIndex = dialog.getSelectedStreamIndex(); + m_channelMarker.clearStreamIndexes(); + m_channelMarker.addStreamIndex(m_settings.m_streamIndex); + displayStreamIndex(); + applySettings(); + } + + resetContextMenuType(); +} + +PacketDemodGUI::PacketDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent) : + ChannelGUI(parent), + ui(new Ui::PacketDemodGUI), + m_pluginAPI(pluginAPI), + m_deviceUISet(deviceUISet), + m_channelMarker(this), + m_doApplySettings(true), + m_tickCount(0) +{ + ui->setupUi(this); + + setAttribute(Qt::WA_DeleteOnClose, true); + connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); + + m_packetDemod = reinterpret_cast(rxChannel); + m_packetDemod->setMessageQueueToGUI(getInputMessageQueue()); + + connect(&MainCore::instance()->getMasterTimer(), SIGNAL(timeout()), this, SLOT(tick())); // 50 ms + + ui->deltaFrequencyLabel->setText(QString("%1f").arg(QChar(0x94, 0x03))); + ui->deltaFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold)); + ui->deltaFrequency->setValueRange(false, 7, -9999999, 9999999); + ui->channelPowerMeter->setColorTheme(LevelMeterSignalDB::ColorGreenAndBlue); + + m_channelMarker.blockSignals(true); + m_channelMarker.setColor(Qt::yellow); + m_channelMarker.setBandwidth(m_settings.m_rfBandwidth); + m_channelMarker.setCenterFrequency(m_settings.m_inputFrequencyOffset); + m_channelMarker.setTitle("Packet Demodulator"); + m_channelMarker.blockSignals(false); + m_channelMarker.setVisible(true); // activate signal on the last setting only + + setTitleColor(m_channelMarker.getColor()); + m_settings.setChannelMarker(&m_channelMarker); + + m_deviceUISet->addChannelMarker(&m_channelMarker); + m_deviceUISet->addRollupWidget(this); + + connect(&m_channelMarker, SIGNAL(changedByCursor()), this, SLOT(channelMarkerChangedByCursor())); + connect(&m_channelMarker, SIGNAL(highlightedByCursor()), this, SLOT(channelMarkerHighlightedByCursor())); + connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + + // Resize the table using dummy data + resizeTable(); + // Allow user to reorder columns + ui->packets->horizontalHeader()->setSectionsMovable(true); + // Allow user to sort table by clicking on headers + ui->packets->setSortingEnabled(true); + // Add context menu to allow hiding/showing of columns + menu = new QMenu(ui->packets); + for (int i = 0; i < ui->packets->horizontalHeader()->count(); i++) + { + QString text = ui->packets->horizontalHeaderItem(i)->text(); + menu->addAction(createCheckableItem(text, i, true)); + } + ui->packets->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->packets->horizontalHeader(), SIGNAL(customContextMenuRequested(QPoint)), SLOT(columnSelectMenu(QPoint))); + // Get signals when columns change + connect(ui->packets->horizontalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(packets_sectionMoved(int, int, int))); + connect(ui->packets->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), SLOT(packets_sectionResized(int, int, int))); + + displaySettings(); + applySettings(true); +} + +PacketDemodGUI::~PacketDemodGUI() +{ + delete ui; +} + +void PacketDemodGUI::blockApplySettings(bool block) +{ + m_doApplySettings = !block; +} + +void PacketDemodGUI::applySettings(bool force) +{ + if (m_doApplySettings) + { + PacketDemod::MsgConfigurePacketDemod* message = PacketDemod::MsgConfigurePacketDemod::create( m_settings, force); + m_packetDemod->getInputMessageQueue()->push(message); + } +} + +void PacketDemodGUI::displaySettings() +{ + m_channelMarker.blockSignals(true); + m_channelMarker.setBandwidth(m_settings.m_rfBandwidth); + m_channelMarker.setCenterFrequency(m_settings.m_inputFrequencyOffset); + m_channelMarker.setTitle(m_settings.m_title); + m_channelMarker.blockSignals(false); + m_channelMarker.setColor(m_settings.m_rgbColor); // activate signal on the last setting only + + setTitleColor(m_settings.m_rgbColor); + setWindowTitle(m_channelMarker.getTitle()); + + blockApplySettings(true); + + ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency()); + + ui->rfBWText->setText(QString("%1k").arg(m_settings.m_rfBandwidth / 1000.0, 0, 'f', 1)); + ui->rfBW->setValue(m_settings.m_rfBandwidth / 100.0); + + ui->fmDevText->setText(QString("%1k").arg(m_settings.m_fmDeviation / 1000.0, 0, 'f', 1)); + ui->fmDev->setValue(m_settings.m_fmDeviation / 100.0); + + displayStreamIndex(); + + ui->filterFrom->setText(m_settings.m_filterFrom); + ui->filterTo->setText(m_settings.m_filterTo); + ui->filterPID->setChecked(m_settings.m_filterPID == "f0"); + + // Order and size columns + QHeaderView *header = ui->packets->horizontalHeader(); + for (int i = 0; i < PACKETDEMOD_COLUMNS; i++) + { + bool hidden = m_settings.m_columnSizes[i] == 0; + header->setSectionHidden(i, hidden); + menu->actions().at(i)->setChecked(!hidden); + if (m_settings.m_columnSizes[i] > 0) + ui->packets->setColumnWidth(i, m_settings.m_columnSizes[i]); + header->moveSection(header->visualIndex(i), m_settings.m_columnIndexes[i]); + } + + filter(); + + blockApplySettings(false); +} + +void PacketDemodGUI::displayStreamIndex() +{ + if (m_deviceUISet->m_deviceMIMOEngine) { + setStreamIndicator(tr("%1").arg(m_settings.m_streamIndex)); + } else { + setStreamIndicator("S"); // single channel indicator + } +} + +void PacketDemodGUI::leaveEvent(QEvent*) +{ + m_channelMarker.setHighlighted(false); +} + +void PacketDemodGUI::enterEvent(QEvent*) +{ + m_channelMarker.setHighlighted(true); +} + +void PacketDemodGUI::tick() +{ + double magsqAvg, magsqPeak; + int nbMagsqSamples; + m_packetDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples); + double powDbAvg = CalcDb::dbPower(magsqAvg); + double powDbPeak = CalcDb::dbPower(magsqPeak); + + ui->channelPowerMeter->levelChanged( + (100.0f + powDbAvg) / 100.0f, + (100.0f + powDbPeak) / 100.0f, + nbMagsqSamples); + + if (m_tickCount % 4 == 0) { + ui->channelPower->setText(QString::number(powDbAvg, 'f', 1)); + } + + m_tickCount++; +} diff --git a/plugins/channelrx/demodpacket/packetdemodgui.h b/plugins/channelrx/demodpacket/packetdemodgui.h new file mode 100644 index 000000000..898df575b --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodgui.h @@ -0,0 +1,119 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_PACKETDEMODGUI_H +#define INCLUDE_PACKETDEMODGUI_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "channel/channelgui.h" +#include "dsp/channelmarker.h" +#include "dsp/movingaverage.h" +#include "util/messagequeue.h" +#include "packetdemodsettings.h" + +class PluginAPI; +class DeviceUISet; +class BasebandSampleSink; +class PacketDemod; +class PacketDemodGUI; + +namespace Ui { + class PacketDemodGUI; +} +class PacketDemodGUI; + +class PacketDemodGUI : public ChannelGUI { + Q_OBJECT + +public: + static PacketDemodGUI* create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel); + virtual void destroy(); + + void resetToDefaults(); + QByteArray serialize() const; + bool deserialize(const QByteArray& data); + virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } + +public slots: + void channelMarkerChangedByCursor(); + void channelMarkerHighlightedByCursor(); + +private: + Ui::PacketDemodGUI* ui; + PluginAPI* m_pluginAPI; + DeviceUISet* m_deviceUISet; + ChannelMarker m_channelMarker; + PacketDemodSettings m_settings; + bool m_doApplySettings; + + PacketDemod* m_packetDemod; + int m_basebandSampleRate; + uint32_t m_tickCount; + MessageQueue m_inputMessageQueue; + + QMenu *menu; // Column select context menu + + explicit PacketDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent = 0); + virtual ~PacketDemodGUI(); + + void blockApplySettings(bool block); + void applySettings(bool force = false); + void displaySettings(); + void displayStreamIndex(); + void packetReceived(QByteArray packet); + bool handleMessage(const Message& message); + + void leaveEvent(QEvent*); + void enterEvent(QEvent*); + + void resizeTable(); + QAction *createCheckableItem(QString& text, int idx, bool checked); + +private slots: + void on_deltaFrequency_changed(qint64 value); + void on_mode_currentIndexChanged(int value); + void on_rfBW_valueChanged(int index); + void on_fmDev_valueChanged(int value); + void on_filterFrom_editingFinished(); + void on_filterTo_editingFinished(); + void on_filterPID_stateChanged(int state); + void on_clearTable_clicked(); + void filterRow(int row); + void filter(); + void packets_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex); + void packets_sectionResized(int logicalIndex, int oldSize, int newSize); + void columnSelectMenu(QPoint pos); + void columnSelectMenuChecked(bool checked = false); + void onWidgetRolled(QWidget* widget, bool rollDown); + void onMenuDialogCalled(const QPoint& p); + void handleInputMessages(); + void tick(); +}; + +#endif // INCLUDE_PACKETDEMODGUI_H diff --git a/plugins/channelrx/demodpacket/packetdemodgui.ui b/plugins/channelrx/demodpacket/packetdemodgui.ui new file mode 100644 index 000000000..b4c67fada --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodgui.ui @@ -0,0 +1,579 @@ + + + PacketDemodGUI + + + + 0 + 0 + 398 + 519 + + + + + 0 + 0 + + + + + 352 + 0 + + + + + Liberation Sans + 9 + + + + Qt::StrongFocus + + + Packet Demodulator + + + Packet Demodulator + + + + + 0 + 0 + 390 + 101 + + + + + 350 + 0 + + + + Settings + + + + 3 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + 2 + + + + + + 16 + 0 + + + + Df + + + + + + + + 0 + 0 + + + + + 32 + 16 + + + + + Liberation Mono + 12 + + + + PointingHandCursor + + + Qt::StrongFocus + + + Demod shift frequency from center in Hz + + + + + + + Hz + + + + + + + Qt::Vertical + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Channel power + + + Qt::RightToLeft + + + 0.0 + + + + + + + dB + + + + + + + + + + + + + dB + + + + + + + + 0 + 0 + + + + + 0 + 24 + + + + + Liberation Mono + 8 + + + + Level meter (dB) top trace: average, bottom trace: instantaneous peak, tip: peak hold + + + + + + + + + + + + 100 + 0 + + + + Baud rate and modulation + + + + 1200 AFSK + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Vertical + + + + + + + BW + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + RF bandwidth + + + 10 + + + 400 + + + 1 + + + 100 + + + Qt::Horizontal + + + + + + + + 30 + 0 + + + + 10.0k + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Vertical + + + + + + + Dev + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + Frequency deviation + + + 10 + + + 60 + + + 1 + + + 50 + + + Qt::Horizontal + + + + + + + + 30 + 0 + + + + 5.0k + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + From + + + + + + + Display only packets where the source address (From) matches the specified regular expression + + + + + + + To: + + + + + + + Display only packets where the destination address (To) matches the specified regular expression + + + + + + + + + + Check to display only packets with PID set to No L3 (f0). This is typically used for APRS and BBS packets. + + + PID No L3 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Clear packets from table + + + + + + + :/bin.png:/bin.png + + + + + + + + + + + 0 + 110 + 391 + 261 + + + + + 0 + 0 + + + + Received Packets + + + + 2 + + + 3 + + + 3 + + + 3 + + + 3 + + + + + Received packets + + + QAbstractItemView::NoEditTriggers + + + + From + + + Source callsign/address + + + + + To + + + Destination callsign/address + + + + + Via + + + Repeater addresses + + + + + Type + + + AX.25 frame type + + + + + PID + + + Layer 3 protocol ID + + + + + Data (ASCII) + + + Packet data as ASCII + + + + + Data (Hex) + + + Packet data as hex + + + + + + + + + + RollupWidget + QWidget +
gui/rollupwidget.h
+ 1 +
+ + LevelMeterSignalDB + QWidget +
gui/levelmeter.h
+ 1 +
+ + ValueDialZ + QWidget +
gui/valuedialz.h
+ 1 +
+
+ + packets + + + + + +
diff --git a/plugins/channelrx/demodpacket/packetdemodplugin.cpp b/plugins/channelrx/demodpacket/packetdemodplugin.cpp new file mode 100644 index 000000000..27bfe534e --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodplugin.cpp @@ -0,0 +1,92 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include "plugin/pluginapi.h" + +#ifndef SERVER_MODE +#include "packetdemodgui.h" +#endif +#include "packetdemod.h" +#include "packetdemodwebapiadapter.h" +#include "packetdemodplugin.h" + +const PluginDescriptor PacketDemodPlugin::m_pluginDescriptor = { + PacketDemod::m_channelId, + QStringLiteral("Packet Demodulator"), + QStringLiteral("6.4.0"), + QStringLiteral("(c) Jon Beniston, M7RCE"), + QStringLiteral("https://github.com/f4exb/sdrangel"), + true, + QStringLiteral("https://github.com/f4exb/sdrangel") +}; + +PacketDemodPlugin::PacketDemodPlugin(QObject* parent) : + QObject(parent), + m_pluginAPI(0) +{ +} + +const PluginDescriptor& PacketDemodPlugin::getPluginDescriptor() const +{ + return m_pluginDescriptor; +} + +void PacketDemodPlugin::initPlugin(PluginAPI* pluginAPI) +{ + m_pluginAPI = pluginAPI; + + m_pluginAPI->registerRxChannel(PacketDemod::m_channelIdURI, PacketDemod::m_channelId, this); +} + +void PacketDemodPlugin::createRxChannel(DeviceAPI *deviceAPI, BasebandSampleSink **bs, ChannelAPI **cs) const +{ + if (bs || cs) + { + PacketDemod *instance = new PacketDemod(deviceAPI); + + if (bs) { + *bs = instance; + } + + if (cs) { + *cs = instance; + } + } +} + +#ifdef SERVER_MODE +ChannelGUI* PacketDemodPlugin::createRxChannelGUI( + DeviceUISet *deviceUISet, + BasebandSampleSink *rxChannel) const +{ + (void) deviceUISet; + (void) rxChannel; + return 0; +} +#else +ChannelGUI* PacketDemodPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel) const +{ + return PacketDemodGUI::create(m_pluginAPI, deviceUISet, rxChannel); +} +#endif + +ChannelWebAPIAdapter* PacketDemodPlugin::createChannelWebAPIAdapter() const +{ + return new PacketDemodWebAPIAdapter(); +} diff --git a/plugins/channelrx/demodpacket/packetdemodplugin.h b/plugins/channelrx/demodpacket/packetdemodplugin.h new file mode 100644 index 000000000..f8e3c3dd1 --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodplugin.h @@ -0,0 +1,49 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2016 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_PACKETDEMODPLUGIN_H +#define INCLUDE_PACKETDEMODPLUGIN_H + +#include +#include "plugin/plugininterface.h" + +class DeviceUISet; +class BasebandSampleSink; + +class PacketDemodPlugin : public QObject, PluginInterface { + Q_OBJECT + Q_INTERFACES(PluginInterface) + Q_PLUGIN_METADATA(IID "sdrangel.channel.packetdemod") + +public: + explicit PacketDemodPlugin(QObject* parent = NULL); + + const PluginDescriptor& getPluginDescriptor() const; + void initPlugin(PluginAPI* pluginAPI); + + virtual void createRxChannel(DeviceAPI *deviceAPI, BasebandSampleSink **bs, ChannelAPI **cs) const; + virtual ChannelGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel) const; + virtual ChannelWebAPIAdapter* createChannelWebAPIAdapter() const; + +private: + static const PluginDescriptor m_pluginDescriptor; + + PluginAPI* m_pluginAPI; +}; + +#endif // INCLUDE_PACKETDEMODPLUGIN_H diff --git a/plugins/channelrx/demodpacket/packetdemodsettings.cpp b/plugins/channelrx/demodpacket/packetdemodsettings.cpp new file mode 100644 index 000000000..3d8d1546f --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodsettings.cpp @@ -0,0 +1,145 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2015 Edouard Griffiths, F4EXB. // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include "dsp/dspengine.h" +#include "util/simpleserializer.h" +#include "settings/serializable.h" +#include "packetdemodsettings.h" + +PacketDemodSettings::PacketDemodSettings() : + m_channelMarker(0) +{ + resetToDefaults(); +} + +void PacketDemodSettings::resetToDefaults() +{ + m_inputFrequencyOffset = 0; + m_baud = 1200; + m_rfBandwidth = 12500.0f; + m_fmDeviation = 2500.0f; + m_filterFrom = ""; + m_filterTo = ""; + m_filterPID = ""; + + m_rgbColor = QColor(255, 255, 0).rgb(); + m_title = "Packet Demodulator"; + m_streamIndex = 0; + m_useReverseAPI = false; + m_reverseAPIAddress = "127.0.0.1"; + m_reverseAPIPort = 8888; + m_reverseAPIDeviceIndex = 0; + m_reverseAPIChannelIndex = 0; + + for (int i = 0; i < PACKETDEMOD_COLUMNS; i++) + { + m_columnIndexes[i] = i; + m_columnSizes[i] = -1; // Autosize + } +} + +QByteArray PacketDemodSettings::serialize() const +{ + SimpleSerializer s(1); + s.writeS32(1, m_inputFrequencyOffset); + s.writeS32(2, m_streamIndex); + s.writeString(4, m_filterFrom); + s.writeString(4, m_filterTo); + s.writeString(5, m_filterPID); + + if (m_channelMarker) { + s.writeBlob(6, m_channelMarker->serialize()); + } + + s.writeU32(7, m_rgbColor); + s.writeString(9, m_title); + s.writeBool(14, m_useReverseAPI); + s.writeString(15, m_reverseAPIAddress); + s.writeU32(16, m_reverseAPIPort); + s.writeU32(17, m_reverseAPIDeviceIndex); + s.writeU32(18, m_reverseAPIChannelIndex); + + for (int i = 0; i < PACKETDEMOD_COLUMNS; i++) + s.writeS32(100 + i, m_columnIndexes[i]); + for (int i = 0; i < PACKETDEMOD_COLUMNS; i++) + s.writeS32(200 + i, m_columnSizes[i]); + + return s.final(); +} + +bool PacketDemodSettings::deserialize(const QByteArray& data) +{ + SimpleDeserializer d(data); + + if(!d.isValid()) + { + resetToDefaults(); + return false; + } + + if(d.getVersion() == 1) + { + QByteArray bytetmp; + uint32_t utmp; + QString strtmp; + + d.readS32(1, &m_inputFrequencyOffset, 0); + d.readS32(2, &m_streamIndex, 0); + d.readString(3, &m_filterFrom, ""); + d.readString(4, &m_filterTo, ""); + d.readString(5, &m_filterPID, ""); + d.readBlob(6, &bytetmp); + + if (m_channelMarker) { + m_channelMarker->deserialize(bytetmp); + } + + d.readU32(7, &m_rgbColor); + d.readString(9, &m_title, "Packet Demodulator"); + d.readBool(14, &m_useReverseAPI, false); + d.readString(15, &m_reverseAPIAddress, "127.0.0.1"); + d.readU32(16, &utmp, 0); + + if ((utmp > 1023) && (utmp < 65535)) { + m_reverseAPIPort = utmp; + } else { + m_reverseAPIPort = 8888; + } + + d.readU32(17, &utmp, 0); + m_reverseAPIDeviceIndex = utmp > 99 ? 99 : utmp; + d.readU32(18, &utmp, 0); + m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp; + + for (int i = 0; i < PACKETDEMOD_COLUMNS; i++) + d.readS32(100 + i, &m_columnIndexes[i], i); + for (int i = 0; i < PACKETDEMOD_COLUMNS; i++) + d.readS32(200 + i, &m_columnSizes[i], -1); + + return true; + } + else + { + resetToDefaults(); + return false; + } +} + + diff --git a/plugins/channelrx/demodpacket/packetdemodsettings.h b/plugins/channelrx/demodpacket/packetdemodsettings.h new file mode 100644 index 000000000..326f09fa3 --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodsettings.h @@ -0,0 +1,61 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2017 Edouard Griffiths, F4EXB. // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_PACKETDEMODSETTINGS_H +#define INCLUDE_PACKETDEMODSETTINGS_H + +#include +#include + +class Serializable; + +// Number of columns in the table +#define PACKETDEMOD_COLUMNS 7 + +struct PacketDemodSettings +{ + qint32 m_inputFrequencyOffset; + qint32 m_baud; + Real m_rfBandwidth; + Real m_fmDeviation; + QString m_filterFrom; + QString m_filterTo; + QString m_filterPID; + + quint32 m_rgbColor; + QString m_title; + Serializable *m_channelMarker; + QString m_audioDeviceName; + int m_streamIndex; //!< MIMO channel. Not relevant when connected to SI (single Rx). + bool m_useReverseAPI; + QString m_reverseAPIAddress; + uint16_t m_reverseAPIPort; + uint16_t m_reverseAPIDeviceIndex; + uint16_t m_reverseAPIChannelIndex; + + int m_columnIndexes[PACKETDEMOD_COLUMNS];//!< How the columns are ordered in the table + int m_columnSizes[PACKETDEMOD_COLUMNS]; //!< Size of the columns in the table + + PacketDemodSettings(); + void resetToDefaults(); + void setChannelMarker(Serializable *channelMarker) { m_channelMarker = channelMarker; } + QByteArray serialize() const; + bool deserialize(const QByteArray& data); +}; + +#endif /* INCLUDE_PACKETDEMODSETTINGS_H */ diff --git a/plugins/channelrx/demodpacket/packetdemodsink.cpp b/plugins/channelrx/demodpacket/packetdemodsink.cpp new file mode 100644 index 000000000..572c16fd7 --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodsink.cpp @@ -0,0 +1,306 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include + +#include "dsp/dspengine.h" +#include "dsp/dspengine.h" +#include "util/db.h" +#include "util/stepfunctions.h" +#include "pipes/pipeendpoint.h" +#include "maincore.h" + +#include "packetdemod.h" +#include "packetdemodsink.h" + +PacketDemodSink::PacketDemodSink(PacketDemod *packetDemod) : + m_packetDemod(packetDemod), + m_channelSampleRate(PACKETDEMOD_CHANNEL_SAMPLE_RATE), + m_channelFrequencyOffset(0), + m_magsqSum(0.0f), + m_magsqPeak(0.0f), + m_magsqCount(0), + m_messageQueueToChannel(nullptr), + m_f1(nullptr), + m_f0(nullptr), + m_corrBuf(nullptr), + m_corrIdx(0), + m_corrCnt(0) +{ + m_magsq = 0.0; + + applySettings(m_settings, true); + applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true); +} + +PacketDemodSink::~PacketDemodSink() +{ +} + +void PacketDemodSink::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end) +{ + Complex ci; + + for (SampleVector::const_iterator it = begin; it != end; ++it) + { + Complex c(it->real(), it->imag()); + c *= m_nco.nextIQ(); + + if (m_interpolatorDistance < 1.0f) // interpolate + { + while (!m_interpolator.interpolate(&m_interpolatorDistanceRemain, c, &ci)) + { + processOneSample(ci); + m_interpolatorDistanceRemain += m_interpolatorDistance; + } + } + else // decimate + { + if (m_interpolator.decimate(&m_interpolatorDistanceRemain, c, &ci)) + { + processOneSample(ci); + m_interpolatorDistanceRemain += m_interpolatorDistance; + } + } + } +} + +void PacketDemodSink::processOneSample(Complex &ci) +{ + Complex ca; + + // FM demodulation + double magsqRaw; + Real deviation; + Real fmDemod = m_phaseDiscri.phaseDiscriminatorDelta(ci, magsqRaw, deviation); + + // Calculate average and peak levels for level meter + Real magsq = magsqRaw / (SDR_RX_SCALED*SDR_RX_SCALED); + m_movingAverage(magsq); + m_magsq = m_movingAverage.asDouble(); + m_magsqSum += magsq; + if (magsq > m_magsqPeak) + { + m_magsqPeak = magsq; + } + m_magsqCount++; + + m_corrBuf[m_corrIdx] = fmDemod; + if (m_corrCnt >= m_correlationLength && magsq > 1e-7) + { + // Correlate with 1200 + 2200 baud complex exponentials + Complex corrF0 = 0.0f; + Complex corrF1 = 0.0f; + for (int i = 0; i < m_correlationLength; i++) + { + int j = m_corrIdx - i; + if (j < 0) + j += m_correlationLength; + corrF0 += m_f0[i] * m_corrBuf[j]; + corrF1 += m_f1[i] * m_corrBuf[j]; + } + m_corrCnt--; // Avoid overflow in increment below + + // Low pass filter, to minimize changes above the baud rate + Real f0Filt = m_lowpassF0.filter(std::abs(corrF0)); + Real f1Filt = m_lowpassF1.filter(std::abs(corrF1)); + + // Determine which is the closest match and then quantise to 1 or -1 + // FIXME: We should try to account for the fact that higher frequencies can have preemphasis + float diff = f1Filt - f0Filt; + int sample = diff >= 0.0f ? 1 : 0; + + // Look for edge + if (sample != m_samplePrev) + { + m_syncCount = PACKETDEMOD_CHANNEL_SAMPLE_RATE/m_settings.m_baud/2; + } + else + { + m_syncCount--; + if (m_syncCount <= 0) + { + // HDLC deframing + + // Should be in the middle of the symbol + // NRZI decoding + int bit; + if (sample != m_symbolPrev) + bit = 0; + else + bit = 1; + m_symbolPrev = sample; + + // Store in shift reg + m_bits |= bit << m_bitCount; + m_bitCount++; + + if (bit == 1) + { + m_onesCount++; + // Shouldn't ever get 7 1s in a row + if ((m_onesCount == 7) && m_gotSOP) + { + m_gotSOP = false; + m_byteCount = 0; + } + } + else if (bit == 0) + { + if (m_onesCount == 5) + { + // Remove bit-stuffing (5 1s followed by a 0) + m_bitCount--; + } + else if (m_onesCount == 6) + { + // Start/end of packet + if ((m_bitCount == 8) && (m_bits == 0x7e) && (m_byteCount > 0)) + { + // End of packet + // Check CRC is valid + m_crc.init(); + m_crc.calculate(m_bytes, m_byteCount - 2); + uint16_t calcCrc = m_crc.get(); + uint16_t rxCrc = m_bytes[m_byteCount-2] | (m_bytes[m_byteCount-1] << 8); + if (calcCrc == rxCrc) + { + QByteArray rxPacket((char *)m_bytes, m_byteCount); + qDebug() << "RX: " << Qt::hex << rxPacket; + if (getMessageQueueToChannel()) + { + MainCore::MsgPacket *msg = MainCore::MsgPacket::create(m_packetDemod, rxPacket, QDateTime::currentDateTime()); // FIXME pointer + getMessageQueueToChannel()->push(msg); + } + } + else + qDebug() << "CRC mismatch: " << Qt::hex << calcCrc << " " << Qt::hex << rxCrc; + // Reset state to start receiving next packet + m_gotSOP = false; + m_bits = 0; + m_bitCount = 0; + m_byteCount = 0; + } + else + { + // Start of packet + m_gotSOP = true; + m_bits = 0; + m_bitCount = 0; + m_byteCount = 0; + } + } + m_onesCount = 0; + } + + if (m_gotSOP) + { + if (m_bitCount == 8) + { + if (m_byteCount >= 512) + { + // Too many bytes + m_gotSOP = false; + m_byteCount = 0; + } + else + { + m_bytes[m_byteCount] = m_bits; + m_byteCount++; + } + m_bits = 0; + m_bitCount = 0; + } + } + m_syncCount = PACKETDEMOD_CHANNEL_SAMPLE_RATE/m_settings.m_baud; + } + } + m_samplePrev = sample; + } + m_corrIdx = (m_corrIdx + 1) % m_correlationLength; + m_corrCnt++; +} + +void PacketDemodSink::applyChannelSettings(int channelSampleRate, int channelFrequencyOffset, bool force) +{ + qDebug() << "PacketDemodSink::applyChannelSettings:" + << " channelSampleRate: " << channelSampleRate + << " channelFrequencyOffset: " << channelFrequencyOffset; + + if ((m_channelFrequencyOffset != channelFrequencyOffset) || + (m_channelSampleRate != channelSampleRate) || force) + { + m_nco.setFreq(-channelFrequencyOffset, channelSampleRate); + } + + if ((m_channelSampleRate != channelSampleRate) || force) + { + m_interpolator.create(16, channelSampleRate, PACKETDEMOD_CHANNEL_BANDWIDTH); + m_interpolatorDistanceRemain = 0; + m_interpolatorDistance = (Real) channelSampleRate / (Real) PACKETDEMOD_CHANNEL_SAMPLE_RATE; + } + + m_channelSampleRate = channelSampleRate; + m_channelFrequencyOffset = channelFrequencyOffset; +} + +void PacketDemodSink::applySettings(const PacketDemodSettings& settings, bool force) +{ + qDebug() << "PacketDemodSink::applySettings:" + << " force: " << force; + + if (force) + { + m_lowpass.create(301, PACKETDEMOD_CHANNEL_SAMPLE_RATE, settings.m_rfBandwidth / 2.0f); + m_phaseDiscri.setFMScaling(PACKETDEMOD_CHANNEL_SAMPLE_RATE / (2.0f * settings.m_fmDeviation)); + + delete m_f1; + delete m_f0; + delete m_corrBuf; + m_correlationLength = PACKETDEMOD_CHANNEL_SAMPLE_RATE/settings.m_baud; + m_f1 = new Complex[m_correlationLength](); + m_f0 = new Complex[m_correlationLength](); + m_corrBuf = new Complex[m_correlationLength](); + m_corrIdx = 0; + m_corrCnt = 0; + Real f0 = 0.0f; + Real f1 = 0.0f; + for (int i = 0; i < m_correlationLength; i++) + { + m_f0[i] = Complex(cos(f0), sin(f0)); + m_f1[i] = Complex(cos(f1), sin(f1)); + f0 += 2.0f*(Real)M_PI*2200.0f/PACKETDEMOD_CHANNEL_SAMPLE_RATE; + f1 += 2.0f*(Real)M_PI*1200.0f/PACKETDEMOD_CHANNEL_SAMPLE_RATE; + } + + m_lowpassF1.create(301, PACKETDEMOD_CHANNEL_SAMPLE_RATE, settings.m_baud * 1.1f); + m_lowpassF0.create(301, PACKETDEMOD_CHANNEL_SAMPLE_RATE, settings.m_baud * 1.1f); + m_samplePrev = 0; + m_syncCount = 0; + m_symbolPrev = 0; + m_bits = 0; + m_bitCount = 0; + m_onesCount = 0; + m_gotSOP = false; + m_byteCount = 0; + } + + m_settings = settings; +} diff --git a/plugins/channelrx/demodpacket/packetdemodsink.h b/plugins/channelrx/demodpacket/packetdemodsink.h new file mode 100644 index 000000000..45ebb8de7 --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodsink.h @@ -0,0 +1,135 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_PACKETDEMODSINK_H +#define INCLUDE_PACKETDEMODSINK_H + +#include "dsp/channelsamplesink.h" +#include "dsp/phasediscri.h" +#include "dsp/nco.h" +#include "dsp/interpolator.h" +#include "dsp/firfilter.h" +#include "util/movingaverage.h" +#include "util/doublebufferfifo.h" +#include "util/messagequeue.h" +#include "util/crc.h" + +#include "packetdemodsettings.h" + +#include +#include +#include + +#define PACKETDEMOD_CHANNEL_BANDWIDTH 9600 +// Must be integer multiple of m_baud=1200 +#define PACKETDEMOD_CHANNEL_SAMPLE_RATE 38400 + +class PacketDemod; + +class PacketDemodSink : public ChannelSampleSink { +public: + PacketDemodSink(PacketDemod *packetDemod); + ~PacketDemodSink(); + + virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end); + + void applyChannelSettings(int channelSampleRate, int channelFrequencyOffset, bool force = false); + void applySettings(const PacketDemodSettings& settings, bool force = false); + void setMessageQueueToChannel(MessageQueue *messageQueue) { m_messageQueueToChannel = messageQueue; } + + double getMagSq() const { return m_magsq; } + + void getMagSqLevels(double& avg, double& peak, int& nbSamples) + { + if (m_magsqCount > 0) + { + m_magsq = m_magsqSum / m_magsqCount; + m_magSqLevelStore.m_magsq = m_magsq; + m_magSqLevelStore.m_magsqPeak = m_magsqPeak; + } + + avg = m_magSqLevelStore.m_magsq; + peak = m_magSqLevelStore.m_magsqPeak; + nbSamples = m_magsqCount == 0 ? 1 : m_magsqCount; + + m_magsqSum = 0.0f; + m_magsqPeak = 0.0f; + m_magsqCount = 0; + } + + +private: + struct MagSqLevelsStore + { + MagSqLevelsStore() : + m_magsq(1e-12), + m_magsqPeak(1e-12) + {} + double m_magsq; + double m_magsqPeak; + }; + + PacketDemod *m_packetDemod; + PacketDemodSettings m_settings; + int m_channelSampleRate; + int m_channelFrequencyOffset; + + NCO m_nco; + Interpolator m_interpolator; + Real m_interpolatorDistance; + Real m_interpolatorDistanceRemain; + + double m_magsq; + double m_magsqSum; + double m_magsqPeak; + int m_magsqCount; + MagSqLevelsStore m_magSqLevelStore; + + MessageQueue *m_messageQueueToChannel; + + MovingAverageUtil m_movingAverage; + + Lowpass m_lowpass; + PhaseDiscriminators m_phaseDiscri; + + int m_correlationLength; + Complex *m_f1; + Complex *m_f0; + Complex *m_corrBuf; + int m_corrIdx; + int m_corrCnt; + + Lowpass m_lowpassF1; + Lowpass m_lowpassF0; + + int m_samplePrev; + int m_syncCount; + int m_symbolPrev; + unsigned char m_bits; + int m_bitCount; + int m_onesCount; + bool m_gotSOP; + unsigned char m_bytes[512]; // Info field can be 256 bytes + int m_byteCount; + crc16x25 m_crc; + + void processOneSample(Complex &ci); + MessageQueue *getMessageQueueToChannel() { return m_messageQueueToChannel; } +}; + +#endif // INCLUDE_PACKETDEMODSINK_H diff --git a/plugins/channelrx/demodpacket/packetdemodwebapiadapter.cpp b/plugins/channelrx/demodpacket/packetdemodwebapiadapter.cpp new file mode 100644 index 000000000..60ba79449 --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodwebapiadapter.cpp @@ -0,0 +1,52 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include "SWGChannelSettings.h" +#include "packetdemod.h" +#include "packetdemodwebapiadapter.h" + +PacketDemodWebAPIAdapter::PacketDemodWebAPIAdapter() +{} + +PacketDemodWebAPIAdapter::~PacketDemodWebAPIAdapter() +{} + +int PacketDemodWebAPIAdapter::webapiSettingsGet( + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setPacketDemodSettings(new SWGSDRangel::SWGPacketDemodSettings()); + response.getPacketDemodSettings()->init(); + PacketDemod::webapiFormatChannelSettings(response, m_settings); + + return 200; +} + +int PacketDemodWebAPIAdapter::webapiSettingsPutPatch( + bool force, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage) +{ + (void) force; + (void) errorMessage; + PacketDemod::webapiUpdateChannelSettings(m_settings, channelSettingsKeys, response); + + return 200; +} diff --git a/plugins/channelrx/demodpacket/packetdemodwebapiadapter.h b/plugins/channelrx/demodpacket/packetdemodwebapiadapter.h new file mode 100644 index 000000000..79f3660b5 --- /dev/null +++ b/plugins/channelrx/demodpacket/packetdemodwebapiadapter.h @@ -0,0 +1,50 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2019 Edouard Griffiths, F4EXB. // +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_PACKETDEMOD_WEBAPIADAPTER_H +#define INCLUDE_PACKETDEMOD_WEBAPIADAPTER_H + +#include "channel/channelwebapiadapter.h" +#include "packetdemodsettings.h" + +/** + * Standalone API adapter only for the settings + */ +class PacketDemodWebAPIAdapter : public ChannelWebAPIAdapter { +public: + PacketDemodWebAPIAdapter(); + virtual ~PacketDemodWebAPIAdapter(); + + virtual QByteArray serialize() const { return m_settings.serialize(); } + virtual bool deserialize(const QByteArray& data) { return m_settings.deserialize(data); } + + virtual int webapiSettingsGet( + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage); + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& channelSettingsKeys, + SWGSDRangel::SWGChannelSettings& response, + QString& errorMessage); + +private: + PacketDemodSettings m_settings; +}; + +#endif // INCLUDE_PACKETDEMOD_WEBAPIADAPTER_H diff --git a/plugins/channelrx/demodpacket/readme.md b/plugins/channelrx/demodpacket/readme.md new file mode 100644 index 000000000..803f074fd --- /dev/null +++ b/plugins/channelrx/demodpacket/readme.md @@ -0,0 +1,63 @@ +

Packet radio demodulator plugin

+ +

Introduction

+ +This plugin can be used to demodulate packet radio (APRS/AX.25) data packets. Received packets can be sent to the APRS Feature for decoding and display. + +

Interface

+ +![Packet Demodulator plugin GUI](../../../doc/img/PacketDemod_plugin.png) + +

1: Frequency shift from center frequency of reception

+ +Use the wheels to adjust the frequency shift in Hz from the center frequency of reception. Left click on a digit sets the cursor position at this digit. Right click on a digit sets all digits on the right to zero. This effectively floors value at the digit position. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2. + +

2: Channel power

+ +Average total power in dB relative to a +/- 1.0 amplitude signal received in the pass band. + +

3: Level meter in dB

+ + - top bar (green): average value + - bottom bar (blue green): instantaneous peak value + - tip vertical bar (bright green): peak hold value + +

4: Modulation

+ +This specifies the baud rate and modulation that is used for the packet transmission. Currently 1200 baud AFSK is supported. + +

5: RF Bandwidth

+ +This specifies the bandwidth of a LPF that is applied to the input signal to limit the RF bandwidth. + +

6: Frequency deviation

+ +Adjusts the expected frequency deviation in 0.1 kHz steps from 1 to 6 kHz. Typical values are 2.5 kHz and 5 kHz. + +

7: Filter Packets From

+ +Entering a regular expression in the From field displays only packets where the source address, displayed in the From column, matches the regular expression. + +

8: Filter Packets To

+ +Entering a regular expression in the To field displays only packets where the destination address, displayed in the To column, matches the regular expression. + +

9: Filter PID No L3

+ +Checking this option displays only packets where the PID (Protocol ID) field is 0xf0 (no L3). This value is used by APRS and BBS data packets, and helps to filter out control packets. + +

10: Clear Packets from table

+ +Pressing this button clears all packets from the table. + +

Received Packets Table

+ +The received packets table displays the contexts of the packets that have been received. Only packets with valid CRCs are displayed. + +* From - The source address / callsign of the sender of the packet. +* To - The destination address. +* Via - List of addresses of repeaters the packet has passed through or directed via. +* Type - The AX.25 frame type. +* PID - Protocol Identifier. +* Data (ASCII) - The AX.25 information field displayed as ASCII. +* Data (Hex) - The AX.25 information field displayed as hexidecimal. diff --git a/sdrbase/CMakeLists.txt b/sdrbase/CMakeLists.txt index 87ba1431b..2735611a2 100644 --- a/sdrbase/CMakeLists.txt +++ b/sdrbase/CMakeLists.txt @@ -158,6 +158,7 @@ set(sdrbase_SOURCES feature/feature.cpp feature/featureset.cpp feature/featureutils.cpp + feature/featurewebapiutils.cpp limerfe/limerfeusbcalib.cpp @@ -174,6 +175,7 @@ set(sdrbase_SOURCES settings/preset.cpp settings/mainsettings.cpp + util/ax25.cpp util/azel.cpp util/crc.cpp util/CRC64.cpp @@ -182,6 +184,7 @@ set(sdrbase_SOURCES util/fixedtraits.cpp util/httpdownloadmanager.cpp util/lfsr.cpp + util/maidenhead.cpp util/message.cpp util/messagequeue.cpp util/morse.cpp @@ -339,6 +342,7 @@ set(sdrbase_HEADERS feature/feature.h feature/featureset.h feature/featureutils.h + feature/featurewebapiutils.h limerfe/limerfeusbcalib.h @@ -361,6 +365,7 @@ set(sdrbase_HEADERS settings/preset.h settings/mainsettings.h + util/ax25.h util/azel.h util/CRC64.h util/csv.h @@ -372,6 +377,7 @@ set(sdrbase_HEADERS util/incrementalarray.h util/incrementalvector.h util/lfsr.h + util/maidenhead.h util/message.h util/messagequeue.h util/morse.h diff --git a/sdrbase/util/ax25.cpp b/sdrbase/util/ax25.cpp new file mode 100644 index 000000000..6d562d8e2 --- /dev/null +++ b/sdrbase/util/ax25.cpp @@ -0,0 +1,213 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include "ax25.h" + +// CRC is assumed to be correct (checked in packetdemodsink) +bool AX25Packet::decode(QByteArray packet) +{ + int i, j; + char destAddress[7]; + unsigned char destSSID; + char sourceAddress[7]; + unsigned char sourceSSID; + char repeaterAddress[7]; + unsigned char repeaterSSID; + unsigned char ssid; + unsigned char control; + + // Check for minimum size packet. Addresses, control and CRC + if (packet.size() < 7+7+1+2) + return false; + + // Address - ASCII shifted right one bit + for (i = 0; i < 6; i++) + destAddress[i] = (packet[i] >> 1) & 0x7f; + destAddress[6] = NULL; + destSSID = packet[6]; + for (i = 0; i < 6; i++) + sourceAddress[i] = (packet[7+i] >> 1) & 0x7f; + sourceAddress[6] = NULL; + sourceSSID = packet[13]; + + // From = source address + m_from = QString(sourceAddress).trimmed(); + ssid = (sourceSSID >> 1) & 0xf; + if (ssid != 0) + m_from = QString("%1-%2").arg(m_from).arg(ssid); + + // To = destination address + m_to = QString(destAddress).trimmed(); + ssid = (destSSID >> 1) & 0xf; + if (ssid != 0) + m_to = QString("%1-%2").arg(m_to).arg(ssid); + + // List of repeater addresses for via field + m_via = QString(""); + i = 13; + while ((packet[i] & 1) == 0) + { + i++; + for (j = 0; j < 6; j++) + repeaterAddress[j] = (packet[i+j] >> 1) & 0x7f; + repeaterAddress[j] = NULL; + i += 6; + repeaterSSID = packet[i]; + ssid = (repeaterSSID >> 1) & 0xf; + QString repeater = QString(repeaterAddress).trimmed(); + QString ssidString = (ssid != 0) ? QString("%2-%3").arg(repeater).arg(ssid) : QString(repeater); + if (m_via == "") + m_via = ssidString; + else + m_via = QString("%1,%2").arg(m_via).arg(ssidString); + } + i++; + // Control can be 1 or 2 bytes - how to know if 2? + // I, U and S frames + control = packet[i++]; + if ((control & 1) == 0) + m_type = QString("I"); + else if ((control & 3) == 3) + { + // See figure 4.4 of AX.25 spec + switch (control & 0xef) + { + case 0x6f: + m_type = QString("SABME"); + break; + case 0x2f: + m_type = QString("SABM"); + break; + case 0x43: + m_type = QString("DISC"); + break; + case 0x0f: + m_type = QString("DM"); + break; + case 0x63: + m_type = QString("UA"); + break; + case 0x87: + m_type = QString("FR"); + break; + case 0x03: + m_type = QString("UI"); + break; + case 0xaf: + m_type = QString("XID"); + break; + case 0xe3: + m_type = QString("TEST"); + break; + default: + m_type = QString("U"); + break; + } + } + else + m_type = QString("S"); + // APRS packets use UI frames, which are a subype of U frames + // Only I and UI frames have Layer 3 Protocol ID (PID). + if ((m_type == "I") || (m_type == "UI")) + m_pid = QString("%1").arg(((unsigned)packet[i++]) & 0xff, 2, 16, QLatin1Char('0')); + else + m_pid = QString(""); + int infoStart, infoEnd; + infoStart = i; + infoEnd = packet.size()-2-i; + QByteArray info(packet.mid(infoStart, infoEnd)); + m_dataASCII = QString::fromLatin1(info); + m_dataHex = QString(info.toHex()); + + return true; +} + +bool AX25Packet::ssid(QByteArray& b, int i, int len, uint8_t& ssid) +{ + if (b[i] == '-') + { + if (len > i + 1) + { + ssid = b[i+1] - '0'; + if ((len > i + 2) && isdigit(b[i+2])) { + ssid = (ssid*10) + (b[i+2] - '0'); + } + if (ssid >= 16) + { + // FIXME: APRS-IS seems to support 2 letter SSIDs + // These can't be sent over RF, as not enough bits in AX.25 packet + qDebug() << "AX25Packet::ssid: SSID greater than 15 not supported"; + ssid = 0; + return false; + } + else + { + return true; + } + } + else + { + qDebug() << "AX25Packet::ssid: SSID number missing"; + return false; + } + } + else + return false; +} + +QByteArray AX25Packet::encodeAddress(QString address, uint8_t crrl) +{ + int len; + int i; + QByteArray encodedAddress; + QByteArray b; + uint8_t ssid = 0; + bool hyphenSeen = false; + + len = address.length(); + b = address.toUtf8(); + ssid = 0; + for (i = 0; i < 6; i++) + { + if ((i < len) && !hyphenSeen) + { + if (b[i] == '-') + { + AX25Packet::ssid(b, i, len, ssid); + hyphenSeen = true; + encodedAddress.append(' ' << 1); + } + else + { + encodedAddress.append(b[i] << 1); + } + } + else + { + encodedAddress.append(' ' << 1); + } + } + if (b[i] == '-') + { + AX25Packet::ssid(b, i, len, ssid); + } + encodedAddress.append(crrl | (ssid << 1)); + + return encodedAddress; +} diff --git a/sdrbase/util/ax25.h b/sdrbase/util/ax25.h new file mode 100644 index 000000000..44a45ffc3 --- /dev/null +++ b/sdrbase/util/ax25.h @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_AX25_H +#define INCLUDE_AX25_H + +#include +#include + +#include "export.h" + +struct SDRBASE_API AX25Packet { + QString m_from; + QString m_to; + QString m_via; + QString m_type; + QString m_pid; + QString m_dataASCII; + QString m_dataHex; + + bool decode(QByteArray packet); + + static bool ssid(QByteArray& b, int i, int len, uint8_t& ssid); + static QByteArray encodeAddress(QString address, uint8_t crrl=0); + +}; + +#endif // INCLUDE_AX25_H From bbe75aab6f0d33580309b211865c2066298153b7 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 20:07:28 +0000 Subject: [PATCH 08/21] Add Map feature for displaying the combined items from other plugins --- plugins/feature/CMakeLists.txt | 1 + plugins/feature/map/CMakeLists.txt | 56 ++++ plugins/feature/map/map.cpp | 345 ++++++++++++++++++++ plugins/feature/map/map.h | 144 +++++++++ plugins/feature/map/map.qrc | 7 + plugins/feature/map/map/MapStation.qml | 40 +++ plugins/feature/map/map/antenna.png | Bin 0 -> 1328 bytes plugins/feature/map/map/map.qml | 102 ++++++ plugins/feature/map/mapgui.cpp | 382 +++++++++++++++++++++++ plugins/feature/map/mapgui.h | 304 ++++++++++++++++++ plugins/feature/map/mapgui.ui | 250 +++++++++++++++ plugins/feature/map/mapplugin.cpp | 80 +++++ plugins/feature/map/mapplugin.h | 49 +++ plugins/feature/map/mapsettings.cpp | 112 +++++++ plugins/feature/map/mapsettings.h | 63 ++++ plugins/feature/map/mapwebapiadapter.cpp | 52 +++ plugins/feature/map/mapwebapiadapter.h | 50 +++ plugins/feature/map/readme.md | 43 +++ sdrbase/feature/featurewebapiutils.cpp | 101 ++++++ sdrbase/feature/featurewebapiutils.h | 32 ++ sdrbase/util/maidenhead.cpp | 81 +++++ sdrbase/util/maidenhead.h | 37 +++ 22 files changed, 2331 insertions(+) create mode 100644 plugins/feature/map/CMakeLists.txt create mode 100644 plugins/feature/map/map.cpp create mode 100644 plugins/feature/map/map.h create mode 100644 plugins/feature/map/map.qrc create mode 100644 plugins/feature/map/map/MapStation.qml create mode 100644 plugins/feature/map/map/antenna.png create mode 100644 plugins/feature/map/map/map.qml create mode 100644 plugins/feature/map/mapgui.cpp create mode 100644 plugins/feature/map/mapgui.h create mode 100644 plugins/feature/map/mapgui.ui create mode 100644 plugins/feature/map/mapplugin.cpp create mode 100644 plugins/feature/map/mapplugin.h create mode 100644 plugins/feature/map/mapsettings.cpp create mode 100644 plugins/feature/map/mapsettings.h create mode 100644 plugins/feature/map/mapwebapiadapter.cpp create mode 100644 plugins/feature/map/mapwebapiadapter.h create mode 100644 plugins/feature/map/readme.md create mode 100644 sdrbase/feature/featurewebapiutils.cpp create mode 100644 sdrbase/feature/featurewebapiutils.h create mode 100644 sdrbase/util/maidenhead.cpp create mode 100644 sdrbase/util/maidenhead.h diff --git a/plugins/feature/CMakeLists.txt b/plugins/feature/CMakeLists.txt index b9a1b553d..bb427681a 100644 --- a/plugins/feature/CMakeLists.txt +++ b/plugins/feature/CMakeLists.txt @@ -5,6 +5,7 @@ if (Qt5SerialPort_FOUND) endif() if (Qt5Quick_FOUND AND Qt5QuickWidgets_FOUND AND Qt5Positioning_FOUND) + add_subdirectory(map) add_subdirectory(vorlocalizer) endif() diff --git a/plugins/feature/map/CMakeLists.txt b/plugins/feature/map/CMakeLists.txt new file mode 100644 index 000000000..b5c87a2a2 --- /dev/null +++ b/plugins/feature/map/CMakeLists.txt @@ -0,0 +1,56 @@ +project(map) + +set(map_SOURCES + map.cpp + mapsettings.cpp + mapplugin.cpp + mapwebapiadapter.cpp +) + +set(map_HEADERS + map.h + mapsettings.h + mapplugin.h + mapreport.h + mapwebapiadapter.h +) + +include_directories( + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client +) + +if(NOT SERVER_MODE) + set(map_SOURCES + ${map_SOURCES} + mapgui.cpp + mapgui.ui + map.qrc + ) + set(map_HEADERS + ${map_HEADERS} + mapgui.h + ) + + set(TARGET_NAME map) + set(TARGET_LIB "Qt5::Widgets" Qt5::Quick Qt5::QuickWidgets Qt5::Positioning) + set(TARGET_LIB_GUI "sdrgui") + set(INSTALL_FOLDER ${INSTALL_PLUGINS_DIR}) +else() + set(TARGET_NAME mapsrv) + set(TARGET_LIB "") + set(TARGET_LIB_GUI "") + set(INSTALL_FOLDER ${INSTALL_PLUGINSSRV_DIR}) +endif() + +add_library(${TARGET_NAME} SHARED + ${map_SOURCES} +) + +target_link_libraries(${TARGET_NAME} + Qt5::Core + ${TARGET_LIB} + sdrbase + ${TARGET_LIB_GUI} +) + +install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER}) diff --git a/plugins/feature/map/map.cpp b/plugins/feature/map/map.cpp new file mode 100644 index 000000000..0b71366e2 --- /dev/null +++ b/plugins/feature/map/map.cpp @@ -0,0 +1,345 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include + +#include "SWGFeatureSettings.h" +#include "SWGFeatureReport.h" +#include "SWGFeatureActions.h" +#include "SWGDeviceState.h" + +#include "dsp/dspengine.h" + +#include "device/deviceset.h" +#include "channel/channelapi.h" +#include "feature/featureset.h" +#include "maincore.h" +#include "map.h" + +MESSAGE_CLASS_DEFINITION(Map::MsgConfigureMap, Message) +MESSAGE_CLASS_DEFINITION(Map::MsgFind, Message) + +const char* const Map::m_featureIdURI = "sdrangel.feature.map"; +const char* const Map::m_featureId = "Map"; + +Map::Map(WebAPIAdapterInterface *webAPIAdapterInterface) : + Feature(m_featureIdURI, webAPIAdapterInterface) +{ + qDebug("Map::Map: webAPIAdapterInterface: %p", webAPIAdapterInterface); + setObjectName(m_featureId); + m_state = StIdle; + m_errorMessage = "Map error"; + connect(&m_updatePipesTimer, SIGNAL(timeout()), this, SLOT(updatePipes())); + m_updatePipesTimer.start(1000); +} + +Map::~Map() +{ +} + +bool Map::handleMessage(const Message& cmd) +{ + if (MsgConfigureMap::match(cmd)) + { + MsgConfigureMap& cfg = (MsgConfigureMap&) cmd; + qDebug() << "Map::handleMessage: MsgConfigureMap"; + applySettings(cfg.getSettings(), cfg.getForce()); + + return true; + } + else if (MainCore::MsgMapItem::match(cmd)) + { + MainCore::MsgMapItem& msgMapItem = (MainCore::MsgMapItem&) cmd; + MainCore::MsgMapItem *copy = new MainCore::MsgMapItem(msgMapItem); + getMessageQueueToGUI()->push(copy); + return true; + } + else + { + return false; + } +} + +void Map::updatePipes() +{ + QList availablePipes = updateAvailablePipeSources("mapitems", MapSettings::m_pipeTypes, MapSettings::m_pipeURIs, this); + + if (availablePipes != m_availablePipes) + { + m_availablePipes = availablePipes; + if (getMessageQueueToGUI()) + { + MsgReportPipes *msgToGUI = MsgReportPipes::create(); + QList& msgAvailablePipes = msgToGUI->getAvailablePipes(); + msgAvailablePipes.append(availablePipes); + getMessageQueueToGUI()->push(msgToGUI); + } + } +} + +QByteArray Map::serialize() const +{ + return m_settings.serialize(); +} + +bool Map::deserialize(const QByteArray& data) +{ + if (m_settings.deserialize(data)) + { + MsgConfigureMap *msg = MsgConfigureMap::create(m_settings, true); + m_inputMessageQueue.push(msg); + return true; + } + else + { + m_settings.resetToDefaults(); + MsgConfigureMap *msg = MsgConfigureMap::create(m_settings, true); + m_inputMessageQueue.push(msg); + return false; + } +} + +void Map::applySettings(const MapSettings& settings, bool force) +{ + qDebug() << "Map::applySettings:" + << " m_displayNames: " << settings.m_displayNames + << " m_title: " << settings.m_title + << " m_rgbColor: " << settings.m_rgbColor + << " m_useReverseAPI: " << settings.m_useReverseAPI + << " m_reverseAPIAddress: " << settings.m_reverseAPIAddress + << " m_reverseAPIPort: " << settings.m_reverseAPIPort + << " m_reverseAPIFeatureSetIndex: " << settings.m_reverseAPIFeatureSetIndex + << " m_reverseAPIFeatureIndex: " << settings.m_reverseAPIFeatureIndex + << " force: " << force; + + QList reverseAPIKeys; + + if ((m_settings.m_displayNames != settings.m_displayNames) || force) { + reverseAPIKeys.append("displayNames"); + } + if ((m_settings.m_title != settings.m_title) || force) { + reverseAPIKeys.append("title"); + } + if ((m_settings.m_rgbColor != settings.m_rgbColor) || force) { + reverseAPIKeys.append("rgbColor"); + } + + if (settings.m_useReverseAPI) + { + bool fullUpdate = ((m_settings.m_useReverseAPI != settings.m_useReverseAPI) && settings.m_useReverseAPI) || + (m_settings.m_reverseAPIAddress != settings.m_reverseAPIAddress) || + (m_settings.m_reverseAPIPort != settings.m_reverseAPIPort) || + (m_settings.m_reverseAPIFeatureSetIndex != settings.m_reverseAPIFeatureSetIndex) || + (m_settings.m_reverseAPIFeatureIndex != settings.m_reverseAPIFeatureIndex); + webapiReverseSendSettings(reverseAPIKeys, settings, fullUpdate || force); + } + + m_settings = settings; +} + +int Map::webapiRun(bool run, + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage) +{ + (void) errorMessage; + getFeatureStateStr(*response.getState()); + return 202; +} + +int Map::webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setMapSettings(new SWGSDRangel::SWGMapSettings()); + response.getMapSettings()->init(); + webapiFormatFeatureSettings(response, m_settings); + return 200; +} + +int Map::webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + MapSettings settings = m_settings; + webapiUpdateFeatureSettings(settings, featureSettingsKeys, response); + + MsgConfigureMap *msg = MsgConfigureMap::create(settings, force); + m_inputMessageQueue.push(msg); + + if (m_guiMessageQueue) // forward to GUI if any + { + MsgConfigureMap *msgToGUI = MsgConfigureMap::create(settings, force); + m_guiMessageQueue->push(msgToGUI); + } + + webapiFormatFeatureSettings(response, settings); + + return 200; +} + +int Map::webapiActionsPost( + const QStringList& featureActionsKeys, + SWGSDRangel::SWGFeatureActions& query, + QString& errorMessage) +{ + SWGSDRangel::SWGMapActions *swgMapActions = query.getMapActions(); + + if (swgMapActions) + { + if (featureActionsKeys.contains("find")) + { + QString id = *swgMapActions->getFind(); + + if (getMessageQueueToGUI()) + getMessageQueueToGUI()->push(MsgFind::create(id)); + } + + return 202; + } + else + { + errorMessage = "Missing MapActions in query"; + return 400; + } +} + +void Map::webapiFormatFeatureSettings( + SWGSDRangel::SWGFeatureSettings& response, + const MapSettings& settings) +{ + response.getMapSettings()->setDisplayNames(settings.m_displayNames ? 1 : 0); + + if (response.getMapSettings()->getTitle()) { + *response.getMapSettings()->getTitle() = settings.m_title; + } else { + response.getMapSettings()->setTitle(new QString(settings.m_title)); + } + + response.getMapSettings()->setRgbColor(settings.m_rgbColor); + response.getMapSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); + + if (response.getMapSettings()->getReverseApiAddress()) { + *response.getMapSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; + } else { + response.getMapSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); + } + + response.getMapSettings()->setReverseApiPort(settings.m_reverseAPIPort); + response.getMapSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIFeatureSetIndex); + response.getMapSettings()->setReverseApiChannelIndex(settings.m_reverseAPIFeatureIndex); +} + +void Map::webapiUpdateFeatureSettings( + MapSettings& settings, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response) +{ + if (featureSettingsKeys.contains("displayNames")) { + settings.m_displayNames = response.getMapSettings()->getDisplayNames(); + } + if (featureSettingsKeys.contains("title")) { + settings.m_title = *response.getMapSettings()->getTitle(); + } + if (featureSettingsKeys.contains("rgbColor")) { + settings.m_rgbColor = response.getMapSettings()->getRgbColor(); + } + if (featureSettingsKeys.contains("useReverseAPI")) { + settings.m_useReverseAPI = response.getMapSettings()->getUseReverseApi() != 0; + } + if (featureSettingsKeys.contains("reverseAPIAddress")) { + settings.m_reverseAPIAddress = *response.getMapSettings()->getReverseApiAddress(); + } + if (featureSettingsKeys.contains("reverseAPIPort")) { + settings.m_reverseAPIPort = response.getMapSettings()->getReverseApiPort(); + } + if (featureSettingsKeys.contains("reverseAPIDeviceIndex")) { + settings.m_reverseAPIFeatureSetIndex = response.getMapSettings()->getReverseApiDeviceIndex(); + } + if (featureSettingsKeys.contains("reverseAPIChannelIndex")) { + settings.m_reverseAPIFeatureIndex = response.getMapSettings()->getReverseApiChannelIndex(); + } +} + +void Map::webapiReverseSendSettings(QList& featureSettingsKeys, const MapSettings& settings, bool force) +{ + SWGSDRangel::SWGFeatureSettings *swgFeatureSettings = new SWGSDRangel::SWGFeatureSettings(); + // swgFeatureSettings->setOriginatorFeatureIndex(getIndexInDeviceSet()); + // swgFeatureSettings->setOriginatorFeatureSetIndex(getDeviceSetIndex()); + swgFeatureSettings->setFeatureType(new QString("Map")); + swgFeatureSettings->setMapSettings(new SWGSDRangel::SWGMapSettings()); + SWGSDRangel::SWGMapSettings *swgMapSettings = swgFeatureSettings->getMapSettings(); + + // transfer data that has been modified. When force is on transfer all data except reverse API data + + if (featureSettingsKeys.contains("displayNames") || force) { + swgMapSettings->setDisplayNames(settings.m_displayNames); + } + if (featureSettingsKeys.contains("title") || force) { + swgMapSettings->setTitle(new QString(settings.m_title)); + } + if (featureSettingsKeys.contains("rgbColor") || force) { + swgMapSettings->setRgbColor(settings.m_rgbColor); + } + + QString channelSettingsURL = QString("http://%1:%2/sdrangel/featureset/%3/feature/%4/settings") + .arg(settings.m_reverseAPIAddress) + .arg(settings.m_reverseAPIPort) + .arg(settings.m_reverseAPIFeatureSetIndex) + .arg(settings.m_reverseAPIFeatureIndex); + m_networkRequest.setUrl(QUrl(channelSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer = new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgFeatureSettings->asJson().toUtf8()); + buffer->seek(0); + + // Always use PATCH to avoid passing reverse API settings + QNetworkReply *reply = m_networkManager->sendCustomRequest(m_networkRequest, "PATCH", buffer); + buffer->setParent(reply); + + delete swgFeatureSettings; +} + +void Map::networkManagerFinished(QNetworkReply *reply) +{ + QNetworkReply::NetworkError replyError = reply->error(); + + if (replyError) + { + qWarning() << "Map::networkManagerFinished:" + << " error(" << (int) replyError + << "): " << replyError + << ": " << reply->errorString(); + } + else + { + QString answer = reply->readAll(); + answer.chop(1); // remove last \n + qDebug("Map::networkManagerFinished: reply:\n%s", answer.toStdString().c_str()); + } + + reply->deleteLater(); +} diff --git a/plugins/feature/map/map.h b/plugins/feature/map/map.h new file mode 100644 index 000000000..0379cef7c --- /dev/null +++ b/plugins/feature/map/map.h @@ -0,0 +1,144 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_MAP_H_ +#define INCLUDE_FEATURE_MAP_H_ + +#include +#include +#include +#include + +#include "feature/feature.h" +#include "util/message.h" + +#include "mapsettings.h" + +class WebAPIAdapterInterface; +class QNetworkAccessManager; +class QNetworkReply; + +namespace SWGSDRangel { + class SWGDeviceState; +} + +class Map : public Feature +{ + Q_OBJECT +public: + class MsgConfigureMap : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const MapSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } + + static MsgConfigureMap* create(const MapSettings& settings, bool force) { + return new MsgConfigureMap(settings, force); + } + + private: + MapSettings m_settings; + bool m_force; + + MsgConfigureMap(const MapSettings& settings, bool force) : + Message(), + m_settings(settings), + m_force(force) + { } + }; + + class MsgFind : public Message { + MESSAGE_CLASS_DECLARATION + + public: + QString getTarget() const { return m_target; } + + static MsgFind* create(const QString& target) { + return new MsgFind(target); + } + + private: + QString m_target; + + MsgFind(const QString& target) : + Message(), + m_target(target) + {} + }; + + Map(WebAPIAdapterInterface *webAPIAdapterInterface); + virtual ~Map(); + virtual void destroy() { delete this; } + virtual bool handleMessage(const Message& cmd); + + virtual void getIdentifier(QString& id) const { id = objectName(); } + virtual void getTitle(QString& title) const { title = m_settings.m_title; } + + virtual QByteArray serialize() const; + virtual bool deserialize(const QByteArray& data); + + virtual int webapiRun(bool run, + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage); + + virtual int webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + virtual int webapiActionsPost( + const QStringList& featureActionsKeys, + SWGSDRangel::SWGFeatureActions& query, + QString& errorMessage); + + static void webapiFormatFeatureSettings( + SWGSDRangel::SWGFeatureSettings& response, + const MapSettings& settings); + + static void webapiUpdateFeatureSettings( + MapSettings& settings, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response); + + static const char* const m_featureIdURI; + static const char* const m_featureId; + +private: + QThread m_thread; + MapSettings m_settings; + QList m_availablePipes; + QTimer m_updatePipesTimer; + + QNetworkAccessManager *m_networkManager; + QNetworkRequest m_networkRequest; + + void applySettings(const MapSettings& settings, bool force = false); + void webapiReverseSendSettings(QList& featureSettingsKeys, const MapSettings& settings, bool force); + +private slots: + void updatePipes(); + void networkManagerFinished(QNetworkReply *reply); +}; + +#endif // INCLUDE_FEATURE_MAP_H_ diff --git a/plugins/feature/map/map.qrc b/plugins/feature/map/map.qrc new file mode 100644 index 000000000..4299b3178 --- /dev/null +++ b/plugins/feature/map/map.qrc @@ -0,0 +1,7 @@ + + + map/map.qml + map/MapStation.qml + map/antenna.png + + diff --git a/plugins/feature/map/map/MapStation.qml b/plugins/feature/map/map/MapStation.qml new file mode 100644 index 000000000..a69346e46 --- /dev/null +++ b/plugins/feature/map/map/MapStation.qml @@ -0,0 +1,40 @@ +import QtQuick 2.12 +import QtLocation 5.12 +import QtPositioning 5.12 + +MapQuickItem { + id: station + property string stationName // Name of the station, E.g. Home + + coordinate: QtPositioning.coordinate(51.5, 0.125) // Location of the antenna (QTH) - London + zoomLevel: 11 + + anchorPoint.x: image.width/2 + anchorPoint.y: image.height/2 + + sourceItem: Grid { + columns: 1 + Grid { + horizontalItemAlignment: Grid.AlignHCenter + layer.enabled: true + layer.smooth: true + Image { + id: image + source: "antenna.png" + } + Rectangle { + id: bubble + color: "lightblue" + border.width: 1 + width: text.width * 1.3 + height: text.height * 1.3 + radius: 5 + Text { + id: text + anchors.centerIn: parent + text: stationName + } + } + } + } +} diff --git a/plugins/feature/map/map/antenna.png b/plugins/feature/map/map/antenna.png new file mode 100644 index 0000000000000000000000000000000000000000..f13c9188161f77915ca18139b8b4884b60be5511 GIT binary patch literal 1328 zcmV-01<(44P)X1ieW_ zK~!ko?V3$&RYerXe|=O+MLxy0kf^jOh7A@gARp=mn;4U#prS+*AYnlwYzWar(UtO< zE=&w53tb2ZA`QV60n|j$HjO5N8WSis0;N!dmMS3Hj*I>$oKEh0l=j}|CE+AD@8&-< zXXebD&$$n7aVm(JUolV(Oa&$YbxJv~9#RU^noW7MJV!9oPtrOT!7= ztHr!zc%1|G0lxufgpCI(bUG!%I)U}TCg7j{W7lT^ZDwcp0&{>&jxj@kCx9=^xG#Y* z`Cj}2>9zxoYf(2#PXW#1@hfnDz83$e(e-bPN`$Iep%a;-_b7F}TZZj`pMjA{FTOn{UNyK@t($AF-Wur2KwQ#HmaLR_dt?+Md^#v%rXm&G;k<&*Olb~xba z)#$-E1$aYDw;L>@-Rd;aw+!eOR&M%M0GDLIrDlAmPSv{39h$3O!7Cg(iKl^o#JaI0YzH@Cm)cd|^KZZm-689;f#j(_U!Oi{}jffQiPjQ+wp!thfd}$&WkV7I%oFogqw@d{OOLx1hDBZ&%V~WVZs?lR5gW(_&UA z7jnSb8&qf4^h{2=sCiQhItSdBrO(&uGYy!o_ph?_ogiKgSe~!4@*_>SBunAmr9d=P z(fYEySYbr}m&L0tpGAEJn2{x8tc*y~e1i5!7G6~Y%|0^&6re{gusfpdas4(JtRZL% zd3~RSS7HL>q8a*aG+1NM7ON^GC4f!FF6TIbRMBXuf>WYb1xx`hn0#nVngyuVLVezJ zR*%K1)2u>Xeco5~R-$LSu-NS&ZUJWM_n6WPPt#3>mRdU~Fe$W8;P&aU*!iTd4+nE| zXRlEjRCV1+?d-ZCg{?7GG>GxoS+{YBGXdP+N!k7N#0& zK;Lg(<+@wS(0iYnIy>+;&5P*$UhI_2Et7Zh-_#DO2y(z@X%fJHJNUx{t;(RtIc{zv z{5P{$qUS(q1Ta@V{$qo;18>py4%BC=?{WR27@bB3a6rjkUg;ff{I`PsKI;d%h{8b# muuZOTuz8KsCBbdFCFwsJE06r64B5H>0000 11) { + station.zoomLevel = zoomLevel + mapZoomLevel = zoomLevel + } else { + station.zoomLevel = 11 + mapZoomLevel = 11 + } + } + + } + + Component { + id: mapComponent + MapQuickItem { + id: mapElement + anchorPoint.x: image.width/2 + anchorPoint.y: image.height/2 + coordinate: position + zoomLevel: mapImageFixedSize ? zoomLevel : mapZoomLevel + + sourceItem: Grid { + columns: 1 + Grid { + horizontalItemAlignment: Grid.AlignHCenter + columnSpacing: 5 + layer.enabled: true + layer.smooth: true + Image { + id: image + rotation: mapImageRotation + source: mapImage + MouseArea { + anchors.fill: parent + hoverEnabled: true + onClicked: (mouse) => { + selected = !selected + } + } + } + Rectangle { + id: bubble + color: bubbleColour + border.width: 1 + width: text.width + 5 + height: text.height + 5 + radius: 5 + visible: mapTextVisible + Text { + id: text + anchors.centerIn: parent + text: mapText + } + MouseArea { + anchors.fill: parent + hoverEnabled: true + onClicked: (mouse) => { + selected = !selected + } + } + } + } + } + } + } + +} diff --git a/plugins/feature/map/mapgui.cpp b/plugins/feature/map/mapgui.cpp new file mode 100644 index 000000000..bd854e44f --- /dev/null +++ b/plugins/feature/map/mapgui.cpp @@ -0,0 +1,382 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include +#include + +#include "feature/featureuiset.h" +#include "gui/basicfeaturesettingsdialog.h" +#include "mainwindow.h" +#include "device/deviceuiset.h" +#include "util/units.h" +#include "util/maidenhead.h" + +#include "ui_mapgui.h" +#include "map.h" +#include "mapgui.h" +#include "SWGMapItem.h" + +QVariant MapModel::data(const QModelIndex &index, int role) const +{ + int row = index.row(); + + if ((row < 0) || (row >= m_items.count())) + return QVariant(); + if (role == MapModel::positionRole) + { + // Coordinates to display the item at + QGeoCoordinate coords; + coords.setLatitude(m_items[row]->m_latitude); + coords.setLongitude(m_items[row]->m_longitude); + return QVariant::fromValue(coords); + } + else if (role == MapModel::mapTextRole) + { + // Create the text to go in the bubble next to the image + if (m_selected[row]) + return QVariant::fromValue(m_items[row]->m_text); + else + return QVariant::fromValue(m_items[row]->m_name); + } + else if (role == MapModel::mapTextVisibleRole) + { + return QVariant::fromValue(m_selected[row] || m_displayNames); + } + else if (role == MapModel::mapImageRole) + { + // Set an image to use + return QVariant::fromValue(m_items[row]->m_image); + } + else if (role == MapModel::mapImageRotationRole) + { + // Angle to rotate image by + return QVariant::fromValue(m_items[row]->m_imageRotation); + } + else if (role == MapModel::mapImageFixedSizeRole) + { + // Whether image changes size with zoom level + return QVariant::fromValue(m_items[row]->m_imageFixedSize); + } + else if (role == MapModel::bubbleColourRole) + { + // Select a background colour for the text bubble next to the item + if (m_selected[row]) + return QVariant::fromValue(QColor("lightgreen")); + else + return QVariant::fromValue(QColor("lightblue")); + } + else if (role == MapModel::selectedRole) + return QVariant::fromValue(m_selected[row]); + return QVariant(); +} + +bool MapModel::setData(const QModelIndex &index, const QVariant& value, int role) +{ + int row = index.row(); + if ((row < 0) || (row >= m_items.count())) + return false; + if (role == MapModel::selectedRole) + { + m_selected[row] = value.toBool(); + emit dataChanged(index, index); + return true; + } + return true; +} + +MapGUI* MapGUI::create(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature) +{ + MapGUI* gui = new MapGUI(pluginAPI, featureUISet, feature); + return gui; +} + +void MapGUI::destroy() +{ + delete this; +} + +void MapGUI::resetToDefaults() +{ + m_settings.resetToDefaults(); + displaySettings(); + applySettings(true); +} + +QByteArray MapGUI::serialize() const +{ + return m_settings.serialize(); +} + +bool MapGUI::deserialize(const QByteArray& data) +{ + if (m_settings.deserialize(data)) + { + displaySettings(); + applySettings(true); + return true; + } + else + { + resetToDefaults(); + return false; + } +} + +bool MapGUI::handleMessage(const Message& message) +{ + if (Map::MsgConfigureMap::match(message)) + { + qDebug("MapGUI::handleMessage: Map::MsgConfigureMap"); + const Map::MsgConfigureMap& cfg = (Map::MsgConfigureMap&) message; + m_settings = cfg.getSettings(); + blockApplySettings(true); + displaySettings(); + blockApplySettings(false); + + return true; + } + else if (PipeEndPoint::MsgReportPipes::match(message)) + { + PipeEndPoint::MsgReportPipes& report = (PipeEndPoint::MsgReportPipes&) message; + m_availablePipes = report.getAvailablePipes(); + updatePipeList(); + + return true; + } + else if (Map::MsgFind::match(message)) + { + Map::MsgFind& msgFind = (Map::MsgFind&) message; + find(msgFind.getTarget()); + return true; + } + else if (MainCore::MsgMapItem::match(message)) + { + MainCore::MsgMapItem& msgMapItem = (MainCore::MsgMapItem&) message; + SWGSDRangel::SWGMapItem *swgMapItem = msgMapItem.getSWGMapItem(); + m_mapModel.update(msgMapItem.getPipeSource(), swgMapItem); + return true; + } + + return false; +} + +void MapGUI::handleInputMessages() +{ + Message* message; + + while ((message = getInputMessageQueue()->pop())) + { + if (handleMessage(*message)) { + delete message; + } + } +} + +void MapGUI::onWidgetRolled(QWidget* widget, bool rollDown) +{ + (void) widget; + (void) rollDown; +} + +MapGUI::MapGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature, QWidget* parent) : + FeatureGUI(parent), + ui(new Ui::MapGUI), + m_pluginAPI(pluginAPI), + m_featureUISet(featureUISet), + m_doApplySettings(true), + m_mapModel(this) +{ + ui->setupUi(this); + + ui->map->rootContext()->setContextProperty("mapModel", &m_mapModel); + ui->map->setSource(QUrl(QStringLiteral("qrc:/map/map/map.qml"))); + + setAttribute(Qt::WA_DeleteOnClose, true); + setChannelWidget(false); + connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_map = reinterpret_cast(feature); + m_map->setMessageQueueToGUI(&m_inputMessageQueue); + + m_featureUISet->addRollupWidget(this); + + // Get station position + float stationLatitude = MainCore::instance()->getSettings().getLatitude(); + float stationLongitude = MainCore::instance()->getSettings().getLongitude(); + float stationAltitude = MainCore::instance()->getSettings().getAltitude(); + + // Centre map at My Position + QQuickItem *item = ui->map->rootObject(); + QObject *object = item->findChild("map"); + if(object != NULL) + { + QGeoCoordinate coords = object->property("center").value(); + coords.setLatitude(stationLatitude); + coords.setLongitude(stationLongitude); + object->setProperty("center", QVariant::fromValue(coords)); + } + // Move antenna icon to My Position to start with + QObject *stationObject = item->findChild("station"); + if(stationObject != NULL) + { + QGeoCoordinate coords = stationObject->property("coordinate").value(); + coords.setLatitude(stationLatitude); + coords.setLongitude(stationLongitude); + coords.setAltitude(stationAltitude); + stationObject->setProperty("coordinate", QVariant::fromValue(coords)); + stationObject->setProperty("stationName", QVariant::fromValue(MainCore::instance()->getSettings().getStationName())); + } + + connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); + connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + + displaySettings(); + applySettings(true); +} + +MapGUI::~MapGUI() +{ + delete ui; +} + +void MapGUI::blockApplySettings(bool block) +{ + m_doApplySettings = !block; +} + +void MapGUI::displaySettings() +{ + setTitleColor(m_settings.m_rgbColor); + setWindowTitle(m_settings.m_title); + blockApplySettings(true); + ui->displayNames->setChecked(m_settings.m_displayNames); + m_mapModel.setDisplayNames(m_settings.m_displayNames); + blockApplySettings(false); +} + +void MapGUI::updatePipeList() +{ + ui->pipes->blockSignals(true); + ui->pipes->clear(); + + QList::const_iterator it = m_availablePipes.begin(); + + for (int i = 0; it != m_availablePipes.end(); ++it, i++) + { + ui->pipes->addItem(it->getName()); + } + + ui->pipes->blockSignals(false); +} + +void MapGUI::leaveEvent(QEvent*) +{ +} + +void MapGUI::enterEvent(QEvent*) +{ +} + +void MapGUI::onMenuDialogCalled(const QPoint &p) +{ + if (m_contextMenuType == ContextMenuChannelSettings) + { + BasicFeatureSettingsDialog dialog(this); + dialog.setTitle(m_settings.m_title); + dialog.setColor(m_settings.m_rgbColor); + dialog.setUseReverseAPI(m_settings.m_useReverseAPI); + dialog.setReverseAPIAddress(m_settings.m_reverseAPIAddress); + dialog.setReverseAPIPort(m_settings.m_reverseAPIPort); + dialog.setReverseAPIFeatureSetIndex(m_settings.m_reverseAPIFeatureSetIndex); + dialog.setReverseAPIFeatureIndex(m_settings.m_reverseAPIFeatureIndex); + + dialog.move(p); + dialog.exec(); + + m_settings.m_rgbColor = dialog.getColor().rgb(); + m_settings.m_title = dialog.getTitle(); + m_settings.m_useReverseAPI = dialog.useReverseAPI(); + m_settings.m_reverseAPIAddress = dialog.getReverseAPIAddress(); + m_settings.m_reverseAPIPort = dialog.getReverseAPIPort(); + m_settings.m_reverseAPIFeatureSetIndex = dialog.getReverseAPIFeatureSetIndex(); + m_settings.m_reverseAPIFeatureIndex = dialog.getReverseAPIFeatureIndex(); + + setWindowTitle(m_settings.m_title); + setTitleColor(m_settings.m_rgbColor); + + applySettings(); + } + + resetContextMenuType(); +} + +void MapGUI::applySettings(bool force) +{ + if (m_doApplySettings) + { + Map::MsgConfigureMap* message = Map::MsgConfigureMap::create(m_settings, force); + m_map->getInputMessageQueue()->push(message); + } +} + +void MapGUI::on_displayNames_clicked(bool checked) +{ + m_settings.m_displayNames = checked; + m_mapModel.setDisplayNames(checked); +} + +void MapGUI::on_find_returnPressed() +{ + find(ui->find->text().trimmed()); +} + +void MapGUI::find(const QString& target) +{ + if (!target.isEmpty()) + { + QQuickItem *item = ui->map->rootObject(); + QObject *map = item->findChild("map"); + if (map != NULL) + { + float latitude, longitude; + if (Units::stringToLatitudeAndLongitude(target, latitude, longitude)) + { + map->setProperty("center", QVariant::fromValue(QGeoCoordinate(latitude, longitude))); + } + else if (Maidenhead::fromMaidenhead(target, latitude, longitude)) + { + map->setProperty("center", QVariant::fromValue(QGeoCoordinate(latitude, longitude))); + } + else + { + MapItem *mapItem = m_mapModel.findMapItem(target); + if (mapItem != nullptr) + map->setProperty("center", QVariant::fromValue(mapItem->getCoordinates())); + } + } + } +} + +void MapGUI::on_deleteAll_clicked() +{ + m_mapModel.removeAll(); +} diff --git a/plugins/feature/map/mapgui.h b/plugins/feature/map/mapgui.h new file mode 100644 index 000000000..c78c8e88b --- /dev/null +++ b/plugins/feature/map/mapgui.h @@ -0,0 +1,304 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_MAPGUI_H_ +#define INCLUDE_FEATURE_MAPGUI_H_ + +#include +#include +#include + +#include "feature/featuregui.h" +#include "util/messagequeue.h" +#include "pipes/pipeendpoint.h" +#include "mapsettings.h" +#include "SWGMapItem.h" + +class PluginAPI; +class FeatureUISet; +class Map; + +namespace Ui { + class MapGUI; +} + +class MapGUI; +class MapModel; + +// Information required about each item displayed on the map +class MapItem { + +public: + MapItem(const PipeEndPoint *source, SWGSDRangel::SWGMapItem *mapItem) + { + m_source = source; + m_name = *mapItem->getName(); + m_latitude = mapItem->getLatitude(); + m_longitude = mapItem->getLongitude(); + m_image = *mapItem->getImage(); + m_imageRotation = mapItem->getImageRotation(); + m_imageFixedSize = mapItem->getImageFixedSize() == 1; + m_text = *mapItem->getText(); + } + + void update(SWGSDRangel::SWGMapItem *mapItem) + { + m_latitude = mapItem->getLatitude(); + m_longitude = mapItem->getLongitude(); + m_image = *mapItem->getImage(); + m_imageRotation = mapItem->getImageRotation(); + m_imageFixedSize = mapItem->getImageFixedSize() == 1; + m_text = *mapItem->getText(); + } + + QGeoCoordinate getCoordinates() + { + QGeoCoordinate coords; + coords.setLatitude(m_latitude); + coords.setLongitude(m_longitude); + return coords; + } + +private: + friend MapModel; + const PipeEndPoint *m_source; // Channel/feature that created the item + QString m_name; + float m_latitude; + float m_longitude; + QString m_image; + int m_imageRotation; + bool m_imageFixedSize; // Keep image same size when map is zoomed + QString m_text; +}; + +// Model used for each item on the map +class MapModel : public QAbstractListModel { + Q_OBJECT + +public: + using QAbstractListModel::QAbstractListModel; + enum MarkerRoles { + positionRole = Qt::UserRole + 1, + mapTextRole = Qt::UserRole + 2, + mapTextVisibleRole = Qt::UserRole + 3, + mapImageRole = Qt::UserRole + 4, + mapImageRotationRole = Qt::UserRole + 5, + mapImageFixedSizeRole = Qt::UserRole + 6, + bubbleColourRole = Qt::UserRole + 7, + selectedRole = Qt::UserRole + 8 + }; + + MapModel(MapGUI *gui) : + m_gui(gui) + { + } + + Q_INVOKABLE void add(MapItem *item) + { + beginInsertRows(QModelIndex(), rowCount(), rowCount()); + m_items.append(item); + m_selected.append(false); + endInsertRows(); + } + + void update(const PipeEndPoint *source, SWGSDRangel::SWGMapItem *swgMapItem) + { + QString name = *swgMapItem->getName(); + // Add, update or delete and item + MapItem *item = findMapItem(source, name); + if (item != nullptr) + { + QString image = *swgMapItem->getImage(); + if (image.isEmpty()) + { + // Delete the item + remove(item); + } + else + { + // Update the item + item->update(swgMapItem); + update(item); + } + } + else + { + // Make sure not a duplicate request to delete + QString image = *swgMapItem->getImage(); + if (!image.isEmpty()) + { + // Add new item + add(new MapItem(source, swgMapItem)); + } + } + } + + void update(MapItem *item) + { + int row = m_items.indexOf(item); + if (row >= 0) + { + QModelIndex idx = index(row); + emit dataChanged(idx, idx); + } + } + + void remove(MapItem *item) + { + int row = m_items.indexOf(item); + if (row >= 0) + { + beginRemoveRows(QModelIndex(), row, row); + m_items.removeAt(row); + m_selected.removeAt(row); + endRemoveRows(); + } + } + + MapItem *findMapItem(const PipeEndPoint *source, const QString& name) + { + // FIXME: Should consider adding a QHash for this + QListIterator i(m_items); + while (i.hasNext()) + { + MapItem *item = i.next(); + if ((item->m_name == name) && (item->m_source == source)) + return item; + } + return nullptr; + } + + MapItem *findMapItem(const QString& name) + { + QListIterator i(m_items); + while (i.hasNext()) + { + MapItem *item = i.next(); + if (item->m_name == name) + return item; + } + return nullptr; + } + + int rowCount(const QModelIndex &parent = QModelIndex()) const override + { + Q_UNUSED(parent) + return m_items.count(); + } + + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + + bool setData(const QModelIndex &index, const QVariant& value, int role = Qt::EditRole) override; + + Qt::ItemFlags flags(const QModelIndex &index) const override + { + (void) index; + return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable; + } + + void allUpdated() + { + for (int i = 0; i < m_items.count(); i++) + { + QModelIndex idx = index(i); + emit dataChanged(idx, idx); + } + } + + void removeAll() + { + beginRemoveRows(QModelIndex(), 0, m_items.count()); + m_items.clear(); + m_selected.clear(); + endRemoveRows(); + } + + void setDisplayNames(bool displayNames) + { + m_displayNames = displayNames; + allUpdated(); + } + + QHash roleNames() const + { + QHash roles; + roles[positionRole] = "position"; + roles[mapTextRole] = "mapText"; + roles[mapTextVisibleRole] = "mapTextVisible"; + roles[mapImageRole] = "mapImage"; + roles[mapImageRotationRole] = "mapImageRotation"; + roles[mapImageFixedSizeRole] = "mapImageFixedSize"; + roles[bubbleColourRole] = "bubbleColour"; + roles[selectedRole] = "selected"; + return roles; + } + +private: + MapGUI *m_gui; + QList m_items; + QList m_selected; + bool m_displayNames; +}; + +class MapGUI : public FeatureGUI { + Q_OBJECT +public: + static MapGUI* create(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature); + virtual void destroy(); + + void resetToDefaults(); + QByteArray serialize() const; + bool deserialize(const QByteArray& data); + virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } + +private: + Ui::MapGUI* ui; + PluginAPI* m_pluginAPI; + FeatureUISet* m_featureUISet; + MapSettings m_settings; + bool m_doApplySettings; + QList m_availablePipes; + + Map* m_map; + MessageQueue m_inputMessageQueue; + MapModel m_mapModel; + + explicit MapGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature, QWidget* parent = nullptr); + virtual ~MapGUI(); + + void blockApplySettings(bool block); + void applySettings(bool force = false); + void displaySettings(); + void updatePipeList(); + bool handleMessage(const Message& message); + void find(const QString& target); + + void leaveEvent(QEvent*); + void enterEvent(QEvent*); + +private slots: + void onMenuDialogCalled(const QPoint &p); + void onWidgetRolled(QWidget* widget, bool rollDown); + void handleInputMessages(); + void on_displayNames_clicked(bool checked=false); + void on_find_returnPressed(); + void on_deleteAll_clicked(); +}; + + +#endif // INCLUDE_FEATURE_MAPGUI_H_ diff --git a/plugins/feature/map/mapgui.ui b/plugins/feature/map/mapgui.ui new file mode 100644 index 000000000..95ba4709f --- /dev/null +++ b/plugins/feature/map/mapgui.ui @@ -0,0 +1,250 @@ + + + MapGUI + + + + 0 + 0 + 462 + 689 + + + + + 0 + 0 + + + + + 462 + 0 + + + + + Liberation Sans + 9 + + + + Qt::StrongFocus + + + Map + + + Map + + + + + 0 + 0 + 461 + 41 + + + + + 350 + 0 + + + + Settings + + + + 3 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + Sources + + + + + + + + 150 + 0 + + + + Data source channels and features + + + + + + + Find + + + + + + + Enter name of object to find, latitude and longitude or Maidenhead locator + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Display names + + + ^ + + + + :/info.png:/info.png + + + true + + + true + + + + + + + Delete all items on the map + + + + + + + :/bin.png:/bin.png + + + + + + + + + + + 0 + 100 + 461 + 581 + + + + + 0 + 0 + + + + Map + + + + 2 + + + 3 + + + 3 + + + 3 + + + 3 + + + + + + 0 + 0 + + + + + 100 + 500 + + + + Map + + + QQuickWidget::SizeRootObjectToView + + + + + + + + + + + + + + QQuickWidget + QWidget +
QtQuickWidgets/QQuickWidget
+
+ + RollupWidget + QWidget +
gui/rollupwidget.h
+ 1 +
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
+
+ + map + + + + + +
diff --git a/plugins/feature/map/mapplugin.cpp b/plugins/feature/map/mapplugin.cpp new file mode 100644 index 000000000..774be51e1 --- /dev/null +++ b/plugins/feature/map/mapplugin.cpp @@ -0,0 +1,80 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + + +#include +#include "plugin/pluginapi.h" + +#ifndef SERVER_MODE +#include "mapgui.h" +#endif +#include "map.h" +#include "mapplugin.h" +#include "mapwebapiadapter.h" + +const PluginDescriptor MapPlugin::m_pluginDescriptor = { + Map::m_featureId, + QStringLiteral("Map"), + QStringLiteral("6.4.0"), + QStringLiteral("(c) Jon Beniston, M7RCE"), + QStringLiteral("https://github.com/f4exb/sdrangel"), + true, + QStringLiteral("https://github.com/f4exb/sdrangel") +}; + +MapPlugin::MapPlugin(QObject* parent) : + QObject(parent), + m_pluginAPI(nullptr) +{ +} + +const PluginDescriptor& MapPlugin::getPluginDescriptor() const +{ + return m_pluginDescriptor; +} + +void MapPlugin::initPlugin(PluginAPI* pluginAPI) +{ + m_pluginAPI = pluginAPI; + + m_pluginAPI->registerFeature(Map::m_featureIdURI, Map::m_featureId, this); +} + +#ifdef SERVER_MODE +FeatureGUI* MapPlugin::createFeatureGUI(FeatureUISet *featureUISet, Feature *feature) const +{ + (void) featureUISet; + (void) feature; + return nullptr; +} +#else +FeatureGUI* MapPlugin::createFeatureGUI(FeatureUISet *featureUISet, Feature *feature) const +{ + return MapGUI::create(m_pluginAPI, featureUISet, feature); +} +#endif + +Feature* MapPlugin::createFeature(WebAPIAdapterInterface* webAPIAdapterInterface) const +{ + return new Map(webAPIAdapterInterface); +} + +FeatureWebAPIAdapter* MapPlugin::createFeatureWebAPIAdapter() const +{ + return new MapWebAPIAdapter(); +} diff --git a/plugins/feature/map/mapplugin.h b/plugins/feature/map/mapplugin.h new file mode 100644 index 000000000..47ffe16f6 --- /dev/null +++ b/plugins/feature/map/mapplugin.h @@ -0,0 +1,49 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_MAPPLUGIN_H +#define INCLUDE_FEATURE_MAPPLUGIN_H + +#include +#include "plugin/plugininterface.h" + +class FeatureGUI; +class WebAPIAdapterInterface; + +class MapPlugin : public QObject, PluginInterface { + Q_OBJECT + Q_INTERFACES(PluginInterface) + Q_PLUGIN_METADATA(IID "sdrangel.feature.map") + +public: + explicit MapPlugin(QObject* parent = nullptr); + + const PluginDescriptor& getPluginDescriptor() const; + void initPlugin(PluginAPI* pluginAPI); + + virtual FeatureGUI* createFeatureGUI(FeatureUISet *featureUISet, Feature *feature) const; + virtual Feature* createFeature(WebAPIAdapterInterface *webAPIAdapterInterface) const; + virtual FeatureWebAPIAdapter* createFeatureWebAPIAdapter() const; + +private: + static const PluginDescriptor m_pluginDescriptor; + + PluginAPI* m_pluginAPI; +}; + +#endif // INCLUDE_FEATURE_MAPPLUGIN_H diff --git a/plugins/feature/map/mapsettings.cpp b/plugins/feature/map/mapsettings.cpp new file mode 100644 index 000000000..5f88c43ea --- /dev/null +++ b/plugins/feature/map/mapsettings.cpp @@ -0,0 +1,112 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include "util/simpleserializer.h" +#include "settings/serializable.h" + +#include "mapsettings.h" + +const QStringList MapSettings::m_pipeTypes = { + QStringLiteral("ADSBDemod"), + QStringLiteral("APRS"), + QStringLiteral("StarTracker") +}; + +const QStringList MapSettings::m_pipeURIs = { + QStringLiteral("sdrangel.channel.adsbdemod"), + QStringLiteral("sdrangel.feature.aprs"), + QStringLiteral("sdrangel.feature.startracker") +}; + +MapSettings::MapSettings() +{ + resetToDefaults(); +} + +void MapSettings::resetToDefaults() +{ + m_displayNames = true; + m_title = "Map"; + m_rgbColor = QColor(225, 25, 99).rgb(); + m_useReverseAPI = false; + m_reverseAPIAddress = "127.0.0.1"; + m_reverseAPIPort = 8888; + m_reverseAPIFeatureSetIndex = 0; + m_reverseAPIFeatureIndex = 0; +} + +QByteArray MapSettings::serialize() const +{ + SimpleSerializer s(1); + + s.writeBool(1, m_displayNames); + s.writeString(8, m_title); + s.writeU32(9, m_rgbColor); + s.writeBool(10, m_useReverseAPI); + s.writeString(11, m_reverseAPIAddress); + s.writeU32(12, m_reverseAPIPort); + s.writeU32(13, m_reverseAPIFeatureSetIndex); + s.writeU32(14, m_reverseAPIFeatureIndex); + + return s.final(); +} + +bool MapSettings::deserialize(const QByteArray& data) +{ + SimpleDeserializer d(data); + + if (!d.isValid()) + { + resetToDefaults(); + return false; + } + + if (d.getVersion() == 1) + { + QByteArray bytetmp; + uint32_t utmp; + QString strtmp; + + d.readBool(1, &m_displayNames, true); + d.readString(8, &m_title, "Map"); + d.readU32(9, &m_rgbColor, QColor(225, 25, 99).rgb()); + d.readBool(10, &m_useReverseAPI, false); + d.readString(11, &m_reverseAPIAddress, "127.0.0.1"); + d.readU32(12, &utmp, 0); + + if ((utmp > 1023) && (utmp < 65535)) { + m_reverseAPIPort = utmp; + } else { + m_reverseAPIPort = 8888; + } + + d.readU32(13, &utmp, 0); + m_reverseAPIFeatureSetIndex = utmp > 99 ? 99 : utmp; + d.readU32(14, &utmp, 0); + m_reverseAPIFeatureIndex = utmp > 99 ? 99 : utmp; + + return true; + } + else + { + resetToDefaults(); + return false; + } +} diff --git a/plugins/feature/map/mapsettings.h b/plugins/feature/map/mapsettings.h new file mode 100644 index 000000000..2550b81ef --- /dev/null +++ b/plugins/feature/map/mapsettings.h @@ -0,0 +1,63 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_MAPSETTINGS_H_ +#define INCLUDE_FEATURE_MAPSETTINGS_H_ + +#include +#include + +#include "util/message.h" + +class Serializable; +class PipeEndPoint; + +struct MapSettings +{ + struct AvailablePipe + { + enum {RX, TX, Feature} m_type; + int m_setIndex; + int m_index; + PipeEndPoint *m_source; + QString m_id; + + AvailablePipe() = default; + AvailablePipe(const AvailablePipe&) = default; + AvailablePipe& operator=(const AvailablePipe&) = default; + }; + + bool m_displayNames; + QString m_title; + quint32 m_rgbColor; + bool m_useReverseAPI; + QString m_reverseAPIAddress; + uint16_t m_reverseAPIPort; + uint16_t m_reverseAPIFeatureSetIndex; + uint16_t m_reverseAPIFeatureIndex; + + MapSettings(); + void resetToDefaults(); + QByteArray serialize() const; + bool deserialize(const QByteArray& data); + + static const QStringList m_pipeTypes; + static const QStringList m_pipeURIs; +}; + +#endif // INCLUDE_FEATURE_MAPSETTINGS_H_ diff --git a/plugins/feature/map/mapwebapiadapter.cpp b/plugins/feature/map/mapwebapiadapter.cpp new file mode 100644 index 000000000..0ef0500b2 --- /dev/null +++ b/plugins/feature/map/mapwebapiadapter.cpp @@ -0,0 +1,52 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB. // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include "SWGFeatureSettings.h" +#include "map.h" +#include "mapwebapiadapter.h" + +MapWebAPIAdapter::MapWebAPIAdapter() +{} + +MapWebAPIAdapter::~MapWebAPIAdapter() +{} + +int MapWebAPIAdapter::webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setSimplePttSettings(new SWGSDRangel::SWGSimplePTTSettings()); + response.getSimplePttSettings()->init(); + Map::webapiFormatFeatureSettings(response, m_settings); + + return 200; +} + +int MapWebAPIAdapter::webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) force; // no action + (void) errorMessage; + Map::webapiUpdateFeatureSettings(m_settings, featureSettingsKeys, response); + + return 200; +} diff --git a/plugins/feature/map/mapwebapiadapter.h b/plugins/feature/map/mapwebapiadapter.h new file mode 100644 index 000000000..db29b7036 --- /dev/null +++ b/plugins/feature/map/mapwebapiadapter.h @@ -0,0 +1,50 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB. // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_MAP_WEBAPIADAPTER_H +#define INCLUDE_MAP_WEBAPIADAPTER_H + +#include "feature/featurewebapiadapter.h" +#include "mapsettings.h" + +/** + * Standalone API adapter only for the settings + */ +class MapWebAPIAdapter : public FeatureWebAPIAdapter { +public: + MapWebAPIAdapter(); + virtual ~MapWebAPIAdapter(); + + virtual QByteArray serialize() const { return m_settings.serialize(); } + virtual bool deserialize(const QByteArray& data) { return m_settings.deserialize(data); } + + virtual int webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + +private: + MapSettings m_settings; +}; + +#endif // INCLUDE_MAP_WEBAPIADAPTER_H diff --git a/plugins/feature/map/readme.md b/plugins/feature/map/readme.md new file mode 100644 index 000000000..2dbe55efa --- /dev/null +++ b/plugins/feature/map/readme.md @@ -0,0 +1,43 @@ +

Map Feature Plugin

+ +

Introduction

+ +The Map Feature plugin displays a world map. On top of this, it can plot data from other plugins, such as APRS symbols from the APRS Feature, aircraft from the ADS-B Demodulator or the Sun, Moon and Stars from the Star Tracker. + +

Interface

+ +![Map feature plugin GUI](../../../doc/img/Map_plugin.png) + +

1: Source Channels

+ +This displays the list of channels the Map is displaying data from. + +

2: Find

+ +To centre the map on an object or location, enter: + +* An object name. +* Latitude and longitude. This can be in decimal degrees (E.g: -23.666413, -46.573550) or degrees, minutes and seconds (E.g: 50°40'46.461"N 95°48'26.533"W or 33d51m54.5148sS 151d12m35.6400sE). +* A Maidenhead locator (E.g: IO86av). + +

3: Display Names

+ +When checked, names of objects are displayed in a bubble next to each object. + +

Map

+ +The map displays objects reported by other SDRangel channels and features. + +* The antenna location is placed according to My Position set under the Preferences > My Position menu. The position is only updated when the Map plugin is first opened. +* To pan around the map, click the left mouse button and drag. To zoom in or out, use the mouse scroll wheel. +* Clicking on an object in the map will display a text bubble with additional information about the object. + +

API

+ +Full details of the API can be found in the Swagger documentation. Here is a quick example of how to centre the map on an object from the command line: + + curl -X POST "http://127.0.0.1:8091/sdrangel/featureset/0/feature/0/actions" -d '{"featureType": "Map", "MapActions": { "find": "M7RCE" }}' + +And to centre the map at a particular latitude and longitude: + + curl -X POST "http://127.0.0.1:8091/sdrangel/featureset/0/feature/0/actions" -d '{"featureType": "Map", "MapActions": { "find": "51.2 0.0" }}' diff --git a/sdrbase/feature/featurewebapiutils.cpp b/sdrbase/feature/featurewebapiutils.cpp new file mode 100644 index 000000000..33c07ee44 --- /dev/null +++ b/sdrbase/feature/featurewebapiutils.cpp @@ -0,0 +1,101 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include "SWGFeatureActions.h" +#include "SWGMapActions.h" + +#include "maincore.h" +#include "feature/featureset.h" +#include "feature/feature.h" +#include "featurewebapiutils.h" + +// Find the specified target on the map +bool FeatureWebAPIUtils::mapFind(const QString& target, int featureSetIndex, int featureIndex) +{ + Feature *feature = FeatureWebAPIUtils::getFeature(featureSetIndex, featureIndex, "sdrangel.feature.map"); + if (feature != nullptr) + { + QString errorMessage; + QStringList featureActionKeys = {"find"}; + SWGSDRangel::SWGFeatureActions query; + SWGSDRangel::SWGMapActions *mapActions = new SWGSDRangel::SWGMapActions(); + + mapActions->setFind(new QString(target)); + query.setMapActions(mapActions); + + int httpRC = feature->webapiActionsPost(featureActionKeys, query, errorMessage); + if (httpRC/100 != 2) + { + qWarning("FeatureWebAPIUtils::mapFind: error %d: %s", httpRC, errorMessage); + return false; + } + + return true; + } + else + { + qWarning("FeatureWebAPIUtils::mapFind: no Map feature"); + return false; + } +} + +// Get first feature with the given URI +Feature* FeatureWebAPIUtils::getFeature(int featureSetIndex, int featureIndex, const QString& uri) +{ + FeatureSet *featureSet; + Feature *feature; + std::vector& featureSets = MainCore::instance()->getFeatureeSets(); + + if (featureSetIndex != -1) + { + // Find feature with specific index + if (featureSetIndex < featureSets.size()) + { + featureSet = featureSets[featureSetIndex]; + if (featureIndex < featureSet->getNumberOfFeatures()) + { + feature = featureSet->getFeatureAt(featureIndex); + if (uri.isEmpty() || feature->getURI() == uri) + return feature; + else + return nullptr; + } + else + return nullptr; + } + else + return nullptr; + } + else + { + // Find first feature matching URI + for (std::vector::const_iterator it = featureSets.begin(); it != featureSets.end(); ++it, featureIndex++) + { + for (int fi = 0; fi < (*it)->getNumberOfFeatures(); fi++) + { + feature = (*it)->getFeatureAt(fi); + if (feature->getURI() == uri) + { + return feature; + } + } + } + return nullptr; + } +} diff --git a/sdrbase/feature/featurewebapiutils.h b/sdrbase/feature/featurewebapiutils.h new file mode 100644 index 000000000..808ac6665 --- /dev/null +++ b/sdrbase/feature/featurewebapiutils.h @@ -0,0 +1,32 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef SDRBASE_FEATURE_FEATUREWEBAPIUTILS_H_ +#define SDRBASE_FEATURE_FEATUREWEBAPIUTILS_H_ + +#include "export.h" + +class Feature; + +class SDRBASE_API FeatureWebAPIUtils +{ +public: + static bool mapFind(const QString& target, int featureSetIndex=-1, int featureIndex=-1); + static Feature *getFeature(int featureSetIndex, int featureIndex, const QString& uri); +}; + +#endif // SDRBASE_FEATURE_FEATUREWEBAPIUTILS_H_ diff --git a/sdrbase/util/maidenhead.cpp b/sdrbase/util/maidenhead.cpp new file mode 100644 index 000000000..d7c6eab5d --- /dev/null +++ b/sdrbase/util/maidenhead.cpp @@ -0,0 +1,81 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// Maidenhead locator utilities // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include "maidenhead.h" + +// See: https://en.wikipedia.org/wiki/Maidenhead_Locator_System + +QString Maidenhead::toMaidenhead(float latitude, float longitude) +{ + longitude += 180.0; + latitude += 90.0; + int lon1 = floor(longitude/20); + longitude -= lon1*20; + int lat1 = floor(latitude/10); + latitude -= lat1*10; + int lon2 = floor(longitude/2); + longitude -= lon2*2; + int lat2 = floor(latitude/1); + latitude -= lat2; + int lon3 = round(longitude*12); + int lat3 = round(latitude*24); + return QString("%1%2%3%4%5%6").arg(QChar(lon1+'A')).arg(QChar(lat1+'A')) + .arg(QChar(lon2+'0')).arg(QChar(lat2+'0')) + .arg(QChar(lon3+'A')).arg(QChar(lat3+'A')); +} + +bool Maidenhead::fromMaidenhead(const QString& maidenhead, float& latitude, float& longitude) +{ + if (Maidenhead::isMaidenhead(maidenhead)) + { + int lon1 = maidenhead[0].toUpper().toLatin1() - 'A'; + int lat1 = maidenhead[1].toUpper().toLatin1() - 'A'; + int lon2 = maidenhead[2].toLatin1() - '0'; + int lat2 = maidenhead[3].toLatin1() - '0'; + int lon3 = maidenhead[4].toUpper().toLatin1() - 'A'; + int lat3 = maidenhead[5].toUpper().toLatin1() - 'A'; + int lon4 = 0; + int lat4 = 0; + if (maidenhead.length() == 8) + { + lon4 = maidenhead[6].toLatin1() - '0'; + lat4 = maidenhead[7].toLatin1() - '0'; + } + longitude = lon1 * 20 + lon2 * 2 + lon3 * 2.0/24.0 + lon4 * 2.0/24.0/10; // 20=360/18 + latitude = lat1 * 10 + lat2 * 1 + lat3 * 1.0/24.0 + lat4 * 1.0/24.0/10; // 10=180/18 + + longitude -= 180.0; + latitude -= 90.0; + + return true; + } + else + return false; +} + +bool Maidenhead::isMaidenhead(const QString& maidenhead) +{ + int length = maidenhead.length(); + if ((length != 6) && (length != 8)) + return false; + QRegExp re("[A-Ra-r][A-Ra-r][0-9][0-9][A-Xa-x][A-Xa-x]([0-9][0-9])?"); + return re.exactMatch(maidenhead); +} diff --git a/sdrbase/util/maidenhead.h b/sdrbase/util/maidenhead.h new file mode 100644 index 000000000..0147e0f7b --- /dev/null +++ b/sdrbase/util/maidenhead.h @@ -0,0 +1,37 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// Maidenhead locator utilities // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_MAIDENHEAD_H +#define INCLUDE_MAIDENHEAD_H + +#include + +#include "export.h" + +class SDRBASE_API Maidenhead { + +public: + + static QString toMaidenhead(float latitude, float longitude); + static bool fromMaidenhead(const QString& maidenhead, float& latitude, float& longitude); + static bool isMaidenhead(const QString& maidenhead); + +}; + +#endif // INCLUDE_MAIDENHEAD_H From 5a52052d2c69beae86e8eb4671633272a40de4e0 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 20:37:09 +0000 Subject: [PATCH 09/21] Add APRS Feature --- CMakeLists.txt | 1 + doc/img/APRS_plugin.png | Bin 0 -> 56054 bytes plugins/feature/aprs/CMakeLists.txt | 67 + plugins/feature/aprs/aprs.cpp | 413 ++++ plugins/feature/aprs/aprs.h | 143 ++ plugins/feature/aprs/aprs.qrc | 196 ++ plugins/feature/aprs/aprs/README.txt | 6 + .../aprs/aprs/aprs-symbols-24-0-00.png | Bin 0 -> 617 bytes .../aprs/aprs/aprs-symbols-24-0-01.png | Bin 0 -> 523 bytes .../aprs/aprs/aprs-symbols-24-0-02.png | Bin 0 -> 661 bytes .../aprs/aprs/aprs-symbols-24-0-03.png | Bin 0 -> 544 bytes .../aprs/aprs/aprs-symbols-24-0-04.png | Bin 0 -> 586 bytes .../aprs/aprs/aprs-symbols-24-0-05.png | Bin 0 -> 566 bytes .../aprs/aprs/aprs-symbols-24-0-06.png | Bin 0 -> 867 bytes .../aprs/aprs/aprs-symbols-24-0-07.png | Bin 0 -> 1033 bytes .../aprs/aprs/aprs-symbols-24-0-08.png | Bin 0 -> 535 bytes .../aprs/aprs/aprs-symbols-24-0-09.png | Bin 0 -> 1188 bytes .../aprs/aprs/aprs-symbols-24-0-10.png | Bin 0 -> 372 bytes .../aprs/aprs/aprs-symbols-24-0-11.png | Bin 0 -> 544 bytes .../aprs/aprs/aprs-symbols-24-0-12.png | Bin 0 -> 511 bytes .../aprs/aprs/aprs-symbols-24-0-13.png | Bin 0 -> 533 bytes .../aprs/aprs/aprs-symbols-24-0-14.png | Bin 0 -> 623 bytes .../aprs/aprs/aprs-symbols-24-0-15.png | Bin 0 -> 500 bytes .../aprs/aprs/aprs-symbols-24-0-16.png | Bin 0 -> 461 bytes .../aprs/aprs/aprs-symbols-24-0-17.png | Bin 0 -> 531 bytes .../aprs/aprs/aprs-symbols-24-0-18.png | Bin 0 -> 538 bytes .../aprs/aprs/aprs-symbols-24-0-19.png | Bin 0 -> 517 bytes .../aprs/aprs/aprs-symbols-24-0-20.png | Bin 0 -> 525 bytes .../aprs/aprs/aprs-symbols-24-0-21.png | Bin 0 -> 536 bytes .../aprs/aprs/aprs-symbols-24-0-22.png | Bin 0 -> 509 bytes .../aprs/aprs/aprs-symbols-24-0-23.png | Bin 0 -> 536 bytes .../aprs/aprs/aprs-symbols-24-0-24.png | Bin 0 -> 531 bytes .../aprs/aprs/aprs-symbols-24-0-25.png | Bin 0 -> 847 bytes .../aprs/aprs/aprs-symbols-24-0-26.png | Bin 0 -> 1119 bytes .../aprs/aprs/aprs-symbols-24-0-27.png | Bin 0 -> 1062 bytes .../aprs/aprs/aprs-symbols-24-0-28.png | Bin 0 -> 747 bytes .../aprs/aprs/aprs-symbols-24-0-29.png | Bin 0 -> 855 bytes .../aprs/aprs/aprs-symbols-24-0-30.png | Bin 0 -> 1253 bytes .../aprs/aprs/aprs-symbols-24-0-31.png | Bin 0 -> 764 bytes .../aprs/aprs/aprs-symbols-24-0-32.png | Bin 0 -> 379 bytes .../aprs/aprs/aprs-symbols-24-0-33.png | Bin 0 -> 528 bytes .../aprs/aprs/aprs-symbols-24-0-34.png | Bin 0 -> 725 bytes .../aprs/aprs/aprs-symbols-24-0-35.png | Bin 0 -> 535 bytes .../aprs/aprs/aprs-symbols-24-0-36.png | Bin 0 -> 1359 bytes .../aprs/aprs/aprs-symbols-24-0-37.png | Bin 0 -> 1098 bytes .../aprs/aprs/aprs-symbols-24-0-38.png | Bin 0 -> 380 bytes .../aprs/aprs/aprs-symbols-24-0-39.png | Bin 0 -> 473 bytes .../aprs/aprs/aprs-symbols-24-0-40.png | Bin 0 -> 713 bytes .../aprs/aprs/aprs-symbols-24-0-41.png | Bin 0 -> 509 bytes .../aprs/aprs/aprs-symbols-24-0-42.png | Bin 0 -> 688 bytes .../aprs/aprs/aprs-symbols-24-0-43.png | Bin 0 -> 771 bytes .../aprs/aprs/aprs-symbols-24-0-44.png | Bin 0 -> 691 bytes .../aprs/aprs/aprs-symbols-24-0-45.png | Bin 0 -> 560 bytes .../aprs/aprs/aprs-symbols-24-0-46.png | Bin 0 -> 821 bytes .../aprs/aprs/aprs-symbols-24-0-47.png | Bin 0 -> 730 bytes .../aprs/aprs/aprs-symbols-24-0-48.png | Bin 0 -> 716 bytes .../aprs/aprs/aprs-symbols-24-0-49.png | Bin 0 -> 534 bytes .../aprs/aprs/aprs-symbols-24-0-50.png | Bin 0 -> 709 bytes .../aprs/aprs/aprs-symbols-24-0-51.png | Bin 0 -> 1374 bytes .../aprs/aprs/aprs-symbols-24-0-52.png | Bin 0 -> 691 bytes .../aprs/aprs/aprs-symbols-24-0-53.png | Bin 0 -> 1067 bytes .../aprs/aprs/aprs-symbols-24-0-54.png | Bin 0 -> 638 bytes .../aprs/aprs/aprs-symbols-24-0-55.png | Bin 0 -> 817 bytes .../aprs/aprs/aprs-symbols-24-0-56.png | Bin 0 -> 658 bytes .../aprs/aprs/aprs-symbols-24-0-57.png | Bin 0 -> 937 bytes .../aprs/aprs/aprs-symbols-24-0-58.png | Bin 0 -> 546 bytes .../aprs/aprs/aprs-symbols-24-0-59.png | Bin 0 -> 580 bytes .../aprs/aprs/aprs-symbols-24-0-60.png | Bin 0 -> 1377 bytes .../aprs/aprs/aprs-symbols-24-0-61.png | Bin 0 -> 1141 bytes .../aprs/aprs/aprs-symbols-24-0-62.png | Bin 0 -> 644 bytes .../aprs/aprs/aprs-symbols-24-0-63.png | Bin 0 -> 653 bytes .../aprs/aprs/aprs-symbols-24-0-64.png | Bin 0 -> 556 bytes .../aprs/aprs/aprs-symbols-24-0-65.png | Bin 0 -> 1059 bytes .../aprs/aprs/aprs-symbols-24-0-66.png | Bin 0 -> 501 bytes .../aprs/aprs/aprs-symbols-24-0-67.png | Bin 0 -> 533 bytes .../aprs/aprs/aprs-symbols-24-0-68.png | Bin 0 -> 1100 bytes .../aprs/aprs/aprs-symbols-24-0-69.png | Bin 0 -> 635 bytes .../aprs/aprs/aprs-symbols-24-0-70.png | Bin 0 -> 893 bytes .../aprs/aprs/aprs-symbols-24-0-71.png | Bin 0 -> 407 bytes .../aprs/aprs/aprs-symbols-24-0-72.png | Bin 0 -> 876 bytes .../aprs/aprs/aprs-symbols-24-0-73.png | Bin 0 -> 740 bytes .../aprs/aprs/aprs-symbols-24-0-74.png | Bin 0 -> 778 bytes .../aprs/aprs/aprs-symbols-24-0-75.png | Bin 0 -> 850 bytes .../aprs/aprs/aprs-symbols-24-0-76.png | Bin 0 -> 673 bytes .../aprs/aprs/aprs-symbols-24-0-77.png | Bin 0 -> 759 bytes .../aprs/aprs/aprs-symbols-24-0-78.png | Bin 0 -> 656 bytes .../aprs/aprs/aprs-symbols-24-0-79.png | Bin 0 -> 1221 bytes .../aprs/aprs/aprs-symbols-24-0-80.png | Bin 0 -> 358 bytes .../aprs/aprs/aprs-symbols-24-0-81.png | Bin 0 -> 909 bytes .../aprs/aprs/aprs-symbols-24-0-82.png | Bin 0 -> 669 bytes .../aprs/aprs/aprs-symbols-24-0-83.png | Bin 0 -> 476 bytes .../aprs/aprs/aprs-symbols-24-0-84.png | Bin 0 -> 548 bytes .../aprs/aprs/aprs-symbols-24-0-85.png | Bin 0 -> 681 bytes .../aprs/aprs/aprs-symbols-24-0-86.png | Bin 0 -> 498 bytes .../aprs/aprs/aprs-symbols-24-0-87.png | Bin 0 -> 841 bytes .../aprs/aprs/aprs-symbols-24-0-88.png | Bin 0 -> 726 bytes .../aprs/aprs/aprs-symbols-24-0-89.png | Bin 0 -> 456 bytes .../aprs/aprs/aprs-symbols-24-0-90.png | Bin 0 -> 515 bytes .../aprs/aprs/aprs-symbols-24-0-91.png | Bin 0 -> 373 bytes .../aprs/aprs/aprs-symbols-24-0-92.png | Bin 0 -> 527 bytes .../aprs/aprs/aprs-symbols-24-0-93.png | Bin 0 -> 451 bytes .../aprs/aprs/aprs-symbols-24-0-94.png | Bin 0 -> 543 bytes .../aprs/aprs/aprs-symbols-24-0-95.png | Bin 0 -> 527 bytes .../feature/aprs/aprs/aprs-symbols-24-0.png | Bin 0 -> 38591 bytes .../aprs/aprs/aprs-symbols-24-1-00.png | Bin 0 -> 572 bytes .../aprs/aprs/aprs-symbols-24-1-01.png | Bin 0 -> 543 bytes .../aprs/aprs/aprs-symbols-24-1-02.png | Bin 0 -> 529 bytes .../aprs/aprs/aprs-symbols-24-1-03.png | Bin 0 -> 544 bytes .../aprs/aprs/aprs-symbols-24-1-04.png | Bin 0 -> 523 bytes .../aprs/aprs/aprs-symbols-24-1-05.png | Bin 0 -> 446 bytes .../aprs/aprs/aprs-symbols-24-1-06.png | Bin 0 -> 1636 bytes .../aprs/aprs/aprs-symbols-24-1-07.png | Bin 0 -> 1216 bytes .../aprs/aprs/aprs-symbols-24-1-08.png | Bin 0 -> 533 bytes .../aprs/aprs/aprs-symbols-24-1-09.png | Bin 0 -> 1143 bytes .../aprs/aprs/aprs-symbols-24-1-10.png | Bin 0 -> 356 bytes .../aprs/aprs/aprs-symbols-24-1-11.png | Bin 0 -> 511 bytes .../aprs/aprs/aprs-symbols-24-1-12.png | Bin 0 -> 770 bytes .../aprs/aprs/aprs-symbols-24-1-13.png | Bin 0 -> 713 bytes .../aprs/aprs/aprs-symbols-24-1-14.png | Bin 0 -> 1251 bytes .../aprs/aprs/aprs-symbols-24-1-15.png | Bin 0 -> 614 bytes .../aprs/aprs/aprs-symbols-24-1-16.png | Bin 0 -> 528 bytes .../aprs/aprs/aprs-symbols-24-1-17.png | Bin 0 -> 561 bytes .../aprs/aprs/aprs-symbols-24-1-18.png | Bin 0 -> 547 bytes .../aprs/aprs/aprs-symbols-24-1-19.png | Bin 0 -> 519 bytes .../aprs/aprs/aprs-symbols-24-1-20.png | Bin 0 -> 538 bytes .../aprs/aprs/aprs-symbols-24-1-21.png | Bin 0 -> 541 bytes .../aprs/aprs/aprs-symbols-24-1-22.png | Bin 0 -> 518 bytes .../aprs/aprs/aprs-symbols-24-1-23.png | Bin 0 -> 647 bytes .../aprs/aprs/aprs-symbols-24-1-24.png | Bin 0 -> 693 bytes .../aprs/aprs/aprs-symbols-24-1-25.png | Bin 0 -> 498 bytes .../aprs/aprs/aprs-symbols-24-1-26.png | Bin 0 -> 534 bytes .../aprs/aprs/aprs-symbols-24-1-27.png | Bin 0 -> 545 bytes .../aprs/aprs/aprs-symbols-24-1-28.png | Bin 0 -> 528 bytes .../aprs/aprs/aprs-symbols-24-1-29.png | Bin 0 -> 725 bytes .../aprs/aprs/aprs-symbols-24-1-30.png | Bin 0 -> 529 bytes .../aprs/aprs/aprs-symbols-24-1-31.png | Bin 0 -> 1137 bytes .../aprs/aprs/aprs-symbols-24-1-32.png | Bin 0 -> 358 bytes .../aprs/aprs/aprs-symbols-24-1-33.png | Bin 0 -> 606 bytes .../aprs/aprs/aprs-symbols-24-1-34.png | Bin 0 -> 539 bytes .../aprs/aprs/aprs-symbols-24-1-35.png | Bin 0 -> 567 bytes .../aprs/aprs/aprs-symbols-24-1-36.png | Bin 0 -> 1371 bytes .../aprs/aprs/aprs-symbols-24-1-37.png | Bin 0 -> 541 bytes .../aprs/aprs/aprs-symbols-24-1-38.png | Bin 0 -> 650 bytes .../aprs/aprs/aprs-symbols-24-1-39.png | Bin 0 -> 1206 bytes .../aprs/aprs/aprs-symbols-24-1-40.png | Bin 0 -> 632 bytes .../aprs/aprs/aprs-symbols-24-1-41.png | Bin 0 -> 608 bytes .../aprs/aprs/aprs-symbols-24-1-42.png | Bin 0 -> 694 bytes .../aprs/aprs/aprs-symbols-24-1-43.png | Bin 0 -> 1258 bytes .../aprs/aprs/aprs-symbols-24-1-44.png | Bin 0 -> 623 bytes .../aprs/aprs/aprs-symbols-24-1-45.png | Bin 0 -> 579 bytes .../aprs/aprs/aprs-symbols-24-1-46.png | Bin 0 -> 1094 bytes .../aprs/aprs/aprs-symbols-24-1-47.png | Bin 0 -> 556 bytes .../aprs/aprs/aprs-symbols-24-1-48.png | Bin 0 -> 652 bytes .../aprs/aprs/aprs-symbols-24-1-49.png | Bin 0 -> 560 bytes .../aprs/aprs/aprs-symbols-24-1-50.png | Bin 0 -> 712 bytes .../aprs/aprs/aprs-symbols-24-1-51.png | Bin 0 -> 1193 bytes .../aprs/aprs/aprs-symbols-24-1-52.png | Bin 0 -> 1617 bytes .../aprs/aprs/aprs-symbols-24-1-53.png | Bin 0 -> 616 bytes .../aprs/aprs/aprs-symbols-24-1-54.png | Bin 0 -> 632 bytes .../aprs/aprs/aprs-symbols-24-1-55.png | Bin 0 -> 1810 bytes .../aprs/aprs/aprs-symbols-24-1-56.png | Bin 0 -> 536 bytes .../aprs/aprs/aprs-symbols-24-1-57.png | Bin 0 -> 536 bytes .../aprs/aprs/aprs-symbols-24-1-58.png | Bin 0 -> 1349 bytes .../aprs/aprs/aprs-symbols-24-1-59.png | Bin 0 -> 526 bytes .../aprs/aprs/aprs-symbols-24-1-60.png | Bin 0 -> 514 bytes .../aprs/aprs/aprs-symbols-24-1-61.png | Bin 0 -> 1142 bytes .../aprs/aprs/aprs-symbols-24-1-62.png | Bin 0 -> 692 bytes .../aprs/aprs/aprs-symbols-24-1-63.png | Bin 0 -> 1943 bytes .../aprs/aprs/aprs-symbols-24-1-64.png | Bin 0 -> 507 bytes .../aprs/aprs/aprs-symbols-24-1-65.png | Bin 0 -> 1578 bytes .../aprs/aprs/aprs-symbols-24-1-66.png | Bin 0 -> 668 bytes .../aprs/aprs/aprs-symbols-24-1-67.png | Bin 0 -> 1162 bytes .../aprs/aprs/aprs-symbols-24-1-68.png | Bin 0 -> 1939 bytes .../aprs/aprs/aprs-symbols-24-1-69.png | Bin 0 -> 1179 bytes .../aprs/aprs/aprs-symbols-24-1-70.png | Bin 0 -> 578 bytes .../aprs/aprs/aprs-symbols-24-1-71.png | Bin 0 -> 680 bytes .../aprs/aprs/aprs-symbols-24-1-72.png | Bin 0 -> 343 bytes .../aprs/aprs/aprs-symbols-24-1-73.png | Bin 0 -> 797 bytes .../aprs/aprs/aprs-symbols-24-1-74.png | Bin 0 -> 935 bytes .../aprs/aprs/aprs-symbols-24-1-75.png | Bin 0 -> 539 bytes .../aprs/aprs/aprs-symbols-24-1-76.png | Bin 0 -> 476 bytes .../aprs/aprs/aprs-symbols-24-1-77.png | Bin 0 -> 520 bytes .../aprs/aprs/aprs-symbols-24-1-78.png | Bin 0 -> 852 bytes .../aprs/aprs/aprs-symbols-24-1-79.png | Bin 0 -> 1356 bytes .../aprs/aprs/aprs-symbols-24-1-80.png | Bin 0 -> 548 bytes .../aprs/aprs/aprs-symbols-24-1-81.png | Bin 0 -> 685 bytes .../aprs/aprs/aprs-symbols-24-1-82.png | Bin 0 -> 506 bytes .../aprs/aprs/aprs-symbols-24-1-83.png | Bin 0 -> 1039 bytes .../aprs/aprs/aprs-symbols-24-1-84.png | Bin 0 -> 698 bytes .../aprs/aprs/aprs-symbols-24-1-85.png | Bin 0 -> 663 bytes .../aprs/aprs/aprs-symbols-24-1-86.png | Bin 0 -> 616 bytes .../aprs/aprs/aprs-symbols-24-1-87.png | Bin 0 -> 537 bytes .../aprs/aprs/aprs-symbols-24-1-88.png | Bin 0 -> 825 bytes .../aprs/aprs/aprs-symbols-24-1-89.png | Bin 0 -> 498 bytes .../aprs/aprs/aprs-symbols-24-1-90.png | Bin 0 -> 1095 bytes .../aprs/aprs/aprs-symbols-24-1-91.png | Bin 0 -> 368 bytes .../aprs/aprs/aprs-symbols-24-1-92.png | Bin 0 -> 544 bytes .../aprs/aprs/aprs-symbols-24-1-93.png | Bin 0 -> 437 bytes .../aprs/aprs/aprs-symbols-24-1-94.png | Bin 0 -> 546 bytes .../aprs/aprs/aprs-symbols-24-1-95.png | Bin 0 -> 520 bytes .../feature/aprs/aprs/aprs-symbols-24-1.png | Bin 0 -> 41892 bytes plugins/feature/aprs/aprsgui.cpp | 1927 +++++++++++++++++ plugins/feature/aprs/aprsgui.h | 227 ++ plugins/feature/aprs/aprsgui.ui | 1514 +++++++++++++ plugins/feature/aprs/aprsplugin.cpp | 80 + plugins/feature/aprs/aprsplugin.h | 49 + plugins/feature/aprs/aprssettings.cpp | 210 ++ plugins/feature/aprs/aprssettings.h | 79 + plugins/feature/aprs/aprssettingsdialog.cpp | 43 + plugins/feature/aprs/aprssettingsdialog.h | 43 + plugins/feature/aprs/aprssettingsdialog.ui | 173 ++ plugins/feature/aprs/aprswebapiadapter.cpp | 52 + plugins/feature/aprs/aprswebapiadapter.h | 50 + plugins/feature/aprs/aprsworker.cpp | 251 +++ plugins/feature/aprs/aprsworker.h | 97 + plugins/feature/aprs/readme.md | 47 + sdrbase/util/aprs.cpp | 992 +++++++++ sdrbase/util/aprs.h | 445 ++++ 218 files changed, 7105 insertions(+) create mode 100644 doc/img/APRS_plugin.png create mode 100644 plugins/feature/aprs/CMakeLists.txt create mode 100644 plugins/feature/aprs/aprs.cpp create mode 100644 plugins/feature/aprs/aprs.h create mode 100644 plugins/feature/aprs/aprs.qrc create mode 100644 plugins/feature/aprs/aprs/README.txt create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-00.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-01.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-02.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-03.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-04.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-05.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-06.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-07.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-08.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-09.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-10.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-11.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-12.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-13.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-14.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-15.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-16.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-17.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-18.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-19.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-20.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-21.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-22.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-23.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-24.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-25.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-26.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-27.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-28.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-29.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-30.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-31.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-32.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-33.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-34.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-35.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-36.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-37.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-38.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-39.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-40.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-41.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-42.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-43.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-44.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-45.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-46.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-47.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-48.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-49.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-50.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-51.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-52.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-53.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-54.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-55.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-56.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-57.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-58.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-59.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-60.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-61.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-62.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-63.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-64.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-65.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-66.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-67.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-68.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-69.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-70.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-71.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-72.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-73.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-74.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-75.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-76.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-77.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-78.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-79.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-80.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-81.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-82.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-83.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-84.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-85.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-86.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-87.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-88.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-89.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-90.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-91.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-92.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-93.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-94.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0-95.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-0.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-00.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-01.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-02.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-03.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-04.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-05.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-06.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-07.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-08.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-09.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-10.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-11.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-12.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-13.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-14.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-15.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-16.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-17.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-18.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-19.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-20.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-21.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-22.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-23.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-24.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-25.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-26.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-27.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-28.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-29.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-30.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-31.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-32.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-33.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-34.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-35.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-36.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-37.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-38.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-39.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-40.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-41.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-42.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-43.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-44.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-45.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-46.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-47.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-48.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-49.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-50.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-51.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-52.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-53.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-54.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-55.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-56.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-57.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-58.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-59.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-60.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-61.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-62.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-63.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-64.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-65.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-66.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-67.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-68.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-69.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-70.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-71.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-72.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-73.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-74.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-75.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-76.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-77.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-78.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-79.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-80.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-81.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-82.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-83.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-84.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-85.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-86.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-87.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-88.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-89.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-90.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-91.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-92.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-93.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-94.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1-95.png create mode 100644 plugins/feature/aprs/aprs/aprs-symbols-24-1.png create mode 100644 plugins/feature/aprs/aprsgui.cpp create mode 100644 plugins/feature/aprs/aprsgui.h create mode 100644 plugins/feature/aprs/aprsgui.ui create mode 100644 plugins/feature/aprs/aprsplugin.cpp create mode 100644 plugins/feature/aprs/aprsplugin.h create mode 100644 plugins/feature/aprs/aprssettings.cpp create mode 100644 plugins/feature/aprs/aprssettings.h create mode 100644 plugins/feature/aprs/aprssettingsdialog.cpp create mode 100644 plugins/feature/aprs/aprssettingsdialog.h create mode 100644 plugins/feature/aprs/aprssettingsdialog.ui create mode 100644 plugins/feature/aprs/aprswebapiadapter.cpp create mode 100644 plugins/feature/aprs/aprswebapiadapter.h create mode 100644 plugins/feature/aprs/aprsworker.cpp create mode 100644 plugins/feature/aprs/aprsworker.h create mode 100644 plugins/feature/aprs/readme.md create mode 100644 sdrbase/util/aprs.cpp create mode 100644 sdrbase/util/aprs.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b13074bd..ec7e299ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -308,6 +308,7 @@ if (BUILD_GUI) find_package(Qt5 COMPONENTS Quick) find_package(Qt5 COMPONENTS QuickWidgets) find_package(Qt5 COMPONENTS Positioning) + find_package(Qt5 COMPONENTS Charts) endif() # other requirements diff --git a/doc/img/APRS_plugin.png b/doc/img/APRS_plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f5c18adb30117c305675f80179a57a039d270e GIT binary patch literal 56054 zcmbTd1z1#F*Ede5f-r<2NC*QADGEr}ARR-8gh;1?bR&pEch?{>v?54@lu{B>f`oK; z_jd;G=YH{?{KaF3ve~_S$Q&z1G^l-`acNYAUj~38)Fs(9mwn%R$xA(6H># z&@eplFn}j}-=(X8f9THYvQlVeeKf1U4VI;(vLqVX$0)*!=h(nK{!2MMXEZdTHq;;b zH%Fuy8rnpdJXBKC-DvaDwuV;LXDe*aT)cmL+~di482?1@xvOr>s`8Q z7@+OV51%^?ItZmZ>W41?jv6ZP|*Qhz1g`%KatZM)I*%48BQayz1*r~ZmKk|D1fF= z)?lteeTuqek+;}A>@;%vp;7y6a;m87293K_BYT3D90pOZ`S1O0sALr7@sn64R$Av1WW@ih_eL33s$fJ(uIy@5)g# z-R<%uOfFnEk!b*o^1>G0dUFE6;f6}{f%iJEl;hro@@*f}YP4DAtR z(+>71DIr0w;j!OrIU9A?9XLr(EY?KO&Co0=l?s%D!J*-l1=CgQjdWMthU!FHXWf?5 zJ%&uCb}^Q zb7OFjG=6M>7Gy{DT2sU{$BG$D@K;}{hWSJJQXm=YCvT2@m&!`Zy>;>8@08S6YQnIb zH}I2=#VRFpOvB>XH5miXI0ryQhHl|a6;%k|ou17 z8wI?gFm94SZrxpThJ+lKv*uFuAoWC{zZIs|3$IYhRjyKsKMn4GYA(Rsw> zHl0c@S;6M9ebH71Zai)pw7johzfMxyL-6fpvb#8kBR&OLl`@7akW|VK+N82tfo{?b z+!%S!5>$|43-G5EPM+$4Iuq#ETKNGTz6vH zR<1fs3aKp|k!wurbJX6bvppccEE4)7={2l-uF?5lSWCb9sOBxipB6UHuEvIPO?mH!SuuQ&yliFiyBFac==OhR z_mTdMf4D4%TrVUxv!)O1baGZto(g9@{Py)vAVQMP#jgcC64Y5s>#kKD^8N?s>d9z6 z7vwdH|M3O`q5daELl>{OFI-|OSQB#c+M$COe|7hrOT$Vd1^!ozPZ)PAliiH4<;Rt} zeGZq`S-%?7O&|rDa}jo_P5;YgJv5Z6X&7LFKMP38d20pJuItURLBZjyr<)iEUef~> zoiEQm28a6dqobiE3s)%(Z%x&UKO>M)dk8%6w_xLi4S<1{_Hz>9b(crKPCt=ht6`Dv z>m?ca?aLEQ3VH0E6$?IT9}&oExKj68{IRa;F!d}ESkJ!fu>Pa1=OVlDX{n=6*dhz= zW)2?j+=zhV$CEorMurd(CdH>&6;RajCmjP1yitU*N{MWDk=yTdP?pZzx*}U*q9f)R z!l_388qa;tf-1lia&?;JvA9$WIHP)9*=X~cs#Z>J+6T`x6>#f?FK`woQ%ih~wGcRO5+(^r9SEFb9dZ=S;1AhuO8CUgJkANmOnz~Z?IAI88c1o8P zH}W!KQ+6`}YW1m`0`BvdAQ|sDP?q~bjBLCZn^hc!huhaY9b=!%LxC(ZQ%2^eEAjd< zI~3O8gDjt7tz+f07r%A2TalL9O?fwRh5{lyW#E5lHDQSXl5uxb9sqCSwFN%7dX*xD zO#h&SWUX+omb#Btu7rjrLChuq!>Yswu6mR#a)@Z2>})#v8Q6TMC;g9v~Wk+;Tw-9?RDI`5Aitx~!GI}S(_vmtWGiFok>1U*EXaa3Agee%_q{6W6^ z?em`Uu6(cpcDMVu*RoTA;O|2QNh~z90c(gd8M-|%ivwU#8q)YQ!T2;kNc%~rl+`;A z@mAm97H@R?N>Roys6o87wK|PeP(M(2e0=HkDb)~UR10SRH!U;fCguq2Iy9cO47`X5k zggwtW@gN5-d06(qp>Dthnllg*K>HtGP%`CiC$j?20dex68Ttd|lRAYs!qTRMslumj{+2^Hi$vx4ejwCmQ&uHn)NzZ9qzz zWXc)9dUkT}Z4zcR8j;z{$u}1b^ej zUQc<=T&PZAi~?kE<;2 zLshPepTXduSPgLc)ThkD_yQ60{!CGCV;N~Z*xPhIB~7e>{74LYjJDkR2`mtw==V&( z0Mnf4U+&OHFl@qNoktxr4m&``7i*2iKD*c69|sv6JqBfs4*HKT_P-m~dwlCABA4pg zmpUY*xcD{2oHSs#RQeMsaVE|Z7mr7dZeK)PSy&Gk1nn<_TrmZdp&>9Z+bN2weU|KJ zd>4LsUAvd-8(%cake4N9op<&d9*!4h9$c|Bo@zMeTQy(Q8f(vbAUucCrVj`RUHsVi z80A9AEDVD|5HL%enzoD-;EijT_G?@NU>=FOVr3rKP@K4YHoJQ@7Mk=IilVmbmnVIG z&HLip*Zt)uZ*;u(y=J_RDW^+YNA`;S&Wg!S!a{s^3+dd~Xo;tHSN*Ok3ChWeip!hM zroFbOiqK`=ccv?;GiqX07K#nzZvocA1gxcLp2O96wG@}WJ=zsFX8gTnfA%JaPAZU; zHPwC%Kq}9id=+RCnU}71QhYdX;OL3F?RnZW^J=Jc-W!>3SDv(aGD^HSM7bZC_I3UX zy0iC+cI4812a(y?{D4T^;&->DScs&s-@fJ4bo1NanmJ#e@#@CSlnOoMKECSd_gPr( zJEdFpUNRQjuPyggDZL&Ny*>!JJ_*S+Yi_*ybu8}f7o%3|^ScKC08t`GKVM9G#Y+wP zZXf$b#mP6+SF{4FO=ti=ACRT|`B%#L6Vh1M%2kd0*c_jEy4VWABs`@K-wHI$&V{c- zL%hfxpLy?URW`b;yEqw^hWfZ7^PS4coko;jEVF8zP&Ybqn zxG!b-ZT2_2&xKj~uJj&XjeF7gYz#6YoX)?5`5o%`9d2K3ZEqp}Ovv0+LLQK-G;t~m z8PXqo#;nA@6}@FMgaz)Nwb_60TYhVhmV6MOZD-+d4p+J=Pa~s2Z`o$AE0Fi%WbY2I zFclJ%Y^CyC#mKLU^3h#6tnO(1ghS^7<8}z50%Ni->&&-MgskZL_6FaIl@djOrt&3} z)fZ#6{=WUk8o-04~(g9o)a80{E&s z!}zqf*?WnF=%PKqfXI8@Yo>@zvw4TGS%Tp`wc6v*-Y%wTL%kWOAl4$<#KPf6@RxB+ zdr}}PTcvE-Xw<@Ef6#latd}=EUeA?5ZY}4zzZ07(!Q((o07XP^>{ihOfO@S=&^jw39nmZVK)C%qt|f{Z<%lt-_^n|k9l)$FJXH} z+GdrKAF28=?z@m9&-$6Gu7}(Gj25z_UQxy@7;JVNt{U$m``A^asEkWitxo5i^D9Xe zSTU4Yv47MFH6?uN;vwsVYX&{xs^6$k^*b9fc17GFSiVdBFMkno{r1s7bxMJKThEJl zb%5J%D=F(Rt-tQnR$#{IoU{M5bh+X3ljC*N_SHAP%Q?S1JTj@AJoUxk?oCYN&$eS_ z#J)Rk=nDVgB?>Of17H#+=jCJqt2mB?C!dM(B=kf0(W4osM)C4Vww#eCo(oHgvG|2eIaGiD$F-kq{+{mHS$bDQf!Tb*G++xtvI4R60(w@Q$vt zOWWNgZc^TIPg}_nXVt+bbG(qRl2vOGNGk0bc{}%xqoD+g3_9+kh9qN|uTe^jeXtPe zIEMuiLb&QT-d9@0nkY2gtyCx^+y0ad!bM<6w^0-wd(VnSUHpy-6LTdgojHgSXgvBl zmbr^~)C7cw@$|{wBft5S@}}7lzXMf2Xno)LipPxK!TEK6)}=T^%Lq9swv)#sK6BdV zR#OfM&ViY!fOogLoj}Y1{E}&A=_XPv!z#sNZwk{Tgta&Tq!%-L$>1CDPF-`kO?kEOi|v567pJ2EQtji43@Z9mxku}?;4i=PdufgHv!Bccsq8km z#1ONLBJVnwT)l%e995NH4i|_W=5hPLuTxhsEiE)33cp`%7~@wzBjE2IDPOG z07mq3ZdHY?P!DnESJ(C~^H`4L)^D`$SvI$R|MuXHxI5luIZ-@GC;>=mi&o|iLDe); zEuJ9Z7bWF3N&NO=lW0g>===gGEc+ogT$DyMIqRK;tK}(yQvPhFTR1C{K^ zahhCJy6cl~VVa@-Y60k`gyfu#=e@tKX1Dy@JLnpu>?fr1q>PTvxzEqbuP?bTySNLL z_4lL}j{+zgw_M5%jEt_P{vG5F0EDF)$bTuhq2_3~G@n1m$)fhnj>rmx<^e2rd0>Tu z4VLodv9iMVO?q}tQRN*B>z6KL<*iCew1W!F&ZO`Prpn``xU<`iGGe~29DzgKJP9H1 zzLH2iYzvs>Rm%=%b4$gknNHw#iRJ25qvdk!R9=f1saxCVXlgX#kUTXa_%W{A`4|Fb zrVhLHL^F>vfH7R^iF90*OL${QR9yI=Cw;2KMGmVUYrFyCW>%>L*<WE7MFnGH+@Wam1Hp*19r%Zm)Tt*tu!g5C%c64 zVBw9tBD{DFR*NSdA8zR*H!^A&)zf~k)zZK4@Ud+Wn!9aUsbE-1bhosuSb*s3y3o71 za_-`hFGg?3zdui@7?W>Dd^W2btVjcGJ~ZdS9)1NaF|X3V9&`vbd&p11)DolzxUG*# zTz63hC$Mk;C&mZcc+zW5VM}4-baDiBuVdaUkeOav&l&y>cZFnRVF14i zC4eL8|A`~}acP58Xo3iCMd;xrjNwAMYIj-*M~K}mf}^(+Es@DLn)1Lj{u5IHv0gXU zxFs?mxza9){4ziv;emplLz!?21tT`i62-&cX0fCQfVmz1XQ!uKSr=V84Rhq>o+HIZ z7(&KIKsLwc!E)HUL!(hu*k2p5TG_`2G`}_Pc+5 zlzG}~sh;FUwL>rfGAamzWLJ-f@7sY8NeUV@&jfc zh^qSXFe~34-EWh_o$@{3G{^%uy~fMcLze2# z4o#`mnTI9Cj!U|saRSCZ)~xBS&&pl#0F-LcE%Rz`;ZV;35b{>$A6$JHAotylKI;Y? z_XMpdf!YE7kHR#^rg3!$DU;&opzw_NP$*D`dsTRcD{^I{?!ZRDbP4NQ|%c zlIVO6V2NN<5s*fn{`H!TZ2B`qtO9ejD53(>sUB!^D}nJZ+SnUh2VP5e?mL}6Zu+)n zCK*r}_JD**THTbx#VJ@}C7zT)HDbf~+>GOtv;*Mz1T82wr}4iq`D*BTJg2IZKZnA! z@G@XEkjw8c0gis>zZ8P4g84l{7|%=lr;!gdnHu^k?ZKxcN&otAZ39*4!E2$BnI1vT`+^SpX$2;LR48bq?N58~&7^ z(97=fi*5nt%2vtn0*$9|8v^p4ID$J_k$jHEPvTw!hPzAQqC|F6N=Q?(%XwG7Rkz+J zyuEN6H4lly5C1AN*ebn1QDFa3r1hWwC=!eo{rHA?t7HC?IY$6&n-+NYKiRe`iitZj zJLb6K0v9|i5G6A4azF&y5_B56O9Wh)sQh8x)c;Q({|~wk)IU(1yFmPMRTXaW{CU6_ zAj_YoL?~7Pgnd)0zyPiR8eTZ8XPI%hrqg^z@O_=dQoh1=jH?Qzf%^@U1g-|ehSHEI zLAmNlhOXm^e3axbpFgCO<7zrFy?OIzJR!h2QE&3Xz@h3!uR6#}V5FmYG#m;Hnu7G2 zfUrO%n?E%ni$B$Zf5qj0==}d{p#Qy*iK*+>q{mk(%V+|q6i^{Zw?@C|W-U6BpV=%Y z)rM?eSmGp*2pqT@RyI9V z?`BMT+gu98_+8%RE0a|gE=#1D`tt{D#m4i?q#!ZBRe$~(B45}}&^5ffJGzTmqC!zb zvnVCwQUg>SR&~p<;F2uCD#|;6;NsleLo_+6wTt78@wTy7kK@VBJM}`WMgcbY7Oj#E z#|pH|i7q;^IE>8RXt^}9U_siTGZC|{YZ-;}n zy_bcp_dWW(rhAO9oFW(0Jt!ZeJV_d{QrD_iEWK!mFA*3&Ikjo45f5iPiXHsLe&w4K zwDx5-%J|;dzM)p60>X3t-i%zrYxi%;xjxmt@2ZWi_K2st4J`7~iKm2`R%shDWw*&? z3*!uES<3^ZaiVy45k0n#*;j@|@+6SypTI?*%qa)(f#%geC>}QPg_&aD+XxkNPD{E} zxlWxia2qfVzuvyHI;q~9k~4})Z+=m4AT0{)3$~VDPL#($?HwGZ*%9Qi>_C<#3wW=u zIgR~2mDQAgV!>rR7dpKJ747GE+^NPz@ksQw7nz|B*~+uVoK%?!CKXd0`H0Y2ob~W&>&F5}Ax?^^HtX<3BEv;5} zdrj+T?42>q!=9&hwyUhO`!sT|aR?U6vRS0D)00;fho@+7sex+)I$H8u?G6^?lvro zZclCd9*Z7NN?-f6f-+ye57O48w;plMI)4^v1G||r3#77&Y?-IXr_}>XKAy|kIBV(T z-Z$~vn?y2W32vh&N_twZRcylV6AARx?1*|-Rb01vx!5Crra4IKOedf*z4LRkUCL1& zLdDG|ODwMWw$rS0O+jRd4YM2)hCD}Pc5Z!=%7|Yo+KBmjqCIF0qX~W|k9llYE@!>@ zT}YB-<7r&p-5IE~Gr2=u+vF^hHah01-IOQjQWd+1sYTl0G{v-sr}}9NM(^94uwHT7 zoKgp7`yU;MAM45xFEDfdgbGpyRuf^pF0z-d#pD>(Z9wLag@4!;=-el0`QpVJv(=JM zeV#|3vPy$OwXOC=w>|pdAQq#OR!S$$uCx2M5^P~anT2yIKuF%6y^ZoW?_~w_%S*4FQiw|_Z8x;h(lDd!y zz2)EtM(U1p)eg}(kp8#o0bdKsRu%4=-dfB>ag(v;^ZCz};4-2}y-2^kxUojjV#!j1 zT0x;?i&Tc)Qe27dh4TgHe$nIbM}6*N_0v_gwWmQWA_48IU8=qnz#5KFCJ=F18x{sA z^rL=}I7Vk)`9;Hloj4?wP27~%VCbqn)Dm2uTXNkkq1*?IrI%c(^kpx{K903k8ua|-hmt4ql zGYj}Tl37gw=4{GEBz3Xt&>r;m6thwJ;H4wTmM-`H>KoqP5_3svf^ng%uIetVR1U&> z8KWC{o{B7(@uPWk7{DWlgED>4zP+k}=viM2g zP-~d@bVTw%G|>T2V=!9Ejh@lyRugAW6`0D);L7KGikHhsgt)ydIoP%8Jb(L8^st+s7;61$Y7-7E$nz>I)6bn;X z2itlT(#*1?X~S2ChC{c8m7>g|KiXJF2R$NKei7^5Yj|ZLp*WGd-u=$Rai|P&FC`lf z80+d=()#pvd!U5u!#s1^4@)yuiXTdolaFO^`u;TG1uw$Mlk3xSH+2VDiw8{7Tc3x_ zYgd7wSXniDm&Wdx(nynN-oDb7a$&O&NBBC9b&@Q0<1R&h(~y+t#y9b+-5lSi<9&^4pYzL!p0(N6+z)ug9nMNj z`k?`OS-CHgBO&V~__Tb*VBaek!r63pQ)_LCEiITzl|OK{oXw<;^HZxlwRdat&b=2 zv7bi0MjVJprV#IzaZ+D&wW$StnN@OSK3!1*wQTSS_B74~`%V{Q9C8Cpc zrnrr6%ncqE6@S-?)>`advFRd6wRxvdMC%k)rI;b0kjY#{%@HDKMS24#P>J1WCy+Az z$*VbF6%oL1PqEA_yvdtRSIO#*WAcmb}vrIFR6 zNgmQ48k+cwXyJaEAN0C(jgo}GROQ@J6+8;HN>oL(#Sdam6XnW|n`VSkyJXtq8C3LY zXq+M*kj}j%i#V1GJPp@L($T6Rs(RG#G~7{eDWt}t_N$2V^=si4JGHSpj=D9L5$m0c z3vVkX%-a+CC!m_qM?Dg)1T4_0O~azlT8dXBw{4zh#n!@xJ<)Q*0R#34t(Ukpt{Wat zIs;H?Ka=h>h7Kkr!=9@SB#&(%o2rC5zoVaZBYEM3*bXaRFs;_S?t6r~I;W4|sj-%K0>d+$x`Z-Nt;uOmr$}svYwU7B)nHgx}pjz((|S2IqnY(SB9~;D*`gB z@Y!rc(bV5^O=PPLGNb58M&%j+^9ocl>QtrJtEXJ=6_NoP-ZUeO>OkoQ)QM>yiavo= z2Vl-sD~$%YscyU!(n$j89rT8@*>l&TRRU=WRJyp-o!qkgu1+m8Tt*3vb}-bzvFw4` zz;?4WrL0q71EGaU&fQVOowWgABT4-qNLOKN>!=EV^|ViV9iP!s`jtDU&omsVEh5Q^ zdbpd@A^4<0f8lRw*gASNuglgJY7=t}MqK(*4L!k4atPQ9d5j0x=>{AFFhwq-zMjuM z^dam5H*W9HdAHSLaOSKS@Sc%%qvN`LiP#&+^~BbN^)EXpAcU6Fom~}BX#5=+1Xz*w z{;&itDN1`Glpp4brI0hoTXaY!ynlv7ak_sObx7Z+5M)pbNqQG?yc~tFS))uVbd3{& zNNB5i3NQ}qJAY(Fq8Nu5JXZXO3Zag!kinrT*d1*1Et0n1d+E_?V$&@qoQ!zXdaH6L z3qqJ)rJ$fs>>qFa@~*yR&FDcKtChwz+p6KKzq$akp$4dqXty-`_Tu#6_$%N7{;5wW z%tlHUOJ0&CFE^_Lph67*V@U*bad~SS0kHKUdVl^7G$l1Jn`AdK$P5kwQvKqv|tQDZy}|m)_nN{wIFuAsGTJ z|6-Vr&HgY<>KBQsIY&5xBCa#yI*a~l0K>-nu@lEi@qqY-{^KX-!GA;xePqQy+7kV3 zR}8q*O)o#8);FgX@-6aJbBMzF?^Asp>L&oU-c3F{zGS-DpQle8Phs698K1{(H>1JA zSMM#^0h;0{zW;0c9^JwwXSiesgH4_nS~iYK8Y7Xk!W0w~EAJYEinLD|WPri~SUC*| zuCk^-cp8ZKjOL%8oB<~tYV~S93ijP7X4V{D6kQhV_c$yzRt{Nb)~vD=KObKiM@OSq zeGe{@x2MMQi8VoTqGhvLJkO~h?pzb-^DtNH?%0b*bi=qb2?+^@cL9=a?wvd>sr8;f zozD&6!b>TZVx{M5oSEm7%Rg$@)gtP2m)KUc`IN2CUm0zz`JVx{OC1B7;!Vk9G1Y|G z*q+_C(hy4iaWvoXa|Hb`<$E0KY2(j394h=MQkfvGcAX7K&e~63R?}$6M+v^%upF`< zM^L+b?9~`3wJG|czN`Wnd9$BW)OJaYRDPkFqYK~raDN;rJ;bKLE_wD!FEP99XQuqi zXFjsCBE`m_PTR5!_1?~0+-^ah8+83 zuZvTQDjNm4H3?DDQy;-@+iEy+^^hV1MdN;R6>%oG(o-6Q6csA`O52yJ`t5sr*a8e* z^S=lz(btKlhy5P*Yf!}Xyj(X1W|geSWV!CpN%Q(g>A!7twA7%+S!0Y@W!(+sD^qT) zly=%&sl-uXaqzS1nyqVKfa$Vzbq`g=CbbP@TAIRLx1|o@uY2(y+>Ms!_T&R zd^JbOp<9a+cZ&Q9x1O~RW;iWlh*;=uc$z0-AK)b=^~ufOE-t2%oYIiqsGUtN+$hu# zcxm3nbs-B6tUc?c+9V3X@x!oh&*u-X6J(go92)NDTU2ko?we~8k~wB{R9Qpx+OL{T z+`So%CTB^khQMz-uVmAH|2lIEh>I1D)Cly@R%fU-_vl%1dE6fFW1m1xYg@{nHZLJv z&}!)S*l$|VHZ7b-@^0y*M)0;EGdY!fBwaLH zUOqvEMpAzW@oLr#Jy3ZCHZW3=zMD2uX;STfiTbXj6u(LiByVy(LBw+_Ug-eT+$bCk zS7?xDl`itsUxSfu+J+@7`L&-Cy1vH09dofXrj^{Ld}W>;UbxiS?^=9YBM4*7b^SHV zngMK@TOe6jV=}=e!PAq0d+r;Nv-sx2fH{^s1a||a zU98OP|Jh2L%{p;-g9tnrz?)AxqX2#g)X8@E5)~J<=_VHDM?~2re>+rR)Y4SQ*Gg0> zmL{bKcCAbOiQ|+QxcbJFmjp}%B>Nt$AoXo{rc~?FesrHSe?Kq5JG;?{s^zKd=O~$V zp_~jI5|{eJjkh{(3ANR|qSl9a1`(8dCwi>pr!Ut_xZIRLdBOXw!46ViRBi5M~@APDHB~-1jsFHasnJ5>f zUjTn?O#6W zr3Op0M%Z+5%72c?ztDhssDRxl|4!stx+igP#f7FU6WP%y+JUtKSQOiv+_ z=heS#1uXWrZlGsGGOPTG7{Ltvsf1S}Z(u~E9UXhUe?~)SHo<7T3BrTP^(oIt=%~`i zF_}V(lvrwV@|RC%y_I6Al~A}Qz?LH!V(e2@rcn=XRnk?q0>$Mm;DN@1v-Mv#{Kf#tSO-Ia$y^mr-sL$9Im8*7 zCL#Dq;Vv|QIX`!?K%zalgbVA>VrG=g`ljjOK{KiI8+XGNG7^Ptg#f{qQ(HOtSnO4z z>GGM;U*?}es#JvH*{#)@-kc7T>35ld6)vPp&9C|;_1e;gz6gK9;R;U-PW_~fp5PiA z##ztv|3Sk6u$9KW0{{w4YhTQgI>H5Jw6aoNelRLfSh;<#b*O^`Zu}C|5h8Ot@D=A` z1i7lAOjmd9*y%v=%K84IDTy8JDo;4a+u9kkw?Yw-)V<%DWQx@;6^+6jz1J;D>v5N`GZF49C8S@-*3b|97Fni z_gFtoIcLnwQSs`-2^Ycgb^8Yg7W@#RA(2V5v&+h;3($~9Ka*%-rUm-TvGv(_mS{SM*v zyxx|`b%>m#;#r6Bzz_Z3g`f`pMjt_7squJV-YmD1Un^gdrhZ|KaJS+x-Ekz@3-}Of zyCqO-Fk^Z{%H?lsqLzTT0@jpaHV_j*VglmBPnkiCgraPR6sr1rgnT*_2yaJULm8sH zisEuN1?WNrx2&GhOB*CwMTu#cN;D)&tkUj<%a;Kc^918|&2`>hvlJi7yt`Txp3A{b z#0xsQDqNW*RKeH^nOc%$qr%v6e+P;^D6g#Y!pF?e5H;6j4;&k{v0}8w4GZtYth-V2 zF(==NP3p=cow18^wS{Ys%3@*1$InL)8!MuF?A~6C1I>_v`C!BP1K`Fo#t`-KkuhOr zM&3%cWaH<8weA%bWE89(+So8%tD*GdU^uBbOYlcw4FLH(07C?GiwTDX+nK-$lk_Rp z>Tc;iQSW}Kw1_fd!&!MHn&y;k$&5RMUE0K6(XB6xW~B79)W;RWP%eeh_{Qa~#@h|} zYvj*UtDHoHLV|jA?=5qK!418jy~ZogvNKnRhEKIhe2Eb!3o`%Ywqg?fOM(T}XP!D+ zb=}iv*;9-U5=4sQezsIWBojUx1#DVW;wNh0#}no2j=Hcosjut3axO6GZ~uF-MDYOt zEwQ=-VJX>UfQ-CTGqGuFAoWqulU%cu(>kiH%6_<=@iz(u++mRC82O7O%@Z@TLl)&4jA-U<{`SC^zCq~u z4?)aU>S;pmdMZPP2TFm@b0#n*hME7u#lz5u@3^uu&CHqKzd*_VXKBjtfJ>;5kt@8&!QjimE;1s-RK$@2_Tpz)AQx&;ATSm@=m zKC$)IIkWfOz>fXdWqM4JUl((d8ttk#aC&{<9SOwLXab6>zPK&m=-zhE^FfQ60h)x5 zDQbJxBP-@M&`cKTjtQLGi274c0gemkF;=mCg&I~K@9fUwo(Na`y)Vt9#2EbN%N$mT za`vHKq|8k;?7!Xmu!ox6h!DUD2qRK9-~=-28wH=BHX6fm$gmSb=X(?^_q2%cfOGP< z;^a_AZ-62|DziGO02Umd3mng)>r+gC;0E0sY{*q3x%o=SchW-T7@)8~Bi2{0AosbQ zB}O-s_fPHOzi9Cg=0zM;{q-BbPwB5jl~S3n;*(IdT1+Y6(0v=zO<@e!%eR1|in-=u z57>3&V&rPSx|;(#@cz>O(H}VUbyrC=lXZs^?4}a(g$I69WBS`BU2fn7VqYdTgZcSy zQDHhPJGRDw8$Un301gaLQ=ttwuBa58XKY`X0j6Zsvu8vHG>GPy)C+kxoX-j}|LC@j zE@_m9r$v;E^pJc|wE3$#3kU5k&go`1;- z@D|-LHMjRHp~w3)CiUR^m1ZK+4ndKlqA{lIAoJrL$i*`AvLbLsLnN8?4q+8%mLb{~ z9#);;BVfdg=Ab+?FM8A-KQ^~Jy5s9OXwkr%#Bj^bh=IX67InL1)(`~*hK96#k0m7< z&#i7Pgb&Iw;0i(a!#zQTtGo>nD38+Vd7&iRerK(; z*mU#-B_tQm$av|Az1p+jxu<0sayCveze|hPD>8E~XCQ6v&9X9zYj#-kyEgl`p$WGQ z8J~p};#I2a5#G^C8Zt=Qw9w6(i_KhkDwnf`U5&qOPhD2wwHStZRh`qSlTk70B10a^ z=65n`(3ghvA+4%s2ipK;lsVywO2(x}A|ms|is21nGQpw3X1Us!D~%64s5O6n$^N|f zslKM-V^!71iq15nFLT}0_9XXg^~gYSc6KGXPVOnJ?FwHhf$rXs&v+ZwX@LwOhC%iC8^5s zBDda5i|9W4vlHqLSB(*IY|wAut2Nh$#@9K}Q=~&O>*=BH!+RmR3@JilM9Lk5@$gud zr}cR;bt&zsPeg;kMc&&ys1YhIJ&iu4oPFc&RS8y#(tVKh{*t)V{3E68Lc~u>{4}#u z@W-Bw7p(SQpb^@m+D{qzfpcS@-ajLsU{OcDGpmAQY2qJ+k2g2D*c>WM-+5N+X=Cft ztUuN4t8n$Qs>($H2WE!txI3+}u0o{o>U1&by0`!0mZK6rd6XhoCxo%h#k%lwzLDPd zG^FAy^3Z$ZMuJs!3VAOd=xf!fZ;&$&lT5BrD;V(VkOqsK`TF>m;0JyuC3qZcP@u3t z^gKbcEHORIMBa?OYxJWjDK@7>JYS&ozDQqLN$Km&_7?LPt0XCC-=>RP@fL=F`ENTF zEfvD%ZkrJ>*|YaQ^)|69?lRJQk1jmywnb=+>y+E)bV~ZHDjKVUL+R<5-xoOK$YoCI z%~}d05HE5blOgZCwSj(45%~7QM9*uJ1?KzsNPnsDRlgl2DxRL_jCKlGV@lswaIABc zuV-c%&S9Md+vPCj&}em`qYY`45p06kG@%s}j|D&px49||A77cwo8fTv8F}4##H=Na z6jF;RF*SR`1oO0AfUci+yagcw>d15$dW_#k*>}?ue&*^ipB?RFX{c^sUVOD+_3Aod zyu}PT0=41$$$|L70gsFO%EeOZ1)FkyULY`j7U1e&F@-20Apk8t5|ACUd^(9Qq(;tK zBhV&xxAa$4_TlI{*G_2ezN^YdAE)hAhHani_g1tIVJRZt)sT3zZ-Tb<3=Qv_bFp}h#@BK@Cwdqu!W z*(aC<1Hd1NHVB75d%Na&P?g$!sAV8#{#*&K;D~xC->TAee6Ia8EM>iL9s!(6Or~2b z8W4+-l3^-V-hTu`phx1rhrOlB(T$Ok2fs(fPBocD^g_^3U17PA+fc0mNbMQ+dG;;3 z4yvw2B3pf7C3m-o#0IBp-(5TDaE_6OQ}3O}1HY@&%H4A)OgEi?Z6XNbysE|9L z=j4)H^d?^neh+}=9%}VCla9wod)-z+XS4V~;W;H(7fH)SI%{UH(H60Ct5i$MaU5|( za_IRX9jCdQNXR04hc7fkdXdC|vHlr&KwqG6wgAV0-bvujqkfT0d+I{!21;&VNZHpD->tbJwokak*(DEJ(?Ny&chNH%X5 zLGYfQ#1QHfQ(q8*!)%%5!w*E;NCzaiFa)$!8rJ<-D`^fwCQ!k~RO$|UXJYcy{g{a} zh5aqGDhAJ)jqtU4eO}I#p8wd@QC&D01b)wIc^fdpDBjU?stnb^fEDd0`CGvn-!!9r z7A}n5Xh@uYnfAO|5qb)XnJlp{;_}}ZV05IcZDTjsT4`~jPIo#L<_l;YWBr`gzAzjA z4f=_Av$O|KC?W2w0U)-{)+=~#kL1-5oJrtl@OyPcFyi4@1i2+uFC;j4m({Vo4Z?hL<0!S= z7U-^;j)qSO65H`B_lc{~V54|j3`{~BAQ)r zw`YiI^eLUW2hDby@IJVE17?OYa#U&haUussp#c|Y$B%`c|#s0z(dVQ&ok zDgvd%H<9VIbwD8^YV|B3%y^@d=9={p)@)St_?{K`r3&N+g)$KqMw3UUxz<#d6%8mEh8CMFa_c{`T_}mx zYn%9)_Z>8CFd94evcO?@1hlM04h{Mxqh8!%fsb9J-zg!?5@FaE>yiS|B~54!Uncv~ z)q((4E3^2Jpz`tBNU+P%};_|`6! z%CTZ{9&{h$lw+pT#+eeLy1(MnM8g^1d}0t&aKL4oXBrEaA$@+2{p_Ci-me8a-}d{q zNt3cv`tm*AiGr+XCgAvDsdFd+c}xj^l~oRh$~cY`(UAnRbd8(V!!L|k=Mo1Gi?=HYzZ~v>tihD zAz`Q#XoI}hneiBzQl@&6W;DK*Fx09rf4}DrK^e@>&<&eh8aJpf)#sL@XmKz>WgLL( zq-ps+Dmv8$(P(yq6&hT9FTNO2qR@9FP9}7`d_7{E2fzOTM%U51^2~L^R`M=^vxDhl z1O6`WjD9oT$DjmJg^CL$t4!9zO{cG!;tCtFe&D=p!)`VCf({04vxvvWR3FsQdV~HQ zW1p2YA)1k%LzZBzI}bVrc;deXN{;avJ}g0BRAMcWiNse>|A_&WO47JqGt%n|g@h1h zb+UO)3}w3J_fQE^FtMev9#ZL{hpFRfMY@Bq^WOm8&V^=j_uq5T0(FVh(+c>Sezkvl z7e{}P)g{$biN`xDQG!!ym{T5reAb34qQzbrP88a;A9mpByiUp&SPFn81`#YU%1u%4 zizmRoBq)Ikwd$awwPpVeR`9_^&i@lOE|T6Fm;rXV%Vx^v0dn)`JdKry^S`x*V;xK~ z?52)2EEV{!6}bO5n0@>OYWSL@+18;g;UhpN;Hi}VgNXP!fDBnh0I5$|H~VoB4G(PJ z6d)5fHW)DMKlY>k7`>OoGdpt7gjCjd>vH(KZT4{Ct;dFf8-^7~2iV+JZZ;yx>6 zH#&%q+ZCWD_P_YWTG0HPq>s=0GKBw05VY06&mxQl-oP9gweD8<@!YB<5z;><3!TCQ zRUPlRub<3rM7ebwoxC(ELb35Byi;UwFt&{unnW`~SdQnxFi06U3wuk0)l(<&1Dqti$#4&m@8I}{Otzatv_5O*z|Z_epvVVCrdE` z!_3?c)eo?NocymbL&muRcxP=60{;uGC{WuFyHFmU#{Aa7Viv{Tes3jU=Io~F&;Ly+ zdSC}To9*mY?Eh1%4ybhvDR3D3pX&S%104cV(eCaprjzyw&B+Jg6hB(X|8<~q^6}}o z({mHH;`iO{r4nuqyT6scAqGRhH`FUDJ~FU;n3&ML$LaKYt~-@rQrBScIrc+JS;n=e z6v`juU@~$%S)oh;jgWVbs9$Bb(n*n<-)9X0C+9wvk!%c&RU0v@iEydZ*Xpzs(~tXw zQ~n$b)(QVXvBCz}8bg4w?2$8P;v{^(mHRUr!nxbRi_yy@NB=UM17N|C0Br|w=t45G zy2-`Er=g0^$cG)574SD4hPTI_{!F7IHFCGo;+1nAf};A`9(L)LmWBt_J3R%HNn!=< z70QuL6cZKjmrAoYFlh2P3q5fRL&V3W<1ynWJp)Y|WI`o{foxu+mLPbW<_&H-R`p$% zq9N(GlXy+{Vg?eJ2dY)OGM;d!n}(^cw*FunI#&Bky@o!wdbaL;WcPn~d&__*+pcYt zlm=-*I)(uhknS8nnjs|wDMgf)Eq@)D)HDKJ{>hrwc ze!so{jdI0#ow<&69BZx56no7gK+h(e^(=`d>p=5y?@sU0p}t0%VSTI|Sv-!uTv@IH z6&m&ZwwPdnJ*QsCOq}9h1EE zZED2M%2OV#sBn2-u?HL;pU!69AV}HC>M0DtlMQien|#PZe(e5{UfuDW)jk=E+1L8u zuju|ZSWJ~=2_AbP_lSg)4BGL&JZ3W+xthGh5r1o}*#ZoA=Sdbb_oH%Ro+*}Vcpl(p zAsRIora?t+Y}dPl3SVd$hZwYRtVnp%Xuw6^zTh_5o9q`~JMrE*`J&D3Rg9aZB3lHs zhxx2MYW8qz)hCL|o(r${EEGAPy}f9)A^nU$!+|8CQlG&on^@BhTc^W+A)(BY%eRw+ z4Hl|9g7&(8R*Bz4APK<{e{-$*;cG61`lan?Mxg*VT59_>0NEJGx=qzNgk8pM4I-y~ zwCQngF5l}u_+Y~fh8~hu!T`;lw1?LOI%(bn1ge2Rj0eBU*+h>AAue94lJmK>a)B;D zGnd@DLV1&2`OV%il?a~xqI4a4Z4mEFEZO6_8}=R~ZzG=M=?1~yg{RnPrJDETs}liz z;_h+_Pxl@S(^oZ#XlymRj#OsW6w1~m;k;&G8%&p&TOZO2IA=nLXwIL|f!>SyewCg; zzsduJZO*71OI1A3!rKP}ks*M4>hz$GxgV=zWb82wkm4ro7jY4R1zG1U7KHGPk(b z)x3Khcg2v_zNlZNrp`p@<}S7GcROk+DDaCY3Rx`LMbjycrK*yl>owvvT#x)s zlJ-pDD$_=5S8wkkqnsVat2OFFCcf1e^>Fu=PG##g7nueu>sVm>k9WT%dpx0tRxTjv z`?bp5#r&oQoQCx22HNedis82XwmebnA)&H9d9vGZy+uFXyQ3_9-4F(`9J*w%lcv-` z_=)`oUQEicV2v-RDAbIn-ivl#sAa}Ad6uL{aMdd6`b_JYenyf!St3K;bVear#pQI_ zQZHbRKdkp6I#2&faC@qnL-8dn_KV^{dhcw^hFWAeN%8!Pnj6wfB zE*8gnj}YljKtlSF-}M8zbOR29iEI>!R5+9EI9 zmbFjg5FAVLn|p}Bn=k9?YHGM7E1HQOwryD-GOICBs$HIOC;&2MHOzz|`oX%~np$1R>8H>#(kPId9Y^wap6j-*0<`7>vyu|)0Bdg6X}l+ zL8Yt>=!|MH(id1{?S?vAjf6nTIXWIrnVpxN4eEKJxT2#*MlO^Aai}QL7-yaW9_V$J ze|2INQUO`pOrPrsAWZFr7Js17J%`FdehDRPojFHA@Fgc*J)$#wZJUj~Em-YLW7Bjf18eoLE2UY>3WUB+NTN4byv-JNV| zjA`|zcL7u4!Vc)y;lJ*eX7BA@;%O>doNEK#3V^Z)p2Ce)|G zkGh^CIR@r?BaqoDAhgK~uYtJ$Fj60(O?hje{nBD~SrOnw&!+6c4(=CKVbWcYQF+Vv zy}M3Sbr_LWG7$WSYJ%}eJ2stPM%%({r~~&FpUwR%kPZCSphrYbGWT?VjAzR9(z@e z#X>O5^Wam)F*1U(tb@xUDeQbcpi_htVdRl<@Cfk3hZ=kiZ=>8dliu~Rk>ohrmajlN z3Z_e`1s)>V0{?UvNt2hvv-8U~#w>4X5TNcvnBx3oqGciAkA8Dq1f4XD0Zn#ahXrR< zH$*$7FN=KaJV&AkZE9sp;((HRU>pWsJH|43aUtF+c3^+5tnM7Y13sMt$%uJR-s#c3 zX9tnhe=I#NiEKPzpNj{__zMgtu=CR76HnM~%3 z-nr6r_c6?Q$DYx>B%5Jozxrm+YgN}?-+E@g1&1)JuF=>719Kl}H~u!x<0lH_9K5>- z5mxmpHoB+hIa+@f|NNI(tLs+pja@eOaxRG}Jqw&XES9M;gJXZpM~0)u%d>EMw5wD> z7{RjDn*MoNfVUqH$v*XO9c7$5+dPwCOv_Jb;_n;B3+jlFJ~C5)twlFcDRF$=cp{ZL zg^$=gZ5P2l7FsVM#LmjzYJ+Hz?lm(78S}N08<|lTm9(!1ZN5u!$CoD~QgBvW;RdkB zh)Wx#-riW|9QO5htJ>a(+zBTYof|-wO#5>|YY$;s0Dl#2E@8{jDLnm9nKu6+%Cl#h zuTW7Wp8mk;?SfFMryB4J)TE0sv2>n1#{=DAc^e7_;?eBy*-|0XtK^|0))?`8GUYU( zzU(Suh)*>4M*j8@I7P4~LeBN?5iOBVcmV1o;0-N9?E2%ukPU^h){8Tu%?|Yq8ueIt8SJR2EM$|RUhd1g2{3RzJ^ykY$=UUVR z*nf;;T}_Ij;H1i>&lU*p&vx{)X@T#JnAgdw#z$TZ;a}&40t}#NUJq-6v1}|Kdw6)b z)Q+|kIk!$g_mb$z`?bD4z?3YMP3UheU@oW5^j>Fh*dF%Y4bH5M;l5LYPF-_lv9HAC z#lUX-UYaZ=;)o`yfiG=hlUtbB3RkhU{JGzN`fo6^SSXok`|nX-lvo& z=LPADtwUxy3FP&ANxYnLE|Y-|9XchmGFqe~e|UpHB$}~H4>|3{%TFEAD#(4AY)aB; zoz9sLx6nv{J}ygG9c>JZP}Bq<8CtG~dqk%3YH{X}e-)4m^^TMLc?@*CC0#uOxxI;A zU2tbzX6UDh!;qyj>~Y;Kza}czdk`2d*~+LlB7VUJWVI@wrP~@_$p_tbxPa2QW7#N) zp89eL5Ofk0L0uG^!SPaQ)+@yS>A2kqOL{2+uU1AaSH)GM+fWaDSY5IpwUe*=`6IWm z5+Xm&9`(+!G&-eEtHyCJX#V^pxL1>jGoqL5AuUs%uBDi+t0!MsB1BIe*TiT`tlB$M z{H9>K_E^6d+SQ-#Fi>FBk`${5?&vYbSL4n{T>Y^xkyXd6 z7(P*$_;NlA_A*rauBgUAj=AHe4r-Bk$Xg}?6w+Bus@Hr_YFr&`IRQgKjr_MrUaDP< z{S#|jSs9&OM8DTk#ib*{FG^G932gRV?P|GesPM`d0;VDL zoU(MnE`hCm^^utD5lI~Vj$xwr<+KU)=54muEU%>t z@Njzy{(%@QwOg-!y>idR#j`E?;_H&yw+(HoUQa$TnUuaDF|@cM=0Nc@80M7wP#T+_ zrM`1%6Z}GK@CB%Y8fSM#G6y#qOrE<*a$DHr!}A@Z+nCosa%N9dIxE?`zyInUjhQ!d zhrXk=J^BhHR6I5^A^c|GWd;Y)iWeOn0fK5-D`{oVZ+cINf!`EIFzE{`&)y|nn;hYt zciKj4F1ao0TfvE^+p53u!gS2KMKm~+xyd<*+|u8bW3qoFfZg)CULkHfilG}}5)r>V z`t|RgNgzMRrY6^0C=}_S)8yY=KL0Og9}kr95ix)E>}+qZ%ax2Q&jHIM@I@zxfNK1; zK||B>O9u4qi@Q_SERvF(s*%(T%fv5)?#&n7-M*x_Jd?HQh|e2_&BGb+6(#kPNGX4x zq|c50lxO5IU#h8aTc3lDwQ+9W8jzb&ffKdPI8g}u!;SRuQ@5A`kUq8IP9biB`3bHr6cG4^AHF$pX$ImnFy#Q){;4*>kvvz^99^rDHhoFk#Ut(d`>ODZjc?n;;@O3ejBFbqK#k zmg4}WyB{A{D1BsQzs2HO#>fjo@TxOCGfXf8b?6G3_%MI6zmnTIwh{ZmqfX|9fF^|> zx%IJL2vcan?AO;XX%!g>8L<{_%16`t-I{hc?7(Hcj-g0CJB`JcKcRQd0ERhOI^$pV zDv6Lz2rowQg@tfXg#%G*ceCK5Zm9r2&7m1_E8cR&hQOQvt9#Ds+vq~Lm%-Q}Sj<)a zOl79RN)(qnG-Ola87}1N6>7^5qh7=!$vQjnfh^_seuu(m3s|^h*@}BSPh&HNog^xD zo9lLbARDjOBR8#Dd4(avJn7fh{4C(N1`by1G#>l#$`7!+lG^Crh>G&~x&qmqzWNSj zgbJpTJpp+ca_E|s`k^XNa-T^hHtX%zLA#jJLl?>2wwJb(UMMk-j5@zg3MZ<}#p_Sf zYgxWV{rJ+6kAsSqaB~QHZ=IU_6 zz%8t;od5bcfT?rqfB+@;$^V@z*CJp;FXo3NY-WcpM$*>$3*qxXopb*AhCe$3B(6aF z>4t|yUC?21NP&o}&GJBbodz1IfScztz}iv%wr!v4ll~4Uk9eRg8p;U(98~QYF}QYZ z;y3e>B{N?44BY)bb$2@;R-62sfUM|+MQfz(aK#4BIh1YMnsFc^tNoumNUE~+05Yi! z@xiv}c%HVAa@v=X%zofg*`+0IehRTP-pdf58MQ2#WLY$)2-X^-=}sDJ499jR>onj? zJYy?_=pPHaeJJlYsci+AXUR*zvm4LcL3zemgf$xr^^+GzNyM#kRLm#5vTo*{6>4+%Wi~UD`?28cf3z>WPTw@q-d(jO9c&Q8e1L-kXMyfz?*Q* zxgsGw5tov0#K6O%Zvf6lG%wxrxA>=|gQNmE5aODIYCKBM%Yq&1!w6+{<0b|Bx@~kB zGxn|3>@L;?CnXwRK@1g^08UZdkL_*>H_>%TLavJuX+moFmere+_EvrD{VKloZwe2J)U(5r9E)AL;X<(moWB!&7sU2NB4 zsdaPPMk2&7|G+YT#iR#j@Gm3M94*VZA30*dM=~slxfq|fFQRmL{oH7HN#*-sC#-Gq zX@ZyRvXFdP;U}p0ABAAgvs0_{YMGhDDammMf`rw z3k%Zymfj52f7Jsi% zsR^hiwW2vppJ$}rcePHvRsB-dLcXDSRBbpmW?03<1Fd7eMFy16Z)Y2@0Rw0@m~*$p zo?HrMZYc$?kuTBb^&zon>Cwa$3)BkTe!3qRXI)p17GsnfQZOqGsbsH|2dJ6YMq*5V z1VY?t2lw2jLa@HtvohSLNtE&4PAld;1!vqyKjZa-{4ZnVpk&skrNP>Fp~75+)Sxhq zuB3uBfH~?|_GVGtL@$fgHkVt9-zR=912}WH3SZ?wz8&tlfPmRW`geCa_Tkx2ord=jNl?-SvcT-~z;uwvyyTm$oPDpF<2;mXmOv9-kDbWJo>D=g=lXT1pq=kSJT zh|;Tk0+in@*RH6O)NaPdTt^TR zCT*BNR0;~u+~r=Dj=Zh4DDCqVV`Il?;+{^dvAw+Koas(6AoP*vQsi#*C3&=pknP>j z^(M||>I!qgCsque$K`B8Th)0}QjMwIR#SM5JQnrk8VxVKb=W!SH$Mm10JMbQEWg9_ zg??DHBBP%j342%jF7*1ridmOW-drKCvBxd^3r|JKt)ygy6QfdW@>)8|q2hnUQ`J@q zdl)x-KPO1vT5=ja+{=bPb1Yptkfy zO%e$vdQm+Ji^`7;U;8G!O)$n@OL7TuG0K))9Jc8xur;l9tfAU;MgD_TX=z#OY7x3$ zzF|5`rT!XrJ$2)ZVm$@ObSX{*;+FJm7oQbJzi-I_eTM`4-gBqtxw=6Pb7UfSYOnqc zy^2cJ&wJem0hAm`Nm_=eYg74BQ|S|f)<_R~HU69Mu!ykfJG|=_UJUlvt#pWGESH(g zxBDPC#{ZU_Yhhd3G7$$1Hx z9qfk+3P=NL$Y$1ukrPRU_sB1;WST7Et0?4GhkOMuRImq1TFa84(k8=d2Y;6kxsA)7 zaH#a;t*XvVU#9^=@NgNRf-?jmaQL=+Avmw1MIz90CeDd@R4rn*)TT*P#C2QJKfqpP zU0G>n2Cp+FBygAt29dwdOB%yI7p7wXM!Egd+4i5fvS*RIR6y>{MS-g$5ccb3`ZqTb z7>x7;8}wZ5tFtaUkDN>8QWD?I=y*IaBrdz#-y4E@XbpdIt29j}X4%0wC=yg5x6b7y z^RnFoVQCZPjiZ6tu`q;pc@xV7Vl5*hEPmlN0a?t^8>KR917DJ%Cm64#%b5&2_5=-J zpKHT_@&G^GV86>;;>0{B@l3Cdx{Gjoc83F~cry(rPZfwGn7UIo==~WtUrrko<}eR4 z{D7}}%;(v_o%{v@)Aiv$vfasqO}WFU^P+v@{GNZ7xW9pS?lukY_E?!)!s2;#5EC9@ z^s@-zJlrfQiahtLEj2Olk9W{aU~(_WJUf$b0HRS*u-RT<*+55@1ttd;{K0 z20-G{-#9W2)p+kw<2q|Dy{pe6)0|FRDM2>J+p2&?^XNZ*3q2@oMrl#YHz-TA5%N9( zP%lZ=BAEp@iSd)$f2H+&lX6wlZ?fv#u=x-ADG*5)rT$-dC)W&-La5IE~G@F`N zPwj7@@&u*Quk_!c8K8%c=bF{OkdJ;U^Gf=wVgDW60ZA{R->FHzhQINOhufm`l8))3 z$hM;UuidKw@|$S{|MlT>O(d6n6ev^)B62J2$9<^*{b1KodU90QX_x$ALiwrci0EJ? z=I)n0f8KZ+!m?02e<(%pS4eY_)Mb@mDgtL}pnQIfm_F9UZ!PYaCXWP#gR zc4LH-=>}qK0a~kpf&k%cVl0lYj5^RceyAo2S#D8K@ylz zg<^VVmUum{-P)zDyx~&cV}S8sa-{fp>(UX0k5+JZ_~-RdIwo7L;ENZ&qAFp>;gdZBo!2WvaQJv56K7cpm$`W_%`B7pdtOfTp z{l!sm{*#_;nFh*+(+6M<(o0GazpKfj&t2r#DdXZ^=D0JLAKofuHK@ePia+i~@G;>P zj423kyetjmX-}QBI+@1U_CXAS75C_813@7l)l*)EUpt^}C~T6_s_F7cJK~2sqO&_A zt{2A5PS8g~=yP}Vw?ndKsN|FGnBL?iqATUO31L9N`8k3!Dc~~A<--!=%Y0C(XHr>q z@0awgJJutQ(nBiJz^O6@l7JoRSHd{Xs4sTD`q9x^OMOl TMS>)sF4t5w;b~W>t z1c3Qp6P>~1bhi%-R@lngi-*3ReVp4Ee7x!bl9Jd3R^ohmt)ll;J+qU}oJ`So&5%Kj z7+`dkRAH^!ypWX&v_}?GWOJ~-gR&zQjttngVTWkO+7Oq@tI^~3EX@xX)foyHCYhgx z7cav4%E-t=utB%NcoT+6(yHm>gwU>JqoZDZ{BybWLzM7bj`x9jP7yFwqG?wTbs>do zR|HHHA?%QYkKS*T`2Ew>W)zqiy1Si2;g8X~rM%jWzoxR1(m(^}m&oyFBJfL+RjtUC z`P|Ik-k{7jIb#rN2?u3oi+Q>)WgVKE2)9rKO}`0?RNk+X-=7x8x=Bp^WEqI5N9Z@I zj)`%5lUV5qYrchY(p<$+Q?1v3>M(`H*PR7={=o9!@>&Oc{9K(^U-0@JAqB3kNBPp@ zY-{|xiGs831-zBMS)~dWvzX8Mb-?g37zBQT-@BwO6#0=blKQyb2xzPM4(H29t6S#0 z2K}5oMy&f}tY%+V@t1Z+u0JAd7JF_4Zu&N0q>}DM9As7|#-EiO!=MFcJZJAHe#e`H zYsU?Vq+_eh2v)Ca94E>PzDS^SZxm@jCwi|Q4iI<>Hu30$%&Epl9H)T$jTSExd-%9K zxl3$O%lrX?$>;cxH0X9huK@26*P(5uCdE4++txO$kIDw)`Yu}uY}|vKt{$(t77mkS z^~)exiQWDvPn3RG&7?RB9$`nV>a@cpdL?xmJ$V;Pbe1syS&C-pTGy&lDwoDR!I8;X z3tqBTrN)c$``Ea#JSHdtL?y)W1&=fcu%>|GiN#41p_87Ebo6|dMM9(buT(doD-Cs>mGeUvn^oqGKh(-YMC)+IgXyHa|W5;KJx@Obd>(Vxh|P4~o!u$YijlVW+~%25-JA zgSmE2sor&vFdT8p^kJ=HzchQ#5y-1QSw{>rdMJ9TdJAL{ioG7*gFQmW#2-W97^XI_ zEN$ye#|Uy`v8vhp9_E+N86XSWGb~n}u4PkRU#Pn3hmL z>k#+?7=Du~*H^O`_fuBweUh+P&Np6*Q(BB@VY2=v%H$UwQqf{d*Zj1is7S4}zp#XP zo~K;X*raD5XeCQaZF!5J^ZUF$uN{K~H9Ug@RP3ACCU|k&E=M$QG1X6QeNyn=(Q`|> z=NHbeJ-?&Nm?|RQImAWchkyP08D3v5F6HL^M7Q`dRDY!~aL&XH{T6g7JtMv^J@~$1&9TI=+4$oj}I=k%D`!1pX3||F=TfT{4{R}jF z)puhM;<+ZzgBA&~hZ9m62-TP&5fh(RR&kq2+aG|PCHl}-dXE%u_I#Vr-dyXZ3YB_h z`=}+?O2~tE{L$4686%NY11Uk(JGa^Yb(r`l{mpOecHBfF^m%x0Ey_#e^eE$D#aY_5 zE}ENWM``5$ISzlY%$Gs=M;fUQ*p)P1QR;u@$GUIu6Bqr#g*)bR4UPiXWj)@D|JA}q zDy6J2cmyOq*`r9aev7*MtMUkWC6GAnG??Q4nrFkwCqOCoA4nUNXE%Y|dBYX9)1-h3 zN$lRM^^xj0KplgOH~%})cK#zn7=@nN|-hd0kY~FKiX+$0l#Qj0d-Qm8ksye z1o;d!>ertQZviH(G3f}I$^DJP7!z5Q4|9@sNyR}1zpXlmL<*2n#-AX0q2C$Abq}=E5 z%O@aW{{Gr-kGIa5&5yJ2;jbvCRaJ)tDToO^NA>Ge_%q3L%2_w|`~uqm{U71)!o>g2 zu1xG+a=&xOC#jOF>V`*JCDLeQKG26a$mM6LE-9=solSqtd}*Jwra)TLBlTV+xnq)) z+l_b|EQ)^dPPROuv9W=+|HV6;qJ<1|Q&%CQZEze4_IzxdIbe5uu8--cz)YyKCzlI< zhd$dC7zb9k^O||CYu57v>?bgE?y>v2mQZP`|2->m~DflWbhwByE|0hieE|N-zE)R>L1D zuV5givl*nq%5`DBzT82^N@G5?1-|jJMv{W~?Q%gu63kG~pSOy;0?};`R9ysXV%BcG z#Qx&to7tO}j~$1^;|S1__f08*^>4b6Sa|`&`7RVlB!A)S5b8&{GKvhKXCS&R0z1ArT@ z0pj?d@e-SgGa+LB@KgPsBlGS20?l*}(x|M^sn^zPp+{D25z)1T;r6JwPyVTr)62}q z3Pl4UvUt&A*xdz5y6)V}cn-m2M3dlca{|OdV|pR%J;08w!LEt9)Jp@Qq+Hnz@He0o zzXC9f_ki%TYR{#fydCZQ+ZuzeVZa_W(3N;KDt^1`!A5JOo@#^;V#;6jw&WxWwS9>+ zU?pdcoX-VpWNxcd8~Kx-2^mUhx!-j@lu2hJSp)o!7&8F~Y@(fs zn_4yD8!LUtY zAjqc14Fp;>xsl9>Q0XrN8g^b>xmpI67t-TF@vrF_Xz@c_c$AuocUj}Rd zfp+vkl74G>De|SKViRFKu(tE%9gmLqMTwS4fl}?F0&9~@@;KT4R+_BkJ>;Ym!_3#T zOx!#&0rM>Duz`U6iY_U4B2<<@wAtY{G)hjnmF~;cF{2Oj*vM!mOs@-O-@n1YrZsu=ToX`h z<42+CVkhSY_;R05bjgoHhMNI_frFq;HT|$&&fRf$jx9}K|H@{-LUyZO93QH3HdFm@k|o+e{$vTOgRs9@%NZc0;Dz&RrNiPUbn(__$}K7 zlrFag-|=c^wlh!YpVdThF!Kx@Tvak_lualyQ*Il|eP1~@PaDFp|7^Me_RfEn+*=_- zC6VUSpY1uoldqb<=XB{R(gH%cmk2oiko{Zy7a`foCk?5i9jtihlo-KH=IxGJQ(10%NQ;P)Il=!oz z{3kuh+4KlS1$?JB7`oEbcY$=`?PrHuSbtd7Xv%`sJxmsdp!YP0<(uX(T z(tLjqP27Ng%=-OaUy`TZWQRH2zK-J!KJFx#)W~#1zeW)M+0YtW_MXXp_~6a5cc#)W zlN0E-yvoliNNr|)=5H?)I}rlHq~aei0j;$7AJ}ty&jbID&_#>2hmZJ}`P)+$A4<#F z8_06sSi4+z&7AIiT-ynZ!XLZhtnZP5bOsH#U)CuH+xR32$q=8}b!NH@M69EvJ5Mj~ zrUC=}cX$(s$92twdw>6)!BGQ;ulek2|L4XxQ!_tlO}OiRrRXryveblBhqdpC)h~{|lf38qrXt!2-d$aCc=ns{OUV3?c^oNnl(|~vLS96iLKdG8R z1!>1n4##(iSiO*lK|lsI71dT^jky@HFiD@XZ)k23ldtoQ<+VXMrlu; z3>I^^gY*fJk-p2H)*RkMCY^fl4Q&JK^Q)XSIX}(3Ko`4pa|Jd^qQs7vl9S>HOdpk$ zmGLAyL(oIGGxsB8FzMlA{e3y|uS@AyXV3tF(*n)+G%t2=uKa+h+znLw2a(b__&{0< z*W5uREt*qHB8eD5>g}!53ZZ&e;AN+Ggv^Wa&rAVTuqi3qiaj9Vk&8*3CXImPgl!k` zLOigdy9iC#7I)z1!qAbspnr4}>}^5c{C;1rerF5eY6S0kd=i)XLK3*z^p>EZ)o%P# z60`cfP|;s=V!@3-VJ}ZqObn0p$_4qS#_-th)f9SR=tfcNpq zksmxs-&W_i>P;{z1l40=dZA)q&3%as;7FRj>jVgsfaEzh;0LH_yntwHh|wM%S{DTu z{)T;i?_JkG0G|0kn`B7BoPkDY?D_o_wXUmE1}>~`6*npZr@HnU!*M=_{CGt^^HaJ%f~-;Pcj zqf;&oa4elBF$z&7%kn1swQFY7bjDNJ3KJ!fgHOB@jY%gZqK#?BLI`oG1JCqm5Gwn2OK9FwifAL?r zGWRu7(Rt4QBcI%9&3a^NK0s=C@`tnGM_N5#QhoR}3<)@`%{7N!I?s3VbqYTqBoM_& zD}#F!SE{&Ms87I?Lt|gy96+7`#UXd-e;w9lhnKKmJ7mw7-|0^o|2kKBKT?`4T%9Vd zYC`UYljh3=p*d8pd>B|NB~t@}EKYy&J*w#2n#Na5LB{m}bm#(<=XBeRev(y9LG)FAknFG2`_gr7Eq3}YQjbG^bXvx zvpaxfr~-!9>Fuvf14&@8gjzQb`jBDD_5R;B2C`f<7sq9TRuMy5jgjfgB^teo3b^D~ z_(^y0G9R$m!K>mk>3E=W3_w~-OE^skpCM?!QUU!vQggY04nV!6+}kwqs+gn#77L-L z72Hrov5~Dv4}iUq7hspaMY;{UYP*yVLqx+H-hIe@y9|0;=4)dWgo(bhbs5(%2$&t) z_tA8_KsJ!;lfsAOh(-A#^{#t~JrZGU@y3i5g+k~n>Vm3(r{(sYID+y=HUu4I=fK|2 z6cxRJ5^Q^$4~a%=1ds*S7=dDH7D6|8!TWth^iu>6B$X?6 zenHZ7S-L?G+6xwSb)SGAofkme7cTRPPkPG>`pW(unrhR z300N3Oy-730{bfAX;Cx#;wggHx^EzZsA^rEP)|Z+Z<$Oh=`8k=sI9?Cx~Lj<^vYEF zH!7;m^#mJG@qcerEG+in;{<*E{#Myd-4KhO>u-*thiQ8WpG1UZNmG8GQJDD*HNvpr zPa^fXYv0|El-GsuxT0gB>0+rwKURD!wbQ)7h0;{JwL`F`!P(>u=t~`#PJUGZo(GZvKTjtGo zaUqu?>AbEJ_*rukGMo@?*lIx02qEwXhWs?U_S+c0wGc?6ia}=F5S8IJ`uCNSiCYs+ zN}JK!FLK1t>UgNIW+tKCU@Go?s`q_FtKgEKZql@w`LJQjwp5f+mhi%m3`$%D5CAUPM^Vh^?ZZneUC`-(``iCO*MW&dynlxDQmiE2OT7E*;l@W zxIoX8`S_~=%n+>UqRZRWnWypn1OvPX!PgA@@@izrZ4TP+R+9Vc=_Ee1I+*Sa$Vx#f zxnHX3JpV$o_Oh7PFjMeeGf)eBhti6M!OPj5+aCK19bEy6;h?CmH0I52>lVUy@?CkU zJ=OJt(6UVQRuRk4Kh^x^a!(Vw1z&M-M1_TN>2Xm3>n&9q&xJOzprzsNfzrD{3?HDN zv*-?sO_EN?`rgVB@nC-8pMXjV1hz@Fo%3_b&TpwTa$^2VTA1WQkFLfLu?^ zS|PB0^YrbSaC8v@?C%1 zTATY$NpC^hwwU6ujEd`QI|U9PqJJ4rO(5lB3W-nJ7X_=C4YMtStQrGRoEqlTaBIbp zsnB3I89XY4yq3U1?>N9u7DO|i!bl3dkqgk3n`0SQ)8Qt_?@+qw>B8LrNvOwTT?`6* zrB|wCx!-rIZ@kGB8e2H?$NPu#aZ^Qa%!|0UD8Q#vt^}yyq!LD{yGfR&*2Q*qg8r)~ z0P#b!(QH%x#=(-22nrcGX)oIic(C;8p_uWT<MOaxaBnK0-vbwfOWFJ6 zA5TZ-garr>?*LR3pOCfPG%>f$vlv@^1mx8EAi8&66uD?IPtU+_CmIH+0QMh9kI+f$ zPm4Jj$6-JvBVC|8wTg63rnUlGq&j`Z)$r;Ru(3{@mec9-{%LU_?*YI*vJUk}lr`Qi z_J#N~pso$Fpta$$lCMon)xghuq z(DlT5YNwT9Zz8j~{K(S#zxb~QH?Slf2^)Db#Ux(83W@wjuHFAvMh>8VnnGGz(Y@eB`e{!K@+P9K70Lk_ljqYRF&~X;xOFAs zT!uco4#fmDCA(sGSs|arReblZEqMK z>(kWYXH&iL9);f}U<4O?GBDF=R6oE|w(NVK`MR0DWQ##|&G6~Oj1LuZweqUpVK$+R z#O1=h?@OYGS>QZP_-;t2fVspz{x(bH=vz)Eca{UmpheP-Q|AwmthtfQ;TA2h&3WE{ zKRGVpp1&MVZ-7twWcmsqg>YP;CxptKd!!nobzzuuzR9Doo*fN2zp zrpt3ZX=zyX6je_T7 zz#EnlGW4+tU4&s`{8rI(V{bYIhie~^OWMVBes}<=eV&;?mKU%xQKtTWao2L)I!jEF zmfeWBwxX{+5Vm6oaB8Q;&u`#Xy&wc;wGR*UV`pKo0;+#o;4MGl*aO7~68FMJFNilK z;d@$cHDs%8)*(Qy1ih7cEtLCo&?mTXq3p0^}4O0s-37h?lO#n3U^QFrhVqDEkJBdLLFV9}~X zH~}dqR8;FhAaL;{foxvSJXT6ub5mvsD^bp7RlgdUt>N&R9#@$HKJ)f9X+m}#ni#{J z%KlkB3e&Hv-wXFQ3#K=Iu{Gg7s<0EdY>&0tp&17Dit*m1eiq4HvY*z)<9p&k)ZOi=Kz zZULZmL9ZSFu}&0K>kWrh!vwF>TtcrRMW#~U&)sin2Dp;JkKKST;0vxDJ%2jqfE+c) zzoobaGU{kzxYaVAeIXC@DCE}{p3bXG>@`=pv&Hd8G=_Fs>700EHF%;^^bC1r07bR$ z4p&5I@StR_cO5l2&#QkY){($c{>NAT<&eNW#h?GY3=;+AM#cA;{!5F1=e>J;>O%v5 zk-Z+Z!#ddd2o6RgiY89VSL+Nkvqg) zz;68gV+qi_r)ci`OS_4V0tKttkU7|YyZetA_tYQ!&j#z9{2pg`x&?v*{%?=szf78c zf0fI7AR%_EkY4&%bJfK_=Sh{xRxZ4YySz}kNHT;2L&R{`hn;%o$9394{_9VL}W;NHRX}(?06w6 z5}C3)`w_t~B%-gPqEEp*1^@9iT_8PVr&cCz&mG;PbGovSZ|~;6OJ^wRRmm%xqF5~A zwHUn#QT&qjqB(0Op;&|oT|jX+&8M@0*}UYcQ$-~u3W`?X_YQw%mjwRkK#h8B8ijqS zqhQ%$FhFbky+#plC-3?Yb;*l8tXMJ(t>;SWi$__Cc`#f$eM+xpEVxfcs>0g!%XwEZ zkbRUS-wKIwL{wN)8k3=<p9k*(g zA9Y8s$D~@j2n#RT>H;S6Gz8s(UmBjd#(^R&gd|s!>wF(#@94{?4ZM`lI-RbcCQ`tQ zp@Kx0FViAS=HrOccvD&W_&8Beu3q@D_5rJ#7gLBCby^6+a7Rttt+CNaUTM>x(9Q%6 zw;eiP)oC&W=DMGEl?M66RILz?59z=RUqD4F5W*iU+)JfXvd2Vc_Iz@>R-e80NwZg~ z%VD#P^)>qtnK>X{C1ww&^WB>~flF?|8OzpbWcbooK0&JxV$Rn>5w4^9mMl` z0}|n02?C567nN>*P`L=s2o#UmF_ULANwF9XSKLx(M!gD>6O#g zb>l*jD|AuqhFfp%?^mY?F5dgKsjU!^gCe289!jsM#`{^qN|Kr<1?cs4siOhOtu9}d zRKt{K>C8ltQ=M0YRCmu97o|%HSBJ4j2=lPu#*J_DT8Ce8H!nneYEk=(5EPYE_dp2B zukfU_n>FK5)Sf7oUc6%GYp=FV&v7L4uHyp3e$=|efvN9FC@#MY#7_vq>1&)i$+?R|G^$7eJ5H)1tLm4XcF zZPQ%|L19(iYT`LZC4P=r_LXQqc9*m((2Dl+U>K1nks)yjyv=3HpMAqaBJWtHKs@n1sg;BllQSzi5bQRB3a?Pujz*bjukB__tin=d-~erFKniMn`!n4+oP8m8$H<$NIz74k^dla#UTA1sISinSOb_c8>b$ z{$@SDdd(Mmx`{4EvnAh?qg}scqw$)Fs21%!jjzjopVyH8tpUV(?iIbFtoY(`$8F1X z8Gi&K@p)9y@9Q*M#$NZZ5S=FmDF4b7kf(~^S9}i0@QCAKyc!k_M@ME7{#1TjhjZ+y zywJJZ@4D#Zk9sAhsD+Uqc=Xz0F)VPCxe>(nI1Fk@q@Lag7ZcA(2XxM4X zmfFXfavodi2t+`-!wzIepJrqXb6T!CxB7XXv`Ts&YVRcA#PLE+58XD*9-MqFjU)2D zMd-%j|M`FGG?_#V} zuPfx*8lbAW#N#$1#_%`BKgpTb9P1R`1V50iI=Eretd!$=D&S(fBWoP5e-{ZH!tX?_DTi z0L&)Z9ViKOCbb0A4j3OGgBf4vG9^iXQYE+G@7P`)N^IDDj$6Y?&h=2M6H_I%0u9XC z;;8CaG~)raf=-hX1G)qzcTm`cH_f%LMLoa&09nIBt5xg7q)Dwbo_ENQB<8*i{iU64 zDY;`Bbw=ASFWbY9uSq@?$$6FGQ^__k%b=7Dvf%>0vI{aux&qLf$XWC=Lm;axpa?!n zckfTX(GRkRdrEECb&vZzy$ug_tCZYW>r#yudR`Y)O4cQ#*Utey)IS* zo+SZ1D+PF#0cr1XbFCa7bPS^ws27VI-akq%fe|{-4+ZYpbvr3_;3~|7Ep0T{vO1fw z-hqccW*ehThHZid%Kc$B4}s3re(_uQ6423snJ^|#kqtZFfa@vWepZX94nk<}xJ`}9 zB;_(!T%5pmHn2S@5z-Kg|r|`)(hOz$PLO<}|gqnU&GQNQca< zHpq_C)aYhES-7eWH`~}{Kea1Xr1CFCHr6s#b%3{CJR1)lfnO08p!K-@mL(Xg63Yc&PFP$>CBa5$FXELLw4>?jUqHE6B2XN z)#@$+&jLA;_Ray5_6l?zU+wuFz~u+5@0N%EGUEBHUe?v9&q5#es}ON0o9KQXL{{fW zxMplH9NjW{&B$Pe2Sxe=SRb=}^WgCk_;!oAc$^)Owh+K$?Q?T6a)*z5?zs2Uh-(Qb zY^e2!OzqUYms3%x6^U!a^HSWUn&zL31H&~)*Y*0IHbaPglHDuIxL_$@csa}s%N!o| zW3aWNNexU*OL&;c^2kY9gXyMwtt3gPI3{Bauh_@Q08QFeRJ>zkbcfk2ouW4%7f{!Q zJLyIbfDrfcMxr+KoKJz^tgM~#(X7_u1NL1P$uMrUp6&;SgzP8sk1u(7e26}x>Ro&A zQC8yX=ce7;>Z!t|rKKC|m?KWL?%C_x|4(_}9Zz-p|L+cwNIFz9L&r#2*_%@m2gfSP zDA_BUtb{nq$Oy+isFR9hB_fitg_12hGkYB4cfF0%eShlyet&=b*5mQ}?~M2R8n5fR zUgP;1mnZ(Dxk`1ZI7ui17G+(Hp8M1hhd4o!+o16H39dc9dt%HbXKt8Y?{5#Eh0W!6_cWm&J#w8Ld%*kCR>7vgb2A;mvi2g1!|)?+-~OA<=) zM`tI88+={CI9Jx%%hli^qK@5L@BGb~-uMfy)|Vfx{y|bABl}o?eJ!`dL$WH#tydX5 zqd6RFe{^(V%BbvqkvVZZj*Qv;j_B=LZ)&NP=jy@M_=82>{{9L(oajKt2CGZcIU_Mx z9l74w^ZQNT`%Nx?!E&t1af<5+$-txN*wneMf5-$v|Ek8B-z>4;L50(9h^#dQ1L zPq-SveYUQA{lCL_*e)*W^@NT|!Vy=G z!J3#E;$A>QBooc?qIfKprmW%p{9an24rjaP5(x;AFgoz;Zfj_KBj-dpNyq70IG;zer6`=qKvPnk##ZP%RtA9aSZ**|U6w8n&!myoTz$E||P)~_#@YgXK?`q@Q zOtPgvBdOt;F&X9EVK_^6*=H#R9x}F2RWb}Dh&F}`+X|ccD(Yt-fI6dE+T{t;k=c_G zIwKmBp{XYY1c+sx?3yb*rHLFA-u=c3Fj@EKdJyK;o{L;b;3B%Ma)mC@uHIQj&Elo? zeJJicErIJqc<`t~dqn6f+$x(ZUZJG4AU+8cE^f2^KMuEaQRC8P8p#-?{j0)~lD;_Q6^SnOj(xYbwK%u*LZM{SS8no3gpIkH?=#L9$nwtvZz z)5Gnf){5A%9yS@g*^+Ad81ImuIu}IFVto&SbWicC(}L197wNQpIq>k=76G?7!HXt~ zHyZ%#S@jYbja{)%(a(5{9v`bJi2+N}b`Hgq z*@VCWF@F|F8dSVBhD!md>-ka(HlubvdRrh8A(jNX3_lqH4M7H&* z&1rLz!o6?n_8~TMy|SFtLd)|m1(d(J>Lu0xK;6ctsJAuG4sZcTht8mX{UVt@E|@t1 z*B3D|KPOufRP=0z2mW@s-f^I-r8K5*jc&quYN%C?8!mOc@imIxH$L;aR~J9?dOQJ# z-YnxH?Pc8xvo2ohb8x9c(9Fod4OQ@8(hCe#5`xPxdpfjr1f)Zg>FlYr|1lK-8(3x< z3Qav@36d(cgW$a{!~rMphMjk|80f(O3OhF<8tevoK!eb?{BCK7JqQ+x;`mcYDw_Wx zdc3)+M40niLHs9#3utILTV1M1XB5yj9qopi!nWB}g@dmraBW)S*vZ`ZrX-ya z+4gqK(y#M9fApimnvX_dxCXpy0Q&^5B`70lAFfoDX!#PQr^Bs|f}_xcK%N8q!9}z5 z>n{{$JM47F2iJo*&?dTOGj~$RoB|dD-h~0(L?{q_$!nko4LI-*92)bXssxl=fd1G~ zS^(0!9k2uf?as7L`!Bt`Ip3^#3`AtXbG>~d!6ugG{z(fDx#&S?g6%|#dyzTZs)e8m zf~jpsw;E%E8~jT?^vR!@GCXpBB>|V|&E%dGe$jQnU_N>>xn@hvQUVq;Syd7R)~nS3 z_5}=4S_lPw`_I9Au(4wncZ`nJ4dSYI2HiUi^e98?--tLRIXj&JZKQStO@mr#7bi^k z13@wVo3+AUfWCBVpobgG8@xqx0Gv+fIZ(L%x3^gL{{d6havZ{(S`=8wv|i}bDrQkN zk{Akeu3c8M#~w*^cMAcNe=LGBJNwvI*=(nmANgpu6M$K$!>yoy_q60cgj?OS#kO5u zx#sy^Wukz_KfqDy0W=l>3kD3s z3o_21!McL>L3KYZAa8aT`FHjwOf@~>rDA>>=CaUVrZ`^blc4m9T-9RcJ+-V?$_Rh} z85kJ0WX>3Etoe^e4HWfku#z?SU$r}CIK8V|3X;0@d5a2@+p9LF_#&gPLkgtS&%@v; zhRq)`JkrE^r8)%ld8#8L>leBiMB(r>p-cC?>>&3q9bTq>h zCQzkofCJPXdnNOj>!uF3A)GA_(J)_djkw7MkJOrwoQ;NH&8Q@Ew+E;^%)k_(K zz-FR09A!Td?_NZfGyj1g-!fUra?8pLziV)5s=#?9>n-$Nm+U`uwftv+i6)TA8=qO2 zUOaSZX;fZ$YIBgNnPE3~{SG>7eMs?6LppvTwn3D7dL(C_srZ6dt2$}Ov88UQx@D2; z*x*&QosLV<7<^TU0N?`)?-4Y!uo>4L#CZZAIR%o*^j;sE!e%_YVralgtawrVI`iQg zvAR-g>(a)1>=7BP5qFV}mu475KOzor!CW*vO-p$kb!g@Ta}S+-|Gd%(K8-^3ulO9g z-0hm6MOhwA0+i;Sb^mnUfXOeN7Wt2vH6P~b=YJI+sjjs+bu5?@MUT}Jp=v+Oo*B)b=6TS`S0DWid6MT*W0lMU za=fRYfy9gM@6je6NtbycjqFl-)x?8b`L9AeG#4h=bFVKsrA{Q(QxLJ9B9Q(_F!lL} zqWEc-GBb-RM1#YCfpEq2v(0?J;;a(_D5pesQAj81jpJei=6iMm?h}Crkq`0(*hk1z zicz6mVen)${QIs(&nM4{@ghEiR@Q{q&%M!*Kbbw!-nD z{b#~ObPFr6E`=%`Z=%GGlM`JG+zl}@#tyy5I(-tJ>N4lE+U#BeBcpMOcNc}wi3>pZ z$D-W^fl&Ang$@Cnu@%nq3qUYE$(#T1)3sn%hE8qZoS-S-0+7Fqz^hmMG_>)>pU1AL z+T~-@gZYnzT%T%>V~s*z=7S}l5|OW)7}TNZ-`1@~E&-Y)qj{E9fP;|(Nm$)haC;b~ zMJ=Mibf9MikO3oz+8dNiJQo{~25Jd7=#L#9&D&&bdmPXD6B$j;FG&UYaMp~N#)gL{ zkH)D^0&_gY&+ST}@{K92>!lw965;~tyAQpDpyY&QDLr!FOWhz;w&l7p-#?w{uXNRC zVF=v8%hs9Vei``^k2kU%@jr?L7|1Z%jbSVGe3NP$%LSl*00H}nAQ`JAxxAE4HfO_y zV2_&UUt~WEk2rR!hP0MHMt`#+(%aoHrZ`wWcd@YM%;^It?c;P@vi$OB)gw`8eU_YO zO}KKY`8#mN!Jt!)ERe?nSD!U{$r>Q!Cn8PddBB< zC?~&>URrD~%*YHewG*?-EnxB>xp<36iaE;gq2R}r~?I@`%{pDj;0I8a;Qv* z8BHQ*h_1F;h}U(lkV9=oldXZi~|m@yor#6&4>sC z9+L;p0zgm#2AER5@Q^s5bb~Mjp^9lEA8A*DR{95^Z4(rSzy^Y?1Q}s^u=8G58m|ij z8)o}^EKontZY35#7x}LcHM#U7_xv|XhNK-1+55F>bo#sH1HF&=03 zONsyYlE5Ib$$TClmY{?OXl^+#6vz*ugD_~W2}xk?Iq(p%nbs(<65_BglLYer8@9e8 ziUP32Tw`HeAezlgbk;5pNT>QrFjkCvyVvW1Ci9=)Lx8!a%-K8j2yF#S@m+(G0Frb4 z6?(}=EMLd$Cf4lStlc2={wG8OFnFq=+2x`!&I3Kb0EE6-7T+KEQ@jKZ4S0Lo`d9%Y z76M=>FCaK%_cJE|%e2(9Y-)=71<4w zs@j9FnZ_HS5g%YG!h5G8&}*UPo)Ot0e;>DtSHm6d>X;w+#; zk2d#|ztEQ$3UwY@=4tEg!8;Z=0hJNx;*$5lI+_7gzmL!RhqjP!`8nu^HCt@(8W8Ir z!2JJ{Qox47H8ij*h5vN4_%Yc-meCdT_`0d-bmF4)^ zMLf$Ix=&Wwe{(Q_`d0H0${;^b=;gfho=1}OS<1|Z%EZdvSnVI3K!-KOc6=Y9jji!ELnnItl;qBiB0RVHy z`4RVfHcwSEk~UQ7xFyy-sej{qTn>VFihYIy8C~~KgH`ckWX}9U^qb4+s%?sSL()aT zO)90U_ko5!bnPei?D28m^(ml7Gwf;C9WNI=1itmSP1^M)N8nl9e?C`q(>Ro}(cbZB zzEN_91NMPoW0-m~768-cvc)xBCqDs4=R4xkhaA41<36j)21O~Q%kqaXR9||u(*G7Y z^?Qnm2VyLP_2rv<|uRwEt2o8@kI6Nmy z8HD~W7uSuk=sc>$CnznHTZr1Y}y>11- z&=%cVUD$2*s46Xu(CoA-;0pA?Xf__sUSv0-;Wpva{DH^sI?U@MnLr(#r6;-_y?Jgk zb<%IFJ|d9Pv(wKZ2J`D9eHc0mXn+nd;R(WN*)D^@5JI1m6Xt&TRJ1Gajd0-on5bjC zqEMe3xpx&W1TNpnI(_rio#*x$y*X-};`G~rrl%AncSMpN1Ve_Q*DBJ(r7!zf-fBU+ znM(tfb4!&LB{OSR3(pE9bScPQ^&sH$(`So@otJKe#cW5ufIE3vpHmD)lj!vomQLFp z#1;9YYjF?W(FYpa&Kz^D$Tz`m4h_9O*O>sg=uv`yRk5Tq)~nK}fO}jG zFM(F z)*a0E?Mi?0XZu_(4U95xOi+7p%;VL*Qfac7>N+OHgusbSsXx*1Y=_bD(C7=Hst~Z5 zLda~h2E+&SaD_&ILGyqu37m|L1X-Z@naP6naHPHTK7RJU{Em7GY1~@6eU*e%Oq=mE zgYV(BD{7A`|72&N? zp1d3`Y}kaKoEjjeGZ|}CFa-;55st%SD-vxz z*41S9YQl!iKF<1+9`-vs{ZDGibyK50nr!mnML&x^?F}wbr0K6rqI2<^$fB;A@Y>hN z6<||X_W3cIt(Q}lHn*rch|Q2kmUI(ul(afpN@WW$y3jdA8vHXE+F5@kmM)KUcedrx z!5SF^&3htb8%y$GU!(jLrOm!$!1=2t#jzPS@ln=i&TmGhRz45p8iF8-S|OqM0azn5 z^IvhkrzGwvk4!EWk~0};dOtU&D(C9T^Q5-%XoNDih0vEdO! zBa0}rQ|)>+{5{qvi?6dWAjt&MVe@UU!4iZ4h2Q{JYAOP{Xafl(jaN&rXAmsw+abTH)B*1NpD z%-sMTzc(B`;Xjy_$xM@uPu03a>YB#{B3lB_?@(qc0auH5Q?GfVqrQ5D0Z7$+dn{m# zwoZTzU&rA3t4cuVfCyl7I~!@7ja}hIutSi8p6zc@yO#o%K;yb7bOmt{ zY_Q~>13ek4+IT?gJ>;w-*W@E88L>hF%5WX(nUQpx9@;6C3Pl=t09zTvNI=im19t=H z-YFgosvlmP>@La#6OJWpUOCD?)WC(dTm5H*2atiLU`@p_T=oM!#elmC-2#yvr3qnZ zOdVmX{ep!dR5vrPNj%|EruCt@h>kk`8(!5m+BOicvDwDU(YCl&%iuiOi z+a%g;6u2`R-hr4Ez^VZ{VoeaO1l1j9`AsU{dCAT+KqUNH`o@uXoOM`m3~S|$DM>cA z5RT%wd0`Yl2D+HNZk~l^+>VGxyV)nTZVwUsQC>RL2x8Al0Y~0-J`kc`F#8?l_o5O^ zaXV27m!M!(TF_}IHpXAe`nPub5XwsV z9u}6CqUA5$mh76?i?E$g@OjrHw z=8|W*_~>H|*ksvFX2P=niikn_<0bkc-POathB0@$T`bE{^3x;vFjCRu0bBg}p1SYJ zYLPF#$akaN_ta@&zG*RGpS78k41odhAp6l&aR(6k*=3(%PQST0v{J)Dhn&SUB@cn$ zyKIYk96mCY3K;uLzZ7Fa^OhHs)qKFf+ED)p`TXS`xTc|pBq`VK*Fj0Jbw?2qI6chwt2 ziaXmd*N>nD&1w#{H9dZ=z7*34BZZmXK@09RuoH5$CkhBq4_eN|lrolXYnEkeHfg4Q z9@g?h&g@8|yaNa^-0CNrU)Q`L(d}mROz7}`rAGfDdjB`Z369yX$bGFK)wbPy?Wnxc z=_ijVZL25hqK0Jjnc8{OHeUk{e!6LDptkyJ=f!M_3)WYA0Z7YcPYVl!zdCwl6^X!gSiL8xC7tb#Y`m zcAg=ib+)7!cTI4v7^?o45+(Ard7!mm3=2Y(GgQ|hYl4B|q$Xd$vt{Iqc2G%qL z+!LhathrJzve?_7<}VO0S4hz*v#Z_d>h&b>ZRPk%n0MSS4EG!^F$Mmx!7*Frm2 zsx&6@a&8i(Y`so5=lN6t)O#BW1M47pkwBxI)o#{b5$!z)Q@@*z-`KfDGj4=v(4YK? z_~atY7UQa5>OmoN$~A#9)Zg)lmC{i$yDn&xHdN19J+QklZgwSwYU!Aggz99QU%plG zU&jW|OsY;kIqQ0s=P@YKYMwkiI0%1uwZqzJgj76`J2gP%2g%4KxM24uo6Js~-)M>22!Jn6_fu%-64S6tr(k)>>AT>zc<22^Og3|}`OC#j!CqRyH6L-L zys%7qZLQ{*m(Ev~kGl-x>D!^6pQZYdT z{DHOnP8wflPwCYLs7BM5&8Hete|c+suP9NDN$5@jsKpzm%vH~{!{>Weg=gd+4;c+kDq_fa0e za4~OLTfb*kq8|TXc&zis2_oNh`|E;quJ3Cv?w2U0HPxJC+$W;=9qu3`LVBay7IvBb zhawYK*b^Cq-3x>BsUHiRY!r<8j?`@jsj- z4{x5z&6qepXk4yIY)vr{cn-xk8kjFH9O%yFMkO0kx7FONt3}{~Z4R*EfI!uU9y!@% zXo_KO%E)7vZ(fwYL9IkR5*vq(R9q^Eu?aYPVcFVDbtY_)p0k;Lt7Obwjh2Zk{FxJX zZI#oZ`(INi;~z+Mb2OqHl@s5;LB(V53Zw}JM3R3Tm613t;Vc6m6ecB#+ATK>MNH&^)MjyGpGRF;6CbBmWP5ow=s!>UnTo0Ov=7ywj}E-4_$Zf(*J@}2xisN*SlcQ?M3m7@+%8E22NwCilj7Za#Mh;zM1j9g&t?Sx%WB0ZRr{@HgtqtZqZCW1QeacMro zpZn2N7%xL6wasQ_Eo0HxEg>k8FB`G4&w3K9+LA^x<=y9ZymUg9W(C72^=iCtUlpTx z8}&Z0tNA1k_b>-Cpp!48U!267{ZT zAw{GI~%pBa~$*9-&`kvYP&g_a#|P5uU9YUnV9wR$|ZcHc+afULF5{KTT47;?NMqKLOIdogWR;K z^3@4mQQOrp4G+;TUm_(RIiM2)=zp1b_9;@w{A%RkaREkY8} zub9ZGT^nBI&tNA1s%#OS)Lef;v1aKXC`q0jWveIP%t)8r5GleS#T9!WcNsNX52G&N zHDI^7tF+>$jPl@Jp?~N;X(qjpC!(X(#>;T#!)8ST|4JL~f}gNQ3EP7(^tFDX_YS4z z;a`a}Z+Z0|ims4tPo?;mDT9E88@I|mw54?pn+za5QkUQF%m)`M&54)?5j zeCD+Djo~+qDP2zC1v2sxysj3c%bwGd9_U@;-`=)>X1Umx>j<4(Cot)C7Lq zUn#~&8f$F6Xus^_f$$Zb4ojlmYnb^a&J_0aUo*J_1Ra~BIGwN(+dv%5@*?k^K7IJE( zLPGY%np5h)-0PQLKKDLgs3^2LkGu?A>gC3Qx8_r`Uz4}>Q5Z?AJe45*`XTQqy?Nf8 z&^;bSU(^?=+s$6Dx})>Nd{Ff3B4j#$UiUZmY(t3RDBA=4t^PdD9`^NGMk1Y`C9!^- ziT_~wzgWmWY_ETudyr@Izb(ysudc}dF@F93_hbytq54*;MX&S%y4OFzPnU%6Wn}-Y zEX-L9j$JA2WhF7F`9fdR?f5Ho{MVre4VAdf_<$l3SB9Xrh{nxwUJv|u4BPR%11YmP_c*#sDLLCtL65BWbEHA8dX9_J)ewzg_CWYMTdK zJh82yJ>9O6@jvkr$4#iOJFHIUpe-R6!2z{Tq_OYdy$oTfU!v%DcTdLqqb0y@CgKVt zRcr}E4-i9NNM9OX9N8Y!oi*S-1i#!_i;l-F7Hu8=2qsK4LV~8LizI;-!+82z=THJJ z+-PZK%eBULAQ=2DH*pQ0wdK5F&C>LW!%qZaWPHgYtMKs!PU-LVy|aolzI6G}k}|T! zu+iUMi&8Vui. // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include + +#include "SWGFeatureSettings.h" +#include "SWGFeatureReport.h" +#include "SWGFeatureActions.h" +#include "SWGDeviceState.h" + +#include "dsp/dspengine.h" + +#include "device/deviceset.h" +#include "channel/channelapi.h" +#include "maincore.h" +#include "aprsworker.h" +#include "aprs.h" + +MESSAGE_CLASS_DEFINITION(APRS::MsgConfigureAPRS, Message) +MESSAGE_CLASS_DEFINITION(APRS::MsgReportWorker, Message) + +const char* const APRS::m_featureIdURI = "sdrangel.feature.aprs"; +const char* const APRS::m_featureId = "APRS"; + +APRS::APRS(WebAPIAdapterInterface *webAPIAdapterInterface) : + Feature(m_featureIdURI, webAPIAdapterInterface) +{ + qDebug("APRS::APRS: webAPIAdapterInterface: %p", webAPIAdapterInterface); + setObjectName(m_featureId); + m_worker = new APRSWorker(this, webAPIAdapterInterface); + m_state = StIdle; + m_errorMessage = "APRS error"; + connect(&m_updatePipesTimer, SIGNAL(timeout()), this, SLOT(updatePipes())); + m_updatePipesTimer.start(1000); +} + +APRS::~APRS() +{ + if (m_worker->isRunning()) { + stop(); + } + + delete m_worker; +} + +void APRS::start() +{ + qDebug("APRS::start"); + m_worker->reset(); + m_worker->setMessageQueueToFeature(getInputMessageQueue()); + m_worker->setMessageQueueToGUI(getMessageQueueToGUI()); + bool ok = m_worker->startWork(); + m_state = ok ? StIdle : StError; + m_thread.start(); + + APRSWorker::MsgConfigureAPRSWorker *msg = APRSWorker::MsgConfigureAPRSWorker::create(m_settings, true); + m_worker->getInputMessageQueue()->push(msg); +} + +void APRS::stop() +{ + qDebug("APRS::stop"); + m_worker->stopWork(); + m_state = StIdle; + m_thread.quit(); + m_thread.wait(); +} + +bool APRS::handleMessage(const Message& cmd) +{ + if (MsgConfigureAPRS::match(cmd)) + { + MsgConfigureAPRS& cfg = (MsgConfigureAPRS&) cmd; + qDebug() << "APRS::handleMessage: MsgConfigureAPRS"; + applySettings(cfg.getSettings(), cfg.getForce()); + + return true; + } + else if (MsgReportWorker::match(cmd)) + { + MsgReportWorker& report = (MsgReportWorker&) cmd; + if (report.getMessage() == "Connected") + m_state = StRunning; + else if (report.getMessage() == "Disconnected") + m_state = StIdle; + else + { + m_state = StError; + m_errorMessage = report.getMessage(); + } + return true; + } + else if (MainCore::MsgPacket::match(cmd)) + { + MainCore::MsgPacket& report = (MainCore::MsgPacket&) cmd; + if (getMessageQueueToGUI()) + { + MainCore::MsgPacket *copy = new MainCore::MsgPacket(report); + getMessageQueueToGUI()->push(copy); + } + if (m_state == StRunning) + { + MainCore::MsgPacket *copy = new MainCore::MsgPacket(report); + m_worker->getInputMessageQueue()->push(copy); + } + return true; + } + else + { + return false; + } +} + +void APRS::updatePipes() +{ + QList availablePipes = updateAvailablePipeSources("packets", APRSSettings::m_pipeTypes, APRSSettings::m_pipeURIs, this); + + if (availablePipes != m_availablePipes) + { + m_availablePipes = availablePipes; + if (getMessageQueueToGUI()) + { + MsgReportPipes *msgToGUI = MsgReportPipes::create(); + QList& msgAvailablePipes = msgToGUI->getAvailablePipes(); + msgAvailablePipes.append(availablePipes); + getMessageQueueToGUI()->push(msgToGUI); + } + } +} + +QByteArray APRS::serialize() const +{ + return m_settings.serialize(); +} + +bool APRS::deserialize(const QByteArray& data) +{ + if (m_settings.deserialize(data)) + { + MsgConfigureAPRS *msg = MsgConfigureAPRS::create(m_settings, true); + m_inputMessageQueue.push(msg); + return true; + } + else + { + m_settings.resetToDefaults(); + MsgConfigureAPRS *msg = MsgConfigureAPRS::create(m_settings, true); + m_inputMessageQueue.push(msg); + return false; + } +} + +void APRS::applySettings(const APRSSettings& settings, bool force) +{ + qDebug() << "APRS::applySettings:" + << " m_igateEnabled: " << settings.m_igateEnabled + << " m_title: " << settings.m_title + << " m_rgbColor: " << settings.m_rgbColor + << " m_useReverseAPI: " << settings.m_useReverseAPI + << " m_reverseAPIAddress: " << settings.m_reverseAPIAddress + << " m_reverseAPIPort: " << settings.m_reverseAPIPort + << " m_reverseAPIFeatureSetIndex: " << settings.m_reverseAPIFeatureSetIndex + << " m_reverseAPIFeatureIndex: " << settings.m_reverseAPIFeatureIndex + << " force: " << force; + + QList reverseAPIKeys; + + if ((m_settings.m_igateEnabled != settings.m_igateEnabled) || force) + { + if (settings.m_igateEnabled) + start(); + else + stop(); + reverseAPIKeys.append("igateEnabled"); + } + + if ((m_settings.m_title != settings.m_title) || force) { + reverseAPIKeys.append("title"); + } + if ((m_settings.m_rgbColor != settings.m_rgbColor) || force) { + reverseAPIKeys.append("rgbColor"); + } + + APRSWorker::MsgConfigureAPRSWorker *msg = APRSWorker::MsgConfigureAPRSWorker::create( + settings, force + ); + m_worker->getInputMessageQueue()->push(msg); + + if (settings.m_useReverseAPI) + { + bool fullUpdate = ((m_settings.m_useReverseAPI != settings.m_useReverseAPI) && settings.m_useReverseAPI) || + (m_settings.m_reverseAPIAddress != settings.m_reverseAPIAddress) || + (m_settings.m_reverseAPIPort != settings.m_reverseAPIPort) || + (m_settings.m_reverseAPIFeatureSetIndex != settings.m_reverseAPIFeatureSetIndex) || + (m_settings.m_reverseAPIFeatureIndex != settings.m_reverseAPIFeatureIndex); + webapiReverseSendSettings(reverseAPIKeys, settings, fullUpdate || force); + } + + m_settings = settings; +} + +int APRS::webapiRun(bool run, + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage) +{ + (void) errorMessage; + //getFeatureStateStr(*response.getState()); + //MsgStartStopIGate *msg = MsgStartStopIGate::create(run); + //getInputMessageQueue()->push(msg); + return 202; +} + +int APRS::webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setAprsSettings(new SWGSDRangel::SWGAPRSSettings()); + response.getAprsSettings()->init(); + webapiFormatFeatureSettings(response, m_settings); + return 200; +} + +int APRS::webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + APRSSettings settings = m_settings; + webapiUpdateFeatureSettings(settings, featureSettingsKeys, response); + + MsgConfigureAPRS *msg = MsgConfigureAPRS::create(settings, force); + m_inputMessageQueue.push(msg); + + qDebug("APRS::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue); + if (m_guiMessageQueue) // forward to GUI if any + { + MsgConfigureAPRS *msgToGUI = MsgConfigureAPRS::create(settings, force); + m_guiMessageQueue->push(msgToGUI); + } + + webapiFormatFeatureSettings(response, settings); + + return 200; +} + +void APRS::webapiFormatFeatureSettings( + SWGSDRangel::SWGFeatureSettings& response, + const APRSSettings& settings) +{ + response.getAprsSettings()->setIgateServer(new QString(settings.m_igateServer)); + response.getAprsSettings()->setIgatePort(settings.m_igatePort); + response.getAprsSettings()->setIgateCallsign(new QString(settings.m_igateCallsign)); + response.getAprsSettings()->setIgatePasscode(new QString(settings.m_igatePasscode)); + response.getAprsSettings()->setIgateFilter(new QString(settings.m_igateFilter)); + response.getAprsSettings()->setIgateEnabled(settings.m_igateEnabled ? 1 : 0); + + if (response.getAprsSettings()->getTitle()) { + *response.getAprsSettings()->getTitle() = settings.m_title; + } else { + response.getAprsSettings()->setTitle(new QString(settings.m_title)); + } + + response.getAprsSettings()->setRgbColor(settings.m_rgbColor); + response.getAprsSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); + + if (response.getAprsSettings()->getReverseApiAddress()) { + *response.getAprsSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; + } else { + response.getAprsSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); + } + + response.getAprsSettings()->setReverseApiPort(settings.m_reverseAPIPort); + response.getAprsSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIFeatureSetIndex); + response.getAprsSettings()->setReverseApiChannelIndex(settings.m_reverseAPIFeatureIndex); +} + +void APRS::webapiUpdateFeatureSettings( + APRSSettings& settings, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response) +{ + if (featureSettingsKeys.contains("igateServer")) { + settings.m_igateServer = *response.getAprsSettings()->getIgateServer(); + } + if (featureSettingsKeys.contains("igatePort")) { + settings.m_igatePort = response.getAprsSettings()->getIgatePort(); + } + if (featureSettingsKeys.contains("igateCallsign")) { + settings.m_igateCallsign = *response.getAprsSettings()->getIgateCallsign(); + } + if (featureSettingsKeys.contains("igatePasscode")) { + settings.m_igatePasscode = *response.getAprsSettings()->getIgatePasscode(); + } + if (featureSettingsKeys.contains("igateFilter")) { + settings.m_igateFilter = *response.getAprsSettings()->getIgateFilter(); + } + if (featureSettingsKeys.contains("title")) { + settings.m_title = *response.getAprsSettings()->getTitle(); + } + if (featureSettingsKeys.contains("rgbColor")) { + settings.m_rgbColor = response.getAprsSettings()->getRgbColor(); + } + if (featureSettingsKeys.contains("useReverseAPI")) { + settings.m_useReverseAPI = response.getAprsSettings()->getUseReverseApi() != 0; + } + if (featureSettingsKeys.contains("reverseAPIAddress")) { + settings.m_reverseAPIAddress = *response.getAprsSettings()->getReverseApiAddress(); + } + if (featureSettingsKeys.contains("reverseAPIPort")) { + settings.m_reverseAPIPort = response.getAprsSettings()->getReverseApiPort(); + } + if (featureSettingsKeys.contains("reverseAPIDeviceIndex")) { + settings.m_reverseAPIFeatureSetIndex = response.getAprsSettings()->getReverseApiDeviceIndex(); + } + if (featureSettingsKeys.contains("reverseAPIChannelIndex")) { + settings.m_reverseAPIFeatureIndex = response.getAprsSettings()->getReverseApiChannelIndex(); + } +} + +void APRS::webapiReverseSendSettings(QList& featureSettingsKeys, const APRSSettings& settings, bool force) +{ + SWGSDRangel::SWGFeatureSettings *swgFeatureSettings = new SWGSDRangel::SWGFeatureSettings(); + // swgFeatureSettings->setOriginatorFeatureIndex(getIndexInDeviceSet()); + // swgFeatureSettings->setOriginatorFeatureSetIndex(getDeviceSetIndex()); + swgFeatureSettings->setFeatureType(new QString("APRS")); + swgFeatureSettings->setAprsSettings(new SWGSDRangel::SWGAPRSSettings()); + SWGSDRangel::SWGAPRSSettings *swgAPRSSettings = swgFeatureSettings->getAprsSettings(); + + // transfer data that has been modified. When force is on transfer all data except reverse API data + + if (featureSettingsKeys.contains("igateServer") || force) { + swgAPRSSettings->setIgateServer(new QString(settings.m_igateServer)); + } + if (featureSettingsKeys.contains("igatePort") || force) { + swgAPRSSettings->setIgatePort(settings.m_igatePort); + } + if (featureSettingsKeys.contains("igateCallsign") || force) { + swgAPRSSettings->setIgateCallsign(new QString(settings.m_igateCallsign)); + } + if (featureSettingsKeys.contains("igatePasscode") || force) { + swgAPRSSettings->setIgatePasscode(new QString(settings.m_igatePasscode)); + } + if (featureSettingsKeys.contains("igateFilter") || force) { + swgAPRSSettings->setIgateFilter(new QString(settings.m_igateFilter)); + } + if (featureSettingsKeys.contains("title") || force) { + swgAPRSSettings->setTitle(new QString(settings.m_title)); + } + if (featureSettingsKeys.contains("rgbColor") || force) { + swgAPRSSettings->setRgbColor(settings.m_rgbColor); + } + + QString channelSettingsURL = QString("http://%1:%2/sdrangel/featureset/%3/feature/%4/settings") + .arg(settings.m_reverseAPIAddress) + .arg(settings.m_reverseAPIPort) + .arg(settings.m_reverseAPIFeatureSetIndex) + .arg(settings.m_reverseAPIFeatureIndex); + m_networkRequest.setUrl(QUrl(channelSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer = new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgFeatureSettings->asJson().toUtf8()); + buffer->seek(0); + + // Always use PATCH to avoid passing reverse API settings + QNetworkReply *reply = m_networkManager->sendCustomRequest(m_networkRequest, "PATCH", buffer); + buffer->setParent(reply); + + delete swgFeatureSettings; +} + +void APRS::networkManagerFinished(QNetworkReply *reply) +{ + QNetworkReply::NetworkError replyError = reply->error(); + + if (replyError) + { + qWarning() << "APRS::networkManagerFinished:" + << " error(" << (int) replyError + << "): " << replyError + << ": " << reply->errorString(); + } + else + { + QString answer = reply->readAll(); + answer.chop(1); // remove last \n + qDebug("APRS::networkManagerFinished: reply:\n%s", answer.toStdString().c_str()); + } + + reply->deleteLater(); +} diff --git a/plugins/feature/aprs/aprs.h b/plugins/feature/aprs/aprs.h new file mode 100644 index 000000000..760b80721 --- /dev/null +++ b/plugins/feature/aprs/aprs.h @@ -0,0 +1,143 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_APRS_H_ +#define INCLUDE_FEATURE_APRS_H_ + +#include +#include +#include +#include + +#include "feature/feature.h" +#include "util/message.h" + +#include "aprssettings.h" + +class WebAPIAdapterInterface; +class APRSWorker; +class QNetworkAccessManager; +class QNetworkReply; + +namespace SWGSDRangel { + class SWGDeviceState; +} + +class APRS : public Feature +{ + Q_OBJECT +public: + class MsgConfigureAPRS : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const APRSSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } + + static MsgConfigureAPRS* create(const APRSSettings& settings, bool force) { + return new MsgConfigureAPRS(settings, force); + } + + private: + APRSSettings m_settings; + bool m_force; + + MsgConfigureAPRS(const APRSSettings& settings, bool force) : + Message(), + m_settings(settings), + m_force(force) + { } + }; + + class MsgReportWorker : public Message { + MESSAGE_CLASS_DECLARATION + + public: + QString getMessage() { return m_message; } + + static MsgReportWorker* create(QString message) { + return new MsgReportWorker(message); + } + + private: + QString m_message; + + MsgReportWorker(QString message) : + Message(), + m_message(message) + {} + }; + + APRS(WebAPIAdapterInterface *webAPIAdapterInterface); + virtual ~APRS(); + virtual void destroy() { delete this; } + virtual bool handleMessage(const Message& cmd); + + virtual void getIdentifier(QString& id) const { id = objectName(); } + virtual void getTitle(QString& title) const { title = m_settings.m_title; } + + virtual QByteArray serialize() const; + virtual bool deserialize(const QByteArray& data); + + virtual int webapiRun(bool run, + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage); + + virtual int webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + static void webapiFormatFeatureSettings( + SWGSDRangel::SWGFeatureSettings& response, + const APRSSettings& settings); + + static void webapiUpdateFeatureSettings( + APRSSettings& settings, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response); + + static const char* const m_featureIdURI; + static const char* const m_featureId; + +private: + QThread m_thread; + APRSWorker *m_worker; + APRSSettings m_settings; + QList m_availablePipes; + QTimer m_updatePipesTimer; + + QNetworkAccessManager *m_networkManager; + QNetworkRequest m_networkRequest; + + void start(); + void stop(); + void applySettings(const APRSSettings& settings, bool force = false); + void webapiReverseSendSettings(QList& featureSettingsKeys, const APRSSettings& settings, bool force); + +private slots: + void updatePipes(); + void networkManagerFinished(QNetworkReply *reply); +}; + +#endif // INCLUDE_FEATURE_APRS_H_ diff --git a/plugins/feature/aprs/aprs.qrc b/plugins/feature/aprs/aprs.qrc new file mode 100644 index 000000000..5bd0fca3f --- /dev/null +++ b/plugins/feature/aprs/aprs.qrc @@ -0,0 +1,196 @@ + + + aprs/aprs-symbols-24-0-00.png + aprs/aprs-symbols-24-0-01.png + aprs/aprs-symbols-24-0-02.png + aprs/aprs-symbols-24-0-03.png + aprs/aprs-symbols-24-0-04.png + aprs/aprs-symbols-24-0-05.png + aprs/aprs-symbols-24-0-06.png + aprs/aprs-symbols-24-0-07.png + aprs/aprs-symbols-24-0-08.png + aprs/aprs-symbols-24-0-09.png + aprs/aprs-symbols-24-0-10.png + aprs/aprs-symbols-24-0-11.png + aprs/aprs-symbols-24-0-12.png + aprs/aprs-symbols-24-0-13.png + aprs/aprs-symbols-24-0-14.png + aprs/aprs-symbols-24-0-15.png + aprs/aprs-symbols-24-0-16.png + aprs/aprs-symbols-24-0-17.png + aprs/aprs-symbols-24-0-18.png + aprs/aprs-symbols-24-0-19.png + aprs/aprs-symbols-24-0-20.png + aprs/aprs-symbols-24-0-21.png + aprs/aprs-symbols-24-0-22.png + aprs/aprs-symbols-24-0-23.png + aprs/aprs-symbols-24-0-24.png + aprs/aprs-symbols-24-0-25.png + aprs/aprs-symbols-24-0-26.png + aprs/aprs-symbols-24-0-27.png + aprs/aprs-symbols-24-0-28.png + aprs/aprs-symbols-24-0-29.png + aprs/aprs-symbols-24-0-30.png + aprs/aprs-symbols-24-0-31.png + aprs/aprs-symbols-24-0-32.png + aprs/aprs-symbols-24-0-33.png + aprs/aprs-symbols-24-0-34.png + aprs/aprs-symbols-24-0-35.png + aprs/aprs-symbols-24-0-36.png + aprs/aprs-symbols-24-0-37.png + aprs/aprs-symbols-24-0-38.png + aprs/aprs-symbols-24-0-39.png + aprs/aprs-symbols-24-0-40.png + aprs/aprs-symbols-24-0-41.png + aprs/aprs-symbols-24-0-42.png + aprs/aprs-symbols-24-0-43.png + aprs/aprs-symbols-24-0-44.png + aprs/aprs-symbols-24-0-45.png + aprs/aprs-symbols-24-0-46.png + aprs/aprs-symbols-24-0-47.png + aprs/aprs-symbols-24-0-48.png + aprs/aprs-symbols-24-0-49.png + aprs/aprs-symbols-24-0-50.png + aprs/aprs-symbols-24-0-51.png + aprs/aprs-symbols-24-0-52.png + aprs/aprs-symbols-24-0-53.png + aprs/aprs-symbols-24-0-54.png + aprs/aprs-symbols-24-0-55.png + aprs/aprs-symbols-24-0-56.png + aprs/aprs-symbols-24-0-57.png + aprs/aprs-symbols-24-0-58.png + aprs/aprs-symbols-24-0-59.png + aprs/aprs-symbols-24-0-60.png + aprs/aprs-symbols-24-0-61.png + aprs/aprs-symbols-24-0-62.png + aprs/aprs-symbols-24-0-63.png + aprs/aprs-symbols-24-0-64.png + aprs/aprs-symbols-24-0-65.png + aprs/aprs-symbols-24-0-66.png + aprs/aprs-symbols-24-0-67.png + aprs/aprs-symbols-24-0-68.png + aprs/aprs-symbols-24-0-69.png + aprs/aprs-symbols-24-0-70.png + aprs/aprs-symbols-24-0-71.png + aprs/aprs-symbols-24-0-72.png + aprs/aprs-symbols-24-0-73.png + aprs/aprs-symbols-24-0-74.png + aprs/aprs-symbols-24-0-75.png + aprs/aprs-symbols-24-0-76.png + aprs/aprs-symbols-24-0-77.png + aprs/aprs-symbols-24-0-78.png + aprs/aprs-symbols-24-0-79.png + aprs/aprs-symbols-24-0-80.png + aprs/aprs-symbols-24-0-81.png + aprs/aprs-symbols-24-0-82.png + aprs/aprs-symbols-24-0-83.png + aprs/aprs-symbols-24-0-84.png + aprs/aprs-symbols-24-0-85.png + aprs/aprs-symbols-24-0-86.png + aprs/aprs-symbols-24-0-87.png + aprs/aprs-symbols-24-0-88.png + aprs/aprs-symbols-24-0-89.png + aprs/aprs-symbols-24-0-90.png + aprs/aprs-symbols-24-0-91.png + aprs/aprs-symbols-24-0-92.png + aprs/aprs-symbols-24-0-93.png + aprs/aprs-symbols-24-0-94.png + aprs/aprs-symbols-24-0-95.png + aprs/aprs-symbols-24-1-00.png + aprs/aprs-symbols-24-1-01.png + aprs/aprs-symbols-24-1-02.png + aprs/aprs-symbols-24-1-03.png + aprs/aprs-symbols-24-1-04.png + aprs/aprs-symbols-24-1-05.png + aprs/aprs-symbols-24-1-06.png + aprs/aprs-symbols-24-1-07.png + aprs/aprs-symbols-24-1-08.png + aprs/aprs-symbols-24-1-09.png + aprs/aprs-symbols-24-1-10.png + aprs/aprs-symbols-24-1-11.png + aprs/aprs-symbols-24-1-12.png + aprs/aprs-symbols-24-1-13.png + aprs/aprs-symbols-24-1-14.png + aprs/aprs-symbols-24-1-15.png + aprs/aprs-symbols-24-1-16.png + aprs/aprs-symbols-24-1-17.png + aprs/aprs-symbols-24-1-18.png + aprs/aprs-symbols-24-1-19.png + aprs/aprs-symbols-24-1-20.png + aprs/aprs-symbols-24-1-21.png + aprs/aprs-symbols-24-1-22.png + aprs/aprs-symbols-24-1-23.png + aprs/aprs-symbols-24-1-24.png + aprs/aprs-symbols-24-1-25.png + aprs/aprs-symbols-24-1-26.png + aprs/aprs-symbols-24-1-27.png + aprs/aprs-symbols-24-1-28.png + aprs/aprs-symbols-24-1-29.png + aprs/aprs-symbols-24-1-30.png + aprs/aprs-symbols-24-1-31.png + aprs/aprs-symbols-24-1-32.png + aprs/aprs-symbols-24-1-33.png + aprs/aprs-symbols-24-1-34.png + aprs/aprs-symbols-24-1-35.png + aprs/aprs-symbols-24-1-36.png + aprs/aprs-symbols-24-1-37.png + aprs/aprs-symbols-24-1-38.png + aprs/aprs-symbols-24-1-39.png + aprs/aprs-symbols-24-1-40.png + aprs/aprs-symbols-24-1-41.png + aprs/aprs-symbols-24-1-42.png + aprs/aprs-symbols-24-1-43.png + aprs/aprs-symbols-24-1-44.png + aprs/aprs-symbols-24-1-45.png + aprs/aprs-symbols-24-1-46.png + aprs/aprs-symbols-24-1-47.png + aprs/aprs-symbols-24-1-48.png + aprs/aprs-symbols-24-1-49.png + aprs/aprs-symbols-24-1-50.png + aprs/aprs-symbols-24-1-51.png + aprs/aprs-symbols-24-1-52.png + aprs/aprs-symbols-24-1-53.png + aprs/aprs-symbols-24-1-54.png + aprs/aprs-symbols-24-1-55.png + aprs/aprs-symbols-24-1-56.png + aprs/aprs-symbols-24-1-57.png + aprs/aprs-symbols-24-1-58.png + aprs/aprs-symbols-24-1-59.png + aprs/aprs-symbols-24-1-60.png + aprs/aprs-symbols-24-1-61.png + aprs/aprs-symbols-24-1-62.png + aprs/aprs-symbols-24-1-63.png + aprs/aprs-symbols-24-1-64.png + aprs/aprs-symbols-24-1-65.png + aprs/aprs-symbols-24-1-66.png + aprs/aprs-symbols-24-1-67.png + aprs/aprs-symbols-24-1-68.png + aprs/aprs-symbols-24-1-69.png + aprs/aprs-symbols-24-1-70.png + aprs/aprs-symbols-24-1-71.png + aprs/aprs-symbols-24-1-72.png + aprs/aprs-symbols-24-1-73.png + aprs/aprs-symbols-24-1-74.png + aprs/aprs-symbols-24-1-75.png + aprs/aprs-symbols-24-1-76.png + aprs/aprs-symbols-24-1-77.png + aprs/aprs-symbols-24-1-78.png + aprs/aprs-symbols-24-1-79.png + aprs/aprs-symbols-24-1-80.png + aprs/aprs-symbols-24-1-81.png + aprs/aprs-symbols-24-1-82.png + aprs/aprs-symbols-24-1-83.png + aprs/aprs-symbols-24-1-84.png + aprs/aprs-symbols-24-1-85.png + aprs/aprs-symbols-24-1-86.png + aprs/aprs-symbols-24-1-87.png + aprs/aprs-symbols-24-1-88.png + aprs/aprs-symbols-24-1-89.png + aprs/aprs-symbols-24-1-90.png + aprs/aprs-symbols-24-1-91.png + aprs/aprs-symbols-24-1-92.png + aprs/aprs-symbols-24-1-93.png + aprs/aprs-symbols-24-1-94.png + aprs/aprs-symbols-24-1-95.png + + diff --git a/plugins/feature/aprs/aprs/README.txt b/plugins/feature/aprs/aprs/README.txt new file mode 100644 index 000000000..f00b46878 --- /dev/null +++ b/plugins/feature/aprs/aprs/README.txt @@ -0,0 +1,6 @@ +APRS images are from: https://github.com/hessu/aprs-symbols/tree/master/png + +To split in to individual files, using ImageMagick: + + convert aprs-symbols-24-0.png -crop 24x24 aprs-symbols-24-0-%02d.png + convert aprs-symbols-24-1.png -crop 24x24 aprs-symbols-24-1-%02d.png diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-00.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-00.png new file mode 100644 index 0000000000000000000000000000000000000000..ba8651982355f819ff06b400760072719d61f5ca GIT binary patch literal 617 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphQ%FPlzj!W?(o;Jo^8i zVgG)khKAJl?|Bmv>I4M#oIkJT;4t05U~xb|*ZupF^XGf7UvK~a|Nkp?I@^I}^Opqq z1v3~Z++SbdAn?9_|NQd_4H4&dS>F5qbDB%l zj%-SK?tl4x%QptskNu}!wLi==ThA!fy?)FK#IZ0z{o(?&`8(FD8#_h%E;2nz)0J`z{KCCdcr#PN*D3oj{S`=|qRZruX?Teh?11Vl2ohYqEsNoU}RuqplfKPYh)B+U}hsH=KYva>*K_LBDLXs6*x1;YFJH>d5!k(ZcWrHLZf>sEdOPct`m0y3_Ve@8StNh< z*(rH>d3}BT{SS7ZxqIr?ty>XW{r>;|pX19A0d#>tNswPK!+L>$`S%SP_P_5}C`fQP zpM2<6El`dz$=lsU^VIfM6(EPb#M9T6{Rxj4r?mc`t+%Z}dXp3V%7Drmfb0oC4D=}j z1M73iQXsY6)5S4F>tzl5u@jTf*2@iz%?T#H(%1g?7+8a6Rq>k+3v(Y*-n`**E zemnaWb;~kN2@>68bxP>Qt9gOJi4~?hj&b+3-MAdN&0$GBgH`Fub+6LCbYxC>w(iQ} zY|S~j8=jcf&i^)<->~*a!MgLV%7-&@a?CfboqJ6>nqTzb&!W!(8}3&yNk{U2&}O;L z2lRq!iEBhjN@7W>RdP`(kYX@0Ff!0JG}1LP3Nf&>GP1NXFw!08-nxGO3D+9QW+dm@{>{(JaZG%Q-e|yQz{Ejrh?K6 NgQu&X%Q~loCIAt@>HYu! literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-03.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-03.png new file mode 100644 index 0000000000000000000000000000000000000000..3acaa3ab6f71e837a8be3e3aabda046be8a697f6 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoC?BPlzj!W?=XaL;?c; z=g|r#z>EL@ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-04.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-04.png new file mode 100644 index 0000000000000000000000000000000000000000..069842bfd8dae3dc41665bf117577888399692b2 GIT binary patch literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphR+jPlzj!#t+V)KmY&# z|NHmvub6);$YD!u!SRppe?GeZIX~gxtp3Z}*FWfKI4i+0+u2~<(f!ZV1QwbqtVjsh zb>;k<_wU~)BqTI6Gz2x2)Bx?^DhcunW+-^yFn_(k`TGV-4Ue7$iZUj7ySwl-ZVpTa za@b2eeO=j~@Q86r>;Kt$+X^TokeujO22|DnWKRI%1R!Rx{c>#|km~hxaSYKofA->S zp(X_ZwghYOzdIEUDb4)$&tLL^#mm0yzW-U@oH;&o)vwEMzIip`pU)g-6J&bI>WL%Q;Le&5{vsE+|)f-b@t+d z^UJ;diU+-5ogThA^1Q)`+5EyX?ws#~8$Y}5d-(O+?DxMJo-7mC{{P^%TR?}YmbgZg zq$HN4S|t~y0x1R~10w@nLnB=yqYwj2D zGBJl}aCSRa3Dh77vLQG>t)x7$D3!r6B|j-u!8128JvAsbF{QHbWGX0v89ZJ6T-G@y GGywpWUDDnF literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-05.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-05.png new file mode 100644 index 0000000000000000000000000000000000000000..c01f35abd6094eef83ebebce5affe799ef004348 GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoB+&Plzj!#smDlxa!IU z^>x_<_?gZgl>YNhaqniyyBB2VO%+|cMBLtnLqU!uK9cAE|Nkqc6;=Zc;w%aB3uX{# zIPakF-XLN9pW6{YLB=F+cNcN)Ycu+R9QG1VUsv`gJYt;E`hT|GwgL(XBq#cn0hKiX z*%N@c0*D!MQ@H*Dsi~eWjv*T7m!3N<)U3ec5E$>O?6jr{XrHR0lEUsyCoH~Ow5Bjw{?@{yOyxy$77Oi=w_vqhlcfF7QnZqSLcSzf0TK#`B^T*|d ze1|y?h&)&hiGtiJ68$RAPKS|I6tkVJh3R1 k!7(L2DOJHUH!(dmC^a#qvhZXoC^8v5UHx3vIVCg!0G*e%1poj5 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-06.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-06.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2be8b63a549f715c113a9bdd0c793cc51979ff GIT binary patch literal 867 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_nl{0G|+7paNqsu#Ks0 z>6-~;T3H3SxTJV{*L!=XL`N4{TW3m3PnB1wb#z>2W4o-VXnjH9x;uA%E?K@KIW=wJ zk`m$!3+Wl>-PsFG|XSWe?JKC-`}v` zp`f83$TL{K-yvcD`}zAF)}P-W(9oZ-|Nec48}k?N0rfH_dAqyB&b@EI2;{Jrc>21s zKj9JMl-B>V^|lpINFX`UuMDWH0mz;J#SEnf+8zVhCp}#pLp07OCoEtwFnTy4A?={v zxvYc}ZJ|wfPjoP^W?8*-T^(zpjzS@QIe8a zl4_M)lnSI6j0}tnbPbJkjf_GJEUkFVdQ&MBb@ E01wbsLjV8( literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-07.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-07.png new file mode 100644 index 0000000000000000000000000000000000000000..b6c7335d9dfd5e072c2faf311079a23ea6f18489 GIT binary patch literal 1033 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_s8w0G|+7paK^#05Xt4 zSg@AApGjhZUU{J{L|j8{Kac@bYi?RmoHD9IN4m^WZ&L>8X6j9g~jvd%xkErQ;=7X z5tnjQFf0~vS;859h$-m|L)tp_=m~uONtzaWcdNAtc=s^488b+wF&OV>NbqG)+wb7{ z|G$d2tjSCUU|2G6aBxUSNT@LgD=I2VG4MVr@Z4B!X0D{G#V1o#RMgbe)WPoV=;-L_ z=~>8WTVG!v78GKnr3ds^R#sM3Rh58%00%pVrKRQn|NmF$IL`x`Xjl^D7tG+$u--x8 zyukeT`y1vr?0-MM|NQ>_1_lla2?F~Q3KZV&7dYRaaDRS4!~6RV1^fF03g%2LQUPja zO!9Vjsa$yH$^{^Yy~NYkmHi2i7^k%UpRKp8fIuJ)8_7W?aZA+XU_P@JmGg^)3lr+R%z_5oh>aL z&1zz=dF!UNg_WiC?uM-jjH==0>E-DP4wo0@JbU=^>D#AIGaolDay`n!Qgdd3L#VH8 z(!Qpd>*v=yC`hpU{LS9p(w5b5)|{K0r@y0v#oNWz-R1a^V_8iqXC5&<5*C^)bin8& zrzYph%$HFDvyF{}H*K0c>F?ja#X?1!KMQ>_p3?Y;m9^FND5vVu)Ta*Bx6yQW#|1{#X?hbDc0Wl9v$d@?XujKUvte$d4go>z40H{Rbd8Kc3@ojTEUgTTv<(cb3=DoPNY_Tukei>9nO2Fe!Q9Hk z9HPP5?OY{LgCxj?;QX|b^2DN42FH~Aq*MjZ+{E=vHNPqwU literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-08.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-08.png new file mode 100644 index 0000000000000000000000000000000000000000..2b67505fa7c9dbfe3427aab1a60dac5ef619962c GIT binary patch literal 535 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoC?BPlzj!{tp8N2LFM) z^XLC3B>Z=9_`iSu|M&0zH#GdefB*md`Tqj~{tF2F@9+O#Q1E~K`u{TWb>2YD%q2m7 z!3+uS*V_e50CE|VyxmeoZ+*`#JVO{BL_8>f?bV5IV)0})zlW%XKYYZ6goB4*)dgf@yk^Vwf_pw z>52ciR%M{s@i^{B>y_{fi}YOCg#8UJ0h(W{EM7(Zn(%Gq%5FoUlaako$^y5q-ujvC zW<5uph)gmlm{dz#BT7;dOH!?pi&B9UgOP!efv%yEu8~oQfu)s^rImq^wt<0_fx)i@ z>Dnk7a`RI%(<;$5m|K~cLo_(MovQ?DkObKfoS#-wo>-L1;Fyx1l&avFo0y&&l$w}Q TS$HxP3hAeIjRwomQWI+@L0hSYEmY4;D-{KFWU-Dk_-k#^jciv>w zP(!0b0RU8;R#^^h)N=_w0rgLxt}HK*b(*ujQJLAxdDJ)AppcV0G`1V zu?N5#2mt$y0HC7)aBO39WhVg$q?$_2Dp*iiS*cJc`uh6%`}s`22P2^;-sV`8jZ$eGGQJ;kl5JRe5n*xDwWE_#6%8ukxL?%kvO*aBwi6&(Fxn zU~#i3%=%!qEm5e6j*f=dOG--MVF)S@6%+Y< z=cOYgVk3x6H_UiseA%X(kaF=~lme3n`v5r?Jch0H{CzE^Eb4#;{v?lk}Qckvw0@MtnIOfNO+ zSP^WtPVc|7yu@Y==v}+pk9RncY}SV#j9jWRzoOI17q4DxYdzTKMSpaqu6E<+LiFpo ztN47xmqj=G|6&S_W0Ibwht}1W<*~fBnHc5J(b()Ck&pci2(~qOca@!8Gxyr;WQ6wB z8dasCUQwa1(^Q@E-Jbvc&idlR<(O3LL5me{x3sl9Y9)W!+dlkte`ev)x6IV7ohQE? z9PE;r@nAdXe%);A(<>9xxAwlFg;2xXu6N6)^veKTUnsu5daL0Fh+E)PRXdw7CyrX| zI5a?nh>*-2QKm>_MhZ|-0g8yy5d=k$XA>>y|7mFNXtFl<{J%kpN~HfZDAf0RU<3F0 qhKi16XBTG2L2*;Z8Jw?c$6D}m9Bb-1dl!da2LL*iQF%k&`1aqnewf$* literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-10.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-10.png new file mode 100644 index 0000000000000000000000000000000000000000..a442c3c912e10c7629cce57e1a50f42f255f911f GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wlEa{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8U)v6XFV_|Fg0E|NsB2 z(YYibhp{BcFPOpM*^M+1C&}C0g(;1@CI!f0FY)wsWq-mW#wo4;XX|Y%ppZavqF)(M zSp$$g0f;{UF~gfrAJ+jXDNh&25RU7~2?zLGoIMt~I5#RV=(}#3slmWd|C}#oMp<_e zP?c(lYeY#(Vo9o1a#1RfVlXl=GSD?N(ls&)F|f2Uva~WV(l#)#GBEhHAYB_pLvDUb zW?Ch>26HPDbBG3Kw{w+14U!-mg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4hf`Wp< M)78&qol`;+0B?|EjQ{`u literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-11.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-11.png new file mode 100644 index 0000000000000000000000000000000000000000..5882e2102ebde53d6d3b4710545eb6fb9bbca9b4 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoCd~Plzj!eoG?y|NnpG zJFX6(PJxmjzhH*_0uJ-vCj=NYoWH-mpkKl2p!o@)9AlEVyNlqXt+u;>9QG1VUsv`g zJYt;E`hT|GwgTx*PV_4SDr*3;Cje;hg4P4AD5hbmDEUBMJh}kGE!B zefEEU+3M7lw;E$J4osJslOpk;cgnO{XYF6NCdM&MTQa$AV`lZQh0Qy9!k4^NIP2Io z`H;=Ous^(IM(?L*UXD0Bxz>J@LJ;p(p~hPcZVM$H^qyxwXgJ5X_!X~^jas6i5B tLvVgtNqJ&XDuZK6ep0G}XKrG8YEWuoN@d~6R8X`rc)I$ztaD0e0s!xZxJLj0 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-12.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-12.png new file mode 100644 index 0000000000000000000000000000000000000000..7a8826f7fd23275898c497e2cdc1321fdb33e738 GIT binary patch literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoCd~Plzj!=7}SKfND6b z893b;Jlh!l{|BP~JQ|q-KvC|JAirP+1%ZV34)gb)H@GkB5W5j5%$Vfu?jrbTtL-iz zhrPtp*OmPVj~J)4{-3S4t$;!T$%%etKxGX;_5>iU0Hhh#MaP1CnCI!@7@~20>m+Z! z1_d6MzzIyj6MxSSV`BTc^Wu+78)j^mm=)3yA91ZxZ=soD#U%G98YV)Mo?C7(|LCRh z!peMw!PDYvjK;~LR&#ut3>+#MKe;!nS57U+*b)Blz(vF7|cN1Pf&USP>wOl+ucR*(N^1CKn{C}r>`sf z6CN>6Y5hN2Z(D)%CMWup0hKiX*+BJ-7C@Te-|0p{AXV?_;uxZFe(i+QLJbNWuKE1( zs-pk@Z|!~Hqj7mzr|3N84u<+;Ci>rYv@P&V@w@op%$l_1Y^~?9pObn%>`5}Qtv_?( zs)24FbG7No;)aMv5|#$s-|zQ(YQ1Q+R^Btg_|$EdgKM^bO!G3&lze~Umhaw@+G~D) ztJgm9`KuD%_e03s?lEWN&wf1m4U&p1?k!-8glbfGSe#2HJDqOm_sx;yPc~9YLEok5S*V@Ql40p%HWui gpOmWLnVXoN8kCxtQdxL16%zopr0H?6E8~^|S literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-14.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-14.png new file mode 100644 index 0000000000000000000000000000000000000000..2e21d9088327276fcd420f98b18ef9e5cbbdaffb GIT binary patch literal 623 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv1ZWpAc6d{St;=v9Z49 z<9W%*@REt?wXon@McFqJVlSB(UvYAP)UdF;;^qP|n3!I%vAtqv2a3EF5qu*l{)&t9 zosRk^Ki97rF<(<6->N9QRgnGYZvQPe@zFdh=ghz~1TK~`1+g3m!f#gKLGN7^sAbSFk4gk^&;hlTu0;w2J7sn8d^T`Pk zWepQKR~s02uaMA|7Aq{|^wi9h^znVOspu0|mzRu$&?&7|S+AsK&5;m_GP-58tLj&b zgwP$fHn(GH%WNcs_SB>qJrnyAF-KcLLq*5vf}^J$1H-vDY*kMe&Cdkdqgvt`QIe8a zl4_M)lnSI6j0}tnbPbJkjf_GJEUkRKVcr>gTe~DWM4f DcM;G| literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-15.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-15.png new file mode 100644 index 0000000000000000000000000000000000000000..64dc61e458a56f9ae47c60541b2086e1caf9eb98 GIT binary patch literal 500 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q(FJe*4tJITaMzI}fqjz{nZ{n(iDe$q0}_u1>$hre9^ zRP;y|OXci)`6~MtpD$l75x+d;sL7Tq+cva{ard3@cJ5ol%q;M72jg?w11uIT>`syy z4Kuu&PckgO6RZAGap^_L@4Nw*5)+m0^ak`XJW zO}`v_{mJz;uZ-_zy*V3ab!Y9<{}&>&`Ty;Rf5|z2l8*iYx7kyH-cT)ZjVMV;EJ?LW zE=mPb3`Pb<2D*kux<*DJ29{PvmR1Hv+6D$z1_r+tq-&#S$jwj5OshoKU~Xk%4$NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5l+X(B32_C|k(wwd*-YTt zsr}O{6Y^XX4z8d7|Ns9rQyQA%9nLJv*8r+!EeY}qW(Zi{-_Z3?aC>bo42|Gi6j3p81^#5JNMC9x#cD!C{XNHG{07#Zjq z8tEDtg&0^`8ChBx7-<_ASQ!}nT9B@dq9HdwB{QuOU4yxmi8(}rv)j2!paw~h4Z-_a4g%AJ$ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-17.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-17.png new file mode 100644 index 0000000000000000000000000000000000000000..43b92dae57f28e87c60646284826d9cf1b2780ce GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoD#ZPlzj!K8cFX2nf8M zKmY&#|6k9azZDShY5)Eo_wQeKaQO57{lkKSck9<*HZXYJ-+wnD;YmZo#XFYgfJU&E z1o;Is1g!6G=z1vf3MjysnzK6&J~qhUQHX)1m64^DfswX>ft7*5uLbGaC>nC} zQ!>*k(KVP`nV3T~IJ=#z1Zt23*$|wcR#Ki=l*-_klAn~S;F+74o*I;zm{M7IG8Gh4 N44$rjF6*2Ung9R+yHo%G literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-18.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-18.png new file mode 100644 index 0000000000000000000000000000000000000000..0657289e8102250c21b49104c19bf289c9738a4f GIT binary patch literal 538 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoD#ZPlzj!{vU~ok_G-Z zJN%!X@E-`izW?7F@V~;~|F-`B2j~A^)A0Yn`Twu(|IbtSe{KK&MFovN=9~i>!CDgJ z7t9c_zQ3XCp~x$s0ArH3y9?*Xn@isSIqW5#zOL*~c*HoR_5WXr3X-sxL^+Sb1MF}c>M=VmVZ@wMy+GVP})F!T#sNGM2jid<|+KgGM5 zU94>a`?eC^bywF!@J39KlkH&CHu?IdM6{&)z>`+>iH%+X=l+FVdQ&MBb@0JjvtU;qFB literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-19.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-19.png new file mode 100644 index 0000000000000000000000000000000000000000..90b2751d128e653f770011c667b60aa31e07d82e GIT binary patch literal 517 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoD#ZPlzj!e)}2)-Mho! z<;h@e%`jy$LqjI0Ah*znp(O*y3o_bF+}71+KIRM8WcDjf)9I~F#7jDK3Y6mZSB_5c}J9)7iQKS zi`cQ@*`D%%N1v*96hFD)btCr4h4LHn$Aegut{rg*6t`dt{bI6Ft;QvQH8^R>oiIhS z4MLkcRJ@wM@$Ws>wL#=jVOam=wcjr8%ljbAEpm{?)F zK#IZ0z{o(?&`8(FD8#_h%E;2nz)0J`z{;M1%?{MAW{MYje7Zl$AdEfuMKj2nC!NUT9GXf1y8oci?c>}exmIV0) zGX$*fZ|Hg`@(L)xnB?v5!j*C1OBj&DUgGKN%Kn5$j8j_w&(_;kKp}zTM87hivIZb~ z0uUzvv4q|XKcGVyYCK&WLp08>o%mL)L4e00aE;rQs{iG>m)e(IemUoze$2L;EkDFp ze(9WaymGPktiSvAO}?+8c17*eIfo_QubsX~Y>ct6Nfu>F+~Dk5^5VKjW4B-}hn%{c zR%qJ+7q0~ELkpB&X)io+G~eQpWd_rXmr+-f*URlb{p{jCzYo&fqR%)iC%WD{4|IoW ziEBhjN@7W>RdP`(kYX@0Ff!0JG}1LP3Nf&>GP1NXFw!08-nxGO3D+9QW+dm@{>{(JaZG%Q-e|yQz{Ejrh?*#!PC{x JWt~$(696$QwPgSR literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-21.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-21.png new file mode 100644 index 0000000000000000000000000000000000000000..57c46021a9f5d7b886d4f6be19f5037b143496a3 GIT binary patch literal 536 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoD#ZPlzj!W?(ppj2arA zynp}a|NsBz&wq7rxZdCYeE&pIwM~qWi|IgOjRzM+vI(MRoUX3UT@WKlLN`+}JS^`cacE&hz_y>N?!O;u`|Z`n-C1&P&vX7e z&SUkI!)bTLVSk`|R7+eVN>UO_QmvAUQh^kMk%5tcuAz~xkx__&rInGTm4T7Afq|8Q z!LJ4B+9(=w^HVa@D$zBVTbYz39o;pupo0s1c?y`SRcQSu8S|hHC$0Z4w+?f0%Ptuzk7_ zUg7`t`Nzne%%To$dtQ{DT5?p>WN8j-^ttvEP73WZGd=~dHuvjDNKI_*Oq1)F!0O)E zesmVQ$^TV9cVD&Hb)B;=n>B}xz5HU!k()q!RZCnWN>UO_QmvAUQh^kMk%5tcuAz~x zkx__&rInGTm4T7Afq|8Q!LJ4B+9(=w^HVa@D$zBVTbY`h2myMO;Z0fFZJ{-f{Te=jK5YIbDp zWuO_XB|(0{3<2x=8@e8fyaEa^CV9KNaJ1c;JXKP93TBm=`Q{xcd3>%~o^u-ah_T-28td zLqa%5nPXYk7NBEPOI#yLQW8s2t&)pUffR$0fsui(p^>hUQHX)1m64^DfswX>ft7*5 zuLbGaC>nC}Q!>*k(KVP`nV3T~IJ=#z1Zt23*$|wcR#Ki=l*-_klAn~S;F+74o*I;z Vm{M7IG8GhE44$rjF6*2UngBwrx?=zU literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-24.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-24.png new file mode 100644 index 0000000000000000000000000000000000000000..3c6d6f1d41e0dfd75e8e3af66fcf08be5f4be7d0 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q(FJe*4tJP3H$#rR86yM%G zemC~V@s2MQAHN*AwP$xyjosZ#yJyI(F`S`xs$auaZN0K@r|5)3zfZdHypt&wIl`Lg zr`XZUpLAxucFW%9Uv4SA^Vt!7>MNTK(*>sEUgx?PK1_Un{?+@spC67)OuzT@QR&jt zuDrpb9le`xXuJA*$;#aAY`@*&*V8wTr|td;E2&Q`d)ElIHEr5%`m98+wCb}??!0Ta ze@}Q7mvd*w{=??$n^$WE%&^V}`ck#THKHUXu_VFVdQ&MBb@08h}q>;M1& literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-25.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-25.png new file mode 100644 index 0000000000000000000000000000000000000000..ec1c55c568527e2a17caee8fb3464aca9c44222e GIT binary patch literal 847 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 N)4KY(taD0e0sv`AYPbLZ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-28.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-28.png new file mode 100644 index 0000000000000000000000000000000000000000..dd7123d6578951eb63f2dcac9eb3954dc9639cda GIT binary patch literal 747 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv0K~pAc6djTNXHSXwB_WZJI_9r&p5bz|K0O<-jr8X z`(?Dx+IHj6<>!Y_p3^pW6%?0GET1@S`JQ=8*Lp-3cg@?ja?1e=ODj!N*SaYi7H>RM zUS01RmZfWG1~gMjO3K{aTvSvP*-0#{Y|_#)HclSALK0#Ul3ct(1_lNW4i5Vn82&Rb z?BBot|NsB*-@iY9{(Q&*CKsSi(~=;+Uk=qcY1s0 zl$-0?ChXk*ebdS#Czfyh`FzQm`v+e2&%eKa|NVxC5>D1Y0~nLM-CZ0z@8$RbIqW5# zzOL*~c*HoR_5W||w^ z7#%ln-n^`=tod{1B_$@NCZ{M#%d0D>1js5*7ZBRb$#sv3`4t1hC05qOeEba};#Fy? zr%$N5DyRUxWX-@3!N9POfnfs!gC_&SB%mkvOaK3`vYwka4eSm90ResnhO-O|92^|e z4A{Rm2pMVV#YoF5Dk?TLH6)=3s!E@UnVE@MQbb%_NVKS^h?|q^|NsA-_sTW` z4UsJg@(X5gIKO{>g2DR$f&1$V-YYcp&wn3~P*AXczJbH~fOpQ1_5&3%CV9KNM9$ju z1r#ytC7!;n>`!>aIHmRfY`tv-6cR{I^eY1@YXGt*0BH*#E%A1_q&twlU8U5i? z2iSGVRSd93Dy{8HF>lD<(v@tYNqkTGQmPxTU4BQI*NaYYOkf z1j9m3PXlMKsHnC&L3W1Q%!;DUF?xrA{!}e-jVMV;EJ?LWE=mPb3`Pb<2D*kux<*DJ z29{PvmR1Hv+6D$z1_r+tq-&#S$jwj5OshoKU~Xk%4$t<8 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-30.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-30.png new file mode 100644 index 0000000000000000000000000000000000000000..14da48e0431f410ef863be005157e00d1c8519da GIT binary patch literal 1253 zcmZ8hdrZ?;7`^j_k2zsM6q#8ivSA$hqcAE}g zLWxorOy&k=a-a;(e&V%#a1m-ICMJf5hdWg!Y_R}S)D~0Na-^U+lEx1|*Azx=JeYSq zl+u98;eDG`r_fr?RLW0Xk)2?79lzZ9-6bi$>}J}<8!10Xl9-}|lJ+=;P_0($^?H+a zsEDsC{PA`{qc;D#hFY)AX~f@ zroeQe)!5kBc<_gWed(!*X~3P(>taF4?GY>*M0tIZVaeMTF-+h>;V51{({`O1)VjF}E+`C5&sa4{Q>Oy~cS2?Q%{dIlDKCdGD)xIlI zulhBe+S*#BP$m=Jxg_?eX7^WBweY%|rFx!+j9pbB>!{j#bbG?UL#OSL)2oKf(`YIL z3cdOAjRtd2HM^#Q)6uAxw;C%ux1qM2EO$H^wv9acW!hm6j|hLb+n>+<()aF;Rkv2< z;BwLNb&OY#?N|N${8rDZxSindp!An(CwoNjkp1W}>2wm2PDW>* zC&K`c5E2RqL(PT5;)-f s;fA#QEINaDo(v*M`59ycmP*Vfr;>@Jl7gSe@ZSRfHYPDz8AT}n2ch6SFaQ7m literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-31.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-31.png new file mode 100644 index 0000000000000000000000000000000000000000..c49ece34460a8e9bde7f51ec5aa8194e05d3dc76 GIT binary patch literal 764 zcmZuve@IhN6uxu**erADT)HeQ%FOxW^-|`R=v!{;)U7!erG##7&uOSrdnL2LX;KPO zYC(pAvN8z4S*B@}{$UmsHVH~2N|T_7eqcfA5>EF~{}{o&_q*SB&Uenaa9ecRi~xVJ zKSC%#ovGAg3}rWui_h8X(~mKDTNN4wLO0H@TQ&J$9%0VZYY?i7M99&EkOxbS4+tG6 z5c+6DNZyIirmF5cxyd;2S(jr_VTAuKFE0q%2riBqruP<=DSaEAOkOW8*K(d>yiCr2sSj|vb28H>MEQ7REI936j?cnT! zmeWvJz_!TMz}W^Eb-~nKxY7-_qmYvc^>*mL3ZsK?xdTcqz~ez83C1JfsDtJPU@AeI z1;Ih=R5@zUYe7i?p9i845QhQ4R_a?Se()AXugyaOcSKc>gECSR^Is{K&f#`BCWs!l zKVy`OKM0GxBh@l(X_tF@J1EN9y4MSXGO z_jwn_oN~^k=3QMwD9#ftw2kXxUeZyE979oGLBF(o*{65gO!@G>*M)HDyRD8n}J3L-xI9Vd+%gvzrf;6f>DXXSKFw z(;nBz%7An^Jy1X%Iv9Yb-N~p9GZqs=%gr@321F7h5xa+sB}oGzlan$zK}rZhP7t16 zt7MI#!e%KevHxq3$`ho23~A|4?br~;cF41pFtw%{8YwKcVmd-yVY1SC+GMd;Kcd+$ NiPS2sa$vu)@i+IjDE|Ne literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-32.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-32.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5d9ce72b5e31ba1c13fdd6e344d8d68dd2d1f5 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wlEa{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8U)v6XFV_8K(RPg336L z&pFdh=ghz~1TK~`1+g3m!f#gKLGN7^s zAbSE3gMdMk{KR-5t?23E7{YNqIpF}8Q=Te-wtTgpOyZ(v~HnX2+y zOlEl;P_b%>YeY#(Vo9o1a#1RfVlXl=GSD?N(ls&)F|f2Uva~WV(l#)#GBEhHAYB_p zLvDUbW?Ch>26HPDbBG3Kw{w+14U!-mg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h Qfd0zftT!3hE~3Z>`Yi)$LBZ8`t{|9^wEx{H7k zOeH~n!3+u3ifa;pJjNt%cNd}RJvl%&1AB?5uPgf#9x+a7{Xbi8TLFaxk`w*PfXW(x z>K;S1e9*^-;;-JQQP>XBiyxAi49x7e0SpXU_B2 zre~bF`C#f%zJ}~$=B2N!r-me-+3xQZo2IokMlvhgE&W-x3fpJSTDiRaPa5|yTr6V^ zoRWB33g{r!64!{5l*E!$tK_0oAjM#0U}T_cXryao6k=d$Wn^h(V5DteU}a$NYeBj; ziiX_$l+3hBbPeWKCgu=+8G#>z=Hb7#(~+_3kq%(6adxV6%e@Y;Bd^r zVUL5uQU-=?1_qG^1`7=gJQWmXGcY`Ha5(AUkR%|m*1@4bK){88;Vc8gbOwe_28L<| zh9zL5fX-m`Iy@K1RxAnf3uX}5@6a!xP|)yxeu0C)dWHS#?*}*}C^VcuzyE$h!2I_H zIXjsOfQlKDyxm>c64Q3n0y*p@p1!W^Pk6*QrS<=8y=?^)5=c(;D+4NP0J0|lF)*|k z43zCOZvyGfo-U3d8t3m$ye`z_z~kB+#Cp^z&?PWDLc6Tw|NrAYVluKd-;RDRP~SQ8 z#x;petIJB z{N^c!{0Guq=E?V27Fj(vI_`A9OD}w7s8~Yy{Y5XrCft+1wCzukj6P5MVh+t?fgKg^ zMUxyCuL`m+Z0#sCRaD#Bq}jq`AbRq;q0p|wIxEYa{3oXWI?F$gd!w+;ynX(qKpf&&h|34-rdKRcmxFpCgn4zFSAz}S~ zhxPXz49@qTzb_y#zx$B!8=y2}lDE5yG*iNrB|r{)iKnkC`x729PHFu=TW?zdg#?ll z{mOvK8i4ExK-x;m+^~W}prdi-p*;ee9PT_SihPOAy(z9QCNy{$EWB|C#5QQ<|d}62BjvZR2H601;rMFr>mdKI;Vst0D+~C#Q*>R literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-36.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-36.png new file mode 100644 index 0000000000000000000000000000000000000000..d82122c7527e1f09bf70c89b52d34f4e593db077 GIT binary patch literal 1359 zcmZ8hX;70_6un=S#Q+u&ut*nc0qF?(5eZ@xGz!I3NRd^U)+QtY#0C%oF;Q!c*l82@xeECILkPAwoZ=zjWrFciug7&U-U&-rT%UN{|h1 zISv49$lC+LF#ha4EEiyF|E1o4Fj^Q-3LybBl~|c*W>~+1zCA1ifaeCl&jK)F5?=+7 zjsmEu07N0cvXrX!otpqYsS6E`2*eCf+VW8$TmizXf(zY{S&bwXLB0q{ErIeoNTL9Q z?eE2XB_O;Bm&8a^31r_!5{^M`D?%%Vb3I6s5DHr$zY_{tpri%r??X`+6kyekuq%L# zovDO|mvBvL6MX_ny5V2h}X;tkbW`y}xT+ z2Id|3uYs#@5Xd2CU@PyuXmqkoG3m_FBz77igyY$d4QuY0K0l=Qs+2F!dkXQ7p;&6O zt1wSABvwr;rcHr0nvL9EFEXDLvv1Yz^Py+7A(b!ee|cfXRf6CpR6pEN(AX-SysI?s zZkpX9=<@dVTWn=zgTs0FMn(&#&^Dt>v&NxZ0VichOj-Py`&~){vqSH8@oiex@gFD@ zYaEVQ(nf98dDLm(q7Eu`2>p0bhxCcYz`vzR5l=)$MY+4Vt@4fXuQ4t?G;W)rlHBmOU-Oj9Db2T4FQ8BcwGRla3uz)%K)d$)Kc?fZ&bdaGT3I_;n44QW zx;q}LJEDG<(L1#$e+;q}P&9-j2!Jn!T#aw-46nzurg@&yI>%DXeNi>LSTqNf8lMjR zX3-=ZRzdj)5>pRl>f`~VbHf|Qy4lT56G?L8qKa{wnsF$41$-Ht9)YqkB<2Lv4A|wV z;hf%*C&N{1N!Lc9aLgh{0gaPzU<9~>P%MG`KFAw_bSZF$AY%Zo=%7FXhaUi20i`-P zset4@NE?Di#r*tyaG1&g`=~DLFiJRVq4GmfTfSb7>O1uk`Bkc@=*TT1G%#)3@_3A7loc3kAV*3|Zlh)K3|8YKg>@v;4J3{(uL zv*$}YOe2s3ND=N5I`ym>l@S|9yJyR!kB07y4DVMkwmOU|`yM~+d+_AZdUS-g&2f}~ z_wgdE6J2Xpt*2?p> z^w{Uh=S%HQmWGEt%A(ngIaTZ)+;C%JVuCwkmK}I+CHkpAaH=diA_{R;Uf!3eQ9D!Z zib8rludr53OivYy8+Bg_M|rcxRl!x>PVW9pb?ex=IPuZJuZai6Qtq2&9zV7o=zhrT ziEgm}jhuTmrXx<<{?^$i>FF(|=DK#Hivn@Ik=C#CJ7~~uP8t7q_?w`MwtLF`GfaPW zhu2H0{5W%6_jY(}&vZR7(^Yoac&Wcp?#m80C*T>$vfF8fp?4Nlh1LmMD0@gd$rag| z*tA&?m^k3|Y8L@}NLO~?E;fV4W)kVCOpE}J;!#g8yeA$Xfo>q;HxN<$Y7`}+sPSz4 z>JI{}WX9e&?#F@kMDO+g2ey4D=3)V-_cw$m$FVuIR3?xZ$+658WEL%+8OEeBxcj@A Q*pvex2T}qWw^EP(2Ve_a#{d8T literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-37.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-37.png new file mode 100644 index 0000000000000000000000000000000000000000..e7442d7abc4bfc7fdf804f6e55a77a9e17bccf23 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_s7G0X`wFAU&yi^Y>Uy z*l5Wi$pd6d1*+b81C}rpBs;H_uap}_Jyu6^8nDzWkn0Tlodmjv&`<;z8#yNKl8aSDsQui*(ZxO_dNO8yg#YdwZanDk>^65gKBy3S3;E@QjZ#+_{4H z_!hQx^Z8QZbrm#~6r9yH47Gr6R#Q{6wY5FDjbrIFu8j*gSIhvCT<&g`78VvlmQo7d znkFVDnaR4F7jf=d!Lelt&!P1k%cpb2N9)N2YpP}$YnW=MCFsuR66$FX3-B|uakUEy zFxjz;W9t%*W1HCztYcq3gDX7P&^W_R-bqb2)*Kk-^Ck$syv+3A6iZ3A;>=!&RWrGk zP3M}^C*0R8adZ>=!FB9u2^!g{T6LxJ>4{o)c6JdVdI7#h|NsA&H2fz5^o&VKkY6x^ zLxF;WLBRA~CDYv&mn2-g7`u2^!o_v_=NANg4%+YVLgD@A&+i-dzn?FVkkHUjAkcr` zV7?NMQuIx{E#5kq(|7^W&1r!oUPV_4SDr*3;CjfB; z5F2>!wF(4^ae2BphG?8mPLQZLz`^KqCgYKg+A@WNv~yi*2h$FoJ9zSBYG>voQFDHC z^Yx}}Eb~S8H!PT7u&bq`cV+9;wJT=K-D)A=;c-Z3(x&o)lA^MS(>87{D=jT8{{CS~ ztH+7T%IeDBKcWgxM9-c*`}fb;Y%EPjMMavMoShEW9GW_%QAluN;6+BQ1kS57ZtVEc za%9O95pD6$S4`yP<=2N47rU{sZT-@7X3d*9G4pLc*L-H0e`wL8NkPS>3z$t#ozm7? zy(+sV>-8(?np&yZv!ZJxOdH)YE4Ob`-BMnWo$>mG(TkrYWu@OWoMM(fynFk)y<;Hb zk!#^|3<@W0XS|}ks?DxT>X*Q_i5vSDYVCa_!eDdPYK`r^#R9<4Q7v(eC`m~yNwrEY zN(E93Mg~R(x`sx&Mn)k9mR3fVRt84e1_o9J2EP`hYoln$%}>cpt3=meZe?N)(ctWM zt`ew05@bVgep*R+Vo@rCV@iHfs)A>3VtQ&&YGO)d;mK5B24`UKboFyt=akR{0IXAX A=>Px# literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-38.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-38.png new file mode 100644 index 0000000000000000000000000000000000000000..dd820d34e123c5113f32bdf04e23be6433bcf6e1 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaP3?%1DUd;wlEa{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8Uop6XFV_85pLVIdkU! z|Njv!CqX>Mk|4ie28U-i(m`sf6CN>6Y5hN2Z(9L{1dzm0Xkxq!^40j0|)QjdYESLJTaej4Z7TjI<35tPBi(ElAf! z(U6;;l9^VCuEE^O#2li*+3j2NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lrRYJ32_C|3{(CCk;D4` zK=A&@e}UQm1GfI(|K$Jt>;Ko^`+xrR|Atfl6&C(CSn2OaM#}J9j$q5QV9GZ@e3=^1>wKWq8dL~+~6DX6K@i>U>*%l{@%?IX)aj5^E zuyNx?-6@N&U%z?)FK#IZ0z{o(?&`8(FD8#_h%E;2nz)0J`z{Y-LtnGZGjy25>H=O_9r}IoYMM# zw%)b^3JD}9`jr8dH2~QYfcO9q8)S1;0z-k}v8Rh;h{pM~7o&p@D+sVY$gR4*_T{A0 znU}=2Dt=q^|Nr-$6GSc+)_k%toYR;e(eck%_@C-bvEX|)e?86_>pt5fn%pC@bY<3y zqU&4UtUp!3FY%y2XVxmg?oTt9Ge&M%ctN*!PekR@pDX4&U1VH0A@0<62LaumZ@PEA zf3@nvbGAdu;vM&bPG5ZZsz8dNeIgn#%6to#36B`3wEmy1x2=Fe0?CPfWk6*OK=uS6z5&Dr z*0Yu#2hy>gE{-7@=g(f)&DWqH;Bt}G<>+yvhX4Q9wz+Cw?{dmFebUn6aAo2~KlU`a zdk6k->{;0>m^rC*^V6t4hDkp2q**LQu1IYVFWAIylNY1w5OX#B=_LEVlYCjl%U-=? z`8I=1WmoS?6`)0`C9V-ADTyViR>?)FK#IZ0z{o(?&`8(FD8#_h%E;2nz)0J`z{*YQm5669czEYBBduNMU}2%-~v#BZFI{PRwcgFzf<&fd+EeQm-#Tnfs2A_Ixi-^37ZtN_tW&a%~-nXdT zZ_|EWGq}gJXuDPIFvLCL4rozm0Xkx zq!^40j0|)QjdYESLJTaej4Z7TjI<35tPBi(ElAf!(U6;;l9^VCuEE^O#2li*+3j2< xP=h4MhT#0PlJdl&R0hYC{G?O`&)mfH)S%SFl*+=Bsi0)U;OXk;vd$@?2>`j&=I{Uj literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-43.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-43.png new file mode 100644 index 0000000000000000000000000000000000000000..2a0d6c51d4f6f0d3c425219bc59e4df75cc31360 GIT binary patch literal 771 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv1iZpAc6dJrfMJZ{NOZ z)vC2?*G`%=3CMVu>urB4zWtl! z_Lni+Z@X@P0yLzww6vn40%%KAR8&k%Ok!eUN=iy{ax&2HgoK2tQ>QLpzPzQSW%lgZ zUS3{1ckbN3fB%FD6AB9pf%Zm3MEw8%|MT*Fr-43HDGBlmW^gcQxWB()|M~!jfQJ3& z_peuIn7`j)|N8yw=kI@SaDIRP{`n1OZ#ftP)iWk}ySsR{vp%T-a@b2eeO=j~@Q86r z>;Kt$+X^TokeujO22|DnWKRIn96;Kj(wNg4NN@CXaSYKopPaBjErEquji)e8G&Iz- zl-F0|LQ*0tli7rpZG2o8t}-)~O=wxgr*=SfVZXOie+nmaj8L1*4wV@nJquQ?UfI;J zO_4*QanJJQ$9TBK_44H6l7)qX?ds|n)6&Yy{3a||Fk!+5V7%>YUAlDY)|oRod^WD= zoiSm@T22{{11c)51upF~rfivO%Vcrmw)Lq7)s&}m=EMpd5be0Tpz6upiw*1{PL6`2 z8kIT@1X*j#$BBaR2?c-0cuh?11Vl2ohYqEsNoU}RuqplfKPYh)B+U}bh zsdE+c|NRXA7cl%^!|>k`jFcGuOCZowDVaOcYCw^FvhENxM=b@&5c9c)3jyt&um)x< z&`hv__oY>Ux~6Dm19koX|34>Iqu&A-{|l?;k+uR6Cq1UgZ*#5JNMC9x#c zD!C{XNHG{07#Zjq8tEDtg&0^`8ChBx7-<_ASQ!}nT9B@dq9HdwB{QuOU4yxmi8(}r zv)j2!paw~h4Z-?an+ueot+m^(yKn{C}r>`sf6CN>6Y5hN2Z(9L{1d|u2?!@>WewzPGM_0Ki8IMzKPxNsBUMW*9NGBJl}aCSRa3Dh77vLQG>t)x7$D3!r6 iB|j-u!8128JvAsbF{QHbWGW~c89ZJ6T-G@yGywpXWxX;0 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-46.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-46.png new file mode 100644 index 0000000000000000000000000000000000000000..b653bc526a9446fc110d76fcac0dd2eff3348d46 GIT binary patch literal 821 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv3b4pAc6d{htuhW>}@f zu#th`j4{LFnG8W7^<|R(PibLC(rj}X{Q4N8f$Fmu$|D^d^8NkmVW70MG$A3Ou(0s# zrkq!&t2fP#JGMFlh=69EXHeVEVEmqeH-Mo>fnhUHy92|_28Oit3=Z=deE%DB|4$YD zUnKE=hQj|PN+7GdW&f*j{NJnof1~PuN!I%eQUwgf`$6U~7#J8RC@5H1SOBdB+VcPZ ze}~tRAAw%gEeY}qW>9btDA>O~A>jRagM{}2@8|dLcW6*ZxG(U&;Qjf2gZ=Xx1n$2N zxS!C_kgz}DO0Px}P$OfKx4Vna_k4lRKn{C}r>`sf6CN>6Y5hN2Z(9L{1d9)Ttr7FYx4-XdXQ$QHzKA>Z>V~sVA8?FQ zv2AA3xW}Wp;Y!%9JO>Wm+O@e&>n7fFYU#=Tu!3*%x{1zT_k7B}drQI69?du3Bko{Ie)li#w{{=q(TdA8-3XC5_ix}twQ znmK&IjXm34a<;zp6Te^i{^D`z=7$|W&I;cx&@#5J(eDF#PPN1}q9i4;B-JXpC>2OC z7#SED=o%X78X1KcSXvobS{WE=8yHv_82nn0u8pE0H$NpatrA^>xs{1IM1!;2xk{i0 vNstY}`DrEPiAAXljw$&`sS2LCiRr09sfj6-g(p)%X_>*()z4*}Q$iB}JU%qC literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-47.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-47.png new file mode 100644 index 0000000000000000000000000000000000000000..01a0e0c697e95c9cb05a9d325a86e2a5d0e0d551 GIT binary patch literal 730 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv1`lpAc6d&A{*fc9Ih-_aI&+rJ2*Jlz`#I2;MV%}Py74(1q1{fK;V&q!6gBKO$rK!`ulgh2Z1{Y z32OWI@8{s)`2YX^{Q2|y`-}VgEro@JxwyDwWo5Iovl9~&XV0F^Fz0nM&;p^7AirP+ zgZKL#_6zi%pT9ofy@5i*{RE3eGH-ygj7i?^E|%9BraAyQ>?NMQuIx{E#5kq(|7^W& z1r!oUPV_4SDr*3;CjjXTAZ_q~u?{H4u-?Jxt+{&cN`Y^_GP5}! z^SEBx+|QF<$8}d@FKf@t87)btj+}W^P@rz`zJ6oGEhfi`r)$pkPEOoi{GGjLL+KX( zgq_bN_z&!hInBX*ptor{hjfj=!X}l-b@$|zmi+J+c(P%-)5=MFjxMK;M^4%#EcoZO z`a*HJY8i%EO#+~pRxNRjC`m~yNwrEYN(E93Mg~R(x`sx&Mn)k9mR3fVRt84e1_o9J z2EP`hYoln$%}>cpt3=meZe?N)(ctWMt`ew05@bVgep*R+Vo@rCV@iHfs)A>3VtQ&& XYGO)d;mK5xGZ;Kw{an^LB{Ts51*Pq& literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-48.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-48.png new file mode 100644 index 0000000000000000000000000000000000000000..776acf04434a23098bf5d9447885384422db5be7 GIT binary patch literal 716 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q(FJe*4tJL1+EJHWJhqMy!`lShx8 z%NG=rRIKbS+{ss~tGi%!=W{;u?{_}ie!o{-H@!ZW|J~PXPlI@RV*cAYW?c^zGkAlluTQAx8Jpt1#3l$p$;;IkUqZ z92942e`1jknX2|{!Rprm2ORdkI<{ktaDqumXWK$Mp@UppwrfwSo=^MzAz1fhv#bBx z9TOspUY_WS^*1Ofc=vS=Q`V!0A@-3XlXnDG`X!60SIxS5DQ(mBwezgAmxg!M&i$B` zn3n$K^`j*_UwqVkxwp`ccmMCkS9WPXcPSja;86JXt;@>qj1#i^c4s{~qyB&QU$$Ec zy*Hmo&pQN+Ce;$xh?11Vl2ohYqEsNoU}RuqplfKPYh)B+U}NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q(FJe*4tJ0;nv z0|6KLl@1{d-T~}8npZFfF{xf~^zvAt;KyntyM%c*myA|LjY4&jhuVSsu*EZHPk#5U z?D+#X!4p4LPv&H(eEOi2XPwG@Mn0CRIQ3KPLXEobbvhZg?D^>NM2;c!bB~SH4zc;( z-!;-i(^*Rwt~yZa1PMg-I`ynKc`Hi>DqnT+pWG!@Nr0;;}=b#0)-&onMbGJcyD)bq038` z4?o`ful~6H>2Av!roInOp7Y;a-VOAqYKdz^NlIc#s#S7PDv)9@GB7gGH8j#SG72%U zv@)`^GBDCMFt9Q(__ZKi8%0BIeoAIqCAtQ4D-&~w24}Z(l|T)WARB`7(@M${i&7aJ iQ}UBi6+Ckj(^G>|6H_V+Po{z*i^0>?&t;ucLK6T;U%0ja literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-50.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-50.png new file mode 100644 index 0000000000000000000000000000000000000000..3bdcf7fad7129ae05cda615d1cf583e825fe7a18 GIT binary patch literal 709 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv0m8pAc6d%?Ji2CMFO@ zUS3{9LqlI*pQEEAkWo@nvTD_;xpU_N6@-O_End8M_wL;gm5PdruCA`4qM}k#QW_c> zKtXM7ZJ;h7Lqk*3%G%n|$=SlvGAtqjDER;X|3!-ycXoCjI&>Il?1l{+4jede{`~oZ zf`a$&-`~G~-_X!-!GZ-qGZPXLCQO(R5D;K!WCS$fzWU^=Kvyc21o;Is7zDgma42Z# zZ`i+n|M`G~_3s4|8s49uf4*V={{Hj*`|t0Uyt>v8K7hDt`m{4d;sGbNKE-~Z(5l2*um{4;9m0-1lej|VhO ze5Gc-jD4XTn?tVlgaw{j2Bzw4_YL0#drz5pz-RHb&gj40cjLVOUiwt9McUu;>Cf3Q zk8bXdk(BM;dV*bWv+z^-#d~Fdj#n*ljVMV;EJ?LWE=mPb3`Pb<2D*kux<*DJ29{Pv zmR1Hv+6D$z1_r+tq-&#S$jwj5OshoKU~Xk%4$SNrDM{dRYD_s#6iY*AEX==!yv ztpxzAr%}la$e*sr2Ubwu(vMw*v^t&;K>)y5zV0>G8u|`ADkB1b9A^Mzc>uhEA=yI! zG7tbBa{$0<0k9X^G2wDVRM`%mm4`~w2*H`)98VSRi9 z>^9k((1Tbf%~RC@S`Qj#G}N>1g(#ej^M^w`j-rKj(F zbE{sQAvPGlYcsaA8Jk<%^^N*(>l?=5+y7INAX0VQEo_pZxE9e>qbdt zAJlP=G{qd!?aMI=3I-C2E~b9mq_1NOd`_Aq%iLgu~6QeUD}de(sr<<$Vf24e7Z zdTe+&hf0mX5%%E-EIg4#fFQAmWHyP+CR5lHh#l;Rhy$1a+{&(>{C4-3`?It2H*QRg zUcTDjKiFyNX>Ku`KHYd+TU%CMm6v}k_n5Z$)H^U zg}NdpV(u)Ah11A{XqO2dr@@)SS6Ic_xp1s$h*V0Fmm9uV{dcF_amH$uQbBNV^g#uE ziFU&}`;}Qa4sJeGp;fDEYb#G`>QyJI>#Aywf28@z%?0K5zM_($CGW-fQx&>19nEHQ zquFdSo3WkPK%M#g2Gk&HF=}Ckxp0$x@~b+PjrzJU(K>v&t1Bz|>#S87GRF?t$NLvv zJJ`tU?<66z@IPOyQ#j^1@2vHaK3D6ZCl{j7=v^FdWsV*-}rfJX!#ag z+Vh)_yyGY2PQy-)=gtcF_wU(`ySurzG&Sp!6OvBnSzcOixlWy&p7KY0(0*RN-l5g) z?WT_N#;(q+o`;2vBlA~gN2bRXhN_;Z0f@{jJbp%Z6J8?VB%v@Re6B=*<%tE502)Cf z9$shmoH7bB7jE^02(Ed+(zUm{sl&CQV9S6 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-52.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-52.png new file mode 100644 index 0000000000000000000000000000000000000000..efc51b7568e22d6b251a90895d1bf94be4369797 GIT binary patch literal 691 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv0B{pAc6d9qI={g((cH zCNk`p!*F*e!=~vBQyUnLEobPdU^mv23ic2Il0ei|!DnZq?dmA!@1^Ww$7^q^0o0hA z$Y5n@1VJ9|j&L@FVQkFs1$4J! zNswPKgM&gs!~XZ{8}>H{+~03-|Ni{*4)YBP*6%lXKR=*BK*7Q8d7U~?F=LXqyNk6Y z-hK0Adf<&+;-ry3fl}$D=bvrv@-`hcvl*MoM-ZV3~1D^B~vc07vGWH!?j6oMoy$3s!JVd2~c1 zJUIMO(t~Fg88(@0-6HtNYFE{-Jv=pRZC+k~+>SA+85EW}1_vu9cCfpiIn(QMaG!8; z;zNP$2GbjM`2?K`krEU!nijUnVA~v(B88Kul?z4KtWHf}WH|CqqEE7A)*YbBR7+eV zN>UO_QmvAUQh^kMk%5tcuAz~xkx__&rInGTm4T7Afq|8Q!LJ4B+9(=w^HVa@D$zBV zTbY;ATBHp zMCO(@<`y>MBI0J|RwkyFVj^P3Cgz4lrUnKkVxnSt`bN6C2HM*CTAI3=8rp@0#k+U! z@%HfsqW@s<^x4x{b7q8w2S>+7#wW(+7v@yelz;j1Wz&|8hmIb*|M(dM9X)xvZ(?tC zUDbw->n>b8cjDBsVkzv+%2G{q3Y|la&Z_Z{sbBAHqBZiur48~R#_F<6;!C|p> zwk`odkq-85e*R&O4({GQ!Ol*e9v=SA&R(vrK2DAv4i4`2cCNNI&SiB=bIKQ|6)g@+ zSs0cIM2o`G7KNuT3eQ*^p1C+YYe{%E5G@VQS(;nB(#q0d>Xez2CQj?^o!HUQ)7;!% zSJzZoSyxh0nV(;hm6e~Gnw5}{8XcVw78V^C80O;>=;h@f6cp~`6ZGN3r?>AuJb&@( z!NVuFZr#0f<=W{p7mge~xo6*@t=o33UB7wh^3`+aFPSoZPEX&I=C+=?#`cMmXSBBW zdV6~V0~Q#V^^LU$j_lokX!n-w8-by&Rj#5Bj76i8AirP+1qTO#h6V>P0#RVFzh5As zVblBf{S5}|m$^H-`Gg)XFzDa^{{H?3!2?s*gaLIkCV9KNNX*V`l>>6vOFVsD*`M%; zaZ2m|*?QXwC?t@a=vM|*)&OKr0OATD_7F`z91o3`qk-+G= zLF!<`#!gKUgJzW*J!j77>a1OpoAdUKtjydwu`ze=+;kL@k&_ToOW^eL=i$`Xo4~T& zysd>lqUpG}^C5nngRlD)1rM-Kdcc2V0!I>)CkIRND+X_lwgiusCe@Zh1}cXR3LR1t zoH%h};6=lYg&#RPJx^+`%zT-^IkD%=nm2Rq?D^AlXwjodmo|OsI;FLtC8N|gH@4O} zIk?z6JG$CEJ-pmsU)bwM_t(y3x2~2YQ?~f*Uo&S9)2x<9EUKxZp{Aw1owHU5McuO6 zHCfI7;$?FK6?0VvhE05-qMw6BjeuTOEpd$~Nl7e8wMs5Z1yT$~21W+DhDN$ZMj-~4 zRz{Xq21eQj237_JzZRrxqiD#@PsvQHMArb!ZRQXS&Ti)_ff^)1HU#IVm6RtIr7}3C i_I+Q^1-7*}b-DwXSZ>7io+{wTZWY%O z*R(duX3XsQ;`C-wS%SnARdP`(kYX@0Ff!0JG}1LP z3Nf&>GP1NXFw!~Ss+uBBsQf)q9a@U|NsAO%8DL9w_210`2{lsGziQW*sq|lKf$5@ zeZl-!z%-w$}-Ah7@a`S%VA=kGTZG#C^l6!hPp-yoo1;4nX-|9n6~gW2|*7lCFl zCV9KNczj^G@(RddFY)wsWq-mW#wo4;XX|Y%ppZavqF)(MSp$$g0f<)svB#Wgd)R>V zIZqeI5RLO&Cmt7SG7xY`KH_j>UBdbs*>3~|cmMe>FWIDE_4wq&Sfkzf+f*181e`v! zb8t85cPXeaaVB#t-XtTu;K@u2*Kdj^i;l)v#SxwJ=ep>aovdXS-RjHcRE|6H_V+Po{#>F@vY8pUXO@geCy|-w!qb literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-56.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-56.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f2bfe8b62a73366f973f81b21460cc8fb40292 GIT binary patch literal 658 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphRPUPlzj!W-w;3U297W z0;+_frOFITmBoT(v@7-WHd-^pi2%7EqkzDeo56_>!3Bwc%$JT*2;Ak%pvh@A-3%mK z2=dGS|Nobs^xy-s6ib5qf*BG53KaG?%olin{(gc%fB*jT0uJxr7Zl7tzyJJv1%dem zCgR)0eu=+MMA;f0Xcqji>18Xc_Mfzu;jG_ucEk?Al@dBJdc z!wJWy|5d&mc&$||-==3?9^fcqSr>Dqc3LUJ*;6UC^()R6XZxMyFI%thTVLkh7nv`D zyEaV@dj76XGOlRr^|05{f6lYVh>CI5yxZOmbgOEKYeY#(Vo9o1a#1RfVlXl=GSD?N z(ls&)F|f2Uva~WV(l#)#GBEhHAYB_pLvDUbW?Ch>26HPDbBG3Kw{w+14U!-mg7ec# o$`gxH85~pclTsBta}(23gHjVyDhp4hf)WaYr>mdKI;Vst0O$A8;{X5v literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-57.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-57.png new file mode 100644 index 0000000000000000000000000000000000000000..2c8b77be9dcb1fbcd040b5fc8dd1192c01804be7 GIT binary patch literal 937 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_nlv0G|+7paO#6LzpZO z0hMX+u|n8D@_?(jjsWX!XK`0a4j>yYj?7qKDGWq2&4r}7m>I;>84{L*kgy_@pmyBA;6M> zfsG4jV*}856?=xLxeR7;2`&utix~d@|Nlqq|1F?pRwY4x!3+uk4FU$|_b1#ha1c;< zzds@1e!%+v`}6lZG`u&Mzka{L`u_6@4gm@84S>Sy8-N1y9nJ$4tY3efd+Q^hDU3

?Kd#0KIIqW5#zOL*~c*HoR_5Wvr_i_uN%q8;3_5_diq#YAIHm+9GYz{Cc@1NCwHHIp!FtR_(6i=`UcmMXGf*I z*dG>1a3$!AK1s@~Of7wK!E%EBZPDeg0^a>}*|{rC{92}O!@pd%l$bSFCVl^UG4_D> zUG9brTNBO94FdwluF&s3vY(FHH_ocp$SC8@Eg88g~!zk2WH-Rj%*|5<0PyKdRB z`%KIe_8slI*I$1VGWe%3KmKy$wO1=HcUL~M@G4hjxVFY@&X48k6a9GP6EB;yBuHL3 zY5AH}Bi8uXOUJ1bSXTWB-~Wd>q)-z~E6Wag8WRNi0dVN-jzTQVd20Mh3cu zM!H5uAqJLKMwV6vM%o4jRt5&Y7Nl#VXvob^$xN$6*I;gCVh+*Z>~^jas6i5BLvVgt qNqJ&XDuZK6ep0G}XKrG8YEWuoN@d~6RAByLVDNPHb6Mw<&;$SnWu! zAqdD7W%vdp;Uc&g5HkRZVI z&h7cNcN)Ycu+R9QG1VUsv`gJYt;E`hT|GwgL(XBq#cn0hKiX*%N^H0}y*m z`D(!fq)RD^ zTJk6%F6`2S1S5l6QqQbIeqQ6(a5;LQX#?Z7V9mt+4ONT{$${=3Un|wm9%k3Iw&oFv zWmcZwzIIFACKHA4zx_-VWc{tLz4o_a)Y{E9t;6v|AJ74+C9V-ADTyViR>?)FK#IZ0 zz{o(?&`8(FD8#_h%E;2nz)0J`z{?NMQuIx{E#5kq(|7^W& z1r!oUPV_4SDr*3;Cje;c7mnz-$z~)bHJ$!n zznppDrgI0ie&6~!W0^*sN2S)+MT@-Hx2}{HjkpsnYEh9D!qDr&(5u2wu$pN>{hUyR zCBX+9&m_2uZBS-9!KZ8y@!RAso4^O7GZ$M<|7sFB6Ugvv*FJ@#Kjt0rxujAw|3UG@ zlO~?`J{DBonQ)@F?`GZq^EHeI|MT?rUoct^beU?2YeY#(Vo9o1a#1RfVlXl=GSD?N z(ls&)F|f2Uva~WV(l#)#GBEhHAYB_pLvDUbW?Ch>26HPDbBG3Kw{w+14U!-mg7ec# o$`gxH85~pclTsBta}(23gHjVyDhp4hf})ne)78&qol`;+0E)h~#{d8T literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-60.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-60.png new file mode 100644 index 0000000000000000000000000000000000000000..8c0475f177f3f427c40c2fbfdf5a0a834604a8a8 GIT binary patch literal 1377 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 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-62.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-62.png new file mode 100644 index 0000000000000000000000000000000000000000..f15491e46fe021ad2c1b22f0fa1e242ea62df2dd GIT binary patch literal 644 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphQA|Plzj!W?=YFJX*j0 z|M~O(9UT4xK|{m;{{H{(-~U%o_&yJ7yY?!(QU)>&pIwM~qWi z|IgOjRzM+vHYs{hc&s5$)BDzA?DT=@hZm;=1yWqbv)mjJiZ}V88qu5%lY}0&EB21a(9+J-J!Ut zZCB$0vAJ)aHcV8L5i>sDy=r0hmMyawA5Oe-*(8HiicvL{-(dHm%&iKJZBm&H$|bX& z9jjo_eOV%MKt(j`W-i-8lMlD1PiM%jRzK4wy5+%MZqW_jX0Vbq!s@zvyV@T=`zid}+U`h?u;GQR>D@pNsg}4#l%yn5_iVAhwf%RgZy*pF!e; zt*xz|o*qy(BqW4`Q~dw`|A&4(3I-~ZFA4GsW>}x_{{H@k{)PgB^Y7=M7dU_3At9h) z{{H&{0p|rA5_a`eeFZ9IO!9Vj(N@{{gagQ7FY)wsWq-mW#wo4;XX|Y%ppZavqF)(M zSp$$g0Z3;6X^(yP+be+dEKe855RLO|FW%%kq#(c=5XB<8_6qCPtyZ~rFZ}=SaMLGM z$j4_-|M!+NJ_=9fpZvrU;BkUO=#YZq9flrtz03XrVhL%#E4$kn0vtUW71;HUIvsQH zQokD{#G=iSZ}8*jnuLh&j^_&XZ=b&Et=?9)_{z7kdTv>l-8S>Ab>zP6Ta~H9_+??% zj>Vfk7MK_oPqDh$U2!bp@8|gX^V~sygjsTSMd<-usaoP1QIe8al4_M)lnSI6j0}tn zbPbJkjf_GJEUkG{WHN>gTe~DWM4f@Tt^6 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-64.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-64.png new file mode 100644 index 0000000000000000000000000000000000000000..79cb8f25a4dc531b20f0f2611bf32b3d712cb6a1 GIT binary patch literal 556 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphQA|Plzj!27~`V(g3K6 zfgvmmL|RyYNKEkQ69Y&oi0EfvI3FF&AScJb&(HAqF+*h~gQurwQBjelrKN;~gr=tE z|Ns9hC4zwNW8g0d@(X4-|32Zp!TtX8>l^MD2q*?YcqH+Fgzb9XVf&fdQ zqsSGp?|=WFH(4OiQ*q78M{Q-wve^^%3ms4_V9{c?X_>No#bNP_Tg(+ry-I4Ih&%Y~ zUEZLWct!b&M6iF1?eg@4+@I}di|^n6OAWNoN`C(XBYEbRqoFv zEB=H6EmkdYjVMV;EJ?LWE=mPb3`Pb<2D*kux<*DJ29{PvmR1Hv+6D$z1_r+tq-&#S z$jwj5OshoKU~Xk%4$624`Gwn3J-g`66eOc!@~FcA2ZJ0D)Zq zbP(V%D$(}=KEweY5CFzu0GVg}>qBn>Yzf#8)|8=!=S-ziJ*$Wzb1R>pDipj3uc*PI z0+SpJ2+exzEAe=cre*2bVtxi{v*xxa6pH%8 zhbfQe%H_)geSIU5$oc+$q~Gf7IN8#I=t%02rl-5iFd>mB*e!ruxZgFld6?TY0 zk&R4}U#|2O=yYEt5>lyD0$CRZ1{&(?Gt$#fxZOM+ukh8k(Ts?z(P%yig*tpbkx;1F zxwGKu6N?=V2cqQUYhztH&7y=EY>o?J&80``TCQUyPG)Xa@u^TjYjbxI-9FU zT)CHpwh8{Qm`ZAPvo0dD}@0}?sGW_@t-hO(|NmVU%r$b)!=n>z` zHw^Ma!C;x`+coX5c4qp0GU#?*_x>g7tGKycBFSB7e$c5Hb?Aw9XKS{vw*IYd-qz9_ z*GqSf@bdru$T=7cX}=kXtXNO$mM^Xj_D&7$&Ff$0oA)O}tMU2U>$g^a?Y&lg?dq3n zW9#KFzxLbrf4-M{zoGVMI)UwGn=#FCEbE2Ogp}~1NF1I&SKuN(U+?RaW}LeuO1Z02 z%A$jH7gHJqKWpZuXJ<;s^TsZWM06>qx&n>npNh+~Z2)_fyUsqmy^x1KTuYVJQEn$i z8eLuzInd*JT=#}vr`Olu2BY3!#PxYNZp87&6HWgow6?iVG^1?zUs3+S2N5BCANJyR-cUiT+#wOPS5Iw4XThFC#%|HUIzs literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-66.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-66.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed0c63cd9166193afedff464e95a5c4209868e8 GIT binary patch literal 501 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoCL^Plzj!zW?$5i?1&j zCNjMJ{#IzF(0?$nUS%D+EfgpV7;b|o~NXqbO({{AQX&%Zh^Fhc;S>-~@S2Fnbx zgTiJ4)p3;s`2{mHtUrJM{`vRk-@CX=ZUTxjCV9KNuqCGLs0DJ^OFVsD*`M%;aZ2m| z*?QXwC?t@a=vM|*)&OKr0Aip!84^4~D|CT$q^FBxh{pN37d`nJ6c|_>S<2bV|Njs5 zHDTLm`9fxQU-FsxTi?fCa6K)QAlqE(bb?!Pio5!XEX6sp3j~|Ro%P!sc@|47o0-U2 z#qnCL&7J>1x8f`FCF}lflf5-Tpk=)Xe<9Ek)e_f;l9a@fRIB8oR3OD*WME{VYiOiv zWE5gxX=P+-WniRjU|?ln@M}T3Hj0Ma{FKbJN^}k8Rwm{U4bE=oDuEg#K{f>Er3v>Xu|*h|1X^7{10Stmjw9*GdS!I5a?fj z|NVS}-SfX!0fiZpyxm>Ixv$OW2Xfd;Jbhi+pYVurO6&jGdfN&pB#@lwR|Ztp0Ax=9 zVha0Kho$q8l;iQY|NTu@Oj#gjv!d2(X}Xq7z$;-5 z&-d4?lAp!IKV~&QRx~s2Q7-!e`A3(ej(bIX`pBypdh57*b3+?b>PQCKu3F+6QIe8al4_M)lnSI6 zj0}tnbPbJkjf_GJEUkxMJ{h^>bP0l+XkK39y`f literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-68.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-68.png new file mode 100644 index 0000000000000000000000000000000000000000..6e9c27f9c75f66259ebb96df147fb833c0912498 GIT binary patch literal 1100 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_s7?0X`wFKm~j}+yZ<& z25Krm_N3_O4Jj$d7#NN)Fl=RD*v`sYEh}rLsR@)?!OresZZ0P-F2u(Nvp9VjBr z&tBo8xHbvsFc1KWcE*DRZLG{6L<0sI#@NwY9dAVquzrp^=Q4mX?~Rum(4`vJjVts+bxVSB|yZhII4z zK+lw5pD0gPO=ZRMEFBk16IXTd2tA2BYdLRqpd(ebq?=3&)m)KcJ}ucPGtAJ>QK};? zU`Mw3`ecJWStfaQa`9$TQ%elh#d$JqWf#ZjcKNBb`>0M1)y;O53UK1;4ORjA5$K~T zceMaL382e$6~vWfrT+i_zr&*UAJB)MB|(0{3=RG71^VyrKku;reS<;6`~3|C4gu@$ zzkfe}{`&pz9TFNE=HFj`{{H@i`R@Y~66O~K?B9R>eZcvCgZ1m*C)_{ppb!95WMI&+ zU&83nL!hCIN#5=*oid4Pz(8VPFY)wsWq-mW#wo4;XX|Y%ppZavqF)(MSp$$g0f-Yo zxWH}uGoYBLr;B5V#`)xg1q=p84<{siOF5`_@Kl>K`)+Y|^)ODoeEB@NI31yyeSesm zoD{_LouVQlTtd$H$2bLfMIF0u?-0hPqopq`AtECrB_<~*Day-axRFbtaOaL63l_8- zS@LAcl`UU-e*8GI=8cT&gqBG~c>w_d1#xwbiGhWlo&hVpB6n(eIEA_Ca`0$rt!`>s zm3^hvB#K zcOl00pM^v{3?f&sPE}HQGV98$#2jUB?d+E6xodKG7x*|Qx>_$e5U?e*WmC@EV%Z5Q zGSMvy*MzCNsuZ$4HxuVLymc?LYRug`3x)FJvd$@? F2>^b+NnZc} literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-69.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-69.png new file mode 100644 index 0000000000000000000000000000000000000000..813ed055649c1204d4248dce4c9c8a2e5b3dd3b2 GIT binary patch literal 635 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphQ=IPlzj!W?=XaLF+g; zjF_0Ln3?}@bJwx4-QogS4P*n+bawVroSb0AxQPECWm#EwH8g-K<|ik=;o=ftWZb%S z>s}6yrlzK(q$Cawj>yQ!g()feOib}CES{d85)u+sRaJ(DhX4QnKbZCBBv7YBNswPK zgTsA+^8x1#=D**s&@g{~!+eAH2?YWU3ddE_K)z;7@^*L8J$uX17RX^Q@$_|Nf5Ici zDXsr!>uoEbkU(;xUl~wY1CTudh%10NLE&2VQXt*w>EaloaXvXgB0)jXaSF>~7U3zX zoh%J8X*;Y^I5jgR#Uv%ed^jULB`qZ-&DID_GBWz~Mu3x*rNQGwLBhldQ-VW6o*YRM zxl>x9GG)q?(2$U+2ONBZ{9@glgMv68>FN1~>Tz_>ZV&g4ZtG`%C#5QQ<|d}62BjvZR2H601*HfEPgg&ebxsLQ0J0IX5&!@I literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-70.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-70.png new file mode 100644 index 0000000000000000000000000000000000000000..94f7e4a85aff3336ffd2d2d5b91f86537091da5e GIT binary patch literal 893 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_nmE0G|+7pn|nv@T9*V zNMBvNbi#xQ_wL<0uxV>pSXgm!@yZQbYa5!InwoZXPZP%_{i`Q;BbLPzEJ%{HmS+Q{0%F8$JT)1%I;K4(`qN8tDSN|6f_^+VwS6}~h zcJ_Y;hVMRpm**|JTi@{6(|6H^U4P{jwk=uTHFL@3^2)o;9^JE+&e?YAFTcRL1#6cd zyL&q!d4slpUTI&?%6(s0S)b`?yh>Dk%7`k0qhk%vinf>BCPcw)nZqYHdemnoQa zhSz3fbagF0Ja_KOs`{NbYU*Ey#>`y3X$6V9K1Zvf;vR12-R4b;n+5+*;`YO;CLv%_kK^OMuE)f-%$F5EkF@S-P2ch82+ zGrL!JXo%_NrM;7zmo&pqc>0G=-#&hw>>@gK(l>q%4h|l!X@V}{`r6_`Qetw7{h94e zo5NG4D2d6t%|3cWE0I(Gsm10WETTSzexaL>sF>>93-&kLeBppt$gDWcs9QIjw65y- zvd?B)_Jt>wZHbwEpd$~Nl7e8wMs5Z1yT$~21W+DhDN$Z zMj-~4Rz{Xq21eQj237_JzZRrxqiD#@PsvQHMAu+$WnvD|;Ous;5~x8EWJ7R%T1k0g nQ7VIDN`6wRf@f}GdTLN=VoGJ<$y8vTU|{fc^>bP0l+XkKN|Ab* literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-71.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-71.png new file mode 100644 index 0000000000000000000000000000000000000000..46bf710aea941078546031d186b872e0924bcff9 GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;wmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5ln@H=32_C|3=Ag|67KHb z|EZzj$^ZZVP4(aI2Z}M41o;IsI6S+N2I3@nySuRd$bWep$YC$>^mS!_!Xw5ht^a51 zZ7ZOVKyspA8BkdRkUas2R{(LsN@bBhK-$F9#W6(Ua&m$Ky8)L|BZHdzO%H(!nXr&f%;WTTq8m4U&p1?k!-8glbfGSe#2HJDqOm_sx;yPc~9 wYLEok5S*V@Ql40p%HWuipOmWLnVXoN8kCxtQdxL16%<+wp00i_>zopr0Jzz51ONa4 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-72.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-72.png new file mode 100644 index 0000000000000000000000000000000000000000..8b395ce00f5ce1a4b325bde115f162a07d9094b1 GIT binary patch literal 876 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv2n%pAc6d%`n@Z7-T)y zi*L3QQ00LINoWXJkYUwh2r55+`qkG{C-(O?T)rl{@gZCsA7i$?$6Ozv;RZYJUD#gp z|Idm2FV4@ud&yz{o%^3oJ8Vuo|7zWXb5r*}S=N8!3ecSQ-%lB=jTBhu(X%RL%YuZM zmC*_NixN)WTz_w_#2n{Fdh=ghz~1TK~`1+g3m!f#gKLGN7^sAbSE39{}P6hD415pcsRv zi(`n!`QAyj!G{cZj_u}K;ujdWe38#l#?XLdH#MuR3m#e5{a>H_vdz8v&dbmKm;cOq zlDWR;uWotNcdeKIdtd31 zqxzzc_RY4+a5?$#qT#nrjlFsEj;t-?vuc*!b@o?9xxX8~mnlzx^C`D}|MQQ=1 z4qvoga8G>->kl1=CHvG~PDt}ozyIn=!!{!?wx~`{>-3*r)`d)abZ`CRdp}#JOxK!Z zlvn!yqpjF0_OLBl5%PN`CIZ7mwZt`|BqgyV)hf9t6-Y4{85kMp8XD;u8HE^FS{Yed z85n6B7+4t?{92H%jiMnpKP5A*5?zD2m5Dh-gR|SYN}vWwkPX54X(i=}MX3yqDfvmM e3ZA)%>8U}fi7AzZCsRRLfWgz%&t;ucLK6Vs-fcbr literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-73.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-73.png new file mode 100644 index 0000000000000000000000000000000000000000..7985337fc69762a90d3070f5561632ced5d7834c GIT binary patch literal 740 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv0vBpAc6d%@v4(m_>kM z2oYv!5Elr5${0;R3^rX58v>YI8CYgB_;YYTNKX$BXGh0C+yJN%sFG2gfwi8I!lCqmZVq)Ur#fxXmm=P8hCJ@Q3 z9;cF%le1#Qir(JdKp&s-^77i++M=SO_V)Jw|NkFfUS9%qoN7ssUogY^g!vBd9Rw5v z8um9R6zsp>f8QaY-@)O&K!3n|h4%sh=N_2>~C!7z63Ko-U3d8t0P}B)S>|T?`D9 zJ2r3Fw9(k0U`5fQPGiI3!p{Zm4U&p1?k!-8glbf zGSe#2HJDqOm_sx;yPc~9YLEok5S*V@Ql40p%HWuipOmWLnVXoN8kCxtQdxL16_oTC NJYD@<);T3K0RXAF+fo1k literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-74.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-74.png new file mode 100644 index 0000000000000000000000000000000000000000..e4956530a02f477d3928b5e1b48ff33f37ce511b GIT binary patch literal 778 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv3b4pAc6dy-QRS54yZ- z*9|bp1%pkUoe;+Q_3OR8z5V?BfQ+7=o=KA?xgde6sw$v3l7I`)iv78{M~)oXV`jE5 zJp9m%8HW}x-mRdp-PILn=BE1kZT|k(&YW4Ut-WN)5?5DOV`Jl>pr92iR_rh`+M1LE zv?44lEFd7Dv$JzcP7crwK=X@>i-A@|M@M^jc;w{d*xA|n`1pi}hc8;RsHv$bK0ZD_ zKfkW7?*IS)J0|q00==qS666=m5U}5%;l9B9gaU{20R;*L`vn>r_P^gh|Gfi{QZPsm zC{TEC@=OU(Ib)KyyNl2Fe1XqE4tt5GuPgf#9x+a7{Xbi8TLFaxk`w*PfXW(x>9>NBaK-tZkH;Zro=Cb`s(YA|oHt%8B{y%T?Ilq->qqpA%8oqStQts`)ind<@ zTAG!W6&)R2R8%x;>8gP3_dBXaWI&a=Qp!3$QUAt=4s{jB03k2;t0}KwOk|4ie1_gut_xtbn8|>dd|9nHh z{Pza^?+Y9Z-rpAxxZe=4Ug3QIrLXJdfvOpkyxm21sKj9JMl-B>V z^|lpINFX`UuMDWH0mz;Jq&a|ef>1=nc_4k&)5S4F<9u?00*}PZ0uKZ2jT@4tCWnOu zh8|WszJ`zGl$KP^8<_|d2ZzbR?JZ*BCxz~;5V9%Yj0@q+eIr!!$0}-<0H?)FK#IZ0z{o(?&`8(FD8#_h%E;2nz)0J`z{tk3=E#G KelF{r5}E*i31A)o literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-76.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-76.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5b1939f1f9d3a0281059d15477e406ceb3e171 GIT binary patch literal 673 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv0U2pAc6d{TK{(?AWnt z)vBvkuND;*0R=-tL+8wyV`*urt*!0u?#{=@*Vor4BO{ZXoP7NF@rH(mCp&gL_w;<> z=JHf;FrX(S3X|Pii+MyOMD9S_|a1OXW8UWJ}z%$r9OE( ze=A7-UYYaJ(drcs_d7k!k1n?NMQuIx{E#5kq(|7^W&1r!oUPV_4SDr*3; zCje;$Af52|r41+;H+#A`hG?9hd(l&LB>WfP)FNCh+`6y2s_7Ot{oo2p$zK55lul& zTpUcct@8wqonq)V7FoqIMb2=_FE$V3L#s}yr{s71F-mdi!&}WvyJ-m+@W% zMka%5iEBhjN@7W>RdP`(kYX@0Ff!0JG}1LP3Nf&>GP1NXFw!08-nxGO3D+9QW+dm@{>{(JaZG%Q-e|yQz{Ejrh?K9 NgQu&X%Q~loCICc!@5CUb}Yfym|9dQ&YLPxDpZ)`uqE5&YaoS z*5>Q$TT@fh*w`p5E8Et#thjh{fB$?guAdAH|JBsge0|Rd3kzpvW?ETU{r~^Jd`r<; zprHaKL4Lsu1`YcQ6dca?C(I9czy7{}gzoHZKsm-FZ+92No3~|)fE@M`PhVH|Cp==D z()xe4-nIhiO-}SH11f6(vL^s(3m~1ax$=Q0kj?1n;uxZFe(S{BMNJL@E)!cDx*A#A z7^g8TW}6WD_UTgQ%M)&5=*9q3eMlE@5aCAV7Qnlwa_89GcW3OUq_=*wyWor%)8q|j5X2@%r;S+ z9PO=A>1J_ugUa^3*B^&1W%Bs0ykX+|Y2Wp~t)65a^4>d$zfURaLzm|KStj0U`;^E$`$3RQGBJl}aCSRa3Dh77vLQG>t)x7$D3!r6B|j-u!8128JvAsbF{QHbWGW~%GI+ZB KxvX7J0u9W}`&n7nv#RTFW8X_&eMNiuL@{P88F1IC3 z=H|Mb=3Er_-DT@LZ}t=K4or)Zna%uf=YEH$r%%}xOpJ5AI9>lUn}D?R7PB2vz&K@4 zEpd$~Nl7e8wMs5Z1yT$~21W+DhDN$ZMj-~4Rz{Xq21eQj237_JzZRrxqiD#@PsvQH zMAu+$WnvD|;Ous;5~x8EWJ7R%T1k0gQ7VIDN`6wRf@f}GdTLN=VoGJ<$y87>VeoYI Kb6Mw<&;$VN48v^z literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-79.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-79.png new file mode 100644 index 0000000000000000000000000000000000000000..d62722509326a39c4875b5cd90a4ce80fe83d9f6 GIT binary patch literal 1221 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_s6-0X`wFKm~B%tH3Y7 z!2;y!NC_*8@&g$b(jd~()HpOWR7r>j$kx)*0+J>Q61Em*dh$|WH3BXw5?#POA;blOLDIs+Fcduc4OT<4{I|YcbEP9_Xh+77#J8l+r8@b z@tqzv=2we zd&|c4>(_5-%AY@fet&=ey1u5qu1*C7g=O1pz|mO}cbI?w{Q2|u=ilGIe*ONa+%;vuSY%A{c6TXVku~Etki%Z$>Fdh= zghz~1TK~`1+g3m!f#gI#pgP6|AbSFk&H&O0-C6ogKz6XFi(`n!`Q!uzIRm3a@$|IB z)a2(4MKdfcB@=!0baQ26^ECS1{pU}YJoLoaz{JSxVS9mv@7XiDEC+lXy|uHYqper8 zOxWAJc(TEXxH`df@o@8U{=klw<H8Z_? zs)`zhnwG9Yj}p>WUfJ?xM$efaYu+rFv*gZ{JvEsfjz+Alu97p4M&48vco#zm0Xkxq!^40 zj0|)QjdYESLJTaej4Z7TjI<35tPBi(ElAf!(U6;;l9^VCuEE^O#2li*+3j2NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q(FJe*4tJKdS7%xyS!?Pyc6i{Z}*k zuW9yQQTxAJ^nY>r|Eh-ns}}zENd{@JUi9BJ>VHz>e-Wwwc@zKh3I7+8_;2m|U&Y|R zk>me{75{k!{~J2|U-#^P*{uJWUH_R`{`c+rzxL_>oiF|y*n{l#O8l>9`#&iAKLf*m zAQ1cN`w!^wDC0NE3O7!<`7t2$ct z0qOUiE{-7@=X)>Q4mxBY!1h2vm1Xq;4UX){?yGG}=B<6S&?EGKal*a-i5%s*mlJQ? z++AP3--jbIwzW4^IB1K<$_YGOs!pfZY|6}^y8UfRz}C07&gIqS?{~~J-Faz&Z`FmM z+!Zf3cP?0Y{pG^NRvAlkeFa{hcq^BD?(mHAqF2>tcorP3-ou;L&?m5IaxwQ^2Ug1t zwI4G>)E0Gq?)FYqdf`#0$}H^o{nxSS+tr#D?%4gFn>lfw{xAN1+kaCWA6QE5;YpR* zpERway5G%6u4j|ujj4}M9ybV@pUJZC(EIuEAO0=d>?Ji{`9&bx{|TQDW?yCEcahE$ z&E)d~dR?`|HKHUXu_VM3wc6ch|B<>lq| zHMnr;nxL?_IAfRhi&w8+O23enlAJwb)=cL{l>jF$kJ+=L7(Bg;QwrHKi+LEtjw>+= zrcap2%4o?lLH@;uWxyzO)RvH9i{g0$bcbq*YeY#(Vo9o1a#1RfVlXl=GSD?N(ls&) zF|f2Uva~WV(l#)#GBEhHAYB_pLvDUbW?Ch>26HPDbBG3Kw{w+14U!-mg7ec#$`gxH k85~pclTsBta}(23gHjVyDhp4hg3=6wr>mdKI;Vst03a9SMF0Q* literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-83.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-83.png new file mode 100644 index 0000000000000000000000000000000000000000..9054dc5cea921616c4e4f3d0cdf9fab455a47fa3 GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;wmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lrRYJ32_C|3=Ah79IiJs zJV{8nyMO#e?|(jj{_FMY-vtERid|EBAE<+|B*-tA z!Qt7BG!Q4r+uem-EV1J?ki%Z$>Fdh=ghz~1TK~`1+g3m!f#gKLGN7^sAbSE3djN68 zq}kr3Kswsf#W6(Ua&m%#7{?(7Hun=ZZg89vkz3arzP28y=!S(#a^_$m}r~K{ytv$n z4F5klIJ}-T>B*BPJ9q9pv3IW=2ghR@n{5ULSu!&GEG&kGh8!Fm0s;b_o}Q7Bk^ley z-&V{g57f_F666=ma6e%Feuwu30_)#5D9HF%9|1}*CV9KN$Q5xZXahOyC7!;n>`!>a zIHmRfY`tv-6cR{I^eY1@YXGt*0C55kS0rocZvfI+o-U3d8t3m`*vZ$Rz|-*X)IxwOhj##_}m&u03gwr8sIbkVg+`4{*fyKoz9VmiZpNxWk%cYT9l+F{#+ zYiDizWwDV{Va?=g-VCoJUms3-nPW9W!*L4R1Fz2(txECsd#|uQT+5}iptsToXsc?8 zYeY#(Vo9o1a#1RfVlXl=GSD?N(ls&)F|f2Uva~WV(l#)#GBEhHARXi@gofPwl+3hB zbPeWKCgu1sT zsw{1Ah;sAtatrgDC#iT)iFX=x7;-L1;Fyx1l&avFo0y&&l$w}QS$HxPlztdIUHx3vIVCg!0Et%P A!T^mS!_!Xw5ht^a51Z7ZOVKyspA8BkdRkUas4 zE41b6-vZfro-U3d8t0E*yvfy|Ai#Rz*v**B|Nr00S*Y|}vqSGpt>uCqzss`^%$R>b z@oqz^Ji}L^MT}24gY?8x(jpt5$A$7(WLbDQuNUh*{k%=)1m4U&p1?k!-8glbfGSe#2HJDqOm_sx;yPc~9YLEok5S*V@ oQl40p%HWuipOmWLnVXoN8kCxtQdxL16%-K+p00i_>zopr04h1E>;M1& literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-87.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-87.png new file mode 100644 index 0000000000000000000000000000000000000000..495e3c52d97155ec5de91bcd794fa0500ed28b7e GIT binary patch literal 841 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q(FJe*4tJ$bMPeh#G|4ULayr9F22*FFtbZTZGGLV)pg#7%rEM%QQzbsuGrHiGx^7z zfG?AG)J*O8dP(J`akBDWW8Nc^Ci|Z6I+!lA=qwY@trKq|woN?gX~pRwB)5o1re3E^ zw_t`vT=fReqL)4OcbWdYmUrt+QeY~v-=TRc{NB@9PlVVMcdfg>A-!aesw;GcjCY6j}ENysz;%-B`2D9^d*I&HLmoIzcyRA;meM@TF)GRywTj5>GDxRiB zH~%+HIX&%ZU6o0|r<(b8o-&tbo~*c+xH|0N!yBu16rB9^>Rp+w?e&z?Mf2y0Hh+IB zwBxquzZ)ss^3~_Xj+{#>=G0lT{oj0o&{#7yhllc(VU_inAy{r>;?AJ$n@(kEoIGYbOKh-!&zL`h0wNvc(HQ7VvP zFfuSQ&^0vDH8Kh@u(UF=v@$T#HZZUa>QWZRN6Vp?JQWH}u3s0tk(l>*rtDnm{r-UW|21iy5 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-88.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-88.png new file mode 100644 index 0000000000000000000000000000000000000000..8575c84e858079e2abf667dc9d6cacbd9edda838 GIT binary patch literal 726 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv2w)pAc6dom^mS!_!Xw5ht^a51Z7ZOVKyspA8BiHW?F1k`0K^r-yc>X_ z%P_~&#W6(Vd~(79-h`B-v_x0Yq~z4+51u@__VnW8r_Msp#05lzu9*uMiiiqNcbGQ8 z#AwrqRfadCQFh_Vg$r{#nbtfIdl|8qL3)R(1E;jK0+VorN`s22ibGk`MAJf{ zZ2<|)iYL438Rot;=G{JTs}InfswJ)wB`Jv|saDBFsX&Us$iT=z*U(7U$SB0X(#puv z%D_n5z`)AD;Man5Z4?c;`6-!cmFODGtxU`z8l2tERRT3gf@}!RPb(=;EJ|f?Ovz75 eRq)JBOiv9;O-!jQJedkgYz&^RelF{r5}E+o@cM25 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-89.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-89.png new file mode 100644 index 0000000000000000000000000000000000000000..983a9f9c958a9b5dd534d2ab1ded5ba36abfe56f GIT binary patch literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;wmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lu!)t32_C||M8&z|L=2( zW&ss(mIV0)GZ?&2=$|jJ|NP1Z&i6n;#w2fd7p{y8U&4SK_7YEDSN117Vw}?Yf41JX z0tyKvC;F8El{Em_6M*;z5LYx(^5Ov8nPL zVPaqobZK+2{VEJJS+&G9q9i4;B-JXpC>2OC7#SED=o%X78X1KcSXvobS{WE=8yHv_ z82nn0u8pE0H$NpatrA^>xs{1IM1!;2xk{i0NstY}`DrEPiAAXljw$&`sS2LCiRr09 Xsfj6-g(p)%!OP(3>gTe~DWM4fW8{R9 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-90.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-90.png new file mode 100644 index 0000000000000000000000000000000000000000..c1cee7315f732b50bddd811b57b9ebaca61b9483 GIT binary patch literal 515 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoDjTPlzj!h5!c`14zGR zV3>=<1v39LFkA$S6aWomU`POqI5050XJF`OVAv1j{{L^Y;hYsv4Sz|HUogXY2M2@o z`|qDmcrVa!e!c3Mjp;xs#w2fd7m3-Kt#UvPdx@v7EBg~3F-~dyKU;5uv+q! z(K*AIwz1Gj<;D+32Nn%Iom2db0-RwyoO&HB=KK;Lm{fl#_^5@PK6-?eEq=m-9>)c8 zY+eiuyMozTt~^jas6i5BLvVgtNqJ&XDuZK6ep0G}XKrG8 ZYEWuoN@d~6R8Y(?c)I$ztaD0e0svuhiCX{w literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-91.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-91.png new file mode 100644 index 0000000000000000000000000000000000000000..17c34921ea46b629d7bbc66422d673d4fbdb4265 GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q(FJe*4tJPr~ACbCr;KTff_RY*?o@zmJO;#m_9B#-=IH*+C&ErF3>fj)vp{K@|#`RHPLc(KKM!UKNEetbGo^DH;x}asplLy>F zZgPrcY;PKR8-*AcoZHy%#0sC|1=^!p;u=wsl30>zm0Xkxq!^40j0|)QjdYESLJTae zj4Z7TjI<35tPBi(ElAf!(U6;;l9^VCuEE^O#2li*+3j2NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q(FJe*4tJ2vpe zxRT}bbfF=4ec?POs1&%jW|z~F!+-oU_602bfRz>vVeu%3ZoK9KwWf4kX2pa~43B|(0{ z3<>WY_BR0G`~C9;3<}o2Ki?3bFkSpxEl>etlDE5y>}%%2i9il}iKnkC`x729PHFu= zTW?zdg#?ll{eV_7HUQZZfOG(muHX!JnGB>8JY5_^G|nd{EMPF`GBQk_njk2eDqACz zll17#3Z*qV3I`Mw6%U?dO)L7`aCD~YK?flXMMc&`=bk4=r#xtGW7X#PzDnk7a`RI%(<;$5m|K~cLo_(MovQ?DkObKf roS#-wo>-L1;Fyx1l&avFo0y&&l$w}QS$HxP6l)Bgu6{1-oD!M<{>+k~ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0-95.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0-95.png new file mode 100644 index 0000000000000000000000000000000000000000..720692a0631e0c1347a9c17e7a524b1d0637796f GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;wmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lrRYJ32_C||09V;|Nr;w z3VsdL!(S5Q7tA2wV4zSizo9=M;r;&g=fh8H0IgzRO!9Vj;g{IOa1+R3FY)wsWq-mW z#wo4;XX|Y%ppZavqF)(MSp$$g0Z3;6>53U_+phrW22U5q5Q)pl2?sbOrp}FFk(E)9 zS+=3*^MOTd8tQ93_AnkxEDQ<{3FGKiti=*xni__op;MF0n@V{yim%ksuli}S ze(8*A9tjObhGcJ8U}fi7AzZCsRSO#Ng@b=d#Wzp$PzCC8P@g literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-0.png b/plugins/feature/aprs/aprs/aprs-symbols-24-0.png new file mode 100644 index 0000000000000000000000000000000000000000..92bf1147277d4bbb71ffd05fe4140773f28cbeda GIT binary patch literal 38591 zcmZshWl)<>xb~CaP~0gJDDK6b;9j6D?pEAg6C4T@D-?I0(kH?Qet>yi9; z^=}q+c*T{1e$ki@Cr*f6KN-9 z3zSeBGU8}4Xu|+~UE|N=ZD*ZkWNXJVAt_f6hPxN3qTZ+NcTeJbEAD3~WXbQz|2JGe zuo9zyTH+U zoqHGM0rZMspIc7`@|G37zfvT{?@<0SCM(62FK)MKP#;cSyQv`%jCI>q=Q@{XU-}=l z_Z`6l+uH4XJ$A$;0jh3-IVom;^7)jF%fFssF_L~Pk8IVCCN^1&9qKPV#Ge=o>lKK{ z1AeyPxlr1a=UtM~*fd+>#q5E`D~2v^sS!X%O+2^aOwxFQjIH#$40kvoe^xo>xpYQZ zl)7DA-BTY6E+w~(Q@Nx8qnP0XXLGW?8pe_gAaE7UCtgOv+>Q@0^k+L&M%B@@?=t6$ z?_q4*>Gw0LukGjvfA*a233`ovx^sh4X>SggSmigSJ&uq>5QB3lR00>AN_dg{H4ha0`z?iNtIVD8wos;H zUu#7e+@uJq+6B+(E=|j{u*DEk0ysk^EOVo%Wm|> z*xn|rhJQb!z4y;X27yeaoX?zW&dQ`i9FqMLw1BUiMx39l_k8vbFg!=uwQ!PrzA(l{ zx0cB*rRo@ZqF*zRY&f$pj3vR41#B*4wlFak08pxR1n2h!$6!o{GG&Kax3-mofPgAk z*UB$arY%V2$72d@ALTh;RKFDT39M?Q_i*MO>;BUko3;TKJSxVAhb$CGG&*bzB@vRk zmBG9cT2UgsnI4=sz@?_F{Kp*v8iRH7V-%V3v>I@R_TZ`=ka?|`?_cgSnX_(TOqY8% zn*aKm)SMa_gZdbnl9>1skuVX;Z8nAZi_|0_-~IYOZMN?;rmH`%=2LZQjE#Pp^+m)^ zetV8d8IjH-sN*NBdJ+mU*P& z_Ta?Hho&X(aMMH+12u5g&NV+VFwg>9Kk6xWO*wuawIwKPcDrePH>3!l+c0(8cV20* z)_Ag3{Rm9R!O<{`?d(~hqBrl33m7w=@UfrZ6-DNG<%Tec-gu|_m5V&aF)pNacv z#BYrM2{)~&Lq{rJmku>=17T?Fs5s1!b>4)4zO7{A|1_aXY+VVe>A3upwId-BUc#Wl zbABO~qTJ*(Ss*8u<0Wr^2vTyc8MfLs5={-gpm+Q*pp&c$f3hA>79fi(AgoDA z&x+N#Vf{z$+`DPhF9r~Xe@T1!6b_9L-CM)LNATDj@WYRuOd_nkC23RT@I#>0C)Fpd zSEQR<&bCsYkR4-+=*K9Se-SV+i88|Wu)O-*AKJg3UILP$ayRFo9KG%NY z@^nU#MHk%Ic(cGPkrEMRt)GQYGqjvXi~FV9*>wqrl{-y{ke z+VJcBfaD(>t@$s8eitG2nzDduKa2=w?MWO!0vgo1YTC?^FdDvrioqR17aBi+Qxhx+ zf`02?=Tax2W=+0-2rVy^adxmDr?3W9wV>y~&Z#!%$QQO+u2KnX<()L-LY&qN{Y{hMk(budL zLHfh;kK0pw;Nn-e`(HOB$YDdtOnvU-;*pkk!1%zcgr=RpiShA$+h`FI5Zan5cn<(U>#K){ zIh4k4n(LS^dv;f+bd6+Ps78LAjV&}gW>epcG*c0UcQ^*qw{+PoT(VhZH~5cd!#;&sYHCADPV$&-5y0?aklX0+H)$-}S+B8=sUnCOc3h4{X`?i1|c3dwA-n9@u! zaD)U)u?Qd$v~qF#)wEp_l^@y%bA<>9E8(=P=3v~ddDA@KeiJo)zP~trtT3sPC-BjV zzGLC20_cSOc4EF%sJt2T|2`sA(7Dj9(`4UGLpj4Fpq}elE+CXw6%sfviAY@|t=GpF z8>1|1T$u~6KctUBC^7uG+bG|Zr(`t#g7$V#gu&Q z>E}s6qZnYZ9&~MklCbz+25I1A?a>dDAYri!L&w?dkk*&Cb`?p z?bAIaCmMpOYZO{G7&23b*mMwo>Pk3Qw6f79yGQeqvSFSF_tE)D9s1)O9)1XoCu*#U_;QYmK0zbm zQybA#F5cewbG4n)v*WV1*2QNdab3nm5xudgDZMAR)1nb`?e#9gOdHl94Odq}$1d*r ztohz2`!~|Qemd4z`rNKe{mhIj9)18OtEarsQc(KT`gqjYZ?rB+OfSz-_Z#-_JmH zg%6ciG{>fr{Bx8E3V#wz#ZOdEZ;pZvzn0;FAi;+~iVn~XL8jkE)QK5acdTia@(WG( z*oeW8BOWV($)oaiK?ChxCsUsu2j14ifH*jS?}GyDhMr?itqp4)26&fvt(&bkc%6Xc zb~iIU#N|3g(rQiA&8hbJ?Uk883HJ-yMJcKM!LqmCKEVEl3k}Elw2Ky}X9a0QP5aZ}V~7PBb`` zYGcUrynSS;zw0+^s-m5pUE0xJAFib3Y3@ncL#{&&`6ZkAd{iK2>LxTQ3$d8 zQa%IsgbySF4H&rn#H5$=Czw|b)M?xpkNw7^GGl~2`1SiNw@v~TNU=en4rSCt!nT(D zUS6x=HU5w>1c@|r8qkjvSjTe$lm~PLC3#ZAy7kXj=~^3Pr`A`o&R*?9)$D<}gonWy z%kuQd?GtJwZ?Si$MT_rjserOY8oGmt?Yz}p%TAqIzL(od3*Au3tct4ebY5$7n#=I& zYW)sed{@nV9#D&WQl~U*10ZerUgOzMT8=2nUJjoTxWHrFlW$>9?L*} z!y!-dAhQMdRnwG)vH9>C=Y@>_+hSZ%J=?vdPgZAjsXuR22$lcZiSJ{$`Ul zLkQ}T?;@Ya4cwK5pm`{_xyHH&t)2&(cRr_*W|jq3zLuwJo$pHGE(VTsaCim9=KLFF z%H20Wv5W2GZR781*&_V$a7i#2@I^JZ`tIt=; zu-<=`Udi@UO}X(+#_HP;fam_vGvjC6Ajcq6(?e3@@UOMuvGqq&e16urItvMoU^Ft+ z@s{vWVqS`*gECWkP=#oi(Ux|9QY^C&T+lctoeNL&*JbQKC(;SDQ9l1bwoh%qSzyn! zj($}@${l0sJ{oyjuTGc4T5&6{*q%Iv(uLDe)H^``(;JQsbjbzT^`TS zZaqG&p2#q|I){a*AvaK77nkMnAv1)YoXfmVC>tSlpKN8(&1cEDQUY|`=2}}QN;&mq z(|;*>a57g_H!FPkum{jbLI*2Nk3e`aSolyFeYSchmxQ3 zc4cXhf-<7BK10!Ajxu zGRZHJo6I|dt>`En3m_mMh*GjzTwHu?Z548KbgT*(PUXOKdtouCV)|ygU?9~I{Aj1q)e(86Ne-Js~k!e27@^!3AUBk=tpy( z5r45_qX{6<6vahF{e|oL8XACyhX<<;RMdau!h+}S&9hQ<*P}IqvQ@^jI@GU!2OTSD zLojkh+;J~s6LQ4jvk{D@8w$Od)uDY>r4gfU>!O)YLIfB?@b4`zPYJd6wx?*-Xb4|S ze)&s|ep`;=GOlN$r8R!~wgu2@ihoEBA<5v2hq&ZLT~@Q*_daLEUL{@SL^T}b3yrNd*63{QqN zc^1l?t9vEF)Iv0G~W(4 z08zJ%vRyG>VT82-dT&5>+{h@ov+1$H5m8a`F`hr~PJW_aUS8^U(yX-8e4`e5(`0>^ z*HsQYZQG;f1!@pYTt|Nir~c{xb8~RW4x&a;-Fd73h3->mdQ6(}Uk! z<4pQ|Z7rsC=rr-R2E{Z*pP#$%>jSV#K4dFzA@LWjYD(K{B6(Rb$malj2s9>+jVsA} z*+GLw96BSp&M^R4zm)!nW$XA#C#tunbSXQHF?<+*v!$?TEt@ombP4m^qn!HdZ=Uw;fNbbD zMjtIZc0;LO#>h}uz9z`ed7dKNiw zW*)1SX+|qZ-#OEHTCWSL6QSN8C;`=*j|#+(yPM0VFFV+-m4~I?CH%P98TMqTh$M+F zB$n|VU50P2p`;jgaajM{$0=Cv#t}2fPq{@gZ4c3kpO669k!1<-(1p-zjKyQb4!Nl0 zrK=w%-h*Zk#P;*mTHk)tysmdJY(FH)lO5?u0`nE~m2Y&#V~5iI&v@3A<rBp|z;z`6$>N*DC7iF($zo)iCn;vL5J zQW<6Zl{`T$;U|*=UqnKZJ=(K)jeqO>hX4%ds;d5z3!qI6TI>K(F_xp4|I-urL zQ7UH5PCRRC`<$%hkRzyDk7ubjYdo_#9+DfHm)qvHqx^7vFfHdyw?QN5L}~Eme5U+U zLRMCQ6b6K~;KBbVjSEh0Jjdw2j<7k}SaS}RGitpW!X2H`X+Wgls*WYd%!N#ifw7SG#RQ(zId#CQWs}1`RTzD78w~D zA0PifM>Wk_(@5oLVnWl{-2CmUw1GPE@b$;8bb*mgtV}3(Gr92kF0PG&!NY6&5ketJ zGT7HR=jw=diq5e2MGW6kWE1lby@rBX*C1$nXCrb$J~M-gDz>!r36@!;u$Oc}zQ>sU z@^*+BIF*m(F@ejm(O2njmVh~#_5-(sV1$h(>HWcK^(fWb1}Rq*hz6O#-JX~!i5kLS zuWH1m0X+P=x+?L#?GrtLP|&lG=(o7IV!7vqkZ_N+@o`)c5fPg=aC>62ze*Z^d-`R{ zqev`iWcn=6_dIu8+LRsV(RTm(o+l2ODl1{IOI3ZH>Jaw_e=NS#N4N;5-kpsC;#1tC zzmfXChi=Tpci#xW-dSBPMs2eg-Gud`C}$_-l8p#ML*EZ8^+hT5_V|IS>~q5^EA-2*OHO{V=j3N=s&sAr z(LaAEnx_hWxsSzCC1e&Q1b6M+4J5_GsJLoDP`^nObi^2vCnd;=&hAe`0yMlReAc zQMv#Qj~S~slcd{8!Y&Oye$Nt`6 z+_gUls%5K-cGJCS7fTDQBfvTS@BGjpTT>s?Oqt<&|7Id4`djH%n~bgP#Nk2pN^;%n zO58~Y;j(HtDp>Y6J}A50WH|dSMC^(k&Xn1z#eQ@u8W_~nB+!CO7^r};DAlLUu&?P9N#IweVM2Z z?KPJ#dP#1#4l7ESN8B)$f5w)WB1p)SkerB*KG~CEW45Dj_O|wj1I*EI$IalHElC0q z0I!O`GTTY(fDbsTtn6W~i;Fpgu)G7p`|fN}Ma=Jm3?7i93+IJMs>7xx*s(K|iN#x% z8Xg>DS$bFKWyM3od(Xshu)y?^n?pSm1u48p08IUfAOzXIJ_^7JSmTFlJ~O8GNU|IV z<7la92kU2#d<;VTpx!YtG#r7iP4UZyL5`{jgj@sCs0w zvn%@9f4%a zsCO_6>qm@yS_Zt(mp`~B9{y+<->d-{*o|G$6lYb53%+3kOh;ceOB^NEcN} zNs0bUdeTXYvQm|H`>zAly%W>CtVq-G19*_k>5xSj3=^gCC-=q!*){}kcijqj-}R;# zjRVNDW}P2FL5e>0>7z}?vTTuN2zO${P`NTz;$tbQazH*!6Vzzj*0Hu9S3h=jhFOsA ze%PsPCw0bk>o<$B&n8N#qSf;Zil?{OZ3}cHgBdG_|2>`V%aO@y;1JjAeTMliG7Ey{ zvIa_I>{%=9@ro_@g|gr%Y3%3Xk7D+Yj2!HkuRqi>BqZITJ9{`B49HNr_1<4Bq<#Om zaD;RB3khe}{a@O1rRZ<}APphmPNJ?mxR7Z|vfvCsAm@N$|d;I&0jqe_jF*rgT(>S3nsHd|NC!i?dARU6%$t8hJoyyyYWzxp%@B^ zNr6`o%4Z!(OD~{p)2yN;T8Fkr=dW*)z3DE1(!X7WPb;Lg1#5lp@v z4-5~X;cLbnBU((h%zue#3wrkXOAgtH#R-L51W#Dnfdl~J!EIT`INKkxT0;gE_1+`awZ9Lo0_?FIX*-F~(N+-+>0@i$xlBbQoPWCd;*EMEhjO~yW)*RM3^Cz~%@s4E zJ8|^=a+Z^g1(#>8uC4KKF#PZMl8=FM#T(GI)QlZaByqfOeE2P6=sym-JNRa8`>x8GB8+u>r~a z8U`90t6a5|*CtswwQYli?*VRiVqceD8Ghv5LaXjDATF=ydE+j8+StMu!Wz>C77}~d zbl?d=vPaFzxL-s_#Kcv{S@ZPH7^OGtAMM7s4dS5A6APt~2wmTbJL&iLvUZd4%Xh zd#iwNqt-9zc3rz$*YE4|#x1L;+Gny63YhOKGV@aKgIN{^xzy{ zeHuw4(g+!6G39n>a4?vk?Yqp)!Xwu;()&q3xM!QjPx#Z`yEx!-u9|39UExH4JC7^q z=#}lKRb@B>qvHA^Qu!o)j|b=8`DS1Jbg6pG3o4zEFi5oH96Ig>Uzr`E^XMwS*Kd59 z%;P>Yp9*8j&zK+7pY@#WopayVoQiBE_!(y~x?<3lVa zOh@1(S&4piOxJ%!yr=9}L?Md$Da`}D~jN1#aRpq6}yUXHN7Vh1<*DkUuvV~-b*%@@M0w+Q;f|? z&wY`59jawb{9TpBEVOTp4xkd(T~R@(tXu-V|K%4CP<;Affiz2b`SoZZtI985Z%bX} z39S@;&!mSPq}yy@<0fcI5;;T^Vv5r*JdJFvukj?8Lo7Sd2Crp=vXBXPjnv$R7 zSpNXjOT}%})E_>%tNV*q)#i*CZFW$9xk2MMw2}2D3L4T9%Mymrp9B)IKkV zSVZ84Inv$K+WTB!)k$>j=s=3JuMlDE##cI+8Z-eIMK-1^$tRSy4R~ySQa{5p| zlWy8qnk(GzHwZDq6j#x*t|it{|ErtDAw^IhAO#{WA(0atWNppVfV|Z1w+SEm;(dwHrgGu-HG9kLwPd ze!lR}FC|^@Eu5tFdHlwBo@-=0#t!3Mm{h#Fqqt9Aj$DFc*{lZX{B8^ES{B;JybRHe z3=A423@$|m@7~Sd9d>G;i5M}RjqTUDxL*6cqLiv{N(lPRSIHv5>4}L$Pv6raQPeP) zpGOdpkVt!Z3An%D-6!)ykWGa-H;SIDxtFZOa3guvMhQodu6@?zwg%c^%~$gxi||?z zvq*FdX3f5saOwSBL(x7%Nf3GCC5hZy$ix&l>f~E^Z4|enlVXGgQv$$-k}o5$lmY=` zcw$4+n8VPtpXbzXw4rj*6nZmQC|WZqN2&O0-5tG|g-Kdknm+86n%r+yL1Q8kl~9rdQ?`mRp0H1YxE|GslEQ*YPMS z836^0BBgJfo!L4pcIpjF(epZGP;RX2Ub43NUf}@x3;9OChiOw6auV?JU&N#upy+|{ zKDQ9BJ?<@S*t&i>jfqWZ>DIqHZw5#Ef-nI6x@PC-_lqx$s*^OV+wwt!E>9K?y)(+0 z#|nogHP;-?NG(Zys2QRjNC~vKk{@qkaAb>l9vX>#-wvy97`Vtg{I&R%HK=>7-ma$k zty!KRuRCoj6!$IC;Fz(*b_SEQzT`huu2{OVEG!Wq2beVOSDpvjbI-W)oPEt7N5xXh z{f+VsK9Q#=>`d-57b-8iGutPp0o%xqgmDqxyiV`AN|-!XN5RpfPUC)8E1Ty^Hfr7;HnhQ9Mls1hw3jWIC}*x@}8hzDA*UI>&@Ousq$O)UH&l7wtoCDG3Tm6RwQB<&E{C`}&Otkg@xF<MpIJ853yXH5c+tl{sl3R~ zi2Eel2v?ax)QVe7k{`dq$*Y%^~%3{+koyoFUt1T;1dH z4y`R$bmq1oM!m+InwG0Qru;AO$FF|Ul4^Ka3%o^kGUg+j{t%XDJK>Wh84Q(@;>g6( zFzPfN^sSKtvD_!BtqRw)P{n-_1R;1zPIPo6Z8Q;10z$`aF-ma{MBEdlmR^iMe7K=@ zJZOVcu042oKi(MW1abhx_HGlePQk-ZRB_hb=yGMrc6i5F`7}K}^QagJg02!@OnwYP zxP^q$!r8w(SRYV}AT-`f7<_q05Y_lC76t<_g!uY;dkgY+c_JmQr-Fel8%!9X8tVdS z9-7#VIbS(X;}Ks~>0eSg3@*3+{#DkgHe6g;SV)_ko|d6-YC-|-PftxXf+c*FaQmzg zOBod$%_Pac$Je>eF2XQk0Rppgkbi7Eb40-sv7714L(n=s<+mqEgA{4(T=QnDs{Pf2Ar|snE_PN>VJs$#lvQWukPkrWLCWHD;EY_>rjuGk;|n#!wXFVWH1aDUxc2`9G)0)kaCydkfUrI8KLvWOK6_ZJSnRe7~&#T08yh-QxKiP8qdz@B$Cfdtw4< zUT*Tv16fGUplN(w)1`82EZTAaKBm^yxa~OrkTFrYctib^S_Q-%+I8>x z3hDmD>tGx5BRYJgKx<)^qpv>;6!P2o?`_XmiclI@(9*+o)S-LyKJ6<=Zdh*0R% zMU?hSQ|Te9t5N9D@sYbp@POJ8*{(2xFfRVL`@c*G`8RPlXt)VQmL(!jtHtps5^>aS zpy95B#u0P7-uWu8{AjKQ68?=qyR)B=p9)R{uIv^=aziOp+~G} zi175nBq-skx(qb4oe~rjRGvTZs_Qyg!^X}p{es2SkvCwC4v!8`z7Ph{{klC_wq*|{ z8C6k`RtmjhRz$v(d3@&^`0`>$=N2T4D`Rdbt^K)m*h7b=ET^F0` zfM?k%j&r7@r8)}*>R?HHw5mrXTgYFuTxvTSWPedvZrDJ!(Q4uu@ycP{mq_HiBq99X zL$<#Lm-0*o)_c#oh`$f?iu8JT@;yAM-ku?rSdei*1ra*(r=)uj&?yOZg*d&K_u{ zQ9jDPcWS`1>Y<~fBbBGW4nJ>WNFyX6p&jVA9?rtASvfQ+rlIh?<=GL1(}ZHp@VuNc z1H4~N)<+&`5uN(TmkuCzzf#BS6RZ1f+^78ZnsB+G};pbBDtrnGD+yB6Y5Pv4Pz&T%5Kd{XyafhBO)T-3oNM z3wWqw>|1QP*&ELOoE$dy%#^Ps#d6!7pCA06%1LQ%kR5dqV!G1GjfTdgZDxR!zN_mo z;0E*Mf&F^no2m9g{0aIOrq?>E9?I>r4wdj+{Qn|^6EGX3PN9qJzJnu`U@+ZcfV%&v zybaX7kOW8CsTcLW+^O-hkS=((QfE)k8C?ds*89xZXE)uNFC`^Kudp0$;SY-chy4l4 z{c(tZhqxSD5lP$RyY5(N%5PBNZL2c+i1z{{I$yv0buA-Jhspf%&JH?zQ z?zWy_;%b>MHFKdCx9?+lbY{O-kL5l1e3@qEEXEj25v*!*@ga_cs?e5)u-A!&gmBO~iNW(C$ijhP7ttkyu#_?WfLx z;Xczu9-x3N&eon!*>p>f?Na^sWC!|KI(lF!hA(GF=@^WVK_o3&Uq6IcamGv}Zg0TA z_>*ezk{hg_{umf>wP39pd!Ll13TZ!wgiBn(B?zPGaiu*pNCU?oa5>{Mb z?nb;H4Q>3(I6>`5aXqRU6Ed~V8McCp6Y|BHV=&}7?|iR8s*@gn%D94Woh=?S+=zN%EJyv^U|S*1X`lw$p=w+bPWW*URMi6Egx>AaF0fVf%-+KoS{s zTHD+7b9~#og)*3(rY3YQU5R*+KV`Ey+8C?KW;!C|pqK`~{P8#dvvyL==FjPh5 zLC%b4u|~%jCq9T6_%%#X$gUz(PATZzw-&db8qH?^AYx%3Y-6MHF=Rd6t&wahi#8Y@ zrcqqyo!8M)=fA*T-c5vw7;PEWWL6GJQFW}EZ{W1Z$S=Z?dUpHJGqm=mHcBl?yEtML~`y!20ju-umqL$%ay-w%N5@C>V!bWAr~Hj+Z&F+#nine(Eu%IyA8MG71vY(`M4eCbyY106CW&c8UNhe&CS`bf5vNh6<^O2i@aKC&k|aoah&_txZWlW;jJ=wh21dT}wE&NmN{mrB_N;I<%0vQArPDZBihY+GJ$AM^ zsPVTysC4(~J(tpw4Hz~FcKBpN)`gdnG%w)B<%5B>_BoQ;A?ej&$CLZRUo6dwE^cdW z($9fj01?m3JXd?9>$KF~zr^!BaF}G4*a2>kX7I#be9e@k@h{YvGZR~#r|WnO9*-QG z@KQuq^L5X%Q~Qk|uGqPF_Ukwr4gB0y;YrDms@!39F8 z>+Hyy&}i|BLFF|$F)N6CJ+vcJUtLckfI8doI?HlG;%lT^mD^~vzTvVMTYi%eWc1Hu znhEBfKzn?QP4H6!kEE{y(QZ-kYgsQ4?ABGmiS)4U*tg7%lnKm+Lp5mcubUXlc}ZZa zR>nh^U{EdXm>v+9iFw0%lk!}YK!ryU8>#hOs;IG>X=@@N`A?hppEprvD!Oo3&6yKA zHkCx{%Gw(0=H{pJ!TaiX*5xI#e0`@RcQf?7!$9oDnYlL~t&~|A8AR6}|4tNla6S4m z4l=qp_0dRhh5jLMqU}%DDV9;5JHPq)4a}*^n{G)E-ESwPMeW)_<#s2g1io_MIx)!>ZY{|#WilYO|M09SpJ4%j3Gdkc59zwtF33uJndY2-5WktRVo&gFnXen0I()aLmEn|;k9RO-KAS`mBU z8=1nXI0atB`7kiMeMu7gF=;&)6-G01{|4uX!jUEZTNTViRvX~c*jYywl<)S49(2B3 z(Q9yg=048f_d5`DBYXs<6s%MSH1;*+0`g%!_Aoh|MR%}h@uu65m$qJ%#W zso#?R#^uvh1WYpMGtHmT6s<}Z+ohfCCUuND9H}BKq?Ub^AKp$s>4W23h$88VA|I04V0?W9yf&S+;N!Ye(iU8 z-fqX&!!ezI9d{lS`h08QkKc@5vi1sEyGttM`5Gz-G^DkCQL3a4i=JQW8S@^k4(B>| zpVk!jP@C*a^db+N{;l`}DIrJ5bGA_91#$I#kV4~p4jzTCi@scLENiy{7}Gdj?{@j> z;Ar>Chu*>Cj{5X$vx?h{4%cIYoMGInq*6}Av}AI(@MaG5Fgmza&{a!Zc=#T&Q_xu|;X_b9L|L~pld64EN2?<5jH)*NsSoUw1h zE7yRNDl6gwWT{KTIFUV|2rQcH@+Fx;w@)`AQslB!-@{bd7^RjXS6 zJw@#=^!kh3M62o*XI5oTGb=2(WjI6k!R(dgXw{h<;e>Bn`fww0u-j5@$yXoGJh@M+ zEAviunZmq0rP{f?{!@|OF1QIAkgGUw=1;w!^Qhw=etJ@KIW@#W{(u#JhI^J?zY9f_ zZfxBgkqc9Zpo*H`9pLEV&m;8=ZJulE;r1H~>n+z7GoDBj0@{M=o54#)f7-k*Ih&^| zm$DkW{`(EIaq%AXmnXoBg5XUd(0I9@zWoxgA0tJgeJr>j`47T%1{|5g0pbCfVqo3A z)P2Y8F<`F?{yyqAUsD?B5B(K-!7*lcgq8adZX-45N~W@g1)mmAuj%HR{DZS`1b;V| zz9b*hnb55cM23jC&{jSm>{SN8vQkQ4w~L;Ta`(imG}}YUKXW2i5$6qBesm>WZguTI z;bvC(!5MBb@U7faglbkU7-qkh4H(2OdX*n$2TYwpZ}+6Hn$&X#tpMt9E?AIkL6-QH zgByKpW)O%^ijlu9Cxx&?F!CcCu}ocilA-ebNRyArk2#ib z1+(c~bB1!K?Y_=Vh>)mh2xBtQ*r55wj1tRnnHW;wUPNSPziJwCvRd{8u_M4}93Yrd z)~VC66U4@^imnFAO_$*2=7!HP?hH29Tc?d+IvTNx^INSWarr;eSeC z?-eg1I_;u1wWj%FQU(C2RnfY8%8yGWPY)!!V?TNzl8-%IekWt?Hms-7{R6OLQUjf4 zv&u7YY$s#i88&4rC!mPtA(D}4PFayq_U`;_xbF$IVO^Ke1NimwX&%M|FFbcoa1z%oBs60VSF? z;XsgXI|tMwA^h;Ybc8Lg4k({8el@i}df7Pe!Sa1U^mksNCbh_K1lKUN7}i7k`4-Xw zo?px^)Vg7-_lql3py^(}&Aj}#_{+>C5_l!wKTxlO1lN6tdS(3cs%h~gCO^V^k@ssP zfqV37!xYV;sP&&OFMM$~tm&Er*WVL^B>8or^^Z+h? zr$C$kMQmHlLQRy!i(@@W5*jLHYHi4;$Vd@6YC0557o=`H3$_mfj-pd5U#}E#e^5CY zrMtv?7vS`2>twHNW?~mEy{X@$2`nknu6$n=wz6{cnPPO)JoBH_Fnsr0mizJo%Zb_z z4ZjRadV|X_Mv>hV>30f)TBfgZDKTO^Xf4GIKM8;0cMsDLpWjqbZ*L};AuQKr(ufgrr z>?Hcx9+=lsN~2vu6{<5IDIFk7+4$$D4Ae#vc}nS-ePKEfZ<+u#A3wjNjV1J-F;|Fq zk~x{HThXPk_+b5h?G4eMJKn;qFTfHg^d4QTO!a&V@W$2NK(7e5&Ho>3B=;>*kXhrO zz8`}GS+padAF1gD;5ixQ(G%wqTT6Q6vDA}BVO5XB3pgiqACNL=15$Gt90I$Hx1V`B zmQmsMtH=ig^uc`eK>wGx#v=yV$d6tIr`93DOZe)kRugw%ckRmPmT9@gvjpr?pKt*@`gyS6>EBj4V6K_y`~{S$W_ z(gq{jEYyA-o>z`+gAIbff_QSE$=9Nr?(Z4>D^lA6KOgIQ%^p7Nx#+rwP1lpfJWIl^ z1({9Qzz9GMG%Qek^hVO&(NJ_X4zEiW7FYI#%`(fc1kL+hRKd@=zIiP|*ORCr%@;smws}zhj4$sS zm)k64^TODP5$B(B* zOQlNM1f5x@K0YvE!USDlU?BS)*rp7qJXBe^Y=$W+2;kb<@e>Tal0a8oHHra{R-57v zCu1IZ8*U)OB3LVG1%%1`*-T)P*9&&p8U%Jq`?q+f_}d@Pq9q=3;9XfdLJG|arWwM6 zn#Lm704uZz{&vS&Nb65a9Hh}ZlH6P_`-u}L!pV~-@&D%qcbNXX z5&-%83Ea)@?%Aab;7M*i~anV5ZER6#Q&xi>R-dbL(qCQnHeQ4-bAx{wN zraL*k+i5e)3wfC4%rBDcIg%|o{DaJN$plDQB7t@Lx}dK&5F$f5L1GGma|4~=dxjKF z3GCd4_C_MAw())d!F2}cGl?})eSKp9`1zWk4>=+#q7QoexK>Km03)#2SU7k13W6uI`=vdZ{;tEMhN|FmkGlDxc0ySx-l-k-=DO>u(M_v8?5GQhS^;Zv=0n9sJ!s4HaA)2kcwV=|mJ7*6S*$z8^_6ll%R>pf zbeJ+;bqp(l<&k;QO*hHO9a~aTVnD54Mw-1dLg4@ST81yRx19HOp4r8Y9O724VXjA$@)b_Kzi zbK#`*YGy5;TOqx4zTAZB@7}j7^Cu`LP(2kI+5+HcwIB2&&b4+hABw@!?Q`Cd+07*& z(86~`?2ZG_5)lFsm_tSF`~OFc2!4M@=d8eA$%7cZ_loxRb{TDaPD%qwczC$o=LO5a zNhvxWG%>r|Ctw(0&S^ht?>UD6&07Iw*4|$M_;1LZ3A-vz+u~=9JM~Q~e44n3zY?L- z$T-cE@=SAL*$2WefjspH`~t4!x=j(Sl+5j4j&@+JNO_*W>5zQMgog(lT z{Y_e}R-;rZQ`dhuQ$24+14PR@p#EG496T0-nj4!VQSi^({${N`(Ywkk`+SCMXO#iE zdwij}HH?wPg{+%2H{Tk~8*o9mP(F)sfFbXPUms|&mz!7r9L-9+Cqi0tL3MStS&QGZ zXU~Xy(G@2@HN@R;AQxO)I;QOGM{}HQ83on^FrLN#A7(_bsd^2(oLL^T)c6kt9fcr``5bRaG>u=!e@sqGvN{e{D@Zn6ihu03}x72 z;6~<)NBu9zyIlh>Zqh?kXbH4M$-xwXzoZ`;$P?R%TE8y>zoZpSqk38rI?K`W4@d%8 zNCGwckHls27Loz2cIq^_c+DVkzX9)0L(@L*%(*D4Gd+U;Iy`UFls}(QKqDzM&khYC zJraQ2xd+_$|NlsYG{?z5|M}0$ue|a~WmJ^&3%eaVb_}LYoyv~Ua)5pN_8E$ci|wvu zgJ7;f5|E3yg0zDQ^q_GEF07!*hlFY@Nr2`7JXp9K)@09z=W}<6foGAY6*wa`HFpN* zfsmW?+_=%5tn_XcLDb9m-@GA=0>lSnl_R97sV%e?%HMmFrJmiSLaI)O_yjqe?&QOP zyY&#zv(c8;|6eEGYL`y7P5ibJ_D+pt0XT4BNNRX1z@-gfhJB@_*TvnAPGO)4m;Vw% z&kZ%y!d7i|_-vbg9~^m`VeXJH(4?d!>PscFXU|q-XJ@{t*(ui0%j`LI7$P-4NvekMy8iD&A^c2OhXekpR3=PsvCC!`kmJ ze({TP@Nj|{4GjP5U;p|^;?AxQ@6Df>5J3!E5O?uY`J^O*PYiILH*@$&$-R=u z^Z9i&*1_CBuDyRxqzt?;E``ADbUh(ih=I954E#y@`};jrYV?>#%}=!n*Veb{dwTk{ z;GKZMF&UFF8Iv&?lQ9{SF*$#-$lfIKF&UFF8I>ZDNEDbK}*?#gBFU#3C=FyUv; zSZxdwVZ$ZakFDT;_`@F*MMXuWD_5?R{ghsqD`Nmk7`k|&7R)o(ey%u_$QL2?9rIdB8DB0Oo96KEmfUpZr_W1GR zWeA{}=JGFTUtfZ10Sjvz3ui zwl`a`l&+3W=Wk(bs70;` zlku?aJmsx=5IWmPfsf_y(DUC{1V0Kf@ew>GEU#oF*7>Ktl}+r%Y;2T&@WBU!6Pe(Z39F`j5MO*w@IYWqv1MCwog#vX zon%>UgpYVvuPyu3W++i$;v zWj+mZxqPy#&lC7hnL0D?Y<->G`}%tOpsTGD`~w1Q-V+)UN(7)ipQJfu+DtW--_dKEo_<|vgQqqWH@DnO>uu=nru zJJ@~ve+sWi=~Fs;zX>E@^oa&;`UEK}5_6ImTj7_hUM{%3#5qMkp-?D){p(*7F2IHj z8unD!tfAsKPRwbwO2NtGwchE7?o_^2;p>*Was&_6mkNNP>kamx7=n8)4`ct@16e{82mJ&cMg<6-^w1APR#Fv zPg;QOTX6&~fwrJ5=rFAYA<2rr{)8TeuJu%5p^;NsXF&oru4K(Ip*aF$`&m_%<9W&&%m~?qjo8h zOXtYqqT-zWQlsxAFiArgjF}{U*e3lz+J6Rm8mnsl^u)(lKZ~6!yiCUWHYM6EkGBdG zsMxw#$0m2$KL3m<%>fArD|nW8lLUNifweXGfArBuv^)UtAWxf&5b#4-SQxVo)~;O( zH{X1735ai4QL0v}m4$_cPOV?PoR7WFw&QkkWCaMbR;j%v@noXo6(Zp?lmA_c>l1@u zzRVxi>pLJoH66kxg+pIwADr1%3k|#Lm3)3qgA=Fif1fv4hgD_#cj~>V{qq~}p^`S3#z;Bp@|5VYeH=~k^j{yEuA$Q$%7hA`JTtTGulj{d72Ht)5U3l)f=U~Q+87$HD*I$3VPz03C;7_~K ztXnsH$@;6%L?ePy}?NbVDbCzibw_ z_Ksh$9}$2{Wk>M0p1mu#aLsvR8Id8{|Dem&H7fvhBZ!L#c)M&vjYPE?ZgYkNB*sqW z{*h2JwZVx)`h8orwrBnJ^|tSBNOY`Fbv8H4v*wXhr~CeQ?K3SF_ZHWI&(USy!?99=Ib7?p3G4oxi?}{eSb%2Y0=?_R58f03=rA zv1~rb3H+y}C$U5#9E+W^b=?^P^A-Wv25_q11k?f}d2KL~{m;F#K(ri_oFIYWjsHxO z5ssc30I;z<0|7rKy4DOs2W#cJBLmeRzc9Y}rmJJ}XC=91g4!E9QSi}0jw}EL5&?B^ zjrOW>S@UFmWuIR;PIpy8pdSC%f0Pyn-&_-K27hk|g1-X9*S<>P-ADyq_?jWwzq!(} zM)MR&1EfT)ohzu&6UxN_3w} zC0M~GTkUf=SqJ|-2f`jmw_&XoI@Oo0HFY7{M{xUaY(Dr7De^}Ed?En47qx!#bs`66 zn2=mZLZvrjjnMzJ%MEG&D!w*o#~Vwx4_zl8zEbI$0>60iVwL4HL>{YGuXc$5OuPn7 z1dxC44e*y&N?Cf~_8TC-coY1k_;YsO3vX~6+r0kHwn6vK$|aC~&0^TRWjC0J0Hjjz zwuFb+-yE9=%;+TxKq9)9+M{xT__MQ@V_L?kDJ4IL^77yC?>q@gOK)+;*FLO4KlXYT zJoZKxAQ8yF|5IG~?(CRm1pIPLdoY=-fuG3YhTpe=^4?a+Deiy=U+R?Uj`UMQu0|4Y zx&b-R{_U07+HcR6-9{2nD0(DfCyk>x%#b++&-9! zFzLLI|1j;}{L-?iud%vuSlsQK9~ye!Qvib7x4vWbB1K+YWu{D)>M0 z?6c*MWM#=(-gyVc1qO2c0~2j(6Z*ps;J1A{+_rde;qTY1Q9D@|Dq7r=92TTv&?oA; zAgqH&|I^mvbgsCV1AaP3bw@B~0d?Yabuw5y06_Mn942;_@s=eemjYa@kw{?~?L#h? zn{U3^{QpA_J;eUM@x~jO8%Q7la?1!p)&hWiFcPy41b}X7X<;BwTDq{2u_YM@YEC!xTtjn)#@8Yzx&>#tf`b(94Z*@MR`kXnkmbc!5 z)_30p8TLm~M2P@sOf&K8uc7@v|AC0FzJi-(&o0SXwW`Dk_YVVjLHj4*C+HG9*mO=< z{h6!+x>jD!)lu%ypj>;3X@QOQT#h7Q89Cdap=bwIXwQGeT0-*dXeCUDxu;9COo@;wk5}DeRIjb3yC(Mo9|V*v8Oc2dnWe*%2kz*?s}!+<_DH3{G2K}HBVT^(vaS8ysR z9@9BHqASV{RtN-8SKCM0kjyt$DgdbttmYfgebXlR2yP>>PNN3L^92gQxw#W^Bn!p1 zRog^0YT0`ynU9}bKd9}~J6Zrk2d^1Gm!0f{m_Q#`U)=#;HT1xV4t!t5yUqE8P73$N z+oO7{MiQVh<$7QR*wy|mt$?B;P+}Jsb46JYKqs>RFj0ho?}QLjwRCdu->^TU#L(714MsbaZ1Q+_q$i+8-6)XV$N`JD^RVj*!JbpIki!1suo=1gW+7 z^>mHgKm>bwy^}RggT50xvqeZk2F8{>5U@-KJv-9Cg~_?Y9FBr}N9=zZ=;bGWndb%2 z|HPWEiseSff{=fow0}Xk#*%zEKczg!a+f3fE))|3 z(BQxzxUb+n2npp?V3QA4Vla#L5#(jf(0xHRY}&~pfS9T4>pu)SV`Sc&Iz`SJvfPgQ}`J)QC6>AS>$wz5{#-d-mMRjx#d; z>F67?;-jR(7F21y|LkIoApZIjMHXWKI^OkYu1m#qn*`vj>qqUvBbi`3GKU~Qul&5e zM6)b9O}(Shur?(M{<614|LD93<*SF=46S`8I1w^c1~F3rW-SJ|C7g}~wzd*QndHkZ!J~{Pk&F^AQt6yn2ZLb_Zn=&Qmslvj- z$>+|&q3556&EI|tU-tJGH3C%Kn3zZ&0yS9xGzeT^G!oFum!3P9efL*i$s!vXK$ViB z?!56vc=^K*?UDe2d}=BO`WYD9GVuWw6xSr0D{Yh zz@A8eEC8|&2(;B|wX5JSTd`tAAw>;Y4jR)jol8$o&vSM#SO}w>B%kIHc1EH0VX28P zx@f%Y`E@b!!!>?GK>X6%gJJG3!rjI!CJA|csR|T^FDUo}~o|eSc`*CeA004XAUg~$Xm;j=avJm{~zRbHSn^d)(1B!cg zHo-napX@}RKfrbQ3RrR*{+Kz~P=>m46;rt6ilBCH;5B?Hx}UQ)8o$*Ko}a?(aoLxw=BIp?#7sL;Zezp<6zvxaS)vl3zKI~g4qk@uyFY# zh>VYm%UCn(?gUxyQ%C~iZTi9D<4c|^Dk^OH<{P;Gp@-o19Xm7|`umf%VtYZ;LDN1k zP(#{3ZMIHA=P>1e1CaFluC9WA>vV?x4IAKggF&sryu@^#LHFmN|DOO}a06NR_!;O6 z1VPtJN^JKd5i39owg>Mm-9c^Ha>Z1{4P{(uvE7d0TRe!OFnX2pu@U`fi);LxcFx=2}D zfu#$}TNZ!~A{nCHZQOVONnFOjpIkh`G578RvC*%>_qv@WI;L}$?NEdSiYzsL8$>~V zM2)2zh^zogzew{p6Tqre|Dr?Hh9Vo_uW$qW&2AvOzW9~@TY`FJ8InN(OueiOR==!+ zX~@y(e>K1_UV;%6p5;_Be7XU_QwKz ze0rD#fO<+)kB{V*MJch@hlGVj4)hyAir*0t;SUiqe{3fK5E&T&fdM|uW#b(iCSHSXs`(Up zdj~b(fdM1@fA+2fu8A}4KRJMK4~GIC5WK}Jcx!D9)zxZi4O+Xd)*9N{bNztYt-C!0 ztaZ2DRp1f3# zLE)&`SAy#!WUaY@RLp%z25F)(25|55GJ5-@XTj?KyK$yn z?+;V%A(Inp;9eWXPm;j-au#j0eFp(?!Jqcc^J%cB>r*vjU*^&8Bd+rVeBkqiFnnVFnPEMOzgC6nXG_zn zOdV=Gx!z@e{xd2<8K-S%*9iQmm`k+TE5(B*?* zk6Az%@I_+4{kWY4e~cBRrO^tfMe_t*IQGDpjSaBY0B&R5K<3&%*QakT5fKsTd-m*+ zn8yp)F$R`MV8Vn6S?A83v+581*ZXT>%$TvzKuCae642G^=+9banf^2_*BbY6k0GtG zp%Hrb?g=F&A#mw(>zA7i)}lX^G|1agormWVG9C+h7n|4%mjDa3{YZ%xb|n%8U+S& zEXIyf9lSg-qg>(tjc5KZ1=a>gm0vZ1|E2@vpkn9UKLq^Kp+!@r-D5=a&*r#?)Z`cq z>jrXSM6gxgKfZ2Pnfbnu2w2c#2?7a$fM1Fw0`T`K8rT55s9w>5qxb@$u$h2A4ff4E z0`zEt^Dx|IBmzPRAmGuVC?p6FAQA8&OdK}M$KP97{8@?Y$>qlLeqy;YK`X)0zUW@= z-n~0`d3jj{79qmqV;E@_KyJ1*8H(1>}X*^4hpbb3rK~f8*ub4 zoBwYvY#hLm?Mx{MtL9QzSeP8MhSBfic8w+kurWIF z@R48D6DN#}uBxgO)XaYn3eSLjBxvqMs*XyAUudxo- z$+8}o>*!C^i0bO}pu?VhlkS*Wx#+7uzSyJs0-Yy0*}E`8!-W^Bw(v< zft+aindl0#RS*u{KB)OK;GbZl2x$#tA?T zYa<4rrSFS)d>m+w%3$=u5%9|v4UAhXgOk~6XljrV;8!unvTjtic05~8UdE7I8gx#* z{ZyjAr6`r$_syu`Blx3EhRf^#eoI7wmI1K>@He%}Rad??w_?z!MhZ_zyG;4UPsi4o zWp-ObDO6p(kk(V4Z}%QON>Q1~%a_Zq_3sZq{qz%z?Aa4;ZrP&!;HRH3PT+zon=S*L z;#%LgTnC6)09MoPbUK~J+uJ*K_2$=Dcb}#APD`KP0twiwNr@*-@6n@&1OXKTz--DV z0zZQ3g$ozh>yL?vnLK997%58xtSbr|0e$ilRBFauqH=UhK#O19Agip@ zE8TY8g$jxatn~Hu&0f9gEwu|IkOhv??T$;9I$W(l|~F^wOfC%^eVB zNzg}5^sfYam~s5CK^WAk+;zaAw0@AcF=E&LvDKG5Y<3KzZofb{AyM%e#^l78W+UMpu(nR$g+Yp|O4s zx`hbtLrsnDk*ca&F&8eJk1H?NCa?MDnl3kSNOg5Jg0$?A>f5bUP`6FJBgOS(9rIB= zi;Av!A3OTpiQwRI@#Cet)~tE+-rCxG z$it9Ul51S&@--UR{=e9QBE*>tiD&nj69SN0=tJhNO3mukt6Rvbcde9B7DfQKBuIfz zwkrg1*UQ9v?n(FZ5=nHrT5)7llxEw1{?j3y?;mf!DH%9$pwvJ=aARx${p;vAzfpWs zbN<35)uvA}yX1?Vy=$jLEEX@W)7MFw4ULleh6W1LMQdtmp|-Y0Q(Ro4xqiJk=jUHf ztUa)2PlfCM=~bx(_a6a(H&tEimKaRHw54zB>s@mr9cr76FI|L(0-o%)sSTMeysQDY z+!Zo}nWKUA_0O6$OT2L5!p!;e=f`o5u^9_+vTI3OlpdbDpLC*YNaDT=Zn2}GTarwM zAPiu8rZczPrSks!@29)(f?M3;7Pq*?EpBm3du7Lt9d3)uEpF+e!gJpOx7(`5gLLv3^(@(42cf+!X zAcCFNR8t4nlkf1q7c>3Vr7WPkMGPHyt}bBfjf15l3C(F<@Yyg)Y`hn zoS{8J7V8=sHJ3{&MCiM8JO*zn>+2Kjr_7LzllBe|gG*I<2oCKA7fNrzbMJ4V2jU4kvCpuB z88mhnOwPQ7skifDOyKWi9UJBW(-jy0EU1Im1hw#flQ*nt@-7(^S_uY5ZFI>5zfIWNUqTOFY%$)g>ZTXk+esyIR$}XlK z3{nXd(bRg211&a^*^zL@Wss%ts%6BqeDjrN^Rf1eeE8HT6kb!AQToB(nK(Q`gDuO5zwP816J@jmJIAjCb1Zj4jedO75q_< zT!;mW)q-)^sTc(d{sbG^fIpW67V-6Le^WYw5u?T7v-!muh#G%C9R6xMRG#?-LIV8E z4?`@K50C1R{^%d>1MdhiX;Bb6YBa=-9t$1;biv!%mIy#XNDrK8?EoPyF$a^cU%wvb z3*lESSpl9N9_ij9uU(8rcDqE~|KI(Q1jJ5i{YZRCsP!N7(87JZhE~Vm14j~gO+Z)v zL~9_Ad{5@;MOO0pIluMo0qLVhYd6=|t1n%<23Fh>7KyCU*VoYK>j%b$%eI>Z7YBgj zwS8L2iWMs~Cr6G_G)IZSZ{JrCT3v&M_maN+K3DGQ{Sb@2Kq~d88!kJ$-;Qugo*=l# zz9|UT{8i8$zVr~sF&ZqZt+_NP%qPBWSp~99PFm(|=;IQP`SZaiE6dc#I_;VuBtStI zl=0)o(_oH7fX$kvfbJSr&~1~RZdb365ipnU*s+5q8Wbd%C!Tl$di3aFYPgQ)LqYcv z9?y_~!~uN3<1&pHptT78u985sXQTAzoNpn*&kOu+UV*1y{0lS`To6y~7p|N+Br5N@ zxLCvAWYWA{uPn*TN=p+y#3L?fw5fM5P%itHa6R?1%s=l0#riqVW+H< zh+#%jBuveWfC3%v?%H0v!#?Z6+}B_~RdeA03VTKI;zO zQ;j1Bp=OWn93%p3^5m0G(k`M;KKXNgeLAqehKl!AbMZJMU=Y;^JgsFj^7-(dud_%()In(gwrhiGJPcsN#~J=?Fdf zj+lAjaN0_32Z6ul$Ll{z90Y&7X4=<}jQvkxjYAKYYYqIR$rs*l5+UHRu>lqLxKK|| zxi_DmJ~K9yN*Lc0>Y4!7ofZPlQg`Kg5kQjx`b7Ct9(4hry;&>|_iC%zdie06e~2F? z@GwaCoGDScdUHg2Jw!3u)qQ-v=^lxAycAamdG6e~nv;jVQ#5bfAn)_-*U)#-63|m2 z&?pq8Z{7Eu`cE_N>q_aNEJ&?owMGs=8)Zq3ngD+q0|*)?z+cW-7;C|cb~B+ShVDG5 z&7${bGp+`Q3*-?kUT()alNxT`gyvJHfIqZlDihD8OQG(?7p3I;Nz+P7+FOv%(f9wV zJ450Ia4dAc_)@Gp_eGyVMisUV8d=Bm}y{5g+neLX@|{05I*7hya7 z-Tp97-Y>>qdR%)je$m2(Szm0~pAvWPz1lxaovJ;3<_zBG1VRGsvI-vE_b50D{*0Ka zprcwEO7<=x%hyHY>5QK z0bc1ZjEbVXf`SOB2Qr{;P5_q40D&KPe0uH^l}gpB4|j+KKuFZs10;~HR$HEe4K?_u zpLimxy0%vJ?9!#!(JBL>PvYYV3n`w@E$Y2>>rg9FM8E{e(0(!L%{_jMT{Lq+)}TRy zsQp_mz&jZk*`%F#W%=?EFFf;1*18Wqh$bYUapigw4kW<#i`$(wv*~$x>!D2fXMqtA zdG+-+zhLn6G#!J>XbF(-gC~TviP#4Sg^P8~&6=1Vz9vmB+=pCi?{c_N3s6q^LLhml zXU`VH)L~;m;voQC9ql`WhyX9B);GbsN=K2@MnWr=F~TgIqQ(@+-cct zG8kZGLqj51pZv$F{P(~Ag*xd}Rm7HmOGEQ7K(B^4&=xd+Z&U+SdA&RdT+H;EJUIYT zQ`>HHS`pNR13As{{s3AA2@p|@leJB!q@>emT(aGSFM^0wY8o!_`mt)=kzD;f8~`| zOedH)aUv4H2n))g1eHS6;@f9N8EECQ66m6pm~?^e8gcy4NNKl7F%9qt>K^{grmR)P#eK#d*(@}Ln^>Oj=p7$yXym!VKDm=x{+#dx%Yu3o{e1rg;&b&xFmIjKm3a1|oVPey72?S4SRSlMO0Z?8SQ%y3p)IcF;k%q201f`M zD~@~?7KW1jMYKDJD~z>3S#TL@5wuSl1nr97oHPg#{8@LS)-qO#uEzkpFaF z4pcWZK~QKnkUjh`^bL=)2>dkerKRD#?h12vWrtV*Rjr9ZOf06PdGkPe^eC7nSq}{f zk$kmxFWnodfPi#9A14{tgRWWt2lnsR7U|St5Ae;?`W;LD<+tC|#9~Or8MqOvBJ(dbxP^7*B0d=df5r_tl4_79P$X)^9 z=Or+@UrrRm;33V>FQ~=$kJ`VFr$GDimlx1qO7%_JY{HVg~6I&&ibGO2e#Ka5g4} zo(d7?iJm}+UcWK!P}ACi03?DR_wRvWk-x#rQIjCk zYXlr2u-_rV=M&AJU`A;_nm_M2n=BjF zeYU@sQ0&v>31Q8?R3FOEM1IGvR%(CFuf!i_GS@#oQV7t6rsyOjfZ(p!w)4x$a}yp1 zU2P5gciJ+j%%?yc-A(oAqfePy(F*F`Ep|z^i3p6zXxLPYzt-In2C3?Pw>8omZw70qIMAM^p zq#tiqH(tk=AAU&twtb1EhxzUik3SBSQOiw-<;!UhQYaKj zI-Smx{es7ag@s|6kJi>=qcPnPw|S0W=mA zfk9sn27(n0;Nh(HZ*u*hTL(3H)b5eU&=Npxf7!C#WIclHzhEK&%r0Vs#wbi`XpX)A zlS-~p>0xw*p)I5!K);r3OBV_uncSyDMxok7wx^I~+?LW>$!gVqe#tLU|2aY|L08Yy ze^~+VJiiFyUwuc-xt|$?$TQ;N;^YGd4op0E?i`H~kN@e9uzj-v!u!W$fQ4iQa{^G4 zzTmWG9pHew^~a+}H@&f9Mfw;0`Xvw`mw1arnqJ}I8q!&%-hO=W_w|i0ymn1YS_X5^ zQ2S3`uwcRL&p-b>?W?c8LSn#yBv-?_cbC7vaiha%t}anS{O&GYyGvEw)TAaljwB+` zD+#?*r;u&skDYT?Ns`h{+Qc0je8UKpNi1 zXtIUsiCJr0Oc`7S8JGMZ`D7qVCfS4pOuwsf2}BQgU{HGZ?%k6R_;EgJ1kq8NvGLz7 zQQGvg$HWiI42lYp<8sfQgwTwj5=XRuRsmA578!ZzC;R#NNeKYJ<;#~LKR;h9{J7%t|Nb{I{q46iw|?=3ikMc} z!(w72qeqUEWNzM^aI2<<`yyy?(s?4u%MueahYuN&qWb=O_0X6Y>fr|;O#J*m|54!i z9C-+uDhrn-bKR2YuR8ea~SM>D9)i$GgnM@Zm9c+I;P z41#8O?c!k&R)(1fz+96088bf^5@_Qh6M1{DC19CE0GHOh5oiM_$`NgN7kQ!O2vFCI zga6d%`eAqe>tFxE`#x7!e9yRhEg^ZE&xw3TOwKPA3TY_N5>kjI z+A&4GX979WU)1~d?ThQtqeoV0X(@$inQFC~CWHR{`_sgL7KbHk06!6k!otpiS8S}N zP9$>Lm4;e(+9#h7!tG{k*Kfc)vTa^WjI*c8CjBiPfgddZBmyM8RjXFf%Myu%6B97j z8(K~jCpJ)w+sL(Oz`-`R`S-ua5iqy-A|S}WyLPQ+%*c_8=ggWVK7a9|cFlY5C1>y2 zC#N?+q z{W2oquz<`8H*enw!QYmVoSdBW#TQ=~{U#Y1^m#GWbHj!W^mU?J2=o5mfB$`x`v3ZT>4%08nR z<&YpbSR)9#7eq9FbpPBfa;vdXajjBMn{Si)1W9ZWKwh~{i~-`2z5G+2-+tDa3ZbcJ z`ZHRpBLJZ$CVm`48ZN~Zo_gvj+2}ocXr-q_HWx&mLiJw~pYLk5b2N&pK4Mjg7sz_( zV0Mp@pqx33wg~L{?@GO3SCI(F_f1;66);!1;sZw#a8&C=5^&~!kmK>4bSMTxNC1zG zBSer&H2;*KpddPUjDqD8(2azofG#0iMv(5;uOIDR;q&<#gTb(=JrC$8C#dKm0noUH zZXg2Y5(IxnL7^MEd@y!lURD~xf9~A5xIf#`cYyW(voQcMnh3P@d{9?< zSbJ|2@INes2vP|NsKdjRySwzE^APM;S`O(@wqmZDsuOP>1I_iINM+SEU z2@p#lW!$)NNvQp!s|PiI?tB2~8v6R{uW5H(Cn~pEMw_PxU(TODKbwI6348hx=KQZ) zw@!}tOfHv8$?w536>Z{*?kOQ{;CyHN00R8%>_i$u016w&&}n((n7A%Z0Ma>|H!F36 zV&HPZ6N+I2`?W*+ze5wkY%35mB!KD25{|NFK7R#%UZu6OM|-Q_cPe}K>`AYwsY&wp z_g665zSH-@){J22|2Hq&j0q?92*JS_!Nd%>N;t$%*BoP9c?xiFFeQ!y2n2(41i#Vc zdwJC$AdQdX0JzuA_B&@33wG8p4d?f0|JMn?EnQHs^mAopm3s2z`&90`;T9_daM#ZX zOb7s@#O;Vq~_7$Fp65%fj~^ z`kq_d^1m+p&icpo;3+0eX1>hXpF|qPEX(m2_v89q_fyQvL$i1w)B2N!wH~|)!1L^Y zKPEe1RYe@d)sHl+N#g0gt#0|fOJ`;QA>f;;-H|5QcG~bIdCk3N^$Q#T`Z^52r4Zo9 zd?sAR;${i%N7j|)SO;pg36j_fDBIW#_?z2Qh<6O^$VX=8mN= zrOE^Xfx5P~MvnRJB5&V}x6)o}ciJZh{Mqq989d|IgpLv^v@Sc%>)>-snPmkyKQ5)S zum4Vnl5>yRl*+L~08$1cQ4wZmRLkZl(Rk037*d%{2*BZf)0q~4n7I*j!Ky}IziD5e zFFQP^7ko8G4ks493hzG{;We26zKS6X4Y=j^Dp(?`?C8;>Ya=5g#}pJ43}knZZI8YF z`s?T4c;k(2%*&zYxQ(zd&%j3>dE{9H|2}>C{6fHg9ocpP$->q@OniBzMC9$GxmBr6 z@$&Z0sjjL@_xAD8G#i?6q^q=BScK+AQK2}ZXXN6|S*qAY@luybz|f){awW-tTHW2D z=}H*|4Hyt|zpEWD+(~G-_c)3GzSi)kj&%XGN0YP5%mmDl%~Tw4mja*9+y5ER^<6Lg z3L_0o^b2gtaqoQ1pVQl=0Tw49!I7sbRh7G|cCesUPXtR&mh9cT_svnGMs2LGuQ%0Q zc>C?Q|2B8--18ENq>LO_&-7m$y%m<3nHjfZ$BsWy6m@0m)~%>;oI)}o=d@UN@!7;z zDnughwRQTs#Ky)(Z9s4^Rd%yDY2dICaQeh?YSh?!sB>q3%ZL>Bl@elzBNjlrrb4s= z{wBA9!T3VCU7x>i(J;!gm_xX%wZ(2z5h74IO9WOefDb;fJl)ze&pcyupA#Abx1NPs z^Y}AYjvs;>glJS7S~)EoyGU6UAuWtlA^;+7qKTjOdg!6V!otEcjAq|}R^`t>|J>)f z=brnkKp?o4oSeLB?AWnC*#dv&TxdRL#*7#Rxj!9NjTk*%dP`RgRA5j>=7x8Z@1HhH z{Qlc18Z&LoRq%Ht_uWkboiAc8(B5$cXltv1hvwIyVUAI8KfAOGhyZ)58bjHq^;LpE z@F}`fA`KE({N3=>pJpWcJr2_6 zvZR^h6JN6A>VHFf+&<0>d~%aO$BKlpy4b)fJB6(^@Whyri~-wD8=ytBd$vjd;wQ$6 za0GJ>0ezS2EOm)mKpw&1YiNRzrPm>5PbLIlPv7znSd4K1z-hCc)c$KV-4-`Dc#((2 zlM+iH#VeQ(q2svqT>45q0tckLrAkOxE}hU-id4Dkc5^ToW)SyDhOF&To>Nv7&c=lnQe50wi|Zy-lZQfPW*^#h zhL%)zb_FCPTyca13JxDWoDmrrIhq>}IB?*=(}dKokUntco_p?DT3T8fIcCh5y*qa7 zz&a?E_Q0Q&%n#ORNi%`Lt%h0x{>gt2zZ3jKI&9f58kQ3FGeB1pw`GL3RlOKz~2_{}IV5OQ4sBC+IkF z0H=fi0J1b4J6Ir9n5B zq@-}j$hcvT1gypbUM6z-^yveHApQ^@9)9YlpMH8590>Ya69V$7Sw-&w2L!mlfz|-l z=}#a;V7KoWTBkC)B1i%VNbx-9>cW`PNGPyTue}Qk_xe@sL*gtu|3=E3eiL)6(mDHg zx%yA%kv4>5Za4!p1nkuW?9&-?!pz8BOlA-+=d|a(cA09R#}7e_k3W=EmO*d)Wa9wN zNcxV8CSP4$RWWsCZ?&Yk-V-iwG!|zHjPkYwyXhjqBB*b?2+LDu0woSrhyudcR4Y~T z-2N{0H3T%7EQoe*U~B-jTZ|KQv{Xr@pr12`ZUp$m)2C0LZHWM=(T;1JCvJMt1b{MQ zijI;#S)Zl)#1KomqQjtraT3)0QBeCg7rZwJ{H)st?+xCg*|URe5&$D?Jm8lno_OND zjT<-qmEBQUSs6@-e728|Px0>EyKzF?(~h`)EC9chaTACe40?Omlt+$FBP5V&1N^ye zhxTHjlAJHj0tvA58n-Dezk~daV9xrzL<@e>I*DxRB#w}n0WK}w%&tGhh=j^i>*rZ( zMG2BYi!Yx|pQM=Wlm#LHGv&&jw*W6`viZj6Nn6J`-wJ?4Vzy2$v3w3ziPM^qfTg03 z?Y2ldodC9-Ht^BkUvM5`YHmTuf|udVto87$ju3$}ae$Zq{%>h@Spl6V+}NOp0FePk z%=QAkz8Z>emV&P8Ce)GblkOP@$F%zHMsA=0JYKIHO;jkzpK;BM~4M zLyOPX8A;(-11bxCI@91QL+hMyXGF!bGKD9r16ew+6aa$Fw#^}6`=o7>=?ns}c>O~x zT>oU-_fKL4tht5S@IJCuEdnm)(I;9WPtGy+h&jcY_Rp0d@;@FV$J@BUSHWzY01oit zkb#C-7c)emWwvn#j8V+7DwhbrRz{B#**;E5hKkR%Y5wfXJs9jHpz?nF}^$Uj+ zuX8mV0`xeW_x1d1aJ`_VuDd#t22O=(UPZMviKA%Y->q#-TWJQ0VjcY;v7gn_dTRsRT|dTT;`?P zx)zP5o>&0JctdJxTPpyqA|ytxj2PkLP$m^K$P4TGc>nzK&mk8tUhK~WfBFr&dUf2q zdGi)--@YAF)+~+`w&d=y0|IspAM9e}JQ$=)Yfq5aRZi_<=jm!9;b_ikv)`M_G&uw0 zTuUL@0qtLVyPhKh_N-zWMbK<*qNJWgF<#Ouol85>Sy>QV?cxSKnzMMZ!N}#ZNGs>wd~N0-Cjn zMO4r^l5ENHV$ASX#9VLt`mKTWE~eS~eF~(M@Fy z{4*?I8~d(t2ZUiTIF*2Ws@b+=vMtlb{pmU`AQbffi(^1tR|DQxeuMiwyg)bZ0r>Wp zgD|!eF2`ZbAGLc+>7NQk2`pY5N(VHtvHtDkXPmcshNLI@NJ>DG!Q z!a&@l(?a2?j9PqPV2#Cf4E$nT zWYeY+8tl{4qiCYUG*Dc(l?uv;X@u|e>C<1lbm`Kl;lqdj@ad*(LLV1&!YPFWr zStYTtu@p|sO|*a3fT~vb?-JtXC7yy&vU2@NfW&tX3q- zVkVi^Xg2a39n^wmZJtu8B;-c=vGNbG;6i}hSSsTdO#)843R_%1)TT|FhM;E8=ku#F zGBW-)X3UslG=Bn!ER7FPtJM!b_uO-*H*DCTu;&W0e;uuf!7Xm-Y#|!I3v{> z?C6N#P9*>g0Dtu%JVJGYf(6TAyJ96QKD-BJ=&GUn$T;{G-`%`3u8jxiOv%Z)MfmFX8D7{pY zgzq!YJoA^uix=bd&}p8w#s?6~CGr0I@4ql_-aMPGAh)=s3j#d8ujw2&A1X1EnfDwq zg3VBpvYr4(ErL!3Rs{CneuPnx1L0zD7}R=tL2ZK`OfT)Isc@nAs`KLkI$O}+&w@Q$ zGYHplyS=Z1(Ko2&ENjdxd3Kx1!hY5VY|9c-Soof!UWC;4coNvs85s1%EFmW>0h8aK zX!5V(2;V7FrhKq*xo`2*S6Xf@On7L)Pn`!&^sp!+jsGfS1l6hY`0bAnL&95aDWFpw1)# z2LS(fC#d-&@S{b97J-97ab${Mxm^AjmUWJfj{f=J!GoWHS$PMudOujGX38Bnqoi5W zf^KU$XjZbW8~h*X4c9|^!rA2?!8=hyAjeMtrL_j|Zf*kqHx@$bsl%{f+GFsld?kGR zXm4Ik=RXejgfO@N-n70yI3dgnFT5~n{rdGseSCb*A2@IzapJ^@xnO04FQeV#uTvg=3dna#S0hb|JY>{JlKAn>YZVQ}hJDC7yCxuG0tSS=s-VT@q& zDhOKi8dPxixe4HRM*z6&$$&ba(cE>m$~%~SM_{Jh*!#XxDz%*ks#2j#%kp;U+Ot(j z;qFcdVhQYS6qnpI|FZ<(7B>O>z6jDSZgGoS+~O9uxTOoo{|hhxys;KBA{TsI00000 LNkvXXu0mjfGLO)F literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-00.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-00.png new file mode 100644 index 0000000000000000000000000000000000000000..48dbf6885c78e7c38755442ed6563e36cbd17057 GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphQT3Plzj!CIm(HimigCy2sGq9{B)&^>A{{)V%3b7tm{14ZilE(I;dE1R;4-E&e>{v zf$#6*?KeKNGBoo1+!n;Y8t5+764!{5l*E!$tK_0oAjM#0U}T_cXryao6k=d$Wn^Jx zV5n_iU}a#S(k0e`q9HdwB{QuOw}#N`>r8+eBtbR==ckpFCl;kLIHu$$r7C#lCZ?wb Xr6#6S7M@H6MJa=)tDnm{r-UW|s6VZ| literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-01.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-01.png new file mode 100644 index 0000000000000000000000000000000000000000..aa021b995907a37878c322d491dd5cdb5b9c9d1d GIT binary patch literal 543 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphS3pPlzj!#sktA7~V24 zTtrgwpMl{vj0-eWfPn!hvYvs#fq`K^&@Kjs`9P8X|K)^l#sHNGmjw9*GZ@V87g*o0 zU%?^Z{`!FP?*;A`d=5S&43uU}@^*KTnZx494&<21sKj9JMlwr(Qaxel42_z@_ zl>wDC0NE3O803A1FJZMCfK;ldi(`n!`Q(HJoCzsOX$Q3qYU!M53vH@(P<3&+sA6H^ z*w7vA)5Ct|QA$e}cXQ(o2>}m>8+#Hs{W#o(R1{egoqJLqG8Zp#6jDl1vsd2a%hcpx z%@#j_LD`FAH4C@2^tTnRj0`hAa#(b98E614R4s9hC`m~yNwrEYN(E93Mg~R(x`sx& zMn)k9mR3d%rsUq(X8%SzU+g4f*(+IwACUrC34U+&D>|D!#TwnLRc0Ohsb(dr z^6KQmYr7vh-ZwU~H`%On;>q3}kN^GAT({t_vIpN6RujI{Rw|1*-x}EYyxh;F#4CQK zsC)a@Ee%p;HTGLB@Eq^Id#(%U6x9;fh?11Vl2ohYqEsNoU}RuqplfKPYh)B+U}{r&&{|ND>j@4vVI{`>p$&&^+dZN0-Bhx5yDP456EnDGtl5yZEA+v;is_#NOMfs&_A`2{%Vzi{=OQytL(#nm?2=lfz)O`2_|IibV%E0i_s|yxm=KT5o(56%eRTh?usu2eoLOncY z@E%HO?F(q)qx=FZ=edrg zgeQmPwyt1c(3{3~=isUKBS4!}OI#yLQW8s2t&)pUffR$0fsui(p^>hUQHX)1m63&& zfuXj6ft7)QN|zYOCkPF>`6-!cmAEy8USDSd)F276Aviy+q&%@GmBBG3KPgqgGdD3k ZH7GSPrLyp3Dkz2+JYD@<);T3K0RVeRj#mHx literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-05.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-05.png new file mode 100644 index 0000000000000000000000000000000000000000..79516ae4553dcf8b36ad4a81f9041e0d54488e16 GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0OATDX2?z9`U|95JzX3_EKX0obei|D zf`IEq>D`QXCVG2nd2?#2zB>@DfB9g_!9z}Gc=*FS?ld1^S354X?v03E?PBw`k8@6^ z7Cjfr{H*x$^OPTz9*^#*R^FRfcuzpryyp|cfhY1CbQxrl{yhp;Z+(A;)8tZYw%?uh zZqFa4HA2tqJU`Fl`8>^|QdQp1*8jNtx82wM917cvfeunFag8WRNi0dVN-jzTQVd20 zMh3cuM!H5uAqJLKMiy2EhS~-ORt5$tU1A+58glbfGSez?YY4r*&IG7I5@bVgep*R+ nVo@rCV@iHfs)A>3VtQ&&YGO)d;mK4`pfY&6`njxgN@xNAt~HHW literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-06.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-06.png new file mode 100644 index 0000000000000000000000000000000000000000..1838661719f0858bed72c7d3e38f456b2e6f44ff GIT binary patch literal 1636 zcmZ{kX;4#F6vuB^61E_U1jG%|;6lL=lqC`g2uOg0yiF7c$%BMN2q1)@vY4^fg34B9 z(Sp#a(}D|vR%Rel(9%&+T9~%Oz!YVK8H<8wT>y)|-WU7D4}J6Ax%Zy?JO6vmd2e2+ zOuCzGCokhADAefuae7 zED>%I#D0QE_V%WXq(TOr2#F&K9D%SBqirIAk~B}q<#Lfoq}S^Yz(5p*3`sK>oYPAT zB{2k&@d!c^ghnjZ18|Wb5+Q&fN*aci#+39;$I20emJJI_h88l=iDM@t0v`J>X$td# z7zs%nfm>;jk;xKCD&#RN0h2*2M<#yh!(?yK;-~R2&h3o zeFvzoLC*y+`v6dKpx4k}l*kuQKLe@?xU2-!mw>k!P~qTF51`sWMFFt01xge&mVj&p zxLN}!1E5eqQB?oU77_+`X;CQ#7$!`%!mIyWGN*!P*iM zpH)zl8y~pd&YWSg!e`&X@^kf7gcrxcTBt6${`AhbCxmO+EIV$frtbB-_Uc@T2gk~C z+1l;Iq2C@ieWBXyV9ynxncv(xdxR8iuyqZ{JvsBTrM4i(+sWQtnq4+DeBo4Tu&Yeh z(yl`|OLnDAJ*m|v2y7g;Hn$h=T*vl*^*k3{#q7K4>&iN?d#S0*?CqXxncdY!UPX8_ zqZL-cNQ~SaGLmnV?*|twtymJunzZ3qu3}`liullFmqbc+5YxkX<$n*z>peaJeGkMT zLHMR$lazoF=9bLaC^2}E?0MlN60WXw#jUUj9RUT)SDJFku( z`%@UueKUVy{@nu0jA_1W`pFY(OSW}I$*IvB=`q@7begA{)610 zn;oq_Uv;*+!L&mW=i<9n(bLqHI()wSADu((nVRYt{BJ&kTX*SV`u=B6^JfCv=6XNK z*=3Rek1L%fE~S0F9dFC!2HWRjhPgq{MrluL<}YikE0J#hqWAWC=8Uj#^2Lzcexu|( zzgpuwn6u*Hly~w`o6&;l`O?z{-N3nq?J3U#n3bHG1#4ZysA2Bz)Wn@7jUzX*haSJ+ z){HmFyE2A{x;N_g)C;f8^>)hd$6TJ=XKq{dhv98wK;h!_)GJYEx1(+*_WGW~tHTrD zAD4gcnII@$oyp$f<6JuO4jC+IcgB3%1Ttbh&5!28da03LkI4u;jbS6ai}z;HCTD{U;XK5 AYXATM literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-07.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-07.png new file mode 100644 index 0000000000000000000000000000000000000000..61b5fe155d75f0b72c40a1235ecc93fcc2531caf GIT binary patch literal 1216 zcmZ{kX-r#35XTon6^=mN6muk?0Bs1up*-xCQUWQCKtLNPb#Udjq@3nzs0o5bRDyCv zf+REnqT&E55Cs*Y)aEqiw9R2KhY!HqmyN+T#u#&7f-Z{kp&z=^?96{O^WJZ?+RY0J z^fflTWC#E-_V@E9KyPto`sd(2Q8PRMon8z+01rUjQ={YX_n@|k^dkfS@S8mV894wP z!c>L=fD{CP)i40usQ{QKmbHHC0e~(h=ytFVEO@(YZEfF$XFlVdK%r1XA`z-+91iYp zV;ERiSe(L-nVXxLnL}w}V&duP>EYp#pP#?Cx4*TurO{}Hhxr%`COtiUe}8{_dt0-y zp;}v$%N1g=*viW4UP3}eMP+t&4uT+bI-N$NDV3``J3AX%?b@1Jp-{?XvW3OPnc3Ni ziOJE?F}^@Zj*dP#IXOH$+}+*X+}u>F*O!-<7bTL}*}2Kdsj)G!Kqwj<943)SM@L6{ zdwZK(TkGqZ)m7EX%8EoPotvAVnwl1i$AzMip`qdaeqKaGWN2vU@$vB%#M5l3R1i-t zU0Rx-Uznbr86Tezjg0bm13kT5Hm55yGwa8YyK1%i;NW0mL#t3ImLTE6;>^tK_{8K0 zB;*SQ1_rs@K2BG6M+d8=rLD24xumpgbrsIFtJP|iN~H_}FG@xssz5k6IK=Ji@9OU9 z>}0pLwl^`Db@dI!)RK^pko9#q+KNOX9fPz&QC~l=yQi1M;fzO-)aWL?di=S9^PBGqbg!v58KvtEhNcRP9UUEAU0vhje~yif!{KnTadByB>27Xrc>FCQ@w?O0Q%Xnu zO?c9l$%Mc=0F|K;1nDH|AasFlm>x^d%SNN4(UdP}Z$ImUMLH2*`+742SoXV6oKN-- z@HsELU}j*YL$UM1!W1epJn&aomI32u(5j&USwYGxn7i)pjSqGZM21-uW)$RoPk8hY z?Vn?8$G3C(2y>0j=JR{_`UQ(1BGCR5pQ~gv@v{`;0H=gsaxc7p`5gTZ+FzZSl?8Qq zH7{BoR-v6qSx@sbL;2I(asE#W91(A-S3GQOXUpcYBh(V*vU*7+zk;$bwYoUq?4UQ! zF*T!^eqf2V{_wJSxlK9sd0C<3b^ZG6FP-LWx*c$s8`nN}W>wTyGha16d7O#Q$z-*^ z#QyWTmCI{k&^jyYYFetA@{OX5C~bFrQ)7yM_j>S6A|>=RC$Grv+m)Nd!<+IOk(=oOuv6pST*=3ozxP)Q_>_%loCjNtn_Yf!13|L(&l?} zj5O;T1ge37VUn)67H5!@)q#h%cSiVC(IwlevkQ7P*@u)I6`o9Xk4z#%2e1ehadN>r zVX?u;7w%X$cf& literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-08.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-08.png new file mode 100644 index 0000000000000000000000000000000000000000..3ceb7afdbe545e8a35e03261a8c16956dd23af53 GIT binary patch literal 533 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoDRNPlzj!{*Q!!>VTl1 zfnh!a!+8b<0S1Ny28Q=Q1^*cu7#P-r82@hvymA66Vkrso3uX|QuaLx4{2j<=O!9Vj z5tzD(R|m*pFY)wsWq-mW#wo*?ujF6^6cR{I^eY1@YXGt*0Pz7JX7Ii2sR5+=JY5_^ zG|tbx_>iwzfrllb^ovNryTA9#zAW)Qo;0m;zlVKi?#yMyP|iQb3px5zid z)-(LhDV`xQ=kMz$u{?a=&c}vMsd#*&cK7RSi4WCpr}LNo+*1FH_uU7M*3;92^MNi? zEpd$~Nl7e8wMs5Z1yT$~21W+DhDN$ZMj-~4Rz?<928P-O237_JDqUh7C>nC}Q!>*k zacc;@zRm=wK@wy`aDG}zd16s2gJVj5QmTSyZen_BP-AzYi%b$(h$?+bSCjf`=iPI?l<2#-#OpR zy~)&NsZxBrHhU35e9}^t*?bNX!qc7KZ=bt)olhS5@tN_2471*UYo6h2u`V?`laTVA zgfKOPJmDecS3*iDLLR9Jk+%~PNOxX*H--?m(^(lgNqhrIz`s{bFPJaTHU_N~&32TZ z5!myyPkR)_uuZ}C4fa-||6AlW3b^AMP7I@A0xjcMyoaVK0W7wn^)k#Sp*YWxSzO+r^_$ba^h5b7un=yY!7}PM1#sP?P@$m^< zxPgf|6t$psSYVysKYcv_;|r*8!0tl%S=9ClxVjGPpkRKm1G;`xPoi)D#vzQ}0^J7J z1C)&jwpoXHHG1c9^b#sYv9^wV-RPLYr(H;~Vs{tfEEt#t+YN;gkw(yUXt|2lEr>3F zSc?=3UQi*<3bh4c2XL?(ZW-;5T)`LlwrzN?I8}Qn4*^%)A>yM=O0SEe+b?A@-{z5Q&W3uXLEm0NXRbFvd-obnx-we z<;i(;hJvYob;3T%`RYRV z@I|Slx?^y#y4(F!kvLoXoOHtc{$tT!zQX|`%lSrCQS5@>mWYU$bbEU8>dIW@=5Twz zXe1+MHvYE&N$~G~R)%`GU6G&uBPM+@wC2vh^oxZat4dS7hRqF#4f7@MmBhAhy=D54 zKhGVer2Qtn#$=G|N(_7=GD=2CqhwNNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0OAio%<$&Z$8|tT+tbA{#Nu>vg2b-| z!R{ONHJ^Nz+%k|cQE+-_U#P{tP+sGM2~&?+ui^qmhA>8EwX~@W>_Ba*C9V-ADTyVi zR>?)FK#IZ0z{o(?&`8(FD8#_h%E-dXz);)3z{>MMG|WN@iLmZVjQ=*O>q{ vNP=t#&QB{TPb^Aha7@WhN>%X8O-xS>N=;0uEIgSC@;Za3tDnm{r-UW|4_;n8 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-11.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-11.png new file mode 100644 index 0000000000000000000000000000000000000000..41ea2ff1a8c04f7a3efc763339a662e8b3d08669 GIT binary patch literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoDRNPlzj!W>^tGJo^9t z|EgX8#eur`OM?7@83NAlFSu`@(2(FD@P2;3RM`sf z6CN>68OD4i2P2@6KyspA8BkdRkUarNa{y_E_*a(GfmE)ii(`n!`Mnbz`5F{>SR4hq z#D4zIcfBN(bFsU#_>SfUonwDGV!e(=&iw7?jY^p* zasp_vYKdz^NlIc#s#S7PDv)9@GB7gGH8j#SG72%Uv@)`=GBDIOFt9Q(Q0WruK+%w! zpOTqYiCaVH^>rpd4U!-mg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4hf?|ci)78&q Iol`;+0JcA#n*aa+ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-12.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-12.png new file mode 100644 index 0000000000000000000000000000000000000000..3180294d7c5944dbb243986a6b9e0248982f8de7 GIT binary patch literal 770 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv18NpAc6d?GYT|8xiXj z8s!}p5EDxtTih<2vQFOW&atL{0D;ifVF-=u4ze-UoeA#LjU^) zf%EeX-X{p$?{^4j=-+=o!C?LV_xBqd4CWgcyf;utcyF*?At6BEeM7+g^9K9-6JEZ# z@)c+RW0JSKi(}`#9FS@3C7!;n>`!>aIAs{~l^l$KLITN&eq}&q4M6q;AgutT8P-L| zg5qYor;B5V#`&fF?R-rJ0&S}w9oj3-;TOQN#qUa3#sBG(!djh$7Ju}f9QQu^U!35t zHWnL|;6&XejVDry9p{R39}w|Q-4?oPYt`bN`HYvvtnS`hSZ~9t;wiRpV(Y@D3B_q! zt)!S2Z)$0Gn0#W+<(o2=;=Y%Y?IU!0wG~rRkM*PqpQ{qid_99Dr*}c_43?zmd`-pk ziY7fTc^wSz?LD-Dd%=T`{D(frygK}S#s~fX3K3@U@AfM(<=!C8<`)MX5lF!N|bKK-bVn*T^Wuz|zXd!pgu<+rYrez(A!-tOG?uZhlH;S|x4` zq1V@$05wR0YzWRzD=AMbN@Z|N$xljE@XSq2PYp^mn44$rjF6*2UngA|T B5f=ae literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-13.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-13.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff1d6b3be47b97c3a99ec7650fc0483c975bb7d GIT binary patch literal 713 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphRzgPlzj!CJFHJ^7{Jv zHZ(NMoH?_&xY*d(I4v!0|Ni}F&YV$GQ#;YqcPuUQ5RLPD18+}jGT=E9rooZ5kV%u{Aa`l_-T(jh z>IwvWJZS!Wp=J8AxhlcOe=3Rf6z?n9Yk4+xj>cAR*6N3`6Q5pi&iwx}P+{uRu1$At z3)zeKt1yK2ij}f12w!|as`_I?X`swUmV!KIp+)CTBrpandU@uW$;1{xHvMltKNNC; z7HMDp&LDcWMSf3-&6Br22WFKiuHK-U_}}`<-D%4{31{WDt-5PCK|3-rJ};^3NI&~( zJwc1p2|`YS{;ThN{iJ#K!u3_lKl|)^_HM(ATPgLKyYKF)e>iL7fnvKy@@se`CB9|( zZUy>NwZt`|BqgyV)hf9t6-Y4{85kMp8XD;u8HE^FS{Yeb85n9C7+4t?sC0>SplHa= zPsvQH#H}Ip`Z^P!21$?&!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$LFtRZ)78&q Iol`;+00sB+C;$Ke literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-14.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-14.png new file mode 100644 index 0000000000000000000000000000000000000000..859172d78392d59d428b0062334da3bc624f583f GIT binary patch literal 1251 zcmZ`(YfPJE6h2?SQfNylmvSvg!^LskN^MpI#w}FnxZehgIC|wWgjT4-%}py|3zR?! z$QYLjV=O>}6~SduxBci3WdyfKL@;yFEEBgm{!9~yA$dLh<{y9f<^A4s-t#`^Ip;k2 z^7WRLTTlmgov9iUH2O3Sj95 z_!~o(CjjqC0iLM=(yjmmnm3d9Ly1;{** zNyh00Vgqso$YmfCK!$;g0{H~UB9JpcOh5*it8pM>3=D4(i3^<`hP)rh2y;6ID=lzB z4#kH-pAOp}F?eJ~Bw{e#4!U#@@~G$_wzKKq6n9YvQxQu{!WXUJ<3%NkIlo*2f)QL= zAX5z01k@?OTFE40hd3QBB)7XeuaU!>3d)V2W&k+d1ZdM?@)YGRjmJ(P*WAv-Zt&q! zu_0`C9Pzj}FcTpLsm5Tb8H8L)BBC7_e+fV_KW0eA0UPTnhw9g0ypHJ#J3*mv%$ID4 zpJil6Hk1Y1L#>c@li5+R6^IVzWX1Ec6L`t5c-3e54!jk-)DbbP2@whC{3G7y%0!E% z@a=(^?f#fknZhtXc43O(y;9ND=CH5dk6bcGXtI3+yy;_cJY9~jr7Ez$F8F-8C@X;% z6T-<&=`nybnJJtGS}260Q58STs#j6pO?63lQ=+G)41* z4k(o-*qk8y{@!R+43}bg$G7h9SrkGRJ21=X$PJ(=j=0!$ zJ5S^hT5w}3)1Rj0o%_2jM+7X&E3$NaZ+AfKNzuZ@4;^==C45%&(cEJ+#SIYo3$Q%v z_`=1@?oPCY`FYMSTZZTG;AvJBD?J~32XVtGV^p>bL%upq$r*%M&>uuwh8AjiZ`;uv zsPb~E;_mCz(}&b-R+6jedH7`A&l$Ix+SilLAF#S|T~RaIN9(KpN&Z6>8?xp07d-3n zwbh;ZdB;La)9L0vo;-UhmW+MV)->Dp_QvKz-RXulP4h*Q?MDBn_6x>((%tJbP;&3E ziF=|((P>i+&lTB^Ubr+jdQ({E+Pa@5G3_k=)Uk7KB2pCIHK^tb__o?5)Ax^J3rCf2 zD8H3F@7c8VmDb+T{^r>1Ro#tW@T$3fy;0v_`0V6^kzw)VXuajJ%{8O_b7*7v#q6)v zwFLcCU*gl6tsgjBvA~^S(v(E0G)*dvu?F@0C!y7-Z*DmI z{|VJwPB|uox+_!~8_b=Wb_3+-jaq|5)v9SUR2Ve+v+vwB;GYLTr7X#F=Bm5?0c!`! As{jB1 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-15.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-15.png new file mode 100644 index 0000000000000000000000000000000000000000..3de0c5f1af8c7e0bc35da02b74b585f047584c6c GIT binary patch literal 614 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0MZ#in&H?Dzgs}IuBVG*h{fr%lNJ3B zJ4m$6=Ve@WQb=UQDyvD8B%hp}FrmT0&+zDchYj`{c!YRNxzmDMCSF-^P19$3s6xRN zUtN=xhif{PMep8f?jca~?%lladuz(?bN^qr&C6dz;O~(`OOCTAaW;K$@$N65X#BEU zf8P(IN!#9V2ftAbIQdZ7yYxo%$ASVSDVEnw^RDhXuCe3VQrSX}8TnC?=6{`JbRNw$ zpUvLzD(U;K$R_5Pq!mjhhXgpAn&u}KaEV7Y#$NxyeC6c*gja=PWubMED;0Xo8$Na^ z%vdnJCvlFb3lDo#J%8IzxjgnWUaWi@r}G^DwEXb;TTfohc*}I>sooR<-(~gVmc(vA?K{s|+zdz>?5*S~TuJrPXTJ)Jv&eLi5j`W&HK~7u(6}VgAWQ zTbP02r&{6~QIe8al4_M)lnSI6j0}tnbPbJkjf_GJEUkFYlhujOhw~UHW_N-suHzwsHB? zyy=!RS72YKJ5g~T&?40m*NBpo#FA92Erq^`a#~ ze!&a^3G)l~HwfJCzyIDrAt2!W{{8C>7@4$PfC?Csyxm21sKj9JM zlwr(Qaxel42_z@_l>wE3q$dC|I53`DJ$(jbXL`CghG?8mPFTQVU}Ts$JwZ$~^`O>4 zEv-{#FH~+=9ywweXnRbRi%Dpbg92+>(dP!$iUTr%nG;%gT6hg7O_x41k=65rqskA3 zw2z+}81^?TS)wrG=;7|H-4piwIl$U!pvNf~mKewOiIGA2IH$eBwLT`GrK%;a5hW>! zC8<`)MX5lF!N|bKK-bVn*T^Wuz|zXd!pgu<+rYrez(A!-tOG?uZhlH;S|x4`q1V@$ x05wR0YzWRzD=AMbN@Z|N$xljE@XSq2PYp^QKVUQ5(Zd3-+DV{ElAsXkC6Be)-7#Su{PY@JMJ*0I|OY4-` z3zZv|M~+wqy6o8D>geFa!=ZA}M=ovyi~I~_E!IgB+BPV<6@64tNl_5`6R`P*gM&kW zj}OP0M~|Jh#zwfMePHEe)?dvb&is>s;rBaE!LDPgx`FnombgZgq$HN4S|t~y0x1R~ z10w@nLnB=yqYwj2Df!25m6652nc7y*R@k`w*PfXW(x z>up~OC>`;_3RN?HHsB^|g;Q;fb2du_{&29beEm}KO{yiX5hW>!C8<`)MX5lF!N|bKK-bVn*T^Wuz|zXd!pgu< z+rYrez(A!-tOG?uZhlH;S|x4`q1V@$05wR0YzWRzD=AMbN@Z|N$xljE@XSq2PYp^< VOsOn9nF@*>22WQ%mvv4FO#lhshjIV_ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-20.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-20.png new file mode 100644 index 0000000000000000000000000000000000000000..5e46ed0f8d50dd4244bee8780ac0bd36bd1cbdf0 GIT binary patch literal 538 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphRGRPlzj!#tML%`j8|< z85sUEFq~juSOsPPWq>9+Ffa&!x$hYm?lUl~2eSYF&;2V_0hAUh3GxeO=-=O9;2==2 zzF%Se`~C0lCkUL`v2ZC+mNCiO-9@T2{fQBf!(QU)>&pIwM~qX3F<;36BqWfW=vM|* z)&OKr0OAB7me8Bw2Xqxfx~Gd{h{pNkgas@HMuy3v>4HK+hqMk_Ef6}Sv}lD=&YLp| z2Nc!R&T*z07CWl!XmxOi;Neg?;G-zl!6H0EnQ4+hvxmdmq*NxxIJ*TF_A^c%=}4N| z&@yAmg9Y3|W;>1>Y&p=>1Pq`0VDLa(ng0cwy0*$|wcR#Ki=l*-_k hlAn~S;F+74o*I;zm{M7IG8GhI44$rjF6*2UngAc7y*R@ zk`w*PfXW(x>2yyQ#}JM4XD6KGYf#{EVH6Bm;r+Vl&;NF*E^#5h zste__zNubb;7AnoMY}8(_uUPj>C{#3Ii^%z%3_lDw1l!jh6$e_WTH+c}l9E`GYL#4+3Zxi} z42%qP4UKe-j6w`7t&A+J3=Fjm46Fo38S{bGFfhDlU~phy0Gj*%|Nl4U_1A$~_)3EOf*A}N6y7@&2o$W}-+zAoqXU(m zKpDm)Z+925nu{wWfgJV{PhVH|Cp==DGK~334n{yBf#gKLGN7^sAbSE7OQfxl+X`eS zd%8G=Xq-Pg!JDr^frqu5Ln%XZ|L^##A|(qCigM4r`q=l<1*RSawVQ8MAKek<68x{e zW%-6XQq4X-E+Sb+wsJRdP`(kYX@0Ff!0JG}1LP3Nf&>GP1BTFw{0Mure@E z=@RQe(U6;;l9^VCTSMsebtXU!k{}y`^V3So6N^$A98>a>QWZRN6Vp?JQWH}u3s0tk PB8S1#)z4*}Q$iB}AvKaT literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-23.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-23.png new file mode 100644 index 0000000000000000000000000000000000000000..3ce6fc1dfba8f19c1be8f7163b1473a84ba8fa9d GIT binary patch literal 647 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphSCsPlzj!#svQv7)~%S zBp^v_V_*OpqYW1M|NnnOL&K_7tC*QVE}1!VCXhXU{(K<0fB*h%+qMB2>({T}vu6*G zy>8vQ-Me@1+_@8|5@_ss28Q(v4DT5j1Q-|`7#Qv|FaTW!H1N`OwjV$h$|XU5!3+Wg z4(s)beg#?ll{mOvK8i4ExK)eEoCBFZC`w2+*db&7mbgZgq$HN4S|t~y z0x1R~10w@nLnB=yqYwj2DSB45ii(#OSQenr#JSGckzz`}+e)K>5S)MX zfB*jd=g*(NfB*ja_3Piie?Ncze4tVH-~507^*_)YsXxYVfRsu}kY6xE!u|RE0t)LD z?gt3;7rfu!5Ku7xenZ24hx-Qm`wJ50zZY1qpv{%f1XRzMEaloaenUEn?g+nJPsFk zJZR!x#}UG^)y<3h)c^l;QfDsgImrG#`J4*lkJSe!nD_2FARqDlN%Csu868nSQnE@F zt~#$&DVlNiZ7ZXbqMFv_gy%mmv2@N@cws}-^S+zm0Xkxq!^40j0|)QjdYESLJTaej4Z4S z47CjmtPBiPy2LtAH00)|WTsW())0Dqoe5BbB*=!~{Irtt#G+IN$CUh}R0Yr6#Prml X)Wnp^!jq|>w8Y@)>gTe~DWM4f`HSs% literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-25.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-25.png new file mode 100644 index 0000000000000000000000000000000000000000..415e56f0b540684d833b654dc31fe8b7b3c7cb08 GIT binary patch literal 498 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0OA`!EWxMGYYU`zdb&7^B^}Hn3Q2Xqmzw>%e}=^TmT|10{|_MW3Een0cn!v&^`$UiH$0 zZx5Vo)_A!%26mk4@eUGDnpHU4=-~FLl6D&9#(JLViif1FpX^-F^!d?2TiF9sr5?-( zm(|_!ZThYGLb*M+x3Kv)bI%d`_G-n#=byBmPG+iH8reT-j>nIs*{wS#J!#db3;nb- z#b(2#iAe|DyF}%uBplnE^ppFt+VtuVQ*9V`mfh8QVR!Ko&=aa9t`Q|Ei6yC4$wjF^ ziowXh$UxW7NY}_H#K6+Z$im9NP}{)3%D_OSORNJ$LvDUbW?Cg~4WZZ9nE*9Nf@}!R qPb(=;EJ|f?Ovz75Rq)JBOiv9;O-!jQJedlL2nJ7AKbLh*2~7Y6#ie%u literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-26.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-26.png new file mode 100644 index 0000000000000000000000000000000000000000..e917eac4af3f06f734ba4ae83f9fec73a204155f GIT binary patch literal 534 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoD#ZPlzj!R+d+Qpz6x1 z%a)beg#?ll z{mOvK8i4ExK>PuSCH~LL`~jp}JY5_^G|n%b=qS{zz~ee~KFgYj3HSc5J8IEv*2Dca zenaJCn@K!}n|t`w@zyQ%Ik`wDQ*M zpG+Jq?2lemFNy@ZN43N?q9i4;B-JXpC>2OC7#SED=o%X78X1KcSXvobSQ!{<8yHv_ z7^rlKb)aa-%}>cptHiA#^!hpzpaw~h4Z-@#bt_A=A literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-27.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-27.png new file mode 100644 index 0000000000000000000000000000000000000000..d1bc4dc7582bdb8e8444b2aa37b6e54827ba79cc GIT binary patch literal 545 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphRqdPlzj!{{J6H5DOrR z<=NQynVD^Qc%JI$#0Uv}(bwOutXw4_aZOXRQ%XvYlXIr5?EnA&eb!HL02(Y<666=m zz>rX||GvX~f%ggl=lc!TGj2*)cNi$inB?v5B3Hzvpbg}(mw5WRvOnPw-$VW&`of&g zz7#R5=)RBIW~Z9oOQH%Ar=90q+#<6iwKZ7g$sX5$3VtQ&&YGO)d;mK4`yfJvX`njxgN@xNA0xg${ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-28.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-28.png new file mode 100644 index 0000000000000000000000000000000000000000..35728e2a7b8ebc68f8e5f1fb3eb025989f3dffcf GIT binary patch literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoCw5Plzj!Mg#vD7#z@q z7#N;0Fzkm3o@ZbHs#(v#@E$A(RII?j0JPx$|NmU)#jXLB36uo+1v4l#yccjVa7Z}6 z-{AiIhW>dwwtoQ1F(!GtyGXvt+u8x-u$OrHy0Smv5#y9$%vW+S0_jao^eY1@YXGt* z0BHpvEwR`9C<~BI@^oErs`7 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-29.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-29.png new file mode 100644 index 0000000000000000000000000000000000000000..85a00aaec86a1ef412935e446c3c6cc26a4116db GIT binary patch literal 725 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv39`pAc6d{T~McN+AQd zGPoc_1jyabz>vVe@E&Lv1H*X+hJFTyG%>MUUEKl(hV={#9u^i8Cr;eFd2>NQft#3^ z0|P^#lG2J5E3&z{tE;Q$Gcfr1`Nit$Mp#(r>gs-DV0g>G@SA}lfPvu-1H%pmhL;Qs zPk=7`|Npq1MGw$2(UKs)U&pIwM~qX3F<;5S2q+|woak2uRMr4wPXN*uKw9GMa!Gd}ebm#%F+}71 z(n&YPniK>aLeJ<--z4Q@yd`J5@8)0s?Y)HrZA+_O*quuiV^evlzNu+~R{5<&*XBui z!I}pymdL&Rx-pu2Mp84UaI(LE-Lb7R8pY3WDkiFQEed&}H_b40>o>C-8!Du?^h#RC zi@i^HuU*)|_BG;CfOns|lVyBDM~jGxkLt8v!7uK+>~%eTkTd4;B%VCw;5(sp`ksmc z<*YF&56q4>b1sm~2~S>L(f?*8MwFx^mZVxG7o`Fz1|tI_16@NST_d9q14}C-3o8RdZ36=<0|S*Vu?`dsx%nxX zX_dG&gkE1~0@NT0vLQG>t)x7$D3!r6B|j-u!8128JvAsbF{QHbWGX057(8A5T-G@y GGywn=JmJIu literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-30.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-30.png new file mode 100644 index 0000000000000000000000000000000000000000..00704a1b299af04afdb53efd084b89c91f6f009b GIT binary patch literal 529 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoD#ZPlzj!W|;CHjs#}^ zPuTOn;ne?tt^eQu_zwgM3;&;g{oi5z|ANE+*WdfU|H=RP*Z<%D^xt5`|NaaAFHHRD z0W^W7B*-tA!Qj3?&wH`sf6CN>68OD4i2P2@6KyspA z8BkdRkUarN2LNdam#3LYg!*E1pf(3NMt_cwWPFwK7Eg#x(9--RxU_ z85pQ^iFKf8 z$jwj5OsmALA@uq>6QBl3kPX54X(i=}MX3yqDfvmM3ZA)%>8U}fi7AzZCsRT3#Ng@b K=d#Wzp$PzE_P;y; literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-31.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-31.png new file mode 100644 index 0000000000000000000000000000000000000000..267488969840f1e10fa42ef4316e6e53a58c3e8d GIT binary patch literal 1137 zcmaJ>YfO`86n@)6YfFK05n8SlDKHA-;~OY;FxuL#Tx_{Jf-_KP0hyJ81u9e02oAYP z)nU9b91DvQWRr;*8b{2G>lj;;1?EP!un;tgE+kv_$GANEzMuZslJ|X{^PD{AoaDU8 z+gEHd_=_S$gb@GyJY6ZnQuc1)G5GM>_X`a9G-!+(LT(KEy)^qWT3(k|Y9ypHfe=>@ zAupJe>j@!k6d@Zmgs9FF5^leIyCjwL=Xw# z>&rT0qLGxywpG4{?Qsa(3IQJ}$$0Bc6c|vn2gU;EG{~eOk7b(}ba=NCP4#Fwh(k@N zt44{DofR8{-MOf)LPsn5yK!a^!zbbDM3WUICYq0NqlT9g+fM+F}r$fTfNXBTBEM4p~q zU`R0Hwz2C?OaO<#&kq3s@D~HvHm78tP3b5#m64h;NwLd5yh%yCtMd8Jyk3`DvT66O zGRiBNx36x_Z;r`_S0$^|*|I;6Gi99GLW9oj6rBILiKFkuv@IZjP8DM_8# z)XvykOzdX3kzwib&7TIDcz3=|Q=a6ltC5FLYm$aq?&-ypsi~Aj&)UJ26t%fMz$U5D z=Cw2(rYL*MvnLx*BZ<}NGzTADc_|iiKY05=!l(6*)iTZ1tbtoQBD>uuCPrq5u8-d3 z74tVjyKFXdP>CV2A^e@49f3v1z6`q(%ui2ij;+pxOZ{GpP(CKB%`Dc^9z|AsMoM;E zX@N@A$j#GA1s;t;-R@DYuRm5i3cv3g znoK9%i+A3fZToOQG*DRZ-GVZ?Lh3U+yX#)?^OY5T#q!?F>Djrqzx^lGAx`-Zk9;pK z|Gf0;k5#ct=f?T1;>e|E>eQ7#qDLPr@BeKhLLC#BExq8Pb6(s%_RqyCv0B-4daX|o z`g_#WqP+W;lJWksO6jpJCU8|KLLQ^!A znog(EbUC$4MQ5p~bR|WpC@Q``?Bpv2wr0zL`Xm2cQ1Ng&gDH@)6Uv(F9UbOYE74e* fYpwEpo4LVSYBgJqw0vu2{sBVr^(Ni4w&wW1&I!)b literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-32.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-32.png new file mode 100644 index 0000000000000000000000000000000000000000..6862fec1101779a77896cb0b405793ca9e3e4065 GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0Adg@Xp)~852STHT^vI!PA4ZUFimK= z^uIIotjj81mFxt^XM2vW^qEm3?Pl7OwP0GCmdKI;Vst0CqQC-2eap literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-33.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-33.png new file mode 100644 index 0000000000000000000000000000000000000000..52ad64a16577bfdc9d97e3debfaa6a890e4941aa GIT binary patch literal 606 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0Ai5s2ABGMWq@L;o-U3d7N^f%QmmG8 z6li!j-LA0xS;_VIl8?^?3OgPsJrb~Rsdtc7>g!se^vdtb+U2vpM%TVrljo{05VP{s ziJ3pk%DzkAi|u)E{C$1y{9d~l>xcD?8M$i@U$floDkeHRIF+GqnV40|gc7l?xeBL* z`lg3>?b|Ck$0loyjKMUMMJH7+L~$Jc`JstPi+!y|!|dyAYhHx*m1X4o*;L-|wtnK8 zdrZ6)A=w9yq}$(}y(o}>>v!F}{JcE<$^(9r&YpEy^KrrU$>$xO-<)hB(b%iM@AVfA zt(%S(|AVqKAMveyAvU#P<>KhMD^qHIwyA5!vs*0EIH4u~wssQxW%KpBx0pxyP}G$AKL75>H=O_9r}IoHC60N)ARqA%WyXzcQe*1|WL^ z5Ch%DV4!TLc@s!?d%8G=Xq;a=@wCtp1rCd(bGXGDq36TU-IK9|GJ@!{YAJz zfqzK#UcoDNYn`#_07lXNa36Q_9~mV zGxR^Jaz-5vUGEQcmTHM>L`h0wNvc(HQ7VvPFfuSQ&^0vDH8Kh@u(UF=ure^zHZZU< zFi`0d>p;08-nxGO3D+9QW+dm@{>{(JaZG%Q-e|yQz{Ej Rrh;OO!PC{xWt~$(69C{w!2AFJ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-35.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-35.png new file mode 100644 index 0000000000000000000000000000000000000000..fcc4dc389fe3c84d78f3a4fa00c6bf9e9f34ad6d GIT binary patch literal 567 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0AddyHh49s={k`9=jq}YVsZNHCB@*w z4g#zX*7K~(SY&x$zM+40hw}&KM*^h=%v{3l2Ur^y?PC(>pY`MO%4a4WZD&$6j6)8T zoPB%e?d|RP_cxXs-jq2nzh85nzr~HIiRlL(hF{txs?xgVeAAuD3X4khdl*@!o}1db z;80AT(AG8j@{9_X6?aV$`5U`9^zV{|Q@_SMSL&Fy&Ub(IjW4m$JTaVCb~xYU-+JE8 z#q`9}440)VCa%8w!sL{p!oo>&PHuEj?3|R5dhLDAmZe*lmM`yUN?!jruIWX}?6#FN zl{W}&o%L|(hYe@jS4!Ud@aW=|qXx&$d<-!CF`9nO2EgL+JH&CO{36ARB`7(@M${i&7aJQ}UBi6+Ckj(^G>|6H_V+Po{!m Olfl!~&t;ucLK6TP>D1c* literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-36.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-36.png new file mode 100644 index 0000000000000000000000000000000000000000..4c01a117f44b90db06c4d901f663c801caf97bba GIT binary patch literal 1371 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_ma{0G|+7po0JZfdm7P zXaIwmGiL(n{~*AyYSk(ryREIVv!Se|y1JpE97wiRR(6(^0mWMy%Gw$#Tk0xW>Z+S+ zt6J*HTN0O4r8CpgR)vOkbd&>K z3p6A((hp`Phzm5Kp$6!@k_J#fRkQ-#Qww$y(47#}0P;03tXitefq{@3=?hj+1ti<* zs({u3-Q3WSTT)We(oo*oP?a3+4RQm>n?N^Lb(fR?y%rzj)=~!yNwB}bQhj}W;T~2k zpfIdx0)~G>HBcEa3i=8QLqkLTY;~GzN5TvfzYLsUwL(?&zo$xtEKR=ps|v^mis!Ck*8(V;WV8R+cRWG7(U zn?7b(3rrUCOM?7@85kHDnOIoa7#W$lgr#KVq(yl-EPO)4!~E^E2)m5$#B(2he)<0W-G#|s z60FSpMNj|z{r&z-w~H8)((HdfU+k?g6A-m2`19-gja8ZYeB3q>AD%wi)WNNMb<>6! zC4rplGP1%f6oomNCn~paH#8I&I0$qr-|hf9l`+ZN-G!s=-qb1}hrPtp*OmPVj~J&6 zW4@Au5l~1VInl2SsH_3Vo&dxNKx`nb`%DNZ7VPQb7@~1LIe~#mO)X6!At}j$)kkMd z&KrjV$4(tO*r{^%$kDThPai*jUR^;$g=bou*T#a+ogH1B-QFHvo~J)BE=_%E;qd58 z%qOlcuTxs9vR+Bein^6#wX5n^(HRBKFlJ}vWZ}y{xyAI1jJIzv*)FtsS}J4aM!`*6 zH`8fPq@FGw9By9D?;o~7Og~>f-v0kn?`i8eIC!}DIC;7IJ6JpoTwJw}>^QnE zW^0viOihhbQc#hXRs_5Atb$z?ZkJANeSIzeM9=wC=T4qI-OsdpdgQtV8&1fm1jYnO z1%<^0MvAh2_1x;?tLw37-9E)F8$Fp`X)U-PIh!@wL1=C6TiLm>T!M#WK3wQ}!{+(r z%eSxoGb}PciKs1UVDa>sx^3<;V@bIP0ftF4?3_ESC$Z{&aTGF+jJVLMD70B(1H&q> zoEUrQ*(`_W?EEaTf!R+Xq2)8f6ur!&w|lI3fx)a=;u=wsl30>zm0Xkxq!^40j0|)Q zjdYESLJTaej4Z4S47CjmtPBiPy2Lrpd4U!-mg7ec#$`gxH l85~pclTsBta}(23gHjVyDhp4h0!usw22WQ%mvv4FO#twj7-s+g literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-37.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-37.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce531a8ad49272523e0bb839b14b2898957988e GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0OATDHt^nS6$qrCc)B=-Se(9kX|4a^ z01?&?_c{2!TsYG_|CuF=hD)K!na65Bm|v+Cs5)NrKV!T9)m8DmnX4QFX7TP~@tAhN z@cpxU)$ex7_y6y|_uIJouivN2{=M_H-qcG3vM5V(XoWtOED;RzQ`MNbDt4ygth^=b z1v|vp+O(3la-VrBw{5FSh6r0waqv|4?|j>YuN5wtruf_F@Vo23ep^3Tv~Q}*hLXpA z6U=W{Pg4H5Mqo*vs0Pc?sH=N+FU`n##1ojbFppbzPl;gDm8I!Zmv%aTHY>VYGrL#v z*Ml2gnJOAnd;5hCU%U5L_MgH%hQv>HH<$G6`3Cf_YKdz^NlIc#s#S7PDv)9@GB7gG zH8j#SG72%Uv@)`=GBDIOFt9Q(Q0WruK+%w!pOTqYiCaVH^>rpd4U!-mg7ec#$`gxH k85~pclTsBta}(23gHjVyDhp4hg5r$9)78&qol`;+02e2}*Z=?k literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-38.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-38.png new file mode 100644 index 0000000000000000000000000000000000000000..7b313423ab61ba84c091bced448c45d9b0fe694a GIT binary patch literal 650 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ctfMSDS$!-2Xu|Q83#}JFtTPNH49d;0C z-CsDze!>N>m&A9PV z%H`mWjW+i`|2P|c*nYapT6cAc2h%D$=3f+3so=2`^Z596+9?;O^@S-a6+v7%!5>7} zMJgax{ zvnDZl){3QnuO_M*q^!8QNH~4nrWZdy=FLeIo|KX$afahugN^r8+eBtbR= r=ckpFCl;kLIHu$$r7C#lCZ?wbr6#6S7M@H6B@hNrS3j3^P6NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0OA!uY;efKm4ktSxz^LgF~s7u?xnNc zQ&T0_AKZUmH}8Ax`Ra3L<``Qou5Ivi({fgoa=W0mD9AG^BtTGo!?tD# zZq-uS;v1h7IH^O_QP<=%^JbGvC2l6iE#F`NeCPb#MeFuIT=Y>v{LYrwMjt<@HE4=# zl%KvO>_*{jUZ%GHh3k9np7=e7wff9iP6^W;e$izYCjOh6mdkiR_?uK2^MknZ$?LnW z_}5B%c=AWMXqT>9>biWPPxs37$=4Qb6Mb3!9ivsC8O9^7k!r*f^lsnFxB zZ+dd3x8_`bk39ExU01eiN*A^~WM6;g{2iZy6^ScbTZRYo}3RC&n>Oaw>I$Psf)EQzf<)l zx?8NV@nX}q6_#c{F10&(z25u(Q_JmtzouK)_0+G|U3c#9$wN)9FLex-ow$}&wZvwJ zdb>n|(BZ4k&F5*T?5}#W@#0S1`G*b~yZ14%7N>k*5OuURT-e+^JMXOS)Z=n-g-;Hi ze{gQi&tD(2jtDXH

GCF*NsA-0RNdA$4-q9Lv)C3zenM<$XK*W7@L<`wI^Q7Cdv9 zr5Y%25}e^>aN~`AQOWz&`($IJ&hd*+i?!cbb~m#jsUc7>NI+C;k(N?uk6Cf<@7vM$ zv)iY?yHO&sr{eea+YAmpg0f7zMO>~ddMzQ~%edhFx7{m$O80$@KKzW?TYG=ykteLna4 z9NRBz8kWxpTo|y#R9&a$>!COLd&<(zF3z7j=jNBWS5{6uW#YNvnpBw4u^FPrBo?Rj zrhQBLf2MWo_xe2+zmk7k+ASs-{o!*A7tfsw%Pco>YQI!$;LPM>`DRo6^qF}1P1Bfz zp|Lzut38%YU^(Z=m^xePTG--5?cUOiXLT06GbbNDU3OP1v*wAl(c9^w3)}6yz67Zy zF*SA=^D}wg-1IEs_&zCf!ylPGOY|gW+=%3LU*(`6P$ke{v|+2;tUb;#>;5zO@co+b z`@qk8zznHc;u=wsl30>zm0Xkxq!^40j0|)QjdYESLJTaej4Z4S47CjmtPBiPy2LtA zH00)|WTsW())0Dqoe5BbB*=!~{Irtt#G+IN$CUh}R0Yr6#Prml)Wnp^!jq|>!i2%o L)z4*}Q$iB}*Ios} literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-40.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-40.png new file mode 100644 index 0000000000000000000000000000000000000000..37aa6b8c6c74d4f90666dba3f0f81be6d7f7cb91 GIT binary patch literal 632 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0OA8cY>>@W2{f3|-qXb~#NzbU$%cN1 z9Ryte`{k&!cFi%0?Muj;Abmja4DTV<36_joR^Hjo*wT_B70+;TWrig~Yp}w_2K%Ez z$E~+b4KRp)`=)-k@#Fjl_mvF|>Mx$YBf!NuaRE!9!aGH|=B+BnCQeV-eCZtb{KYpp z+Nz(h1-`bqw*JHw>C-aTf1la8>yr=Tm#mpPRd)(zIn>PA(zurCN*u$3=Cx<`GRa-} zmp9EfZpqazjhYWDXR#M$cO-|goVZ@@&|qPI00CO%zfX=E>~J~3iR(iL^~p!vW0y$@bErG5OBnM}0FFVdQ&MBb@0PND{`v3p{ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-41.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-41.png new file mode 100644 index 0000000000000000000000000000000000000000..19a1c226e31ae4884544c67e195bf041b13f5c24 GIT binary patch literal 608 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphR+jPlzj!{+~u7I?eF^ z4a5I(hW{HG{@-T!zmVboE{6Xd4F4xE{I6&DpU3e3GQlFz(Kz2b@it$Rfq+Z-ZjDff+e%9V z#Q*)*Um7R$_F7A&jrz=&tO?;~tY>hi#(MehT#?tw&mP!n*ZJ{>ceWCbr;nBN4Cfh> zI+j1$w0r(%8@s`nzr>QW?y0wPDbS&+C9V-A zDTyViR>?)FK#IZ0z{o(?&`8(FD8#_h%E-dXz);)3z{>MMG|WN@iLmZVjQ= z*O>q{NP=t#&QB{TPb^Aha7@WhN>%X8O-xS>N=;0uEIgSCigpH1S3j3^P6O{9159yb5ui~(01^Q+R>2q$y)dc&6(`R2068ipL4Lsu42&%74g2Q@>^CUr z=S(mVcz<8uJ=gpKh5H-|4Q%HPm>kvz6xq+22vpCQEaloaei&!Td{)%JZmqBX`8L? zmppc7-+%2>Zwq*St3Nl9KYP}9me$v3H|OtF8isNnFFG}nW&ghPN%7O)9H)OouW{;( zJspK-e;XZm!MnF1WK(b9a;t=yT2tILj=o8rXuO7HIsccegqdD_uTHM<&t&U1_PxBP z>7uKxgQ;fkitO-z6$z~VZre6-Fc+ z^M2jBALS~yDOCRTnHw|zZti!Pnf6xgUAM94?)B>Er@ zwc-E&|3ITySs9p^7#JBrk_H9_Dk>@m4<1~(a^=K{6X(vI3pB?|iW`&$T1tZaf`ReL z!p_Fb#K|EjqaZEB%_F9wB;i;T?q{hfD99(No!A&GoA>cRYpSuw`v=y#t|^nw{p?k( zdb{5D$#b8LuNFCI)PFsFY4Qs7xj$}hF3WiOBEERTjU~>DFYN3qi7>x>#lko3^7m<0 z;@0sQE=G!?2f5M%wBD-;E3i5QG&JmQSbzV%zWAEmg(F3*Uztyj&?{0DCiImP%!Cnw76rV zWTa(vOwnxJV&gaqMMKYvW|pd^y^6NV#@cGu>gN6n7O%G6-_RYd5w_pL&lSnnSfP|25 z-@p57w6k&BbTlmB(zqDU`CLh5RiWn;*50eI!tc@N%ERpv* zG%uQPsu&6eGd;0iBXoB1!3BKIiiEBhjN@7W> zRdP`(kYX@0Ff!0JG}1LP3Nf&>GP1BTFw{0MumUE!F0l?24Y~O#nQ4`{HH2PYX9Cn9 w39=zLKdq!Zu_%?nF(p4KRlzeiF+DXXH8G{K@MJ2m0AgV9boFyt=akR{0KNYMxBvhE literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-44.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-44.png new file mode 100644 index 0000000000000000000000000000000000000000..04cfadd13be6253da5b6d44a80e51104d9cd09fb GIT binary patch literal 623 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphR_mPlzj!{{J5x0RNW$zZX_;H`CXtRkVFcA4q#wN02;!;0Ca={14BOp!+wyN|K~Lo+yttW zFA4GsW?*1s=HzEO|K35kK~zMLhfTm>{r>y!=L-~^f8P+GutRHgBTy-0lDE5y#@-EE zHvu{9C7!;n>`!>aIAs{~l^l$KLITN&eq}&q4M6q;AgutT4LX`~{{iV%PZ!4!jq`gi z+~jLA5OBDd$bMR>`;=XR=)eE`3sq-aH0bodv)t2PEtgBpAd-#QZ2O}fzn?6W7uXT; zyQQPa;e_K6$1{$Pj0#L8f9NbZ{9_5jgr}{q)Ryjfy|QA8R8h#@C0yHC8qHh1oHa|n zR^7`<{#qJpb=JB1$6WjKw&FHN-U%qYc-Su%{E6@IexcW&fDTeEag8WRNi0dVN-jzT zQVd20Mh3cuM!H5uAqJLKMiy2EhS~-ORt5$tU1A+58glbfGSez?YY4r*&IG7I5@bVg rep*R+Vo@rCV@iHfs)A>3VtQ&&YGO)d;mK4`Dq!$*^>bP0l+XkKgQ~>5 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-45.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-45.png new file mode 100644 index 0000000000000000000000000000000000000000..fb1ca5d87577ee512ecd73bfebe52581119a9f89 GIT binary patch literal 579 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphRYXPlzj!#tQy3FknRt z3@3pIA_ZZik_phUH2Iz|Ns9VG%M#2&?c#pAirRSg!2XO`yB)X z65ii8P}n~|A>e$2L4Sk5eTCeZesiEI#w2fd7p2(Lm^DBSdx@v7EBg~3F-{rAd?g1X zppZavqF)(MSp$$g0Z3Z_X@eU=8}|a~0#6sm5RLPD&z|OMa^PuwxJZNP)PvNvjdEK1 z{(Bp>uySS!-z=E+fBG_)|2mr+dg~r6=Chn%Vo|*D5huedhwfN#TB z&+6su7nuDQO^>e<@c+U0srhx&5zDGTF`xTtyXVw`z%N zL`h0wNvc(HQ7VvPFfuSQ&^0vDH8Kh@u(UF=ure^zHZZUp;08-nxGO3D+9QW+dm@{>{(JaZG%Q-e|yQz{Ejrh;OY!PC{xWt~$(698G6 Btw#U= literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-46.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-46.png new file mode 100644 index 0000000000000000000000000000000000000000..7303b8f5ef66c0cee50108cdb9d215068272dc73 GIT binary patch literal 1094 zcmZ`&drX^E6hDL!-q=BcU|j5`PBPv2s7q9$Nf~W;wH>s~41DmF_G`CJ2TT54#-pZDFFTY@IS>tIA==Ig?xYuM*-BA z0RF&~`UyY<0q`>kklY0Dyz)zD&bt5s_H14*7Z+9=FOG`BxjY6T2$z<3|rBWR5`TW2AKLJkvJ65m8-7Mr_9%%sy0bK?38KBF6 zRDj9=od@(GAQ7N6zbOF~11bdc0id&hcz*KCzTeu~vRbY9Y@3^#2wacJ?4?`@7NqQH8n*=MU#tb7S9vey@hkOxu%Y8u~=+2n^zt`9s2RV3h=!Q27^Q*X=!PpD5|))czJmlYc)DLT3uZ&m&?1l==nLy zx1C*gDgV(lIrO#SibjPt0IdW13A7qM8U^&NUyvz44$zkKksOc)Pzj*xfRwN)k3nKU zd4Bb>{Ni9)5E{up*M(p1Em|lL0aM8!eQtvEVPi6VBYI+lRJXF#3?*jRZlBwIcl|Cy z?e?|$d~78__y~ezGGD9e{S_|}P?(j*F+LYL+>Dc8I)l#*_C~~pz8Fw)gw4VfLn0Qa zaG4s%28`JliPCIc5{^SNI4QXaZVAbZh`ZU;UuWxUw)IO6?)3EyShu}nj2(M_-${r4 z@dh_$XUk!$RMOUpSoRkTy1%@leD4=}H~Lf~L-lO;+3)3hmAla?=8%wxu&B_As2Hxf zFI-=%t-Eiky{4-_oz5$ZN_{gkBEeYH*kp=6+HmY}fSEC7NaqW(c&DcfoP*|R?NlaT z5R@s+ddU1FG3E_ppy|PkX*<>U;9=%WVgfJm*z9+lxg+88Il}z+KhDVuGO<~iCq((f z&Tf0}aC^>SQQUGFH~!ZB?(G{MyNb$7%H8|wwu)9&?ESXeo@Q!xUXhL5*gbIQBRc-Q zi-D;xOAf^pO}R`pu87$HxbQjWCH-vh2`tX5H1{km71LC*q>RDukO2f&uU_51e?O1`RM6jlVgLRo^XFd=2-pe~Ie-3jLc$&ghxH8&r`E5( zS5R>H{revZ3JdSw|5R|TaxKtQ-jX1{UQz@ zc^t@LFY)wsWq-mW#wo*?ujF6^6cR{I^eY1@YXGt*0O<@MZSa7x4k*S@?djqeqH%uf zB~QKv1s;b$_BlthmiB$$zq})P!7hW3`5qOG3m#O;e`3xQ{lPY;QkP97xWb8b*{+)p zq8N9C@4mpaC29)ul6Jn0>5T%7tVa(zEO9&X>S2h*M}x^vwk`5BlK0pi|A{+dZ~T?V zSKoDJ_(t$MxfD)Hs|=gMuKR1QSkuHCotuEpP%UwdC`m~yNwrEYN(E93Mg~R(x`sx& zMn)k9mR3dNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0AdjExN|Tg5GWSx>Eak-ar)}Sg?ZAB zBCh_c9{KH4IK|GRA)j=|E0p^zllZi?A$c-M@BBTsDwsqC>{)Q^-il+&*W(Mg%FOO= zeR{yFmVZsy`+GaT-(~;rdiSG4zsK>mqpu&F|8jBa+M7AasT0)m^!Lfe%ue6Cc@pz` z{R6j|UgzZ8nYw?g%(>8YmL_SN*Pcu;>Izj1{Z!($BVO$Oj;f2EZslp^Z2s5Z-!__& zKXHwF?^%&L>8{%mIlA3*uNi2SGvvEFu_T;#XV~|Vxj}T|foUE|9JQNct}Mpw+UPfy?W`MqvioYj);liDp4gQst8KFhtw?8eNqZaZfS zi#^WBHHeC?OxCH&e#w60>X(v_+0G1oHk;V(3{ti~6+W(CW8c5D+cou8@53|aTvQ|c zJ=S_##UGN>ukJQ!cz*fKf7ic^LJe*c)^ub@0fSk!#5JNMC9x#c zD!C{XNHG{07#Zjq8tEDtg&0^`8Ch5v7-}0BSQ!|obcuDKXvob^$xN%nts(UKIuoD< vNstY}`DrEPiAAXljw$&`sS2LCiRr09sfj6-g(p)%Nrb`E)z4*}Q$iB}8~XDp literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-49.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-49.png new file mode 100644 index 0000000000000000000000000000000000000000..7610e0beec4bc46ffc45772d4dceec6757e00f77 GIT binary patch literal 560 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoD9HPlzj!W?+~CLk$0c z>KPb9Lm3(zK;jM#>;M1%FCZ|xzyCr&z}ENge>60lnm_;g{{2r13J%}D|4Bh%Ap^tY zJ0>CJK;@hzL4Lsu2KN;h8JU<_*rsh(2MRJKdAqxC%U?fo0LWo4@$_|Nf5IciDZ`kr zEGpy2Yv zb-IqPqpp~*Tz+OL!-F@q9G69!*e|%3x625zRVye1!<0d_#5JNMC9x#cD!C{XNHG{0 z7#Zjq8tEDtg&0^`8Ch5v7-}0BSQ!|obcuDKXvob^$xN%nts(UKIuoDgTe~DWM4fNAI*~ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-50.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-50.png new file mode 100644 index 0000000000000000000000000000000000000000..146ca7c12cd135fd2f45cf088803bd424a7346f3 GIT binary patch literal 712 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv0K~pAc6d?c(B6kYx!( zUY<@6Mozj}Mv8G>hB=U%5N#M9tP4~V=xZB$aCdV14CK{(D86_v^$3z?CXIYdL*i;nRStYG=h@apZQxg~! z787k%Q|6GJ9}$$(XOpojqaevR?Mz3bTYIBxPGKa_Uf=K#yM$SuQ5o$GuD;pRlk>Cw z|NpOfZOcZWe-ulC{DK+wD-_&!5IBE-eZ&6!KFdh=ghz~1hB05s!3ZcMkeujO22|DnWKRHMU_df>)IPXy z9Y}Y3x;TbtoKH?rU^C#G!y;_Vtt~AUSmvslDjLe?rx(JRXIjeZtE=joD;pcaDQ8>D z?5vzD9Bf={!pW^*uz^Kr%d`!fHW+Mn6MX)3^G4GRo68GI9*IA26%!Xp5)cy<6`npJ zML_6@s~|h0W~M-=iZZicyO%;rN=l;D!h_tCCm!Y~SFG$>9Kd*xg<-`ek&C4^4{rjU zrCQ<|QIe8al4_M)lnSI6j0}tnbPbJkjf_GJEUk`z5*|`7! literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-51.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-51.png new file mode 100644 index 0000000000000000000000000000000000000000..343ba01943dc821acd07d20aefa40204082f1efc GIT binary patch literal 1193 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_mav0G|+7paMAH;o*U^ zu`<}%*@5D$tgQdj81NuJKmWYE{IIZadj|&vMa9L7m#kjBX2pt?OP4NNv}kc-V^;W>(gmx$~ARS-NoHqIvV?&z?PJ#*CR$r%szRX>xyGe@}N$ zXGdp9a7cT5$ASe5=gyrsYu4=P(`QVXGIip_Nqv3&-Cf-s?H#Qxtxb(h^>y{;X6CZ8 zvK<|rGiT14Hf{Rk$x|jwnAqFf*VWbC-qzmI+|t<4SXWzDT~%FCUQt?7nw^=9Y$r#@d?Ns>-VJvhtGRlEQ+*yxhF(tn7@m^wi{( zq=dxC@Cbi@|F+h)=BDO``i9Di%Cge3;-cb${DRz^+^o#3^tAMpq~yf-gt(a4=*Xyu zuy8{IgPQ7^vXau`!lHt_{M_uEtc=X`)U<@S_}J)}sEEk$(6Er8;6VQX7bj;{78V^H zos{I1jPwjw7niV*(6p4)C|AyiJZHE6F8U7yvN97ZS|EC%L*E9Uj zWBC97|Bqx*VCrFzDGBlmW^hO_cz<7^p#Qu;!~XdJ_t)Rw|Gr^;fdCQwY> z)5S4F<9u?00*A!R88bF=7;ijr;?&8_Mw<T)kq|%Iu7+!lHwr*{@%` zdMPa-B{_S>teMdfMTb=?)`+al&3XGqR%Y&;*qFO_Di=Pgk((EH&u(AcKgLGKgNh3i z9|}(V)04m(c+qfU;YZF+&y$)fGha&1jJ#=SqriDDrhCtyrX`0KJ(_fB)2FUet6t5D zVw}Jto?RK6SnHe|TTuzf8s=u}HwBT7;dOH!?pi&B9UgOP!efv%yEu8~oQfu)s^g_VJ!wt<0_fq_bw zSOLa(ng0cwy0*$|wcR#Ki=l*-_klAn~S;F+74o*I;zm{M7IG8I^U PFfe$!`njxgN@xNAFk`(o literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-52.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-52.png new file mode 100644 index 0000000000000000000000000000000000000000..082470851eb6c7812ba598f25f2810c703d9b38f GIT binary patch literal 1617 zcmb7Ec~Fx_9Nj>;0^u+c6loy=G7JO>2_8hC;RqOo3?RtSf(ejB6q=&33fdYjg-&Vl zDDh-s=a2`CZQNaZ*2#pB^;QY7NFS%xL@0PhSJ_djS5&+^70A4^! z{0M+O6afC_06_m90H@DRT#5?xKtw!hs=JN<3Lkk(gN|(}@1IQpiU`t_?B_7uP z*r>U`0AL#z!9ycIW^5O{1$esX5CRwo&Wl|g0#D~VW;;8Jotd#i5FCQ692o%;2^bvo z8XMbSFl>6I!%j`@o}B!`U??0O-l@^>5TqhF7|>{-x;k5{J*raG3=Lh<>(vIs4TIrk zfB)^t$p;e2U{}`_u~HOoB*F9P>bT(TL3_rn3|beTJbEcTA#}FPY>TcL-al3W|)`9KL>{(9!A9Pdj!u=kcrWuJL5h<&7J8R z+?VQg`Zj?1u?XcLreeTq4(3ze}sDx%L;uR8%Z79v&* z(_-8PZ{>m#5*buT*=KUupF^1#;z~F;aBO5gb9I57lob)0;HAsthyjVj=i~8sKA#k6 z?$ITeOI6)kNv~F+svs-mYK>NQU3u`(Hb!ijH9;YllE_4F((1g(_)V#iTgxiUh%&j< zQ|Z@S`+NO?NM>S8TKKWU)?}Gn-CgJTTSHUbAE$(z?O8b)jh@PGo1>$6Ds9b$b8Rgl z`{&M7H2vJ!alF{w2NzqU>Aj;E(7Ym}_w6gl|Mz)ID~QQ(ntouI&Lcl-diN{ML;TOUI3w_*_kJrlpK#(GJPRn;6R_sDyq{(+X_R-WVLZowk1 z^Sf4S?O zIjDll_JNM3&N>|F-oWFrTe5B&O!!>-Ut^6||FgpB*rHzo@;ANc&vqHF5NfG>Xs{u$Is~o~hcL%&xPZ2X&l*JYC=$X5CZ~;^bmE!A9^`%l1D1mh9dOF45 zheDxKC>~$o%ib`^6=r4g^WSZdICwSy8myd;utmrh?d9&`fzT{r2G5O^%N6kAdEBi0 Tyj~vs&jY|>vLnuhaf<#2WBmpp literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-53.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-53.png new file mode 100644 index 0000000000000000000000000000000000000000..aedfb1f39b800fc7b5c8f8510deb47582b3641b0 GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphRqdPlzj!{{J6H5CCvB z5Qc+;!~g&P4GawK-@m_q|Ne%ChJ=I!1qFro@87Rqzg|E7`MD!ga1lzC(elw?fuc6Slx*&Q^mS!_!Xw5h!1rU3PCLfLm(yKgO978nDubpsHtXYA_rCDUFR?wXc-M9bi zmpL=|Prtm}O5bM(C#RxS#L@L0r!Kz>jeNUr+qHSgae)U{KVWG(wr{o1f~Of0&1&Cd z8XjqQC_;Oqyoda@6uGVY3DG2gTH@!hEXeXISO84`}LvGT3t_Bv%@#k{I^ z-Hg49#2r30%ALQUT<`CG;rU9RxDLN`YaPen>DLuMJ$v+B`WK6en&t zme2nk5Ug zMxZ3fFPOogpdmrw{(6D){Q(a9-_O4%=_(GCV@&dPcTw1!ZQB6ku$OrHy0Smv5#y9$ z%vW+S0_jao^eY1@14&PSVh`Tq{y?uYZ1r?;4AD40cj9faCIu0fzyO8CY%E*%eEDB5 z$-0Yg?Yue1Z$964&Y&zV^sJ@$+4Z_nDkr;cdAXgodTzHuZ690A`^AS68c#DO{e7|d z5KGC;{Y?DtIWt3<*!=xXn3ZxF*tq^M?eynjm1xjkaoY3VcgX^u|Bmca63#AQyvCGs z;pH7M?yt?P>6O(NH!=L~H+|#7_LkSM>-NVr;cKp|Eb(|_wk~-~q6qJkdBul%HwW>W z>-LCr&Alq!zFW*It^a%$&;zO^t`Q|Ei6yC4$wjF^iowXh$UxW7NY}_H#K6+Z$im9N zP}{)3%D_OSORNJ$LvDUbW?Cg~4WZZ9nE*9Nf@}!RPb(=;EJ|f?Ovz75Rq)JBOiv9; WO-!jQJedkg4h){IelF{r5}E+u)W>)L literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-55.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-55.png new file mode 100644 index 0000000000000000000000000000000000000000..f27359f7a1095d8731f3e9a9f3f0df653394d746 GIT binary patch literal 1810 zcmZ`)XH?Vq68#gJbfO4`vH~U%Q845o9i@bYpn(vHxR08Jkd+PODWMlb4~P<)BB85v zh!g=MO+f-aF@RE}9HR6hMS9bXAK!;}=G@<%-<@;M%%_<|tev%#xS}`!08(fh6pqiQ ze&Lu1|K$al?(#{9WR5WhfSMGELxM2>uj*-o!vH`i8~|vs0I<)OX!8INfB=9+4*)RA z0sw{o;eHmfX2@m ze3bHGlk>2dKZEcf8fETi!?}-lCOZzFbUhd!9$(@FpBjtFT|Xlt_`2Hm_P;f8FttL4 zWOPqgd6suJ!fy zN0r18i@Ry-n|i-j2vcENCC^@W+ZiSQfKEM5IOSHjySC8(_=!Lj?C&wI_*esl6fyTb zKq%p+x-1R4~&2(7imT311vc)&y086?49Gi~r6x)dc z046!uKtV{O64Za~r968n=3VQ1f$rZF7qeV8mck;Bq28wf=wo{lVvA5(C;XgRG#wnF zon#2=JJ=7aOF666eoio5y6=&XvM5&7vFHF?Is$ant$3d1h90nHoAaIu=j;iM==VkL zw>#;#373X+=@+#jVjp@jV28dwG zF}t0P1!tkrPm{W44McRA-|jmxk~p?jZKHktLXrWX)#QuYSJ-vEattHEUhtdErPaA@ zO^{DHOz&vkjFVv2B_Qid=kcmPZ8cubnT&*;zGDtGx=hSCY`!HjwWVnqF89h{6zouX-Q@1&ZSJo2MsRx38AWueL_q zej4I&I=FP-(}@ZEXZm=OE>h!E-{z6VGd${Bz$pq zDj^@6tYa8@SpN>;E|OHcCWGbT&v2zfg_4V6i zrs5098Dx8$x_G|`v=+<}#w2{SppOcB=*WVmA=nMrsR6S~(x|HB?qnLnJTJCknrBR8 zlHuWEWRVNdxTp+G@L7xQ*vxsj_p}CWj`1{%>+;@)x#&LkQ(*jUTbWW}Z5V&i!>Cp_ zsa^ys(a7@-kxu{;fkbHOAhnQ4M}(mf(!dCza~^>(LLi_?^7Q{P_)@%Xd58Re1Ae$# wmv4al>TsRnO${R4Ap+)Jls}28XkP+}h$9lbLT>jEe;q0SZDoh5w(yAl2l9b8KmY&$ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-56.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-56.png new file mode 100644 index 0000000000000000000000000000000000000000..16b2c98c1661f5713403c18a6d31c48e0837bbbb GIT binary patch literal 536 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphS3pPlzj!#ss$+82+P* z0=Y9`BKN_v>w%UrFwAFQNMK;t&%gk*;5`F_0|SEqQ1<`-ztM&uD+Ee{{DK)69U2r2 z-WLe;ufM;4en7%gU%zQUImRS!cNdvCERO6z4tt5GuPgf#9x+ZC#(X6QBaq(YM87hi zvIZb~0uUbnVh__R4P8Jw(bL5-MB{vNLdpUL1H;V;qUoXn35VA?IyfYJ@Z7-7#aX literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-57.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-57.png new file mode 100644 index 0000000000000000000000000000000000000000..049cd03997c5d92d56b321c732c215720a856838 GIT binary patch literal 536 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphS3pPlzj!#ssez7!puL z|1&Vm1dH5fU;wh`18rhpC}3dN&%hACz_6Zy;XMNb&<+O%1_7Xg|NnD-t*HR2=PwEJ z3uc(VKfytvVSmH<`~3#<0~YUAECot2CV9KN$jo7JWCwECOFVsD*`M%;amp~}D>)be zg#?ll{mOvK8i4ExKzsv;JyKm_P6Fv9PZ!4!jq}L~3s?+{43kCEA3lFB&n2`bC*gpe zg2oZX#7#~r7C#*wA_O>E4*1mRb+EK3Gffg`-LTNDsQG4+0%u`|h42+2IWd6;q9Ris zFmJB75TmN8YTMDo!nUK(MRy|5S9zm0Xkxq!^40j0|)Q zjdYESLJTaej4Z4S47CjmtPBiPy2LtAH00)|WTsW())0Dqoe5BbB*=!~{Irtt#G+IN j$CUh}R0Yr6#Prml)Wnp^!jq|>=wk46^>bP0l+XkKnc9jW literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-58.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-58.png new file mode 100644 index 0000000000000000000000000000000000000000..8a2bda7e148efe809595e03b56e63853715716fb GIT binary patch literal 1349 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_q|e0G|+7paLM^<>k}T z(vw$Ef^dzD%tb}Tb#)DaTw!5RE^ZzmLs~{rQ&X3Vi$_F6637)45*HDX;pF5N6;lMu zs`Ky)v9WP+aPaW+i*s=c@bQU@im6IS>9DhN0~G+-92|V5Weqj8oz>MHre@X-4zBhN zu2t0?l~wH(mF?x_ZBEYK`UWO-b)D5U9l^n|iHW&oxI6Q1^Xqp)qSmxw5*3?bz>|Qv1 z#`^Zo1wFk>3yXT<;%j2!s&n$XYU*Z0Mpf$Q+Un_Bq@~xVrq!2KOq@1-U2*Az;*$RP z3wA_BS4BishDTP0MN~LAM#U$TC#TjeTfR3brD5r^y^+yXDXGmHHXe_Otqln)FDjYT z(zejXF2c;*Ek3a(E}^EgYw@bphbB*1J8%B>(C~`6^R}{Q(Z|_up?gzusW~`}OY&)}P;hKjHoP_4D7~fB*jde1ZK9$x)wv0yQuu zdAqw@dT?Xi1|WyM#M9T6{Rxj4rwn7hl7kUYNFX`UuMDWH0mz;J#2ed5w}Q&(>7T|0L#vwX;msrN6Qym|E0RT+&}&mO#csL3$(0h3gAT3&Mc z`)5zzy?y-px&8^Zi2_^(+j)74xcNTv@pAWf^mO$Jws{@7WzBN@sJe=p>T;Fk%a*36 zq&cc=x?5aRH2L$S&)i(ym%6>ZPM^|N5SqHLF7ztrPt%uMOTY5=`kvKYt0cgAaoe{S zGp_WVTet4rynFlpaSE#!I=-D@lbZEx%gejQY3E+ezhPZ{?oMS=LgBris@!7J^rLLD zPhLtr9lj=JYt`9Xr2_eD*rj$SK3`S9&O$>i_Ch}%+(R2Tp3Hw(Z=oWJB>hjv-6?00gTe~DWM4fGcN-t literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-59.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-59.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff38f59ad4a7869bc85670dbe0c381ffa0f86ed GIT binary patch literal 526 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoDjTPlzj!#smor3^!0k z?=vvWgoyyz{}~weGcdeoU^vgf-~hB0DDwaRFGEFVpc;XaAirP+gZ&Ec8v+{67n~Px zXqex>Szq7^P>wOl+ucQCc4n&_ki%Z$>Fdh=ghz~1hB05s!3d-`Inl2SsH_3Vo&cmd zfV7AD+YhEdI@#03F+}71*$Er@8Wea~1=n;fy4LmKfBmZ5nLN_X_ev_Ko3JEHy;xIv z^@6gK>4W`;7|v8&u8P-w>I+YS^LyOyK6lOEd0>tIjU$I%hgv@M z-+v^$dHe3nhivb?*uP%781o%yoob0|L`h0wNvc(HQ7VvPFfuSQ&^0vDH8Kh@u(UF= zure^zHZZUp;08-nxGO3D+9QW+dm@{>{(JaZG% ZQ-e|yQz{Ejrh+1g!PC{xWt~$(69D9>m!ALt literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-60.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-60.png new file mode 100644 index 0000000000000000000000000000000000000000..44829e453ca7665248b2b9d35f575f08ed1023bd GIT binary patch literal 514 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoD9HPlzj!Mg#vD7-pgh zJ!W8-4;H!4zyOrp&%hwS!0?`d!2xI=P~`uArAs@n0u}I;1o;Is7&JJ%7cdA&IKN+^ zzhOqA3D9~5#w2fd7qOa)D@t!V@AsXk;PB<;ppupiOSRJJ}?ce|PVmFQ*o6Bvznmau~fQ6Lv$sFyq&}2}!Sh2?dM3 z5Qy5rsGQH{dvxoQNkFSqOI#yLQW8s2t&)pUffR$0fsui(p^>hUQHX)1m63&&fuXj6 zft7)QN|#s%iiX_$l+3hB+!{i!uQLH^kObKfoS#-wo>-L1;Fyx1l&avFo0y&&l$w}Q TS$HxP6fq2*u6{1-oD!MtFWU`Xq9*VN(u{^fUdguRZ)6+{<#c)hhW$O_JUPUAV3p4viRAtz6g|ffGhyWP*;DoTI~*S zsrXWe7yFDFA86y(Zut348VU4ROxiO^78V=#>RnxfuW%x z6h%u)N;Wq)cXxN;{+~Q~va_=T36Qq2u^|C*{8eAkZ5p|6Fpy&LR)2s0%F0T0^>wlMWktn{?}n#zI`ZsUl1|?< z8jZ`#%WG?E<>g~XkCNfxlmGzo3mIfRA8N* zot>GPSz20}oSdAVp02GO>Fw>kD4P%pp>Ul}$v}%n5;Q$(#!Y&wmOyE^8PO95W+rfyuo@2>lRnZ+XssrKX2iYCdT+ClFymG| zVY^9aucFAPar`7)kCGW5%k9t)cRRtrLCNDsJJ_7v9ZygcK9MY#qDe480i@y3uZPHn z7*{bBcN6+l9ydzlXO^JehY%J^+^t{J+w?Zw9rL=95ux%- zf7jWO#P4>l*8hembN~6X>b{?8OP5L!<&NKeuDRFKY5PL-Iws9+xV87`)WFlWF6gry#E}VZ{ytsEPSpH}vvT3MIBFm9{D35sG-s0DR4VA z#|{goQNZlwGb_&fyb5?RZz!Wvl~PP8<4E#k5C98dA*X{_r&%l!62@V%IY>|-f^ZPT zx5mBdKY|>EG&`&4{{<=YgCS6G?4U!kB1@^l@?;=Ns>qai^Kvk`EJ=n*i*g^x;Aa2; MFIvDId=D-A7Y=*j>i_@% literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-62.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-62.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3144d1da3aa5601320deb16890ce8af8466539 GIT binary patch literal 692 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpu~g#pAc6d&A{-VI0R7% zB)>B-gfcMvHa0e9VECh;pdcg+@t`UoeA!LqmYV`tu3>``;VfXPnQZ$UK4d0SC90 zHU9&?MLZ^41shm61esamuAYhp>S0Xsc6ZTNzM=qh0|R@Br>`sf6CN>68OD4i2P2@6 zKyspA8BkdRkUarN2LNdg{k{@=Aic)Z#W6(VeCwp^Ld^;Su8ui^j+d(qk2Y}r`~RHP zq>sz`apj)$wD9ju7gTO2xBO_7tzMYX`6$p%*p~C%a+f3yUu(fGLmuV4PZ2j#Y|NW1 zoz96{eQ(vCrmbsaKK*sCSf}=?^I_av9q;+XR^2ClrXYDRrvv%6|w`?2hcwD=d{b1aaZ??r{ z+gVWLs+PD$l%yn`TH7CQXw}l*m%K6QadZjO|(` z%h*RN`JD4T&-Xbm&+Xq_PVAJ0$pQd&VjUgu zBC2kuw4|s`Mp>_l01dIl*#c0PzT;U~Rh}H!l{w4tHA}M|vfXfH~zMTaC z^$-A+i}dE-kBSzOfzBr!fN(ns+ZYc-iWC)#!$^IRQ|wXF29HHdaX63adLqJONavLp%m?>fWgg2U z!Z6FFGOwHz3zKsdq!*L#UXg(`=w4$( z&gv(^d$W!DA1$=9B6L=`j0~l8NXOf^RjSQ>siX>79c0FF(<2*w+<{yQnzrEhzNr9NQss%}7I8wCqbX-xhCklA0cSOQKU*=T_Luv!(A_lB z9Xc&m5@3~1K3f?#u;Iu2<8(~O`TA4^%QFgQoSOLCf}(xcP*6K-`ND4eu}g>NS^|D9 zCDm|HKkw(Yy2i;cjXgJ~r>?aPv}XDs5)oem9>V1Jw)#nTHIbI;Yc5x0CMy$%^polr z%@Ix+2TKY(D-F1wq3hQPxn=%+M~Vj_$ImbDFNDsTHoWOonYAiR9TpAx4 z(YA#@K-q@$qyzfA}uqtW8O@Gs0_IKI%>oLORE9~OXZrtzy??7a}I8_U0u;NhS zT%^U8>(Wy+NqKFxGjV);7b)sBawkVW)5xLAmg_QH^?ZPBV?{B(G;(AQv{dRwg7lxE z_DdfTUy>Aas;43Vj4-*J7=RWpuY!9iJ)8^JT$E%M!4W?4IzK;qMpkHv}odr!998+8OqW zn8o}ZiZY#7Z8U1O`X9SgjSbkt8$fNFU-Z?Myw=^$Q3^>uVz0BlIMm%AI(2J0+2_f$ zalXfZ_1gZ8L~;*iEbY6ld{X5~F%vTE0m{q0;x3&-(cfEFaQyuns^7O1Y>BC^hX2F1 zlSA^zVdBZSepn^K+}$Gen-({Z^yjA%GGA9<77-a_tr0x>^01OVItQ&rBSN!M@9_3I zf7&wAs>jtf<`F*?jch3gT{tC3iPftNJTgWV~E^1fNhOL2a$9qiG|ESG2}Og<_3?e|u>rwpq}Y@uGsvbClb z)2P%eMeZR6b0TDTdB`FGuY;XB*>#1C5#(eNCsuPtSf|lL_uh3$c}W&HMyI|gwoJ3v z8iG!T08@x&0veF?O8I3owYkJD=6-|p9F^-obqYxDp>uk0beh3L0%#VQq z`uyPEpI6srOh3#xzSHOqpO7j6>q=-zbX{8lG*MdN*klWO2y)CLS2(h$1RkdI132o@ zx;G{c?Xy9BR)>$p>ZgAdyU7dle*b?X7*X-rts0fbPXE&4534w@A+fZxvKN{ zOy0zn?CQY9CkqD-#N*XetHrWCR-h{wq0TP!JY?7NY5NW-oKU`J<8x==`r|9Bh~B2C z2Z4+2%s#f{8!lJMJM+X+93;7eDhx3z*#1DjQZb%XLI9PB3c5rT0U!}bgpmo-2#It> zSfP-XD1?at0)avx_9rXT{>MP35J0K(PqKH~Pb1XzrVL$%%6#Qy-A(}T1C literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-64.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-64.png new file mode 100644 index 0000000000000000000000000000000000000000..d3001a1fec9f831f44e40b22298bd392539ab9fe GIT binary patch literal 507 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;wmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5l+X(B32_C||4|WK`sf6CN>68OD4i2P2@6KyspA8BkdRkUas2K_KB}$$`~Cy42IfF+}2W?Ri_i1_d70 z2hR`r`1FVyp7VS6W}buIg9n~A{W-Q%9O@G`1;_8(BJyDWv87)RJI-$HeDSuS$0($T zt94G359fy|43n8I@trb$e}*j8RM?`*|u(sp=@9VeuwJ8yU5o9_4=m0AM^> zULfS#Je}NcrcDZR`&|u8$jpoH^uW$~fQc*y-Y3*Lhj92RU4$(kQW>7qSu3l71Yfx z2t*zY>Bn_xbbgUj*ZpouDFJr!J;y5ms z4Lgiohq9V#ifKaO2QAgXaoF0l5ZNYA*qdk)QIA*$QVzz| zJ{ny(0{Lr(;eYo^5;jaU%!VVT`CdYIxJmVo@%rcW9quRdPq%cxdqdyQ4*RM4s`j`~ zo$VK|6Ce@gfgqC}j}JRnXM^%~)v?27nCEkHaOp?%nc04BbS3@?yuNJ-&kt3JvGPV_ z^OS3Taf1gVaG`2QMQt@0PB1|lNp^y?>qrBbaeqlb?)mGDmBRCljY8qmogB7y9X_K-p>4Z9v# z;iU2>_9SBnBt|SPr`2HAGl%%I;#i1OJalb}U8f(Z8Dk-eICM?G_{_`ga#xu@^|8Z# zS2s7Wu=`71!dI)x`3>@8Clh9!UAFzVGYv2-US#n4isg&G3Z6xrm?CVqC@&cgrw8ZM z-nQ|z{r2E2Yn|=W3JVz3eO&If<{CVx=Q(ab3=EE5Sf!qwfq?aoedyG7CnswK$Ar%+ zy)%ZsZJAZNa~GP^zw5o2^HxtM)XoqS=%b{Pq>gU0NzAPsBVvnp2`g^gupa7D^Rs96 z{p_xaZOfD!%ZP+_oBM?S^Ee<~y53f-Ad+W3yAxmBjc7%yj*oM)&V=Q)x?FV>#a(~2 ziP?Dc9@vCwO)qevQ>}Kg2WXn)8J@(5N@5b|iA)&)HlPh?Wo=_+V-o^85^Nj@p!IGL zB!D0`TPO2Bf@ATF*ck5r3qnV4Z*9=q+7KKclaw5l$OK4?_-LjP`B)T-8N`fYa1;8O QTMrx{d-{9acBAqC1?Ll<$p8QV literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-66.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-66.png new file mode 100644 index 0000000000000000000000000000000000000000..2f8909098675cbf8739aa63efe55c7ef4c053867 GIT binary patch literal 668 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphQuCPlzj!#sm#8p#}#i zE7udmXh>iP4P|KXWmp9y(?B96u?&Tw3~9z7HZqt$pFu%^;s1XI2M31z`xycP81CO^ zNJs#R{I|HV!4RlarXHT^ZgZu3BIheVax%P8&vL>AGS13L9rxB=* zG0EHAMfEV_Nq!)Qy~NYkmHi2i7^e(lzLJ9xP)Hy-(XR}stO3ZL0K`C_G9-9}R_Frh zeV#6kAsXk`PCO~ptia>oxHxH{*xO~gv-1A`?`2&i*grQ@Z<39ilhTp%ij`BJGPs`1 zbX~&oH0jDso-)CV#}*9-_HmWovh(|R*`;8^Kbc$h4?XLYuiF?fw1+H$V{|%uLBD+H8adhaSplHa= zPsvQH#H}Ip`Z^P!21$?&!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$K}m+e)78&q Iol`;+0Mhi#%m4rY literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-67.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-67.png new file mode 100644 index 0000000000000000000000000000000000000000..20b3dac99e70a75ab9dc97f0433646c5295d2e4e GIT binary patch literal 1162 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 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-70.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-70.png new file mode 100644 index 0000000000000000000000000000000000000000..dff30cfbd1aae029ad642bd184b760011017b466 GIT binary patch literal 578 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphR+jPlzj!CKd2AGgnDS zbV^Bm(bs>fqvONRzg<~bo{de9lXIr5Y__QAF*P+?9-b8n3Nb=L|NsAAS2%YS&<=r; zAirP+2Zi?y=lcZ$_8Z)vzdoVhyG^n=P>wOl+ucQBbGB^*ki%Z$>Fdh=ghz~1hB05s z!3d-`Inl2Ss0<`M0g4kWik|NVvg4H2PqvH-4)-%|d6~8bSxjWqMaS&`=$?P@TWii8N z9ha7dIjJEvS+fe`?etY1-+wo6V$=IWZ_cg0-;;S|7=)1 z%?dnitc6#**4$QNG01rTU#)$?nW*p2*iTk+{Im$Ux<6^o=U-eL4T2HhW`}=T_;A|f z+t=qvnasJOTEO0HHtX}t4HkiHq5e-6F)lkS$Tst!!|S69mfI%ZYiN>?wB6gtw#D^` zy#Zfz{N0R`@(dq%JqivAPkY2#5b@=5Tz75y zn%7Hne)?|M&T4*jtKE6;JKe?$tukDLxECDR`^2V)S2HR8SdF|~_uXGt7Jra>$*?3^ zZs+p(sgsWDFBGw^zW$4K(tPoGfh({72l`aC#5JNMC9x#cD!C{XNHG{07#Zjq8tEDt zg&0^`8Ch5v7-}0BSQ!|obcuDKXvob^$xN%nts(UKIuoDNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0OA8coWPK%Q2?anJY5_^EKVmUNR%`P zdi_@qGZkKG){`Z1)nHX(05e1IX+{+>ANNT>m8vDK5hW>!C8<`)MX5lF!N|bKK-bVn z*T^Wuz|zXd!pgu<+rYrez(A!-tOG?uZhlH;S|x4`q1V@$05wR0YzWRzD=AMbN@Z|N h$xljE@XSq2PYp^ z)P}l-&6_qan7?5E{{2Apt9@nu=P8`8@ds%KYy9``@8>dOA1|MO2j-m*5=co(K7a1q zr%xaMy}bK8OQRq!|JJQr9UdABN)uMEUft2wQBzg3ef#!^un3@;hYuev$SasKX-Y~` z3ee6|{7)NzUQ#Uy@(X4#Xjp&$d_aG}{QK_}1l}i{-+$g=e?WhOLc{#^1r7%1`}YSl z7}W5y?Eq?EO!9Vjk$ufvI1$KUFY)wsWq-mW#wo*?ujF6^6cR{I^eY1@YXGt*0PzhV zP6+t;#TZE6^mK6y(Kx?%;_IMh1A$h>kB3wRbrvOg=U!dA)bsV+Z6aE)e(#?=dqUuY z?T=@kd~@!nnYFs`>0k9XTjXTE?OB|B{Of_^hpp`FXEsh_cVrh}Sac+3f$Rgv3@iDH z)BGQrGBeY!zx-=+nl0_v->=FM9Gd4#&L0R@J*IG_C~@bcPYY*q9n8Dr(DCKt%b!n8 zuRV~FVV-jDQ;n|vnYdd_QCUV0WXz`99yqha>zweFt74`;ZkeEr_fr%e%R_$$5G@CnZGyx!OAVKvG&pPC`=3-{0TM%L_%>% z0B#y52Zw}&jE07;nyQw7fDj7{i=u*}vA%(YrJbshinh9jn!2{SvWkkLl7yIeY)ni| zRaI(AYG815T1rY>bc~gaV`xyYql4q36d7OtH+Z`GO0k3N3uyJ{9u-`wNlAHv1OB_bjsC@3^- z_OdyP)|OT_);4x2DXa1G^ZN#bUA;B2s;;fEwa>)V+`+*?M@Prg+dm_xC^;?1%Qw){ z+RobAT1iRS#@10!PY>ujGcz+abqzfOBV`pe9v)tA-#|GzIb~(#|NsAQ4m^Aes6x3U z$S;_|A)vtE{QZ7`^XuOyykB3izhS?^`S}6w&#y0VC{PecU}R#ho3eNtP&s3gx4TQR zBd6^-Acwug)7O>#36B`33}e2MgAq_jAUV;m45+LD$esYiAAmSvp~Hl4K>CKKi(`n! z`Q!wNEe#VpXHJ~R8ayX7GBVON)Ymt*xpyvenXIZyvpM>uN8*&dYZXUp{^M_VHupLk@>d zUp_uvUgO;3=kfv)A~Hf!Qes>z4+R}323}-x;5<0v#*QB?KaMPUG9^X9!`HjRzh9Ke zi=#Uwg)KGp`IBeQo-#SsMTI3qHEJBG+PKB3&`n~3#;Ivjns)j`xrx22vXuPU*vH8d zz`&H#)CEjfU0qxpnG9t!bk?m5aRa42)e_f;l9a@fRIB8oR3OD*WME{VYiOivWE5gx zX=P+#WnidnU|?lnpwcDQfubQdKP5A*61RrX>+4K_8YDqB1m~xflqVLYGB~E>C#5QQ d<|d}62BjvZR2H601?C*xdIp-&q-x=UvrPCPAn^1-tmOPWvk~WQ>NRs9eJZS?L}8pU%zRKZdKIH$?p|! z{AOvm*m&@FvWl_2Rj1P&h4>u}Onx4$9QLX?YwCbDs+PD$l%yn literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-76.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-76.png new file mode 100644 index 0000000000000000000000000000000000000000..5e2448a802edc364cef72492e1100e10c7df75d6 GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0MZITI^pq48<2|@d%8G=Se$-)(UJF% zgFx#;{vbw=8(IrA7}z5;ye>2}iLpOeps_$BLG{6c7z>8X*=8**%*D4WfA6o{?Hqk} z&6%DRtB-AsowcQGc3!Sk+K1KN#&6=17(UKuww>@`Q# z$=2T(9d&0tR^eC_^@4ekPr<<;5!RVM*i_E9A37KH?!lu!AN1`0UVESai~o;Nz+$QN zEw6;$ol#bnS67vP40Nt)iEBhjN@7W>RdP`(kYX@0Ff!0JG}1LP3Nf&>GP1BTFw{0M zure@E=@RQe(U6;;l9^VCTSMsebtXU!k{}y`^V3So6N^$A98>a>QWZRN6Vp?JQWH}u T3s0tkf}FwA)z4*}Q$iB}v;v&3 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-77.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-77.png new file mode 100644 index 0000000000000000000000000000000000000000..e03e1d4103f46cb9be204379452606f956b6f8f0 GIT binary patch literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;wmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lrRYJ32_C||A|Nc|7-uc z-wM>jR}$nG%y3>HVg7xE_3s@T_V)*vd^&6olwnNrc6Z^I*u`)Y$YC$>^mS!_!Xw5h z!Eiendzk7NC-}T+)>mSPWmcPH}+faCo(UOrv_x(NFwxWuLH|72d=hz55zstmN zoc~NF)8?B8-juIDAS1@X{%Dbn#&O0YH`$-sFmJM4n6sgKN21Jx?q>%rr3Iqy?XB*% zj$qjGAkEk3(oI>QD^yEdBT7;dOH!?pi&B9UgOP!efv%yEu8~oQfu)s^g_VJ!wt<0_ zfq_bwSOLa(ng0cwy0*$|wcR#Ki=l*-_klAn~S;F+74o*I;zm{M7I RG8Gg(44$rjF6*2UngD{Iqn-c& literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-78.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-78.png new file mode 100644 index 0000000000000000000000000000000000000000..be13c4372229b35374dc7b764da5786b7312122c GIT binary patch literal 852 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpu~*;pAc6d{gRhh^#7~< z|95u(-`M{DXa{5iHU9r(_y3CJ|FuT{7aRQFVelOh0=2jBq7tCPLe|~>~!2I_O_ZonaG&r z?e5~9u=iv&ki%Z$>Fdh=ghz~1hB05s!3ZcMkeujO22|DnWKRIn0YExI%KFYxApOkK z#W6(V{Mx|VVTTL^VkVjSI(I85C@`Hm%FVSXhDAi=$j|@&Nzn_o$jRNDu4290*jjqg zXLm0ThG}ajWj;-izvcI&IZHF<_=lHA7|xw8srYR2z^zjJgR-uhQG0t^;@R$;cSinG z>?Vma^slH0)e2uHxp6_iPuD8*tyPb|tvhLSz^}g|WKr1e;{P9hT;bjMt%0Lzetgy6 z>j!UF%iIX$b$@*Fc!^sI^Gc67Z_nB97d!oa{tk=&)s=Uy{wn`0KF#&s&d624Y&)gZ zL_*ex&+yW@_+#DCrvjaOyAR*;eR$tJHRrU$FS)t)+xD?5Y+e-Hxg6+Y)e_f;l9a@f zRIB8oR3OD*WME{VYiOivWE5gxX=P+#WnidnU|?lnpwcDQfubQdKP5A*61RrX>+4K_ w8YDqB1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H601toO`Pgg&ebxsLQ0PA~ai2wiq literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-79.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-79.png new file mode 100644 index 0000000000000000000000000000000000000000..893bf2b8e4f0cc839070d3b92e7f48d2e86c1df0 GIT binary patch literal 1356 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG?e4&pIwM~qX3F<;5S2q+|woak4^z`)o5WKRIn89+LrJ4?R_Xg9y7i(`n#@!n~% zJ~6H$$Lq`APm7JXrFWb4)>r0V3Wh7C-QQFu z8yCNyS)BIoxqbSvgsl<`yu1=yw+iqiO_}a&(UUmK+pW0Rz_8K8OzDBy;RpX+S)9#- zTS}EgIs`-(dbCWKvpBM40!OP7%a-1FmihCx`_yR9eJwkqVSeB{#;%612iz2T&Wi8a zW?Yqn=F*N?6HQypuvE#lclin_V~96jtHqQSl`V%#^!bbjEX`ex;BCb9=^xG5<>ZWCV|VS!4IyhC_r|wPnXa z5#E*^P7Uo1$2Aqa1f>}#ueR~$ydU6Z^;~4b)-vJuoDZJ!&tu8j(Vu)EO@Zx5qm{y> zc46^`#SUCM+`7Ds_BfcHXXI|kt=jP2*x8bM&oP#KhRY(s+osiU?wK3)Xv%*n7EW7Pf7WJ?BTj2a zc@a8oL0$j;F-|(^e{Dt`fBX2{r64OM zK|gWv&*erlr{tJv&-8Iywrp8S(xY8H@%waEhD6O0;DLgYfd-AGPTABIJ zCvfa`y`knbb6w~&rS3m)Wu(JT+IsP=jWe1 z^U*udi?CcPlHaFQ=x5?OC$dI%@52b~XuF$;5(!2_?V& ztlqp?hH*|z;jg2GbACjf`+RUyl>W`PcYo*XfBb>v!4rj7{whKm{4#NK`KLWCxTz6c zXk0wG-~K1Z1D(8$(KZ>sckkMDZk}baRsMvnb62O{+Ln81rAXi5*)O!ORLg(avTa+K zxw*M8SL=(nZUrgNK;@8X ziEBhjN@7W>RdP`(kYX@0Ff!0JG}1LP3Nf&>GP1BTFw{0Mure@E=@RQe(U6;;l9^VC zTSMsebtXU!k{}y`^V3So6N^$A98>a>QWZRN6Vp?JQWH}u3s0tkiZ}*OS3j3^P6N=$Qr%7jaT{DK)6``^!Z z5NKFGKR{uMrLBKUoL}2RC)Pk7*|E;GUY->4m zq%C^y8BLD_o%o~sLW(D{Gfa5e7+=HHyC}-#&7(KU92{%U%bIs&GC5cCH|R$&WyfSx zyi?X)K56-~$9tZA+SkIIziGkJH2YnQmyI||_Z@rw3}~fliEBhjN@7W>RdP`(kYX@0 zFf!0JG}1LP3Nf&>GP1BTFw{0Mure@E=@RQe(U6;;l9^VCTSMsebtXU!k{}y`^V3So n6N^$A98>a>QWZRN6Vp?JQWH}u3s0tkqK?7S)z4*}Q$iB}8cUi{ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-81.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-81.png new file mode 100644 index 0000000000000000000000000000000000000000..2d77fbf633b59ab4e699fb6f642e6d76fc958395 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphRzgPlzj!{tr~sz|i2p z&=3kHeHqI97#gA(Izk!h0~i_t7&=@Sx?>p%Eg2?xGSoXTgoXk&F{}z@NHb<=NMI-g zGSV0tKw^^^7$!3?Oo1RqhRKYKKrTq+{Q1}a|Nnpg{)d9X!i0o9{rwmA?|*Xt{wD{A z_4DUn7Z8{o5U{nO;Z*(%fncC9awS22!3>N{ENmQHynOru0{q;Z>@3WT%&Z)otV{{- z-zNwxTixsfRLPj+?e3zim6T%zm z6n+(}I$HJt=}n$4jv*T7*G`NUZc-3v72WbCYr^(R95H9#{r~^GwNvGlk8O#Zh4J&` z^7f;f1k3K6yfXW&xOe{6Z{{sg`GL~8%*Xi`Yn05DnC$X&(gha5p2rNyO+u?aOTGQp zBP*Far#MjitcWM;^V}N(tVbN$`A;amk66ycV3k(8UgODCrz%c$VFnXlEsOqUZU;-Y zb)VK8JK)>3VtQ&&YGO)d;mK4`8e;Ht^>bP0l+XkK DS(4Ul literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-82.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-82.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b112191543ef8f1414b5f17bb87beaab645106 GIT binary patch literal 506 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoDRNPlzjso=F1w|Np<{ z#Y$74HvWTn+j4q#8*)#)`ke0r*TmzY9n2~YQ+fSo9U4UO^4vmAdj-gtUc?oZd2@0HWyQ*S?fck9RY`F>#uyhr=knL%DrEpd$~ zNl7e8wMs5Z1yT$~21W+DhDN$ZMj-~4Rz?<928P-O237_JDqUh7C>nC}Q!>*kacc;@ zzRm=wK@wy`aDG}zd16s2gJVj5QmTSyZen_BP-ER!qmS2;WUt3Vw5fYu2mRI2)8k1RA1w=qK9=@SL5lKLHN^WIzQf__MY#`gl z!7DMdw7PW)L|J-4U1?o+Qg$iOgk%ue+SEBEx3nQ4qo}y1GaxL!sJbJ&xHdJn5~wUS zx4gKv7pSqgro-0Jv$=0>R$)C86LWRzBzNE7j>$`bDzl24!ecX1b8F_WJ$U%)%jMh7 zELeAB(!4EQQ&(gZ)NML^Yy0uLmma*oc<=4%T^E;cJw0pruIkpwd1cKD)*d-<_U^Su zAC6vqv3%F1`Rk9*TDGU6aY9Bx^{RunPTYKb_xa~rPe0y!{&Df@9TiOzYTBlj)%SKx zT6Xg4(}%CVtk}4}ee%+#-g&uY4Kc~t3)dgnd-2)6Ywx$7e!BY5t;O5V&sl$@tf@c0 zqNQWTs#7;!Ub_9Pd-DAJs`mWKj_lIr*1oy3mTld%^Wdz7E6N)CvPx=qAGvV+#;cy` z%L^)6b4nW4@4vWc!-2}?Nu_l?ljg6VFn3M&^kth4UCFO#?wz?381hRtAI>PO?wq6PYrbQQ>9FY)wsWq-mW#wo*? zujF6^6cR{I^eY1@YXGt*0I>%US4^7iT?(Y{db&7z8t zSx3V{#YE?ht&)+K%+aE}&KEN-+}QEsN6Qfv&lFD0mrtf#+4805%$gj{kng9SJZXFK zR9r;t@*t9C65^Aw473W;30Zr{R*?8YH3p|fX2U%9f8 zbw*oS_G~dT&cL_JzVXSfX!gX z7^XFApRwZKdk^SQ)e_f;l9a@fRIB8oR3OD*WME{VYiOivWE5gxX=P+#WnidnU|?ln zpwcDQfubQdKP5A*61RrX>+4K_8YDqB1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60 R1?Ex)22WQ%mvv4FO#l&!&V2v? literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-84.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-84.png new file mode 100644 index 0000000000000000000000000000000000000000..a99f984cb2e1cfd148f47ac8b7c633f45c62014b GIT binary patch literal 698 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv3k7pAc6dy^4Vah%U-1 z9TApztfjw$oBxHi14QJQsMLM|kwZe_R~1z6sA>VpP+oo@DaXpn57dbb{I_@gA0G36 z{-Rgb4*&B@{sY11&tIYwo@g7s(l`C@9r*wJ#b2}My*IY}|NO=OF~6)G_v@Pk zh=}zotKT=bNsy2#kdb?D?I^&)Vrgk9ARw?_TVGRCQ&CY7Xklbzq@$yw!~WPKK#p`t zkY6x^fW!Lv`xD+PobPWan7?0Pe#8Cs3H#>@7_3(~x^4+b8Do;SyNkl+Y}*DPhrPtp z*OmPVj~J&6W4@Au5l~1VInl2Ss0<`M0f-ZTxFT6ge*=)7;pyTSqH#VsK_cP6i57;Q z6GCS$87L@gA8%4Q$TfXJctA*!vxkPVr-sI+;sdH74}?~6adBnMiBMV6D8%(DCZLdy zH-yudcZI1BM`5OJWo4zVWNzM!7ACF<*DpP6^my^=rSeN70~4cXtezV@X3v;4Q(5JU zj!y3n2cbVXVb{`_nhF$Bk`;Nrc6Y3pVR2}`(4t8}%(AsR7#Mb1i~F-1m|6kds9NG0 zQIe8al4_M)lnSI6j0}tnbPbJkjf_GJEUk^kN B+hYI# literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-85.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-85.png new file mode 100644 index 0000000000000000000000000000000000000000..7a7548211c6d971c3265f05ae849c92dd7964bce GIT binary patch literal 663 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpv0m8pAc6d&A{+q$m&0k z6m|PAZ~R9x@IRZ#f0@|-+{*t$YyJyb{1pPpELaN)A)D}DA>+Sx-e14^ zA5N9Ow7UO4dGe%v$ER)QUe7!HZu8OCmNkET=lm*I^VNLPe;|lo@n5~^y^w8zfJuU= zTLZ6lfKuUkrNaN3nwk=R{Sp!qmX?;Rf(nj~j**d(QM#|(fVPR31o;IsIP4c_n7_YZ zf5ZFv=M4hRuYYf_UtoR0fs8;r%$KiUD;(kF>Fqgs(CWvJUY{S44;&oshfEMp+C5>z z27yCgl@=XJVwQcT!pz{QAmsWZZEZf#WvV5v5hW>!C8<`)MX5lF!N|bKK-bVn*T^Wu zz|zXd!pgu<+rYrez(A!-tOG?uZhlH;S|x4`q1V@$05wR0YzWRzD=AMbN@Z|N$xljE d@XSq2PYp^lR44$rjF6*2UngG4g;LiX6 literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-86.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-86.png new file mode 100644 index 0000000000000000000000000000000000000000..4d37f1c9d1675cba5663900d99dbcb0f008018f1 GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphQ%FPlzj!W?(o;Jo^9t ze?!9)2Z!tL-~U;^{@wolpU$8EYG80VAmEmQ!iE0+=LH21@8AECkZ^a$%SK6{+59Cz ze!&b12KyTV1n#dt?@*91|NX8<0q=oQj7i?^E&@|G@#+9M>?NMQuIx{E#5iRb^OYQo zfIYoBGAfiXKjCxai9? z!+PJz0wa|J!5aEMW^`yIEc(8}=j5}TW_5X=zVn-snbMv=OUZRAi|p!f{{JI>55vu8 zf}8Sq0}cS4u3F+6QIe8al4_M)lnSI6j0}tnbPbJkjf_GJEUkH=O_9r}IoHC60N)ARKy~&Aw zWk6*OK=uS6UID}vyZn1r0qG=97sn8d^T`PcOa?}V$>QmP2}iXKswgNJ{7|{U(%KT} zdLyzSi`B*D=#e8w9CaAQ_&QkBXQ(rZhzpB0Fm$kpJ2?p{o#UODkjBI;w}3^za z==>=gzC7R-THyXuGJ}y}3lF>Pk-c--fVQcYxJHzuB$lLFB^RXvDF!10BLiJSBV8k- z5CcmqBMU17Lu~^CD+2?SF0l?24Y~O#nQ4`{HH2PYX9Cn939=zLKdq!Zu_%?nF(p4K fRlzeiF+DXXH8G{K@MJ0|z8E}R{an^LB{Ts5m?Vcd literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-88.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-88.png new file mode 100644 index 0000000000000000000000000000000000000000..45fd70a9555a97d1a55fed4664c1efcfffef0362 GIT binary patch literal 825 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZk1_nl*0G|+7po0IA2z0@d z@qjbqt$6u2G5jkc^fOYkTPH5ue&Y7wt1p*rJw1K#&c>d3*~JaTk$yAcoHrf5dF1lb zOAp@fJ9TI7s(mee^YY7^7o_{1%`~6C;n=C0ug=_jv3}pVNsG2lnzy;CdGd;auwz~v zt&^ARIC%crqYrnVf1bBudwtiex{m3&WsUPvy?RRvw;Z~9?AH6uC+<&Mv1h`ft(C2l z%1f&*B&uymwVk$X$MpxVb|1f7*ES)$v@tcmdTFBlw`h(%NoK1z?z(jQ>GJiv%j)}j zGNY#zr_EoxuW#1M+|q_6*#URL`KL`^*gbt|`{ad-v;2=I>8))nm@s#Bc}eBv2=TtY zsg*4gZY3yOOV{n{oRA$I@jaSzLQ89IR_^v#y;W)MCzAEwhcNvA|9@M;Xy~6stlnw zzu4N`j;Sq6dzK-jBQ`DUn%TCpZ+tI=WcvKh>8;BXc&_BVVaD$2imJ-Z30@n1{P^{g zJz;VJCl422;&HWuLQ-OKjiE|LT2^eUU2?)FK#IZ0z{o(?&`8(FD8#_h%E-dXz);)3z{> zMMG|WN@iLmZVjQ=*O>q{NP=t#&QB{TPb^Aha7@WhN>%X8O-xS>N=;0uEIgSCOwSAq Mp00i_>zopr0C8?cY5)KL literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-89.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-89.png new file mode 100644 index 0000000000000000000000000000000000000000..75aa62616b54c89512954fc8658281fc27c75047 GIT binary patch literal 498 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpoDRNPlzj!{*Qs+f)K`c zWCj2K|IWxb0+iq{3GxeOaF{Q!|NMGJgZE4ciVXohvjbXzQjAI7?k)mTH}UEKIqW5# zzOL*~c*Hnm81t1JjDSJ{$%%etKxGX;_5>il0mK!~b8}LGbb_agV~EE2qvuZYH7M}7 zUYr)?D0A=s|FuREOi7QLj%ErNS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0OAioT(L=qV*vvLGoPo6V~EA+&?&p~ zV^RfY1N{uN5nfWJ~Y#WZ1Cd(gHti+b|80hJ7aM zuD-c_%E~)ES24k~d#c9PH7U-^ij*dlc4YsK-Tu}$)tT#@IJ4BnMUk$?n>^M2&p!Xz z>d@9&k*ZRuf`qCSFBk+||?tcdTXb0ojeFH+S2)-8d$8T;js&MuqI8D^nvAwEA8x(Q7Y?xpU>q9L{b1f@Z1h z(GmxmLv+tb-FzW)&%x-DL0no#wxtQj(sVNeqx^&(US5?ciw>>e)nee(j$K+dp|4AL z+qR<_Q3TW~f0 zY+gv2gdLjZ&gdzCYh>cg3E`BcOqE0)xTDdA27Wl<&Tu^6rAf zS0z>{xqFox{@Ql!?x+s9ns+{Cm-Ml#)fcw!H}PjY^kV9+sKq}Pt!m{AEdCq4%lu~x zXY)Vj%UAd7+2`>+YV!+S5@CAE`T1&_J^xmO_uJe%G}|g^>b9fp+^e`2KiT$Z{u3DrUv%}FVdQ&MBb@01Y|H{r~^~ literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-91.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-91.png new file mode 100644 index 0000000000000000000000000000000000000000..17ab131d7b2fd9c0454e57b97e7c785c01c0710a GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0MZ;lx`NT<>UAR7+eVN>UO_QmvAUQh^kMk%5tcuAz~xkx__&rInF|m4TtQfq|8Qfl8NH2a1N= z{FKbJO57Skudg!!YLEok5S*V@Ql40p%HWuipOmWLnVXoN8kCxtQdxL16%-5%p00i_ I>zopr0JouJ8UO$Q literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-92.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-92.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd8b494f4612f59673024e19ba3dfe41b4907d9 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphRqdPlzj!#sng$LjM^U zfCy*|93(I>+y@K3XJA;*z#zcDFrR?|Xvcn_bqov+Kz9IT|NlSqHDxse1A|~mkY6x^ zgF%15{)Y1c=M~-?ykEb5{YxgstFZ6Jre#M9T6{Rxj4rwn7hl7kUY zNFX`UuMDWH0mz;Jq!oa4#fR1Kr`E`>aFpWrEALuJ&-3 z7XIDEsVVGw9zO~_4L))g7z8jdteVCVBt89QFwi#D64!{5l*E!$tK_0oAjM#0U}T_c zXryao6k=d$Wn^JxV5n_iU}a#S(k0e`q9HdwB{QuOw}#N`>r8+eBtbR==ckpFCl;kL jIHu$$r7C#lCZ?wbr6#6S7M@H6MH_>stDnm{r-UW|Lg9@N literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-93.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-93.png new file mode 100644 index 0000000000000000000000000000000000000000..404040c4d1993817e8f0aa49d669db1255c11134 GIT binary patch literal 437 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^> z;_2(k{)9)2Q-(2L$-xLHB#@lwSH{4=*Z^ct0MZsfx?+K7g*=e1@pN$vu{iy<&rz_! zfQLn#-D5?Imm`x<7qg7QLZJhUKt=%r-=W2G8_jBd8pOn%ypzjUw|9Zo?JOxCX<_%W z?-F9WjB+?Ur22Q>WnFmvzFxJQlpss=t=os>)K$)``Z@72LwESWF!rR*)!z@)X)jNa zw=nIS`Lpxi>)%$4$NL>yy*hLyf$mT(ag8WRNi0dVN-jzTQVd20Mh3cuM!H5uAqJLK zMiy2EhS~-ORt5$tU1A+58glbfGSez?YY4r*&IG7I5@bVgep*R+Vo@rCV@iHfs)A>3 bVtQ&&YGO)d;mK4`STcCJ`njxgN@xNAHt>KL literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-94.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-94.png new file mode 100644 index 0000000000000000000000000000000000000000..7a0cc264d119563a20992acbf8cc48924df34da2 GIT binary patch literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkphQ%FPlzj!#sp~$3<(&b zR~Z=o11$iH_cJi;XJA+l7J1LWAi%(IpMk-Ff#E#RIELalc7tA2w zVDLVmA)w*@d4>J+_n&WA+$+Zilw?fuc6X6|&0IJU$YC$>^mS!_!Xw5h!rpd4U!-mg7ec# o$`gxH85~pclTsBta}(23gHjVyDhp4hf+CK=)78&qol`;+0Qm)te*gdg literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1-95.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1-95.png new file mode 100644 index 0000000000000000000000000000000000000000..a257b9c62983e24883906f2e053351dd9c943832 GIT binary patch literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;wmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lrRYJ32_C||NjFCqQL+E z|2OCsc>~q*mjw9*GcfF*Uy#tC;1D2S(0_itq3fAtKqx?~zI8G(rttv769=2vygjmI)n`^{4Z43BjckY&+b9mpZyt)x7$D3!r6B|j-u!8128JvAsb WF{QHbWGX0n7(8A5T-G@yGywo1F_YN< literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprs/aprs-symbols-24-1.png b/plugins/feature/aprs/aprs/aprs-symbols-24-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b83d4b14fe5440bab67ed15248d9c0452a517fc1 GIT binary patch literal 41892 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 AbN~PV literal 0 HcmV?d00001 diff --git a/plugins/feature/aprs/aprsgui.cpp b/plugins/feature/aprs/aprsgui.cpp new file mode 100644 index 000000000..9733dcd4b --- /dev/null +++ b/plugins/feature/aprs/aprsgui.cpp @@ -0,0 +1,1927 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "SWGMapItem.h" + +#include "feature/featureuiset.h" +#include "feature/featurewebapiutils.h" +#include "gui/basicfeaturesettingsdialog.h" +#include "mainwindow.h" +#include "maincore.h" +#include "device/deviceuiset.h" + +#include "ui_aprsgui.h" +#include "aprs.h" +#include "aprsgui.h" +#include "aprssettingsdialog.h" + +#define PACKETS_COL_DATE 0 +#define PACKETS_COL_TIME 1 +#define PACKETS_COL_FROM 2 +#define PACKETS_COL_TO 3 +#define PACKETS_COL_VIA 4 +#define PACKETS_COL_DATA 5 + +#define WEATHER_COL_DATE 0 +#define WEATHER_COL_TIME 1 +#define WEATHER_COL_WIND_DIRECTION 2 +#define WEATHER_COL_WIND_SPEED 3 +#define WEATHER_COL_GUSTS 4 +#define WEATHER_COL_TEMPERATURE 5 +#define WEATHER_COL_HUMIDITY 6 +#define WEATHER_COL_PRESSURE 7 +#define WEATHER_COL_RAIN_LAST_HOUR 8 +#define WEATHER_COL_RAIN_LAST_24_HOURS 9 +#define WEATHER_COL_RAIN_SINCE_MIDNIGHT 10 +#define WEATHER_COL_LUMINOSITY 11 +#define WEATHER_COL_SNOWFALL 12 +#define WEATHER_COL_RADIATION_LEVEL 13 +#define WEATHER_COL_FLOOD_LEVEL 14 + +#define STATUS_COL_DATE 0 +#define STATUS_COL_TIME 1 +#define STATUS_COL_STATUS 2 +#define STATUS_COL_SYMBOL 3 +#define STATUS_COL_MAIDENHEAD 4 +#define STATUS_COL_BEAM_HEADING 5 +#define STATUS_COL_BEAM_POWER 6 + +#define MESSAGE_COL_DATE 0 +#define MESSAGE_COL_TIME 1 +#define MESSAGE_COL_ADDRESSEE 2 +#define MESSAGE_COL_MESSAGE 3 +#define MESSAGE_COL_NO 4 + +#define TELEMETRY_COL_DATE 0 +#define TELEMETRY_COL_TIME 1 +#define TELEMETRY_COL_SEQ_NO 2 +#define TELEMETRY_COL_A1 3 +#define TELEMETRY_COL_A2 4 +#define TELEMETRY_COL_A3 5 +#define TELEMETRY_COL_A4 6 +#define TELEMETRY_COL_A5 7 +#define TELEMETRY_COL_B1 8 +#define TELEMETRY_COL_B2 9 +#define TELEMETRY_COL_B3 10 +#define TELEMETRY_COL_B4 11 +#define TELEMETRY_COL_B5 12 +#define TELEMETRY_COL_B6 13 +#define TELEMETRY_COL_B7 14 +#define TELEMETRY_COL_B8 15 +#define TELEMETRY_COL_COMMENT 16 + +#define MOTION_COL_DATE 0 +#define MOTION_COL_TIME 1 +#define MOTION_COL_LATITUDE 2 +#define MOTION_COL_LONGITUDE 3 +#define MOTION_COL_ALTITUDE 4 +#define MOTION_COL_COURSE 5 +#define MOTION_COL_SPEED 6 + +APRSGUI* APRSGUI::create(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature) +{ + APRSGUI* gui = new APRSGUI(pluginAPI, featureUISet, feature); + return gui; +} + +void APRSGUI::destroy() +{ + delete this; +} + +void APRSGUI::resetToDefaults() +{ + m_settings.resetToDefaults(); + displaySettings(); + applySettings(true); +} + +QByteArray APRSGUI::serialize() const +{ + return m_settings.serialize(); +} + +bool APRSGUI::deserialize(const QByteArray& data) +{ + if (m_settings.deserialize(data)) + { + displaySettings(); + applySettings(true); + return true; + } + else + { + resetToDefaults(); + return false; + } +} + +bool APRSGUI::handleMessage(const Message& message) +{ + if (APRS::MsgConfigureAPRS::match(message)) + { + qDebug("APRSGUI::handleMessage: APRS::MsgConfigureAPRS"); + const APRS::MsgConfigureAPRS& cfg = (APRS::MsgConfigureAPRS&) message; + m_settings = cfg.getSettings(); + qDebug() << m_settings.m_igateCallsign; + blockApplySettings(true); + displaySettings(); + blockApplySettings(false); + + return true; + } + else if (PipeEndPoint::MsgReportPipes::match(message)) + { + PipeEndPoint::MsgReportPipes& report = (PipeEndPoint::MsgReportPipes&) message; + m_availablePipes = report.getAvailablePipes(); + updatePipeList(); + + return true; + } + else if (MainCore::MsgPacket::match(message)) + { + MainCore::MsgPacket& report = (MainCore::MsgPacket&) message; + AX25Packet ax25; + APRSPacket *aprs = new APRSPacket(); + if (ax25.decode(report.getPacket())) + { + if (aprs->decode(ax25)) + { + aprs->m_dateTime = report.getDateTime(); + + APRSStation *station; + bool addToStationSel = false; + + // Is packet for an existing object or station? + if (!aprs->m_objectName.isEmpty() && m_stations.contains(aprs->m_objectName)) + { + // Add packet to existing object + station = m_stations.value(aprs->m_objectName); + station->addPacket(aprs); + } + else if (!aprs->m_objectName.isEmpty()) + { + // Add new object + station = new APRSStation(aprs->m_objectName); + station->m_isObject = true; + station->m_reportingStation = aprs->m_from; + station->addPacket(aprs); + m_stations.insert(aprs->m_objectName, station); + addToStationSel = true; + } + else if (m_stations.contains(aprs->m_from)) + { + // Add packet to existing station + station = m_stations.value(aprs->m_from); + station->addPacket(aprs); + } + else + { + // Add new station + station = new APRSStation(aprs->m_from); + station->addPacket(aprs); + m_stations.insert(aprs->m_from, station); + addToStationSel = true; + } + + // Update station + if (aprs->m_hasSymbol) + station->m_symbolImage = aprs->m_symbolImage; + if (aprs->m_hasTimestamp) + station->m_latestPacket = aprs->dateTime(); + if (aprs->m_hasStatus) + station->m_latestStatus = aprs->m_status; + if (!aprs->m_comment.isEmpty()) + station->m_latestComment = aprs->m_comment; + if (aprs->m_hasPosition) + station->m_latestPosition = aprs->position(); + if (aprs->m_hasAltitude) + station->m_latestAltitude = QString("%1").arg(aprs->m_altitudeFt); + if (aprs->m_hasCourseAndSpeed) + { + station->m_latestCourse = QString("%1").arg(aprs->m_course); + station->m_latestSpeed = QString("%1").arg(aprs->m_speed); + } + if (aprs->m_hasStationDetails) + { + station->m_powerWatts = QString("%1").arg(aprs->m_powerWatts); + station->m_antennaHeightFt = QString("%1").arg(aprs->m_antennaHeightFt); + station->m_antennaGainDB = QString("%1").arg(aprs->m_antennaGainDB); + station->m_antennaDirectivity = aprs->m_antennaDirectivity; + } + if (aprs->m_hasRadioRange) + station->m_radioRange = QString("%1").arg(aprs->m_radioRangeMiles); + if (aprs->m_hasWeather) + station->m_hasWeather = true; + if (aprs->m_hasTelemetry) + station->m_hasTelemetry = true; + if (aprs->m_hasCourseAndSpeed) + station->m_hasCourseAndSpeed = true; + + // Update messages, which aren't station specific + if (aprs->m_hasMessage) + { + int row = ui->messagesTable->rowCount(); + ui->messagesTable->setRowCount(row + 1); + QTableWidgetItem *messageDateItem = new QTableWidgetItem(); + QTableWidgetItem *messageTimeItem = new QTableWidgetItem(); + QTableWidgetItem *messageAddresseeItem = new QTableWidgetItem(); + QTableWidgetItem *messageMessageItem = new QTableWidgetItem(); + QTableWidgetItem *messageNoItem = new QTableWidgetItem(); + ui->messagesTable->setItem(row, MESSAGE_COL_DATE, messageDateItem); + ui->messagesTable->setItem(row, MESSAGE_COL_TIME, messageTimeItem); + ui->messagesTable->setItem(row, MESSAGE_COL_ADDRESSEE, messageAddresseeItem); + ui->messagesTable->setItem(row, MESSAGE_COL_MESSAGE, messageMessageItem); + ui->messagesTable->setItem(row, MESSAGE_COL_NO, messageNoItem); + messageDateItem->setData(Qt::DisplayRole, formatDate(aprs)); + messageTimeItem->setData(Qt::DisplayRole, formatTime(aprs)); + messageAddresseeItem->setText(aprs->m_addressee); + messageMessageItem->setText(aprs->m_message); + messageNoItem->setText(aprs->m_messageNo); + + // Process telemetry messages + if ((aprs->m_telemetryNames.size() > 0) || (aprs->m_telemetryLabels.size() > 0) || aprs->m_hasTelemetryCoefficients || aprs->m_hasTelemetryBitSense) + { + APRSStation *telemetryStation; + if (m_stations.contains(aprs->m_addressee)) + telemetryStation = m_stations.value(aprs->m_addressee); + else + { + telemetryStation = new APRSStation(aprs->m_addressee); + m_stations.insert(aprs->m_addressee, telemetryStation); + } + if (aprs->m_telemetryNames.size() > 0) + { + telemetryStation->m_telemetryNames = aprs->m_telemetryNames; + for (int i = 0; i < aprs->m_telemetryNames.size(); i++) + ui->telemetryPlotSelect->setItemText(i, aprs->m_telemetryNames[i]); + } + else + telemetryStation->m_telemetryLabels = aprs->m_telemetryLabels; + if (aprs->m_hasTelemetryCoefficients > 0) + { + for (int j = 0; j < 5; j++) + { + telemetryStation->m_telemetryCoefficientsA[j] = aprs->m_telemetryCoefficientsA[j]; + telemetryStation->m_telemetryCoefficientsB[j] = aprs->m_telemetryCoefficientsB[j]; + telemetryStation->m_telemetryCoefficientsC[j] = aprs->m_telemetryCoefficientsC[j]; + } + telemetryStation->m_hasTelemetryCoefficients = aprs->m_hasTelemetryCoefficients; + } + if (aprs->m_hasTelemetryBitSense) + { + for (int j = 0; j < 8; j++) + telemetryStation->m_telemetryBitSense[j] = aprs->m_telemetryBitSense[j]; + telemetryStation->m_hasTelemetryBitSense; + telemetryStation->m_telemetryProjectName = aprs->m_telemetryProjectName; + } + if (ui->stationSelect->currentText() == aprs->m_addressee) + { + for (int i = 0; i < station->m_telemetryNames.size(); i++) + { + QString header; + if (station->m_telemetryLabels.size() <= i) + header = station->m_telemetryNames[i]; + else + header = QString("%1 (%2)").arg(station->m_telemetryNames[i]).arg(station->m_telemetryLabels[i]); + ui->telemetryTable->horizontalHeaderItem(TELEMETRY_COL_A1+i)->setText(header); + } + } + } + } + + if (addToStationSel) + { + if (!filterStation(station)) + ui->stationSelect->addItem(station->m_station); + } + + // Refresh GUI if currently selected station + if (ui->stationSelect->currentText() == aprs->m_from) + { + updateSummary(station); + addPacketToGUI(station, aprs); + if (aprs->m_hasWeather) + plotWeather(); + if (aprs->m_hasTelemetry) + plotTelemetry(); + if (aprs->m_hasPosition || aprs->m_hasAltitude || aprs->m_hasCourseAndSpeed) + plotMotion(); + } + + // Forward to map + MessagePipes& messagePipes = MainCore::instance()->getMessagePipes(); + QList *mapMessageQueues = messagePipes.getMessageQueues(m_aprs, "mapitems"); + if (mapMessageQueues) + { + if (aprs->m_hasPosition && (aprs->m_from != "")) + { + QList::iterator it = mapMessageQueues->begin(); + + for (; it != mapMessageQueues->end(); ++it) + { + SWGSDRangel::SWGMapItem *swgMapItem = new SWGSDRangel::SWGMapItem(); + if (!aprs->m_objectName.isEmpty()) + swgMapItem->setName(new QString(aprs->m_objectName)); + else + swgMapItem->setName(new QString(aprs->m_from)); + swgMapItem->setLatitude(aprs->m_latitude); + swgMapItem->setLongitude(aprs->m_longitude); + if (aprs->m_objectKilled) + { + swgMapItem->setImage(new QString("")); + swgMapItem->setText(new QString("")); + } + else + { + swgMapItem->setImage(new QString(QString("qrc:///%1").arg(aprs->m_symbolImage))); + swgMapItem->setText(new QString(aprs->toText())); + } + swgMapItem->setImageFixedSize(0); + + MainCore::MsgMapItem *msg = MainCore::MsgMapItem::create(m_aprs, swgMapItem); + (*it)->push(msg); + } + } + } + + } + else + { + qDebug() << "APRSGUI::handleMessage: Failed to decode as APRS"; + qDebug() << ax25.m_from << " " << ax25.m_to << " " << ax25.m_via << " " << ax25.m_type << " " << ax25.m_pid << " "<< ax25.m_dataASCII; + } + } + else + qDebug() << "APRSGUI::handleMessage: Failed to decode as AX.25"; + return true; + } + + return false; +} + +void APRSGUI::handleInputMessages() +{ + Message* message; + + while ((message = getInputMessageQueue()->pop())) + { + if (handleMessage(*message)) { + delete message; + } + } +} + +void APRSGUI::onWidgetRolled(QWidget* widget, bool rollDown) +{ + (void) widget; + (void) rollDown; +} + +APRSGUI::APRSGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature, QWidget* parent) : + FeatureGUI(parent), + ui(new Ui::APRSGUI), + m_pluginAPI(pluginAPI), + m_featureUISet(featureUISet), + m_doApplySettings(true), + m_lastFeatureState(0) +{ + ui->setupUi(this); + + setAttribute(Qt::WA_DeleteOnClose, true); + setChannelWidget(false); + connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_aprs = reinterpret_cast(feature); + m_aprs->setMessageQueueToGUI(&m_inputMessageQueue); + + m_featureUISet->addRollupWidget(this); + + connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); + connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + + connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus())); + m_statusTimer.start(1000); + + // Resize the table using dummy data + resizeTable(); + // Allow user to reorder columns + ui->weatherTable->horizontalHeader()->setSectionsMovable(true); + ui->packetsTable->horizontalHeader()->setSectionsMovable(true); + ui->statusTable->horizontalHeader()->setSectionsMovable(true); + ui->messagesTable->horizontalHeader()->setSectionsMovable(true); + ui->telemetryTable->horizontalHeader()->setSectionsMovable(true); + ui->motionTable->horizontalHeader()->setSectionsMovable(true); + // Allow user to sort table by clicking on headers + ui->weatherTable->setSortingEnabled(true); + ui->packetsTable->setSortingEnabled(true); + ui->statusTable->setSortingEnabled(true); + ui->messagesTable->setSortingEnabled(true); + ui->telemetryTable->setSortingEnabled(true); + ui->motionTable->setSortingEnabled(true); + // Add context menu to allow hiding/showing of columns + packetsTableMenu = new QMenu(ui->packetsTable); + for (int i = 0; i < ui->packetsTable->horizontalHeader()->count(); i++) + { + QString text = ui->packetsTable->horizontalHeaderItem(i)->text(); + packetsTableMenu->addAction(packetsTable_createCheckableItem(text, i, true)); + } + ui->packetsTable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->packetsTable->horizontalHeader(), SIGNAL(customContextMenuRequested(QPoint)), SLOT(packetsTable_columnSelectMenu(QPoint))); + + weatherTableMenu = new QMenu(ui->weatherTable); + for (int i = 0; i < ui->weatherTable->horizontalHeader()->count(); i++) + { + QString text = ui->weatherTable->horizontalHeaderItem(i)->text(); + weatherTableMenu->addAction(weatherTable_createCheckableItem(text, i, true)); + } + ui->weatherTable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->weatherTable->horizontalHeader(), SIGNAL(customContextMenuRequested(QPoint)), SLOT(weatherTable_columnSelectMenu(QPoint))); + + statusTableMenu = new QMenu(ui->statusTable); + for (int i = 0; i < ui->statusTable->horizontalHeader()->count(); i++) + { + QString text = ui->statusTable->horizontalHeaderItem(i)->text(); + statusTableMenu->addAction(statusTable_createCheckableItem(text, i, true)); + } + ui->statusTable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->statusTable->horizontalHeader(), SIGNAL(customContextMenuRequested(QPoint)), SLOT(statusTable_columnSelectMenu(QPoint))); + + messagesTableMenu = new QMenu(ui->messagesTable); + for (int i = 0; i < ui->messagesTable->horizontalHeader()->count(); i++) + { + QString text = ui->messagesTable->horizontalHeaderItem(i)->text(); + messagesTableMenu->addAction(messagesTable_createCheckableItem(text, i, true)); + } + ui->messagesTable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->messagesTable->horizontalHeader(), SIGNAL(customContextMenuRequested(QPoint)), SLOT(messagesTable_columnSelectMenu(QPoint))); + + telemetryTableMenu = new QMenu(ui->telemetryTable); + for (int i = 0; i < ui->telemetryTable->horizontalHeader()->count(); i++) + { + QString text = ui->telemetryTable->horizontalHeaderItem(i)->text(); + telemetryTableMenu->addAction(telemetryTable_createCheckableItem(text, i, true)); + } + ui->telemetryTable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->telemetryTable->horizontalHeader(), SIGNAL(customContextMenuRequested(QPoint)), SLOT(telemetryTable_columnSelectMenu(QPoint))); + + motionTableMenu = new QMenu(ui->motionTable); + for (int i = 0; i < ui->motionTable->horizontalHeader()->count(); i++) + { + QString text = ui->motionTable->horizontalHeaderItem(i)->text(); + motionTableMenu->addAction(motionTable_createCheckableItem(text, i, true)); + } + ui->motionTable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->motionTable->horizontalHeader(), SIGNAL(customContextMenuRequested(QPoint)), SLOT(motionTable_columnSelectMenu(QPoint))); + // Get signals when columns change + connect(ui->packetsTable->horizontalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(packetsTable_sectionMoved(int, int, int))); + connect(ui->packetsTable->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), SLOT(packetsTable_sectionResized(int, int, int))); + connect(ui->weatherTable->horizontalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(weatherTable_sectionMoved(int, int, int))); + connect(ui->weatherTable->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), SLOT(weatherTable_sectionResized(int, int, int))); + connect(ui->statusTable->horizontalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(statusTable_sectionMoved(int, int, int))); + connect(ui->statusTable->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), SLOT(statusTable_sectionResized(int, int, int))); + connect(ui->messagesTable->horizontalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(messagesTable_sectionMoved(int, int, int))); + connect(ui->messagesTable->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), SLOT(messagesTable_sectionResized(int, int, int))); + connect(ui->telemetryTable->horizontalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(telemetryTable_sectionMoved(int, int, int))); + connect(ui->telemetryTable->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), SLOT(telemetryTable_sectionResized(int, int, int))); + connect(ui->motionTable->horizontalHeader(), SIGNAL(sectionMoved(int, int, int)), SLOT(motionTable_sectionMoved(int, int, int))); + connect(ui->motionTable->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), SLOT(motionTable_sectionResized(int, int, int))); + + m_weatherChart.legend()->hide(); + ui->weatherChart->setChart(&m_weatherChart); + ui->weatherChart->setRenderHint(QPainter::Antialiasing); + m_weatherChart.addAxis(&m_weatherChartXAxis, Qt::AlignBottom); + m_weatherChart.addAxis(&m_weatherChartYAxis, Qt::AlignLeft); + + m_telemetryChart.legend()->hide(); + ui->telemetryChart->setChart(&m_telemetryChart); + ui->telemetryChart->setRenderHint(QPainter::Antialiasing); + m_telemetryChart.addAxis(&m_telemetryChartXAxis, Qt::AlignBottom); + m_telemetryChart.addAxis(&m_telemetryChartYAxis, Qt::AlignLeft); + + m_motionChart.legend()->hide(); + ui->motionChart->setChart(&m_motionChart); + ui->motionChart->setRenderHint(QPainter::Antialiasing); + m_motionChart.addAxis(&m_motionChartXAxis, Qt::AlignBottom); + m_motionChart.addAxis(&m_motionChartYAxis, Qt::AlignLeft); + + displaySettings(); + applySettings(true); +} + +APRSGUI::~APRSGUI() +{ + delete ui; +} + +void APRSGUI::blockApplySettings(bool block) +{ + m_doApplySettings = !block; +} + +bool APRSGUI::filterStation(APRSStation *station) +{ + switch (m_settings.m_stationFilter) + { + case APRSSettings::ALL: + return false; + case APRSSettings::STATIONS: + return station->m_isObject; + case APRSSettings::OBJECTS: + return !station->m_isObject; + case APRSSettings::WEATHER: + return !station->m_hasWeather; + case APRSSettings::TELEMETRY: + return !station->m_hasTelemetry; + case APRSSettings::COURSE_AND_SPEED: + return !station->m_hasCourseAndSpeed; + } + return false; +} + +void APRSGUI::filterStations() +{ + ui->stationSelect->clear(); + QHashIterator i(m_stations); + while (i.hasNext()) + { + i.next(); + APRSStation *station = i.value(); + if (!filterStation(station)) + { + ui->stationSelect->addItem(station->m_station); + } + } +} + +void APRSGUI::displayTableSettings(QTableWidget *table, QMenu *menu, int *columnSizes, int *columnIndexes, int columns) +{ + QHeaderView *header = table->horizontalHeader(); + for (int i = 0; i < columns; i++) + { + bool hidden = columnSizes[i] == 0; + header->setSectionHidden(i, hidden); + menu->actions().at(i)->setChecked(!hidden); + if (columnSizes[i] > 0) + table->setColumnWidth(i, columnSizes[i]); + header->moveSection(header->visualIndex(i), columnIndexes[i]); + } +} + +void APRSGUI::displaySettings() +{ + setTitleColor(m_settings.m_rgbColor); + setWindowTitle(m_settings.m_title); + blockApplySettings(true); + ui->igate->setChecked(m_settings.m_igateEnabled); + ui->stationFilter->setCurrentIndex((int)m_settings.m_stationFilter); + ui->filterAddressee->setText(m_settings.m_filterAddressee); + + // Order and size columns + displayTableSettings(ui->packetsTable, packetsTableMenu, m_settings.m_packetsTableColumnSizes, m_settings.m_packetsTableColumnIndexes, APRS_PACKETS_TABLE_COLUMNS); + displayTableSettings(ui->weatherTable, weatherTableMenu, m_settings.m_weatherTableColumnSizes, m_settings.m_weatherTableColumnIndexes, APRS_WEATHER_TABLE_COLUMNS); + displayTableSettings(ui->statusTable, statusTableMenu, m_settings.m_statusTableColumnSizes, m_settings.m_statusTableColumnIndexes, APRS_STATUS_TABLE_COLUMNS); + displayTableSettings(ui->messagesTable, messagesTableMenu, m_settings.m_messagesTableColumnSizes, m_settings.m_messagesTableColumnIndexes, APRS_MESSAGES_TABLE_COLUMNS); + displayTableSettings(ui->telemetryTable, telemetryTableMenu, m_settings.m_telemetryTableColumnSizes, m_settings.m_telemetryTableColumnIndexes, APRS_TELEMETRY_TABLE_COLUMNS); + displayTableSettings(ui->motionTable, motionTableMenu, m_settings.m_motionTableColumnSizes, m_settings.m_motionTableColumnIndexes, APRS_MOTION_TABLE_COLUMNS); + + blockApplySettings(false); +} + +void APRSGUI::updatePipeList() +{ + ui->sourcePipes->blockSignals(true); + ui->sourcePipes->clear(); + QList::const_iterator it = m_availablePipes.begin(); + + for (int i = 0; it != m_availablePipes.end(); ++it, i++) + { + ui->sourcePipes->addItem(it->getName()); + } + + ui->sourcePipes->blockSignals(false); +} + +void APRSGUI::leaveEvent(QEvent*) +{ +} + +void APRSGUI::enterEvent(QEvent*) +{ +} + +void APRSGUI::resizeEvent(QResizeEvent* size) +{ + // Replot graphs to ensure Axis are visible + plotWeather(); + plotTelemetry(); + plotMotion(); + FeatureGUI::resizeEvent(size); +} + +void APRSGUI::onMenuDialogCalled(const QPoint &p) +{ + if (m_contextMenuType == ContextMenuChannelSettings) + { + BasicFeatureSettingsDialog dialog(this); + dialog.setTitle(m_settings.m_title); + dialog.setColor(m_settings.m_rgbColor); + dialog.setUseReverseAPI(m_settings.m_useReverseAPI); + dialog.setReverseAPIAddress(m_settings.m_reverseAPIAddress); + dialog.setReverseAPIPort(m_settings.m_reverseAPIPort); + dialog.setReverseAPIFeatureSetIndex(m_settings.m_reverseAPIFeatureSetIndex); + dialog.setReverseAPIFeatureIndex(m_settings.m_reverseAPIFeatureIndex); + + dialog.move(p); + dialog.exec(); + + m_settings.m_rgbColor = dialog.getColor().rgb(); + m_settings.m_title = dialog.getTitle(); + m_settings.m_useReverseAPI = dialog.useReverseAPI(); + m_settings.m_reverseAPIAddress = dialog.getReverseAPIAddress(); + m_settings.m_reverseAPIPort = dialog.getReverseAPIPort(); + m_settings.m_reverseAPIFeatureSetIndex = dialog.getReverseAPIFeatureSetIndex(); + m_settings.m_reverseAPIFeatureIndex = dialog.getReverseAPIFeatureIndex(); + + setWindowTitle(m_settings.m_title); + setTitleColor(m_settings.m_rgbColor); + + applySettings(); + } + + resetContextMenuType(); +} + +void APRSGUI::updateSummary(APRSStation *station) +{ + ui->station->setText(station->m_station); + ui->reportingStation->setText(station->m_reportingStation); + ui->symbol->setPixmap(QPixmap(QString(":%1").arg(station->m_symbolImage))); + ui->status->setText(station->m_latestStatus); + ui->comment->setText(station->m_latestComment); + ui->position->setText(station->m_latestPosition); + ui->altitude->setText(station->m_latestAltitude); + ui->course->setText(station->m_latestCourse); + ui->speed->setText(station->m_latestSpeed); + ui->txPower->setText(station->m_powerWatts); + ui->antennaHeight->setText(station->m_antennaHeightFt); + ui->antennaGain->setText(station->m_antennaGainDB); + ui->antennaDirectivity->setText(station->m_antennaDirectivity); + ui->radioRange->setText(station->m_radioRange); + if (!station->m_packets.isEmpty()) + ui->lastPacket->setText(station->m_packets.last()->m_dateTime.toString()); + else + ui->lastPacket->setText(""); +} + +QString APRSGUI::formatDate(APRSPacket *aprs) +{ + if (aprs->m_hasTimestamp) + return aprs->date(); + else + return aprs->m_dateTime.date().toString("yyyy/MM/dd"); +} + +QString APRSGUI::formatTime(APRSPacket *aprs) +{ + // Add suffix T to indicate timestamp used + if (aprs->m_hasTimestamp) + return QString("%1 T").arg(aprs->time()); + else + return aprs->m_dateTime.time().toString("hh:mm:ss"); +} + +double APRSGUI::applyCoefficients(int idx, int value, APRSStation *station) +{ + if (station->m_hasTelemetryCoefficients > idx) + return station->m_telemetryCoefficientsA[idx] * value * value + station->m_telemetryCoefficientsB[idx] * value + station->m_telemetryCoefficientsC[idx]; + else + return (double)idx; +} + +void APRSGUI::addPacketToGUI(APRSStation *station, APRSPacket *aprs) +{ + int row; + // Weather table + if (aprs->m_hasWeather) + { + row = ui->weatherTable->rowCount(); + ui->weatherTable->setRowCount(row + 1); + QTableWidgetItem *weatherDateItem = new QTableWidgetItem(); + QTableWidgetItem *weatherTimeItem = new QTableWidgetItem(); + QTableWidgetItem *windDirectionItem = new QTableWidgetItem(); + QTableWidgetItem *windSpeedItem = new QTableWidgetItem(); + QTableWidgetItem *gustsItem = new QTableWidgetItem(); + QTableWidgetItem *temperatureItem = new QTableWidgetItem(); + QTableWidgetItem *humidityItem = new QTableWidgetItem(); + QTableWidgetItem *pressureItem = new QTableWidgetItem(); + QTableWidgetItem *rainLastHourItem = new QTableWidgetItem(); + QTableWidgetItem *rainLast24HoursItem = new QTableWidgetItem(); + QTableWidgetItem *rainSinceMidnightItem = new QTableWidgetItem(); + QTableWidgetItem *luminosityItem = new QTableWidgetItem(); + QTableWidgetItem *snowfallItem = new QTableWidgetItem(); + QTableWidgetItem *radiationLevelItem = new QTableWidgetItem(); + QTableWidgetItem *floodLevelItem = new QTableWidgetItem(); + ui->weatherTable->setItem(row, WEATHER_COL_DATE, weatherDateItem); + ui->weatherTable->setItem(row, WEATHER_COL_TIME, weatherTimeItem); + ui->weatherTable->setItem(row, WEATHER_COL_WIND_DIRECTION, windDirectionItem); + ui->weatherTable->setItem(row, WEATHER_COL_WIND_SPEED, windSpeedItem); + ui->weatherTable->setItem(row, WEATHER_COL_GUSTS, gustsItem); + ui->weatherTable->setItem(row, WEATHER_COL_TEMPERATURE, temperatureItem); + ui->weatherTable->setItem(row, WEATHER_COL_HUMIDITY, humidityItem); + ui->weatherTable->setItem(row, WEATHER_COL_PRESSURE, pressureItem); + ui->weatherTable->setItem(row, WEATHER_COL_RAIN_LAST_HOUR, rainLastHourItem); + ui->weatherTable->setItem(row, WEATHER_COL_RAIN_LAST_24_HOURS, rainLast24HoursItem); + ui->weatherTable->setItem(row, WEATHER_COL_RAIN_SINCE_MIDNIGHT, rainSinceMidnightItem); + ui->weatherTable->setItem(row, WEATHER_COL_LUMINOSITY, luminosityItem); + ui->weatherTable->setItem(row, WEATHER_COL_SNOWFALL, snowfallItem); + ui->weatherTable->setItem(row, WEATHER_COL_RADIATION_LEVEL, radiationLevelItem); + ui->weatherTable->setItem(row, WEATHER_COL_FLOOD_LEVEL, floodLevelItem); + weatherDateItem->setData(Qt::DisplayRole, formatDate(aprs)); + weatherTimeItem->setData(Qt::DisplayRole, formatTime(aprs)); + if (aprs->m_hasWindDirection) + windDirectionItem->setData(Qt::DisplayRole, aprs->m_windDirection); + if (aprs->m_hasWindSpeed) + windSpeedItem->setData(Qt::DisplayRole, aprs->m_windSpeed); + if (aprs->m_hasGust) + gustsItem->setData(Qt::DisplayRole, aprs->m_gust); + if (aprs->m_hasTemp) + temperatureItem->setData(Qt::DisplayRole, aprs->m_temp); + if (aprs->m_hasHumidity) + humidityItem->setData(Qt::DisplayRole, aprs->m_humidity); + if (aprs->m_hasBarometricPressure) + pressureItem->setData(Qt::DisplayRole, aprs->m_barometricPressure/10.0f); + if (aprs->m_hasRainLastHr) + rainLastHourItem->setData(Qt::DisplayRole, aprs->m_rainLastHr); + if (aprs->m_hasRainLast24Hrs) + rainLast24HoursItem->setData(Qt::DisplayRole, aprs->m_rainLast24Hrs); + if (aprs->m_hasRainSinceMidnight) + rainSinceMidnightItem->setData(Qt::DisplayRole, aprs->m_rainSinceMidnight); + if (aprs->m_hasLuminsoity) + luminosityItem->setData(Qt::DisplayRole, aprs->m_luminosity); + if (aprs->m_hasSnowfallLast24Hrs) + snowfallItem->setData(Qt::DisplayRole, aprs->m_snowfallLast24Hrs); + if (aprs->m_hasRadiationLevel) + radiationLevelItem->setData(Qt::DisplayRole, aprs->m_hasRadiationLevel); + if (aprs->m_hasFloodLevel) + floodLevelItem->setData(Qt::DisplayRole, aprs->m_floodLevel); + } + + // Status table + if (aprs->m_hasStatus) + { + row = ui->statusTable->rowCount(); + ui->statusTable->setRowCount(row + 1); + QTableWidgetItem *statusDateItem = new QTableWidgetItem(); + QTableWidgetItem *statusTimeItem = new QTableWidgetItem(); + QTableWidgetItem *statusItem = new QTableWidgetItem(); + QTableWidgetItem *statusSymbolItem = new QTableWidgetItem(); + QTableWidgetItem *statusMaidenheadItem = new QTableWidgetItem(); + QTableWidgetItem *statusBeamHeadingItem = new QTableWidgetItem(); + QTableWidgetItem *statusBeamPowerItem = new QTableWidgetItem(); + ui->statusTable->setItem(row, STATUS_COL_DATE, statusDateItem); + ui->statusTable->setItem(row, STATUS_COL_TIME, statusTimeItem); + ui->statusTable->setItem(row, STATUS_COL_STATUS, statusItem); + ui->statusTable->setItem(row, STATUS_COL_SYMBOL, statusSymbolItem); + ui->statusTable->setItem(row, STATUS_COL_MAIDENHEAD, statusMaidenheadItem); + ui->statusTable->setItem(row, STATUS_COL_BEAM_HEADING, statusBeamHeadingItem); + ui->statusTable->setItem(row, STATUS_COL_BEAM_POWER, statusBeamPowerItem); + statusDateItem->setData(Qt::DisplayRole, formatDate(aprs)); + statusTimeItem->setData(Qt::DisplayRole, formatTime(aprs)); + statusItem->setText(aprs->m_status); + if (aprs->m_hasSymbol) + { + statusSymbolItem->setSizeHint(QSize(24, 24)); + statusSymbolItem->setIcon(QIcon(QString(":%1").arg(station->m_symbolImage))); + } + statusMaidenheadItem->setText(aprs->m_maidenhead); + if (aprs->m_hasBeam) + { + statusBeamHeadingItem->setData(Qt::DisplayRole, aprs->m_beamHeading); + statusBeamPowerItem->setData(Qt::DisplayRole, aprs->m_beamPower); + } + } + + // Telemetry table + if (aprs->m_hasTelemetry) + { + row = ui->telemetryTable->rowCount(); + ui->telemetryTable->setRowCount(row + 1); + QTableWidgetItem *telemetryDateItem = new QTableWidgetItem(); + QTableWidgetItem *telemetryTimeItem = new QTableWidgetItem(); + QTableWidgetItem *telemetrySeqNoItem = new QTableWidgetItem(); + QTableWidgetItem *telemetryA1Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryA2Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryA3Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryA4Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryA5Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryB1Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryB2Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryB3Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryB4Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryB5Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryB6Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryB7Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryB8Item = new QTableWidgetItem(); + QTableWidgetItem *telemetryCommentItem = new QTableWidgetItem(); + ui->telemetryTable->setItem(row, TELEMETRY_COL_DATE, telemetryDateItem); + ui->telemetryTable->setItem(row, TELEMETRY_COL_TIME, telemetryTimeItem); + ui->telemetryTable->setItem(row, TELEMETRY_COL_SEQ_NO, telemetrySeqNoItem); + ui->telemetryTable->setItem(row, TELEMETRY_COL_A1, telemetryA1Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_A2, telemetryA2Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_A3, telemetryA3Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_A4, telemetryA4Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_A5, telemetryA5Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B1, telemetryB1Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B2, telemetryB2Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B3, telemetryB3Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B4, telemetryB4Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B5, telemetryB5Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B6, telemetryB6Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B7, telemetryB7Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B8, telemetryB8Item); + ui->telemetryTable->setItem(row, TELEMETRY_COL_COMMENT, telemetryCommentItem); + telemetryDateItem->setData(Qt::DisplayRole, formatDate(aprs)); + telemetryTimeItem->setData(Qt::DisplayRole, formatTime(aprs)); + if (aprs->m_hasSeqNo) + telemetrySeqNoItem->setData(Qt::DisplayRole, aprs->m_seqNo); + if (aprs->m_a1HasValue) + telemetryA1Item->setData(Qt::DisplayRole, applyCoefficients(0, aprs->m_a1, station)); + if (aprs->m_a2HasValue) + telemetryA2Item->setData(Qt::DisplayRole, applyCoefficients(1, aprs->m_a2, station)); + if (aprs->m_a3HasValue) + telemetryA3Item->setData(Qt::DisplayRole, applyCoefficients(2, aprs->m_a3, station)); + if (aprs->m_a4HasValue) + telemetryA4Item->setData(Qt::DisplayRole, applyCoefficients(3, aprs->m_a4, station)); + if (aprs->m_a5HasValue) + telemetryA5Item->setData(Qt::DisplayRole, applyCoefficients(4, aprs->m_a5, station)); + if (aprs->m_bHasValue) + { + telemetryB1Item->setData(Qt::DisplayRole, aprs->m_b[0] ? 1 : 0); + telemetryB2Item->setData(Qt::DisplayRole, aprs->m_b[1] ? 1 : 0); + telemetryB3Item->setData(Qt::DisplayRole, aprs->m_b[2] ? 1 : 0); + telemetryB4Item->setData(Qt::DisplayRole, aprs->m_b[3] ? 1 : 0); + telemetryB5Item->setData(Qt::DisplayRole, aprs->m_b[4] ? 1 : 0); + telemetryB6Item->setData(Qt::DisplayRole, aprs->m_b[5] ? 1 : 0); + telemetryB7Item->setData(Qt::DisplayRole, aprs->m_b[6] ? 1 : 0); + telemetryB8Item->setData(Qt::DisplayRole, aprs->m_b[7] ? 1 : 0); + } + telemetryCommentItem->setText(aprs->m_telemetryComment); + + for (int i = 0; i < station->m_telemetryNames.size(); i++) + { + QString header; + if (station->m_telemetryLabels.size() <= i) + header = station->m_telemetryNames[i]; + else + header = QString("%1 (%2)").arg(station->m_telemetryNames[i]).arg(station->m_telemetryLabels[i]); + ui->telemetryTable->horizontalHeaderItem(TELEMETRY_COL_A1+i)->setText(header); + } + } + + // Motion table + if (aprs->m_hasPosition || aprs->m_hasAltitude || aprs->m_hasCourseAndSpeed) + { + row = ui->motionTable->rowCount(); + ui->motionTable->setRowCount(row + 1); + QTableWidgetItem *motionDateItem = new QTableWidgetItem(); + QTableWidgetItem *motionTimeItem = new QTableWidgetItem(); + QTableWidgetItem *latitudeItem = new QTableWidgetItem(); + QTableWidgetItem *longitudeItem = new QTableWidgetItem(); + QTableWidgetItem *altitudeItem = new QTableWidgetItem(); + QTableWidgetItem *courseItem = new QTableWidgetItem(); + QTableWidgetItem *speedItem = new QTableWidgetItem(); + ui->motionTable->setItem(row, MOTION_COL_DATE, motionDateItem); + ui->motionTable->setItem(row, MOTION_COL_TIME, motionTimeItem); + ui->motionTable->setItem(row, MOTION_COL_LATITUDE, latitudeItem); + ui->motionTable->setItem(row, MOTION_COL_LONGITUDE, longitudeItem); + ui->motionTable->setItem(row, MOTION_COL_ALTITUDE, altitudeItem); + ui->motionTable->setItem(row, MOTION_COL_COURSE, courseItem); + ui->motionTable->setItem(row, MOTION_COL_SPEED, speedItem); + motionDateItem->setData(Qt::DisplayRole, formatDate(aprs)); + motionTimeItem->setData(Qt::DisplayRole, formatTime(aprs)); + if (aprs->m_hasPosition) + { + latitudeItem->setData(Qt::DisplayRole, aprs->m_latitude); + longitudeItem->setData(Qt::DisplayRole, aprs->m_longitude); + } + if (aprs->m_hasAltitude) + altitudeItem->setData(Qt::DisplayRole, aprs->m_altitudeFt); + if (aprs->m_hasCourseAndSpeed) + { + courseItem->setData(Qt::DisplayRole, aprs->m_course); + speedItem->setData(Qt::DisplayRole, aprs->m_speed); + } + } + + // Packets table + row = ui->packetsTable->rowCount(); + ui->packetsTable->setRowCount(row + 1); + QTableWidgetItem *dateItem = new QTableWidgetItem(); + QTableWidgetItem *timeItem = new QTableWidgetItem(); + QTableWidgetItem *fromItem = new QTableWidgetItem(); + QTableWidgetItem *toItem = new QTableWidgetItem(); + QTableWidgetItem *viaItem = new QTableWidgetItem(); + QTableWidgetItem *dataItem = new QTableWidgetItem(); + ui->packetsTable->setItem(row, PACKETS_COL_DATE, dateItem); + ui->packetsTable->setItem(row, PACKETS_COL_TIME, timeItem); + ui->packetsTable->setItem(row, PACKETS_COL_FROM, fromItem); + ui->packetsTable->setItem(row, PACKETS_COL_TO, toItem); + ui->packetsTable->setItem(row, PACKETS_COL_VIA, viaItem); + ui->packetsTable->setItem(row, PACKETS_COL_DATA, dataItem); + dateItem->setData(Qt::DisplayRole, formatDate(aprs)); + timeItem->setData(Qt::DisplayRole, formatTime(aprs)); + fromItem->setText(aprs->m_from); + toItem->setText(aprs->m_to); + viaItem->setText(aprs->m_via); + dataItem->setText(aprs->m_data); +} + +void APRSGUI::on_stationFilter_currentIndexChanged(int index) +{ + m_settings.m_stationFilter = static_cast(index); + applySettings(); + filterStations(); +} + +void APRSGUI::on_stationSelect_currentIndexChanged(int index) +{ + QString stationCallsign = ui->stationSelect->currentText(); + + APRSStation *station = m_stations.value(stationCallsign); + if (station == nullptr) + { + qDebug() << "APRSGUI::on_stationSelect_currentIndexChanged - station==nullptr"; + return; + } + + // Clear tables + ui->weatherTable->setRowCount(0); + ui->packetsTable->setRowCount(0); + ui->statusTable->setRowCount(0); + ui->telemetryTable->setRowCount(0); + ui->motionTable->setRowCount(0); + + // Set telemetry plot select combo text + const char *telemetryNames[] = {"A1", "A2", "A3", "A4", "A5", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8"}; + int telemetryNamesSize = station->m_telemetryNames.size(); + for (int i = 0; i < 12; i++) + { + if (i < telemetryNamesSize) + ui->telemetryPlotSelect->setItemText(i, station->m_telemetryNames[i]); + else + ui->telemetryPlotSelect->setItemText(i, telemetryNames[i]); + } + + // Update summary table + updateSummary(station); + + // Display/hide fields depending if station or object + ui->stationObjectLabel->setText(station->m_isObject ? "Object" : "Station"); + ui->station->setToolTip(station->m_isObject ? "Object name" : "Station callsign and substation ID"); + ui->reportingStation->setVisible(station->m_isObject); + ui->reportingStationLabel->setVisible(station->m_isObject); + ui->status->setVisible(!station->m_isObject); + ui->statusLabel->setVisible(!station->m_isObject); + if (station->m_isObject) + { + if ( ui->stationsTabWidget->count() == 6) + { + ui->stationsTabWidget->removeTab(3); + ui->stationsTabWidget->removeTab(3); + } + } + else + { + if ( ui->stationsTabWidget->count() != 6) + { + ui->stationsTabWidget->insertTab(3, ui->telemetryTab, "Telemetry"); + ui->stationsTabWidget->insertTab(4, ui->statusTab, "Status"); + } + } + + // Add packets to tables + ui->packetsTable->setSortingEnabled(false); + ui->weatherTable->setSortingEnabled(false); + ui->statusTable->setSortingEnabled(false); + ui->telemetryTable->setSortingEnabled(false); + ui->motionTable->setSortingEnabled(false); + QListIterator i(station->m_packets); + while (i.hasNext()) + { + APRSPacket *aprs = i.next(); + addPacketToGUI(station, aprs); + } + ui->packetsTable->setSortingEnabled(true); + ui->weatherTable->setSortingEnabled(true); + ui->statusTable->setSortingEnabled(true); + ui->telemetryTable->setSortingEnabled(true); + ui->motionTable->setSortingEnabled(true); + plotWeather(); + plotTelemetry(); + plotMotion(); +} + +void APRSGUI::on_filterAddressee_editingFinished() +{ + m_settings.m_filterAddressee = ui->filterAddressee->text(); + filterMessages(); + applySettings(); +} + +void APRSGUI::filterMessageRow(int row) +{ + bool hidden = false; + if (m_settings.m_filterAddressee != "") + { + QRegExp re(m_settings.m_filterAddressee); + QTableWidgetItem *addressee = ui->messagesTable->item(row, MESSAGE_COL_ADDRESSEE); + if (!re.exactMatch(addressee->text())) + hidden = true; + } + ui->messagesTable->setRowHidden(row, hidden); +} + +void APRSGUI::filterMessages() +{ + for (int i = 0; i < ui->messagesTable->rowCount(); i++) + filterMessageRow(i); +} + +void APRSGUI::on_deleteMessages_clicked() +{ + QList list = ui->messagesTable->selectedItems(); + QList rows; + if (list.isEmpty()) + { + // Delete all messages + if (QMessageBox::Yes == QMessageBox::question(this, "Delete all messages", "Delete all messages?", QMessageBox::Yes|QMessageBox::No)) + ui->messagesTable->setRowCount(0); + } + else + { + // Delete selected messages (in reverse order) + for (int i = 0; i < list.size(); i++) + { + int row = list[i]->row(); + if (!rows.contains(row)) + rows.append(row); + } + std::sort(rows.begin(), rows.end(), std::greater()); + QListIterator itr(rows); + while (itr.hasNext()) + ui->messagesTable->removeRow(itr.next()); + } +} + +static void addToSeries(QLineSeries *series, const QDateTime& dt, double value, double& min, double &max) +{ + series->append(dt.toMSecsSinceEpoch(), value); + if (value < min) + min = value; + if (value > max) + max = value; +} + +void APRSGUI::plotWeather() +{ + QString stationCallsign = ui->stationSelect->currentText(); + if (stationCallsign.isEmpty()) + return; + APRSStation *station = m_stations.value(stationCallsign); + if (station == nullptr) + return; + + QLineSeries *series = new QLineSeries(); + double minValue = INFINITY; + double maxValue = -INFINITY; + + int timeSelectIdx = ui->weatherTimeSelect->currentIndex(); + int plotSelectIdx = ui->weatherPlotSelect->currentIndex(); + QDateTime limit = calcTimeLimit(timeSelectIdx); + + QListIterator i(station->m_packets); + while (i.hasNext()) + { + APRSPacket *aprs = i.next(); + if (aprs->m_hasWeather) + { + QDateTime dt; + if (aprs->m_hasTimestamp) + dt = aprs->m_timestamp; + else + dt = aprs->m_dateTime; + + if (dt >= limit) + { + if (plotSelectIdx == 0 && aprs->m_hasWindDirection) + addToSeries(series, dt, aprs->m_windDirection, minValue, maxValue); + else if (plotSelectIdx == 1 && aprs->m_hasWindSpeed) + addToSeries(series, dt, aprs->m_windSpeed, minValue, maxValue); + else if (plotSelectIdx == 2 && aprs->m_hasGust) + addToSeries(series, dt, aprs->m_gust, minValue, maxValue); + else if (plotSelectIdx == 3 && aprs->m_hasTemp) + addToSeries(series, dt, aprs->m_temp, minValue, maxValue); + else if (plotSelectIdx == 4 && aprs->m_hasHumidity) + addToSeries(series, dt, aprs->m_humidity, minValue, maxValue); + else if (plotSelectIdx == 5 && aprs->m_hasBarometricPressure) + addToSeries(series, dt, aprs->m_barometricPressure/10.0, minValue, maxValue); + else if (plotSelectIdx == 6 && aprs->m_hasRainLastHr) + addToSeries(series, dt, aprs->m_rainLastHr, minValue, maxValue); + else if (plotSelectIdx == 7 && aprs->m_hasRainLast24Hrs) + addToSeries(series, dt, aprs->m_rainLast24Hrs, minValue, maxValue); + else if (plotSelectIdx == 8 && aprs->m_hasRainSinceMidnight) + addToSeries(series, dt, aprs->m_rainSinceMidnight, minValue, maxValue); + else if (plotSelectIdx == 9 && aprs->m_hasLuminsoity) + addToSeries(series, dt, aprs->m_luminosity, minValue, maxValue); + else if (plotSelectIdx == 10 && aprs->m_hasSnowfallLast24Hrs) + addToSeries(series, dt, aprs->m_snowfallLast24Hrs, minValue, maxValue); + else if (plotSelectIdx == 11 && aprs->m_hasRadiationLevel) + addToSeries(series, dt, aprs->m_radiationLevel, minValue, maxValue); + else if (plotSelectIdx == 12 && aprs->m_hasFloodLevel) + addToSeries(series, dt, aprs->m_floodLevel, minValue, maxValue); + } + } + } + m_weatherChart.removeAllSeries(); + m_weatherChart.removeAxis(&m_weatherChartXAxis); + m_weatherChart.removeAxis(&m_weatherChartYAxis); + + m_weatherChart.addSeries(series); + + calcTimeAxis(timeSelectIdx, &m_weatherChartXAxis, series, ui->weatherChart->width()); + + m_weatherChart.addAxis(&m_weatherChartXAxis, Qt::AlignBottom); + + series->attachAxis(&m_weatherChartXAxis); + + m_weatherChartYAxis.setTitleText(ui->weatherPlotSelect->currentText()); + calcYAxis(minValue, maxValue, &m_weatherChartYAxis); + m_weatherChart.addAxis(&m_weatherChartYAxis, Qt::AlignLeft); + series->attachAxis(&m_weatherChartYAxis); +} + +void APRSGUI::on_weatherTimeSelect_currentIndexChanged(int index) +{ + plotWeather(); +} + +void APRSGUI::on_weatherPlotSelect_currentIndexChanged(int index) +{ + plotWeather(); +} + +void APRSGUI::calcTimeAxis(int timeSelectIdx, QDateTimeAxis *axis, QLineSeries *series, int width) +{ + QDateTime startX = QDateTime::currentDateTime(); + QDateTime finishX = QDateTime::currentDateTime(); + finishX.setTime(QTime(0,0,0)); + finishX = finishX.addDays(1); + int ticksScale = width < 650 ? 1 : 2; // FIXME: Should probably measure the width of some actual text + switch (timeSelectIdx) + { + case 0: // Today + startX.setTime(QTime(0,0,0)); + axis->setTickCount(6*ticksScale+1); + axis->setFormat("hh:mm"); + axis->setTitleText(QString("Time (%1)").arg(startX.date().toString())); + break; + case 1: // Last hour + startX.setTime(startX.time().addSecs(-60*60)); + finishX = QDateTime::currentDateTime(); + ticksScale = width < 750 ? 1 : 2; + axis->setTickCount(8*ticksScale+1); + axis->setFormat("hh:mm"); + axis->setTitleText(QString("Time (%1)").arg(startX.date().toString())); + break; + case 2: // Last 24h + startX.setDate(startX.date().addDays(-1)); + finishX = QDateTime::currentDateTime(); + axis->setTickCount(6*ticksScale+1); + axis->setFormat("hh:mm"); + axis->setTitleText(QString("Time (%1)").arg(startX.date().toString())); + break; + case 3: // Last 7 days + startX.setTime(QTime(0,0,0)); + startX.setDate(finishX.date().addDays(-7)); + axis->setTickCount(4*ticksScale); + axis->setFormat("MMM d"); + axis->setTitleText("Date"); + break; + case 4: // Last 30 days + startX.setTime(QTime(0,0,0)); + startX.setDate(finishX.date().addDays(-30)); + axis->setTickCount(5*ticksScale+1); + axis->setFormat("MMM d"); + axis->setTitleText("Date"); + break; + case 5: // All + startX = QDateTime::fromMSecsSinceEpoch(series->at(0).x()); + finishX = QDateTime::fromMSecsSinceEpoch(series->at(series->count()-1).x()); + // FIXME: Problem when startX == finishX - axis not drawn + if (startX.msecsTo(finishX) > 1000*60*60*24) + { + axis->setFormat("MMM d"); + axis->setTitleText("Date"); + } + else if (startX.msecsTo(finishX) > 1000*60*60) + { + axis->setFormat("hh:mm"); + axis->setTitleText(QString("Time (hours on %1)").arg(startX.date().toString())); + } + else + { + axis->setFormat("mm:ss"); + axis->setTitleText(QString("Time (minutes on %1)").arg(startX.date().toString())); + } + axis->setTickCount(5*ticksScale); + break; + } + axis->setRange(startX, finishX); +} + +void APRSGUI::calcYAxis(double minValue, double maxValue, QValueAxis *axis, bool binary, int precision) +{ + double range = std::abs(maxValue - minValue); + double ticks = binary ? 2 : 5; + + axis->setTickCount(ticks); + + if (binary) + { + minValue = 0.0; + maxValue = 1.0; + } + else if (range == 0.0) + { + // Nothing is plotted if min and max are the same, so adjust range to non-zero + if (precision == 1) + { + if ((minValue >= (ticks-1)/2) || (minValue < 0.0)) + { + maxValue += (ticks-1)/2; + minValue -= (ticks-1)/2; + } + else + maxValue = maxValue + (ticks - 1 - minValue); + } + else if (maxValue == 0.0) + maxValue = ticks-1; + else + { + minValue -= minValue * (1.0/std::pow(10.0,precision)); + maxValue += maxValue * (1.0/std::pow(10.0,precision)); + } + range = std::abs(maxValue - minValue); + } + axis->setRange(minValue, maxValue); + if (((range < (ticks-1)) || (precision > 1)) && !binary) + axis->setLabelFormat(QString("%.%1f").arg(precision)); + else + axis->setLabelFormat("%d"); +} + +QDateTime APRSGUI::calcTimeLimit(int timeSelectIdx) +{ + QDateTime limit = QDateTime::currentDateTime(); + switch (timeSelectIdx) + { + case 0: // Today + limit.setTime(QTime(0,0,0)); + break; + case 1: // Last hour + limit.setTime(limit.time().addSecs(-60*60)); + break; + case 2: // Last 24h + limit.setDate(limit.date().addDays(-1)); + break; + case 3: // Last 7 days + limit.setTime(QTime(0,0,0)); + limit.setDate(limit.date().addDays(-7)); + break; + case 4: // Last 30 days + limit.setTime(QTime(0,0,0)); + limit.setDate(limit.date().addDays(-30)); + break; + case 5: // All + limit = QDateTime(QDate(1970, 1, 1), QTime()); + break; + } + return limit; +} + +void APRSGUI::plotMotion() +{ + QString stationCallsign = ui->stationSelect->currentText(); + if (stationCallsign.isEmpty()) + return; + APRSStation *station = m_stations.value(stationCallsign); + if (station == nullptr) + return; + + QLineSeries *series = new QLineSeries(); + double minValue = INFINITY; + double maxValue = -INFINITY; + + int timeSelectIdx = ui->motionTimeSelect->currentIndex(); + int plotSelectIdx = ui->motionPlotSelect->currentIndex(); + QDateTime limit = calcTimeLimit(timeSelectIdx); + + QListIterator i(station->m_packets); + while (i.hasNext()) + { + APRSPacket *aprs = i.next(); + + if (aprs->m_hasPosition || aprs->m_hasAltitude || aprs->m_hasCourseAndSpeed) + { + QDateTime dt; + if (aprs->m_hasTimestamp) + dt = aprs->m_timestamp; + else + dt = aprs->m_dateTime; + + if (dt >= limit) + { + if (plotSelectIdx == 0 && aprs->m_hasPosition) + addToSeries(series, dt, aprs->m_latitude, minValue, maxValue); + else if (plotSelectIdx == 1 && aprs->m_hasPosition) + addToSeries(series, dt, aprs->m_longitude, minValue, maxValue); + else if (plotSelectIdx == 2 && aprs->m_hasAltitude) + addToSeries(series, dt, aprs->m_altitudeFt, minValue, maxValue); + else if (plotSelectIdx == 3 && aprs->m_hasCourseAndSpeed) + addToSeries(series, dt, aprs->m_course, minValue, maxValue); + else if (plotSelectIdx == 4 && aprs->m_hasCourseAndSpeed) + addToSeries(series, dt, aprs->m_speed, minValue, maxValue); + } + } + } + + m_motionChart.removeAllSeries(); + m_motionChart.removeAxis(&m_motionChartXAxis); + m_motionChart.removeAxis(&m_motionChartYAxis); + + m_motionChart.addSeries(series); + calcTimeAxis(timeSelectIdx, &m_motionChartXAxis, series, ui->motionChart->width()); + m_motionChart.addAxis(&m_motionChartXAxis, Qt::AlignBottom); + series->attachAxis(&m_motionChartXAxis); + + m_motionChartYAxis.setTitleText(ui->motionPlotSelect->currentText()); + calcYAxis(minValue, maxValue, &m_motionChartYAxis, false, plotSelectIdx <= 1 ? 5 : 1); + m_motionChart.addAxis(&m_motionChartYAxis, Qt::AlignLeft); + series->attachAxis(&m_motionChartYAxis); +} + +void APRSGUI::on_motionTimeSelect_currentIndexChanged(int index) +{ + plotMotion(); +} + +void APRSGUI::on_motionPlotSelect_currentIndexChanged(int index) +{ + plotMotion(); +} + +void APRSGUI::plotTelemetry() +{ + QString stationCallsign = ui->stationSelect->currentText(); + if (stationCallsign.isEmpty()) + return; + APRSStation *station = m_stations.value(stationCallsign); + if (station == nullptr) + return; + + QLineSeries *series = new QLineSeries(); + double minValue = INFINITY; + double maxValue = -INFINITY; + + int timeSelectIdx = ui->telemetryTimeSelect->currentIndex(); + int plotSelectIdx = ui->telemetryPlotSelect->currentIndex(); + QDateTime limit = calcTimeLimit(timeSelectIdx); + + QListIterator i(station->m_packets); + while (i.hasNext()) + { + APRSPacket *aprs = i.next(); + if (aprs->m_hasTelemetry) + { + if (aprs->m_dateTime >= limit) + { + if (plotSelectIdx == 0 && aprs->m_a1HasValue) + addToSeries(series, aprs->m_dateTime, applyCoefficients(0, aprs->m_a1, station), minValue, maxValue); + else if (plotSelectIdx == 1 && aprs->m_a2HasValue) + addToSeries(series, aprs->m_dateTime, applyCoefficients(1, aprs->m_a2, station), minValue, maxValue); + else if (plotSelectIdx == 2 && aprs->m_a3HasValue) + addToSeries(series, aprs->m_dateTime, applyCoefficients(2, aprs->m_a3, station), minValue, maxValue); + else if (plotSelectIdx == 3 && aprs->m_a4HasValue) + addToSeries(series, aprs->m_dateTime, applyCoefficients(3, aprs->m_a4, station), minValue, maxValue); + else if (plotSelectIdx == 4 && aprs->m_a5HasValue) + addToSeries(series, aprs->m_dateTime, applyCoefficients(4, aprs->m_a5, station), minValue, maxValue); + else if (plotSelectIdx == 5 && aprs->m_bHasValue) + addToSeries(series, aprs->m_dateTime, aprs->m_b[0], minValue, maxValue); + else if (plotSelectIdx == 6 && aprs->m_bHasValue) + addToSeries(series, aprs->m_dateTime, aprs->m_b[1], minValue, maxValue); + else if (plotSelectIdx == 7 && aprs->m_bHasValue) + addToSeries(series, aprs->m_dateTime, aprs->m_b[2], minValue, maxValue); + else if (plotSelectIdx == 8 && aprs->m_bHasValue) + addToSeries(series, aprs->m_dateTime, aprs->m_b[3], minValue, maxValue); + else if (plotSelectIdx == 9 && aprs->m_bHasValue) + addToSeries(series, aprs->m_dateTime, aprs->m_b[4], minValue, maxValue); + else if (plotSelectIdx == 10 && aprs->m_bHasValue) + addToSeries(series, aprs->m_dateTime, aprs->m_b[5], minValue, maxValue); + else if (plotSelectIdx == 11 && aprs->m_bHasValue) + addToSeries(series, aprs->m_dateTime, aprs->m_b[6], minValue, maxValue); + else if (plotSelectIdx == 12 && aprs->m_bHasValue) + addToSeries(series, aprs->m_dateTime, aprs->m_b[7], minValue, maxValue); + } + } + } + + m_telemetryChart.removeAllSeries(); + m_telemetryChart.removeAxis(&m_telemetryChartXAxis); + m_telemetryChart.removeAxis(&m_telemetryChartYAxis); + + m_telemetryChart.addSeries(series); + calcTimeAxis(timeSelectIdx, &m_telemetryChartXAxis, series, ui->telemetryChart->width()); + m_telemetryChart.addAxis(&m_telemetryChartXAxis, Qt::AlignBottom); + + series->attachAxis(&m_telemetryChartXAxis); + m_telemetryChartYAxis.setTitleText(ui->telemetryPlotSelect->currentText()); + calcYAxis(minValue, maxValue, &m_telemetryChartYAxis, plotSelectIdx >= 5); + m_telemetryChart.addAxis(&m_telemetryChartYAxis, Qt::AlignLeft); + series->attachAxis(&m_telemetryChartYAxis); +} + +void APRSGUI::on_telemetryTimeSelect_currentIndexChanged(int index) +{ + plotTelemetry(); +} + +void APRSGUI::on_telemetryPlotSelect_currentIndexChanged(int index) +{ + plotTelemetry(); +} + +void APRSGUI::updateStatus() +{ + int state = m_aprs->getState(); + + if (m_lastFeatureState != state) + { + switch (state) + { + case Feature::StNotStarted: + ui->igate->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); + break; + case Feature::StIdle: + ui->igate->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); + break; + case Feature::StRunning: + ui->igate->setStyleSheet("QToolButton { background-color : green; }"); + break; + case Feature::StError: + ui->igate->setStyleSheet("QToolButton { background-color : red; }"); + QMessageBox::information(this, tr("Message"), m_aprs->getErrorMessage()); + break; + default: + break; + } + + m_lastFeatureState = state; + } +} + +void APRSGUI::applySettings(bool force) +{ + if (m_doApplySettings) + { + APRS::MsgConfigureAPRS* message = APRS::MsgConfigureAPRS::create(m_settings, force); + m_aprs->getInputMessageQueue()->push(message); + } +} + +void APRSGUI::resizeTable() +{ + int row; + + // Fill tables with a row of dummy data that will size the columns nicely + row = ui->packetsTable->rowCount(); + ui->packetsTable->setRowCount(row + 1); + ui->packetsTable->setItem(row, PACKETS_COL_DATE, new QTableWidgetItem("31/12/2020")); + ui->packetsTable->setItem(row, PACKETS_COL_TIME, new QTableWidgetItem("23:59:39 T")); + ui->packetsTable->setItem(row, PACKETS_COL_FROM, new QTableWidgetItem("123456-15-")); + ui->packetsTable->setItem(row, PACKETS_COL_TO, new QTableWidgetItem("123456-15-")); + ui->packetsTable->setItem(row, PACKETS_COL_VIA, new QTableWidgetItem("123456-15-")); + ui->packetsTable->setItem(row, PACKETS_COL_DATA, new QTableWidgetItem("ABCEDGHIJKLMNOPQRSTUVWXYZABCEDGHIJKLMNOPQRSTUVWXYZABCEDGHIJKLMNOPQRSTUVWXYZ")); + ui->packetsTable->resizeColumnsToContents(); + ui->packetsTable->removeRow(row); + + row = ui->weatherTable->rowCount(); + ui->weatherTable->setRowCount(row + 1); + ui->weatherTable->setItem(row, WEATHER_COL_DATE, new QTableWidgetItem("31/12/2020")); + ui->weatherTable->setItem(row, WEATHER_COL_TIME, new QTableWidgetItem("23:59:39 T")); + ui->weatherTable->setItem(row, WEATHER_COL_WIND_DIRECTION, new QTableWidgetItem("Dir (o)-")); + ui->weatherTable->setItem(row, WEATHER_COL_WIND_SPEED, new QTableWidgetItem("Speed (mph)-")); + ui->weatherTable->setItem(row, WEATHER_COL_GUSTS, new QTableWidgetItem("Gusts (mph)-")); + ui->weatherTable->setItem(row, WEATHER_COL_TEMPERATURE, new QTableWidgetItem("Temp (F)-")); + ui->weatherTable->setItem(row, WEATHER_COL_HUMIDITY, new QTableWidgetItem("Humidity (%)-")); + ui->weatherTable->setItem(row, WEATHER_COL_PRESSURE, new QTableWidgetItem("Pressure (mbar)-")); + ui->weatherTable->setItem(row, WEATHER_COL_RAIN_LAST_HOUR, new QTableWidgetItem("Rain 1h-")); + ui->weatherTable->setItem(row, WEATHER_COL_RAIN_LAST_24_HOURS, new QTableWidgetItem("Rain 24h-")); + ui->weatherTable->setItem(row, WEATHER_COL_RAIN_SINCE_MIDNIGHT, new QTableWidgetItem("Rain-")); + ui->weatherTable->setItem(row, WEATHER_COL_LUMINOSITY, new QTableWidgetItem("Luminosity-")); + ui->weatherTable->setItem(row, WEATHER_COL_SNOWFALL, new QTableWidgetItem("Snowfall-")); + ui->weatherTable->setItem(row, WEATHER_COL_RADIATION_LEVEL, new QTableWidgetItem("Radiation-")); + ui->weatherTable->setItem(row, WEATHER_COL_FLOOD_LEVEL, new QTableWidgetItem("Flood level-")); + ui->weatherTable->resizeColumnsToContents(); + ui->weatherTable->removeRow(row); + + row = ui->statusTable->rowCount(); + ui->statusTable->setRowCount(row + 1); + ui->statusTable->setIconSize(QSize(24, 24)); + ui->statusTable->setItem(row, STATUS_COL_DATE, new QTableWidgetItem("31/12/2020")); + ui->statusTable->setItem(row, STATUS_COL_TIME, new QTableWidgetItem("23:59:39 T")); + ui->statusTable->setItem(row, STATUS_COL_STATUS, new QTableWidgetItem("ABCDEFGHIJKLMNOPQRSTUVWXYZ")); + ui->statusTable->setItem(row, STATUS_COL_SYMBOL, new QTableWidgetItem("WWW")); + ui->statusTable->setItem(row, STATUS_COL_MAIDENHEAD, new QTableWidgetItem("WW00WW")); + ui->statusTable->setItem(row, STATUS_COL_BEAM_HEADING, new QTableWidgetItem("359")); + ui->statusTable->setItem(row, STATUS_COL_BEAM_POWER, new QTableWidgetItem("8000")); + ui->statusTable->resizeColumnsToContents(); + ui->statusTable->removeRow(row); + + row = ui->messagesTable->rowCount(); + ui->messagesTable->setRowCount(row + 1); + ui->messagesTable->setIconSize(QSize(24, 24)); + ui->messagesTable->setItem(row, MESSAGE_COL_DATE, new QTableWidgetItem("31/12/2020")); + ui->messagesTable->setItem(row, MESSAGE_COL_TIME, new QTableWidgetItem("23:59:39 T")); + ui->messagesTable->setItem(row, MESSAGE_COL_ADDRESSEE, new QTableWidgetItem("WWWWWWWWW")); + ui->messagesTable->setItem(row, MESSAGE_COL_MESSAGE, new QTableWidgetItem("ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ")); + ui->messagesTable->setItem(row, MESSAGE_COL_NO, new QTableWidgetItem("Message No")); + ui->messagesTable->resizeColumnsToContents(); + ui->messagesTable->removeRow(row); + + row = ui->motionTable->rowCount(); + ui->motionTable->setRowCount(row + 1); + ui->motionTable->setItem(row, MOTION_COL_DATE, new QTableWidgetItem("31/12/2020")); + ui->motionTable->setItem(row, MOTION_COL_TIME, new QTableWidgetItem("23:59:39 T")); + ui->motionTable->setItem(row, MOTION_COL_LATITUDE, new QTableWidgetItem("Latitude")); + ui->motionTable->setItem(row, MOTION_COL_LONGITUDE, new QTableWidgetItem("Longitude")); + ui->motionTable->setItem(row, MOTION_COL_ALTITUDE, new QTableWidgetItem("Message No")); + ui->motionTable->setItem(row, MOTION_COL_ALTITUDE, new QTableWidgetItem("Course")); + ui->motionTable->setItem(row, MOTION_COL_ALTITUDE, new QTableWidgetItem("Speed")); + ui->motionTable->resizeColumnsToContents(); + ui->motionTable->removeRow(row); + + row = ui->telemetryTable->rowCount(); + ui->telemetryTable->setRowCount(row + 1); + ui->telemetryTable->setItem(row, TELEMETRY_COL_DATE, new QTableWidgetItem("31/12/2020")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_TIME, new QTableWidgetItem("23:59:39 T")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_SEQ_NO, new QTableWidgetItem("Seq No")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_A1, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_A2, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_A3, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_A4, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_A5, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B1, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B2, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B3, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B4, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B5, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B6, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B7, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->setItem(row, TELEMETRY_COL_B8, new QTableWidgetItem("ABCEDF")); + ui->telemetryTable->resizeColumnsToContents(); + ui->telemetryTable->removeRow(row); +} + +// Columns in table reordered +void APRSGUI::packetsTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex) +{ + (void) oldVisualIndex; + + m_settings.m_packetsTableColumnIndexes[logicalIndex] = newVisualIndex; +} + +// Column in table resized (when hidden size is 0) +void APRSGUI::packetsTable_sectionResized(int logicalIndex, int oldSize, int newSize) +{ + (void) oldSize; + + m_settings.m_packetsTableColumnSizes[logicalIndex] = newSize; +} + +// Right click in table header - show column select menu +void APRSGUI::packetsTable_columnSelectMenu(QPoint pos) +{ + packetsTableMenu->popup(ui->packetsTable->horizontalHeader()->viewport()->mapToGlobal(pos)); +} + +// Hide/show column when menu selected +void APRSGUI::packetsTable_columnSelectMenuChecked(bool checked) +{ + (void) checked; + + QAction* action = qobject_cast(sender()); + if (action != nullptr) + { + int idx = action->data().toInt(nullptr); + ui->packetsTable->setColumnHidden(idx, !action->isChecked()); + } +} + +// Columns in table reordered +void APRSGUI::weatherTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex) +{ + (void) oldVisualIndex; + + m_settings.m_weatherTableColumnIndexes[logicalIndex] = newVisualIndex; +} + +// Column in table resized (when hidden size is 0) +void APRSGUI::weatherTable_sectionResized(int logicalIndex, int oldSize, int newSize) +{ + (void) oldSize; + + m_settings.m_weatherTableColumnSizes[logicalIndex] = newSize; +} + +// Right click in table header - show column select menu +void APRSGUI::weatherTable_columnSelectMenu(QPoint pos) +{ + weatherTableMenu->popup(ui->weatherTable->horizontalHeader()->viewport()->mapToGlobal(pos)); +} + +// Hide/show column when menu selected +void APRSGUI::weatherTable_columnSelectMenuChecked(bool checked) +{ + (void) checked; + + QAction* action = qobject_cast(sender()); + if (action != nullptr) + { + int idx = action->data().toInt(nullptr); + ui->weatherTable->setColumnHidden(idx, !action->isChecked()); + } +} + +// Columns in table reordered +void APRSGUI::statusTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex) +{ + (void) oldVisualIndex; + + m_settings.m_statusTableColumnIndexes[logicalIndex] = newVisualIndex; +} + +// Column in table resized (when hidden size is 0) +void APRSGUI::statusTable_sectionResized(int logicalIndex, int oldSize, int newSize) +{ + (void) oldSize; + + m_settings.m_statusTableColumnSizes[logicalIndex] = newSize; +} + +// Right click in table header - show column select menu +void APRSGUI::statusTable_columnSelectMenu(QPoint pos) +{ + statusTableMenu->popup(ui->statusTable->horizontalHeader()->viewport()->mapToGlobal(pos)); +} + +// Hide/show column when menu selected +void APRSGUI::statusTable_columnSelectMenuChecked(bool checked) +{ + (void) checked; + + QAction* action = qobject_cast(sender()); + if (action != nullptr) + { + int idx = action->data().toInt(nullptr); + ui->statusTable->setColumnHidden(idx, !action->isChecked()); + } +} + +// Columns in table reordered +void APRSGUI::messagesTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex) +{ + (void) oldVisualIndex; + + m_settings.m_messagesTableColumnIndexes[logicalIndex] = newVisualIndex; +} + +// Column in table resized (when hidden size is 0) +void APRSGUI::messagesTable_sectionResized(int logicalIndex, int oldSize, int newSize) +{ + (void) oldSize; + + m_settings.m_messagesTableColumnSizes[logicalIndex] = newSize; +} + +// Right click in table header - show column select menu +void APRSGUI::messagesTable_columnSelectMenu(QPoint pos) +{ + messagesTableMenu->popup(ui->messagesTable->horizontalHeader()->viewport()->mapToGlobal(pos)); +} + +// Hide/show column when menu selected +void APRSGUI::messagesTable_columnSelectMenuChecked(bool checked) +{ + (void) checked; + + QAction* action = qobject_cast(sender()); + if (action != nullptr) + { + int idx = action->data().toInt(nullptr); + ui->messagesTable->setColumnHidden(idx, !action->isChecked()); + } +} + +// Columns in table reordered +void APRSGUI::telemetryTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex) +{ + (void) oldVisualIndex; + + m_settings.m_telemetryTableColumnIndexes[logicalIndex] = newVisualIndex; +} + +// Column in table resized (when hidden size is 0) +void APRSGUI::telemetryTable_sectionResized(int logicalIndex, int oldSize, int newSize) +{ + (void) oldSize; + + m_settings.m_telemetryTableColumnSizes[logicalIndex] = newSize; +} + +// Right click in table header - show column select menu +void APRSGUI::telemetryTable_columnSelectMenu(QPoint pos) +{ + telemetryTableMenu->popup(ui->telemetryTable->horizontalHeader()->viewport()->mapToGlobal(pos)); +} + +// Hide/show column when menu selected +void APRSGUI::telemetryTable_columnSelectMenuChecked(bool checked) +{ + (void) checked; + + QAction* action = qobject_cast(sender()); + if (action != nullptr) + { + int idx = action->data().toInt(nullptr); + ui->telemetryTable->setColumnHidden(idx, !action->isChecked()); + } +} + +// Columns in table reordered +void APRSGUI::motionTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex) +{ + (void) oldVisualIndex; + + m_settings.m_motionTableColumnIndexes[logicalIndex] = newVisualIndex; +} + +// Column in table resized (when hidden size is 0) +void APRSGUI::motionTable_sectionResized(int logicalIndex, int oldSize, int newSize) +{ + (void) oldSize; + + m_settings.m_motionTableColumnSizes[logicalIndex] = newSize; +} + +// Right click in table header - show column select menu +void APRSGUI::motionTable_columnSelectMenu(QPoint pos) +{ + motionTableMenu->popup(ui->motionTable->horizontalHeader()->viewport()->mapToGlobal(pos)); +} + +// Hide/show column when menu selected +void APRSGUI::motionTable_columnSelectMenuChecked(bool checked) +{ + (void) checked; + + QAction* action = qobject_cast(sender()); + if (action != nullptr) + { + int idx = action->data().toInt(nullptr); + ui->motionTable->setColumnHidden(idx, !action->isChecked()); + } +} + +// Create column select menu items + +QAction *APRSGUI::packetsTable_createCheckableItem(QString &text, int idx, bool checked) +{ + QAction *action = new QAction(text, this); + action->setCheckable(true); + action->setChecked(checked); + action->setData(QVariant(idx)); + connect(action, SIGNAL(triggered()), this, SLOT(packetsTable_columnSelectMenuChecked())); + return action; +} + +QAction *APRSGUI::weatherTable_createCheckableItem(QString &text, int idx, bool checked) +{ + QAction *action = new QAction(text, this); + action->setCheckable(true); + action->setChecked(checked); + action->setData(QVariant(idx)); + connect(action, SIGNAL(triggered()), this, SLOT(weatherTable_columnSelectMenuChecked())); + return action; +} + +QAction *APRSGUI::statusTable_createCheckableItem(QString &text, int idx, bool checked) +{ + QAction *action = new QAction(text, this); + action->setCheckable(true); + action->setChecked(checked); + action->setData(QVariant(idx)); + connect(action, SIGNAL(triggered()), this, SLOT(statusTable_columnSelectMenuChecked())); + return action; +} + +QAction *APRSGUI::messagesTable_createCheckableItem(QString &text, int idx, bool checked) +{ + QAction *action = new QAction(text, this); + action->setCheckable(true); + action->setChecked(checked); + action->setData(QVariant(idx)); + connect(action, SIGNAL(triggered()), this, SLOT(messagesTable_columnSelectMenuChecked())); + return action; +} + +QAction *APRSGUI::telemetryTable_createCheckableItem(QString &text, int idx, bool checked) +{ + QAction *action = new QAction(text, this); + action->setCheckable(true); + action->setChecked(checked); + action->setData(QVariant(idx)); + connect(action, SIGNAL(triggered()), this, SLOT(telemetryTable_columnSelectMenuChecked())); + return action; +} + +QAction *APRSGUI::motionTable_createCheckableItem(QString &text, int idx, bool checked) +{ + QAction *action = new QAction(text, this); + action->setCheckable(true); + action->setChecked(checked); + action->setData(QVariant(idx)); + connect(action, SIGNAL(triggered()), this, SLOT(motionTable_columnSelectMenuChecked())); + return action; +} + +// Show settings dialog +void APRSGUI::on_displaySettings_clicked() +{ + APRSSettingsDialog dialog(m_settings.m_igateServer, m_settings.m_igateCallsign, + m_settings.m_igatePasscode, m_settings.m_igateFilter); + if (dialog.exec() == QDialog::Accepted) + { + m_settings.m_igateServer = dialog.m_igateServer; + m_settings.m_igateCallsign = dialog.m_igateCallsign; + m_settings.m_igatePasscode = dialog.m_igatePasscode; + m_settings.m_igateFilter = dialog.m_igateFilter; + applySettings(); + } +} + +void APRSGUI::on_igate_toggled(bool checked) +{ + m_settings.m_igateEnabled = checked; + applySettings(); +} + +// Find the selected station on the Map +void APRSGUI::on_viewOnMap_clicked() +{ + QString stationName = ui->stationSelect->currentText(); + if (!stationName.isEmpty()) + { + APRSStation *station = m_stations.value(stationName); + if (station != nullptr) + { + FeatureWebAPIUtils::mapFind(station->m_station); + } + } +} diff --git a/plugins/feature/aprs/aprsgui.h b/plugins/feature/aprs/aprsgui.h new file mode 100644 index 000000000..9523cf4ef --- /dev/null +++ b/plugins/feature/aprs/aprsgui.h @@ -0,0 +1,227 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_APRSGUI_H_ +#define INCLUDE_FEATURE_APRSGUI_H_ + +#include +#include +#include +#include +#include +#include + +#include "feature/featuregui.h" +#include "util/messagequeue.h" +#include "pipes/pipeendpoint.h" +#include "util/aprs.h" +#include "aprssettings.h" + +class PluginAPI; +class FeatureUISet; +class APRS; + +namespace Ui { + class APRSGUI; +} + +using namespace QtCharts; + +class APRSGUI; + +class APRSStation { +public: + + APRSStation(QString& station) : + m_station(station), + m_isObject(false), + m_hasWeather(false), + m_hasTelemetry(false), + m_hasCourseAndSpeed(false) + { + } + + void addPacket(APRSPacket *packet) + { + m_packets.append(packet); + } + +private: + friend APRSGUI; + QString m_station; // Station callsign + QList m_packets; // Packets received for the station + QString m_symbolImage; + QString m_latestStatus; + QString m_latestComment; + QString m_latestPosition; + QString m_latestAltitude; + QString m_latestCourse; + QString m_latestSpeed; + QString m_latestPacket; + QString m_powerWatts; + QString m_antennaHeightFt; + QString m_antennaGainDB; + QString m_antennaDirectivity; + QString m_radioRange; + bool m_isObject; // Is an object or item rather than a station + QString m_reportingStation; + QList m_telemetryNames; + QList m_telemetryLabels; + double m_telemetryCoefficientsA[5]; + double m_telemetryCoefficientsB[5]; + double m_telemetryCoefficientsC[5]; + int m_hasTelemetryCoefficients; + int m_telemetryBitSense[8]; + bool m_hasTelemetryBitSense; + QString m_telemetryProjectName; + bool m_hasWeather; + bool m_hasTelemetry; + bool m_hasCourseAndSpeed; +}; + +class APRSGUI : public FeatureGUI { + Q_OBJECT +public: + static APRSGUI* create(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature); + virtual void destroy(); + + void resetToDefaults(); + QByteArray serialize() const; + bool deserialize(const QByteArray& data); + virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } + +protected: + void resizeEvent(QResizeEvent* size); + +private: + Ui::APRSGUI* ui; + PluginAPI* m_pluginAPI; + FeatureUISet* m_featureUISet; + APRSSettings m_settings; + bool m_doApplySettings; + QList m_availablePipes; + + APRS* m_aprs; + MessageQueue m_inputMessageQueue; + QTimer m_statusTimer; + int m_lastFeatureState; + + QHash m_stations; // All stations we've recieved packets for. Hashed on callsign + + QMenu *packetsTableMenu; // Column select context menus + QMenu *weatherTableMenu; + QMenu *statusTableMenu; + QMenu *messagesTableMenu; + QMenu *telemetryTableMenu; + QMenu *motionTableMenu; + + QChart m_weatherChart; + QDateTimeAxis m_weatherChartXAxis; + QValueAxis m_weatherChartYAxis; + + QChart m_telemetryChart; + QDateTimeAxis m_telemetryChartXAxis; + QValueAxis m_telemetryChartYAxis; + + QChart m_motionChart; + QDateTimeAxis m_motionChartXAxis; + QValueAxis m_motionChartYAxis; + + explicit APRSGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature, QWidget* parent = nullptr); + virtual ~APRSGUI(); + + void blockApplySettings(bool block); + void applySettings(bool force = false); + void displayTableSettings(QTableWidget *table, QMenu *menu, int *columnIndexes, int *columnSizes, int columns); + bool filterStation(APRSStation *station); + void filterStations(); + void displaySettings(); + void updatePipeList(); + bool handleMessage(const Message& message); + + void leaveEvent(QEvent*); + void enterEvent(QEvent*); + + void filterMessageRow(int row); + void filterMessages(); + void resizeTable(); + QAction *packetsTable_createCheckableItem(QString& text, int idx, bool checked); + QAction *weatherTable_createCheckableItem(QString& text, int idx, bool checked); + QAction *statusTable_createCheckableItem(QString& text, int idx, bool checked); + QAction *messagesTable_createCheckableItem(QString& text, int idx, bool checked); + QAction *telemetryTable_createCheckableItem(QString& text, int idx, bool checked); + QAction *motionTable_createCheckableItem(QString& text, int idx, bool checked); + + void updateSummary(APRSStation *station); + void addPacketToGUI(APRSStation *station, APRSPacket *aprs); + +private slots: + void onMenuDialogCalled(const QPoint &p); + void onWidgetRolled(QWidget* widget, bool rollDown); + void handleInputMessages(); + void on_stationFilter_currentIndexChanged(int index); + void on_stationSelect_currentIndexChanged(int index); + void on_filterAddressee_editingFinished(); + void on_deleteMessages_clicked(); + QDateTime calcTimeLimit(int timeSelectIdx); + void calcTimeAxis(int timeSelectIdx, QDateTimeAxis *axis, QLineSeries *series, int width); + void calcYAxis(double minValue, double maxValue, QValueAxis *axis, bool binary=false, int precision=1); + QString formatDate(APRSPacket *aprs); + QString formatTime(APRSPacket *aprs); + double applyCoefficients(int idx, int value, APRSStation *station); + void plotWeather(); + void on_weatherTimeSelect_currentIndexChanged(int index); + void on_weatherPlotSelect_currentIndexChanged(int index); + void plotTelemetry(); + void on_telemetryTimeSelect_currentIndexChanged(int index); + void on_telemetryPlotSelect_currentIndexChanged(int index); + void plotMotion(); + void on_motionTimeSelect_currentIndexChanged(int index); + void on_motionPlotSelect_currentIndexChanged(int index); + void updateStatus(); + void packetsTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex); + void packetsTable_sectionResized(int logicalIndex, int oldSize, int newSize); + void packetsTable_columnSelectMenu(QPoint pos); + void packetsTable_columnSelectMenuChecked(bool checked = false); + void weatherTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex); + void weatherTable_sectionResized(int logicalIndex, int oldSize, int newSize); + void weatherTable_columnSelectMenu(QPoint pos); + void weatherTable_columnSelectMenuChecked(bool checked = false); + void statusTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex); + void statusTable_sectionResized(int logicalIndex, int oldSize, int newSize); + void statusTable_columnSelectMenu(QPoint pos); + void statusTable_columnSelectMenuChecked(bool checked = false); + void messagesTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex); + void messagesTable_sectionResized(int logicalIndex, int oldSize, int newSize); + void messagesTable_columnSelectMenu(QPoint pos); + void messagesTable_columnSelectMenuChecked(bool checked = false); + void telemetryTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex); + void telemetryTable_sectionResized(int logicalIndex, int oldSize, int newSize); + void telemetryTable_columnSelectMenu(QPoint pos); + void telemetryTable_columnSelectMenuChecked(bool checked = false); + void motionTable_sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex); + void motionTable_sectionResized(int logicalIndex, int oldSize, int newSize); + void motionTable_columnSelectMenu(QPoint pos); + void motionTable_columnSelectMenuChecked(bool checked = false); + void on_displaySettings_clicked(); + void on_igate_toggled(bool checked); + void on_viewOnMap_clicked(); +}; + + +#endif // INCLUDE_FEATURE_APRSGUI_H_ diff --git a/plugins/feature/aprs/aprsgui.ui b/plugins/feature/aprs/aprsgui.ui new file mode 100644 index 000000000..9efa848c0 --- /dev/null +++ b/plugins/feature/aprs/aprsgui.ui @@ -0,0 +1,1514 @@ + + + APRSGUI + + + + 0 + 0 + 469 + 761 + + + + + 0 + 0 + + + + + 462 + 0 + + + + + Liberation Sans + 9 + + + + Qt::StrongFocus + + + APRS + + + APRS + + + + + 0 + 0 + 461 + 31 + + + + + 350 + 0 + + + + Settings + + + + 3 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + Sources + + + + + + + + 150 + 0 + + + + APRS packet source channels + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Enable APRS-IS IGate (Internet gateway) + + + ... + + + + :/txon.png:/txon.png + + + true + + + + + + + Show settings dialog + + + + + + + :/listing.png:/listing.png + + + + + + + + + + + 0 + 40 + 461 + 532 + + + + + 0 + 0 + + + + APRS + + + + 2 + + + 3 + + + 3 + + + 3 + + + 3 + + + + + QTabWidget::West + + + 1 + + + + Stations and Objects + + + + + + + + + 140 + 0 + + + + Selects which stations and objects to list in the adjacent list + + + + All stations/objects + + + + + Stations + + + + + Objects + + + + + Weather stations + + + + + Telemetry + + + + + Course and speed + + + + + + + + + 100 + 0 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Find on the map + + + + + + + :/gridpolar.png:/gridpolar.png + + + + + + + + + 0 + + + + Summary + + + + + + Position + + + + + + + Radio Range + + + + + + + Last course + + + + + + + Antenna Height + + + + + + + Status + + + + + + + Antenna direction + + + + + + + Last comment for this station + + + true + + + + + + + Feet + + + + + + + Antenna Gain + + + + + + + Last position + + + true + + + + + + + Speed + + + + + + + Last status for this station + + + true + + + + + + + Altitude + + + + + + + + + + + + + + Range of radio + + + + + + + dB + + + + + + + Antenna gain + + + + + + + Time last packet was received from this station + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Last speed + + + + + + + Symbol + + + + + + + Antenna Directivity + + + + + + + ° + + + + + + + Comment + + + + + + + + + + Course + + + + + + + Watts + + + + + + + Antenna height + + + + + + + TX Power + + + + + + + Feet + + + + + + + Transmit power + + + + + + + Station callsign and substation ID + + + true + + + + + + + Last altitude + + + + + + + Station/Object + + + + + + + Knots + + + + + + + Miles + + + + + + + Last Packet: + + + + + + + Reporting Station + + + + + + + + Weather + + + + + + + 0 + 150 + + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::SelectRows + + + + Date + + + + + Time + + + + + Dir (°) + + + + + Speed (mph) + + + + + Gusts (mph) + + + + + Temp (F) + + + + + Humidity (%) + + + + + Pressure (mbar) + + + + + Rain (last hour) + + + + + Rain (last 24 hours) + + + + + Rain (since midnight) + + + + + Luminosity + + + + + Snowfall + + + + + Radiation + + + + + Flood level + + + + + + + + + + + 0 + 0 + + + + Plot + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select data to plot + + + + Wind direction + + + + + Wind speed + + + + + Gusts + + + + + Temperature + + + + + Humidity + + + + + Pressure + + + + + Rain (last hour) + + + + + Rain (last 24 hours) + + + + + Rain (since midnight) + + + + + Luminosity + + + + + Snowfall + + + + + Radiation + + + + + Flood level + + + + + + + + Qt::Vertical + + + + + + + Time + + + + + + + + 100 + 0 + + + + Time range to plot data for + + + + Today + + + + + Last hour + + + + + Last 24 hours + + + + + Last 7 days + + + + + Last 30 days + + + + + All + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + Motion + + + + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::SelectRows + + + + Date + + + + + Time + + + + + Latitude + + + + + Longitude + + + + + Altitude + + + + + Course + + + + + Speed + + + + + + + + + + Plot + + + + + + + + 150 + 0 + + + + Select data to plot + + + + Latitude + + + + + Longitude + + + + + Altitude + + + + + Course + + + + + Speed + + + + + + + + Time + + + + + + + + 100 + 0 + + + + Time range to plot data for + + + + Today + + + + + Last hour + + + + + Last 24 hours + + + + + Last 7 days + + + + + Last 30 days + + + + + All + + + + + + + + Qt::Horizontal + + + + 373 + 20 + + + + + + + + + + + + + + Telemetry + + + + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::SelectRows + + + + Date + + + + + Time + + + + + Seq No + + + + + A1 + + + + + A2 + + + + + A3 + + + + + A4 + + + + + A5 + + + + + B1 + + + + + B2 + + + + + B3 + + + + + B4 + + + + + B5 + + + + + B6 + + + + + B7 + + + + + B8 + + + + + Comment + + + + + + + + + + Plot + + + + + + + + 150 + 0 + + + + Select data to plot + + + + A1 + + + + + A2 + + + + + A3 + + + + + A4 + + + + + A5 + + + + + B1 + + + + + B2 + + + + + B3 + + + + + B4 + + + + + B5 + + + + + B6 + + + + + B7 + + + + + B8 + + + + + + + + Qt::Vertical + + + + + + + Time + + + + + + + + 100 + 0 + + + + Time range to plot data for + + + + Today + + + + + Last hour + + + + + Last 24 hours + + + + + Last 7 days + + + + + Last 30 days + + + + + All + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + Status + + + + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::SelectRows + + + + Date + + + + + Time + + + + + Status + + + + + Symbol + + + + + Maidenhead + + + + + Beam Heading (°) + + + + + Beam Power (W) + + + + + + + + + Packets + + + + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::SelectRows + + + + Date + + + + + Time + + + + + From + + + + + To + + + + + Via + + + + + Data + + + + + + + + + + + + + Messages + + + + + + + + Addressee + + + + + + + Display only messages where the addressee matches the specified regular expression + + + + + + + Delete the selected message or all messages if none selected + + + + + + + :/bin.png:/bin.png + + + + + + + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::SelectRows + + + + Date + + + + + Time + + + + + Addressee + + + + + Message + + + + + Message No + + + + + + + + + + + + + + RollupWidget + QWidget +

gui/rollupwidget.h
+ 1 + + + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
+ + QChartView + QGraphicsView +
QtCharts
+
+ + + sourcePipes + igate + displaySettings + topTabWidget + stationSelect + viewOnMap + stationsTabWidget + station + reportingStation + status + comment + position + altitude + course + speed + txPower + antennaHeight + antennaGain + antennaDirectivity + radioRange + lastPacket + weatherTable + weatherPlotSelect + weatherTimeSelect + weatherChart + motionTable + motionPlotSelect + motionTimeSelect + motionChart + telemetryTable + telemetryPlotSelect + telemetryTimeSelect + telemetryChart + statusTable + packetsTable + filterAddressee + deleteMessages + messagesTable + + + + + + diff --git a/plugins/feature/aprs/aprsplugin.cpp b/plugins/feature/aprs/aprsplugin.cpp new file mode 100644 index 000000000..737089aaa --- /dev/null +++ b/plugins/feature/aprs/aprsplugin.cpp @@ -0,0 +1,80 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + + +#include +#include "plugin/pluginapi.h" + +#ifndef SERVER_MODE +#include "aprsgui.h" +#endif +#include "aprs.h" +#include "aprsplugin.h" +#include "aprswebapiadapter.h" + +const PluginDescriptor APRSPlugin::m_pluginDescriptor = { + APRS::m_featureId, + QStringLiteral("APRS"), + QStringLiteral("6.4.0"), + QStringLiteral("(c) Jon Beniston, M7RCE"), + QStringLiteral("https://github.com/f4exb/sdrangel"), + true, + QStringLiteral("https://github.com/f4exb/sdrangel") +}; + +APRSPlugin::APRSPlugin(QObject* parent) : + QObject(parent), + m_pluginAPI(nullptr) +{ +} + +const PluginDescriptor& APRSPlugin::getPluginDescriptor() const +{ + return m_pluginDescriptor; +} + +void APRSPlugin::initPlugin(PluginAPI* pluginAPI) +{ + m_pluginAPI = pluginAPI; + + m_pluginAPI->registerFeature(APRS::m_featureIdURI, APRS::m_featureId, this); +} + +#ifdef SERVER_MODE +FeatureGUI* APRSPlugin::createFeatureGUI(FeatureUISet *featureUISet, Feature *feature) const +{ + (void) featureUISet; + (void) feature; + return nullptr; +} +#else +FeatureGUI* APRSPlugin::createFeatureGUI(FeatureUISet *featureUISet, Feature *feature) const +{ + return APRSGUI::create(m_pluginAPI, featureUISet, feature); +} +#endif + +Feature* APRSPlugin::createFeature(WebAPIAdapterInterface* webAPIAdapterInterface) const +{ + return new APRS(webAPIAdapterInterface); +} + +FeatureWebAPIAdapter* APRSPlugin::createFeatureWebAPIAdapter() const +{ + return new APRSWebAPIAdapter(); +} diff --git a/plugins/feature/aprs/aprsplugin.h b/plugins/feature/aprs/aprsplugin.h new file mode 100644 index 000000000..c2767581e --- /dev/null +++ b/plugins/feature/aprs/aprsplugin.h @@ -0,0 +1,49 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_APRSPLUGIN_H +#define INCLUDE_FEATURE_APRSPLUGIN_H + +#include +#include "plugin/plugininterface.h" + +class FeatureGUI; +class WebAPIAdapterInterface; + +class APRSPlugin : public QObject, PluginInterface { + Q_OBJECT + Q_INTERFACES(PluginInterface) + Q_PLUGIN_METADATA(IID "sdrangel.feature.aprs") + +public: + explicit APRSPlugin(QObject* parent = nullptr); + + const PluginDescriptor& getPluginDescriptor() const; + void initPlugin(PluginAPI* pluginAPI); + + virtual FeatureGUI* createFeatureGUI(FeatureUISet *featureUISet, Feature *feature) const; + virtual Feature* createFeature(WebAPIAdapterInterface *webAPIAdapterInterface) const; + virtual FeatureWebAPIAdapter* createFeatureWebAPIAdapter() const; + +private: + static const PluginDescriptor m_pluginDescriptor; + + PluginAPI* m_pluginAPI; +}; + +#endif // INCLUDE_FEATURE_APRSPLUGIN_H diff --git a/plugins/feature/aprs/aprssettings.cpp b/plugins/feature/aprs/aprssettings.cpp new file mode 100644 index 000000000..6219d8613 --- /dev/null +++ b/plugins/feature/aprs/aprssettings.cpp @@ -0,0 +1,210 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include "util/simpleserializer.h" +#include "settings/serializable.h" + +#include "aprssettings.h" + +const QStringList APRSSettings::m_pipeTypes = { + QStringLiteral("PacketDemod") +}; + +const QStringList APRSSettings::m_pipeURIs = { + QStringLiteral("sdrangel.channelrx.packetdemod"), +}; + +APRSSettings::APRSSettings() +{ + resetToDefaults(); +} + +void APRSSettings::resetToDefaults() +{ + m_igateServer = "noam.aprs2.net"; + m_igatePort = 14580; + m_igateCallsign = ""; + m_igatePasscode = ""; + m_igateFilter = "m/10"; + m_igateEnabled = false; + m_stationFilter = ALL; + m_filterAddressee = ""; + m_title = "APRS"; + m_rgbColor = QColor(225, 25, 99).rgb(); + m_useReverseAPI = false; + m_reverseAPIAddress = "127.0.0.1"; + m_reverseAPIPort = 8888; + m_reverseAPIFeatureSetIndex = 0; + m_reverseAPIFeatureIndex = 0; + for (int i = 0; i < APRS_PACKETS_TABLE_COLUMNS; i++) + { + m_packetsTableColumnIndexes[i] = i; + m_packetsTableColumnSizes[i] = -1; // Autosize + } + for (int i = 0; i < APRS_WEATHER_TABLE_COLUMNS; i++) + { + m_weatherTableColumnIndexes[i] = i; + m_weatherTableColumnSizes[i] = -1; // Autosize + } + for (int i = 0; i < APRS_STATUS_TABLE_COLUMNS; i++) + { + m_statusTableColumnIndexes[i] = i; + m_statusTableColumnSizes[i] = -1; // Autosize + } + for (int i = 0; i < APRS_MESSAGES_TABLE_COLUMNS; i++) + { + m_messagesTableColumnIndexes[i] = i; + m_messagesTableColumnSizes[i] = -1; // Autosize + } + for (int i = 0; i < APRS_TELEMETRY_TABLE_COLUMNS; i++) + { + m_telemetryTableColumnIndexes[i] = i; + m_telemetryTableColumnSizes[i] = -1; // Autosize + } + for (int i = 0; i < APRS_MOTION_TABLE_COLUMNS; i++) + { + m_motionTableColumnIndexes[i] = i; + m_motionTableColumnSizes[i] = -1; // Autosize + } +} + +QByteArray APRSSettings::serialize() const +{ + SimpleSerializer s(1); + + s.writeString(1, m_igateServer); + s.writeS32(2, m_igatePort); + s.writeString(3, m_igateCallsign); + s.writeString(4, m_igatePasscode); + s.writeString(5, m_igateFilter); + s.writeBool(6, m_igateEnabled); + s.writeS32(7, m_stationFilter); + s.writeString(8, m_filterAddressee); + s.writeString(9, m_title); + s.writeU32(10, m_rgbColor); + s.writeBool(11, m_useReverseAPI); + s.writeString(12, m_reverseAPIAddress); + s.writeU32(13, m_reverseAPIPort); + s.writeU32(14, m_reverseAPIFeatureSetIndex); + s.writeU32(15, m_reverseAPIFeatureIndex); + + for (int i = 0; i < APRS_PACKETS_TABLE_COLUMNS; i++) + s.writeS32(100 + i, m_packetsTableColumnIndexes[i]); + for (int i = 0; i < APRS_PACKETS_TABLE_COLUMNS; i++) + s.writeS32(200 + i, m_packetsTableColumnSizes[i]); + for (int i = 0; i < APRS_WEATHER_TABLE_COLUMNS; i++) + s.writeS32(300 + i, m_weatherTableColumnIndexes[i]); + for (int i = 0; i < APRS_WEATHER_TABLE_COLUMNS; i++) + s.writeS32(400 + i, m_weatherTableColumnSizes[i]); + for (int i = 0; i < APRS_STATUS_TABLE_COLUMNS; i++) + s.writeS32(500 + i, m_statusTableColumnIndexes[i]); + for (int i = 0; i < APRS_STATUS_TABLE_COLUMNS; i++) + s.writeS32(600 + i, m_statusTableColumnSizes[i]); + for (int i = 0; i < APRS_MESSAGES_TABLE_COLUMNS; i++) + s.writeS32(700 + i, m_messagesTableColumnIndexes[i]); + for (int i = 0; i < APRS_MESSAGES_TABLE_COLUMNS; i++) + s.writeS32(800 + i, m_messagesTableColumnSizes[i]); + for (int i = 0; i < APRS_TELEMETRY_TABLE_COLUMNS; i++) + s.writeS32(900 + i, m_telemetryTableColumnIndexes[i]); + for (int i = 0; i < APRS_TELEMETRY_TABLE_COLUMNS; i++) + s.writeS32(1000 + i, m_telemetryTableColumnSizes[i]); + for (int i = 0; i < APRS_MOTION_TABLE_COLUMNS; i++) + s.writeS32(1100 + i, m_motionTableColumnIndexes[i]); + for (int i = 0; i < APRS_MOTION_TABLE_COLUMNS; i++) + s.writeS32(1200 + i, m_motionTableColumnSizes[i]); + + return s.final(); +} + +bool APRSSettings::deserialize(const QByteArray& data) +{ + SimpleDeserializer d(data); + + if (!d.isValid()) + { + resetToDefaults(); + return false; + } + + if (d.getVersion() == 1) + { + QByteArray bytetmp; + uint32_t utmp; + QString strtmp; + + d.readString(1, &m_igateServer, "noam.aprs2.net"); + d.readS32(2, &m_igatePort, 14580); + d.readString(3, &m_igateCallsign, ""); + d.readString(4, &m_igatePasscode, ""); + d.readString(5, &m_igateFilter, ""); + d.readBool(6, &m_igateEnabled, false); + d.readS32(7, (int*)&m_stationFilter, 0); + d.readString(8, &m_filterAddressee, ""); + + d.readString(9, &m_title, "APRS"); + d.readU32(10, &m_rgbColor, QColor(225, 25, 99).rgb()); + d.readBool(11, &m_useReverseAPI, false); + d.readString(12, &m_reverseAPIAddress, "127.0.0.1"); + d.readU32(13, &utmp, 0); + + if ((utmp > 1023) && (utmp < 65535)) { + m_reverseAPIPort = utmp; + } else { + m_reverseAPIPort = 8888; + } + + d.readU32(14, &utmp, 0); + m_reverseAPIFeatureSetIndex = utmp > 99 ? 99 : utmp; + d.readU32(15, &utmp, 0); + m_reverseAPIFeatureIndex = utmp > 99 ? 99 : utmp; + + for (int i = 0; i < APRS_PACKETS_TABLE_COLUMNS; i++) + d.readS32(100 + i, &m_packetsTableColumnIndexes[i], i); + for (int i = 0; i < APRS_PACKETS_TABLE_COLUMNS; i++) + d.readS32(200 + i, &m_packetsTableColumnSizes[i], -1); + for (int i = 0; i < APRS_WEATHER_TABLE_COLUMNS; i++) + d.readS32(300 + i, &m_weatherTableColumnIndexes[i], i); + for (int i = 0; i < APRS_WEATHER_TABLE_COLUMNS; i++) + d.readS32(400 + i, &m_weatherTableColumnSizes[i], -1); + for (int i = 0; i < APRS_STATUS_TABLE_COLUMNS; i++) + d.readS32(500 + i, &m_statusTableColumnIndexes[i], i); + for (int i = 0; i < APRS_STATUS_TABLE_COLUMNS; i++) + d.readS32(600 + i, &m_statusTableColumnSizes[i], -1); + for (int i = 0; i < APRS_MESSAGES_TABLE_COLUMNS; i++) + d.readS32(700 + i, &m_messagesTableColumnIndexes[i], i); + for (int i = 0; i < APRS_MESSAGES_TABLE_COLUMNS; i++) + d.readS32(800 + i, &m_messagesTableColumnSizes[i], -1); + for (int i = 0; i < APRS_TELEMETRY_TABLE_COLUMNS; i++) + d.readS32(900 + i, &m_telemetryTableColumnIndexes[i], i); + for (int i = 0; i < APRS_TELEMETRY_TABLE_COLUMNS; i++) + d.readS32(1000 + i, &m_telemetryTableColumnSizes[i], -1); + for (int i = 0; i < APRS_MOTION_TABLE_COLUMNS; i++) + d.readS32(1100 + i, &m_motionTableColumnIndexes[i], i); + for (int i = 0; i < APRS_MOTION_TABLE_COLUMNS; i++) + d.readS32(1200 + i, &m_motionTableColumnSizes[i], -1); + + return true; + } + else + { + resetToDefaults(); + return false; + } +} diff --git a/plugins/feature/aprs/aprssettings.h b/plugins/feature/aprs/aprssettings.h new file mode 100644 index 000000000..65b4312d5 --- /dev/null +++ b/plugins/feature/aprs/aprssettings.h @@ -0,0 +1,79 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_APRSSETTINGS_H_ +#define INCLUDE_FEATURE_APRSSETTINGS_H_ + +#include +#include + +#include "util/message.h" + +class Serializable; + +// Number of columns in the tables +#define APRS_PACKETS_TABLE_COLUMNS 6 +#define APRS_WEATHER_TABLE_COLUMNS 15 +#define APRS_STATUS_TABLE_COLUMNS 7 +#define APRS_MESSAGES_TABLE_COLUMNS 5 +#define APRS_TELEMETRY_TABLE_COLUMNS 17 +#define APRS_MOTION_TABLE_COLUMNS 7 + +struct APRSSettings +{ + QString m_igateServer; + int m_igatePort; + QString m_igateCallsign; + QString m_igatePasscode; + QString m_igateFilter; + bool m_igateEnabled; + enum StationFilter { + ALL, STATIONS, OBJECTS, WEATHER, TELEMETRY, COURSE_AND_SPEED + } m_stationFilter; + QString m_filterAddressee; + QString m_title; + quint32 m_rgbColor; + bool m_useReverseAPI; + QString m_reverseAPIAddress; + uint16_t m_reverseAPIPort; + uint16_t m_reverseAPIFeatureSetIndex; + uint16_t m_reverseAPIFeatureIndex; + + int m_packetsTableColumnIndexes[APRS_PACKETS_TABLE_COLUMNS];//!< How the columns are ordered in the table + int m_packetsTableColumnSizes[APRS_PACKETS_TABLE_COLUMNS]; //!< Size of the columns in the table + int m_weatherTableColumnIndexes[APRS_WEATHER_TABLE_COLUMNS]; + int m_weatherTableColumnSizes[APRS_WEATHER_TABLE_COLUMNS]; + int m_statusTableColumnIndexes[APRS_STATUS_TABLE_COLUMNS]; + int m_statusTableColumnSizes[APRS_STATUS_TABLE_COLUMNS]; + int m_messagesTableColumnIndexes[APRS_MESSAGES_TABLE_COLUMNS]; + int m_messagesTableColumnSizes[APRS_MESSAGES_TABLE_COLUMNS]; + int m_telemetryTableColumnIndexes[APRS_TELEMETRY_TABLE_COLUMNS]; + int m_telemetryTableColumnSizes[APRS_TELEMETRY_TABLE_COLUMNS]; + int m_motionTableColumnIndexes[APRS_MOTION_TABLE_COLUMNS]; + int m_motionTableColumnSizes[APRS_MOTION_TABLE_COLUMNS]; + + APRSSettings(); + void resetToDefaults(); + QByteArray serialize() const; + bool deserialize(const QByteArray& data); + + static const QStringList m_pipeTypes; + static const QStringList m_pipeURIs; +}; + +#endif // INCLUDE_FEATURE_APRSSETTINGS_H_ diff --git a/plugins/feature/aprs/aprssettingsdialog.cpp b/plugins/feature/aprs/aprssettingsdialog.cpp new file mode 100644 index 000000000..4dc1a8fb7 --- /dev/null +++ b/plugins/feature/aprs/aprssettingsdialog.cpp @@ -0,0 +1,43 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include "aprssettingsdialog.h" + +APRSSettingsDialog::APRSSettingsDialog(QString igateServer, QString igateCallsign, QString igatePasscode, QString igateFilter, QWidget* parent) : + QDialog(parent), + ui(new Ui::APRSSettingsDialog) +{ + ui->setupUi(this); + ui->igateServer->setCurrentText(igateServer); + ui->igateCallsign->setText(igateCallsign); + ui->igatePasscode->setText(igatePasscode); + ui->igateFilter->setText(igateFilter); +} + +APRSSettingsDialog::~APRSSettingsDialog() +{ + delete ui; +} + +void APRSSettingsDialog::accept() +{ + m_igateServer = ui->igateServer->currentText(); + m_igateCallsign = ui->igateCallsign->text(); + m_igatePasscode = ui->igatePasscode->text(); + m_igateFilter = ui->igateFilter->text(); + QDialog::accept(); +} diff --git a/plugins/feature/aprs/aprssettingsdialog.h b/plugins/feature/aprs/aprssettingsdialog.h new file mode 100644 index 000000000..76dc892ef --- /dev/null +++ b/plugins/feature/aprs/aprssettingsdialog.h @@ -0,0 +1,43 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_APRSSETTINGSDIALOG_H +#define INCLUDE_APRSSETTINGSDIALOG_H + +#include "ui_aprssettingsdialog.h" +#include "aprssettings.h" + +class APRSSettingsDialog : public QDialog { + Q_OBJECT + +public: + explicit APRSSettingsDialog(QString igateServer, QString igateCallsign, QString igatePasscode, QString igateFilter, QWidget* parent = 0); + ~APRSSettingsDialog(); + + QString m_igateServer; + QString m_igateCallsign; + QString m_igatePasscode; + QString m_igateFilter; + +private slots: + void accept(); + +private: + Ui::APRSSettingsDialog* ui; +}; + +#endif // INCLUDE_APRSSETTINGSDIALOG_H diff --git a/plugins/feature/aprs/aprssettingsdialog.ui b/plugins/feature/aprs/aprssettingsdialog.ui new file mode 100644 index 000000000..d2ee9b07c --- /dev/null +++ b/plugins/feature/aprs/aprssettingsdialog.ui @@ -0,0 +1,173 @@ + + + APRSSettingsDialog + + + + 0 + 0 + 351 + 179 + + + + + Liberation Sans + 9 + + + + APRS Settings + + + + + + + + + Name of APRS-IS server to connect to + + + true + + + + noam.aprs2.net + + + + + soam.aprs2.net + + + + + euro.aprs2.net + + + + + asia.aprs2.net + + + + + aunz.aprs2.net + + + + + + + + IGate Server + + + + + + + IGate Passcode + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + IGate Callsign + + + + + + + Server side filter + + + + + + + IGate Filter + + + + + + + Callsign to use when connecting to APRS-IS server + + + + + + + Passcode corresponding to APRS-IS callsign + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + APRSSettingsDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + APRSSettingsDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/plugins/feature/aprs/aprswebapiadapter.cpp b/plugins/feature/aprs/aprswebapiadapter.cpp new file mode 100644 index 000000000..9bb122fb0 --- /dev/null +++ b/plugins/feature/aprs/aprswebapiadapter.cpp @@ -0,0 +1,52 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB. // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include "SWGFeatureSettings.h" +#include "aprs.h" +#include "aprswebapiadapter.h" + +APRSWebAPIAdapter::APRSWebAPIAdapter() +{} + +APRSWebAPIAdapter::~APRSWebAPIAdapter() +{} + +int APRSWebAPIAdapter::webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setSimplePttSettings(new SWGSDRangel::SWGSimplePTTSettings()); + response.getSimplePttSettings()->init(); + APRS::webapiFormatFeatureSettings(response, m_settings); + + return 200; +} + +int APRSWebAPIAdapter::webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) force; // no action + (void) errorMessage; + APRS::webapiUpdateFeatureSettings(m_settings, featureSettingsKeys, response); + + return 200; +} diff --git a/plugins/feature/aprs/aprswebapiadapter.h b/plugins/feature/aprs/aprswebapiadapter.h new file mode 100644 index 000000000..e0405813f --- /dev/null +++ b/plugins/feature/aprs/aprswebapiadapter.h @@ -0,0 +1,50 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB. // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_APRS_WEBAPIADAPTER_H +#define INCLUDE_APRS_WEBAPIADAPTER_H + +#include "feature/featurewebapiadapter.h" +#include "aprssettings.h" + +/** + * Standalone API adapter only for the settings + */ +class APRSWebAPIAdapter : public FeatureWebAPIAdapter { +public: + APRSWebAPIAdapter(); + virtual ~APRSWebAPIAdapter(); + + virtual QByteArray serialize() const { return m_settings.serialize(); } + virtual bool deserialize(const QByteArray& data) { return m_settings.deserialize(data); } + + virtual int webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + +private: + APRSSettings m_settings; +}; + +#endif // INCLUDE_APRS_WEBAPIADAPTER_H diff --git a/plugins/feature/aprs/aprsworker.cpp b/plugins/feature/aprs/aprsworker.cpp new file mode 100644 index 000000000..fd55bb63f --- /dev/null +++ b/plugins/feature/aprs/aprsworker.cpp @@ -0,0 +1,251 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include + +#include "webapi/webapiadapterinterface.h" +#include "webapi/webapiutils.h" +#include "maincore.h" +#include "util/ax25.h" +#include "util/aprs.h" + +#include "aprs.h" +#include "aprsworker.h" + +MESSAGE_CLASS_DEFINITION(APRSWorker::MsgConfigureAPRSWorker, Message) + +APRSWorker::APRSWorker(APRS *aprs, WebAPIAdapterInterface *webAPIAdapterInterface) : + m_aprs(aprs), + m_webAPIAdapterInterface(webAPIAdapterInterface), + m_msgQueueToFeature(nullptr), + m_msgQueueToGUI(nullptr), + m_running(false), + m_mutex(QMutex::Recursive) +{ + connect(&m_socket, SIGNAL(readyRead()),this, SLOT(recv())); + connect(&m_socket, SIGNAL(connected()), this, SLOT(connected())); + connect(&m_socket, SIGNAL(disconnected()), this, SLOT(disconnected())); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + connect(&m_socket, QOverload::of(&QAbstractSocket::error), this, &APRSWorker::errorOccurred); +#else + connect(&m_socket, &QAbstractSocket::errorOccurred, this, &APRSWorker::errorOccurred); +#endif +} + +APRSWorker::~APRSWorker() +{ + m_inputMessageQueue.clear(); +} + +void APRSWorker::reset() +{ + QMutexLocker mutexLocker(&m_mutex); + m_inputMessageQueue.clear(); +} + +bool APRSWorker::startWork() +{ + QMutexLocker mutexLocker(&m_mutex); + connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + m_running = true; + return m_running; +} + +void APRSWorker::stopWork() +{ + QMutexLocker mutexLocker(&m_mutex); + disconnect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + m_running = false; +} + +void APRSWorker::handleInputMessages() +{ + Message* message; + + while ((message = m_inputMessageQueue.pop()) != nullptr) + { + if (handleMessage(*message)) { + delete message; + } + } +} + +bool APRSWorker::handleMessage(const Message& cmd) +{ + if (MsgConfigureAPRSWorker::match(cmd)) + { + QMutexLocker mutexLocker(&m_mutex); + MsgConfigureAPRSWorker& cfg = (MsgConfigureAPRSWorker&) cmd; + + applySettings(cfg.getSettings(), cfg.getForce()); + return true; + } + else if (MainCore::MsgPacket::match(cmd)) + { + MainCore::MsgPacket& report = (MainCore::MsgPacket&) cmd; + AX25Packet ax25; + APRSPacket *aprs = new APRSPacket(); + if (ax25.decode(report.getPacket())) + { + if (aprs->decode(ax25)) + { + // See: http://www.aprs-is.net/IGateDetails.aspx for gating rules + if (!aprs->m_via.contains("TCPIP") + && !aprs->m_via.contains("TCPXX") + && !aprs->m_via.contains("NOGATE") + && !aprs->m_via.contains("RFONLY")) + { + aprs->m_dateTime = report.getDateTime(); + QString igateMsg = aprs->toTNC2(m_settings.m_igateCallsign); + send(igateMsg.toUtf8(), igateMsg.length()); + } + } + } + return true; + } + else + { + return false; + } +} + +void APRSWorker::applySettings(const APRSSettings& settings, bool force) +{ + qDebug() << "APRSWorker::applySettings:" + << " m_igateEnabled: " << settings.m_igateEnabled + << " m_igateServer: " << settings.m_igateServer + << " m_igatePort: " << settings.m_igatePort + << " m_igateCallsign: " << settings.m_igateCallsign + << " m_igateFilter: " << settings.m_igateFilter + << " force: " << force; + + if ((settings.m_igateEnabled != m_settings.m_igateEnabled) + || (settings.m_igateServer != m_settings.m_igateServer) + || (settings.m_igatePort != m_settings.m_igatePort) + || (settings.m_igateFilter != m_settings.m_igateFilter) + || force) + { + // Close any existing connection + if (m_socket.isOpen()) + m_socket.close(); + // Open connection + if (settings.m_igateEnabled) + { + if (settings.m_igateServer.isEmpty()) + { + if (m_msgQueueToFeature) + m_msgQueueToFeature->push(APRS::MsgReportWorker::create("IGate server name must be specified")); + } + else if (settings.m_igateCallsign.isEmpty()) + { + if (m_msgQueueToFeature) + m_msgQueueToFeature->push(APRS::MsgReportWorker::create("IGate callsign must be specified")); + } + else if (settings.m_igatePasscode.isEmpty()) + { + if (m_msgQueueToFeature) + m_msgQueueToFeature->push(APRS::MsgReportWorker::create("IGate passcode must be specified")); + } + else + { + qDebug() << "APRSWorker::applySettings: Connecting to " << settings.m_igateServer << ":" << settings.m_igatePort; + m_socket.setSocketOption(QAbstractSocket::LowDelayOption, 1); + m_socket.connectToHost(settings.m_igateServer, settings.m_igatePort); + } + } + } + + m_settings = settings; +} + +void APRSWorker::connected() +{ + qDebug() << "APRSWorker::connected " << m_settings.m_igateServer; + m_loggedIn = false; +} + +void APRSWorker::disconnected() +{ + qDebug() << "APRSWorker::disconnected"; + if (m_msgQueueToFeature) + m_msgQueueToFeature->push(APRS::MsgReportWorker::create("Disconnected")); +} + +void APRSWorker::errorOccurred(QAbstractSocket::SocketError socketError) +{ + qDebug() << "APRSWorker::errorOccurred: " << socketError; + if (m_msgQueueToFeature) + m_msgQueueToFeature->push(APRS::MsgReportWorker::create(m_socket.errorString() + " " + socketError)); +} + +void APRSWorker::recv() +{ + char buffer[2048]; + + while (m_socket.readLine(buffer, sizeof(buffer)) > 0) + { + QString packet(buffer); + qDebug() << "APRSWorker::recv: " << packet; + if (packet.startsWith("#")) + { + if (!m_loggedIn) + { + // Log in with callsign and passcode + QString login = QString("user %1 pass %2 vers SDRangel 6.4.0%3\r\n").arg(m_settings.m_igateCallsign).arg(m_settings.m_igatePasscode).arg(m_settings.m_igateFilter.isEmpty() ? "" : QString(" filter %1").arg(m_settings.m_igateFilter)); + send(login.toLatin1(), login.length()); + m_loggedIn = true; + if (m_msgQueueToFeature) + m_msgQueueToFeature->push(APRS::MsgReportWorker::create("Connected")); + } + else if (packet.indexOf(QString("logresp %1 unverified").arg(m_settings.m_igateCallsign)) >= 0) + { + if (m_msgQueueToFeature) + m_msgQueueToFeature->push(APRS::MsgReportWorker::create("Invalid IGate callsign or passcode")); + } + } + else if (packet.length() > 0) + { + // Forward to GUI + if (getMessageQueueToGUI()) + { + // Convert TNC2 to AX25 raw bytes + QByteArray ax25Packet = APRSPacket::toByteArray(packet); + getMessageQueueToGUI()->push(MainCore::MsgPacket::create(m_aprs, ax25Packet, QDateTime::currentDateTime())); + } + } + } +} + +void APRSWorker::send(const char *data, int length) +{ + if (m_settings.m_igateEnabled) + { + // Reopen connection if it was lost + if (!m_socket.isOpen()) + { + qDebug() << "APRSWorker::send: Reconnecting to " << m_settings.m_igateServer << ":" << m_settings.m_igatePort; + m_socket.connectToHost(m_settings.m_igateServer, m_settings.m_igatePort); + } + // Send data + qDebug() << "APRSWorker::send: " << QString(QByteArray(data, length)); + m_socket.write(data, length); + } +} diff --git a/plugins/feature/aprs/aprsworker.h b/plugins/feature/aprs/aprsworker.h new file mode 100644 index 000000000..2c9c36dd1 --- /dev/null +++ b/plugins/feature/aprs/aprsworker.h @@ -0,0 +1,97 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_APRSWORKER_H_ +#define INCLUDE_FEATURE_APRSWORKER_H_ + +#include +#include +#include + +#include "util/message.h" +#include "util/messagequeue.h" + +#include "aprs.h" +#include "aprssettings.h" + +class WebAPIAdapterInterface; + +class APRSWorker : public QObject +{ + Q_OBJECT +public: + class MsgConfigureAPRSWorker : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const APRSSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } + + static MsgConfigureAPRSWorker* create(const APRSSettings& settings, bool force) + { + return new MsgConfigureAPRSWorker(settings, force); + } + + private: + APRSSettings m_settings; + bool m_force; + + MsgConfigureAPRSWorker(const APRSSettings& settings, bool force) : + Message(), + m_settings(settings), + m_force(force) + { } + }; + + APRSWorker(APRS *m_aprs, WebAPIAdapterInterface *webAPIAdapterInterface); + ~APRSWorker(); + void reset(); + bool startWork(); + void stopWork(); + bool isRunning() const { return m_running; } + MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } + void setMessageQueueToFeature(MessageQueue *messageQueue) { m_msgQueueToFeature = messageQueue; } + void setMessageQueueToGUI(MessageQueue *messageQueue) { m_msgQueueToGUI = messageQueue; } + +private: + + APRS *m_aprs; + WebAPIAdapterInterface *m_webAPIAdapterInterface; + MessageQueue m_inputMessageQueue; //!< Queue for asynchronous inbound communication + MessageQueue *m_msgQueueToFeature; //!< Queue to report channel change to main feature object + MessageQueue *m_msgQueueToGUI; + APRSSettings m_settings; + bool m_running; + QMutex m_mutex; + QTcpSocket m_socket; + bool m_loggedIn; + + bool handleMessage(const Message& cmd); + void applySettings(const APRSSettings& settings, bool force = false); + MessageQueue *getMessageQueueToGUI() { return m_msgQueueToGUI; } + void send(const char *data, int length); + +private slots: + void handleInputMessages(); + void connected(); + void disconnected(); + void errorOccurred(QAbstractSocket::SocketError socketError); + void recv(); +}; + +#endif // INCLUDE_FEATURE_APRSWORKER_H_ diff --git a/plugins/feature/aprs/readme.md b/plugins/feature/aprs/readme.md new file mode 100644 index 000000000..7271bbf8f --- /dev/null +++ b/plugins/feature/aprs/readme.md @@ -0,0 +1,47 @@ +

APRS Feature Plugin

+ +

Introduction

+ +The APRS plugin displays APRS (Automatic Packet Reporting System) packets. APRS packets can be received over RF via one or more Packet Demodulator source channels or from the Internet via an APRS-IS IGate. + +

Interface

+ +![APRS feature plugin GUI](../../../doc/img/APRS_plugin.png) + +

1: Source channels

+ +This displays a list of the Packet Demodulator channels the APRS feature is receiving packets from. + +

2: Enable APRS-IS IGate

+ +When checked, enables the APRS-IS IGate (Internet gateway). The IGate forwards packets received via the Packet Demodulators to APRS-IS internet servers. +These servers collate packets from all IGates and allow them to be viewed on web sites such as https://aprs.fi, https://www.aprsdirect.com/ and http://ariss.net/ (the latter being for packets repeated via satellites and the ISS). +It is also possible to receive packets via the IGate, which allows you to see packets that you cannot receive via RF. + +

3: Show APRS Settings

+ +Pressing this button shows the APRS Settings Dialog. This dialog allows you to enter: + +* The APRS-IS server the IGate should connect to. Please choose your local server. (noam = North America, euro = Europe, etc). +* The callsign the IGate should connect with. +* The passcode corresponding to the given callsign. +* A serverside filter, that specifies which packets should be forwarded from the internet to SDRangel. See http://www.aprs-is.net/javAPRSFilter.aspx +m/50 will send you packets within 50 km of the last known position of the station corresponding to the callsign used to log in with. +If you do not have a corresponding station, you can specify a location by passing a latitude and longitude. E.g: r/lat/lon/50 + +

Map

+ +The APRS feature can plot APRS symbols and data on the Map. To use, simply open a Map feature and the APRS plugin will display packets it receives from that point on it. +Selecting an APRS item on the map will display a text bubble containing APRS status, position and weather data. + +![APRS map](../../../doc/img/APRS_map.png) + +

Attribution

+ +APRS icons are from: https://github.com/hessu/aprs-symbols + +

API

+ +Full details of the API can be found in the Swagger documentation. Here is a quick example of how to enable the APRS-IS IGate: + + curl -X PATCH "http://127.0.0.1:8091/sdrangel/featureset/0/feature/0/settings" -d '{"featureType": "APRS", "APRSSettings": { "igateCallsign": "MYCALLSIGN", "igatePasscode": "12345", "igateFilter": "r/50.2/10.2/25", "igateEnabled": 1 }}' diff --git a/sdrbase/util/aprs.cpp b/sdrbase/util/aprs.cpp new file mode 100644 index 000000000..634e91b16 --- /dev/null +++ b/sdrbase/util/aprs.cpp @@ -0,0 +1,992 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include + +#include "aprs.h" + +// See: http://www.aprs.org/doc/APRS101.PDF + +// Currently we only decode what we want to display on the map +bool APRSPacket::decode(AX25Packet packet) +{ + // Check type, PID and length of packet + if ((packet.m_type == "UI") && (packet.m_pid == "f0") && (packet.m_dataASCII.length() >= 1)) + { + // Check destination address + QRegExp re("^(AIR.*|ALL.*|AP.*|BEACON|CQ.*|GPS.*|DF.*|DGPS.*|DRILL.*|DX.*|ID.*|JAVA.*|MAIL.*|MICE.*|QST.*|QTH.*|RTCM.*|SKY.*|SPACE.*|SPC.*|SYM.*|TEL.*|TEST.*|TLM.*|WX.*|ZIP.*)"); + if (re.exactMatch(packet.m_to)) + { + m_from = packet.m_from; + m_to = packet.m_to; + m_via = packet.m_via; + m_data = packet.m_dataASCII; + + if (packet.m_to.startsWith("GPS") || packet.m_to.startsWith("SPC") || packet.m_to.startsWith("SYM")) + { + // FIXME: Trailing letters xyz specify a symbol + } + + // Source address SSID can be used to specify a symbol + + // First byte of information field is data type ID + char dataType = packet.m_dataASCII[0].toLatin1(); + bool timestamp = false; + int idx = 1; + switch (dataType) + { + case '!': // Position without timestamp or Ultimeter 2000 WX Station + parsePosition(packet.m_dataASCII, idx); + if (m_symbolCode == '_') + parseWeather(packet.m_dataASCII, idx, false); + else if (m_symbolCode == '@') + parseStorm(packet.m_dataASCII, idx); + else + { + parseDataExension(packet.m_dataASCII, idx); + parseComment(packet.m_dataASCII, idx); + } + break; + case '#': // Peet Bros U-II Weather Station + case '$': // Raw GPS data or Ultimeter 2000 + case '%': // Agrelo DFJr / MicroFinder + break; + case ')': // Item + parseItem(packet.m_dataASCII, idx); + parsePosition(packet.m_dataASCII, idx); + parseDataExension(packet.m_dataASCII, idx); + parseComment(packet.m_dataASCII, idx); + break; + case '*': // Peet Bros U-II Weather Station + break; + case '/': // Position with timestamp (no APRS messaging) + parseTime(packet.m_dataASCII, idx); + parsePosition(packet.m_dataASCII, idx); + if (m_symbolCode == '_') + parseWeather(packet.m_dataASCII, idx, false); + else if (m_symbolCode == '@') + parseStorm(packet.m_dataASCII, idx); + else + { + parseDataExension(packet.m_dataASCII, idx); + parseComment(packet.m_dataASCII, idx); + } + break; + case ':': // Message + parseMessage(packet.m_dataASCII, idx); + break; + case ';': // Object + parseObject(packet.m_dataASCII, idx); + parseTime(packet.m_dataASCII, idx); + parsePosition(packet.m_dataASCII, idx); + if (m_symbolCode == '_') + parseWeather(packet.m_dataASCII, idx, false); + else if (m_symbolCode == '@') + parseStorm(packet.m_dataASCII, idx); + else + { + parseDataExension(packet.m_dataASCII, idx); + parseComment(packet.m_dataASCII, idx); + } + break; + case '<': // Station Capabilities + break; + case '=': // Position without timestamp (with APRS messaging) + parsePosition(packet.m_dataASCII, idx); + if (m_symbolCode == '_') + parseWeather(packet.m_dataASCII, idx, false); + else if (m_symbolCode == '@') + parseStorm(packet.m_dataASCII, idx); + else + { + parseDataExension(packet.m_dataASCII, idx); + parseComment(packet.m_dataASCII, idx); + } + break; + case '>': // Status + parseStatus(packet.m_dataASCII, idx); + break; + case '?': // Query + break; + case '@': // Position with timestamp (with APRS messaging) + parseTime(packet.m_dataASCII, idx); + parsePosition(packet.m_dataASCII, idx); + if (m_symbolCode == '_') + parseWeather(packet.m_dataASCII, idx, false); + else if (m_symbolCode == '@') + parseStorm(packet.m_dataASCII, idx); + else + { + parseDataExension(packet.m_dataASCII, idx); + parseComment(packet.m_dataASCII, idx); + } + break; + case 'T': // Telemetry data + parseTelemetry(packet.m_dataASCII, idx); + break; + case '_': // Weather report (without position) + parseTimeMDHM(packet.m_dataASCII, idx); + parseWeather(packet.m_dataASCII, idx, true); + break; + case '{': // User-defined APRS packet format + break; + default: + return false; + } + + if (m_hasSymbol) + { + int num = m_symbolCode - '!'; + m_symbolImage = QString("aprs/aprs/aprs-symbols-24-%1-%2.png").arg(m_symbolTable == '/' ? 0 : 1).arg(num, 2, 10, QChar('0')); + } + + return true; + } + } + + return false; +} + +int APRSPacket::charToInt(QString&s, int idx) +{ + char c = s[idx].toLatin1(); + return c == ' ' ? 0 : c - '0'; +} + +bool APRSPacket::parseTime(QString& info, int& idx) +{ + if (info.length() < idx+7) + return false; + + QDateTime currentDateTime; + + if (info[idx+6]=='h') + { + // HMS format + if (info[idx].isDigit() + && info[idx+1].isDigit() + && info[idx+2].isDigit() + && info[idx+3].isDigit() + && info[idx+4].isDigit() + && info[idx+5].isDigit()) + { + int hour = charToInt(info, idx) * 10 + charToInt(info, idx+1); + int min = charToInt(info, idx+2) * 10 + charToInt(info, idx+3); + int sec = charToInt(info, idx+4) * 10 + charToInt(info, idx+5); + + if (hour > 23) + return false; + if (min > 59) + return false; + if (sec > 60) // Can have 60 seconds when there's a leap second + return false; + + m_utc = true; + m_timestamp = QDateTime(QDate::currentDate(), QTime(hour, min, sec)); + m_hasTimestamp = true; + + idx += 7; + return true; + } + else + return false; + } + else if ((info[idx+6]=='z') || (info[idx+6]=='/')) + { + // DHM format + if (info[idx].isDigit() + && info[idx+1].isDigit() + && info[idx+2].isDigit() + && info[idx+3].isDigit() + && info[idx+4].isDigit() + && info[idx+5].isDigit()) + { + int day = charToInt(info, idx) * 10 + charToInt(info, idx+1); + int hour = charToInt(info, idx+2) * 10 + charToInt(info, idx+3); + int min = charToInt(info, idx+4) * 10 + charToInt(info, idx+5); + + if (day > 31) + return false; + if (hour > 23) + return false; + if (min > 59) + return false; + + m_utc = info[idx+6]=='z'; + currentDateTime = m_utc ? QDateTime::currentDateTimeUtc() : QDateTime::currentDateTime(); + m_timestamp = QDateTime(QDate(currentDateTime.date().year(), currentDateTime.date().month(), day), QTime(hour, min, 0)); + m_hasTimestamp = true; + + idx += 7; + return true; + } + else + return false; + } + else + return false; +} + +// Time format used in weather reports without position +bool APRSPacket::parseTimeMDHM(QString& info, int& idx) +{ + if (info.length() < idx+8) + return false; + + if (info[idx].isDigit() + && info[idx+1].isDigit() + && info[idx+2].isDigit() + && info[idx+3].isDigit() + && info[idx+4].isDigit() + && info[idx+5].isDigit() + && info[idx+6].isDigit() + && info[idx+7].isDigit()) + { + int month = charToInt(info, idx) * 10 + charToInt(info, idx+1); + int day = charToInt(info, idx+2) * 10 + charToInt(info, idx+3); + int hour = charToInt(info, idx+4) * 10 + charToInt(info, idx+5); + int min = charToInt(info, idx+6) * 10 + charToInt(info, idx+7); + + if (month > 12) + return false; + if (day > 31) + return false; + if (hour > 23) + return false; + if (min > 59) + return false; + + m_utc = true; + QDateTime currentDateTime = QDateTime::currentDateTimeUtc(); + m_timestamp = QDateTime(QDate(currentDateTime.date().year(), month, day), QTime(hour, min, 0)); + m_hasTimestamp = true; + + return true; + } + else + return false; +} + +// Position ambigutiy can be specified by using spaces instead of digits in lats and longs +bool APRSPacket::isLatLongChar(QCharRef c) +{ + return (c.isDigit() || c == ' '); +} + +bool APRSPacket::parsePosition(QString& info, int& idx) +{ + float latitude; + float longitude; + char table; + char code; + + if (info.length() < idx+8+1+9+1) + return false; + + // Latitude + if (info[idx].isDigit() + && info[idx+1].isDigit() + && isLatLongChar(info[idx+2]) + && isLatLongChar(info[idx+3]) + && (info[idx+4]=='.') + && isLatLongChar(info[idx+5]) + && isLatLongChar(info[idx+6]) + && ((info[idx+7]=='N') || (info[idx+7]=='S'))) + { + int deg = charToInt(info, idx) * 10 + charToInt(info, idx+1); + int min = charToInt(info, idx+2) * 10 + charToInt(info, idx+3); + int hundreths = charToInt(info, idx+5) * 10 + charToInt(info, idx+6); + bool north = (info[idx+7]=='N'); + if (deg > 90) + return false; + else if ((deg == 90) && ((min != 0) || (hundreths != 0))) + return false; + latitude = ((float)deg) + min/60.0 + hundreths/60.0/100.0; + if (!north) + latitude = -latitude; + idx += 8; + } + else + return false; + + // Symbol table identifier + table = info[idx++].toLatin1(); + + // Longitude + if (info[idx].isDigit() + && info[idx+1].isDigit() + && info[idx+2].isDigit() + && isLatLongChar(info[idx+3]) + && isLatLongChar(info[idx+4]) + && (info[idx+5]=='.') + && isLatLongChar(info[idx+6]) + && isLatLongChar(info[idx+7]) + && ((info[idx+8]=='E') || (info[idx+8]=='W'))) + { + int deg = charToInt(info, idx) * 100 + charToInt(info, idx+1) * 10 + charToInt(info, idx+2); + int min = charToInt(info, idx+3) * 10 + charToInt(info, idx+4); + int hundreths = charToInt(info, idx+6) * 10 + charToInt(info, idx+7); + bool east = (info[idx+8]=='E'); + if (deg > 180) + return false; + else if ((deg == 180) && ((min != 0) || (hundreths != 0))) + return false; + longitude = ((float)deg) + min/60.0 + hundreths/60.0/100.0; + if (!east) + longitude = -longitude; + idx += 9; + } + else + return false; + + // Symbol table code + code = info[idx++].toLatin1(); + + // Update state as we have a valid position + m_latitude = latitude; + m_longitude = longitude; + m_hasPosition = true; + m_symbolTable = table; + m_symbolCode = code; + m_hasSymbol = true; + return true; +} + +bool APRSPacket::parseDataExension(QString& info, int& idx) +{ + int heightMap[] = {10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120}; + QStringList directivityMap = {"Omni", "NE", "E", "SE", "S", "SW", "W", "NW", "N", ""}; + + int remainingLength = info.length() - idx; + if (remainingLength < 7) + return true; + QString s = info.right(remainingLength); + + // Course and speed + QRegExp courseSpeed("^([0-9]{3})\\/([0-9]{3})"); + if (courseSpeed.indexIn(s) >= 0) + { + m_course = courseSpeed.capturedTexts()[1].toInt(); + m_speed = courseSpeed.capturedTexts()[2].toInt(); + m_hasCourseAndSpeed = true; + idx += 7; + return true; + } + + // Station radio details + QRegExp phg("^PHG([0-9])([0-9])([0-9])([0-9])"); + if (phg.indexIn(s) >= 0) + { + // Transmitter power + int powerCode = phg.capturedTexts()[1].toInt(); + int powerMap[] = {0, 1, 4, 9, 16, 25, 36, 49, 64, 81}; + m_powerWatts = powerMap[powerCode]; + + // Antenna height + int heightCode = phg.capturedTexts()[2].toInt(); + m_antennaHeightFt = heightMap[heightCode]; + + // Antenna gain + m_antennaGainDB = phg.capturedTexts()[3].toInt(); + + // Antenna directivity + int directivityCode = phg.capturedTexts()[4].toInt(); + m_antennaDirectivity = directivityMap[directivityCode]; + + m_hasStationDetails = true; + + idx += 7; + return true; + } + + // Radio range + QRegExp rng("^RNG([0-9]{4})"); + if (rng.indexIn(s) >= 0) + { + m_radioRangeMiles = rng.capturedTexts()[1].toInt(); + m_hasRadioRange = true; + idx += 7; + return true; + } + + // Omni-DF strength + QRegExp dfs("^DFS([0-9])([0-9])([0-9])([0-9])"); + if (dfs.indexIn(s) >= 0) + { + // Strength S-points + m_dfStrength = dfs.capturedTexts()[1].toInt(); + + // Antenna height + int heightCode = dfs.capturedTexts()[2].toInt(); + m_dfHeightFt = heightMap[heightCode]; + + // Antenna gain + m_dfGainDB = dfs.capturedTexts()[3].toInt(); + + // Antenna directivity + int directivityCode = dfs.capturedTexts()[4].toInt(); + m_dfAntennaDirectivity = directivityMap[directivityCode]; + + m_hasDf = true; + idx += 7; + return true; + } + + return true; +} + +bool APRSPacket::parseComment(QString& info, int& idx) +{ + int commentLength = info.length() - idx; + if (commentLength > 0) + { + m_comment = info.right(commentLength); + + // Comment can contain altitude anywhere in it. Of the form /A=001234 in feet + QRegExp re("\\/A=([0-9]{6})"); + int pos = re.indexIn(m_comment); + if (pos >= 0) + { + m_altitudeFt = re.capturedTexts()[1].toInt(); + m_hasAltitude = true; + // Strip it out of comment if at start of string + if (pos == 0) + m_comment = m_comment.mid(9); + } + } + + return true; +} + +bool APRSPacket::parseInt(QString& info, int& idx, int chars, int& value, bool& hasValue) +{ + int total = 0; + bool negative = false; + bool noValue = false; + + for (int i = 0; i < chars; i++) + { + if (info[idx].isDigit()) + { + total = total * 10; + total += info[idx].toLatin1() - '0'; + } + else if ((i == 0) && (info[idx] == '-')) + negative = true; + else if ((info[idx] == '.') || (info[idx] == ' ')) + noValue = true; + else + return false; + idx++; + } + if (!noValue) + { + if (negative) + value = -total; + else + value = total; + hasValue = true; + } + else + hasValue = false; + return true; +} + +bool APRSPacket::parseWeather(QString& info, int& idx, bool positionLess) +{ + if (!positionLess) + { + if (!parseInt(info, idx, 3, m_windDirection, m_hasWindDirection)) + return false; + if (info[idx++] != '/') + return false; + if (!parseInt(info, idx, 3, m_windSpeed, m_hasWindSpeed)) + return false; + } + + // Weather data + bool done = false; + while (!done && (idx < info.length())) + { + switch (info[idx++].toLatin1()) + { + case 'c': // Wind direction + if (!parseInt(info, idx, 3, m_windDirection, m_hasWindDirection)) + return false; + break; + case 's': // Wind speed + if (!parseInt(info, idx, 3, m_windSpeed, m_hasWindSpeed)) + return false; + break; + case 'g': // Gust + if (!parseInt(info, idx, 3, m_gust, m_hasGust)) + return false; + break; + case 't': // Temp + if (!parseInt(info, idx, 3, m_temp, m_hasTemp)) + { + qDebug() << "Failed parseing temp: idx" << idx; + return false; + } + break; + case 'r': // Rain last hour + if (!parseInt(info, idx, 3, m_rainLastHr, m_hasRainLastHr)) + return false; + break; + case 'p': // Rain last 24 hours + if (!parseInt(info, idx, 3, m_rainLast24Hrs, m_hasRainLast24Hrs)) + return false; + break; + case 'P': // Rain since midnight + if (!parseInt(info, idx, 3, m_rainSinceMidnight, m_hasRainSinceMidnight)) + return false; + break; + case 'h': // Humidity + if (!parseInt(info, idx, 2, m_humidity, m_hasHumidity)) + return false; + break; + case 'b': // Barometric pressure + if (!parseInt(info, idx, 5, m_barometricPressure, m_hasBarometricPressure)) + return false; + break; + case 'L': // Luminosity <999 + if (!parseInt(info, idx, 3, m_luminosity, m_hasLuminsoity)) + return false; + break; + case 'l': // Luminosity >= 1000 + if (!parseInt(info, idx, 3, m_luminosity, m_hasLuminsoity)) + return false; + m_luminosity += 1000; + break; + case 'S': // Snowfall + if (!parseInt(info, idx, 3, m_snowfallLast24Hrs, m_hasSnowfallLast24Hrs)) + return false; + break; + case '#': // Raw rain counter + if (!parseInt(info, idx, 3, m_rawRainCounter, m_hasRawRainCounter)) + return false; + break; + case 'X': // Radiation level + if (!parseInt(info, idx, 3, m_radiationLevel, m_hasRadiationLevel)) + return false; + break; + case 'F': // Floor water level + if (!parseInt(info, idx, 4, m_floodLevel, m_hasFloodLevel)) + return false; + break; + case 'V': // Battery volts + if (!parseInt(info, idx, 3, m_batteryVolts, m_hasBatteryVolts)) + return false; + break; + default: + done = true; + break; + } + } + if (done) + { + // APRS 1.1 spec says remaining fields are s/w and weather unit type + // But few real-world packets actually seem to conform to the spec + idx--; + int remaining = info.length() - idx; + m_weatherUnitType = info.right(remaining); + idx += remaining; + } + + m_hasWeather = true; + return true; +} + + +bool APRSPacket::parseStorm(QString& info, int& idx) +{ + bool unused; + + if (!parseInt(info, idx, 3, m_stormDirection, unused)) + return false; + if (info[idx++] != '/') + return false; + if (!parseInt(info, idx, 3, m_stormSpeed, unused)) + return false; + if (info[idx++] != '/') + return false; + QString type = info.mid(idx, 2); + idx += 2; + if (type == "TS") + m_stormType = "Tropical storm"; + else if (type == "HC") + m_stormType = "Hurrican"; + else if (type == "TD") + m_stormType = "Tropical depression"; + else + m_stormType = type; + + if (info[idx++] != '/') // Sustained wind speed + return false; + if (!parseInt(info, idx, 3, m_stormSustainedWindSpeed, unused)) + return false; + if (info[idx++] != '^') // Peak wind gusts + return false; + if (!parseInt(info, idx, 3, m_stormPeakWindGusts, unused)) + return false; + if (info[idx++] != '/') // Central pressure + return false; + if (!parseInt(info, idx, 4, m_stormCentralPresure, unused)) + return false; + if (info[idx++] != '>') // Radius hurrican winds + return false; + if (!parseInt(info, idx, 3, m_stormRadiusHurricanWinds, unused)) + return false; + if (info[idx++] != '&') // Radius tropical storm winds + return false; + if (!parseInt(info, idx, 3, m_stormRadiusTropicalStormWinds, unused)) + return false; + m_hasStormData = true; + // Optional field + if (info.length() >= idx + 4) + { + if (info[idx] != '%') // Radius whole gail + return true; + idx++; + if (!parseInt(info, idx, 3, m_stormRadiusWholeGail, m_hasStormRadiusWholeGail)) + return false; + } + return true; +} + +bool APRSPacket::parseObject(QString& info, int& idx) +{ + if (info.length() < idx+10) + return false; + + // Object names are 9 chars + m_objectName = info.mid(idx, 9).trimmed(); + idx += 9; + + if (info[idx] == '*') + m_objectLive = true; + else if (info[idx] == '_') + m_objectKilled = true; + else + return false; + idx++; + + return true; +} + +bool APRSPacket::parseItem(QString& info, int& idx) +{ + if (info.length() < idx+3) + return false; + + // Item names are 3-9 chars long, excluding ! or _ + m_objectName = ""; + int i; + for (i = 0; i < 10; i++) + { + if (info.length() >= idx) + { + QChar c = info[idx]; + if (c == '!' || c == '_') + break; + else + { + m_objectName.append(c); + idx++; + } + } + } + if (i == 11) + return false; + if (info[idx] == '!') + m_objectLive = true; + else if (info[idx] == '_') + m_objectKilled = true; + idx++; + + return true; +} + +bool APRSPacket::parseStatus(QString& info, int& idx) +{ + QString remaining = info.mid(idx); + + QRegExp timestampRE("^([0-9]{6})z"); // DHM timestamp + QRegExp maidenheadRE("^([A-Z]{2}[0-9]{2}[A-Z]{0,2})[/\\\\]."); // Maidenhead grid locator and symbol + + if (timestampRE.indexIn(remaining) >= 0) + { + parseTime(info, idx); + m_status = info.mid(idx); + idx += m_status.length(); + } + else if (maidenheadRE.indexIn(remaining) >= 0) + { + m_maidenhead = maidenheadRE.capturedTexts()[1]; + idx += m_maidenhead.length(); + m_symbolTable = info[idx++].toLatin1(); + m_symbolCode = info[idx++].toLatin1(); + m_hasSymbol = true; + if (info[idx] == ' ') + { + idx++; + m_status = info.mid(idx); + idx += m_status.length(); + } + } + else + { + m_status = remaining; + idx += m_status.length(); + } + m_hasStatus = true; + + // Check for beam heading and power in meteor scatter status reports + int len = m_status.length(); + if (len >= 3) + { + if (m_status[len-3] == '^') + { + bool error = false; + char h = m_status[len-2].toLatin1(); + char p = m_status[len-1].toLatin1(); + + if (isdigit(h)) + m_beamHeading = (h - '0') * 10; + else if (isupper(h)) + m_beamHeading = (h - 'A') * 10 + 100; + else + error = true; + + switch (p) + { + case '1': m_beamPower = 10; break; + case '2': m_beamPower = 40; break; + case '3': m_beamPower = 90; break; + case '4': m_beamPower = 160; break; + case '5': m_beamPower = 250; break; + case '6': m_beamPower = 360; break; + case '7': m_beamPower = 490; break; + case '8': m_beamPower = 640; break; + case '9': m_beamPower = 810; break; + case ':': m_beamPower = 1000; break; + case ';': m_beamPower = 1210; break; + case '<': m_beamPower = 1440; break; + case '=': m_beamPower = 1690; break; + case '>': m_beamPower = 1960; break; + case '?': m_beamPower = 2250; break; + case '@': m_beamPower = 2560; break; + case 'A': m_beamPower = 2890; break; + case 'B': m_beamPower = 3240; break; + case 'C': m_beamPower = 3610; break; + case 'D': m_beamPower = 4000; break; + case 'E': m_beamPower = 4410; break; + case 'F': m_beamPower = 4840; break; + case 'G': m_beamPower = 5290; break; + case 'H': m_beamPower = 5760; break; + case 'I': m_beamPower = 6250; break; + case 'J': m_beamPower = 6760; break; + case 'K': m_beamPower = 7290; break; + default: error = true; break; + } + if (!error) + { + m_hasBeam = true; + m_status = m_status.left(len - 3); + } + } + } + return true; +} + +bool APRSPacket::parseMessage(QString& info, int& idx) +{ + if (info.length() < idx+10) + return false; + + // Addressee is fixed width + if (info[idx+9] != ':') + return false; + m_addressee = info.mid(idx, 9).trimmed(); + idx += 10; + + // Message + m_message = info.mid(idx); + idx += m_message.length(); + + // Check if telemetry parameter/unit names + if (m_message.startsWith("PARM.")) + { + bool done = false; + QString s(""); + int i = 5; + while (!done) + { + if (i >= m_message.length()) + { + if (!s.isEmpty()) + m_telemetryNames.append(s); + done = true; + } + else if (m_message[i] == ',') + { + if (!s.isEmpty()) + m_telemetryNames.append(s); + i++; + s = ""; + } + else + s.append(m_message[i++]); + } + } + else if (m_message.startsWith("UNIT.")) + { + bool done = false; + QString s(""); + int i = 5; + while (!done) + { + if (i >= m_message.length()) + { + if (!s.isEmpty()) + m_telemetryLabels.append(s); + done = true; + } + else if (m_message[i] == ',') + { + if (!s.isEmpty()) + m_telemetryLabels.append(s); + i++; + s = ""; + } + else + s.append(m_message[i++]); + } + } + else if (m_message.startsWith("EQNS.")) + { + bool done = false; + QString s(""); + int i = 5; + QList telemetryCoefficients; + while (!done) + { + if (i >= m_message.length()) + { + if (!s.isEmpty()) + telemetryCoefficients.append(s); + done = true; + } + else if (m_message[i] == ',') + { + if (!s.isEmpty()) + telemetryCoefficients.append(s); + i++; + s = ""; + } + else + s.append(m_message[i++]); + } + m_hasTelemetryCoefficients = 0; + for (int j = 0; j < telemetryCoefficients.length() / 3; j++) + { + m_telemetryCoefficientsA[j] = telemetryCoefficients[j*3].toDouble(); + m_telemetryCoefficientsB[j] = telemetryCoefficients[j*3+1].toDouble(); + m_telemetryCoefficientsC[j] = telemetryCoefficients[j*3+2].toDouble(); + m_hasTelemetryCoefficients++; + } + } + else if (m_message.startsWith("BITS.")) + { + bool done = false; + QString s(""); + int i = 5; + for (int j = 0; j < 8; j++) + { + if (i >= m_message.length()) + m_telemetryBitSense[j] = m_message[i] == '1'; + else + m_telemetryBitSense[j] = true; + i++; + } + m_hasTelemetryBitSense = true; + m_telemetryProjectName = m_message.mid(i); + i += m_telemetryProjectName.length(); + } + else + { + // Check for message number + QRegExp noRE("\\{([0-9]{1,5})$"); + if (noRE.indexIn(m_message) >= 0) + { + m_messageNo = noRE.capturedTexts()[1]; + m_message = m_message.left(m_message.length() - m_messageNo.length() - 1); + } + } + m_hasMessage = true; + + return true; +} + +bool APRSPacket::parseTelemetry(QString& info, int& idx) +{ + if (info[idx] == '#') + { + // Telemetry report + idx++; + if ((info[idx] == 'M') && (info[idx+1] == 'I') && (info[idx+2] == 'C')) + idx += 3; + else if (isdigit(info[idx].toLatin1()) && isdigit(info[idx+1].toLatin1()) && isdigit(info[idx+2].toLatin1())) + { + m_seqNo = info.mid(idx, 3).toInt(); + m_hasSeqNo = true; + idx += 3; + } + else + return false; + + if (info[idx] == ',') + idx++; + parseInt(info, idx, 3, m_a1, m_a1HasValue); + if (info[idx++] != ',') + return false; + parseInt(info, idx, 3, m_a2, m_a2HasValue); + if (info[idx++] != ',') + return false; + parseInt(info, idx, 3, m_a3, m_a3HasValue); + if (info[idx++] != ',') + return false; + parseInt(info, idx, 3, m_a4, m_a4HasValue); + if (info[idx++] != ',') + return false; + parseInt(info, idx, 3, m_a5, m_a5HasValue); + if (info[idx++] != ',') + return false; + for (int i = 0; i < 8; i++) + m_b[i] = info[idx++] == '1'; + m_bHasValue = true; + + m_telemetryComment = info.mid(idx); + idx += m_telemetryComment.length(); + m_hasTelemetry = true; + return true; + } + else + return false; +} diff --git a/sdrbase/util/aprs.h b/sdrbase/util/aprs.h new file mode 100644 index 000000000..9e2d6d3bb --- /dev/null +++ b/sdrbase/util/aprs.h @@ -0,0 +1,445 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2020 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_APRS_H +#define INCLUDE_APRS_H + +#include +#include +#include +#include + +#include "export.h" +#include "ax25.h" +#include "util/units.h" + +struct SDRBASE_API APRSPacket { + QString m_from; + QString m_to; + QString m_via; + QString m_data; // Original ASCII data + + QDateTime m_dateTime; // Date/time of reception / decoding + + // Timestamp (where fields are not transmitted, time of decoding is used) + QDateTime m_timestamp; + bool m_utc; // Whether UTC (true) or local time (false) + bool m_hasTimestamp; + + // Position + float m_latitude; + float m_longitude; + bool m_hasPosition; + + float m_altitudeFt; + bool m_hasAltitude; + + // Symbol + char m_symbolTable; + char m_symbolCode; + bool m_hasSymbol; + QString m_symbolImage; // Image filename for the symbol + + // Course and speed + int m_course; + int m_speed; + bool m_hasCourseAndSpeed; + + // Power, antenna height, gain, directivity + int m_powerWatts; + int m_antennaHeightFt; + int m_antennaGainDB; + QString m_antennaDirectivity; // Omni, or N, NE... + bool m_hasStationDetails; + + // Radio range + int m_radioRangeMiles; + bool m_hasRadioRange; + + // Omni-DF + int m_dfStrength; + int m_dfHeightFt; + int m_dfGainDB; + QString m_dfAntennaDirectivity; + bool m_hasDf; + + QString m_objectName; // Also used for items + bool m_objectLive; + bool m_objectKilled; + + QString m_comment; + + // Weather reports + int m_windDirection; // In degrees + bool m_hasWindDirection; + int m_windSpeed; // In mph + bool m_hasWindSpeed; + int m_gust; // Peak wind speed in last 5 minutes in mph + bool m_hasGust; + int m_temp; // Fahrenheit, can be negative down to -99 + bool m_hasTemp; + int m_rainLastHr; // Hundreths of an inch + bool m_hasRainLastHr; + int m_rainLast24Hrs; + bool m_hasRainLast24Hrs; + int m_rainSinceMidnight; + bool m_hasRainSinceMidnight; + int m_humidity; // % + bool m_hasHumidity; + int m_barometricPressure; // Tenths of millibars / tenths of hPascal + bool m_hasBarometricPressure; + int m_luminosity; // Watts per m^2 + bool m_hasLuminsoity; + int m_snowfallLast24Hrs; // In inches + bool m_hasSnowfallLast24Hrs; + int m_rawRainCounter; + bool m_hasRawRainCounter; + int m_radiationLevel; + bool m_hasRadiationLevel; + int m_floodLevel; // Tenths of a foot. Can be negative + bool m_hasFloodLevel; + int m_batteryVolts; // Tenths of a volt + bool m_hasBatteryVolts; + QString m_weatherUnitType; + bool m_hasWeather; + + int m_stormDirection; + int m_stormSpeed; + QString m_stormType; + int m_stormSustainedWindSpeed; // knots + int m_stormPeakWindGusts; // knots + int m_stormCentralPresure; // millibars/hPascal + int m_stormRadiusHurricanWinds; // nautical miles + int m_stormRadiusTropicalStormWinds;// nautical miles + int m_stormRadiusWholeGail; // nautical miles + bool m_hasStormRadiusWholeGail; + bool m_hasStormData; + + // Status messages + QString m_status; + QString m_maidenhead; + int m_beamHeading; + int m_beamPower; + bool m_hasBeam; + bool m_hasStatus; + + // Messages + QString m_addressee; + QString m_message; + QString m_messageNo; + bool m_hasMessage; + QList m_telemetryNames; + QList m_telemetryLabels; + double m_telemetryCoefficientsA[5]; + double m_telemetryCoefficientsB[5]; + double m_telemetryCoefficientsC[5]; + int m_hasTelemetryCoefficients; + int m_telemetryBitSense[8]; + bool m_hasTelemetryBitSense; + QString m_telemetryProjectName; + + // Telemetry + int m_seqNo; + bool m_hasSeqNo; + int m_a1; + bool m_a1HasValue; + int m_a2; + bool m_a2HasValue; + int m_a3; + bool m_a3HasValue; + int m_a4; + bool m_a4HasValue; + int m_a5; + bool m_a5HasValue; + bool m_b[8]; + bool m_bHasValue; + QString m_telemetryComment; + bool m_hasTelemetry; + + bool decode(AX25Packet packet); + + APRSPacket() : + m_hasTimestamp(false), + m_hasPosition(false), + m_hasAltitude(false), + m_hasSymbol(false), + m_hasCourseAndSpeed(false), + m_hasStationDetails(false), + m_hasRadioRange(false), + m_hasDf(false), + m_objectLive(false), + m_objectKilled(false), + m_hasWindDirection(false), + m_hasWindSpeed(false), + m_hasGust(false), + m_hasTemp(false), + m_hasRainLastHr(false), + m_hasRainLast24Hrs(false), + m_hasRainSinceMidnight(false), + m_hasHumidity(false), + m_hasBarometricPressure(false), + m_hasLuminsoity(false), + m_hasSnowfallLast24Hrs(false), + m_hasRawRainCounter(false), + m_hasRadiationLevel(false), + m_hasFloodLevel(false), + m_hasBatteryVolts(false), + m_hasWeather(false), + m_hasStormRadiusWholeGail(false), + m_hasStormData(false), + m_hasBeam(false), + m_hasStatus(false), + m_hasMessage(false), + m_hasTelemetryCoefficients(0), + m_hasTelemetryBitSense(false), + m_hasSeqNo(false), + m_a1HasValue(false), + m_a2HasValue(false), + m_a3HasValue(false), + m_a4HasValue(false), + m_a5HasValue(false), + m_bHasValue(false), + m_hasTelemetry(false) + { + } + + QString date() + { + if (m_hasTimestamp) + return m_timestamp.date().toString("yyyy/MM/dd"); + else + return QString(""); + } + + QString time() + { + if (m_hasTimestamp) + return m_timestamp.time().toString("hh:mm:ss"); + else + return QString(""); + } + + QString dateTime() + { + return QString("%1 %2").arg(date()).arg(time()); + } + + QString position() + { + return QString("%1,%2").arg(m_latitude).arg(m_longitude); + } + + QString toTNC2(QString igateCallsign) + { + return m_from + ">" + m_to + (m_via.isEmpty() ? "" : ("," + m_via)) + ",qAR," + igateCallsign + ":" + m_data + "\r\n"; + } + + // Convert a TNC2 formatted packet (as sent by APRS-IS Igates) to an AX25 byte array + static QByteArray toByteArray(QString tnc2) + { + QByteArray bytes; + QString tmp = ""; + QString from; + int state = 0; + + for (int i = 0; i < tnc2.length(); i++) + { + if (state == 0) + { + // From + if (tnc2[i] == '>') + { + from = tmp; + tmp = ""; + state = 1; + } + else + tmp.append(tnc2[i]); + } + else if (state == 1) + { + // To + if (tnc2[i] == ':') + { + bytes.append(AX25Packet::encodeAddress(tmp)); + bytes.append(AX25Packet::encodeAddress(from, 1)); + state = 3; + } + else if (tnc2[i] == ',') + { + bytes.append(AX25Packet::encodeAddress(tmp)); + bytes.append(AX25Packet::encodeAddress(from)); + tmp = ""; + state = 2; + } + else + tmp.append(tnc2[i]); + } + else if (state == 2) + { + // Via + if (tnc2[i] == ':') + { + bytes.append(AX25Packet::encodeAddress(tmp, 1)); + state = 3; + } + else if (tnc2[i] == ',') + { + bytes.append(AX25Packet::encodeAddress(tmp)); + tmp = ""; + } + else + tmp.append(tnc2[i]); + } + else if (state == 3) + { + // UI Type and PID + bytes.append(3); + bytes.append(-16); // 0xf0 + // APRS message + bytes.append(tnc2.mid(i).toLatin1().trimmed()); + // CRC + bytes.append((char)0); + bytes.append((char)0); + break; + } + } + + return bytes; + } + + QString toText(bool includeFrom=true, bool includePosition=false, char separator='\n') + { + QStringList text; + + if (!m_objectName.isEmpty()) + { + text.append(QString("%1 (%2)").arg(m_objectName).arg(m_from)); + } + else + { + if (includeFrom) + text.append(m_from); + } + + if (m_hasTimestamp) + { + QStringList time; + time.append(this->date()); + time.append(this->time()); + if (m_utc) + time.append("UTC"); + else + time.append("local"); + text.append(time.join(' ')); + } + + if (includePosition && m_hasPosition) + text.append(QString("Latitude: %1 Longitude: %2").arg(m_latitude).arg(m_longitude)); + if (m_hasAltitude) + text.append(QString("Altitude: %1 ft").arg(m_altitudeFt)); + if (m_hasCourseAndSpeed) + text.append(QString("Course: %1%3 Speed: %2 knts").arg(m_course).arg(m_speed).arg(QChar(0xb0))); + + if (m_hasStationDetails) + text.append(QString("TX Power: %1 Watts Antenna Height: %2 m Gain: %3 dB Direction: %4").arg(m_powerWatts).arg(std::round(Units::feetToMetres(m_antennaHeightFt))).arg(m_antennaGainDB).arg(m_antennaDirectivity)); + if (m_hasRadioRange) + text.append(QString("Range: %1 km").arg(Units::milesToKilometres(m_radioRangeMiles))); + if (m_hasDf) + text.append(QString("DF Strength: S %1 Height: %2 m Gain: %3 dB Direction: %4").arg(m_dfStrength).arg(std::round(Units::feetToMetres(m_dfHeightFt))).arg(m_dfGainDB).arg(m_dfAntennaDirectivity)); + + if (m_hasWeather) + { + QStringList weather, wind, air, rain; + + wind.append(QString("Wind")); + if (m_hasWindDirection) + wind.append(QString("%1%2").arg(m_windDirection).arg(QChar(0xb0))); + if (m_hasWindSpeed) + wind.append(QString("%1 mph").arg(m_windSpeed)); + if (m_hasGust) + wind.append(QString("Gusts %1 mph").arg(m_gust)); + weather.append(wind.join(' ')); + + if (m_hasTemp || m_hasHumidity || m_hasBarometricPressure) + { + air.append("Air"); + if (m_hasTemp) + air.append(QString("Temperature %1C").arg(Units::fahrenheitToCelsius(m_temp), 0, 'f', 1)); + if (m_hasHumidity) + air.append(QString("Humidity %1%").arg(m_humidity)); + if (m_hasBarometricPressure) + air.append(QString("Pressure %1 mbar").arg(m_barometricPressure/10.0)); + weather.append(air.join(' ')); + } + + if (m_hasRainLastHr || m_hasRainLast24Hrs || m_hasRainSinceMidnight) + { + rain.append("Rain"); + if (m_hasRainLastHr) + rain.append(QString("%1 mm last hour").arg(std::round(Units::inchesToMilimetres(m_rainLastHr/100.0)))); + if (m_hasRainLast24Hrs) + rain.append(QString("%1 mm last 24 hours").arg(std::round(Units::inchesToMilimetres(m_rainLast24Hrs/100.0)))); + if (m_hasRainSinceMidnight) + rain.append(QString("%1 mm since midnight").arg(std::round(Units::inchesToMilimetres(m_rainSinceMidnight/100.0)))); + weather.append(rain.join(' ')); + } + + if (!m_weatherUnitType.isEmpty()) + weather.append(m_weatherUnitType); + + text.append(weather.join(separator)); + } + + if (m_hasStormData) + { + QStringList storm; + + storm.append(m_stormType); + + storm.append(QString("Direction: %1%3 Speed: %2").arg(m_stormDirection).arg(m_stormSpeed).arg(QChar(0xb0))); + storm.append(QString("Sustained wind speed: %1 knots Peak wind gusts: %2 knots Central pressure: %3 mbar").arg(m_stormSustainedWindSpeed).arg(m_stormPeakWindGusts).arg(m_stormCentralPresure)); + storm.append(QString("Hurrican winds radius: %1 nm Tropical storm winds radius: %2 nm%3").arg(m_stormRadiusHurricanWinds).arg(m_stormRadiusTropicalStormWinds).arg(m_hasStormRadiusWholeGail ? QString("") : QString(" Whole gail radius: %3 nm").arg(m_stormRadiusWholeGail))); + + text.append(storm.join(separator)); + } + + if (!m_comment.isEmpty()) + text.append(m_comment); + + return text.join(separator); + } + +private: + int charToInt(QString &s, int idx); + bool parseTime(QString& info, int& idx); + bool parseTimeMDHM(QString& info, int& idx); + bool isLatLongChar(QCharRef c); + bool parsePosition(QString& info, int& idx); + bool parseDataExension(QString& info, int& idx); + bool parseComment(QString& info, int& idx); + bool parseInt(QString& info, int& idx, int chars, int& value, bool& hasValue); + bool parseWeather(QString& info, int& idx, bool positionLess); + bool parseStorm(QString& info, int& idx); + bool parseObject(QString& info, int& idx); + bool parseItem(QString& info, int& idx); + bool parseStatus(QString& info, int& idx); + bool parseMessage(QString& info, int& idx); + bool parseTelemetry(QString& info, int& idx); +}; + +#endif // INCLUDE_APRS_H From 579cb8ee680a76bde25641bc4d276a4327b0baa7 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 20:37:28 +0000 Subject: [PATCH 10/21] Remove obsolete code --- plugins/feature/gs232controller/gs232controller.h | 2 -- plugins/feature/gs232controller/gs232controllersettings.h | 1 - 2 files changed, 3 deletions(-) diff --git a/plugins/feature/gs232controller/gs232controller.h b/plugins/feature/gs232controller/gs232controller.h index 3d2c9b811..740aec52b 100644 --- a/plugins/feature/gs232controller/gs232controller.h +++ b/plugins/feature/gs232controller/gs232controller.h @@ -142,7 +142,6 @@ private: QThread m_thread; GS232ControllerWorker *m_worker; GS232ControllerSettings m_settings; - //QHash m_availablePipes; QList m_availablePipes; PipeEndPoint *m_selectedPipe; QTimer m_updatePipesTimer; @@ -158,7 +157,6 @@ private: private slots: void updatePipes(); void networkManagerFinished(QNetworkReply *reply); - //void handlePipeMessageQueue(MessageQueue* messageQueue); }; #endif // INCLUDE_FEATURE_GS232CONTROLLER_H_ diff --git a/plugins/feature/gs232controller/gs232controllersettings.h b/plugins/feature/gs232controller/gs232controllersettings.h index 6eef7b78f..271f11239 100644 --- a/plugins/feature/gs232controller/gs232controllersettings.h +++ b/plugins/feature/gs232controller/gs232controllersettings.h @@ -25,7 +25,6 @@ #include "util/message.h" class Serializable; -class PipeEndPoint; struct GS232ControllerSettings { From 79497e56e4572e179ffe7a2b5208903e76127aa3 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 20:37:48 +0000 Subject: [PATCH 11/21] Add Packet demod image --- doc/img/PacketDemod_plugin.png | Bin 0 -> 7612 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/img/PacketDemod_plugin.png diff --git a/doc/img/PacketDemod_plugin.png b/doc/img/PacketDemod_plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..f0e0ea17b6a2c69dddbfdb88a03b11cc6d4ec670 GIT binary patch literal 7612 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 xe-5u30l2Sn{`GBvIRYRjCpR3ws&xAe+= Date: Wed, 13 Jan 2021 20:51:38 +0000 Subject: [PATCH 12/21] Add StarTracker feature --- plugins/feature/CMakeLists.txt | 2 + plugins/feature/startracker/CMakeLists.txt | 61 ++ plugins/feature/startracker/readme.md | 158 +++ plugins/feature/startracker/startracker.cpp | 502 ++++++++++ plugins/feature/startracker/startracker.h | 139 +++ plugins/feature/startracker/startracker.qrc | 17 + .../startracker/startracker/moon-32.png | Bin 0 -> 1740 bytes .../startracker/moon-first-quarter-32.png | Bin 0 -> 1367 bytes .../startracker/startracker/moon-flat-32.png | Bin 0 -> 1042 bytes .../startracker/startracker/moon-full-32.png | Bin 0 -> 1740 bytes .../startracker/startracker/moon-new-32.png | Bin 0 -> 607 bytes .../startracker/startracker/moon-old-32.png | Bin 0 -> 1354 bytes .../startracker/moon-third-quarter-32.png | Bin 0 -> 1536 bytes .../startracker/moon-waning-crescent-32.png | Bin 0 -> 1354 bytes .../startracker/moon-waning-gibbous-32.png | Bin 0 -> 1986 bytes .../startracker/moon-waxing-crescent-32.png | Bin 0 -> 1313 bytes .../startracker/moon-waxing-gibbous-32.png | Bin 0 -> 1824 bytes .../startracker/startracker/moon-young-32.png | Bin 0 -> 721 bytes .../startracker/startracker/pulsar-32.png | Bin 0 -> 432 bytes .../startracker/startracker/sun-32.png | Bin 0 -> 713 bytes .../startracker/startracker/sun-40.png | Bin 0 -> 1170 bytes .../feature/startracker/startrackergui.cpp | 582 ++++++++++++ plugins/feature/startracker/startrackergui.h | 100 ++ plugins/feature/startracker/startrackergui.ui | 503 ++++++++++ .../feature/startracker/startrackerplugin.cpp | 80 ++ .../feature/startracker/startrackerplugin.h | 49 + .../feature/startracker/startrackerreport.h | 83 ++ .../startracker/startrackersettings.cpp | 166 ++++ .../feature/startracker/startrackersettings.h | 67 ++ .../startracker/startrackersettingsdialog.cpp | 68 ++ .../startracker/startrackersettingsdialog.h | 40 + .../startracker/startrackersettingsdialog.ui | 382 ++++++++ .../startracker/startrackerwebapiadapter.cpp | 52 + .../startracker/startrackerwebapiadapter.h | 50 + .../feature/startracker/startrackerworker.cpp | 551 +++++++++++ .../feature/startracker/startrackerworker.h | 109 +++ sdrbase/CMakeLists.txt | 4 + sdrbase/util/astronomy.cpp | 896 ++++++++++++++++++ sdrbase/util/astronomy.h | 68 ++ 39 files changed, 4729 insertions(+) create mode 100644 plugins/feature/startracker/CMakeLists.txt create mode 100644 plugins/feature/startracker/readme.md create mode 100644 plugins/feature/startracker/startracker.cpp create mode 100644 plugins/feature/startracker/startracker.h create mode 100644 plugins/feature/startracker/startracker.qrc create mode 100644 plugins/feature/startracker/startracker/moon-32.png create mode 100644 plugins/feature/startracker/startracker/moon-first-quarter-32.png create mode 100644 plugins/feature/startracker/startracker/moon-flat-32.png create mode 100644 plugins/feature/startracker/startracker/moon-full-32.png create mode 100644 plugins/feature/startracker/startracker/moon-new-32.png create mode 100644 plugins/feature/startracker/startracker/moon-old-32.png create mode 100644 plugins/feature/startracker/startracker/moon-third-quarter-32.png create mode 100644 plugins/feature/startracker/startracker/moon-waning-crescent-32.png create mode 100644 plugins/feature/startracker/startracker/moon-waning-gibbous-32.png create mode 100644 plugins/feature/startracker/startracker/moon-waxing-crescent-32.png create mode 100644 plugins/feature/startracker/startracker/moon-waxing-gibbous-32.png create mode 100644 plugins/feature/startracker/startracker/moon-young-32.png create mode 100644 plugins/feature/startracker/startracker/pulsar-32.png create mode 100644 plugins/feature/startracker/startracker/sun-32.png create mode 100644 plugins/feature/startracker/startracker/sun-40.png create mode 100644 plugins/feature/startracker/startrackergui.cpp create mode 100644 plugins/feature/startracker/startrackergui.h create mode 100644 plugins/feature/startracker/startrackergui.ui create mode 100644 plugins/feature/startracker/startrackerplugin.cpp create mode 100644 plugins/feature/startracker/startrackerplugin.h create mode 100644 plugins/feature/startracker/startrackerreport.h create mode 100644 plugins/feature/startracker/startrackersettings.cpp create mode 100644 plugins/feature/startracker/startrackersettings.h create mode 100644 plugins/feature/startracker/startrackersettingsdialog.cpp create mode 100644 plugins/feature/startracker/startrackersettingsdialog.h create mode 100644 plugins/feature/startracker/startrackersettingsdialog.ui create mode 100644 plugins/feature/startracker/startrackerwebapiadapter.cpp create mode 100644 plugins/feature/startracker/startrackerwebapiadapter.h create mode 100644 plugins/feature/startracker/startrackerworker.cpp create mode 100644 plugins/feature/startracker/startrackerworker.h create mode 100644 sdrbase/util/astronomy.cpp create mode 100644 sdrbase/util/astronomy.h diff --git a/plugins/feature/CMakeLists.txt b/plugins/feature/CMakeLists.txt index bb427681a..0e1e7d3da 100644 --- a/plugins/feature/CMakeLists.txt +++ b/plugins/feature/CMakeLists.txt @@ -10,6 +10,8 @@ if (Qt5Quick_FOUND AND Qt5QuickWidgets_FOUND AND Qt5Positioning_FOUND) endif() add_subdirectory(afc) +add_subdirectory(aprs) add_subdirectory(demodanalyzer) add_subdirectory(rigctlserver) add_subdirectory(simpleptt) +add_subdirectory(startracker) diff --git a/plugins/feature/startracker/CMakeLists.txt b/plugins/feature/startracker/CMakeLists.txt new file mode 100644 index 000000000..8455f0819 --- /dev/null +++ b/plugins/feature/startracker/CMakeLists.txt @@ -0,0 +1,61 @@ +project(startracker) + +set(startracker_SOURCES + startracker.cpp + startrackersettings.cpp + startrackerplugin.cpp + startrackerworker.cpp + startrackerwebapiadapter.cpp +) + +set(startracker_HEADERS + startracker.h + startrackersettings.h + startrackerplugin.h + startrackerreport.h + startrackerworker.h + startrackerwebapiadapter.h +) + +include_directories( + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client +) + +if(NOT SERVER_MODE) + set(startracker_SOURCES + ${startracker_SOURCES} + startrackergui.cpp + startrackergui.ui + startrackersettingsdialog.cpp + startrackersettingsdialog.ui + startracker.qrc + ) + set(startracker_HEADERS + ${startracker_HEADERS} + startrackergui.h + startrackersettingsdialog.h + ) + + set(TARGET_NAME featurestartracker) + set(TARGET_LIB Qt5::Widgets Qt5::Charts) + set(TARGET_LIB_GUI "sdrgui") + set(INSTALL_FOLDER ${INSTALL_PLUGINS_DIR}) +else() + set(TARGET_NAME featurestartrackersrv) + set(TARGET_LIB "") + set(TARGET_LIB_GUI "") + set(INSTALL_FOLDER ${INSTALL_PLUGINSSRV_DIR}) +endif() + +add_library(${TARGET_NAME} SHARED + ${startracker_SOURCES} +) + +target_link_libraries(${TARGET_NAME} + Qt5::Core + ${TARGET_LIB} + sdrbase + ${TARGET_LIB_GUI} +) + +install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER}) diff --git a/plugins/feature/startracker/readme.md b/plugins/feature/startracker/readme.md new file mode 100644 index 000000000..6d2a3c332 --- /dev/null +++ b/plugins/feature/startracker/readme.md @@ -0,0 +1,158 @@ +

Star Tracker Feature Plugin

+ +

Introduction

+ +The Star Tracker feature plugin is for use in radio astronomy and EME (Earth-Moon-Earth) communication. +It calculates the azimuth and elevation of celestial objects and can send them to the Rotator Controller or other plugins to point an antenna at that object. +The overhead position of the Sun, Moon and selected star can be displayed on the Map Feature. +The plugin can communicate with Stellarium, allowing Stellarium to control SDRangel as though it was a telescope and for the direction the antenna is pointing to be displayed in Stellarium. + +

Interface

+ +![Star Tracker feature plugin GUI](../../../doc/img/StarTracker_plugin.png) + +

1: Start/Stop plugin

+ +This button starts or stops the plugin. The plugin will only calculate azimuth and elevation or communicate with Stellarium when started. + +

2: Find target on map

+ +Pressing this button centres the Map Feature (if open) on the current target. + +

3: Set latitude and longitude from My Position/h3> + +When clicked, it sets the latitude, longitude and height fields to the values from SDRangel's My Position preferences. + +

4: Show settings dialog

+ +Pressing this button displays a settings dialog, that allows you to set: + +* The epoch used when entering RA and Dec. This can be either J2000 (which is used for most catalogues) or JNOW which is the current date and time. +* The units used for the display of the calculated azimuth and elevation. This can be either degrees, minutes and seconds or decimal degrees. +* Whether to correct for atmospheric refaction. You can choose either no correction, the Saemundsson algorithm, typically used for optical astronomy or the more accurate Positional Astronomy Library calculation, which can be used for >250MHz radio frequencies or light. Note that there is only a very minor difference between the two. +* Air pressure in millibars for use in refraction correction. +* Air temperature in degrees Celsius for use in refraction correction. +* Relative humidity in % for use in refraction correction. +* Height above sea level in metres for use in refraction correction. +* Temperature lapse rate in Kelvin per kilometer for use in refraction correction. +* Radio frequency being observed in MHz for use in refraction correction. +* The update period in seconds, which controls how frequently azimuth and elevation are re-calculated. +* The IP port number the Stellarium server listens on. +* Whether to start a Stellarium telescope server. +* Whether to draw the Sun in the map. +* Whether to draw the Moon on the map. +* Whether to draw the target star (or galaxy) on the map. + +

5: Latitude/h3> + +Specifies the latitude in decimal degrees of the observation point (antenna location). + +

6: Longitude

+ +Specifies the longitude in decimal degrees of the observation point (antenna location). + +

7: Time

+ +Select the date and time at which the position of the target should be calculated. Select either Now, for the current time, or Custom to manually enter a date and time. + +

8: Target

+ +Select a target object to track from the list. +To manually enter RA (right ascension) and Dec (declination) of an unlisted target, select Custom. +To allow Stellarium to set the RA and Dec, select Custom, and ensure the Stellarium Server option is checked in the Star Tracker Settings dialog. + +| Target | Type | Details | Flux density (Jy) | +|------------------|-------------------|------------------------------------------------|--------------------------------------------- +| Sun | Star | Targets our Sun | 10k-10M (50MHz), 500k-10M (1.4GHz) | +| Moon | Moon | Targets our Moon | 2 (50MHz), 1000 (1.4GHz) | +| PSR B0329+54 | Pulsar | Strongest in Northern hemisphere (J0332+5434) | 1.8 (50MHz), 1.5 (400MHz), 0.2 (1.4GHz) | +| PSR B0833-45 | Pulsar | Strongest in Southern hemisphere (J0835-4510) | 5.4 (150MHz), 5.0 (400MHz), 1.0 (1.4GHz) | +| Sagittarius A | Galatic centre | First detected source of extrasolar radio | ~0.5 (<1GHz) for Sgr A* | +| Cassiopeia A | Supernova | Brightest extrasolar radio source | 27k (50MHz), 10k (150MHz), 1768 (1.4GHz) | +| Cygnus A | Galaxy | First radio galaxy | 22k (50MHz), 11k (150MHz), 1579 (1.4GHz) | +| Taurus A (M1) | Supernova/Pulsar | Crab Nebular | 2008 (50MHz), 1368 (150MHz), 829 (1.4GHz) | +| Virgo A (M87) | Galaxy | | 2635 (50MHz), 1209 (150MHz), 212 (1.4GHz) | +| Custom | | Manually enter RA and Dec | | + +References: + +* ATNF Pulsar Catalogue - https://www.atnf.csiro.au/research/pulsar/psrcat/ +* Cassiopeia A, Cygnus A, Taurus A, and Virgo A at ultra-low radio frequencies - https://research.chalmers.se/publication/516438/file/516438_Fulltext.pdf +* Repeating Jansky - https://www.gb.nrao.edu/~fghigo/JanskyAntenna/RepeatingJansky_memo10.pdf + +

9: Right Ascension

+ +When target is set to Custom, you can specify the right ascension in hours of the target object. This can be specified as a decimal (E.g. 12.23, from 0 to 24) or in hours, minutes and seconds (E.g. 12h05m10.2s or 12 05 10.2). Whether the epoch is J2000 or JNOW can be set in the Star Tracker Settings dialog. + +

10: Declination

+ +When target is set to Custom, you can specify the declination in degrees of the target object. This can be specified as a decimal (E.g. 34.6, from -90.0 to 90.0) or in degrees, minutes and seconds (E.g. 34d12m5.6s, 34d12'5.6" 34 12 5.6). Whether the epoch is J2000 or JNOW can be set in the Star Tracker Settings dialog. + +

11: Azimuth

+ +Displays the calculated azimuth (angle in degrees, clockwise from North) to the object. + +

12: Elevation

+ +Displays the calculated elevation (angle in degrees - 0 to horizon and 90 to zenith) to the object. + +

13: Elevation vs Time Plot

+ +In order to assit in determining whether and when observations of the target object may be possible, an elevation vs time plot is drawn for the 24 hours encompassing the selected date and time. +Some objects may not be visible from a particular latitude for the specified time, in which case, the grahp title will indicate the object is not visible on that particular date. + +

Map

+ +The Star Tracker feature can send the overhead position of the Sun, Moon and target Star to the Map. These can be enabled individually in the settings dialog. The Moon should be displayed with an approximate phase. Stars (or galaxies) are displayed as an image of a pulsar. + +When using the Find feature in the Map GUI, you can search for "Sun", "Moon" or "Star". + +

Stellarium Interface

+ +In Star Tracker: + +* Set target to Custom +* Press Show settings dialog and ensure Stellarium server is checked +* Press Start + +Then in Stellarium: + +* Enable Telescope Control plugin and restart +* Press the telescope button in the main toolbar +* Press "Configure telescopes..." +* Press "Add a new telescope" +* Set "Telescope controlled by" to "External softare or a remote computer" +* Set "Name" to "SDRangel" (Optional) +* Set "Coordinate system" to "J2000 (default)" +* Press OK +* Press Connect +* Enter Right Ascension/Declination or press "Current object" to get RA/Dec of currently selected object +* Press "Slew" to send the RA/Dec to Star Tracker + +Star Tracker will continually send the RA/Dec of its target to Stellarium and this should be displayed in Stellarium with a crosshair/reticle and the label SDRangel (or whatever name you entered for the telescope). + +To see the rough field of view of your antenna, open the Ocular configuration window and under Eyepieces, add a new eyepiece with name SDRangel. +Set aFOV to the half-power beam width of your antenna, focal length to 100 and field stop to 0. +Then select the SDRangel telescope reticle and press Ocular view. + +![StarTracker map](../../../doc/img/StarTracker_map.png) + +

Attribution

+ +Icons are by Adnen Kadri and Erik Madsen, from the Noun Project Noun Project: https://thenounproject.com/ + +Icons are by Freepik from Flaticon https://www.flaticon.com/ + +

API

+ +Full details of the API can be found in the Swagger documentation. Here is a quick example of how to set the target to the Moon at the current time: + + curl -X PATCH "http://127.0.0.1:8091/sdrangel/featureset/0/feature/0/settings" -d '{"featureType": "StarTracker", "StarTrackerSettings": { "target": "Moon", "dateTime": "" }}' + +Or to a custom RA and declination on a given date and time: + + curl -X PATCH "http://127.0.0.1:8091/sdrangel/featureset/0/feature/0/settings" -d '{"featureType": "StarTracker", "StarTrackerSettings": { "target": "Custom", "ra": "03h32m59.35s", "dec": "54d34m45.05s", "dateTime": "1921-04-15T10:17:05" }}' + +To start tracking: + + curl -X POST "http://127.0.0.1:8091/sdrangel/featureset/0/feature/0/run" diff --git a/plugins/feature/startracker/startracker.cpp b/plugins/feature/startracker/startracker.cpp new file mode 100644 index 000000000..c817c99ae --- /dev/null +++ b/plugins/feature/startracker/startracker.cpp @@ -0,0 +1,502 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include + +#include "SWGFeatureSettings.h" +#include "SWGFeatureReport.h" +#include "SWGFeatureActions.h" +#include "SWGSimplePTTReport.h" +#include "SWGDeviceState.h" + +#include "dsp/dspengine.h" + +#include "startrackerworker.h" +#include "startracker.h" + +MESSAGE_CLASS_DEFINITION(StarTracker::MsgConfigureStarTracker, Message) +MESSAGE_CLASS_DEFINITION(StarTracker::MsgStartStop, Message) + +const char* const StarTracker::m_featureIdURI = "sdrangel.feature.startracker"; +const char* const StarTracker::m_featureId = "StarTracker"; + +StarTracker::StarTracker(WebAPIAdapterInterface *webAPIAdapterInterface) : + Feature(m_featureIdURI, webAPIAdapterInterface), + m_ptt(false) +{ + qDebug("StarTracker::StarTracker: webAPIAdapterInterface: %p", webAPIAdapterInterface); + setObjectName(m_featureId); + m_worker = new StarTrackerWorker(this, webAPIAdapterInterface); + m_state = StIdle; + m_errorMessage = "StarTracker error"; +} + +StarTracker::~StarTracker() +{ + if (m_worker->isRunning()) { + stop(); + } + + delete m_worker; +} + +void StarTracker::start() +{ + qDebug("StarTracker::start"); + + m_worker->reset(); + m_worker->setMessageQueueToFeature(getInputMessageQueue()); + m_worker->setMessageQueueToGUI(getMessageQueueToGUI()); + bool ok = m_worker->startWork(); + m_state = ok ? StRunning : StError; + m_thread.start(); + + StarTrackerWorker::MsgConfigureStarTrackerWorker *msg = StarTrackerWorker::MsgConfigureStarTrackerWorker::create(m_settings, true); + m_worker->getInputMessageQueue()->push(msg); +} + +void StarTracker::stop() +{ + qDebug("StarTracker::stop"); + m_worker->stopWork(); + m_state = StIdle; + m_thread.quit(); + m_thread.wait(); +} + +bool StarTracker::handleMessage(const Message& cmd) +{ + if (MsgConfigureStarTracker::match(cmd)) + { + MsgConfigureStarTracker& cfg = (MsgConfigureStarTracker&) cmd; + qDebug() << "StarTracker::handleMessage: MsgConfigureStarTracker"; + applySettings(cfg.getSettings(), cfg.getForce()); + + return true; + } + else if (MsgStartStop::match(cmd)) + { + MsgStartStop& cfg = (MsgStartStop&) cmd; + qDebug() << "StarTracker::handleMessage: MsgStartStop: start:" << cfg.getStartStop(); + + if (cfg.getStartStop()) { + start(); + } else { + stop(); + } + + return true; + } + else + { + return false; + } +} + +QByteArray StarTracker::serialize() const +{ + return m_settings.serialize(); +} + +bool StarTracker::deserialize(const QByteArray& data) +{ + if (m_settings.deserialize(data)) + { + MsgConfigureStarTracker *msg = MsgConfigureStarTracker::create(m_settings, true); + m_inputMessageQueue.push(msg); + return true; + } + else + { + m_settings.resetToDefaults(); + MsgConfigureStarTracker *msg = MsgConfigureStarTracker::create(m_settings, true); + m_inputMessageQueue.push(msg); + return false; + } +} + +void StarTracker::applySettings(const StarTrackerSettings& settings, bool force) +{ + qDebug() << "StarTracker::applySettings:" + << " m_target: " << settings.m_target + << " m_ra: " << settings.m_ra + << " m_dec: " << settings.m_dec + << " m_latitude: " << settings.m_latitude + << " m_longitude: " << settings.m_longitude + << " m_serverPort: " << settings.m_serverPort + << " m_enableServer: " << settings.m_enableServer + << " m_title: " << settings.m_title + << " m_rgbColor: " << settings.m_rgbColor + << " m_useReverseAPI: " << settings.m_useReverseAPI + << " m_reverseAPIAddress: " << settings.m_reverseAPIAddress + << " m_reverseAPIPort: " << settings.m_reverseAPIPort + << " m_reverseAPIFeatureSetIndex: " << settings.m_reverseAPIFeatureSetIndex + << " m_reverseAPIFeatureIndex: " << settings.m_reverseAPIFeatureIndex + << " force: " << force; + + QList reverseAPIKeys; + + if ((m_settings.m_target != settings.m_target) || force) { + reverseAPIKeys.append("target"); + } + if ((m_settings.m_ra != settings.m_ra) || force) { + reverseAPIKeys.append("ra"); + } + if ((m_settings.m_dec != settings.m_dec) || force) { + reverseAPIKeys.append("dec"); + } + if ((m_settings.m_latitude != settings.m_latitude) || force) { + reverseAPIKeys.append("latitude"); + } + if ((m_settings.m_longitude != settings.m_longitude) || force) { + reverseAPIKeys.append("longitude"); + } + if ((m_settings.m_dateTime != settings.m_dateTime) || force) { + reverseAPIKeys.append("dateTime"); + } + if ((m_settings.m_refraction != settings.m_refraction) || force) { + reverseAPIKeys.append("refraction"); + } + if ((m_settings.m_pressure != settings.m_pressure) || force) { + reverseAPIKeys.append("pressure"); + } + if ((m_settings.m_temperature != settings.m_temperature) || force) { + reverseAPIKeys.append("temperature"); + } + if ((m_settings.m_humidity != settings.m_humidity) || force) { + reverseAPIKeys.append("humidity"); + } + if ((m_settings.m_heightAboveSeaLevel != settings.m_heightAboveSeaLevel) || force) { + reverseAPIKeys.append("heightAboveSeaLevel"); + } + if ((m_settings.m_temperatureLapseRate != settings.m_temperatureLapseRate) || force) { + reverseAPIKeys.append("temperatureLapseRate"); + } + if ((m_settings.m_frequency != settings.m_frequency) || force) { + reverseAPIKeys.append("frequency"); + } + if ((m_settings.m_serverPort != settings.m_serverPort) || force) { + reverseAPIKeys.append("stellariumPort"); + } + if ((m_settings.m_enableServer != settings.m_enableServer) || force) { + reverseAPIKeys.append("stellariumServerEnabled"); + } + if ((m_settings.m_updatePeriod != settings.m_updatePeriod) || force) { + reverseAPIKeys.append("updatePeriod"); + } + if ((m_settings.m_jnow != settings.m_jnow) || force) { + reverseAPIKeys.append("epoch"); + } + if ((m_settings.m_title != settings.m_title) || force) { + reverseAPIKeys.append("title"); + } + if ((m_settings.m_rgbColor != settings.m_rgbColor) || force) { + reverseAPIKeys.append("rgbColor"); + } + + StarTrackerWorker::MsgConfigureStarTrackerWorker *msg = StarTrackerWorker::MsgConfigureStarTrackerWorker::create( + settings, force + ); + m_worker->getInputMessageQueue()->push(msg); + + if (settings.m_useReverseAPI) + { + bool fullUpdate = ((m_settings.m_useReverseAPI != settings.m_useReverseAPI) && settings.m_useReverseAPI) || + (m_settings.m_reverseAPIAddress != settings.m_reverseAPIAddress) || + (m_settings.m_reverseAPIPort != settings.m_reverseAPIPort) || + (m_settings.m_reverseAPIFeatureSetIndex != settings.m_reverseAPIFeatureSetIndex) || + (m_settings.m_reverseAPIFeatureIndex != settings.m_reverseAPIFeatureIndex); + webapiReverseSendSettings(reverseAPIKeys, settings, fullUpdate || force); + } + + m_settings = settings; +} + +int StarTracker::webapiRun(bool run, + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage) +{ + (void) errorMessage; + getFeatureStateStr(*response.getState()); + MsgStartStop *msg = MsgStartStop::create(run); + getInputMessageQueue()->push(msg); + return 202; +} + +int StarTracker::webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setStarTrackerSettings(new SWGSDRangel::SWGStarTrackerSettings()); + response.getStarTrackerSettings()->init(); + webapiFormatFeatureSettings(response, m_settings); + return 200; +} + +int StarTracker::webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + StarTrackerSettings settings = m_settings; + webapiUpdateFeatureSettings(settings, featureSettingsKeys, response); + + MsgConfigureStarTracker *msg = MsgConfigureStarTracker::create(settings, force); + m_inputMessageQueue.push(msg); + + qDebug("StarTracker::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue); + if (m_guiMessageQueue) // forward to GUI if any + { + MsgConfigureStarTracker *msgToGUI = MsgConfigureStarTracker::create(settings, force); + m_guiMessageQueue->push(msgToGUI); + } + + webapiFormatFeatureSettings(response, settings); + return 200; +} + +void StarTracker::webapiFormatFeatureSettings( + SWGSDRangel::SWGFeatureSettings& response, + const StarTrackerSettings& settings) +{ + response.getStarTrackerSettings()->setTarget(new QString(settings.m_target)); + response.getStarTrackerSettings()->setRa(new QString(settings.m_ra)); + response.getStarTrackerSettings()->setDec(new QString(settings.m_dec)); + response.getStarTrackerSettings()->setLatitude(settings.m_latitude); + response.getStarTrackerSettings()->setLongitude(settings.m_longitude); + response.getStarTrackerSettings()->setDateTime(new QString(settings.m_dateTime)); + response.getStarTrackerSettings()->setRefraction(new QString(settings.m_refraction)); + response.getStarTrackerSettings()->setPressure(settings.m_pressure); + response.getStarTrackerSettings()->setTemperature(settings.m_temperature); + response.getStarTrackerSettings()->setHumidity(settings.m_humidity); + response.getStarTrackerSettings()->setHeightAboveSeaLevel(settings.m_heightAboveSeaLevel); + response.getStarTrackerSettings()->setTemperatureLapseRate(settings.m_temperatureLapseRate); + response.getStarTrackerSettings()->setFrequency(settings.m_frequency/1000000.0); + response.getStarTrackerSettings()->setStellariumServerEnabled(settings.m_enableServer ? 1 : 0); + response.getStarTrackerSettings()->setStellariumPort(settings.m_serverPort); + response.getStarTrackerSettings()->setUpdatePeriod(settings.m_updatePeriod); + response.getStarTrackerSettings()->setEpoch(settings.m_jnow ? new QString("JNOW") : new QString("J2000")); + + if (response.getStarTrackerSettings()->getTitle()) { + *response.getStarTrackerSettings()->getTitle() = settings.m_title; + } else { + response.getStarTrackerSettings()->setTitle(new QString(settings.m_title)); + } + + response.getStarTrackerSettings()->setRgbColor(settings.m_rgbColor); + response.getStarTrackerSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); + + if (response.getStarTrackerSettings()->getReverseApiAddress()) { + *response.getStarTrackerSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; + } else { + response.getStarTrackerSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); + } + + response.getStarTrackerSettings()->setReverseApiPort(settings.m_reverseAPIPort); + response.getStarTrackerSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIFeatureSetIndex); + response.getStarTrackerSettings()->setReverseApiChannelIndex(settings.m_reverseAPIFeatureIndex); +} + +void StarTracker::webapiUpdateFeatureSettings( + StarTrackerSettings& settings, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response) +{ + if (featureSettingsKeys.contains("target")) { + settings.m_target = *response.getStarTrackerSettings()->getTarget(); + } + if (featureSettingsKeys.contains("ra")) { + settings.m_ra = *response.getStarTrackerSettings()->getRa(); + } + if (featureSettingsKeys.contains("dec")) { + settings.m_dec = *response.getStarTrackerSettings()->getDec(); + } + if (featureSettingsKeys.contains("latitude")) { + settings.m_latitude = response.getStarTrackerSettings()->getLatitude(); + } + if (featureSettingsKeys.contains("longitude")) { + settings.m_longitude = response.getStarTrackerSettings()->getLongitude(); + } + if (featureSettingsKeys.contains("dateTime")) { + settings.m_dateTime = *response.getStarTrackerSettings()->getDateTime(); + } + if (featureSettingsKeys.contains("pressure")) { + settings.m_pressure = response.getStarTrackerSettings()->getPressure(); + } + if (featureSettingsKeys.contains("temperature")) { + settings.m_temperature = response.getStarTrackerSettings()->getTemperature(); + } + if (featureSettingsKeys.contains("humidity")) { + settings.m_humidity = response.getStarTrackerSettings()->getHumidity(); + } + if (featureSettingsKeys.contains("heightAboveSeaLevel")) { + settings.m_heightAboveSeaLevel = response.getStarTrackerSettings()->getHeightAboveSeaLevel(); + } + if (featureSettingsKeys.contains("temperatureLapseRate")) { + settings.m_temperatureLapseRate = response.getStarTrackerSettings()->getTemperatureLapseRate(); + } + if (featureSettingsKeys.contains("frequency")) { + settings.m_frequency = response.getStarTrackerSettings()->getFrequency() * 100000.0; + } + if (featureSettingsKeys.contains("stellariumServerEnabled")) { + settings.m_enableServer = response.getStarTrackerSettings()->getStellariumServerEnabled() == 1; + } + if (featureSettingsKeys.contains("stellariumPort")) { + settings.m_serverPort = response.getStarTrackerSettings()->getStellariumPort(); + } + if (featureSettingsKeys.contains("updatePeriod")) { + settings.m_updatePeriod = response.getStarTrackerSettings()->getUpdatePeriod(); + } + if (featureSettingsKeys.contains("epoch")) { + settings.m_jnow = *response.getStarTrackerSettings()->getEpoch() == "JNOW"; + } + if (featureSettingsKeys.contains("title")) { + settings.m_title = *response.getStarTrackerSettings()->getTitle(); + } + if (featureSettingsKeys.contains("rgbColor")) { + settings.m_rgbColor = response.getStarTrackerSettings()->getRgbColor(); + } + if (featureSettingsKeys.contains("useReverseAPI")) { + settings.m_useReverseAPI = response.getStarTrackerSettings()->getUseReverseApi() != 0; + } + if (featureSettingsKeys.contains("reverseAPIAddress")) { + settings.m_reverseAPIAddress = *response.getStarTrackerSettings()->getReverseApiAddress(); + } + if (featureSettingsKeys.contains("reverseAPIPort")) { + settings.m_reverseAPIPort = response.getStarTrackerSettings()->getReverseApiPort(); + } + if (featureSettingsKeys.contains("reverseAPIDeviceIndex")) { + settings.m_reverseAPIFeatureSetIndex = response.getStarTrackerSettings()->getReverseApiDeviceIndex(); + } + if (featureSettingsKeys.contains("reverseAPIChannelIndex")) { + settings.m_reverseAPIFeatureIndex = response.getStarTrackerSettings()->getReverseApiChannelIndex(); + } +} + +void StarTracker::webapiReverseSendSettings(QList& featureSettingsKeys, const StarTrackerSettings& settings, bool force) +{ + SWGSDRangel::SWGFeatureSettings *swgFeatureSettings = new SWGSDRangel::SWGFeatureSettings(); + // swgFeatureSettings->setOriginatorFeatureIndex(getIndexInDeviceSet()); + // swgFeatureSettings->setOriginatorFeatureSetIndex(getDeviceSetIndex()); + swgFeatureSettings->setFeatureType(new QString("StarTracker")); + swgFeatureSettings->setStarTrackerSettings(new SWGSDRangel::SWGStarTrackerSettings()); + SWGSDRangel::SWGStarTrackerSettings *swgStarTrackerSettings = swgFeatureSettings->getStarTrackerSettings(); + + // transfer data that has been modified. When force is on transfer all data except reverse API data + + if (featureSettingsKeys.contains("target") || force) { + swgStarTrackerSettings->setTarget(new QString(settings.m_target)); + } + if (featureSettingsKeys.contains("ra") || force) { + swgStarTrackerSettings->setRa(new QString(settings.m_ra)); + } + if (featureSettingsKeys.contains("dec") || force) { + swgStarTrackerSettings->setDec(new QString(settings.m_dec)); + } + if (featureSettingsKeys.contains("latitude") || force) { + swgStarTrackerSettings->setLatitude(settings.m_latitude); + } + if (featureSettingsKeys.contains("longitude") || force) { + swgStarTrackerSettings->setLongitude(settings.m_longitude); + } + if (featureSettingsKeys.contains("dateTime") || force) { + swgStarTrackerSettings->setDateTime(new QString(settings.m_dateTime)); + } + if (featureSettingsKeys.contains("pressure") || force) { + swgStarTrackerSettings->setPressure(settings.m_pressure); + } + if (featureSettingsKeys.contains("temperature") || force) { + swgStarTrackerSettings->setTemperature(settings.m_temperature); + } + if (featureSettingsKeys.contains("humidity") || force) { + swgStarTrackerSettings->setHumidity(settings.m_humidity); + } + if (featureSettingsKeys.contains("heightAboveSeaLevel") || force) { + swgStarTrackerSettings->setHeightAboveSeaLevel(settings.m_heightAboveSeaLevel); + } + if (featureSettingsKeys.contains("temperatureLapseRate") || force) { + swgStarTrackerSettings->setTemperatureLapseRate(settings.m_temperatureLapseRate); + } + if (featureSettingsKeys.contains("frequency") || force) { + swgStarTrackerSettings->setFrequency(settings.m_frequency / 1000000.0); + } + if (featureSettingsKeys.contains("stellariumServerEnabled") || force) { + swgStarTrackerSettings->setStellariumServerEnabled(settings.m_enableServer ? 1 : 0); + } + if (featureSettingsKeys.contains("stellariumPort") || force) { + swgStarTrackerSettings->setStellariumPort(settings.m_serverPort); + } + if (featureSettingsKeys.contains("updatePeriod") || force) { + swgStarTrackerSettings->setUpdatePeriod(settings.m_updatePeriod); + } + if (featureSettingsKeys.contains("epoch") || force) { + swgStarTrackerSettings->setEpoch(settings.m_jnow ? new QString("JNOW") : new QString("J2000")); + } + if (featureSettingsKeys.contains("title") || force) { + swgStarTrackerSettings->setTitle(new QString(settings.m_title)); + } + if (featureSettingsKeys.contains("rgbColor") || force) { + swgStarTrackerSettings->setRgbColor(settings.m_rgbColor); + } + + QString channelSettingsURL = QString("http://%1:%2/sdrangel/featureset/%3/feature/%4/settings") + .arg(settings.m_reverseAPIAddress) + .arg(settings.m_reverseAPIPort) + .arg(settings.m_reverseAPIFeatureSetIndex) + .arg(settings.m_reverseAPIFeatureIndex); + m_networkRequest.setUrl(QUrl(channelSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer = new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgFeatureSettings->asJson().toUtf8()); + buffer->seek(0); + + // Always use PATCH to avoid passing reverse API settings + QNetworkReply *reply = m_networkManager->sendCustomRequest(m_networkRequest, "PATCH", buffer); + buffer->setParent(reply); + + delete swgFeatureSettings; +} + +void StarTracker::networkManagerFinished(QNetworkReply *reply) +{ + QNetworkReply::NetworkError replyError = reply->error(); + + if (replyError) + { + qWarning() << "StarTracker::networkManagerFinished:" + << " error(" << (int) replyError + << "): " << replyError + << ": " << reply->errorString(); + } + else + { + QString answer = reply->readAll(); + answer.chop(1); // remove last \n + qDebug("StarTracker::networkManagerFinished: reply:\n%s", answer.toStdString().c_str()); + } + + reply->deleteLater(); +} diff --git a/plugins/feature/startracker/startracker.h b/plugins/feature/startracker/startracker.h new file mode 100644 index 000000000..4ad767403 --- /dev/null +++ b/plugins/feature/startracker/startracker.h @@ -0,0 +1,139 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_STARTRACKER_H_ +#define INCLUDE_FEATURE_STARTRACKER_H_ + +#include +#include + +#include "feature/feature.h" +#include "util/message.h" + +#include "startrackersettings.h" + +class WebAPIAdapterInterface; +class StarTrackerWorker; +class QNetworkAccessManager; +class QNetworkReply; + +namespace SWGSDRangel { + class SWGDeviceState; +} + +class StarTracker : public Feature +{ + Q_OBJECT +public: + class MsgConfigureStarTracker : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const StarTrackerSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } + + static MsgConfigureStarTracker* create(const StarTrackerSettings& settings, bool force) { + return new MsgConfigureStarTracker(settings, force); + } + + private: + StarTrackerSettings m_settings; + bool m_force; + + MsgConfigureStarTracker(const StarTrackerSettings& settings, bool force) : + Message(), + m_settings(settings), + m_force(force) + { } + }; + + class MsgStartStop : public Message { + MESSAGE_CLASS_DECLARATION + + public: + bool getStartStop() const { return m_startStop; } + + static MsgStartStop* create(bool startStop) { + return new MsgStartStop(startStop); + } + + protected: + bool m_startStop; + + MsgStartStop(bool startStop) : + Message(), + m_startStop(startStop) + { } + }; + + StarTracker(WebAPIAdapterInterface *webAPIAdapterInterface); + virtual ~StarTracker(); + virtual void destroy() { delete this; } + virtual bool handleMessage(const Message& cmd); + + virtual void getIdentifier(QString& id) const { id = objectName(); } + virtual void getTitle(QString& title) const { title = m_settings.m_title; } + + virtual QByteArray serialize() const; + virtual bool deserialize(const QByteArray& data); + + virtual int webapiRun(bool run, + SWGSDRangel::SWGDeviceState& response, + QString& errorMessage); + + virtual int webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + static void webapiFormatFeatureSettings( + SWGSDRangel::SWGFeatureSettings& response, + const StarTrackerSettings& settings); + + static void webapiUpdateFeatureSettings( + StarTrackerSettings& settings, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response); + + static const char* const m_featureIdURI; + static const char* const m_featureId; + +private: + QThread m_thread; + StarTrackerWorker *m_worker; + StarTrackerSettings m_settings; + bool m_ptt; + + QNetworkAccessManager *m_networkManager; + QNetworkRequest m_networkRequest; + + void start(); + void stop(); + void applySettings(const StarTrackerSettings& settings, bool force = false); + void webapiReverseSendSettings(QList& featureSettingsKeys, const StarTrackerSettings& settings, bool force); + +private slots: + void networkManagerFinished(QNetworkReply *reply); +}; + +#endif // INCLUDE_FEATURE_STARTRACKER_H_ diff --git a/plugins/feature/startracker/startracker.qrc b/plugins/feature/startracker/startracker.qrc new file mode 100644 index 000000000..efe342020 --- /dev/null +++ b/plugins/feature/startracker/startracker.qrc @@ -0,0 +1,17 @@ + + + startracker/moon-flat-32.png + startracker/moon-full-32.png + startracker/moon-new-32.png + startracker/moon-old-32.png + startracker/moon-waning-crescent-32.png + startracker/moon-waning-gibbous-32.png + startracker/moon-third-quarter-32.png + startracker/moon-waxing-crescent-32.png + startracker/moon-waxing-gibbous-32.png + startracker/moon-first-quarter-32.png + startracker/moon-young-32.png + startracker/pulsar-32.png + startracker/sun-40.png + + diff --git a/plugins/feature/startracker/startracker/moon-32.png b/plugins/feature/startracker/startracker/moon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd45cb648454d5138629a410c2b0b5925854a6b GIT binary patch literal 1740 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 M07*qoM6N<$g5EaZ#{d8T literal 0 HcmV?d00001 diff --git a/plugins/feature/startracker/startracker/moon-full-32.png b/plugins/feature/startracker/startracker/moon-full-32.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd45cb648454d5138629a410c2b0b5925854a6b GIT binary patch literal 1740 zcmV;-1~d7IP)&YhX}ku=c+DQ;eZg)Rzq;m+!&Vx#^6 z;!<%T2%;b^EQsJjq%G)1L=fE;YZocfiukdR##I|AG$BPORNPceU&(u!&wEFHC+7?= zHMPNk;m*gM^YJ^s^SgIU(=@c7imhNr4ROF_kjUiSYG~wh+d1LsN6F$2z(C|a3)DYd7e{Q6ghO3_k}VS(fo! z1el~L#c_;z&RYBR>eZ_!_l3ZP<>ennQMSEJp=oG)dz+^EeZu@GiWmuo)>^(s5I_wFf-uH>dgREFH~tmC%F4>i&bcpx z_Xfn8nVF&CojX)WJ(1bW>?|8bSw>r1OgP*#Cwe^&00-vdT9Hs62nfNXY5LUR!-p^9 znbSy;B>5tWBIAu=c=1tQ6jbCnzgLLy96_NpKm&pG`+a_g18{>M2m;UGlz9;H174e))@}fIRevXS|(#m4*?kMSDqm7kU+*6fSAGwZ7o*8s@hdsJyaj` z#JkDTi8A7uaflv_=DtqTR_ietCzKAN1QkRZYE35(t*r(I8^hs{15tre=NhPrlT)ab zsc1Fijgmm;aexzEq!{y2DrA9cZ~`L?;~7qMhItrKI(6zLIqfUP`Jj^9g7F%QUTjn$dfnj}*V7AUBADSG%G!8;g5n*lb}d4&)<@9}l*a60a=X!x79?4)NNUP!NSbo#R1raH z<&Y9r6H;xk*8X9gbDyb>Bl}v2gvr?3!APr;Ny3g3StAe#vcwz+8Ahz0+z|*&x+<3h zv~9I5t+gjv12#4`@+`|z77=TA*o%qS1wno#dN|W;VPG^G@i-ojTTU36t9(#Z?e=UIn|5X(X)-S+q5;^KU}9}or~ z*S$U1%1{ZU+*+uc$gdHS>MF^LiwF^m(u6K(TX$sl6h#sCg~!!z8^EDMhb|{caz>R4 zKOlgO#YR}o8CMnE+1%V&7m|d7OUteGU zK7{bBE}3xDc7oJh*K=LKN?||d$09UI9P{;o0|(muWL?+q4+eu>zifN{8Lh3Yoi6hH zZ5PKzcd{xTx~8knD+zmX_^eLb5;Lqvx>(}4P^ZebSC>}v=xz>_7 zT9#W-Hn6Y-d6ss|qbNewXa39nzJJd*Ha4CfkH??abv+=W9vnk@d7aq#MF)Aei0C&W idUG%s{PIAfMD!0@tbN3G4sZ*yJ-@bi|q07g| z`@f`wa{`5uN%O-;a|z^tO8T-w&&?nYFpMMd!J*)zuP-@dUhJ$dq^p5B(j zz}K%|bD3`5xXCq84mfrC6d!|;kr7?v9vw461qKW-4W#8DFzNs%BO{}Mb%4H}-oJse z9Fzl@w6(S04U_}S&CEW69589193U(#JR4jYg#-sv-1Z~4G6LrUH+Q$i^!B}&OAIyP tVPSuzrKMjxp|002ovPDHLkV1oGF7rFod literal 0 HcmV?d00001 diff --git a/plugins/feature/startracker/startracker/moon-old-32.png b/plugins/feature/startracker/startracker/moon-old-32.png new file mode 100644 index 0000000000000000000000000000000000000000..c5898a131b903d9a1029ed2655750094b2f8eb04 GIT binary patch literal 1354 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 U)Ny7M3IG5A07*qoM6N<$f~mc#@&Et; literal 0 HcmV?d00001 diff --git a/plugins/feature/startracker/startracker/moon-waxing-crescent-32.png b/plugins/feature/startracker/startracker/moon-waxing-crescent-32.png new file mode 100644 index 0000000000000000000000000000000000000000..5218137f2fb4a176e11bd5a88d743bb5de04839a GIT binary patch literal 1313 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 O0000X%0UdDF5ryd(JI*{Y?oL#G&6ds_df<1M zujluB-sgFrd0q?vkQB@3^XuOj#>=woWdKmIeHQT?k2D$$y0ox>5C8%Io*;-8j^i(` zE-w0{_?;>sm&@(7noTFeFxXwUd*ZtWg8>Bt0i@IE&?(D;R;&GFGMUU1KY}ymL&#>c zj&LZ{f3UG3D7-M9dA*QGBp{hga+ONOK8|PP%~&-0IS_dJSHyoJ8i_zEm4a5Q^+b|@ zkFi+UX0^_QT*Riw1DQ+)NRm99D4<*}hi6IrE6nB_P%IXKqNu%*0*b}r{WX_sF61H} zZEZoJP=H>qcWp>OI27XNNiIStOp+w~zX>RnN*OuGMUW&3jYi{0;8qD+@m(-@MN&7K zksa*s3xQuBc&k>ckL8SBM6Fg6YGEC3o}4_CGkVdw-7ZqA)lZRqWkr_a8wHA@SnT|P zB1TcvSrIB_7=|e;faiH-1#leqpQm8Z2_1I3V!HstFkWRe8X2Vo;5bgBLZRSSq6rC; z5>30PU`%tgf&x}|| zEltxeC7+B0B;s+)Et`$~SMq2ia@y;~`~sjK8K*L<^G*ny00000NkvXXu0mjf DMiEaF literal 0 HcmV?d00001 diff --git a/plugins/feature/startracker/startracker/pulsar-32.png b/plugins/feature/startracker/startracker/pulsar-32.png new file mode 100644 index 0000000000000000000000000000000000000000..0bae54abcfbb873014bc3c413accf60b1de43a06 GIT binary patch literal 432 zcmV;h0Z;ykP)Px$Vo5|nR9J<*m(fkcFbsx&pTsj6fem1U8=)Jp%8kGXWrMOo*x-1F z9bf_@BU74?^kRr(DY~|?d|&-rc1i#OfFpoA{XH>r#2`E9pWXm?P?&{?!bkvl^I7k2 z0bC2jC;%}@_Za|ZOQeAJf=cjS0FZTb2T+QjnaBYIEVu)#H^8X?5r+XNL`f32dMH0E zOX5-w`rEknufP=AXO2>Qya8=pA zC!)y|(U^gy^5)yMSYna}ZZaZja%N^~jcJvjyIBFAI{B<-1(-Ye{0)Gar3fE)Twe5m zV+v|-9+gJ4=@YTFZFg;}3KuuC!z?@L~G+G^9zCi0000Juu@=8i)ZD1fn}>|L&&$y9*@K{(#ZnyFisdZVH3} z(s(Bs#J-jI_fE>ctKlF9kb4KH9Y}&S{=F9c_hQiB8*zVcCIAKh9W?)U*y`V5>wib> z|DACDcgp?WX^($ry#Af{`*$hi{|?RnJGB1q)cU_m=l^cK_NqHmf!;JL3GxeOVC3TF zyJUzfTW|Nj?v-Nc@pI>+)`V(H>& zPwkg|hSK|%9Auoj;X%REc*n(hJMI;D)JorRp0&}WYTHV2FIMyCnrw3C8G_|@ajSYx zXqlB1$MDleUEh19hZoayt|`J2XT`gJa&#Ik*p(v875}68wxq@V3I>h(7&ilH=H`@o9RUG}3 zyY;xgoOam}vS>?#%_HH-PfS;~FPb;&pU$h@_SzDgo}5^udU{@t%%-nC6VATA@^AlC XvBIqfh3@YKhBbqytDnm{r-UW|VBK!E literal 0 HcmV?d00001 diff --git a/plugins/feature/startracker/startracker/sun-40.png b/plugins/feature/startracker/startracker/sun-40.png new file mode 100644 index 0000000000000000000000000000000000000000..c47094e93c84d275ef5552a7a0f2fc0370556e4e GIT binary patch literal 1170 zcmV;D1a13?P)h*Y zk~t>5S0abr3&-Ko=G1HY3s~+*kRFgg%4ip*EuUgT3ki_5(d&6<*K1}xvpYeek7RAe zV?Tbzuiw|N9cZmbF5S(gMp54~ZG1(d8dg;tF6J@tyVWWqR24|Lq2jRaR&w2qs^nD# z&H|XsnWa^JH(O-@uRs-t3n~s9o+dN=yR71H-s(qxFFS3r_!~6F$N~Yh0Nhq_m}y1_ zwmH3~B`)G5ZXP2Sf;^>wti`j?2CyiDsLAy-v$vh*Kl1M{PW=x~zu!_$8ARSCFy>X4 zfXJ>hA6d++LJ%5|`wvF^g79y_&suU}1+%vFnU*)3)V^ zDJ~tLDSt~Q}l`qq87h@l@2bRZ$clNfqb?J>}>nT zn3#k*c@E-b8~Vh#{zm}c$RO&dIGp8JX_q=XWT$6hj$KU-t}fb8-D${Ljp{}FF2wtt zl9Qi6ADn=mxs*JpZWpq)l@lZBiyJbCXj%20gew}{z{N~Y-0P=9i!=S+@0h;HV1}zu z99%E9M79UIsctgOwBDY_LyPN)q`tH+ZO%U0t~lg*F|WC1&vVrtig>AU}9pzRYF{@K%T(`_G$z1HnaaoaJcAU zA#bm@y*L#`<;o`w|9$}R=H$Dq3V zA`r4>;;24y+>VQxV)rAX{;c@&P3#FXB$Uj5*);6@RVfAz2s{x$*UzSpcX*p!A2!Ua z^PZTH9x6(xhY&c(RnHTbD=;%qKY5r0*{TpS;Zl1k5slF-3^SIvd7i!gUP;@MtO?qt zB&Ah-^5H-M|J#d63YK#AL0jE|yVVU$iIvd|ZsaM^fpN2bMuq8{=7)pgz+*P;)8T-? z66ux+g8Jx`Nu7p;Nw_AhjwLtcms=Z&134+bnx6Be{MTd< z6&{+(o=LKgnc#If{&nV|$s;c1tbXid6Syb3ZD{p-`d~~at#6fMNnNjjY3r_qIp(e= zkarUsYi6AYd8=2KnpW#Krr32bvF{eIt+fK~N&?$_g|V0y^&!MhreqBiL>=l&9F_+c z3iLV&yZb!=H|aXf6{h0Q?tDiEQG@H7=^oDFgwwCi*K>3OcF_&aHj12N*1q^DfbB>t z{9&2k4_#4lxXxqb3M>_7@?hP3-IPHz;OTt5wp`{0%ZIAFe~Y~{?}l}|=>G3>3nZ*$ k=5cJs%IshCzag~7N7g?7vU?Z5uK)l507*qoM6N<$g2kvf%m4rY literal 0 HcmV?d00001 diff --git a/plugins/feature/startracker/startrackergui.cpp b/plugins/feature/startracker/startrackergui.cpp new file mode 100644 index 000000000..460ae2643 --- /dev/null +++ b/plugins/feature/startracker/startrackergui.cpp @@ -0,0 +1,582 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "feature/featureuiset.h" +#include "feature/featurewebapiutils.h" +#include "gui/basicfeaturesettingsdialog.h" +#include "mainwindow.h" +#include "device/deviceuiset.h" +#include "util/units.h" +#include "util/astronomy.h" + +#include "ui_startrackergui.h" +#include "startracker.h" +#include "startrackergui.h" +#include "startrackerreport.h" +#include "startrackersettingsdialog.h" + +StarTrackerGUI* StarTrackerGUI::create(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature) +{ + StarTrackerGUI* gui = new StarTrackerGUI(pluginAPI, featureUISet, feature); + return gui; +} + +void StarTrackerGUI::destroy() +{ + delete this; +} + +void StarTrackerGUI::resetToDefaults() +{ + m_settings.resetToDefaults(); + displaySettings(); + applySettings(true); +} + +QByteArray StarTrackerGUI::serialize() const +{ + return m_settings.serialize(); +} + +bool StarTrackerGUI::deserialize(const QByteArray& data) +{ + if (m_settings.deserialize(data)) + { + displaySettings(); + applySettings(true); + return true; + } + else + { + resetToDefaults(); + return false; + } +} + +QString StarTrackerGUI::convertDegreesToText(double degrees) +{ + if (m_settings.m_azElUnits == StarTrackerSettings::DMS) + return Units::decimalDegreesToDegreeMinutesAndSeconds(degrees); + else if (m_settings.m_azElUnits == StarTrackerSettings::DM) + return Units::decimalDegreesToDegreesAndMinutes(degrees); + else if (m_settings.m_azElUnits == StarTrackerSettings::D) + return Units::decimalDegreesToDegrees(degrees); + else + return QString("%1").arg(degrees, 0, 'f', 2); +} + +bool StarTrackerGUI::handleMessage(const Message& message) +{ + if (StarTracker::MsgConfigureStarTracker::match(message)) + { + qDebug("StarTrackerGUI::handleMessage: StarTracker::MsgConfigureStarTracker"); + const StarTracker::MsgConfigureStarTracker& cfg = (StarTracker::MsgConfigureStarTracker&) message; + m_settings = cfg.getSettings(); + blockApplySettings(true); + displaySettings(); + blockApplySettings(false); + + return true; + } + else if (StarTrackerReport::MsgReportAzAl::match(message)) + { + StarTrackerReport::MsgReportAzAl& azAl = (StarTrackerReport::MsgReportAzAl&) message; + ui->azimuth->setText(convertDegreesToText(azAl.getAzimuth())); + ui->elevation->setText(convertDegreesToText(azAl.getElevation())); + return true; + } + else if (StarTrackerReport::MsgReportRADec::match(message)) + { + StarTrackerReport::MsgReportRADec& raDec = (StarTrackerReport::MsgReportRADec&) message; + m_settings.m_ra = Units::decimalHoursToHoursMinutesAndSeconds(raDec.getRA()); + m_settings.m_dec = Units::decimalDegreesToDegreeMinutesAndSeconds(raDec.getDec()); + ui->rightAscension->setText(m_settings.m_ra); + ui->declination->setText(m_settings.m_dec); + return true; + } + + return false; +} + +void StarTrackerGUI::handleInputMessages() +{ + Message* message; + + while ((message = getInputMessageQueue()->pop())) + { + if (handleMessage(*message)) { + delete message; + } + } +} + +void StarTrackerGUI::onWidgetRolled(QWidget* widget, bool rollDown) +{ + (void) widget; + (void) rollDown; +} + +StarTrackerGUI::StarTrackerGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature, QWidget* parent) : + FeatureGUI(parent), + ui(new Ui::StarTrackerGUI), + m_pluginAPI(pluginAPI), + m_featureUISet(featureUISet), + m_doApplySettings(true), + m_lastFeatureState(0) +{ + ui->setupUi(this); + setAttribute(Qt::WA_DeleteOnClose, true); + setChannelWidget(false); + connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_starTracker = reinterpret_cast(feature); + m_starTracker->setMessageQueueToGUI(&m_inputMessageQueue); + + m_featureUISet->addRollupWidget(this); + + connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); + connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + + connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus())); + m_statusTimer.start(1000); + + // Intialise chart + m_chart.legend()->hide(); + ui->elevationChart->setChart(&m_chart); + ui->elevationChart->setRenderHint(QPainter::Antialiasing); + m_chart.addAxis(&m_chartXAxis, Qt::AlignBottom); + m_chart.addAxis(&m_chartYAxis, Qt::AlignLeft); + + ui->dateTime->setDateTime(QDateTime::currentDateTime()); + displaySettings(); + applySettings(true); + + // Use My Position from preferences, if none set + if ((m_settings.m_latitude == 0.0) && (m_settings.m_longitude == 0.0)) + on_useMyPosition_clicked(); + +/* + printf("saemundsson=["); + for (int i = 0; i <= 90; i+= 5) + printf("%f ", Astronomy::refractionSaemundsson(i, m_settings.m_pressure, m_settings.m_temperature)); + printf("];\n"); + printf("palRadio=["); + for (int i = 0; i <= 90; i+= 5) + printf("%f ", Astronomy::refractionPAL(i, m_settings.m_pressure, m_settings.m_temperature, m_settings.m_humidity, + 100000000, m_settings.m_latitude, m_settings.m_heightAboveSeaLevel, + m_settings.m_temperatureLapseRate)); + printf("];\n"); + printf("palLight=["); + for (int i = 0; i <= 90; i+= 5) + printf("%f ",Astronomy::refractionPAL(i, m_settings.m_pressure, m_settings.m_temperature, m_settings.m_humidity, + 7.5e14, m_settings.m_latitude, m_settings.m_heightAboveSeaLevel, + m_settings.m_temperatureLapseRate)); + printf("];\n"); +*/ +} + +StarTrackerGUI::~StarTrackerGUI() +{ + delete ui; +} + +void StarTrackerGUI::blockApplySettings(bool block) +{ + m_doApplySettings = !block; +} + +void StarTrackerGUI::displaySettings() +{ + setTitleColor(m_settings.m_rgbColor); + setWindowTitle(m_settings.m_title); + blockApplySettings(true); + ui->latitude->setValue(m_settings.m_latitude); + ui->longitude->setValue(m_settings.m_longitude); + ui->target->setCurrentIndex(ui->target->findText(m_settings.m_target)); + if (m_settings.m_target == "Custom") + { + ui->rightAscension->setText(m_settings.m_ra); + ui->declination->setText(m_settings.m_dec); + } + if (m_settings.m_dateTime == "") + { + ui->dateTimeSelect->setCurrentIndex(0); + ui->dateTime->setVisible(false); + } + else + { + ui->dateTime->setDateTime(QDateTime::fromString(m_settings.m_dateTime, Qt::ISODateWithMs)); + ui->dateTime->setVisible(true); + ui->dateTimeSelect->setCurrentIndex(1); + } + updateForTarget(); + plotChart(); + blockApplySettings(false); +} + +void StarTrackerGUI::leaveEvent(QEvent*) +{ +} + +void StarTrackerGUI::enterEvent(QEvent*) +{ +} + +void StarTrackerGUI::onMenuDialogCalled(const QPoint &p) +{ + if (m_contextMenuType == ContextMenuChannelSettings) + { + BasicFeatureSettingsDialog dialog(this); + dialog.setTitle(m_settings.m_title); + dialog.setColor(m_settings.m_rgbColor); + dialog.setUseReverseAPI(m_settings.m_useReverseAPI); + dialog.setReverseAPIAddress(m_settings.m_reverseAPIAddress); + dialog.setReverseAPIPort(m_settings.m_reverseAPIPort); + dialog.setReverseAPIFeatureSetIndex(m_settings.m_reverseAPIFeatureSetIndex); + dialog.setReverseAPIFeatureIndex(m_settings.m_reverseAPIFeatureIndex); + + dialog.move(p); + dialog.exec(); + + m_settings.m_rgbColor = dialog.getColor().rgb(); + m_settings.m_title = dialog.getTitle(); + m_settings.m_useReverseAPI = dialog.useReverseAPI(); + m_settings.m_reverseAPIAddress = dialog.getReverseAPIAddress(); + m_settings.m_reverseAPIPort = dialog.getReverseAPIPort(); + m_settings.m_reverseAPIFeatureSetIndex = dialog.getReverseAPIFeatureSetIndex(); + m_settings.m_reverseAPIFeatureIndex = dialog.getReverseAPIFeatureIndex(); + + setWindowTitle(m_settings.m_title); + setTitleColor(m_settings.m_rgbColor); + + applySettings(); + } + + resetContextMenuType(); +} + +void StarTrackerGUI::on_startStop_toggled(bool checked) +{ + if (m_doApplySettings) + { + StarTracker::MsgStartStop *message = StarTracker::MsgStartStop::create(checked); + m_starTracker->getInputMessageQueue()->push(message); + } +} + +void StarTrackerGUI::on_latitude_valueChanged(double value) +{ + m_settings.m_latitude = value; + applySettings(); + plotChart(); +} + +void StarTrackerGUI::on_longitude_valueChanged(double value) +{ + m_settings.m_longitude = value; + applySettings(); + plotChart(); +} + +void StarTrackerGUI::on_rightAscension_editingFinished() +{ + m_settings.m_ra = ui->rightAscension->text(); + applySettings(); + plotChart(); +} + +void StarTrackerGUI::on_declination_editingFinished() +{ + m_settings.m_dec = ui->declination->text(); + applySettings(); + plotChart(); +} + +void StarTrackerGUI::updateForTarget() +{ + if (m_settings.m_target == "Sun") + { + ui->rightAscension->setReadOnly(true); + ui->declination->setReadOnly(true); + ui->rightAscension->setText(""); + ui->declination->setText(""); + } + else if (m_settings.m_target == "Moon") + { + ui->rightAscension->setReadOnly(true); + ui->declination->setReadOnly(true); + ui->rightAscension->setText(""); + ui->declination->setText(""); + } + else if (m_settings.m_target == "Custom") + { + ui->rightAscension->setReadOnly(false); + ui->declination->setReadOnly(false); + } + else + { + ui->rightAscension->setReadOnly(true); + ui->declination->setReadOnly(true); + if (m_settings.m_target == "PSR B0329+54") + { + ui->rightAscension->setText("03h32m59.35s"); + ui->declination->setText(QString("54%0134'45.05\"").arg(QChar(0xb0))); + } + else if (m_settings.m_target == "PSR B0833-45") + { + ui->rightAscension->setText("08h35m20.66s"); + ui->declination->setText(QString("-45%0110'35.15\"").arg(QChar(0xb0))); + } + else if (m_settings.m_target == "Sagittarius A") + { + ui->rightAscension->setText("17h45m40.04s"); + ui->declination->setText(QString("-29%0100'28.17\"").arg(QChar(0xb0))); + } + else if (m_settings.m_target == "Cassiopeia A") + { + ui->rightAscension->setText("23h23m24s"); + ui->declination->setText(QString("58%0148'54\"").arg(QChar(0xb0))); + } + else if (m_settings.m_target == "Cygnus A") + { + ui->rightAscension->setText("19h59m28.36s"); + ui->declination->setText(QString("40%0144'02.1\"").arg(QChar(0xb0))); + } + else if (m_settings.m_target == "Taurus A (M1)") + { + ui->rightAscension->setText("05h34m31.94s"); + ui->declination->setText(QString("22%0100'52.2\"").arg(QChar(0xb0))); + } + else if (m_settings.m_target == "Virgo A (M87)") + { + ui->rightAscension->setText("12h30m49.42s"); + ui->declination->setText(QString("12%0123'28.04\"").arg(QChar(0xb0))); + } + on_rightAscension_editingFinished(); + on_declination_editingFinished(); + } + // Clear as no longer valid when target has changed + ui->azimuth->setText(""); + ui->elevation->setText(""); +} + +void StarTrackerGUI::on_target_currentTextChanged(const QString &text) +{ + m_settings.m_target = text; + applySettings(); + updateForTarget(); + plotChart(); +} + +void StarTrackerGUI::updateLST() +{ + QDateTime dt; + + if (m_settings.m_dateTime.isEmpty()) + dt = QDateTime::currentDateTime(); + else + dt = QDateTime::fromString(m_settings.m_dateTime, Qt::ISODateWithMs); + + double lst = Astronomy::localSiderealTime(dt, m_settings.m_longitude); + + ui->lst->setText(Units::decimalHoursToHoursMinutesAndSeconds(lst/15.0, 0)); +} + +void StarTrackerGUI::updateStatus() +{ + int state = m_starTracker->getState(); + + if (m_lastFeatureState != state) + { + // We set checked state of start/stop button, in case it was changed via API + bool oldState; + switch (state) + { + case Feature::StNotStarted: + ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); + break; + case Feature::StIdle: + oldState = ui->startStop->blockSignals(true); + ui->startStop->setChecked(false); + ui->startStop->blockSignals(oldState); + ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); + break; + case Feature::StRunning: + oldState = ui->startStop->blockSignals(true); + ui->startStop->setChecked(true); + ui->startStop->blockSignals(oldState); + ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); + break; + case Feature::StError: + ui->startStop->setStyleSheet("QToolButton { background-color : red; }"); + QMessageBox::information(this, tr("Message"), m_starTracker->getErrorMessage()); + break; + default: + break; + } + + m_lastFeatureState = state; + } + + updateLST(); +} + +void StarTrackerGUI::applySettings(bool force) +{ + if (m_doApplySettings) + { + StarTracker::MsgConfigureStarTracker* message = StarTracker::MsgConfigureStarTracker::create(m_settings, force); + m_starTracker->getInputMessageQueue()->push(message); + } +} + +void StarTrackerGUI::on_useMyPosition_clicked(bool checked) +{ + double stationLatitude = MainCore::instance()->getSettings().getLatitude(); + double stationLongitude = MainCore::instance()->getSettings().getLongitude(); + double stationAltitude = MainCore::instance()->getSettings().getAltitude(); + + ui->latitude->setValue(stationLatitude); + ui->longitude->setValue(stationLongitude); + m_settings.m_heightAboveSeaLevel = stationAltitude; + applySettings(); + plotChart(); +} + +// Show settings dialog +void StarTrackerGUI::on_displaySettings_clicked() +{ + StarTrackerSettingsDialog dialog(&m_settings); + if (dialog.exec() == QDialog::Accepted) + { + applySettings(); + } +} + +void StarTrackerGUI::on_dateTimeSelect_currentTextChanged(const QString &text) +{ + if (text == "Now") + { + m_settings.m_dateTime = ""; + ui->dateTime->setVisible(false); + } + else + { + m_settings.m_dateTime = ui->dateTime->dateTime().toString(Qt::ISODateWithMs); + ui->dateTime->setVisible(true); + } + applySettings(); + plotChart(); +} + +void StarTrackerGUI::on_dateTime_dateTimeChanged(const QDateTime &datetime) +{ + if (ui->dateTimeSelect->currentIndex() == 1) + { + m_settings.m_dateTime = ui->dateTime->dateTime().toString(Qt::ISODateWithMs); + applySettings(); + plotChart(); + } +} + +// Plot target elevation angle over the day +void StarTrackerGUI::plotChart() +{ + m_chart.removeAllSeries(); + double maxElevation = -90.0; + + QLineSeries *series = new QLineSeries(); + QDateTime dt; + if (m_settings.m_dateTime.isEmpty()) + dt = QDateTime::currentDateTime(); + else + dt = QDateTime::fromString(m_settings.m_dateTime, Qt::ISODateWithMs); + dt.setTime(QTime(0,0)); + QDateTime startTime = dt; + QDateTime endTime = dt; + for (int hour = 0; hour <= 24; hour++) + { + AzAlt aa; + RADec rd; + + // Calculate elevation of desired object + if (m_settings.m_target == "Sun") + Astronomy::sunPosition(aa, rd, m_settings.m_latitude, m_settings.m_longitude, dt); + else if (m_settings.m_target == "Moon") + Astronomy::moonPosition(aa, rd, m_settings.m_latitude, m_settings.m_longitude, dt); + else + { + rd.ra = Astronomy::raToDecimal(m_settings.m_ra); + rd.dec = Astronomy::decToDecimal(m_settings.m_dec); + aa = Astronomy::raDecToAzAlt(rd, m_settings.m_latitude, m_settings.m_longitude, dt, !m_settings.m_jnow); + } + + if (aa.alt > maxElevation) + maxElevation = aa.alt; + + // Adjust for refraction + if (m_settings.m_refraction == "Positional Astronomy Library") + { + aa.alt += Astronomy::refractionPAL(aa.alt, m_settings.m_pressure, m_settings.m_temperature, m_settings.m_humidity, + m_settings.m_frequency, m_settings.m_latitude, m_settings.m_heightAboveSeaLevel, + m_settings.m_temperatureLapseRate); + if (aa.alt > 90.0) + aa.alt = 90.0f; + } + else if (m_settings.m_refraction == "Saemundsson") + { + aa.alt += Astronomy::refractionSaemundsson(aa.alt, m_settings.m_pressure, m_settings.m_temperature); + if (aa.alt > 90.0) + aa.alt = 90.0f; + } + + series->append(dt.toMSecsSinceEpoch(), aa.alt); + + endTime = dt; + dt = dt.addSecs(60*60); // addSecs accounts for daylight savings jumps + } + if (maxElevation < 0) + m_chart.setTitle("Not visible from this latitude"); + else + m_chart.setTitle(""); + m_chart.addSeries(series); + series->attachAxis(&m_chartXAxis); + series->attachAxis(&m_chartYAxis); + m_chartXAxis.setTitleText(QString("%1 %2").arg(startTime.date().toString()).arg(startTime.timeZoneAbbreviation())); + m_chartXAxis.setFormat("hh"); + m_chartXAxis.setTickCount(7); + m_chartXAxis.setRange(startTime, endTime); + m_chartYAxis.setRange(0.0, 90.0); + m_chartYAxis.setTitleText(QString("Elevation (%1)").arg(QChar(0xb0))); +} + +// Find target on the Map +void StarTrackerGUI::on_viewOnMap_clicked() +{ + QString target = m_settings.m_target == "Sun" || m_settings.m_target == "Moon" ? m_settings.m_target : "Star"; + FeatureWebAPIUtils::mapFind(target); +} diff --git a/plugins/feature/startracker/startrackergui.h b/plugins/feature/startracker/startrackergui.h new file mode 100644 index 000000000..ced54e3e2 --- /dev/null +++ b/plugins/feature/startracker/startrackergui.h @@ -0,0 +1,100 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_STARTRACKERGUI_H_ +#define INCLUDE_FEATURE_STARTRACKERGUI_H_ + +#include +#include + +#include "feature/featuregui.h" +#include "util/messagequeue.h" +#include "startrackersettings.h" + +class PluginAPI; +class FeatureUISet; +class StarTracker; + +namespace Ui { + class StarTrackerGUI; +} + +using namespace QtCharts; + +class StarTrackerGUI : public FeatureGUI { + Q_OBJECT +public: + static StarTrackerGUI* create(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature); + virtual void destroy(); + + void resetToDefaults(); + QByteArray serialize() const; + bool deserialize(const QByteArray& data); + virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } + +private: + Ui::StarTrackerGUI* ui; + PluginAPI* m_pluginAPI; + FeatureUISet* m_featureUISet; + StarTrackerSettings m_settings; + bool m_doApplySettings; + + StarTracker* m_starTracker; + MessageQueue m_inputMessageQueue; + QTimer m_statusTimer; + int m_lastFeatureState; + + QChart m_chart; + QDateTimeAxis m_chartXAxis; + QValueAxis m_chartYAxis; + + explicit StarTrackerGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feature, QWidget* parent = nullptr); + virtual ~StarTrackerGUI(); + + void blockApplySettings(bool block); + void applySettings(bool force = false); + void displaySettings(); + void updateForTarget(); + QString convertDegreesToText(double degrees); + bool handleMessage(const Message& message); + void updateLST(); + void plotChart(); + + void leaveEvent(QEvent*); + void enterEvent(QEvent*); + +private slots: + void onMenuDialogCalled(const QPoint &p); + void onWidgetRolled(QWidget* widget, bool rollDown); + void handleInputMessages(); + void on_startStop_toggled(bool checked); + void on_useMyPosition_clicked(bool checked=false); + void on_latitude_valueChanged(double value); + void on_longitude_valueChanged(double value); + void on_rightAscension_editingFinished(); + void on_declination_editingFinished(); + void on_target_currentTextChanged(const QString &text); + void on_displaySettings_clicked(); + void on_dateTimeSelect_currentTextChanged(const QString &text); + void on_dateTime_dateTimeChanged(const QDateTime &datetime); + void updateStatus(); + void on_viewOnMap_clicked(); +}; + + +#endif // INCLUDE_FEATURE_STARTRACKERGUI_H_ diff --git a/plugins/feature/startracker/startrackergui.ui b/plugins/feature/startracker/startrackergui.ui new file mode 100644 index 000000000..9e859b468 --- /dev/null +++ b/plugins/feature/startracker/startrackergui.ui @@ -0,0 +1,503 @@ + + + StarTrackerGUI + + + + 0 + 0 + 337 + 568 + + + + + 0 + 0 + + + + + 320 + 100 + + + + + 16777215 + 16777215 + + + + + Liberation Sans + 9 + + + + Star Tracker + + + + + 10 + 10 + 301 + 201 + + + + Settings + + + + 3 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + Latitude in decimal degrees (North positive) of observation point / antenna location + + + 6 + + + -90.000000000000000 + + + 90.000000000000000 + + + -90.000000000000000 + + + + + + + Right Ascension of the target object. + +This can be specified as a decimal (E.g. 12.23) or in hours, minutes and seconds (E.g. 12h05m10.2s or 12 05 10.2) + + + 23h59m59.59s + + + + + + + Computed azimuth in degrees to the target from the observation point + + + 360 + + + true + + + + + + + Time + + + + + + + Declination of the target object + +This can be specified as a decimal (E.g. 34.23) or in degrees, minutes and seconds (E.g. 34d12m10.2s, 34d12'10.2" 34 12 10.2) + + + -90d59'59.59" + + + + + + + Target + + + + + + + Date and time to use when calculating target's position + + + dd/MM/yyyy HH:mm:ss + + + true + + + + + + + Latitude + + + + + + + + Now + + + + + Custom + + + + + + + + Elevation + + + + + + + RA + + + + + + + + + start/stop acquisition + + + + + + + :/play.png + :/stop.png:/play.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Find target on the map + + + + + + + :/gridpolar.png:/gridpolar.png + + + + + + + Set latitude, longitude and height from My Position in SDRangel preferences + + + + + + + :/import.png:/import.png + + + + + + + Show settings dialog + + + + + + + :/listing.png:/listing.png + + + + + + + + + + + + 110 + 0 + + + + 0 + + + + Sun + + + + + Moon + + + + + PSR B0329+54 + + + + + PSR B0833-45 + + + + + Sagittarius A + + + + + Cassiopeia A + + + + + Cygnus A + + + + + Taurus A (M1) + + + + + Virgo A (M87) + + + + + Custom + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Longitude in decimal degress (East positive) of observation point / antenna location + + + 6 + + + -180.000000000000000 + + + 180.000000000000000 + + + -180.000000000000000 + + + + + + + Dec + + + + + + + Longitude + + + + + + + Azimuth + + + + + + + Computed elevation in degrees to the target from the observation point + + + 90 + + + true + + + + + + + LST + + + + + + + Local sidereal time for selected date, time and longitude + + + true + + + + + + + + + + + 10 + 220 + 318 + 268 + + + + + 0 + 0 + + + + + 200 + 200 + + + + Elevation vs Time + + + + 2 + + + 3 + + + 3 + + + 3 + + + 3 + + + + + + 300 + 250 + + + + + + + + + + RollupWidget + QWidget +
gui/rollupwidget.h
+ 1 +
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
+ + QChartView + QGraphicsView +
QtCharts
+
+
+ + startStop + useMyPosition + displaySettings + latitude + longitude + target + rightAscension + declination + azimuth + elevation + + + + + +
diff --git a/plugins/feature/startracker/startrackerplugin.cpp b/plugins/feature/startracker/startrackerplugin.cpp new file mode 100644 index 000000000..a96d68484 --- /dev/null +++ b/plugins/feature/startracker/startrackerplugin.cpp @@ -0,0 +1,80 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + + +#include +#include "plugin/pluginapi.h" + +#ifndef SERVER_MODE +#include "startrackergui.h" +#endif +#include "startracker.h" +#include "startrackerplugin.h" +#include "startrackerwebapiadapter.h" + +const PluginDescriptor StarTrackerPlugin::m_pluginDescriptor = { + StarTracker::m_featureId, + QStringLiteral("Star Tracker"), + QStringLiteral("6.4.0"), + QStringLiteral("(c) Jon Beniston, M7RCE"), + QStringLiteral("https://github.com/f4exb/sdrangel"), + true, + QStringLiteral("https://github.com/f4exb/sdrangel") +}; + +StarTrackerPlugin::StarTrackerPlugin(QObject* parent) : + QObject(parent), + m_pluginAPI(nullptr) +{ +} + +const PluginDescriptor& StarTrackerPlugin::getPluginDescriptor() const +{ + return m_pluginDescriptor; +} + +void StarTrackerPlugin::initPlugin(PluginAPI* pluginAPI) +{ + m_pluginAPI = pluginAPI; + + m_pluginAPI->registerFeature(StarTracker::m_featureIdURI, StarTracker::m_featureId, this); +} + +#ifdef SERVER_MODE +FeatureGUI* StarTrackerPlugin::createFeatureGUI(FeatureUISet *featureUISet, Feature *feature) const +{ + (void) featureUISet; + (void) feature; + return nullptr; +} +#else +FeatureGUI* StarTrackerPlugin::createFeatureGUI(FeatureUISet *featureUISet, Feature *feature) const +{ + return StarTrackerGUI::create(m_pluginAPI, featureUISet, feature); +} +#endif + +Feature* StarTrackerPlugin::createFeature(WebAPIAdapterInterface* webAPIAdapterInterface) const +{ + return new StarTracker(webAPIAdapterInterface); +} + +FeatureWebAPIAdapter* StarTrackerPlugin::createFeatureWebAPIAdapter() const +{ + return new StarTrackerWebAPIAdapter(); +} diff --git a/plugins/feature/startracker/startrackerplugin.h b/plugins/feature/startracker/startrackerplugin.h new file mode 100644 index 000000000..aff585f7e --- /dev/null +++ b/plugins/feature/startracker/startrackerplugin.h @@ -0,0 +1,49 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_STARTRACKERPLUGIN_H +#define INCLUDE_FEATURE_STARTRACKERPLUGIN_H + +#include +#include "plugin/plugininterface.h" + +class FeatureGUI; +class WebAPIAdapterInterface; + +class StarTrackerPlugin : public QObject, PluginInterface { + Q_OBJECT + Q_INTERFACES(PluginInterface) + Q_PLUGIN_METADATA(IID "sdrangel.feature.startracker") + +public: + explicit StarTrackerPlugin(QObject* parent = nullptr); + + const PluginDescriptor& getPluginDescriptor() const; + void initPlugin(PluginAPI* pluginAPI); + + virtual FeatureGUI* createFeatureGUI(FeatureUISet *featureUISet, Feature *feature) const; + virtual Feature* createFeature(WebAPIAdapterInterface *webAPIAdapterInterface) const; + virtual FeatureWebAPIAdapter* createFeatureWebAPIAdapter() const; + +private: + static const PluginDescriptor m_pluginDescriptor; + + PluginAPI* m_pluginAPI; +}; + +#endif // INCLUDE_FEATURE_STARTRACKERPLUGIN_H diff --git a/plugins/feature/startracker/startrackerreport.h b/plugins/feature/startracker/startrackerreport.h new file mode 100644 index 000000000..0cace5aed --- /dev/null +++ b/plugins/feature/startracker/startrackerreport.h @@ -0,0 +1,83 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2019 Edouard Griffiths, F4EXB // +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_STARTRACKERREPORT_H_ +#define INCLUDE_FEATURE_STARTRACKERREPORT_H_ + +#include + +#include "util/message.h" + +class StarTrackerReport : public QObject +{ + Q_OBJECT +public: + class MsgReportAzAl : public Message { + MESSAGE_CLASS_DECLARATION + + public: + double getAzimuth() const { return m_azimuth; } + double getElevation() const { return m_elevation; } + + static MsgReportAzAl* create(double azimuth, double elevation) + { + return new MsgReportAzAl(azimuth, elevation); + } + + private: + double m_azimuth; + double m_elevation; + + MsgReportAzAl(double azimuth, double elevation) : + Message(), + m_azimuth(azimuth), + m_elevation(elevation) + { + } + }; + + class MsgReportRADec : public Message { + MESSAGE_CLASS_DECLARATION + + public: + double getRA() const { return m_ra; } + double getDec() const { return m_dec; } + + static MsgReportRADec* create(double ra, double dec) + { + return new MsgReportRADec(ra, dec); + } + + private: + double m_ra; + double m_dec; + + MsgReportRADec(double ra, double dec) : + Message(), + m_ra(ra), + m_dec(dec) + { + } + }; + +public: + StarTrackerReport() {} + ~StarTrackerReport() {} +}; + +#endif // INCLUDE_FEATURE_STARTRACKERREPORT_H_ diff --git a/plugins/feature/startracker/startrackersettings.cpp b/plugins/feature/startracker/startrackersettings.cpp new file mode 100644 index 000000000..2585a4759 --- /dev/null +++ b/plugins/feature/startracker/startrackersettings.cpp @@ -0,0 +1,166 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include "util/simpleserializer.h" +#include "settings/serializable.h" + +#include "startrackersettings.h" + +StarTrackerSettings::StarTrackerSettings() +{ + resetToDefaults(); +} + +void StarTrackerSettings::resetToDefaults() +{ + m_ra = ""; + m_dec = ""; + m_latitude = 0.0; + m_longitude = 0.0; + m_target = "Sun"; + m_dateTime = ""; + m_refraction = "Positional Astronomy Library"; + m_pressure = 1010; + m_temperature = 10; + m_humidity = 80.0; + m_heightAboveSeaLevel = 0.0; + m_temperatureLapseRate = 6.49; + m_frequency = 435000000; + m_enableServer = true; + m_serverPort = 10001; + m_azElUnits = DM; + m_updatePeriod = 1.0; + m_jnow = false; + m_drawSunOnMap = true; + m_drawMoonOnMap = true; + m_drawStarOnMap = true; + m_title = "Star Tracker"; + m_rgbColor = QColor(225, 25, 99).rgb(); + m_useReverseAPI = false; + m_reverseAPIAddress = "127.0.0.1"; + m_reverseAPIPort = 8888; + m_reverseAPIFeatureSetIndex = 0; + m_reverseAPIFeatureIndex = 0; +} + +QByteArray StarTrackerSettings::serialize() const +{ + SimpleSerializer s(1); + + s.writeString(1, m_ra); + s.writeString(2, m_dec); + s.writeDouble(3, m_latitude); + s.writeDouble(4, m_longitude); + s.writeString(5, m_target); + s.writeString(6, m_dateTime); + s.writeU32(7, m_enableServer); + s.writeU32(8, m_serverPort); + s.writeS32(9, m_azElUnits); + s.writeFloat(10, m_updatePeriod); + s.writeBool(11, m_jnow); + s.writeString(12, m_refraction); + s.writeDouble(13, m_pressure); + s.writeDouble(14, m_temperature); + s.writeDouble(15, m_humidity); + s.writeDouble(16, m_heightAboveSeaLevel); + s.writeDouble(17, m_temperatureLapseRate); + s.writeDouble(18, m_frequency); + s.writeBool(19, m_drawSunOnMap); + s.writeBool(20, m_drawMoonOnMap); + s.writeBool(21, m_drawStarOnMap); + s.writeString(22, m_title); + s.writeU32(23, m_rgbColor); + s.writeBool(24, m_useReverseAPI); + s.writeString(25, m_reverseAPIAddress); + s.writeU32(26, m_reverseAPIPort); + s.writeU32(27, m_reverseAPIFeatureSetIndex); + s.writeU32(28, m_reverseAPIFeatureIndex); + + return s.final(); +} + +bool StarTrackerSettings::deserialize(const QByteArray& data) +{ + SimpleDeserializer d(data); + + if (!d.isValid()) + { + resetToDefaults(); + return false; + } + + if (d.getVersion() == 1) + { + QByteArray bytetmp; + uint32_t utmp; + QString strtmp; + + d.readString(1, &m_ra, ""); + d.readString(2, &m_dec, ""); + d.readDouble(3, &m_latitude, 0.0); + d.readDouble(4, &m_longitude, 0.0); + d.readString(5, &m_target, "Sun"); + d.readString(6, &m_dateTime, ""); + d.readBool(7, &m_enableServer, true); + d.readU32(8, &utmp, 0); + if ((utmp > 1023) && (utmp < 65535)) { + m_serverPort = utmp; + } else { + m_serverPort = 10001; + } + d.readS32(9, (qint32 *)&m_azElUnits, DM); + d.readFloat(10, &m_updatePeriod, 1.0f); + d.readBool(11, &m_jnow, false); + d.readString(12, &m_refraction, "Positional Astronomy Library"); + d.readDouble(13, &m_pressure, 1010); + d.readDouble(14, &m_temperature, 10); + d.readDouble(15, &m_humidity, 10); + d.readDouble(16, &m_heightAboveSeaLevel, 80); + d.readDouble(17, &m_temperatureLapseRate, 6.49); + d.readDouble(18, &m_frequency, 435000000.0); + d.readBool(19, &m_drawSunOnMap, true); + d.readBool(20, &m_drawMoonOnMap, true); + d.readBool(21, &m_drawStarOnMap, true); + + d.readString(22, &m_title, "Star Tracker"); + d.readU32(23, &m_rgbColor, QColor(225, 25, 99).rgb()); + d.readBool(24, &m_useReverseAPI, false); + d.readString(25, &m_reverseAPIAddress, "127.0.0.1"); + d.readU32(26, &utmp, 0); + + if ((utmp > 1023) && (utmp < 65535)) { + m_reverseAPIPort = utmp; + } else { + m_reverseAPIPort = 8888; + } + + d.readU32(27, &utmp, 0); + m_reverseAPIFeatureSetIndex = utmp > 99 ? 99 : utmp; + d.readU32(28, &utmp, 0); + m_reverseAPIFeatureIndex = utmp > 99 ? 99 : utmp; + + return true; + } + else + { + resetToDefaults(); + return false; + } +} diff --git a/plugins/feature/startracker/startrackersettings.h b/plugins/feature/startracker/startrackersettings.h new file mode 100644 index 000000000..17290f603 --- /dev/null +++ b/plugins/feature/startracker/startrackersettings.h @@ -0,0 +1,67 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_STARTRACKERSETTINGS_H_ +#define INCLUDE_FEATURE_STARTRACKERSETTINGS_H_ + +#include +#include + +#include "util/message.h" + +class Serializable; + +struct StarTrackerSettings +{ + QString m_ra; + QString m_dec; + double m_latitude; + double m_longitude; + QString m_target; // Sun, Moon, Custom + QString m_dateTime; // Date/time for observation, or "" for now + QString m_refraction; // Refraction correction. "None", "Saemundsson" or "Positional Astronomy Library" + double m_pressure; // Air pressure in millibars + double m_temperature; // Air temperature in C + double m_humidity; // Humidity in % + double m_heightAboveSeaLevel; // In metres + double m_temperatureLapseRate; // In K/km + double m_frequency; // Observation frequency in Hz + uint16_t m_serverPort; + bool m_enableServer; // Enable Stellarium server + enum AzElUnits {DMS, DM, D, Decimal} m_azElUnits; + float m_updatePeriod; + bool m_jnow; // Use JNOW epoch rather than J2000 + bool m_drawSunOnMap; + bool m_drawMoonOnMap; + bool m_drawStarOnMap; + + QString m_title; + quint32 m_rgbColor; + bool m_useReverseAPI; + QString m_reverseAPIAddress; + uint16_t m_reverseAPIPort; + uint16_t m_reverseAPIFeatureSetIndex; + uint16_t m_reverseAPIFeatureIndex; + + StarTrackerSettings(); + void resetToDefaults(); + QByteArray serialize() const; + bool deserialize(const QByteArray& data); +}; + +#endif // INCLUDE_FEATURE_STARTRACKERSETTINGS_H_ diff --git a/plugins/feature/startracker/startrackersettingsdialog.cpp b/plugins/feature/startracker/startrackersettingsdialog.cpp new file mode 100644 index 000000000..5cd7a127c --- /dev/null +++ b/plugins/feature/startracker/startrackersettingsdialog.cpp @@ -0,0 +1,68 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include "startrackersettingsdialog.h" +#include + +StarTrackerSettingsDialog::StarTrackerSettingsDialog(StarTrackerSettings *settings, + QWidget* parent) : + QDialog(parent), + ui(new Ui::StarTrackerSettingsDialog), + m_settings(settings) +{ + ui->setupUi(this); + ui->epoch->setCurrentIndex(settings->m_jnow ? 1 : 0); + ui->azElUnits->setCurrentIndex((int)settings->m_azElUnits); + ui->updatePeriod->setValue(settings->m_updatePeriod); + ui->serverPort->setValue(settings->m_serverPort); + ui->enableServer->setChecked(settings->m_enableServer); + ui->refraction->setCurrentIndex(ui->refraction->findText(settings->m_refraction)); + ui->pressure->setValue(settings->m_pressure); + ui->temperature->setValue(settings->m_temperature); + ui->humidity->setValue(settings->m_humidity); + ui->height->setValue(settings->m_heightAboveSeaLevel); + ui->temperatureLapseRate->setValue(settings->m_temperatureLapseRate); + ui->frequency->setValue(settings->m_frequency/1000000.0); + ui->drawSunOnMap->setChecked(settings->m_drawSunOnMap); + ui->drawMoonOnMap->setChecked(settings->m_drawMoonOnMap); + ui->drawStarOnMap->setChecked(settings->m_drawStarOnMap); +} + +StarTrackerSettingsDialog::~StarTrackerSettingsDialog() +{ + delete ui; +} + +void StarTrackerSettingsDialog::accept() +{ + m_settings->m_jnow = ui->epoch->currentIndex() == 1; + m_settings->m_azElUnits = (StarTrackerSettings::AzElUnits)ui->azElUnits->currentIndex(); + m_settings->m_updatePeriod = ui->updatePeriod->value(); + m_settings->m_serverPort = (uint16_t)ui->serverPort->value(); + m_settings->m_enableServer = ui->enableServer->isChecked(); + m_settings->m_refraction = ui->refraction->currentText(); + m_settings->m_pressure = ui->pressure->value(); + m_settings->m_temperature = ui->temperature->value(); + m_settings->m_humidity = ui->humidity->value(); + m_settings->m_heightAboveSeaLevel = ui->height->value(); + m_settings->m_temperatureLapseRate = ui->temperatureLapseRate->value(); + m_settings->m_frequency = ui->frequency->value() * 1000000.0; + m_settings->m_drawSunOnMap = ui->drawSunOnMap->isChecked(); + m_settings->m_drawMoonOnMap = ui->drawMoonOnMap->isChecked(); + m_settings->m_drawStarOnMap = ui->drawStarOnMap->isChecked(); + QDialog::accept(); +} diff --git a/plugins/feature/startracker/startrackersettingsdialog.h b/plugins/feature/startracker/startrackersettingsdialog.h new file mode 100644 index 000000000..25fe401c7 --- /dev/null +++ b/plugins/feature/startracker/startrackersettingsdialog.h @@ -0,0 +1,40 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_STARTRACKERSETTINGSDIALOG_H +#define INCLUDE_STARTRACKERSETTINGSDIALOG_H + +#include "ui_startrackersettingsdialog.h" +#include "startrackersettings.h" + +class StarTrackerSettingsDialog : public QDialog { + Q_OBJECT + +public: + explicit StarTrackerSettingsDialog(StarTrackerSettings* settings, QWidget* parent = 0); + ~StarTrackerSettingsDialog(); + + StarTrackerSettings *m_settings; + +private slots: + void accept(); + +private: + Ui::StarTrackerSettingsDialog* ui; +}; + +#endif // INCLUDE_STARTRACKERSETTINGSDIALOG_H diff --git a/plugins/feature/startracker/startrackersettingsdialog.ui b/plugins/feature/startracker/startrackersettingsdialog.ui new file mode 100644 index 000000000..8c1c15a72 --- /dev/null +++ b/plugins/feature/startracker/startrackersettingsdialog.ui @@ -0,0 +1,382 @@ + + + StarTrackerSettingsDialog + + + + 0 + 0 + 351 + 468 + + + + + Liberation Sans + 9 + + + + Star Tracker Settings + + + + + + + + + Height above sea level (m) + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Draw target star on map + + + + + + + Air temperature (C) + + + + + + + Refraction correction + + + + + + + Stellarium telescope server IP port number + + + 1024 + + + 65535 + + + 10001 + + + + + + + Radio frequency being observed + + + 1000000000 + + + 435 + + + + + + + Air pressure (mb) + + + + + + + Air pressure in millibars, for use in atmospheric refraction correction + + + 2000.000000000000000 + + + 1.000000000000000 + + + 1010.000000000000000 + + + + + + + Epoch for RA & Dec + + + + + + + Air temperature in degrees Celsius, for use in atmospheric refraction correction + + + -100 + + + 100 + + + 10 + + + + + + + Draw Sun on map + + + + + + + Draw Moon on map + + + + + + + Relative humidity in % + + + 100 + + + 80 + + + + + + + Stellarium server port + + + + + + + Update period (s) + + + + + + + Humidity (%) + + + + + + + Enter the time in seconds between each calculation of the target's position + + + 1.000000000000000 + + + + + + + Height of observation/antenna location above sea level in metres + + + -1000 + + + 20000 + + + + + + + Frequency (MHz) + + + + + + + Epoch for custom right ascension and declination + + + + J2000 + + + + + JNOW + + + + + + + + Azimuth and elevation units + + + + + + + Atmospheric refraction correction + + + 0 + + + + None + + + + + Saemundsson + + + + + Positional Astronomy Library + + + + + + + + Enable Stellarium server which allows RA and Dec to be sent to and from Stellarium + + + Stellarium server + + + + + + + Units used for displaying azimuth and elevation. Either degrees, minutes and seconds or decimal degrees. + + + false + + + + ° ' " + + + + + ° ' + + + + + ° + + + + + Decimal + + + + + + + + Temperature lapse rate (K/m) + + + Temperature lapse rate (K/km) + + + + + + + 3 + + + 100.000000000000000 + + + 6.490000000000000 + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + StarTrackerSettingsDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + StarTrackerSettingsDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/plugins/feature/startracker/startrackerwebapiadapter.cpp b/plugins/feature/startracker/startrackerwebapiadapter.cpp new file mode 100644 index 000000000..002c8c775 --- /dev/null +++ b/plugins/feature/startracker/startrackerwebapiadapter.cpp @@ -0,0 +1,52 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB. // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include "SWGFeatureSettings.h" +#include "startracker.h" +#include "startrackerwebapiadapter.h" + +StarTrackerWebAPIAdapter::StarTrackerWebAPIAdapter() +{} + +StarTrackerWebAPIAdapter::~StarTrackerWebAPIAdapter() +{} + +int StarTrackerWebAPIAdapter::webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setSimplePttSettings(new SWGSDRangel::SWGSimplePTTSettings()); + response.getSimplePttSettings()->init(); + StarTracker::webapiFormatFeatureSettings(response, m_settings); + + return 200; +} + +int StarTrackerWebAPIAdapter::webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) force; // no action + (void) errorMessage; + StarTracker::webapiUpdateFeatureSettings(m_settings, featureSettingsKeys, response); + + return 200; +} diff --git a/plugins/feature/startracker/startrackerwebapiadapter.h b/plugins/feature/startracker/startrackerwebapiadapter.h new file mode 100644 index 000000000..6e30ee297 --- /dev/null +++ b/plugins/feature/startracker/startrackerwebapiadapter.h @@ -0,0 +1,50 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB. // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_STARTRACKER_WEBAPIADAPTER_H +#define INCLUDE_STARTRACKER_WEBAPIADAPTER_H + +#include "feature/featurewebapiadapter.h" +#include "startrackersettings.h" + +/** + * Standalone API adapter only for the settings + */ +class StarTrackerWebAPIAdapter : public FeatureWebAPIAdapter { +public: + StarTrackerWebAPIAdapter(); + virtual ~StarTrackerWebAPIAdapter(); + + virtual QByteArray serialize() const { return m_settings.serialize(); } + virtual bool deserialize(const QByteArray& data) { return m_settings.deserialize(data); } + + virtual int webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + +private: + StarTrackerSettings m_settings; +}; + +#endif // INCLUDE_STARTRACKER_WEBAPIADAPTER_H diff --git a/plugins/feature/startracker/startrackerworker.cpp b/plugins/feature/startracker/startrackerworker.cpp new file mode 100644 index 000000000..268a2a3fb --- /dev/null +++ b/plugins/feature/startracker/startrackerworker.cpp @@ -0,0 +1,551 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "SWGTargetAzimuthElevation.h" +#include "SWGMapItem.h" + +#include "webapi/webapiadapterinterface.h" +#include "webapi/webapiutils.h" + +#include "util/units.h" +#include "maincore.h" + +#include "startracker.h" +#include "startrackerworker.h" +#include "startrackerreport.h" + +MESSAGE_CLASS_DEFINITION(StarTrackerWorker::MsgConfigureStarTrackerWorker, Message) +MESSAGE_CLASS_DEFINITION(StarTrackerReport::MsgReportAzAl, Message) +MESSAGE_CLASS_DEFINITION(StarTrackerReport::MsgReportRADec, Message) + +StarTrackerWorker::StarTrackerWorker(StarTracker* starTracker, WebAPIAdapterInterface *webAPIAdapterInterface) : + m_starTracker(starTracker), + m_webAPIAdapterInterface(webAPIAdapterInterface), + m_msgQueueToFeature(nullptr), + m_msgQueueToGUI(nullptr), + m_running(false), + m_mutex(QMutex::Recursive), + m_tcpServer(nullptr), + m_clientConnection(nullptr) +{ + connect(&m_pollTimer, SIGNAL(timeout()), this, SLOT(update())); +} + +StarTrackerWorker::~StarTrackerWorker() +{ + m_inputMessageQueue.clear(); +} + +void StarTrackerWorker::reset() +{ + QMutexLocker mutexLocker(&m_mutex); + m_inputMessageQueue.clear(); +} + +bool StarTrackerWorker::startWork() +{ + QMutexLocker mutexLocker(&m_mutex); + connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + m_pollTimer.start((int)round(m_settings.m_updatePeriod*1000.0)); + m_running = true; + return m_running; +} + +void StarTrackerWorker::stopWork() +{ + QMutexLocker mutexLocker(&m_mutex); + disconnect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); + restartServer(false, 0); + m_pollTimer.stop(); + m_running = false; +} + +void StarTrackerWorker::handleInputMessages() +{ + Message* message; + + while ((message = m_inputMessageQueue.pop()) != nullptr) + { + if (handleMessage(*message)) { + delete message; + } + } +} + +bool StarTrackerWorker::handleMessage(const Message& cmd) +{ + if (MsgConfigureStarTrackerWorker::match(cmd)) + { + QMutexLocker mutexLocker(&m_mutex); + MsgConfigureStarTrackerWorker& cfg = (MsgConfigureStarTrackerWorker&) cmd; + + applySettings(cfg.getSettings(), cfg.getForce()); + return true; + } + else + { + return false; + } +} + +void StarTrackerWorker::applySettings(const StarTrackerSettings& settings, bool force) +{ + qDebug() << "StarTrackerWorker::applySettings:" + << " m_target: " << settings.m_target + << " m_ra: " << settings.m_ra + << " m_dec: " << settings.m_dec + << " m_time: " << settings.m_dateTime + << " m_enableServer: " << settings.m_enableServer + << " m_serverPort: " << settings.m_serverPort + << " m_updatePeriod: " << settings.m_updatePeriod + << " force: " << force; + + if ((m_settings.m_target != settings.m_target) + || (m_settings.m_latitude != settings.m_latitude) + || (m_settings.m_longitude != settings.m_longitude) + || (m_settings.m_dateTime != settings.m_dateTime) + || (m_settings.m_refraction != settings.m_refraction) + || (m_settings.m_pressure != settings.m_pressure) + || (m_settings.m_temperature != settings.m_temperature) + || (m_settings.m_ra != settings.m_ra) + || (m_settings.m_dec != settings.m_dec) || force) + { + // Recalculate immediately + QTimer::singleShot(1, this, &StarTrackerWorker::update); + m_pollTimer.start((int)round(settings.m_updatePeriod*1000.0)); + } + else if ((m_settings.m_updatePeriod != settings.m_updatePeriod) || force) + { + m_pollTimer.start((int)round(settings.m_updatePeriod*1000.0)); + } + + if (!settings.m_drawSunOnMap && m_settings.m_drawSunOnMap) + removeFromMap("Sun"); + if (!settings.m_drawMoonOnMap && m_settings.m_drawMoonOnMap) + removeFromMap("Moon"); + if ((!settings.m_drawStarOnMap && m_settings.m_drawStarOnMap) + || (((settings.m_target == "Sun") || (settings.m_target == "Moon")) + && ((m_settings.m_target != "Sun") && (m_settings.m_target != "Moon")))) + removeFromMap("Star"); + + if ((settings.m_serverPort != m_settings.m_serverPort) || + (settings.m_enableServer != m_settings.m_enableServer) || force) + { + restartServer(settings.m_enableServer, settings.m_serverPort); + } + + m_settings = settings; +} + +void StarTrackerWorker::restartServer(bool enabled, uint32_t port) +{ + if (m_tcpServer) + { + if (m_clientConnection) + { + m_clientConnection->close(); + delete m_clientConnection; + m_clientConnection = nullptr; + } + + disconnect(m_tcpServer, &QTcpServer::newConnection, this, &StarTrackerWorker::acceptConnection); + m_tcpServer->close(); + delete m_tcpServer; + m_tcpServer = nullptr; + } + + if (enabled) + { + qDebug() << "StarTrackerWorker::restartServer: server enabled on port " << port; + m_tcpServer = new QTcpServer(this); + + if (!m_tcpServer->listen(QHostAddress::Any, port)) { + qWarning("Star Tracker failed to listen on port %u. Check it is not already in use.", port); + } else { + connect(m_tcpServer, &QTcpServer::newConnection, this, &StarTrackerWorker::acceptConnection); + } + } +} + +void StarTrackerWorker::acceptConnection() +{ + QMutexLocker mutexLocker(&m_mutex); + m_clientConnection = m_tcpServer->nextPendingConnection(); + + if (!m_clientConnection) { + return; + } + + connect(m_clientConnection, &QIODevice::readyRead, this, &StarTrackerWorker::readStellariumCommand); + connect(m_clientConnection, SIGNAL(disconnected()), this, SLOT(disconnected())); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + connect(m_clientConnection, QOverload::of(&QAbstractSocket::error), this, &StarTrackerWorker::errorOccurred); +#else + connect(m_clientConnection, &QAbstractSocket::errorOccurred, this, &StarTrackerWorker::errorOccurred); +#endif + qDebug() << "StarTrackerWorker::acceptConnection: client connected"; +} + +void StarTrackerWorker::disconnected() +{ + QMutexLocker mutexLocker(&m_mutex); + qDebug() << "StarTrackerWorker::disconnected"; + m_clientConnection->deleteLater(); + m_clientConnection = nullptr; + /*if (m_msgQueueToFeature) + { + StarTrackerWorker::MsgReportWorker *msg = StarTrackerWorker::MsgReportWorker::create("Disconnected"); + m_msgQueueToFeature->push(msg); + }*/ +} + +void StarTrackerWorker::errorOccurred(QAbstractSocket::SocketError socketError) +{ + qDebug() << "StarTrackerWorker::errorOccurred: " << socketError; + /*if (m_msgQueueToFeature) + { + StarTrackerWorker::MsgReportWorker *msg = StarTrackerWorker::MsgReportWorker::create(m_socket.errorString() + " " + socketError); + m_msgQueueToFeature->push(msg); + }*/ +} + +// Get RA & Dec from Stellarium +// Protocol described here: +// http://svn.code.sf.net/p/stellarium/code/trunk/telescope_server/stellarium_telescope_protocol.txt +void StarTrackerWorker::readStellariumCommand() +{ + QMutexLocker mutexLocker(&m_mutex); + + unsigned char buf[64]; + qint64 len; + + len = m_clientConnection->read((char *)buf, sizeof(buf)); + if (len != -1) + { + int msg_len; + int msg_type; + unsigned char *msg; + + // Extract length and message type + msg_len = buf[0] | (buf[1] << 8); + msg_type = buf[2] | (buf[3] << 8); + msg = &buf[4]; + + if (msg_type == 0) // MessageGoto + { + unsigned ra; + int dec; + + if (msg_len == 20) + { + // Skip time + msg += 8; + // Extract RA LSB first + ra = msg[0] | (msg[1] << 8) | (msg[2] << 16) | (msg[3] << 24); + msg += 4; + // Extract DEC LSB first + dec = msg[0] | (msg[1] << 8) | (msg[2] << 16) | (msg[3] << 24); + msg += 4; + + // Convert from integer to floating point + double raDeg = ra*(24.0/4294967296.0); // Convert to decimal hours + double decDeg = dec*(360.0/4294967296.0); // Convert to decimal degrees + + // Set as current target + m_settings.m_ra = Units::decimalHoursToHoursMinutesAndSeconds(raDeg); + m_settings.m_dec = Units::decimalDegreesToDegreeMinutesAndSeconds(decDeg); + + qDebug() << "StarTrackerWorker: New target from Stellarum: " << m_settings.m_ra << " " << m_settings.m_dec; + + // Forward to GUI for display + if (getMessageQueueToGUI()) + getMessageQueueToGUI()->push(StarTrackerReport::MsgReportRADec::create(raDeg, decDeg)); + } + else + { + qDebug() << "StarTrackerWorker: Unexpected number of bytes received (" << len << ") for message type: " << msg_type; + } + } + else + { + qDebug() << "StarTrackerWorker: Unsupported Stellarium message type: " << msg_type; + } + } +} + +// Send our target to Stellarium (J2000 epoch) +void StarTrackerWorker::writeStellariumTarget(double ra, double dec) +{ + QMutexLocker mutexLocker(&m_mutex); + + if (m_clientConnection != nullptr) + { + unsigned char buf[24]; + + // Length + buf[0] = sizeof(buf); + buf[1] = 0; + // Type (MessageCurrentPosition) + buf[2] = 0; + buf[3] = 0; + // Time (unused) + buf[4] = 0; + buf[5] = 0; + buf[6] = 0; + buf[7] = 0; + buf[8] = 0; + buf[9] = 0; + buf[10] = 0; + buf[11] = 0; + // RA + unsigned raInt = ra * (4294967296.0/24.0); + buf[12] = raInt & 0xff; + buf[13] = (raInt >> 8) & 0xff; + buf[14] = (raInt >> 16) & 0xff; + buf[15] = (raInt >> 24) & 0xff; + // Dec + int decInt = dec * (4294967296.0/360.0); + buf[16] = decInt & 0xff; + buf[17] = (decInt >> 8) & 0xff; + buf[18] = (decInt >> 16) & 0xff; + buf[19] = (decInt >> 24) & 0xff; + // Status (OK) + buf[20] = 0; + buf[21] = 0; + buf[22] = 0; + buf[23] = 0; + + m_clientConnection->write((char *)buf, sizeof(buf)); + } +} + + +void StarTrackerWorker::updateRaDec(RADec rd, QDateTime dt) +{ + RADec rdJ2000; + double jd; + + jd = Astronomy::julianDate(dt); + // Precess to J2000 + rdJ2000 = Astronomy::precess(rd, jd, Astronomy::jd_j2000()); + // Send to Stellarium + writeStellariumTarget(rdJ2000.ra, rdJ2000.dec); + // Send to GUI + if (m_settings.m_target == "Sun" || m_settings.m_target == "Moon") + { + if (getMessageQueueToGUI()) + { + if (m_settings.m_jnow) + getMessageQueueToGUI()->push(StarTrackerReport::MsgReportRADec::create(rd.ra, rd.dec)); + else + getMessageQueueToGUI()->push(StarTrackerReport::MsgReportRADec::create(rdJ2000.ra, rdJ2000.dec)); + } + } +} + +void StarTrackerWorker::removeFromMap(QString id) +{ + MessagePipes& messagePipes = MainCore::instance()->getMessagePipes(); + QList *mapMessageQueues = messagePipes.getMessageQueues(m_starTracker, "mapitems"); + if (mapMessageQueues) + { + sendToMap(mapMessageQueues, id, "", "", 0.0, 0.0); + } +} + +void StarTrackerWorker::sendToMap(QList *mapMessageQueues, QString name, QString image, QString text, double lat, double lon, double rotation) +{ + QList::iterator it = mapMessageQueues->begin(); + + for (; it != mapMessageQueues->end(); ++it) + { + SWGSDRangel::SWGMapItem *swgMapItem = new SWGSDRangel::SWGMapItem(); + swgMapItem->setName(new QString(name)); + swgMapItem->setLatitude(lat); + swgMapItem->setLongitude(lon); + swgMapItem->setImage(new QString(image)); + swgMapItem->setImageRotation(rotation); + swgMapItem->setText(new QString(text)); + swgMapItem->setImageFixedSize(1); + + MainCore::MsgMapItem *msg = MainCore::MsgMapItem::create(m_starTracker, swgMapItem); + (*it)->push(msg); + } +} + +QString moonPhase(double sunLongitude, double moonLongitude, double observationLatitude, double &rotation) +{ + double difference = sunLongitude - moonLongitude; + if (difference < -180.0) + difference += 360.0; + else if (difference > 180.0) + difference -= 360.0; + + if (difference >= 0.0) + rotation = observationLatitude - 90.0; + else + rotation = 90.0 - observationLatitude; + + // These probably shouldn't be divided equally + if (difference < -157.5) + return "full"; + else if (difference < -112.5) + return "waxing-gibbous"; + else if (difference < -67.5) + return "first-quarter"; + else if (difference < -22.5) + return "waxing-crescent"; + else if (difference < 22.5) + return "new"; + else if (difference < 67.5) + return "waning-crescent"; + else if (difference < 112.5) + return "third-quarter"; + else if (difference < 157.5) + return "waning-gibbous"; + else if (difference < 202.5) + return "full"; + else + return "full"; +} + +void StarTrackerWorker::update() +{ + AzAlt aa, sunAA, moonAA; + RADec rd, sunRD, moonRD; + + QDateTime dt; + + // Get date and time to calculate position at + if (m_settings.m_dateTime == "") + dt = QDateTime::currentDateTime(); + else + dt = QDateTime::fromString(m_settings.m_dateTime, Qt::ISODateWithMs); + + // Calculate position + if ((m_settings.m_target == "Sun") || (m_settings.m_drawSunOnMap)) + Astronomy::sunPosition(sunAA, sunRD, m_settings.m_latitude, m_settings.m_longitude, dt); + if ((m_settings.m_target == "Moon") || (m_settings.m_drawMoonOnMap)) + Astronomy::moonPosition(moonAA, moonRD, m_settings.m_latitude, m_settings.m_longitude, dt); + + if (m_settings.m_target == "Sun") + { + rd = sunRD; + aa = sunAA; + } + else if (m_settings.m_target == "Moon") + { + rd = moonRD; + aa = moonAA; + } + else + { + // Convert RA/Dec to Alt/Az + rd.ra = Astronomy::raToDecimal(m_settings.m_ra); + rd.dec = Astronomy::decToDecimal(m_settings.m_dec); + aa = Astronomy::raDecToAzAlt(rd, m_settings.m_latitude, m_settings.m_longitude, dt, !m_settings.m_jnow); + } + updateRaDec(rd, dt); + + // Adjust for refraction + if (m_settings.m_refraction == "Positional Astronomy Library") + { + aa.alt += Astronomy::refractionPAL(aa.alt, m_settings.m_pressure, m_settings.m_temperature, m_settings.m_humidity, + m_settings.m_frequency, m_settings.m_latitude, m_settings.m_heightAboveSeaLevel, + m_settings.m_temperatureLapseRate); + if (aa.alt > 90.0) + aa.alt = 90.0f; + } + else if (m_settings.m_refraction == "Saemundsson") + { + aa.alt += Astronomy::refractionSaemundsson(aa.alt, m_settings.m_pressure, m_settings.m_temperature); + if (aa.alt > 90.0) + aa.alt = 90.0f; + } + + // Send to GUI + if (getMessageQueueToGUI()) + { + StarTrackerReport::MsgReportAzAl *msg = StarTrackerReport::MsgReportAzAl::create(aa.az, aa.alt); + getMessageQueueToGUI()->push(msg); + } + + // Send Az/El to Rotator Controllers + MessagePipes& messagePipes = MainCore::instance()->getMessagePipes(); + QList *mapMessageQueues = messagePipes.getMessageQueues(m_starTracker, "target"); + if (mapMessageQueues) + { + QList::iterator it = mapMessageQueues->begin(); + + for (; it != mapMessageQueues->end(); ++it) + { + SWGSDRangel::SWGTargetAzimuthElevation *swgTarget = new SWGSDRangel::SWGTargetAzimuthElevation(); + swgTarget->setName(new QString(m_settings.m_target)); + swgTarget->setAzimuth(aa.az); + swgTarget->setElevation(aa.alt); + (*it)->push(MainCore::MsgTargetAzimuthElevation::create(m_starTracker, swgTarget)); + } + } + + // Send to Map + if (m_settings.m_drawSunOnMap || m_settings.m_drawMoonOnMap || m_settings.m_drawStarOnMap) + { + mapMessageQueues = messagePipes.getMessageQueues(m_starTracker, "mapitems"); + if (mapMessageQueues) + { + // Different between GMST(Lst at Greenwich) and RA + double lst = Astronomy::localSiderealTime(dt, 0.0); + double sunLongitude; + double sunLatitude; + + if (m_settings.m_drawSunOnMap || m_settings.m_drawMoonOnMap) + { + sunLongitude = Astronomy::lstAndRAToLongitude(lst, sunRD.ra); + sunLatitude = sunRD.dec; + sendToMap(mapMessageQueues, "Sun", "qrc:///startracker/startracker/sun-40.png", "Sun", sunLatitude, sunLongitude); + } + if (m_settings.m_drawMoonOnMap) + { + double moonLongitude = Astronomy::lstAndRAToLongitude(lst, moonRD.ra); + double moonLatitude = moonRD.dec; + double moonRotation; + QString phase = moonPhase(sunLongitude, moonLongitude, m_settings.m_latitude, moonRotation); + sendToMap(mapMessageQueues, "Moon", QString("qrc:///startracker/startracker/moon-%1-32").arg(phase), "Moon", + moonLatitude, moonLongitude, moonRotation); + } + if ((m_settings.m_drawStarOnMap) && (m_settings.m_target != "Sun") && (m_settings.m_target != "Moon")) + { + double starLongitude = Astronomy::lstAndRAToLongitude(lst, rd.ra); + double starLatitude = rd.dec; + QString text = m_settings.m_target == "Custom" ? "Star" : m_settings.m_target; + sendToMap(mapMessageQueues, "Star", "qrc:///startracker/startracker/pulsar-32.png", text, starLatitude, starLongitude); + } + } + } + +} diff --git a/plugins/feature/startracker/startrackerworker.h b/plugins/feature/startracker/startrackerworker.h new file mode 100644 index 000000000..591b0cbd9 --- /dev/null +++ b/plugins/feature/startracker/startrackerworker.h @@ -0,0 +1,109 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2020 Edouard Griffiths, F4EXB // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_FEATURE_STARTRACKERWORKER_H_ +#define INCLUDE_FEATURE_STARTRACKERWORKER_H_ + +#include +#include +#include + +#include "util/message.h" +#include "util/messagequeue.h" +#include "util/astronomy.h" + +#include "startrackersettings.h" + +class WebAPIAdapterInterface; +class QTcpServer; +class QTcpSocket; +class StarTracker; +class QDateTime; + +class StarTrackerWorker : public QObject +{ + Q_OBJECT +public: + class MsgConfigureStarTrackerWorker : public Message { + MESSAGE_CLASS_DECLARATION + + public: + const StarTrackerSettings& getSettings() const { return m_settings; } + bool getForce() const { return m_force; } + + static MsgConfigureStarTrackerWorker* create(const StarTrackerSettings& settings, bool force) + { + return new MsgConfigureStarTrackerWorker(settings, force); + } + + private: + StarTrackerSettings m_settings; + bool m_force; + + MsgConfigureStarTrackerWorker(const StarTrackerSettings& settings, bool force) : + Message(), + m_settings(settings), + m_force(force) + { } + }; + + StarTrackerWorker(StarTracker* starTracker, WebAPIAdapterInterface *webAPIAdapterInterface); + ~StarTrackerWorker(); + void reset(); + bool startWork(); + void stopWork(); + bool isRunning() const { return m_running; } + MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } + void setMessageQueueToFeature(MessageQueue *messageQueue) { m_msgQueueToFeature = messageQueue; } + void setMessageQueueToGUI(MessageQueue *messageQueue) { m_msgQueueToGUI = messageQueue; } + +private: + + StarTracker* m_starTracker; + WebAPIAdapterInterface *m_webAPIAdapterInterface; + MessageQueue m_inputMessageQueue; //!< Queue for asynchronous inbound communication + MessageQueue *m_msgQueueToFeature; //!< Queue to report channel change to main feature object + MessageQueue *m_msgQueueToGUI; + StarTrackerSettings m_settings; + bool m_running; + QMutex m_mutex; + QTimer m_pollTimer; + QTcpServer *m_tcpServer; + QTcpSocket *m_clientConnection; + + bool handleMessage(const Message& cmd); + void applySettings(const StarTrackerSettings& settings, bool force = false); + void restartServer(bool enabled, uint32_t port); + MessageQueue *getMessageQueueToGUI() { return m_msgQueueToGUI; } + void setAzimuth(int azimuth); + void setAzimuthElevation(int azimuth, int elevation); + void updateRaDec(RADec rd, QDateTime dt); + void writeStellariumTarget(double ra, double dec); + void removeFromMap(QString id); + void sendToMap(QList *mapMessageQueues, QString id, QString image, QString text, double lat, double lon, double rotation=0.0); + +private slots: + void handleInputMessages(); + void update(); + void acceptConnection(); + void disconnected(); + void errorOccurred(QAbstractSocket::SocketError socketError); + void readStellariumCommand(); +}; + +#endif // INCLUDE_FEATURE_STARTRACKERWORKER_H_ diff --git a/sdrbase/CMakeLists.txt b/sdrbase/CMakeLists.txt index 2735611a2..35b21ce28 100644 --- a/sdrbase/CMakeLists.txt +++ b/sdrbase/CMakeLists.txt @@ -176,6 +176,8 @@ set(sdrbase_SOURCES settings/mainsettings.cpp util/ax25.cpp + util/aprs.cpp + util/astronomy.cpp util/azel.cpp util/crc.cpp util/CRC64.cpp @@ -366,6 +368,8 @@ set(sdrbase_HEADERS settings/mainsettings.h util/ax25.h + util/aprs.h + util/astronomy.h util/azel.h util/CRC64.h util/csv.h diff --git a/sdrbase/util/astronomy.cpp b/sdrbase/util/astronomy.cpp new file mode 100644 index 000000000..76544449b --- /dev/null +++ b/sdrbase/util/astronomy.cpp @@ -0,0 +1,896 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// Copyright (C) 2004 Rutherford Appleton Laboratory // +// Copyright (C) 2012 Science and Technology Facilities Council. // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include + +#include +#include +#include + +#include "util/units.h" +#include "astronomy.h" + +// Function prototypes +static void palRefz(double zu, double refa, double refb, double *zr); +static void palRefco (double hm, double tdk, double pmb, double rh, + double wl, double phi, double tlr, double eps, + double *refa, double *refb); +static void palRefro( double zobs, double hm, double tdk, double pmb, + double rh, double wl, double phi, double tlr, + double eps, double * ref); + + +// Calculate Julian date (days since January 1, 4713 BC) from Gregorian calendar date +double Astronomy::julianDate(int year, int month, int day, int hours, int minutes, int seconds) +{ + int julian_day; + double julian_date; + + // From: https://en.wikipedia.org/wiki/Julian_day + julian_day = (1461 * (year + 4800 + (month - 14)/12))/4 +(367 * (month - 2 - 12 * ((month - 14)/12)))/12 - (3 * ((year + 4900 + (month - 14)/12)/100))/4 + day - 32075; + julian_date = julian_day + (hours/24.0 - 0.5) + minutes/(24.0*60.0) + seconds/(24.0*60.0*60.0); + + return julian_date; +} + +// Calculate Julian date +double Astronomy::julianDate(QDateTime dt) +{ + QDateTime utc = dt.toUTC(); + QDate date = utc.date(); + QTime time = utc.time(); + return julianDate(date.year(), date.month(), date.day(), time.hour(), time.minute(), time.second()); +} + +// Get Julian date of J2000 Epoch +double Astronomy::jd_j2000(void) +{ + static double j2000 = 0.0; + + if (j2000 == 0.0) { + j2000 = julianDate(2000, 1, 1, 12, 0, 0); + } + return j2000; +} + +// Get Julian date of B1950 Epoch +double Astronomy::jd_b1950(void) +{ + static double b1950 = 0.0; + + if (b1950 == 0.0) { + b1950 = julianDate(1949, 12, 31, 22, 9, 0); + } + return b1950; +} + +// Get Julian date of current time Epoch +double Astronomy::jd_now(void) +{ + time_t system_time; + struct tm *utc_time; + + // Get current time in seconds since Unix Epoch (1970) + time(&system_time); + // Convert to UTC (GMT) + utc_time = gmtime(&system_time); + + // Convert to Julian date + return julianDate(utc_time->tm_year + 1900, utc_time->tm_mon + 1, utc_time->tm_mday, + utc_time->tm_hour, utc_time->tm_min, utc_time->tm_sec); +} + +// Precess a RA/DEC between two given Epochs +RADec Astronomy::precess(RADec rd_in, double jd_from, double jd_to) +{ + RADec rd_out; + double x, y, z; + double xp, yp, zp; + double ra_rad, dec_rad; + double rot[3][3]; // [row][col] + double ra_deg; + + double days_per_century = 36524.219878; + double t0 = (jd_from - jd_b1950())/days_per_century; // Tropical centuries since B1950.0 + double t = (jd_to - jd_from)/days_per_century; // Tropical centuries from starting epoch to ending epoch + + // From: https://www.cloudynights.com/topic/561254-ra-dec-epoch-conversion/ + rot[0][0] = 1.0 - ((29696.0 + 26.0*t0)*t*t - 13.0*t*t*t)*.00000001; + rot[1][0] = ((2234941.0 + 1355.0*t0)*t - 676.0*t*t + 221.0*t*t*t)*.00000001; + rot[2][0] = ((971690.0 - 414.0*t0)*t + 207.0*t*t + 96.0*t*t*t)*.00000001; + rot[0][1] = -rot[1][0]; + rot[1][1] = 1.0 - ((24975.0 + 30.0*t0)*t*t - 15.0*t*t*t)*.00000001; + rot[2][1] = -((10858.0 + 2.0*t0)*t*t)*.00000001; + rot[0][2] = -rot[2][0]; + rot[1][2] = rot[2][1]; + rot[2][2] = 1.0 - ((4721.0 - 4.0*t0)*t*t)*.00000001; + + // Hours to degrees + ra_deg = rd_in.ra*(360.0/24.0); + + // Convert to rectangular coordinates + ra_rad = Units::degreesToRadians(ra_deg); + dec_rad = Units::degreesToRadians(rd_in.dec); + x = cos(ra_rad) * cos(dec_rad); + y = sin(ra_rad) * cos(dec_rad); + z = sin(dec_rad); + + // Rotate + xp = rot[0][0]*x + rot[0][1]*y + rot[0][2]*z; + yp = rot[1][0]*x + rot[1][1]*y + rot[1][2]*z; + zp = rot[2][0]*x + rot[2][1]*y + rot[2][2]*z; + + // Convert back to spherical coordinates + rd_out.ra = Units::radiansToDegrees(atan(yp/xp)); + if (xp < 0.0) { + rd_out.ra += 180.0; + } else if ((yp < 0) && (xp > 0)) { + rd_out.ra += 360.0; + } + rd_out.dec = Units::radiansToDegrees(asin(zp)); + + // Degrees to hours + rd_out.ra /= (360.0/24.0); + + return rd_out; +} + +// Calculate local mean sidereal time (LMST) in degrees +double Astronomy::localSiderealTime(QDateTime dateTime, double longitude) +{ + double jd = julianDate(dateTime); + + double d = (jd - jd_j2000()); // Days since J2000 epoch (including fraction) + double f = fmod(jd, 1.0); // Fractional part is decimal days + double ut = (f+0.5)*24.0; // Universal time in decimal hours + + // https://astronomy.stackexchange.com/questions/24859/local-sidereal-time + // 100.46 is offset for GMST at 0h UT on 1 Jan 2000 + // 0.985647 is number of degrees per day over 360 the Earth rotates in one solar day + // Approx to 0.3 arcseconds + return fmod(100.46 + 0.985647 * d + longitude + (360/24) * ut, 360.0); +} + +// Convert from J2000 right ascension (decimal hours) and declination (decimal degrees) to altitude and azimuth, for location (decimal degrees) and time +AzAlt Astronomy::raDecToAzAlt(RADec rd, double latitude, double longitude, QDateTime dt, bool j2000) +{ + AzAlt aa; + double ra_deg; // Right ascension in degrees + double lst_deg; // Local sidereal time in degrees + double ha; // Hour angle + double a, az; + double dec_rad, lat_rad, ha_rad, alt_rad; // Corresponding variables as radians + + double jd = julianDate(dt); + + // Precess RA/DEC from J2000 Epoch to desired (typically current) Epoch + if (j2000) + rd = precess(rd, jd_j2000(), jd); + + // Calculate local mean sidereal time (LMST) in degrees + // https://astronomy.stackexchange.com/questions/24859/local-sidereal-time + // 100.46 is offset for GMST at 0h UT on 1 Jan 2000 + // 0.985647 is number of degrees per day over 360 the Earth rotates in one solar day + // Approx to 0.3 arcseconds + lst_deg = Astronomy::localSiderealTime(dt, longitude); + + // Convert right ascension from hours to degrees + ra_deg = rd.ra * (360.0/24.0); + + // Calculate hour angle + ha = fmod(lst_deg - ra_deg, 360.0); + + // Convert degrees to radians + dec_rad = Units::degreesToRadians(rd.dec); + lat_rad = Units::degreesToRadians(latitude); + ha_rad = Units::degreesToRadians(ha); + + // Calculate altitude and azimuth - no correction for atmospheric refraction + // From: http://www.convertalot.com/celestial_horizon_co-ordinates_calculator.html + alt_rad = asin(sin(dec_rad)*sin(lat_rad) + cos(dec_rad)*cos(lat_rad)*cos(ha_rad)); + a = Units::radiansToDegrees(acos((sin(dec_rad)-sin(alt_rad)*sin(lat_rad)) / (cos(alt_rad)*cos(lat_rad)))); + if (sin(ha_rad) < 0.0) { + az = a; + } else { + az = 360.0 - a; + } + + aa.alt = Units::radiansToDegrees(alt_rad); + aa.az = az; + return aa; +} + +// Needs to work for negative a +double Astronomy::modulo(double a, double b) +{ + return a - b * floor(a/b); +} + +// Calculate azimuth and altitude angles to the sun from the given latitude and longitude at the given time +// Refer to: +// https://en.wikipedia.org/wiki/Position_of_the_Sun +// https://www.aa.quae.nl/en/reken/zonpositie.html +// Said to be accurate to .01 degree (36") for dates between 1950 and 2050 +// although we use slightly more accurate constants and an extra term in the equation +// of centre from the second link +// For an alternative, see: http://www.psa.es/sdg/sunpos.htm +// Most accurate algorithm is supposedly: https://midcdmz.nrel.gov/spa/ +void Astronomy::sunPosition(AzAlt& aa, RADec& rd, double latitude, double longitude, QDateTime dt) +{ + double jd = julianDate(dt); + double n = (jd - jd_j2000()); // Days since J2000 epoch (including fraction) + + double l = 280.461 + 0.9856474 * n; // Mean longitude of the Sun, corrected for the abberation of light + double g = 357.5291 + 0.98560028 * n; // Mean anomaly of the Sun - how far around orbit from perihlion, in degrees + + l = modulo(l, 360.0); + g = modulo(g, 360.0); + + double gr = Units::degreesToRadians(g); + + double la = l + 1.9148 * sin(gr) + 0.0200 * sin(2.0*gr) + 0.0003 * sin(3.0*gr); // Ecliptic longitude (Ecliptic latitude b set to 0) + + // Convert la, b=0, which give the position of the Sun in the ecliptic coordinate sytem, to + // equatorial coordinates + + double e = 23.4393 - 3.563E-7 * n; // Obliquity of the ecliptic - tilt of Earth's axis of rotation + + double er = Units::degreesToRadians(e); + double lr = Units::degreesToRadians(la); + + double a = atan2(cos(er) * sin(lr), cos(lr)); // Right ascension, radians + double d = asin(sin(er) * sin(lr)); // Declination, radians + + rd.ra = modulo(Units::radiansToDegrees(a), 360.0) / (360.0/24.0); // Convert to hours + rd.dec = Units::radiansToDegrees(d); // Convert to degrees + + aa = raDecToAzAlt(rd, latitude, longitude, dt, false); +} + +double Astronomy::moonDays(QDateTime dt) +{ + QDateTime utc = dt.toUTC(); + QDate date = utc.date(); + QTime time = utc.time(); + + int y = date.year(); + int m = date.month(); + int D = date.day(); + int d = 367 * y - 7 * (y + (m+9)/12) / 4 - 3 * ((y + (m-9)/7) / 100 + 1) / 4 + 275*m/9 + D - 730515; + + return d + time.hour()/24.0 + time.minute()/(24.0*60.0) + time.second()/(24.0*60.0*60.0); +} + +// Calculate azimuth and altitude angles to the moon from the given latitude and longitude at the given time +// Refer to: https://stjarnhimlen.se/comp/ppcomp.html +// Accurate to 4 arcminute +void Astronomy::moonPosition(AzAlt& aa, RADec& rd, double latitude, double longitude, QDateTime dt) +{ + double d = moonDays(dt); + + double ecl = Units::degreesToRadians(23.4393 - 3.563E-7 * d); // Obliquity of the ecliptic - tilt of Earth's axis of rotation + + // Orbital elements for the Sun + double Ns = 0.0; + double is = 0.0; + double ws = Units::degreesToRadians(282.9404 + 4.70935E-5 * d); + double as = 1.0; // (AU) + double es = 0.016709 - 1.151E-9 * d; // ecs + double Ms = Units::degreesToRadians(356.0470 + 0.9856002585 * d); + + // Orbital elements for the Moon + double Nm = Units::degreesToRadians(125.1228 - 0.0529538083 * d); // longitude of the ascending node + double im = Units::degreesToRadians(5.1454); // inclination to the ecliptic (plane of the Earth's orbit) + double wm = Units::degreesToRadians(318.0634 + 0.1643573223 * d); // argument of perihelion + double am = 60.2666; // (Earth radii) semi-major axis, or mean distance from Sun + double em = 0.054900; // ecm // eccentricity (0=circle, 0-1=ellipse, 1=parabola) + double Mm = Units::degreesToRadians(115.3654 + 13.0649929509 * d); // mean anomaly (0 at perihelion; increases uniformly with time), degrees + + double Em = Mm + em * sin(Mm) * (1.0 + em * cos(Mm)); // Eccentric anomaly in radians + + double xv = am * (cos(Em) - em); + double yv = am * (sqrt(1.0 - em*em) * sin(Em)); + + double vm = atan2(yv, xv); // True anomaly + double rm = sqrt(xv*xv + yv*yv); // Distance + + // Compute position in space (for the Moon, this is geocentric) + double xh = rm * (cos(Nm) * cos(vm+wm) - sin(Nm) * sin(vm+wm) * cos(im)); + double yh = rm * (sin(Nm) * cos(vm+wm) + cos(Nm) * sin(vm+wm) * cos(im)); + double zh = rm * (sin(vm+wm) * sin(im)); + + // Convert to ecliptic longitude and latitude + double lonecl = atan2(yh, xh); + double latecl = atan2(zh, sqrt(xh*xh+yh*yh)); + + // Perturbations of the Moon + + double Ls = Ms + ws; // Mean Longitude of the Sun (Ns=0) + double Lm = Mm + wm + Nm; // Mean longitude of the Moon + double D = Lm - Ls; // Mean elongation of the Moon + double F = Lm - Nm; // Argument of latitude for the Moon + + double dlon; + dlon = -1.274 * sin(Mm - 2*D); // (the Evection) + dlon += +0.658 * sin(2*D); // (the Variation) + dlon += -0.186 * sin(Ms); // (the Yearly Equation) + dlon += -0.059 * sin(2*Mm - 2*D); + dlon += -0.057 * sin(Mm - 2*D + Ms); + dlon += +0.053 * sin(Mm + 2*D); + dlon += +0.046 * sin(2*D - Ms); + dlon += +0.041 * sin(Mm - Ms); + dlon += -0.035 * sin(D); // (the Parallactic Equation) + dlon += -0.031 * sin(Mm + Ms); + dlon += -0.015 * sin(2*F - 2*D); + dlon += +0.011 * sin(Mm - 4*D); + + double dlat; + dlat = -0.173 * sin(F - 2*D); + dlat += -0.055 * sin(Mm - F - 2*D); + dlat += -0.046 * sin(Mm + F - 2*D); + dlat += +0.033 * sin(F + 2*D); + dlat += +0.017 * sin(2*Mm + F); + + lonecl += Units::degreesToRadians(dlon); + latecl += Units::degreesToRadians(dlat); + + rm += -0.58 * cos(Mm - 2*D); + rm += -0.46 * cos(2*D); + + // Convert perturbed + xh = rm * cos(lonecl) * cos(latecl); + yh = rm * sin(lonecl) * cos(latecl); + zh = rm * sin(latecl); + + // Convert to geocentric coordinates (already the case for the Moon) + double xg = xh; + double yg = yh; + double zg = zh; + + // Convert to equatorial cordinates + double xe = xg; + double ye = yg * cos(ecl) - zg * sin(ecl); + double ze = yg * sin(ecl) + zg * cos(ecl); + + // Compute right ascension and declination + double ra = atan2(ye, xe); + double dec = atan2(ze, sqrt(xe*xe+ye*ye)); + + rd.ra = modulo(Units::radiansToDegrees(ra), 360.0) / (360.0/24.0); // Convert to hours + rd.dec = Units::radiansToDegrees(dec); // Convert to degrees + + // Convert from geocentric to topocentric + double mpar = asin(1/rm); + + double lat = Units::degreesToRadians(latitude); + double gclat = Units::degreesToRadians(latitude - 0.1924 * sin(2.0 * lat)); + double rho = 0.99833 + 0.00167 * cos(2*lat); + + QTime time = dt.toUTC().time(); + double UT = time.hour() + time.minute()/60.0 + time.second()/(60.0*60.0); + + double GMST0 = Units::radiansToDegrees(Ls)/15.0 + 12; // In hours + double GMST = GMST0 + UT; + double LST = GMST + longitude/15.0; + + double HA = Units::degreesToRadians(LST*15.0 - Units::radiansToDegrees(ra)); // Hour angle in radians + double g = atan(tan(gclat) / cos(HA)); + + double topRA = ra - mpar * rho * cos(gclat) * sin(HA) / cos(dec); + double topDec; + if (g != 0.0) + topDec = dec - mpar * rho * sin(gclat) * sin(g - dec) / sin(g); + else + topDec = dec - mpar * rho * sin(-dec) * cos(HA); + + rd.ra = modulo(Units::radiansToDegrees(topRA), 360.0) / (360.0/24.0); // Convert to hours + rd.dec = Units::radiansToDegrees(topDec); // Convert to degrees + aa = raDecToAzAlt(rd, latitude, longitude, dt, false); +} + +// Calculated adjustment to altitude angle from true to apparent due to atmospheric refraction using +// Saemundsson's formula (which is used by Stellarium and is primarily just for +// optical wavelengths) +// See: https://en.wikipedia.org/wiki/Atmospheric_refraction#Calculating_refraction +// Alt is in degrees. 90 = Zenith gives a factor of 0. +// Pressure in millibars +// Temperature in Celsuis +// We divide by 60.0 to get a value in degrees (as original formula is in arcminutes) +double Astronomy::refractionSaemundsson(double alt, double pressure, double temperature) +{ + double pt = (pressure/1010.0) * (283.0/(273.0+temperature)); + + return (1.02 / tan(Units::degreesToRadians(alt+10.3/(alt+5.11))) + 0.0019279) / 60.0; +} + +// Calculated adjustment to altitude angle from true to apparent due to atmospheric refraction using +// code from Starlink Positional Astronomy Library. This is more accurate for +// radio than Saemundsson's formula, but also more complex. +// See: https://github.com/Starlink/pal +// Alt is in degrees. 90 = Zenith gives a factor of 0. +// Pressure in millibars +// Temperature in Celsuis +// Humdity in % +// Frequency in Hertz +// Latitude in decimal degrees +// HeightAboveSeaLevel in metres +// Temperature lapse rate in K/km +double Astronomy::refractionPAL(double alt, double pressure, double temperature, double humidity, double frequency, + double latitude, double heightAboveSeaLevel, double temperatureLapseRate) +{ + double tdk = Units::celsiusToKelvin(temperature); // Ambient temperature at the observer (K) + double wl = (299792458.0/frequency)*1000000.0; // Wavelength in micrometres + double rh = humidity/100.0; // Relative humidity in range 0-1 + double phi = Units::degreesToRadians(latitude); // Latitude of the observer (radian, astronomical) + double tlr = temperatureLapseRate/1000.0; // Temperature lapse rate in the troposphere (K/metre) + double refa, refb; + double z = 90.0-alt; + double zu = Units::degreesToRadians(z); + double zr; + + palRefco(heightAboveSeaLevel, tdk, pressure, rh, + wl, phi, tlr, 1E-10, + &refa, &refb); + palRefz(zu, refa, refb, &zr); + + return z-Units::radiansToDegrees(zr); +} + +double Astronomy::raToDecimal(const QString& value) +{ + QRegExp decimal("^([0-9]+(\\.[0-9]+)?)"); + QRegExp hms("^([0-9]+)[ h]([0-9]+)[ m]([0-9]+(\\.[0-9]+)?)s?"); + + if (decimal.exactMatch(value)) + return decimal.capturedTexts()[0].toDouble(); + else if (hms.exactMatch(value)) + { + return Units::hoursMinutesSecondsToDecimal( + hms.capturedTexts()[1].toDouble(), + hms.capturedTexts()[2].toDouble(), + hms.capturedTexts()[3].toDouble()); + } + return 0.0; +} + +double Astronomy::decToDecimal(const QString& value) +{ + QRegExp decimal("^(-?[0-9]+(\\.[0-9]+)?)"); + QRegExp dms(QString("^(-?[0-9]+)[ %1d]([0-9]+)[ 'm]([0-9]+(\\.[0-9]+)?)[\"s]?").arg(QChar(0xb0))); + + if (decimal.exactMatch(value)) + return decimal.capturedTexts()[0].toDouble(); + else if (dms.exactMatch(value)) + { + return Units::degreesMinutesSecondsToDecimal( + dms.capturedTexts()[1].toDouble(), + dms.capturedTexts()[2].toDouble(), + dms.capturedTexts()[3].toDouble()); + } + return 0.0; +} + +double Astronomy::lstAndRAToLongitude(double lst, double raHours) +{ + double longitude = lst - (raHours * 15.0); // Convert hours to degrees + if (longitude < -180.0) + longitude += 360.0; + else if (longitude > 180.0) + longitude -= 360.0; + return -longitude; // East positive +} + +// The following functions are from Starlink Positional Astronomy Library +// https://github.com/Starlink/pal + +/* Pi */ +static const double PAL__DPI = 3.1415926535897932384626433832795028841971693993751; + +/* 2Pi */ +static const double PAL__D2PI = 6.2831853071795864769252867665590057683943387987502; + +/* pi/180: degrees to radians */ +static const double PAL__DD2R = 0.017453292519943295769236907684886127134428718885417; + +/* Radians to degrees */ +static const double PAL__DR2D = 57.295779513082320876798154814105170332405472466564; + +/* DMAX(A,B) - return maximum value - evaluates arguments multiple times */ +#define DMAX(A,B) ((A) > (B) ? (A) : (B) ) + +/* DMIN(A,B) - return minimum value - evaluates arguments multiple times */ +#define DMIN(A,B) ((A) < (B) ? (A) : (B) ) + +// Normalize angle into range +/- pi +double palDrange( double angle ) { + double result = fmod( angle, PAL__D2PI ); + if( result > PAL__DPI ) { + result -= PAL__D2PI; + } else if( result < -PAL__DPI ) { + result += PAL__D2PI; + } + return result; +} + +// Calculate stratosphere parameters +static void pal1Atms ( double rt, double tt, double dnt, double gamal, + double r, double * dn, double * rdndr ) { + + double b; + double w; + + b = gamal / tt; + w = (dnt - 1.0) * exp( -b * (r-rt) ); + *dn = 1.0 + w; + *rdndr = -r * b * w; + +} + +// Calculate troposphere parameters +static void pal1Atmt ( double r0, double t0, double alpha, double gamm2, + double delm2, double c1, double c2, double c3, double c4, + double c5, double c6, double r, + double *t, double *dn, double *rdndr ) { + + double tt0; + double tt0gm2; + double tt0dm2; + + *t = DMAX( DMIN( t0 - alpha*(r-r0), 320.0), 100.0 ); + tt0 = *t / t0; + tt0gm2 = pow( tt0, gamm2 ); + tt0dm2 = pow( tt0, delm2 ); + *dn = 1.0 + ( c1 * tt0gm2 - ( c2 - c5 / *t ) * tt0dm2 ) * tt0; + *rdndr = r * ( -c3 * tt0gm2 + ( c4 - c6 / tt0 ) * tt0dm2 ); + +} + +// Adjust unrefracted zenith distance +static void palRefz ( double zu, double refa, double refb, double *zr ) { + + /* Constants */ + + /* Largest usable ZD (deg) */ + const double D93 = 93.0; + + /* ZD at which one model hands over to the other (radians) */ + const double Z83 = 83.0 * PAL__DD2R; + + /* coefficients for high ZD model (used beyond ZD 83 deg) */ + const double C1 = +0.55445; + const double C2 = -0.01133; + const double C3 = +0.00202; + const double C4 = +0.28385; + const double C5 = +0.02390; + + /* High-ZD-model prefiction (deg) for that point */ + const double REF83 = (C1+C2*7.0+C3*49.0)/(1.0+C4*7.0+C5*49.0); + + double zu1,zl,s,c,t,tsq,tcu,ref,e,e2; + + /* perform calculations for zu or 83 deg, whichever is smaller */ + zu1 = DMIN(zu,Z83); + + /* functions of ZD */ + zl = zu1; + s = sin(zl); + c = cos(zl); + t = s/c; + tsq = t*t; + tcu = t*tsq; + + /* refracted zd (mathematically to better than 1 mas at 70 deg) */ + zl = zl-(refa*t+refb*tcu)/(1.0+(refa+3.0*refb*tsq)/(c*c)); + + /* further iteration */ + s = sin(zl); + c = cos(zl); + t = s/c; + tsq = t*t; + tcu = t*tsq; + ref = zu1-zl+ + (zl-zu1+refa*t+refb*tcu)/(1.0+(refa+3.0*refb*tsq)/(c*c)); + + /* special handling for large zu */ + if (zu > zu1) { + e = 90.0-DMIN(D93,zu*PAL__DR2D); + e2 = e*e; + ref = (ref/REF83)*(C1+C2*e+C3*e2)/(1.0+C4*e+C5*e2); + } + + /* return refracted zd */ + *zr = zu-ref; + +} + +// Determine constants in atmospheric refraction model +static void palRefco ( double hm, double tdk, double pmb, double rh, + double wl, double phi, double tlr, double eps, + double *refa, double *refb ) { + + double r1, r2; + + /* Sample zenith distances: arctan(1) and arctan(4) */ + const double ATN1 = 0.7853981633974483; + const double ATN4 = 1.325817663668033; + + /* Determine refraction for the two sample zenith distances */ + palRefro(ATN1,hm,tdk,pmb,rh,wl,phi,tlr,eps,&r1); + palRefro(ATN4,hm,tdk,pmb,rh,wl,phi,tlr,eps,&r2); + + /* Solve for refraction constants */ + *refa = (64.0*r1-r2)/60.0; + *refb = (r2-4.0*r1)/60.0; + +} + +// Atmospheric refraction for radio and optical/IR wavelengths +static void palRefro( double zobs, double hm, double tdk, double pmb, + double rh, double wl, double phi, double tlr, + double eps, double * ref ) { + + /* + * Fixed parameters + */ + + /* 93 degrees in radians */ + const double D93 = 1.623156204; + /* Universal gas constant */ + const double GCR = 8314.32; + /* Molecular weight of dry air */ + const double DMD = 28.9644; + /* Molecular weight of water vapour */ + const double DMW = 18.0152; + /* Mean Earth radius (metre) */ + const double S = 6378120.; + /* Exponent of temperature dependence of water vapour pressure */ + const double DELTA = 18.36; + /* Height of tropopause (metre) */ + const double HT = 11000.; + /* Upper limit for refractive effects (metre) */ + const double HS = 80000.; + /* Numerical integration: maximum number of strips. */ + const int ISMAX=16384l; + + /* Local variables */ + int is, k, n, i, j; + + int optic, loop; /* booleans */ + + double zobs1,zobs2,hmok,tdkok,pmbok,rhok,wlok,alpha, + tol,wlsq,gb,a,gamal,gamma,gamm2,delm2, + tdc,psat,pwo,w, + c1,c2,c3,c4,c5,c6,r0,tempo,dn0,rdndr0,sk0,f0, + rt,tt,dnt,rdndrt,sine,zt,ft,dnts,rdndrp,zts,fts, + rs,dns,rdndrs,zs,fs,refold,z0,zrange,fb,ff,fo,fe, + h,r,sz,rg,dr,tg,dn,rdndr,t,f,refp,reft; + + /* The refraction integrand */ +#define refi(DN,RDNDR) RDNDR/(DN+RDNDR) + + /* Transform ZOBS into the normal range. */ + zobs1 = palDrange(zobs); + zobs2 = DMIN(fabs(zobs1),D93); + + /* keep other arguments within safe bounds. */ + hmok = DMIN(DMAX(hm,-1e3),HS); + tdkok = DMIN(DMAX(tdk,100.0),500.0); + pmbok = DMIN(DMAX(pmb,0.0),10000.0); + rhok = DMIN(DMAX(rh,0.0),1.0); + wlok = DMAX(wl,0.1); + alpha = DMIN(DMAX(fabs(tlr),0.001),0.01); + + /* tolerance for iteration. */ + tol = DMIN(DMAX(fabs(eps),1e-12),0.1)/2.0; + + /* decide whether optical/ir or radio case - switch at 100 microns. */ + optic = wlok < 100.0; + + /* set up model atmosphere parameters defined at the observer. */ + wlsq = wlok*wlok; + gb = 9.784*(1.0-0.0026*cos(phi+phi)-0.00000028*hmok); + if (optic) { + a = (287.6155+(1.62887+0.01360/wlsq)/wlsq) * 273.15e-6/1013.25; + } else { + a = 77.6890e-6; + } + gamal = (gb*DMD)/GCR; + gamma = gamal/alpha; + gamm2 = gamma-2.0; + delm2 = DELTA-2.0; + tdc = tdkok-273.15; + psat = pow(10.0,(0.7859+0.03477*tdc)/(1.0+0.00412*tdc)) * + (1.0+pmbok*(4.5e-6+6.0e-10*tdc*tdc)); + if (pmbok > 0.0) { + pwo = rhok*psat/(1.0-(1.0-rhok)*psat/pmbok); + } else { + pwo = 0.0; + } + w = pwo*(1.0-DMW/DMD)*gamma/(DELTA-gamma); + c1 = a*(pmbok+w)/tdkok; + if (optic) { + c2 = (a*w+11.2684e-6*pwo)/tdkok; + } else { + c2 = (a*w+6.3938e-6*pwo)/tdkok; + } + c3 = (gamma-1.0)*alpha*c1/tdkok; + c4 = (DELTA-1.0)*alpha*c2/tdkok; + if (optic) { + c5 = 0.0; + c6 = 0.0; + } else { + c5 = 375463e-6*pwo/tdkok; + c6 = c5*delm2*alpha/(tdkok*tdkok); + } + + /* conditions at the observer. */ + r0 = S+hmok; + pal1Atmt(r0,tdkok,alpha,gamm2,delm2,c1,c2,c3,c4,c5,c6, + r0,&tempo,&dn0,&rdndr0); + sk0 = dn0*r0*sin(zobs2); + f0 = refi(dn0,rdndr0); + + /* conditions in the troposphere at the tropopause. */ + rt = S+DMAX(HT,hmok); + pal1Atmt(r0,tdkok,alpha,gamm2,delm2,c1,c2,c3,c4,c5,c6, + rt,&tt,&dnt,&rdndrt); + sine = sk0/(rt*dnt); + zt = atan2(sine,sqrt(DMAX(1.0-sine*sine,0.0))); + ft = refi(dnt,rdndrt); + + /* conditions in the stratosphere at the tropopause. */ + pal1Atms(rt,tt,dnt,gamal,rt,&dnts,&rdndrp); + sine = sk0/(rt*dnts); + zts = atan2(sine,sqrt(DMAX(1.0-sine*sine,0.0))); + fts = refi(dnts,rdndrp); + + /* conditions at the stratosphere limit. */ + rs = S+HS; + pal1Atms(rt,tt,dnt,gamal,rs,&dns,&rdndrs); + sine = sk0/(rs*dns); + zs = atan2(sine,sqrt(DMAX(1.0-sine*sine,0.0))); + fs = refi(dns,rdndrs); + + /* variable initialization to avoid compiler warning. */ + reft = 0.0; + + /* integrate the refraction integral in two parts; first in the + * troposphere (k=1), then in the stratosphere (k=2). */ + + for (k=1; k<=2; k++) { + + /* initialize previous refraction to ensure at least two iterations. */ + refold = 1.0; + + /* start off with 8 strips. */ + is = 8; + + /* start z, z range, and start and end values. */ + if (k==1) { + z0 = zobs2; + zrange = zt-z0; + fb = f0; + ff = ft; + } else { + z0 = zts; + zrange = zs-z0; + fb = fts; + ff = fs; + } + + /* sums of odd and even values. */ + fo = 0.0; + fe = 0.0; + + /* first time through the loop we have to do every point. */ + n = 1; + + /* start of iteration loop (terminates at specified precision). */ + loop = 1; + while (loop) { + + /* strip width. */ + h = zrange/((double)is); + + /* initialize distance from earth centre for quadrature pass. */ + if (k == 1) { + r = r0; + } else { + r = rt; + } + + /* one pass (no need to compute evens after first time). */ + for (i=1; i 1e-20) { + w = sk0/sz; + rg = r; + dr = 1.0e6; + j = 0; + while ( fabs(dr) > 1.0 && j < 4 ) { + j++; + if (k==1) { + pal1Atmt(r0,tdkok,alpha,gamm2,delm2, + c1,c2,c3,c4,c5,c6,rg,&tg,&dn,&rdndr); + } else { + pal1Atms(rt,tt,dnt,gamal,rg,&dn,&rdndr); + } + dr = (rg*dn-w)/(dn+rdndr); + rg = rg-dr; + } + r = rg; + } + + /* find the refractive index and integrand at r. */ + if (k==1) { + pal1Atmt(r0,tdkok,alpha,gamm2,delm2, + c1,c2,c3,c4,c5,c6,r,&t,&dn,&rdndr); + } else { + pal1Atms(rt,tt,dnt,gamal,r,&dn,&rdndr); + } + f = refi(dn,rdndr); + + /* accumulate odd and (first time only) even values. */ + if (n==1 && i%2 == 0) { + fe += f; + } else { + fo += f; + } + } + + /* evaluate the integrand using simpson's rule. */ + refp = h*(fb+4.0*fo+2.0*fe+ff)/3.0; + + /* has the required precision been achieved (or can't be)? */ + if (fabs(refp-refold) > tol && is < ISMAX) { + + /* no: prepare for next iteration.*/ + + /* save current value for convergence test. */ + refold = refp; + + /* double the number of strips. */ + is += is; + + /* sum of all current values = sum of next pass's even values. */ + fe += fo; + + /* prepare for new odd values. */ + fo = 0.0; + + /* skip even values next time. */ + n = 2; + } else { + + /* yes: save troposphere component and terminate the loop. */ + if (k==1) reft = refp; + loop = 0; + } + } + } + + /* result. */ + *ref = reft+refp; + if (zobs1 < 0.0) *ref = -(*ref); + +} diff --git a/sdrbase/util/astronomy.h b/sdrbase/util/astronomy.h new file mode 100644 index 000000000..3784c8196 --- /dev/null +++ b/sdrbase/util/astronomy.h @@ -0,0 +1,68 @@ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2021 Jon Beniston, M7RCE // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_ASTRONOMY_H +#define INCLUDE_ASTRONOMY_H + +#include "export.h" + +class QDateTime; + +// Right ascension and declination +struct SDRBASE_API RADec { + double ra; + double dec; +}; + +// Azimuth and Altitude +struct SDRBASE_API AzAlt { + double az; + double alt; +}; + +class SDRBASE_API Astronomy { + +public: + static double julianDate(int year, int month, int day, int hours, int minutes, int seconds); + static double julianDate(QDateTime dt); + + static double jd_j2000(void); + static double jd_b1950(void); + static double jd_now(void); + + static RADec precess(RADec rd_in, double jd_from, double jd_to); + static AzAlt raDecToAzAlt(RADec rd, double latitude, double longitude, QDateTime dt, bool j2000=true); + + static double localSiderealTime(QDateTime dateTime, double longitude); + + static void sunPosition(AzAlt& aa, RADec& rd, double latitude, double longitude, QDateTime dt); + static double moonDays(QDateTime dt); + static void moonPosition(AzAlt& aa, RADec& rd, double latitude, double longitude, QDateTime dt); + + static double refractionSaemundsson(double alt, double pressure, double temperature); + static double refractionPAL(double alt, double pressure, double temperature, double humidity, double frequency, double latitude, double heightAboveSeaLevel, double temperatureLapseRate); + + static double raToDecimal(const QString& value); + static double decToDecimal(const QString& value); + + static double lstAndRAToLongitude(double lst, double raHours); + +protected: + static double modulo(double a, double b); +}; + +#endif // INCLUDE_ASTRONOMY_H From 3adea2fd700e1a6356406321a5133db9eae2c7db Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 20:53:10 +0000 Subject: [PATCH 13/21] Remove ChannelAPI reference, as no longer the case --- plugins/feature/afc/afc.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/feature/afc/afc.cpp b/plugins/feature/afc/afc.cpp index 7af948f64..1e0c1732a 100644 --- a/plugins/feature/afc/afc.cpp +++ b/plugins/feature/afc/afc.cpp @@ -135,8 +135,7 @@ bool AFC::handleMessage(const Message& cmd) qDebug() << "AFC::handleMessage: MessagePipesCommon::MsgReportChannelDeleted"; MessagePipesCommon::MsgReportChannelDeleted& report = (MessagePipesCommon::MsgReportChannelDeleted&) cmd; const MessagePipesCommon::ChannelRegistrationKey& channelKey = report.getChannelRegistrationKey(); - const ChannelAPI *channel = channelKey.m_key; - MainCore::instance()->getMessagePipes().unregisterChannelToFeature(channel, this, "settings"); + MainCore::instance()->getMessagePipes().unregisterChannelToFeature(channelKey.m_key, this, "settings"); return true; } From 721d0a40c2ac0751ee5e3d7778bf0ee7684eefb4 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 20:56:45 +0000 Subject: [PATCH 14/21] Update Web API for latest plugins and features --- sdrbase/resources/webapi/doc/html2/index.html | 373 ++++++++- .../webapi/doc/swagger/include/APRS.yaml | 30 + .../doc/swagger/include/ChannelSettings.yaml | 2 + .../doc/swagger/include/FeatureActions.yaml | 2 + .../doc/swagger/include/FeatureSettings.yaml | 6 + .../doc/swagger/include/GS232Controller.yaml | 14 +- .../webapi/doc/swagger/include/Map.yaml | 57 ++ .../doc/swagger/include/PacketDemod.yaml | 35 + .../doc/swagger/include/StarTracker.yaml | 87 +++ .../resources/webapi/doc/swagger/swagger.yaml | 21 +- sdrbase/webapi/webapirequestmapper.cpp | 36 +- sdrbase/webapi/webapiutils.cpp | 11 + .../sdrangel/api/swagger/include/APRS.yaml | 30 + .../api/swagger/include/ChannelSettings.yaml | 2 + .../api/swagger/include/FeatureActions.yaml | 2 + .../api/swagger/include/FeatureSettings.yaml | 6 + .../api/swagger/include/GS232Controller.yaml | 14 +- swagger/sdrangel/api/swagger/include/Map.yaml | 57 ++ .../api/swagger/include/PacketDemod.yaml | 35 + .../api/swagger/include/StarTracker.yaml | 87 +++ swagger/sdrangel/api/swagger/swagger.yaml | 21 +- swagger/sdrangel/code/html2/index.html | 373 ++++++++- .../code/qt5/client/SWGAPRSSettings.cpp | 396 ++++++++++ .../code/qt5/client/SWGAPRSSettings.h | 131 ++++ .../code/qt5/client/SWGChannelSettings.cpp | 25 + .../code/qt5/client/SWGChannelSettings.h | 7 + .../code/qt5/client/SWGFeatureActions.cpp | 25 + .../code/qt5/client/SWGFeatureActions.h | 7 + .../code/qt5/client/SWGFeatureSettings.cpp | 75 ++ .../code/qt5/client/SWGFeatureSettings.h | 21 + .../qt5/client/SWGGS232ControllerSettings.cpp | 117 +-- .../qt5/client/SWGGS232ControllerSettings.h | 30 +- .../code/qt5/client/SWGMapActions.cpp | 110 +++ .../sdrangel/code/qt5/client/SWGMapActions.h | 59 ++ .../code/qt5/client/SWGMapActions_find.cpp | 110 +++ .../code/qt5/client/SWGMapActions_find.h | 59 ++ .../sdrangel/code/qt5/client/SWGMapItem.cpp | 252 ++++++ swagger/sdrangel/code/qt5/client/SWGMapItem.h | 95 +++ .../sdrangel/code/qt5/client/SWGMapItem_2.cpp | 252 ++++++ .../sdrangel/code/qt5/client/SWGMapItem_2.h | 95 +++ .../code/qt5/client/SWGMapSettings.cpp | 273 +++++++ .../sdrangel/code/qt5/client/SWGMapSettings.h | 101 +++ .../code/qt5/client/SWGModelFactory.h | 32 + .../qt5/client/SWGPacketDemodSettings.cpp | 367 +++++++++ .../code/qt5/client/SWGPacketDemodSettings.h | 125 +++ .../qt5/client/SWGStarTrackerSettings.cpp | 722 ++++++++++++++++++ .../code/qt5/client/SWGStarTrackerSettings.h | 215 ++++++ .../qt5/client/SWGTargetAzimuthElevation.cpp | 156 ++++ .../qt5/client/SWGTargetAzimuthElevation.h | 71 ++ 49 files changed, 5141 insertions(+), 88 deletions(-) create mode 100644 sdrbase/resources/webapi/doc/swagger/include/APRS.yaml create mode 100644 sdrbase/resources/webapi/doc/swagger/include/Map.yaml create mode 100644 sdrbase/resources/webapi/doc/swagger/include/PacketDemod.yaml create mode 100644 sdrbase/resources/webapi/doc/swagger/include/StarTracker.yaml create mode 100644 swagger/sdrangel/api/swagger/include/APRS.yaml create mode 100644 swagger/sdrangel/api/swagger/include/Map.yaml create mode 100644 swagger/sdrangel/api/swagger/include/PacketDemod.yaml create mode 100644 swagger/sdrangel/api/swagger/include/StarTracker.yaml create mode 100644 swagger/sdrangel/code/qt5/client/SWGAPRSSettings.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGAPRSSettings.h create mode 100644 swagger/sdrangel/code/qt5/client/SWGMapActions.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGMapActions.h create mode 100644 swagger/sdrangel/code/qt5/client/SWGMapActions_find.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGMapActions_find.h create mode 100644 swagger/sdrangel/code/qt5/client/SWGMapItem.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGMapItem.h create mode 100644 swagger/sdrangel/code/qt5/client/SWGMapItem_2.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGMapItem_2.h create mode 100644 swagger/sdrangel/code/qt5/client/SWGMapSettings.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGMapSettings.h create mode 100644 swagger/sdrangel/code/qt5/client/SWGPacketDemodSettings.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGPacketDemodSettings.h create mode 100644 swagger/sdrangel/code/qt5/client/SWGStarTrackerSettings.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGStarTrackerSettings.h create mode 100644 swagger/sdrangel/code/qt5/client/SWGTargetAzimuthElevation.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGTargetAzimuthElevation.h diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index 6887654e4..9fff6eac4 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -1062,6 +1062,51 @@ margin-bottom: 20px; } }, "description" : "AMMod" +}; + defs.APRSSettings = { + "properties" : { + "igateServer" : { + "type" : "string" + }, + "igatePort" : { + "type" : "integer" + }, + "igateCallsign" : { + "type" : "string" + }, + "igatePasscode" : { + "type" : "string" + }, + "igateFilter" : { + "type" : "string" + }, + "igateEnabled" : { + "type" : "integer" + }, + "title" : { + "type" : "string" + }, + "rgbColor" : { + "type" : "integer" + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + } + }, + "description" : "APRS settings" }; defs.ATVDemodSettings = { "properties" : { @@ -2674,6 +2719,9 @@ margin-bottom: 20px; "LocalSourceSettings" : { "$ref" : "#/definitions/LocalSourceSettings" }, + "PacketDemodSettings" : { + "$ref" : "#/definitions/PacketDemodSettings" + }, "PacketModSettings" : { "$ref" : "#/definitions/PacketModSettings" }, @@ -4018,6 +4066,9 @@ margin-bottom: 20px; "AFCActions" : { "$ref" : "#/definitions/AFCActions" }, + "MapActions" : { + "$ref" : "#/definitions/MapActions" + }, "SimplePTTActions" : { "$ref" : "#/definitions/SimplePTTActions" } @@ -4122,15 +4173,24 @@ margin-bottom: 20px; "AFCSettings" : { "$ref" : "#/definitions/AFCSettings" }, + "APRSSettings" : { + "$ref" : "#/definitions/APRSSettings" + }, "DemodAnalyzerSettings" : { "$ref" : "#/definitions/DemodAnalyzerSettings" }, "GS232ControllerSettings" : { "$ref" : "#/definitions/GS232ControllerSettings" }, + "MapSettings" : { + "$ref" : "#/definitions/MapSettings" + }, "RigCtlServerSettings" : { "$ref" : "#/definitions/RigCtlServerSettings" }, + "StarTrackerSettings" : { + "$ref" : "#/definitions/StarTrackerSettings" + }, "SimplePTTSettings" : { "$ref" : "#/definitions/SimplePTTSettings" }, @@ -4867,7 +4927,20 @@ margin-bottom: 20px; "description" : "The baud rate to use for the serial connection to the GS-232 controller" }, "track" : { - "type" : "integer" + "type" : "integer", + "description" : "Track a target where azimuth and elevation are determined by another plugin (1 for yes, 0 for no)" + }, + "target" : { + "type" : "string", + "description" : "Identifier of the channel or feature plugin providing target azimuth and elevation (E.g. R0:0 ADSBDemod)" + }, + "azimuthOffset" : { + "type" : "integer", + "description" : "Azimuth offset in degrees" + }, + "elevationOffset" : { + "type" : "integer", + "description" : "Elevation offset in degrees" }, "title" : { "type" : "string" @@ -4875,12 +4948,6 @@ margin-bottom: 20px; "rgbColor" : { "type" : "integer" }, - "deviceIndex" : { - "type" : "integer" - }, - "channelIndex" : { - "type" : "integer" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -6156,7 +6223,7 @@ margin-bottom: 20px; "latitude" : { "type" : "number", "format" : "float", - "description" : "Lautitude in decimal degrees positive to the north" + "description" : "Latitude in decimal degrees positive to the north" }, "longitude" : { "type" : "number", @@ -6186,6 +6253,116 @@ margin-bottom: 20px; } }, "description" : "Logging parameters setting" +}; + defs.MapActions = { + "properties" : { + "find" : { + "type" : "string", + "description" : "The name of the item or the location to centre the map on" + } + }, + "description" : "Map" +}; + defs.MapItem = { + "required" : [ "name" ], + "properties" : { + "name" : { + "type" : "string", + "description" : "A name for the item" + }, + "image" : { + "type" : "string", + "description" : "Filename or URL of image to draw on the map" + }, + "imageRotation" : { + "type" : "integer", + "description" : "Angle to rotate the image by" + }, + "imageFixedSize" : { + "type" : "integer", + "description" : "Keep the image the same size, regardless of map zoom level (1 for yes, 0 for no)" + }, + "text" : { + "type" : "string" + }, + "latitude" : { + "type" : "number", + "format" : "float", + "description" : "Latitude in decimal degrees, positive to the north" + }, + "longitude" : { + "type" : "number", + "format" : "float", + "description" : "Longitude in decimal degrees, positive to the east" + } + }, + "description" : "An item to draw on the map. Set image to an empty string to remove item from the map." +}; + defs.MapItem_2 = { + "required" : [ "name" ], + "properties" : { + "name" : { + "type" : "string", + "description" : "A name for the item" + }, + "image" : { + "type" : "string", + "description" : "Filename or URL of image to draw on the map" + }, + "imageRotation" : { + "type" : "integer", + "description" : "Angle to rotate the image by" + }, + "imageFixedSize" : { + "type" : "integer", + "description" : "Keep the image the same size, regardless of map zoom level (1 for yes, 0 for no)" + }, + "text" : { + "type" : "string" + }, + "latitude" : { + "type" : "number", + "format" : "float", + "description" : "Latitude in decimal degrees, positive to the north" + }, + "longitude" : { + "type" : "number", + "format" : "float", + "description" : "Longitude in decimal degrees, positive to the east" + } + }, + "description" : "An item to draw on the map. Set image to an empty string to remove item from the map." +}; + defs.MapSettings = { + "properties" : { + "displayNames" : { + "type" : "integer", + "description" : "Display object names on the map (1 for yes, 0 for no)" + }, + "title" : { + "type" : "string" + }, + "rgbColor" : { + "type" : "integer" + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + } + }, + "description" : "Map" }; defs.MetisMISOSettings = { "properties" : { @@ -6554,6 +6731,53 @@ margin-bottom: 20px; } }, "description" : "Enumeration with name for values" +}; + defs.PacketDemodSettings = { + "properties" : { + "inputFrequencyOffset" : { + "type" : "integer", + "format" : "int64" + }, + "mode" : { + "type" : "string", + "description" : "Transmission mode\n * \"1200 AFSK\"\n" + }, + "rfBandwidth" : { + "type" : "number", + "format" : "float" + }, + "fmDeviation" : { + "type" : "number", + "format" : "float" + }, + "rgbColor" : { + "type" : "integer" + }, + "title" : { + "type" : "string" + }, + "streamIndex" : { + "type" : "integer", + "description" : "MIMO channel. Not relevant when connected to SI (single Rx)." + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + } + }, + "description" : "PacketDemod" }; defs.PacketModActions = { "properties" : { @@ -8751,6 +8975,121 @@ margin-bottom: 20px; "type" : "integer" } } +}; + defs.StarTrackerSettings = { + "properties" : { + "target" : { + "type" : "string", + "description" : "Target object (Sun, Moon or Custom)" + }, + "ra" : { + "type" : "string", + "description" : "Right ascension of custom target" + }, + "dec" : { + "type" : "string", + "description" : "Declination of custom target" + }, + "latitude" : { + "type" : "number", + "format" : "float", + "description" : "Latitude in decimal degrees (North positive) of observation/antenna location" + }, + "longitude" : { + "type" : "number", + "format" : "float", + "description" : "Longitude in decimal degrees (East positive) of observation/antenna location" + }, + "dateTime" : { + "type" : "string", + "description" : "Date and time of observation. ISO 8601 extended format: yyyy-MM-ddTHH:mm:ss with Z suffix for UTC. Empty string for current time." + }, + "refraction" : { + "type" : "string", + "description" : "Atmospheric refraction correction (None or Saemundsson)" + }, + "pressure" : { + "type" : "number", + "format" : "float", + "description" : "Air pressure in millibars, for refraction" + }, + "temperature" : { + "type" : "number", + "format" : "float", + "description" : "Air temperature in Celsuis, for refraction" + }, + "humidity" : { + "type" : "number", + "format" : "float", + "description" : "Relative humidity in %, for refraction" + }, + "heightAboveSeaLevel" : { + "type" : "number", + "format" : "float", + "description" : "Height above sea level in metres of observation/antenna location" + }, + "temperatureLapseRate" : { + "type" : "number", + "format" : "float", + "description" : "Temperature lapse rate in K/km" + }, + "frequency" : { + "type" : "number", + "format" : "float", + "description" : "Frequency of radio waves being observed in MHz" + }, + "stellariumServerEnabled" : { + "type" : "integer" + }, + "stellariumPort" : { + "type" : "integer", + "description" : "IP port number for Stellarium server to listen on (Default is 10001)." + }, + "updatePeriod" : { + "type" : "number", + "format" : "float", + "description" : "Time in seconds between each calculation of the target's position" + }, + "epoch" : { + "type" : "string", + "description" : "Epoch for RA and Dec (J2000 or JNOW)" + }, + "drawSunOnMap" : { + "type" : "integer", + "description" : "Draw the overhead position of the Sun on the Map (1 for yes, 0 for no)" + }, + "drawMoonOnMap" : { + "type" : "integer", + "description" : "Draw the overhead position of the Moon on the Map (1 for yes, 0 for no)" + }, + "drawStarOnMap" : { + "type" : "integer", + "description" : "Draw the overhead position of the target Star on the Map (1 for yes, 0 for no)" + }, + "title" : { + "type" : "string" + }, + "rgbColor" : { + "type" : "integer" + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + } + }, + "description" : "Star Tracker settings" }; defs.SuccessResponse = { "required" : [ "message" ], @@ -8759,6 +9098,22 @@ margin-bottom: 20px; "type" : "string" } } +}; + defs.TargetAzimuthElevation = { + "properties" : { + "name" : { + "type" : "string" + }, + "azimuth" : { + "type" : "number", + "format" : "float" + }, + "elevation" : { + "type" : "number", + "format" : "float" + } + }, + "description" : "A target azimuth and elevation" }; defs.TestMISettings = { "properties" : { @@ -44917,7 +45272,7 @@ except ApiException as e:
- Generated 2020-12-20T18:34:47.837+01:00 + Generated 2021-01-13T17:40:49.583+01:00
diff --git a/sdrbase/resources/webapi/doc/swagger/include/APRS.yaml b/sdrbase/resources/webapi/doc/swagger/include/APRS.yaml new file mode 100644 index 000000000..6a65d4aea --- /dev/null +++ b/sdrbase/resources/webapi/doc/swagger/include/APRS.yaml @@ -0,0 +1,30 @@ +APRSSettings: + description: "APRS settings" + properties: + igateServer: + type: string + igatePort: + type: integer + igateCallsign: + type: string + igatePasscode: + type: string + igateFilter: + type: string + igateEnabled: + type: integer + title: + type: string + rgbColor: + type: integer + useReverseAPI: + description: Synchronize with reverse API (1 for yes, 0 for no) + type: integer + reverseAPIAddress: + type: string + reverseAPIPort: + type: integer + reverseAPIDeviceIndex: + type: integer + reverseAPIChannelIndex: + type: integer diff --git a/sdrbase/resources/webapi/doc/swagger/include/ChannelSettings.yaml b/sdrbase/resources/webapi/doc/swagger/include/ChannelSettings.yaml index 7e32be1a1..9f914cd10 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/ChannelSettings.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/ChannelSettings.yaml @@ -63,6 +63,8 @@ ChannelSettings: $ref: "/doc/swagger/include/LocalSink.yaml#/LocalSinkSettings" LocalSourceSettings: $ref: "/doc/swagger/include/LocalSource.yaml#/LocalSourceSettings" + PacketDemodSettings: + $ref: "/doc/swagger/include/PacketDemod.yaml#/PacketDemodSettings" PacketModSettings: $ref: "/doc/swagger/include/PacketMod.yaml#/PacketModSettings" RemoteSinkSettings: diff --git a/sdrbase/resources/webapi/doc/swagger/include/FeatureActions.yaml b/sdrbase/resources/webapi/doc/swagger/include/FeatureActions.yaml index 1dd79cbbf..ac7afa647 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/FeatureActions.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/FeatureActions.yaml @@ -15,5 +15,7 @@ FeatureActions: type: integer AFCActions: $ref: "/doc/swagger/include/AFC.yaml#/AFCActions" + MapActions: + $ref: "/doc/swagger/include/Map.yaml#/MapActions" SimplePTTActions: $ref: "/doc/swagger/include/SimplePTT.yaml#/SimplePTTActions" diff --git a/sdrbase/resources/webapi/doc/swagger/include/FeatureSettings.yaml b/sdrbase/resources/webapi/doc/swagger/include/FeatureSettings.yaml index d0a0a76ab..7da04ce4f 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/FeatureSettings.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/FeatureSettings.yaml @@ -15,12 +15,18 @@ FeatureSettings: type: integer AFCSettings: $ref: "/doc/swagger/include/AFC.yaml#/AFCSettings" + APRSSettings: + $ref: "/doc/swagger/include/APRS.yaml#/APRSSettings" DemodAnalyzerSettings: $ref: "/doc/swagger/include/DemodAnalyzer.yaml#/DemodAnalyzerSettings" GS232ControllerSettings: $ref: "/doc/swagger/include/GS232Controller.yaml#/GS232ControllerSettings" + MapSettings: + $ref: "/doc/swagger/include/Map.yaml#/MapSettings" RigCtlServerSettings: $ref: "/doc/swagger/include/RigCtlServer.yaml#/RigCtlServerSettings" + StarTrackerSettings: + $ref: "/doc/swagger/include/StarTracker.yaml#/StarTrackerSettings" SimplePTTSettings: $ref: "/doc/swagger/include/SimplePTT.yaml#/SimplePTTSettings" VORLocalizerSettings: diff --git a/sdrbase/resources/webapi/doc/swagger/include/GS232Controller.yaml b/sdrbase/resources/webapi/doc/swagger/include/GS232Controller.yaml index 7c8b2ed12..3ffbbad48 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/GS232Controller.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/GS232Controller.yaml @@ -14,15 +14,21 @@ GS232ControllerSettings: description: The baud rate to use for the serial connection to the GS-232 controller type: integer track: + description: Track a target where azimuth and elevation are determined by another plugin (1 for yes, 0 for no) + type: integer + target: + description: "Identifier of the channel or feature plugin providing target azimuth and elevation (E.g. R0:0 ADSBDemod)" + type: string + azimuthOffset: + description: Azimuth offset in degrees + type: integer + elevationOffset: + description: Elevation offset in degrees type: integer title: type: string rgbColor: type: integer - deviceIndex: - type: integer - channelIndex: - type: integer useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer diff --git a/sdrbase/resources/webapi/doc/swagger/include/Map.yaml b/sdrbase/resources/webapi/doc/swagger/include/Map.yaml new file mode 100644 index 000000000..ca50b0b58 --- /dev/null +++ b/sdrbase/resources/webapi/doc/swagger/include/Map.yaml @@ -0,0 +1,57 @@ +MapSettings: + description: Map + properties: + displayNames: + description: Display object names on the map (1 for yes, 0 for no) + type: integer + title: + type: string + rgbColor: + type: integer + useReverseAPI: + description: Synchronize with reverse API (1 for yes, 0 for no) + type: integer + reverseAPIAddress: + type: string + reverseAPIPort: + type: integer + reverseAPIDeviceIndex: + type: integer + reverseAPIChannelIndex: + type: integer + +MapActions: + description: Map + properties: + find: + description: "The name of the item or the location to centre the map on" + type: string + +MapItem: + description: "An item to draw on the map. Set image to an empty string to remove item from the map." + required: + - name + properties: + name: + description: "A name for the item" + type: string + image: + description: "Filename or URL of image to draw on the map" + type: string + imageRotation: + description: "Angle to rotate the image by" + type: integer + imageFixedSize: + description: "Keep the image the same size, regardless of map zoom level (1 for yes, 0 for no)" + type: integer + text: + descrption: "Text to draw on the map when item is selected" + type: string + latitude: + description: "Latitude in decimal degrees, positive to the north" + type: number + format: float + longitude: + description: "Longitude in decimal degrees, positive to the east" + type: number + format: float diff --git a/sdrbase/resources/webapi/doc/swagger/include/PacketDemod.yaml b/sdrbase/resources/webapi/doc/swagger/include/PacketDemod.yaml new file mode 100644 index 000000000..fe919fdfd --- /dev/null +++ b/sdrbase/resources/webapi/doc/swagger/include/PacketDemod.yaml @@ -0,0 +1,35 @@ +PacketDemodSettings: + description: PacketDemod + properties: + inputFrequencyOffset: + type: integer + format: int64 + mode: + type: string + description: > + Transmission mode + * "1200 AFSK" + rfBandwidth: + type: number + format: float + fmDeviation: + type: number + format: float + rgbColor: + type: integer + title: + type: string + streamIndex: + description: MIMO channel. Not relevant when connected to SI (single Rx). + type: integer + useReverseAPI: + description: Synchronize with reverse API (1 for yes, 0 for no) + type: integer + reverseAPIAddress: + type: string + reverseAPIPort: + type: integer + reverseAPIDeviceIndex: + type: integer + reverseAPIChannelIndex: + type: integer diff --git a/sdrbase/resources/webapi/doc/swagger/include/StarTracker.yaml b/sdrbase/resources/webapi/doc/swagger/include/StarTracker.yaml new file mode 100644 index 000000000..99403d533 --- /dev/null +++ b/sdrbase/resources/webapi/doc/swagger/include/StarTracker.yaml @@ -0,0 +1,87 @@ +StarTrackerSettings: + description: "Star Tracker settings" + properties: + target: + description: "Target object (Sun, Moon or Custom)" + type: string + ra: + description: "Right ascension of custom target" + type: string + dec: + description: "Declination of custom target" + type: string + latitude: + description: "Latitude in decimal degrees (North positive) of observation/antenna location" + type: number + format: float + longitude: + description: "Longitude in decimal degrees (East positive) of observation/antenna location" + type: number + format: float + dateTime: + description: "Date and time of observation. ISO 8601 extended format: yyyy-MM-ddTHH:mm:ss with Z suffix for UTC. Empty string for current time." + type: string + refraction: + description: "Atmospheric refraction correction (None or Saemundsson)" + type: string + pressure: + description: "Air pressure in millibars, for refraction" + type: number + format: float + temperature: + description: "Air temperature in Celsuis, for refraction" + type: number + format: float + humidity: + description: "Relative humidity in %, for refraction" + type: number + format: float + heightAboveSeaLevel: + description: "Height above sea level in metres of observation/antenna location" + type: number + format: float + temperatureLapseRate: + description: "Temperature lapse rate in K/km" + type: number + format: float + frequency: + description: "Frequency of radio waves being observed in MHz" + type: number + format: float + stellariumServerEnabled: + descrption: "Enable Stellarium server (1 for yes, 0 for no)" + type: integer + stellariumPort: + description: "IP port number for Stellarium server to listen on (Default is 10001)." + type: integer + updatePeriod: + description: "Time in seconds between each calculation of the target's position" + type: number + format: float + epoch: + description: "Epoch for RA and Dec (J2000 or JNOW)" + type: string + drawSunOnMap: + description: "Draw the overhead position of the Sun on the Map (1 for yes, 0 for no)" + type: integer + drawMoonOnMap: + description: "Draw the overhead position of the Moon on the Map (1 for yes, 0 for no)" + type: integer + drawStarOnMap: + description: "Draw the overhead position of the target Star on the Map (1 for yes, 0 for no)" + type: integer + title: + type: string + rgbColor: + type: integer + useReverseAPI: + description: Synchronize with reverse API (1 for yes, 0 for no) + type: integer + reverseAPIAddress: + type: string + reverseAPIPort: + type: integer + reverseAPIDeviceIndex: + type: integer + reverseAPIChannelIndex: + type: integer diff --git a/sdrbase/resources/webapi/doc/swagger/swagger.yaml b/sdrbase/resources/webapi/doc/swagger/swagger.yaml index bdf005dde..a7c33c47e 100644 --- a/sdrbase/resources/webapi/doc/swagger/swagger.yaml +++ b/sdrbase/resources/webapi/doc/swagger/swagger.yaml @@ -2744,7 +2744,7 @@ definitions: - longitude properties: latitude: - description: "Lautitude in decimal degrees positive to the north" + description: "Latitude in decimal degrees positive to the north" type: number format: float longitude: @@ -2818,6 +2818,25 @@ definitions: description: "Serial device name or server address" type: string + MapItem: + $ref: "/doc/swagger/include/Map.yaml#/MapItem" + + # This isn't in GS232Controller, as it may eventually be used by other controllers or features + TargetAzimuthElevation: + description: "A target azimuth and elevation" + properties: + name: + descrption: "The name of the target" + type: string + azimuth: + descrption: "The azimuth angle in degrees to the target" + type: number + format: float + elevation: + descrption: "The elevation angle in degrees to the target" + type: number + format: float + Presets: description: "Settings presets" required: diff --git a/sdrbase/webapi/webapirequestmapper.cpp b/sdrbase/webapi/webapirequestmapper.cpp index c174184a4..3bc369076 100644 --- a/sdrbase/webapi/webapirequestmapper.cpp +++ b/sdrbase/webapi/webapirequestmapper.cpp @@ -3916,6 +3916,11 @@ bool WebAPIRequestMapper::getChannelSettings( channelSettings->setLocalSourceSettings(new SWGSDRangel::SWGLocalSourceSettings()); channelSettings->getLocalSourceSettings()->fromJsonObject(settingsJsonObject); } + else if (channelSettingsKey == "PacketDemodSettings") + { + channelSettings->setPacketDemodSettings(new SWGSDRangel::SWGPacketDemodSettings()); + channelSettings->getPacketDemodSettings()->fromJsonObject(settingsJsonObject); + } else if (channelSettingsKey == "PacketModSettings") { channelSettings->setPacketModSettings(new SWGSDRangel::SWGPacketModSettings()); @@ -4370,16 +4375,31 @@ bool WebAPIRequestMapper::getFeatureSettings( QJsonObject settingsJsonObject = featureSettingsJson[featureSettingsKey].toObject(); featureSettingsKeys = settingsJsonObject.keys(); - if (featureSettingsKey == "GS232ControllerSettings") + if (featureSettingsKey == "APRSSettings") + { + featureSettings->setAprsSettings(new SWGSDRangel::SWGAPRSSettings()); + featureSettings->getAprsSettings()->fromJsonObject(settingsJsonObject); + } + else if (featureSettingsKey == "GS232ControllerSettings") { featureSettings->setGs232ControllerSettings(new SWGSDRangel::SWGGS232ControllerSettings()); featureSettings->getGs232ControllerSettings()->fromJsonObject(settingsJsonObject); } + else if (featureSettingsKey == "MapSettings") + { + featureSettings->setMapSettings(new SWGSDRangel::SWGMapSettings()); + featureSettings->getMapSettings()->fromJsonObject(settingsJsonObject); + } else if (featureSettingsKey == "SimplePTTSettings") { featureSettings->setSimplePttSettings(new SWGSDRangel::SWGSimplePTTSettings()); featureSettings->getSimplePttSettings()->fromJsonObject(settingsJsonObject); } + else if (featureSettingsKey == "StarTrackerSettings") + { + featureSettings->setStarTrackerSettings(new SWGSDRangel::SWGStarTrackerSettings()); + featureSettings->getStarTrackerSettings()->fromJsonObject(settingsJsonObject); + } else if (featureSettingsKey == "RigCtlServerSettings") { featureSettings->setRigCtlServerSettings(new SWGSDRangel::SWGRigCtlServerSettings()); @@ -4412,7 +4432,12 @@ bool WebAPIRequestMapper::getFeatureActions( QJsonObject actionsJsonObject = featureActionsJson[featureActionsKey].toObject(); featureActionsKeys = actionsJsonObject.keys(); - if (featureActionsKey == "SimplePTTActions") + if (featureActionsKey == "MapActions") + { + featureActions->setMapActions(new SWGSDRangel::SWGMapActions()); + featureActions->getMapActions()->fromJsonObject(actionsJsonObject); + } + else if (featureActionsKey == "SimplePTTActions") { featureActions->setSimplePttActions(new SWGSDRangel::SWGSimplePTTActions()); featureActions->getSimplePttActions()->fromJsonObject(actionsJsonObject); @@ -4540,6 +4565,7 @@ void WebAPIRequestMapper::resetChannelSettings(SWGSDRangel::SWGChannelSettings& channelSettings.setIeee802154ModSettings(nullptr); channelSettings.setNfmDemodSettings(nullptr); channelSettings.setNfmModSettings(nullptr); + channelSettings.setPacketDemodSettings(nullptr); channelSettings.setPacketModSettings(nullptr); channelSettings.setRemoteSinkSettings(nullptr); channelSettings.setRemoteSourceSettings(nullptr); @@ -4602,7 +4628,12 @@ void WebAPIRequestMapper::resetFeatureSettings(SWGSDRangel::SWGFeatureSettings& { featureSettings.cleanup(); featureSettings.setFeatureType(nullptr); + featureSettings.setAprsSettings(nullptr); + featureSettings.setGs232ControllerSettings(nullptr); + featureSettings.setMapSettings(nullptr); featureSettings.setSimplePttSettings(nullptr); + featureSettings.setStarTrackerSettings(nullptr); + featureSettings.setRigCtlServerSettings(nullptr); } void WebAPIRequestMapper::resetFeatureReport(SWGSDRangel::SWGFeatureReport& featureReport) @@ -4616,6 +4647,7 @@ void WebAPIRequestMapper::resetFeatureActions(SWGSDRangel::SWGFeatureActions& fe { featureActions.cleanup(); featureActions.setFeatureType(nullptr); + featureActions.setMapActions(nullptr); featureActions.setSimplePttActions(nullptr); } diff --git a/sdrbase/webapi/webapiutils.cpp b/sdrbase/webapi/webapiutils.cpp index a2bd59bf8..09ce7ba96 100644 --- a/sdrbase/webapi/webapiutils.cpp +++ b/sdrbase/webapi/webapiutils.cpp @@ -47,6 +47,7 @@ const QMap WebAPIUtils::m_channelURIToSettingsKey = { {"sdrangel.demod.localsink", "LocalSinkSettings"}, {"sdrangel.channel.localsink", "LocalSinkSettings"}, // remap {"sdrangel.channel.localsource", "LocalSourceSettings"}, + {"sdrangel.channelrx.demodpacket", "PacketDemodSettings"}, {"sdrangel.channeltx.modpacket", "PacketModSettings"}, {"sdrangel.channeltx.mod802.15.4", "IEEE_802_15_4_ModSettings"}, {"sdrangel.demod.remotesink", "RemoteSinkSettings"}, @@ -135,6 +136,7 @@ const QMap WebAPIUtils::m_channelTypeToSettingsKey = { {"IEEE_802_15_4_Mod", "IEEE_802_15_4_ModSettings"}, {"NFMDemod", "NFMDemodSettings"}, {"NFMMod", "NFMModSettings"}, + {"PacketDemod", "PacketDemodSettings"}, {"PacketMod", "PacketModSettings"}, {"LocalSink", "LocalSinkSettings"}, {"LocalSource", "LocalSourceSettings"}, @@ -237,16 +239,25 @@ const QMap WebAPIUtils::m_mimoDeviceHwIdToActionsKey = { }; const QMap WebAPIUtils::m_featureTypeToSettingsKey = { + {"APRS", "APRSSettings"}, + {"GS232Controller", "GS232ControllerSettings"}, + {"Map", "MapSettings"}, {"SimplePTT", "SimplePTTSettings"}, + {"StarTracker", "StarTrackerSettings"}, {"RigCtlServer", "RigCtlServerSettings"} }; const QMap WebAPIUtils::m_featureTypeToActionsKey = { + {"Map", "MapActions"}, {"SimplePTT", "SimplePTTActions"} }; const QMap WebAPIUtils::m_featureURIToSettingsKey = { + {"sdrangel.feature.aprs", "APRSSettings"}, + {"sdrangel.feature.gs232controller", "GS232ControllerSettings"}, + {"sdrangel.feature.map", "MapSettings"}, {"sdrangel.feature.simpleptt", "SimplePTTSettings"}, + {"sdrangel.feature.startracker", "StarTrackerSettings"}, {"sdrangel.feature.rigctlserver", "RigCtlServerSettings"} }; diff --git a/swagger/sdrangel/api/swagger/include/APRS.yaml b/swagger/sdrangel/api/swagger/include/APRS.yaml new file mode 100644 index 000000000..f61120a68 --- /dev/null +++ b/swagger/sdrangel/api/swagger/include/APRS.yaml @@ -0,0 +1,30 @@ +APRSSettings: + description: "APRS settings" + properties: + igateServer: + type: string + igatePort: + type: integer + igateCallsign: + type: string + igatePasscode: + type: string + igateFilter: + type: string + igateEnabled: + type: integer + title: + type: string + rgbColor: + type: integer + useReverseAPI: + description: Synchronize with reverse API (1 for yes, 0 for no) + type: integer + reverseAPIAddress: + type: string + reverseAPIPort: + type: integer + reverseAPIDeviceIndex: + type: integer + reverseAPIChannelIndex: + type: integer diff --git a/swagger/sdrangel/api/swagger/include/ChannelSettings.yaml b/swagger/sdrangel/api/swagger/include/ChannelSettings.yaml index 2a76c9654..f72c19146 100644 --- a/swagger/sdrangel/api/swagger/include/ChannelSettings.yaml +++ b/swagger/sdrangel/api/swagger/include/ChannelSettings.yaml @@ -63,6 +63,8 @@ ChannelSettings: $ref: "http://swgserver:8081/api/swagger/include/LocalSink.yaml#/LocalSinkSettings" LocalSourceSettings: $ref: "http://swgserver:8081/api/swagger/include/LocalSource.yaml#/LocalSourceSettings" + PacketDemodSettings: + $ref: "http://swgserver:8081/api/swagger/include/PacketDemod.yaml#/PacketDemodSettings" PacketModSettings: $ref: "http://swgserver:8081/api/swagger/include/PacketMod.yaml#/PacketModSettings" RemoteSinkSettings: diff --git a/swagger/sdrangel/api/swagger/include/FeatureActions.yaml b/swagger/sdrangel/api/swagger/include/FeatureActions.yaml index 5739ae33e..0d9b38e3a 100644 --- a/swagger/sdrangel/api/swagger/include/FeatureActions.yaml +++ b/swagger/sdrangel/api/swagger/include/FeatureActions.yaml @@ -15,5 +15,7 @@ FeatureActions: type: integer AFCActions: $ref: "http://swgserver:8081/api/swagger/include/AFC.yaml#/AFCActions" + MapActions: + $ref: "http://swgserver:8081/api/swagger/include/Map.yaml#/MapActions" SimplePTTActions: $ref: "http://swgserver:8081/api/swagger/include/SimplePTT.yaml#/SimplePTTActions" diff --git a/swagger/sdrangel/api/swagger/include/FeatureSettings.yaml b/swagger/sdrangel/api/swagger/include/FeatureSettings.yaml index 791577406..3f4d7805a 100644 --- a/swagger/sdrangel/api/swagger/include/FeatureSettings.yaml +++ b/swagger/sdrangel/api/swagger/include/FeatureSettings.yaml @@ -15,12 +15,18 @@ FeatureSettings: type: integer AFCSettings: $ref: "http://swgserver:8081/api/swagger/include/AFC.yaml#/AFCSettings" + APRSSettings: + $ref: "http://swgserver:8081/api/swagger/include/APRS.yaml#/APRSSettings" DemodAnalyzerSettings: $ref: "http://swgserver:8081/api/swagger/include/DemodAnalyzer.yaml#/DemodAnalyzerSettings" GS232ControllerSettings: $ref: "http://swgserver:8081/api/swagger/include/GS232Controller.yaml#/GS232ControllerSettings" + MapSettings: + $ref: "http://swgserver:8081/api/swagger/include/Map.yaml#/MapSettings" RigCtlServerSettings: $ref: "http://swgserver:8081/api/swagger/include/RigCtlServer.yaml#/RigCtlServerSettings" + StarTrackerSettings: + $ref: "http://swgserver:8081/api/swagger/include/StarTracker.yaml#/StarTrackerSettings" SimplePTTSettings: $ref: "http://swgserver:8081/api/swagger/include/SimplePTT.yaml#/SimplePTTSettings" VORLocalizerSettings: diff --git a/swagger/sdrangel/api/swagger/include/GS232Controller.yaml b/swagger/sdrangel/api/swagger/include/GS232Controller.yaml index 7c8b2ed12..3ffbbad48 100644 --- a/swagger/sdrangel/api/swagger/include/GS232Controller.yaml +++ b/swagger/sdrangel/api/swagger/include/GS232Controller.yaml @@ -14,15 +14,21 @@ GS232ControllerSettings: description: The baud rate to use for the serial connection to the GS-232 controller type: integer track: + description: Track a target where azimuth and elevation are determined by another plugin (1 for yes, 0 for no) + type: integer + target: + description: "Identifier of the channel or feature plugin providing target azimuth and elevation (E.g. R0:0 ADSBDemod)" + type: string + azimuthOffset: + description: Azimuth offset in degrees + type: integer + elevationOffset: + description: Elevation offset in degrees type: integer title: type: string rgbColor: type: integer - deviceIndex: - type: integer - channelIndex: - type: integer useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer diff --git a/swagger/sdrangel/api/swagger/include/Map.yaml b/swagger/sdrangel/api/swagger/include/Map.yaml new file mode 100644 index 000000000..ce71eaa72 --- /dev/null +++ b/swagger/sdrangel/api/swagger/include/Map.yaml @@ -0,0 +1,57 @@ +MapSettings: + description: Map + properties: + displayNames: + description: Display object names on the map (1 for yes, 0 for no) + type: integer + title: + type: string + rgbColor: + type: integer + useReverseAPI: + description: Synchronize with reverse API (1 for yes, 0 for no) + type: integer + reverseAPIAddress: + type: string + reverseAPIPort: + type: integer + reverseAPIDeviceIndex: + type: integer + reverseAPIChannelIndex: + type: integer + +MapActions: + description: Map + properties: + find: + description: "The name of the item or the location to centre the map on" + type: string + +MapItem: + description: "An item to draw on the map. Set image to an empty string to remove item from the map." + required: + - name + properties: + name: + description: "A name for the item" + type: string + image: + description: "Filename or URL of image to draw on the map" + type: string + imageRotation: + description: "Angle to rotate the image by" + type: integer + imageFixedSize: + description: "Keep the image the same size, regardless of map zoom level (1 for yes, 0 for no)" + type: integer + text: + descrption: "Text to draw on the map when item is selected" + type: string + latitude: + description: "Latitude in decimal degrees, positive to the north" + type: number + format: float + longitude: + description: "Longitude in decimal degrees, positive to the east" + type: number + format: float diff --git a/swagger/sdrangel/api/swagger/include/PacketDemod.yaml b/swagger/sdrangel/api/swagger/include/PacketDemod.yaml new file mode 100644 index 000000000..fe919fdfd --- /dev/null +++ b/swagger/sdrangel/api/swagger/include/PacketDemod.yaml @@ -0,0 +1,35 @@ +PacketDemodSettings: + description: PacketDemod + properties: + inputFrequencyOffset: + type: integer + format: int64 + mode: + type: string + description: > + Transmission mode + * "1200 AFSK" + rfBandwidth: + type: number + format: float + fmDeviation: + type: number + format: float + rgbColor: + type: integer + title: + type: string + streamIndex: + description: MIMO channel. Not relevant when connected to SI (single Rx). + type: integer + useReverseAPI: + description: Synchronize with reverse API (1 for yes, 0 for no) + type: integer + reverseAPIAddress: + type: string + reverseAPIPort: + type: integer + reverseAPIDeviceIndex: + type: integer + reverseAPIChannelIndex: + type: integer diff --git a/swagger/sdrangel/api/swagger/include/StarTracker.yaml b/swagger/sdrangel/api/swagger/include/StarTracker.yaml new file mode 100644 index 000000000..3a1128447 --- /dev/null +++ b/swagger/sdrangel/api/swagger/include/StarTracker.yaml @@ -0,0 +1,87 @@ +StarTrackerSettings: + description: "Star Tracker settings" + properties: + target: + description: "Target object (Sun, Moon or Custom)" + type: string + ra: + description: "Right ascension of custom target" + type: string + dec: + description: "Declination of custom target" + type: string + latitude: + description: "Latitude in decimal degrees (North positive) of observation/antenna location" + type: number + format: float + longitude: + description: "Longitude in decimal degrees (East positive) of observation/antenna location" + type: number + format: float + dateTime: + description: "Date and time of observation. ISO 8601 extended format: yyyy-MM-ddTHH:mm:ss with Z suffix for UTC. Empty string for current time." + type: string + refraction: + description: "Atmospheric refraction correction (None or Saemundsson)" + type: string + pressure: + description: "Air pressure in millibars, for refraction" + type: number + format: float + temperature: + description: "Air temperature in Celsuis, for refraction" + type: number + format: float + humidity: + description: "Relative humidity in %, for refraction" + type: number + format: float + heightAboveSeaLevel: + description: "Height above sea level in metres of observation/antenna location" + type: number + format: float + temperatureLapseRate: + description: "Temperature lapse rate in K/km" + type: number + format: float + frequency: + description: "Frequency of radio waves being observed in MHz" + type: number + format: float + stellariumServerEnabled: + descrption: "Enable Stellarium server (1 for yes, 0 for no)" + type: integer + stellariumPort: + description: "IP port number for Stellarium server to listen on (Default is 10001)." + type: integer + updatePeriod: + description: "Time in seconds between each calculation of the target's position" + type: number + format: float + epoch: + description: "Epoch for RA and Dec (J2000 or JNOW)" + type: string + drawSunOnMap: + description: "Draw the overhead position of the Sun on the Map (1 for yes, 0 for no)" + type: integer + drawMoonOnMap: + description: "Draw the overhead position of the Moon on the Map (1 for yes, 0 for no)" + type: integer + drawStarOnMap: + description: "Draw the overhead position of the target Star on the Map (1 for yes, 0 for no)" + type: integer + title: + type: string + rgbColor: + type: integer + useReverseAPI: + description: Synchronize with reverse API (1 for yes, 0 for no) + type: integer + reverseAPIAddress: + type: string + reverseAPIPort: + type: integer + reverseAPIDeviceIndex: + type: integer + reverseAPIChannelIndex: + type: integer diff --git a/swagger/sdrangel/api/swagger/swagger.yaml b/swagger/sdrangel/api/swagger/swagger.yaml index 16119af94..8bf3c64e6 100644 --- a/swagger/sdrangel/api/swagger/swagger.yaml +++ b/swagger/sdrangel/api/swagger/swagger.yaml @@ -2744,7 +2744,7 @@ definitions: - longitude properties: latitude: - description: "Lautitude in decimal degrees positive to the north" + description: "Latitude in decimal degrees positive to the north" type: number format: float longitude: @@ -2818,6 +2818,25 @@ definitions: description: "Serial device name or server address" type: string + MapItem: + $ref: "http://swgserver:8081/api/swagger/include/Map.yaml#/MapItem" + + # This isn't in GS232Controller, as it may eventually be used by other controllers or features + TargetAzimuthElevation: + description: "A target azimuth and elevation" + properties: + name: + descrption: "The name of the target" + type: string + azimuth: + descrption: "The azimuth angle in degrees to the target" + type: number + format: float + elevation: + descrption: "The elevation angle in degrees to the target" + type: number + format: float + Presets: description: "Settings presets" required: diff --git a/swagger/sdrangel/code/html2/index.html b/swagger/sdrangel/code/html2/index.html index 6887654e4..9fff6eac4 100644 --- a/swagger/sdrangel/code/html2/index.html +++ b/swagger/sdrangel/code/html2/index.html @@ -1062,6 +1062,51 @@ margin-bottom: 20px; } }, "description" : "AMMod" +}; + defs.APRSSettings = { + "properties" : { + "igateServer" : { + "type" : "string" + }, + "igatePort" : { + "type" : "integer" + }, + "igateCallsign" : { + "type" : "string" + }, + "igatePasscode" : { + "type" : "string" + }, + "igateFilter" : { + "type" : "string" + }, + "igateEnabled" : { + "type" : "integer" + }, + "title" : { + "type" : "string" + }, + "rgbColor" : { + "type" : "integer" + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + } + }, + "description" : "APRS settings" }; defs.ATVDemodSettings = { "properties" : { @@ -2674,6 +2719,9 @@ margin-bottom: 20px; "LocalSourceSettings" : { "$ref" : "#/definitions/LocalSourceSettings" }, + "PacketDemodSettings" : { + "$ref" : "#/definitions/PacketDemodSettings" + }, "PacketModSettings" : { "$ref" : "#/definitions/PacketModSettings" }, @@ -4018,6 +4066,9 @@ margin-bottom: 20px; "AFCActions" : { "$ref" : "#/definitions/AFCActions" }, + "MapActions" : { + "$ref" : "#/definitions/MapActions" + }, "SimplePTTActions" : { "$ref" : "#/definitions/SimplePTTActions" } @@ -4122,15 +4173,24 @@ margin-bottom: 20px; "AFCSettings" : { "$ref" : "#/definitions/AFCSettings" }, + "APRSSettings" : { + "$ref" : "#/definitions/APRSSettings" + }, "DemodAnalyzerSettings" : { "$ref" : "#/definitions/DemodAnalyzerSettings" }, "GS232ControllerSettings" : { "$ref" : "#/definitions/GS232ControllerSettings" }, + "MapSettings" : { + "$ref" : "#/definitions/MapSettings" + }, "RigCtlServerSettings" : { "$ref" : "#/definitions/RigCtlServerSettings" }, + "StarTrackerSettings" : { + "$ref" : "#/definitions/StarTrackerSettings" + }, "SimplePTTSettings" : { "$ref" : "#/definitions/SimplePTTSettings" }, @@ -4867,7 +4927,20 @@ margin-bottom: 20px; "description" : "The baud rate to use for the serial connection to the GS-232 controller" }, "track" : { - "type" : "integer" + "type" : "integer", + "description" : "Track a target where azimuth and elevation are determined by another plugin (1 for yes, 0 for no)" + }, + "target" : { + "type" : "string", + "description" : "Identifier of the channel or feature plugin providing target azimuth and elevation (E.g. R0:0 ADSBDemod)" + }, + "azimuthOffset" : { + "type" : "integer", + "description" : "Azimuth offset in degrees" + }, + "elevationOffset" : { + "type" : "integer", + "description" : "Elevation offset in degrees" }, "title" : { "type" : "string" @@ -4875,12 +4948,6 @@ margin-bottom: 20px; "rgbColor" : { "type" : "integer" }, - "deviceIndex" : { - "type" : "integer" - }, - "channelIndex" : { - "type" : "integer" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -6156,7 +6223,7 @@ margin-bottom: 20px; "latitude" : { "type" : "number", "format" : "float", - "description" : "Lautitude in decimal degrees positive to the north" + "description" : "Latitude in decimal degrees positive to the north" }, "longitude" : { "type" : "number", @@ -6186,6 +6253,116 @@ margin-bottom: 20px; } }, "description" : "Logging parameters setting" +}; + defs.MapActions = { + "properties" : { + "find" : { + "type" : "string", + "description" : "The name of the item or the location to centre the map on" + } + }, + "description" : "Map" +}; + defs.MapItem = { + "required" : [ "name" ], + "properties" : { + "name" : { + "type" : "string", + "description" : "A name for the item" + }, + "image" : { + "type" : "string", + "description" : "Filename or URL of image to draw on the map" + }, + "imageRotation" : { + "type" : "integer", + "description" : "Angle to rotate the image by" + }, + "imageFixedSize" : { + "type" : "integer", + "description" : "Keep the image the same size, regardless of map zoom level (1 for yes, 0 for no)" + }, + "text" : { + "type" : "string" + }, + "latitude" : { + "type" : "number", + "format" : "float", + "description" : "Latitude in decimal degrees, positive to the north" + }, + "longitude" : { + "type" : "number", + "format" : "float", + "description" : "Longitude in decimal degrees, positive to the east" + } + }, + "description" : "An item to draw on the map. Set image to an empty string to remove item from the map." +}; + defs.MapItem_2 = { + "required" : [ "name" ], + "properties" : { + "name" : { + "type" : "string", + "description" : "A name for the item" + }, + "image" : { + "type" : "string", + "description" : "Filename or URL of image to draw on the map" + }, + "imageRotation" : { + "type" : "integer", + "description" : "Angle to rotate the image by" + }, + "imageFixedSize" : { + "type" : "integer", + "description" : "Keep the image the same size, regardless of map zoom level (1 for yes, 0 for no)" + }, + "text" : { + "type" : "string" + }, + "latitude" : { + "type" : "number", + "format" : "float", + "description" : "Latitude in decimal degrees, positive to the north" + }, + "longitude" : { + "type" : "number", + "format" : "float", + "description" : "Longitude in decimal degrees, positive to the east" + } + }, + "description" : "An item to draw on the map. Set image to an empty string to remove item from the map." +}; + defs.MapSettings = { + "properties" : { + "displayNames" : { + "type" : "integer", + "description" : "Display object names on the map (1 for yes, 0 for no)" + }, + "title" : { + "type" : "string" + }, + "rgbColor" : { + "type" : "integer" + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + } + }, + "description" : "Map" }; defs.MetisMISOSettings = { "properties" : { @@ -6554,6 +6731,53 @@ margin-bottom: 20px; } }, "description" : "Enumeration with name for values" +}; + defs.PacketDemodSettings = { + "properties" : { + "inputFrequencyOffset" : { + "type" : "integer", + "format" : "int64" + }, + "mode" : { + "type" : "string", + "description" : "Transmission mode\n * \"1200 AFSK\"\n" + }, + "rfBandwidth" : { + "type" : "number", + "format" : "float" + }, + "fmDeviation" : { + "type" : "number", + "format" : "float" + }, + "rgbColor" : { + "type" : "integer" + }, + "title" : { + "type" : "string" + }, + "streamIndex" : { + "type" : "integer", + "description" : "MIMO channel. Not relevant when connected to SI (single Rx)." + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + } + }, + "description" : "PacketDemod" }; defs.PacketModActions = { "properties" : { @@ -8751,6 +8975,121 @@ margin-bottom: 20px; "type" : "integer" } } +}; + defs.StarTrackerSettings = { + "properties" : { + "target" : { + "type" : "string", + "description" : "Target object (Sun, Moon or Custom)" + }, + "ra" : { + "type" : "string", + "description" : "Right ascension of custom target" + }, + "dec" : { + "type" : "string", + "description" : "Declination of custom target" + }, + "latitude" : { + "type" : "number", + "format" : "float", + "description" : "Latitude in decimal degrees (North positive) of observation/antenna location" + }, + "longitude" : { + "type" : "number", + "format" : "float", + "description" : "Longitude in decimal degrees (East positive) of observation/antenna location" + }, + "dateTime" : { + "type" : "string", + "description" : "Date and time of observation. ISO 8601 extended format: yyyy-MM-ddTHH:mm:ss with Z suffix for UTC. Empty string for current time." + }, + "refraction" : { + "type" : "string", + "description" : "Atmospheric refraction correction (None or Saemundsson)" + }, + "pressure" : { + "type" : "number", + "format" : "float", + "description" : "Air pressure in millibars, for refraction" + }, + "temperature" : { + "type" : "number", + "format" : "float", + "description" : "Air temperature in Celsuis, for refraction" + }, + "humidity" : { + "type" : "number", + "format" : "float", + "description" : "Relative humidity in %, for refraction" + }, + "heightAboveSeaLevel" : { + "type" : "number", + "format" : "float", + "description" : "Height above sea level in metres of observation/antenna location" + }, + "temperatureLapseRate" : { + "type" : "number", + "format" : "float", + "description" : "Temperature lapse rate in K/km" + }, + "frequency" : { + "type" : "number", + "format" : "float", + "description" : "Frequency of radio waves being observed in MHz" + }, + "stellariumServerEnabled" : { + "type" : "integer" + }, + "stellariumPort" : { + "type" : "integer", + "description" : "IP port number for Stellarium server to listen on (Default is 10001)." + }, + "updatePeriod" : { + "type" : "number", + "format" : "float", + "description" : "Time in seconds between each calculation of the target's position" + }, + "epoch" : { + "type" : "string", + "description" : "Epoch for RA and Dec (J2000 or JNOW)" + }, + "drawSunOnMap" : { + "type" : "integer", + "description" : "Draw the overhead position of the Sun on the Map (1 for yes, 0 for no)" + }, + "drawMoonOnMap" : { + "type" : "integer", + "description" : "Draw the overhead position of the Moon on the Map (1 for yes, 0 for no)" + }, + "drawStarOnMap" : { + "type" : "integer", + "description" : "Draw the overhead position of the target Star on the Map (1 for yes, 0 for no)" + }, + "title" : { + "type" : "string" + }, + "rgbColor" : { + "type" : "integer" + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + } + }, + "description" : "Star Tracker settings" }; defs.SuccessResponse = { "required" : [ "message" ], @@ -8759,6 +9098,22 @@ margin-bottom: 20px; "type" : "string" } } +}; + defs.TargetAzimuthElevation = { + "properties" : { + "name" : { + "type" : "string" + }, + "azimuth" : { + "type" : "number", + "format" : "float" + }, + "elevation" : { + "type" : "number", + "format" : "float" + } + }, + "description" : "A target azimuth and elevation" }; defs.TestMISettings = { "properties" : { @@ -44917,7 +45272,7 @@ except ApiException as e:
- Generated 2020-12-20T18:34:47.837+01:00 + Generated 2021-01-13T17:40:49.583+01:00
diff --git a/swagger/sdrangel/code/qt5/client/SWGAPRSSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGAPRSSettings.cpp new file mode 100644 index 000000000..30ca1b992 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGAPRSSettings.cpp @@ -0,0 +1,396 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGAPRSSettings.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGAPRSSettings::SWGAPRSSettings(QString* json) { + init(); + this->fromJson(*json); +} + +SWGAPRSSettings::SWGAPRSSettings() { + igate_server = nullptr; + m_igate_server_isSet = false; + igate_port = 0; + m_igate_port_isSet = false; + igate_callsign = nullptr; + m_igate_callsign_isSet = false; + igate_passcode = nullptr; + m_igate_passcode_isSet = false; + igate_filter = nullptr; + m_igate_filter_isSet = false; + igate_enabled = 0; + m_igate_enabled_isSet = false; + title = nullptr; + m_title_isSet = false; + rgb_color = 0; + m_rgb_color_isSet = false; + use_reverse_api = 0; + m_use_reverse_api_isSet = false; + reverse_api_address = nullptr; + m_reverse_api_address_isSet = false; + reverse_api_port = 0; + m_reverse_api_port_isSet = false; + reverse_api_device_index = 0; + m_reverse_api_device_index_isSet = false; + reverse_api_channel_index = 0; + m_reverse_api_channel_index_isSet = false; +} + +SWGAPRSSettings::~SWGAPRSSettings() { + this->cleanup(); +} + +void +SWGAPRSSettings::init() { + igate_server = new QString(""); + m_igate_server_isSet = false; + igate_port = 0; + m_igate_port_isSet = false; + igate_callsign = new QString(""); + m_igate_callsign_isSet = false; + igate_passcode = new QString(""); + m_igate_passcode_isSet = false; + igate_filter = new QString(""); + m_igate_filter_isSet = false; + igate_enabled = 0; + m_igate_enabled_isSet = false; + title = new QString(""); + m_title_isSet = false; + rgb_color = 0; + m_rgb_color_isSet = false; + use_reverse_api = 0; + m_use_reverse_api_isSet = false; + reverse_api_address = new QString(""); + m_reverse_api_address_isSet = false; + reverse_api_port = 0; + m_reverse_api_port_isSet = false; + reverse_api_device_index = 0; + m_reverse_api_device_index_isSet = false; + reverse_api_channel_index = 0; + m_reverse_api_channel_index_isSet = false; +} + +void +SWGAPRSSettings::cleanup() { + if(igate_server != nullptr) { + delete igate_server; + } + + if(igate_callsign != nullptr) { + delete igate_callsign; + } + if(igate_passcode != nullptr) { + delete igate_passcode; + } + if(igate_filter != nullptr) { + delete igate_filter; + } + + if(title != nullptr) { + delete title; + } + + + if(reverse_api_address != nullptr) { + delete reverse_api_address; + } + + + +} + +SWGAPRSSettings* +SWGAPRSSettings::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGAPRSSettings::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&igate_server, pJson["igateServer"], "QString", "QString"); + + ::SWGSDRangel::setValue(&igate_port, pJson["igatePort"], "qint32", ""); + + ::SWGSDRangel::setValue(&igate_callsign, pJson["igateCallsign"], "QString", "QString"); + + ::SWGSDRangel::setValue(&igate_passcode, pJson["igatePasscode"], "QString", "QString"); + + ::SWGSDRangel::setValue(&igate_filter, pJson["igateFilter"], "QString", "QString"); + + ::SWGSDRangel::setValue(&igate_enabled, pJson["igateEnabled"], "qint32", ""); + + ::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString"); + + ::SWGSDRangel::setValue(&rgb_color, pJson["rgbColor"], "qint32", ""); + + ::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString"); + + ::SWGSDRangel::setValue(&reverse_api_port, pJson["reverseAPIPort"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_device_index, pJson["reverseAPIDeviceIndex"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_channel_index, pJson["reverseAPIChannelIndex"], "qint32", ""); + +} + +QString +SWGAPRSSettings::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGAPRSSettings::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(igate_server != nullptr && *igate_server != QString("")){ + toJsonValue(QString("igateServer"), igate_server, obj, QString("QString")); + } + if(m_igate_port_isSet){ + obj->insert("igatePort", QJsonValue(igate_port)); + } + if(igate_callsign != nullptr && *igate_callsign != QString("")){ + toJsonValue(QString("igateCallsign"), igate_callsign, obj, QString("QString")); + } + if(igate_passcode != nullptr && *igate_passcode != QString("")){ + toJsonValue(QString("igatePasscode"), igate_passcode, obj, QString("QString")); + } + if(igate_filter != nullptr && *igate_filter != QString("")){ + toJsonValue(QString("igateFilter"), igate_filter, obj, QString("QString")); + } + if(m_igate_enabled_isSet){ + obj->insert("igateEnabled", QJsonValue(igate_enabled)); + } + if(title != nullptr && *title != QString("")){ + toJsonValue(QString("title"), title, obj, QString("QString")); + } + if(m_rgb_color_isSet){ + obj->insert("rgbColor", QJsonValue(rgb_color)); + } + if(m_use_reverse_api_isSet){ + obj->insert("useReverseAPI", QJsonValue(use_reverse_api)); + } + if(reverse_api_address != nullptr && *reverse_api_address != QString("")){ + toJsonValue(QString("reverseAPIAddress"), reverse_api_address, obj, QString("QString")); + } + if(m_reverse_api_port_isSet){ + obj->insert("reverseAPIPort", QJsonValue(reverse_api_port)); + } + if(m_reverse_api_device_index_isSet){ + obj->insert("reverseAPIDeviceIndex", QJsonValue(reverse_api_device_index)); + } + if(m_reverse_api_channel_index_isSet){ + obj->insert("reverseAPIChannelIndex", QJsonValue(reverse_api_channel_index)); + } + + return obj; +} + +QString* +SWGAPRSSettings::getIgateServer() { + return igate_server; +} +void +SWGAPRSSettings::setIgateServer(QString* igate_server) { + this->igate_server = igate_server; + this->m_igate_server_isSet = true; +} + +qint32 +SWGAPRSSettings::getIgatePort() { + return igate_port; +} +void +SWGAPRSSettings::setIgatePort(qint32 igate_port) { + this->igate_port = igate_port; + this->m_igate_port_isSet = true; +} + +QString* +SWGAPRSSettings::getIgateCallsign() { + return igate_callsign; +} +void +SWGAPRSSettings::setIgateCallsign(QString* igate_callsign) { + this->igate_callsign = igate_callsign; + this->m_igate_callsign_isSet = true; +} + +QString* +SWGAPRSSettings::getIgatePasscode() { + return igate_passcode; +} +void +SWGAPRSSettings::setIgatePasscode(QString* igate_passcode) { + this->igate_passcode = igate_passcode; + this->m_igate_passcode_isSet = true; +} + +QString* +SWGAPRSSettings::getIgateFilter() { + return igate_filter; +} +void +SWGAPRSSettings::setIgateFilter(QString* igate_filter) { + this->igate_filter = igate_filter; + this->m_igate_filter_isSet = true; +} + +qint32 +SWGAPRSSettings::getIgateEnabled() { + return igate_enabled; +} +void +SWGAPRSSettings::setIgateEnabled(qint32 igate_enabled) { + this->igate_enabled = igate_enabled; + this->m_igate_enabled_isSet = true; +} + +QString* +SWGAPRSSettings::getTitle() { + return title; +} +void +SWGAPRSSettings::setTitle(QString* title) { + this->title = title; + this->m_title_isSet = true; +} + +qint32 +SWGAPRSSettings::getRgbColor() { + return rgb_color; +} +void +SWGAPRSSettings::setRgbColor(qint32 rgb_color) { + this->rgb_color = rgb_color; + this->m_rgb_color_isSet = true; +} + +qint32 +SWGAPRSSettings::getUseReverseApi() { + return use_reverse_api; +} +void +SWGAPRSSettings::setUseReverseApi(qint32 use_reverse_api) { + this->use_reverse_api = use_reverse_api; + this->m_use_reverse_api_isSet = true; +} + +QString* +SWGAPRSSettings::getReverseApiAddress() { + return reverse_api_address; +} +void +SWGAPRSSettings::setReverseApiAddress(QString* reverse_api_address) { + this->reverse_api_address = reverse_api_address; + this->m_reverse_api_address_isSet = true; +} + +qint32 +SWGAPRSSettings::getReverseApiPort() { + return reverse_api_port; +} +void +SWGAPRSSettings::setReverseApiPort(qint32 reverse_api_port) { + this->reverse_api_port = reverse_api_port; + this->m_reverse_api_port_isSet = true; +} + +qint32 +SWGAPRSSettings::getReverseApiDeviceIndex() { + return reverse_api_device_index; +} +void +SWGAPRSSettings::setReverseApiDeviceIndex(qint32 reverse_api_device_index) { + this->reverse_api_device_index = reverse_api_device_index; + this->m_reverse_api_device_index_isSet = true; +} + +qint32 +SWGAPRSSettings::getReverseApiChannelIndex() { + return reverse_api_channel_index; +} +void +SWGAPRSSettings::setReverseApiChannelIndex(qint32 reverse_api_channel_index) { + this->reverse_api_channel_index = reverse_api_channel_index; + this->m_reverse_api_channel_index_isSet = true; +} + + +bool +SWGAPRSSettings::isSet(){ + bool isObjectUpdated = false; + do{ + if(igate_server && *igate_server != QString("")){ + isObjectUpdated = true; break; + } + if(m_igate_port_isSet){ + isObjectUpdated = true; break; + } + if(igate_callsign && *igate_callsign != QString("")){ + isObjectUpdated = true; break; + } + if(igate_passcode && *igate_passcode != QString("")){ + isObjectUpdated = true; break; + } + if(igate_filter && *igate_filter != QString("")){ + isObjectUpdated = true; break; + } + if(m_igate_enabled_isSet){ + isObjectUpdated = true; break; + } + if(title && *title != QString("")){ + isObjectUpdated = true; break; + } + if(m_rgb_color_isSet){ + isObjectUpdated = true; break; + } + if(m_use_reverse_api_isSet){ + isObjectUpdated = true; break; + } + if(reverse_api_address && *reverse_api_address != QString("")){ + isObjectUpdated = true; break; + } + if(m_reverse_api_port_isSet){ + isObjectUpdated = true; break; + } + if(m_reverse_api_device_index_isSet){ + isObjectUpdated = true; break; + } + if(m_reverse_api_channel_index_isSet){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGAPRSSettings.h b/swagger/sdrangel/code/qt5/client/SWGAPRSSettings.h new file mode 100644 index 000000000..d29971bbe --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGAPRSSettings.h @@ -0,0 +1,131 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGAPRSSettings.h + * + * APRS settings + */ + +#ifndef SWGAPRSSettings_H_ +#define SWGAPRSSettings_H_ + +#include + + +#include + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGAPRSSettings: public SWGObject { +public: + SWGAPRSSettings(); + SWGAPRSSettings(QString* json); + virtual ~SWGAPRSSettings(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGAPRSSettings* fromJson(QString &jsonString) override; + + QString* getIgateServer(); + void setIgateServer(QString* igate_server); + + qint32 getIgatePort(); + void setIgatePort(qint32 igate_port); + + QString* getIgateCallsign(); + void setIgateCallsign(QString* igate_callsign); + + QString* getIgatePasscode(); + void setIgatePasscode(QString* igate_passcode); + + QString* getIgateFilter(); + void setIgateFilter(QString* igate_filter); + + qint32 getIgateEnabled(); + void setIgateEnabled(qint32 igate_enabled); + + QString* getTitle(); + void setTitle(QString* title); + + qint32 getRgbColor(); + void setRgbColor(qint32 rgb_color); + + qint32 getUseReverseApi(); + void setUseReverseApi(qint32 use_reverse_api); + + QString* getReverseApiAddress(); + void setReverseApiAddress(QString* reverse_api_address); + + qint32 getReverseApiPort(); + void setReverseApiPort(qint32 reverse_api_port); + + qint32 getReverseApiDeviceIndex(); + void setReverseApiDeviceIndex(qint32 reverse_api_device_index); + + qint32 getReverseApiChannelIndex(); + void setReverseApiChannelIndex(qint32 reverse_api_channel_index); + + + virtual bool isSet() override; + +private: + QString* igate_server; + bool m_igate_server_isSet; + + qint32 igate_port; + bool m_igate_port_isSet; + + QString* igate_callsign; + bool m_igate_callsign_isSet; + + QString* igate_passcode; + bool m_igate_passcode_isSet; + + QString* igate_filter; + bool m_igate_filter_isSet; + + qint32 igate_enabled; + bool m_igate_enabled_isSet; + + QString* title; + bool m_title_isSet; + + qint32 rgb_color; + bool m_rgb_color_isSet; + + qint32 use_reverse_api; + bool m_use_reverse_api_isSet; + + QString* reverse_api_address; + bool m_reverse_api_address_isSet; + + qint32 reverse_api_port; + bool m_reverse_api_port_isSet; + + qint32 reverse_api_device_index; + bool m_reverse_api_device_index_isSet; + + qint32 reverse_api_channel_index; + bool m_reverse_api_channel_index_isSet; + +}; + +} + +#endif /* SWGAPRSSettings_H_ */ diff --git a/swagger/sdrangel/code/qt5/client/SWGChannelSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGChannelSettings.cpp index e631ed57c..1a2b5ee4c 100644 --- a/swagger/sdrangel/code/qt5/client/SWGChannelSettings.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGChannelSettings.cpp @@ -82,6 +82,8 @@ SWGChannelSettings::SWGChannelSettings() { m_local_sink_settings_isSet = false; local_source_settings = nullptr; m_local_source_settings_isSet = false; + packet_demod_settings = nullptr; + m_packet_demod_settings_isSet = false; packet_mod_settings = nullptr; m_packet_mod_settings_isSet = false; remote_sink_settings = nullptr; @@ -168,6 +170,8 @@ SWGChannelSettings::init() { m_local_sink_settings_isSet = false; local_source_settings = new SWGLocalSourceSettings(); m_local_source_settings_isSet = false; + packet_demod_settings = new SWGPacketDemodSettings(); + m_packet_demod_settings_isSet = false; packet_mod_settings = new SWGPacketModSettings(); m_packet_mod_settings_isSet = false; remote_sink_settings = new SWGRemoteSinkSettings(); @@ -271,6 +275,9 @@ SWGChannelSettings::cleanup() { if(local_source_settings != nullptr) { delete local_source_settings; } + if(packet_demod_settings != nullptr) { + delete packet_demod_settings; + } if(packet_mod_settings != nullptr) { delete packet_mod_settings; } @@ -374,6 +381,8 @@ SWGChannelSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&local_source_settings, pJson["LocalSourceSettings"], "SWGLocalSourceSettings", "SWGLocalSourceSettings"); + ::SWGSDRangel::setValue(&packet_demod_settings, pJson["PacketDemodSettings"], "SWGPacketDemodSettings", "SWGPacketDemodSettings"); + ::SWGSDRangel::setValue(&packet_mod_settings, pJson["PacketModSettings"], "SWGPacketModSettings", "SWGPacketModSettings"); ::SWGSDRangel::setValue(&remote_sink_settings, pJson["RemoteSinkSettings"], "SWGRemoteSinkSettings", "SWGRemoteSinkSettings"); @@ -495,6 +504,9 @@ SWGChannelSettings::asJsonObject() { if((local_source_settings != nullptr) && (local_source_settings->isSet())){ toJsonValue(QString("LocalSourceSettings"), local_source_settings, obj, QString("SWGLocalSourceSettings")); } + if((packet_demod_settings != nullptr) && (packet_demod_settings->isSet())){ + toJsonValue(QString("PacketDemodSettings"), packet_demod_settings, obj, QString("SWGPacketDemodSettings")); + } if((packet_mod_settings != nullptr) && (packet_mod_settings->isSet())){ toJsonValue(QString("PacketModSettings"), packet_mod_settings, obj, QString("SWGPacketModSettings")); } @@ -805,6 +817,16 @@ SWGChannelSettings::setLocalSourceSettings(SWGLocalSourceSettings* local_source_ this->m_local_source_settings_isSet = true; } +SWGPacketDemodSettings* +SWGChannelSettings::getPacketDemodSettings() { + return packet_demod_settings; +} +void +SWGChannelSettings::setPacketDemodSettings(SWGPacketDemodSettings* packet_demod_settings) { + this->packet_demod_settings = packet_demod_settings; + this->m_packet_demod_settings_isSet = true; +} + SWGPacketModSettings* SWGChannelSettings::getPacketModSettings() { return packet_mod_settings; @@ -1011,6 +1033,9 @@ SWGChannelSettings::isSet(){ if(local_source_settings && local_source_settings->isSet()){ isObjectUpdated = true; break; } + if(packet_demod_settings && packet_demod_settings->isSet()){ + isObjectUpdated = true; break; + } if(packet_mod_settings && packet_mod_settings->isSet()){ isObjectUpdated = true; break; } diff --git a/swagger/sdrangel/code/qt5/client/SWGChannelSettings.h b/swagger/sdrangel/code/qt5/client/SWGChannelSettings.h index 58a49cc71..1dde09d7d 100644 --- a/swagger/sdrangel/code/qt5/client/SWGChannelSettings.h +++ b/swagger/sdrangel/code/qt5/client/SWGChannelSettings.h @@ -45,6 +45,7 @@ #include "SWGLocalSourceSettings.h" #include "SWGNFMDemodSettings.h" #include "SWGNFMModSettings.h" +#include "SWGPacketDemodSettings.h" #include "SWGPacketModSettings.h" #include "SWGRemoteSinkSettings.h" #include "SWGRemoteSourceSettings.h" @@ -158,6 +159,9 @@ public: SWGLocalSourceSettings* getLocalSourceSettings(); void setLocalSourceSettings(SWGLocalSourceSettings* local_source_settings); + SWGPacketDemodSettings* getPacketDemodSettings(); + void setPacketDemodSettings(SWGPacketDemodSettings* packet_demod_settings); + SWGPacketModSettings* getPacketModSettings(); void setPacketModSettings(SWGPacketModSettings* packet_mod_settings); @@ -279,6 +283,9 @@ private: SWGLocalSourceSettings* local_source_settings; bool m_local_source_settings_isSet; + SWGPacketDemodSettings* packet_demod_settings; + bool m_packet_demod_settings_isSet; + SWGPacketModSettings* packet_mod_settings; bool m_packet_mod_settings_isSet; diff --git a/swagger/sdrangel/code/qt5/client/SWGFeatureActions.cpp b/swagger/sdrangel/code/qt5/client/SWGFeatureActions.cpp index 14103f987..f4f0a2fe7 100644 --- a/swagger/sdrangel/code/qt5/client/SWGFeatureActions.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGFeatureActions.cpp @@ -36,6 +36,8 @@ SWGFeatureActions::SWGFeatureActions() { m_originator_feature_index_isSet = false; afc_actions = nullptr; m_afc_actions_isSet = false; + map_actions = nullptr; + m_map_actions_isSet = false; simple_ptt_actions = nullptr; m_simple_ptt_actions_isSet = false; } @@ -54,6 +56,8 @@ SWGFeatureActions::init() { m_originator_feature_index_isSet = false; afc_actions = new SWGAFCActions(); m_afc_actions_isSet = false; + map_actions = new SWGMapActions(); + m_map_actions_isSet = false; simple_ptt_actions = new SWGSimplePTTActions(); m_simple_ptt_actions_isSet = false; } @@ -68,6 +72,9 @@ SWGFeatureActions::cleanup() { if(afc_actions != nullptr) { delete afc_actions; } + if(map_actions != nullptr) { + delete map_actions; + } if(simple_ptt_actions != nullptr) { delete simple_ptt_actions; } @@ -92,6 +99,8 @@ SWGFeatureActions::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&afc_actions, pJson["AFCActions"], "SWGAFCActions", "SWGAFCActions"); + ::SWGSDRangel::setValue(&map_actions, pJson["MapActions"], "SWGMapActions", "SWGMapActions"); + ::SWGSDRangel::setValue(&simple_ptt_actions, pJson["SimplePTTActions"], "SWGSimplePTTActions", "SWGSimplePTTActions"); } @@ -122,6 +131,9 @@ SWGFeatureActions::asJsonObject() { if((afc_actions != nullptr) && (afc_actions->isSet())){ toJsonValue(QString("AFCActions"), afc_actions, obj, QString("SWGAFCActions")); } + if((map_actions != nullptr) && (map_actions->isSet())){ + toJsonValue(QString("MapActions"), map_actions, obj, QString("SWGMapActions")); + } if((simple_ptt_actions != nullptr) && (simple_ptt_actions->isSet())){ toJsonValue(QString("SimplePTTActions"), simple_ptt_actions, obj, QString("SWGSimplePTTActions")); } @@ -169,6 +181,16 @@ SWGFeatureActions::setAfcActions(SWGAFCActions* afc_actions) { this->m_afc_actions_isSet = true; } +SWGMapActions* +SWGFeatureActions::getMapActions() { + return map_actions; +} +void +SWGFeatureActions::setMapActions(SWGMapActions* map_actions) { + this->map_actions = map_actions; + this->m_map_actions_isSet = true; +} + SWGSimplePTTActions* SWGFeatureActions::getSimplePttActions() { return simple_ptt_actions; @@ -196,6 +218,9 @@ SWGFeatureActions::isSet(){ if(afc_actions && afc_actions->isSet()){ isObjectUpdated = true; break; } + if(map_actions && map_actions->isSet()){ + isObjectUpdated = true; break; + } if(simple_ptt_actions && simple_ptt_actions->isSet()){ isObjectUpdated = true; break; } diff --git a/swagger/sdrangel/code/qt5/client/SWGFeatureActions.h b/swagger/sdrangel/code/qt5/client/SWGFeatureActions.h index 87194b32d..1d980a669 100644 --- a/swagger/sdrangel/code/qt5/client/SWGFeatureActions.h +++ b/swagger/sdrangel/code/qt5/client/SWGFeatureActions.h @@ -23,6 +23,7 @@ #include "SWGAFCActions.h" +#include "SWGMapActions.h" #include "SWGSimplePTTActions.h" #include @@ -56,6 +57,9 @@ public: SWGAFCActions* getAfcActions(); void setAfcActions(SWGAFCActions* afc_actions); + SWGMapActions* getMapActions(); + void setMapActions(SWGMapActions* map_actions); + SWGSimplePTTActions* getSimplePttActions(); void setSimplePttActions(SWGSimplePTTActions* simple_ptt_actions); @@ -75,6 +79,9 @@ private: SWGAFCActions* afc_actions; bool m_afc_actions_isSet; + SWGMapActions* map_actions; + bool m_map_actions_isSet; + SWGSimplePTTActions* simple_ptt_actions; bool m_simple_ptt_actions_isSet; diff --git a/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.cpp index f2dae2151..fecafd5bd 100644 --- a/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.cpp @@ -36,12 +36,18 @@ SWGFeatureSettings::SWGFeatureSettings() { m_originator_feature_index_isSet = false; afc_settings = nullptr; m_afc_settings_isSet = false; + aprs_settings = nullptr; + m_aprs_settings_isSet = false; demod_analyzer_settings = nullptr; m_demod_analyzer_settings_isSet = false; gs232_controller_settings = nullptr; m_gs232_controller_settings_isSet = false; + map_settings = nullptr; + m_map_settings_isSet = false; rig_ctl_server_settings = nullptr; m_rig_ctl_server_settings_isSet = false; + star_tracker_settings = nullptr; + m_star_tracker_settings_isSet = false; simple_ptt_settings = nullptr; m_simple_ptt_settings_isSet = false; vor_localizer_settings = nullptr; @@ -62,12 +68,18 @@ SWGFeatureSettings::init() { m_originator_feature_index_isSet = false; afc_settings = new SWGAFCSettings(); m_afc_settings_isSet = false; + aprs_settings = new SWGAPRSSettings(); + m_aprs_settings_isSet = false; demod_analyzer_settings = new SWGDemodAnalyzerSettings(); m_demod_analyzer_settings_isSet = false; gs232_controller_settings = new SWGGS232ControllerSettings(); m_gs232_controller_settings_isSet = false; + map_settings = new SWGMapSettings(); + m_map_settings_isSet = false; rig_ctl_server_settings = new SWGRigCtlServerSettings(); m_rig_ctl_server_settings_isSet = false; + star_tracker_settings = new SWGStarTrackerSettings(); + m_star_tracker_settings_isSet = false; simple_ptt_settings = new SWGSimplePTTSettings(); m_simple_ptt_settings_isSet = false; vor_localizer_settings = new SWGVORLocalizerSettings(); @@ -84,15 +96,24 @@ SWGFeatureSettings::cleanup() { if(afc_settings != nullptr) { delete afc_settings; } + if(aprs_settings != nullptr) { + delete aprs_settings; + } if(demod_analyzer_settings != nullptr) { delete demod_analyzer_settings; } if(gs232_controller_settings != nullptr) { delete gs232_controller_settings; } + if(map_settings != nullptr) { + delete map_settings; + } if(rig_ctl_server_settings != nullptr) { delete rig_ctl_server_settings; } + if(star_tracker_settings != nullptr) { + delete star_tracker_settings; + } if(simple_ptt_settings != nullptr) { delete simple_ptt_settings; } @@ -120,12 +141,18 @@ SWGFeatureSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&afc_settings, pJson["AFCSettings"], "SWGAFCSettings", "SWGAFCSettings"); + ::SWGSDRangel::setValue(&aprs_settings, pJson["APRSSettings"], "SWGAPRSSettings", "SWGAPRSSettings"); + ::SWGSDRangel::setValue(&demod_analyzer_settings, pJson["DemodAnalyzerSettings"], "SWGDemodAnalyzerSettings", "SWGDemodAnalyzerSettings"); ::SWGSDRangel::setValue(&gs232_controller_settings, pJson["GS232ControllerSettings"], "SWGGS232ControllerSettings", "SWGGS232ControllerSettings"); + ::SWGSDRangel::setValue(&map_settings, pJson["MapSettings"], "SWGMapSettings", "SWGMapSettings"); + ::SWGSDRangel::setValue(&rig_ctl_server_settings, pJson["RigCtlServerSettings"], "SWGRigCtlServerSettings", "SWGRigCtlServerSettings"); + ::SWGSDRangel::setValue(&star_tracker_settings, pJson["StarTrackerSettings"], "SWGStarTrackerSettings", "SWGStarTrackerSettings"); + ::SWGSDRangel::setValue(&simple_ptt_settings, pJson["SimplePTTSettings"], "SWGSimplePTTSettings", "SWGSimplePTTSettings"); ::SWGSDRangel::setValue(&vor_localizer_settings, pJson["VORLocalizerSettings"], "SWGVORLocalizerSettings", "SWGVORLocalizerSettings"); @@ -158,15 +185,24 @@ SWGFeatureSettings::asJsonObject() { if((afc_settings != nullptr) && (afc_settings->isSet())){ toJsonValue(QString("AFCSettings"), afc_settings, obj, QString("SWGAFCSettings")); } + if((aprs_settings != nullptr) && (aprs_settings->isSet())){ + toJsonValue(QString("APRSSettings"), aprs_settings, obj, QString("SWGAPRSSettings")); + } if((demod_analyzer_settings != nullptr) && (demod_analyzer_settings->isSet())){ toJsonValue(QString("DemodAnalyzerSettings"), demod_analyzer_settings, obj, QString("SWGDemodAnalyzerSettings")); } if((gs232_controller_settings != nullptr) && (gs232_controller_settings->isSet())){ toJsonValue(QString("GS232ControllerSettings"), gs232_controller_settings, obj, QString("SWGGS232ControllerSettings")); } + if((map_settings != nullptr) && (map_settings->isSet())){ + toJsonValue(QString("MapSettings"), map_settings, obj, QString("SWGMapSettings")); + } if((rig_ctl_server_settings != nullptr) && (rig_ctl_server_settings->isSet())){ toJsonValue(QString("RigCtlServerSettings"), rig_ctl_server_settings, obj, QString("SWGRigCtlServerSettings")); } + if((star_tracker_settings != nullptr) && (star_tracker_settings->isSet())){ + toJsonValue(QString("StarTrackerSettings"), star_tracker_settings, obj, QString("SWGStarTrackerSettings")); + } if((simple_ptt_settings != nullptr) && (simple_ptt_settings->isSet())){ toJsonValue(QString("SimplePTTSettings"), simple_ptt_settings, obj, QString("SWGSimplePTTSettings")); } @@ -217,6 +253,16 @@ SWGFeatureSettings::setAfcSettings(SWGAFCSettings* afc_settings) { this->m_afc_settings_isSet = true; } +SWGAPRSSettings* +SWGFeatureSettings::getAprsSettings() { + return aprs_settings; +} +void +SWGFeatureSettings::setAprsSettings(SWGAPRSSettings* aprs_settings) { + this->aprs_settings = aprs_settings; + this->m_aprs_settings_isSet = true; +} + SWGDemodAnalyzerSettings* SWGFeatureSettings::getDemodAnalyzerSettings() { return demod_analyzer_settings; @@ -237,6 +283,16 @@ SWGFeatureSettings::setGs232ControllerSettings(SWGGS232ControllerSettings* gs232 this->m_gs232_controller_settings_isSet = true; } +SWGMapSettings* +SWGFeatureSettings::getMapSettings() { + return map_settings; +} +void +SWGFeatureSettings::setMapSettings(SWGMapSettings* map_settings) { + this->map_settings = map_settings; + this->m_map_settings_isSet = true; +} + SWGRigCtlServerSettings* SWGFeatureSettings::getRigCtlServerSettings() { return rig_ctl_server_settings; @@ -247,6 +303,16 @@ SWGFeatureSettings::setRigCtlServerSettings(SWGRigCtlServerSettings* rig_ctl_ser this->m_rig_ctl_server_settings_isSet = true; } +SWGStarTrackerSettings* +SWGFeatureSettings::getStarTrackerSettings() { + return star_tracker_settings; +} +void +SWGFeatureSettings::setStarTrackerSettings(SWGStarTrackerSettings* star_tracker_settings) { + this->star_tracker_settings = star_tracker_settings; + this->m_star_tracker_settings_isSet = true; +} + SWGSimplePTTSettings* SWGFeatureSettings::getSimplePttSettings() { return simple_ptt_settings; @@ -284,15 +350,24 @@ SWGFeatureSettings::isSet(){ if(afc_settings && afc_settings->isSet()){ isObjectUpdated = true; break; } + if(aprs_settings && aprs_settings->isSet()){ + isObjectUpdated = true; break; + } if(demod_analyzer_settings && demod_analyzer_settings->isSet()){ isObjectUpdated = true; break; } if(gs232_controller_settings && gs232_controller_settings->isSet()){ isObjectUpdated = true; break; } + if(map_settings && map_settings->isSet()){ + isObjectUpdated = true; break; + } if(rig_ctl_server_settings && rig_ctl_server_settings->isSet()){ isObjectUpdated = true; break; } + if(star_tracker_settings && star_tracker_settings->isSet()){ + isObjectUpdated = true; break; + } if(simple_ptt_settings && simple_ptt_settings->isSet()){ isObjectUpdated = true; break; } diff --git a/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.h b/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.h index 9ce7e16d5..36858b501 100644 --- a/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.h +++ b/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.h @@ -23,10 +23,13 @@ #include "SWGAFCSettings.h" +#include "SWGAPRSSettings.h" #include "SWGDemodAnalyzerSettings.h" #include "SWGGS232ControllerSettings.h" +#include "SWGMapSettings.h" #include "SWGRigCtlServerSettings.h" #include "SWGSimplePTTSettings.h" +#include "SWGStarTrackerSettings.h" #include "SWGVORLocalizerSettings.h" #include @@ -60,15 +63,24 @@ public: SWGAFCSettings* getAfcSettings(); void setAfcSettings(SWGAFCSettings* afc_settings); + SWGAPRSSettings* getAprsSettings(); + void setAprsSettings(SWGAPRSSettings* aprs_settings); + SWGDemodAnalyzerSettings* getDemodAnalyzerSettings(); void setDemodAnalyzerSettings(SWGDemodAnalyzerSettings* demod_analyzer_settings); SWGGS232ControllerSettings* getGs232ControllerSettings(); void setGs232ControllerSettings(SWGGS232ControllerSettings* gs232_controller_settings); + SWGMapSettings* getMapSettings(); + void setMapSettings(SWGMapSettings* map_settings); + SWGRigCtlServerSettings* getRigCtlServerSettings(); void setRigCtlServerSettings(SWGRigCtlServerSettings* rig_ctl_server_settings); + SWGStarTrackerSettings* getStarTrackerSettings(); + void setStarTrackerSettings(SWGStarTrackerSettings* star_tracker_settings); + SWGSimplePTTSettings* getSimplePttSettings(); void setSimplePttSettings(SWGSimplePTTSettings* simple_ptt_settings); @@ -91,15 +103,24 @@ private: SWGAFCSettings* afc_settings; bool m_afc_settings_isSet; + SWGAPRSSettings* aprs_settings; + bool m_aprs_settings_isSet; + SWGDemodAnalyzerSettings* demod_analyzer_settings; bool m_demod_analyzer_settings_isSet; SWGGS232ControllerSettings* gs232_controller_settings; bool m_gs232_controller_settings_isSet; + SWGMapSettings* map_settings; + bool m_map_settings_isSet; + SWGRigCtlServerSettings* rig_ctl_server_settings; bool m_rig_ctl_server_settings_isSet; + SWGStarTrackerSettings* star_tracker_settings; + bool m_star_tracker_settings_isSet; + SWGSimplePTTSettings* simple_ptt_settings; bool m_simple_ptt_settings_isSet; diff --git a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.cpp index fa5adc558..15394e4d9 100644 --- a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.cpp @@ -38,14 +38,16 @@ SWGGS232ControllerSettings::SWGGS232ControllerSettings() { m_baud_rate_isSet = false; track = 0; m_track_isSet = false; + target = nullptr; + m_target_isSet = false; + azimuth_offset = 0; + m_azimuth_offset_isSet = false; + elevation_offset = 0; + m_elevation_offset_isSet = false; title = nullptr; m_title_isSet = false; rgb_color = 0; m_rgb_color_isSet = false; - device_index = 0; - m_device_index_isSet = false; - channel_index = 0; - m_channel_index_isSet = false; use_reverse_api = 0; m_use_reverse_api_isSet = false; reverse_api_address = nullptr; @@ -74,14 +76,16 @@ SWGGS232ControllerSettings::init() { m_baud_rate_isSet = false; track = 0; m_track_isSet = false; + target = new QString(""); + m_target_isSet = false; + azimuth_offset = 0; + m_azimuth_offset_isSet = false; + elevation_offset = 0; + m_elevation_offset_isSet = false; title = new QString(""); m_title_isSet = false; rgb_color = 0; m_rgb_color_isSet = false; - device_index = 0; - m_device_index_isSet = false; - channel_index = 0; - m_channel_index_isSet = false; use_reverse_api = 0; m_use_reverse_api_isSet = false; reverse_api_address = new QString(""); @@ -103,11 +107,14 @@ SWGGS232ControllerSettings::cleanup() { } - if(title != nullptr) { - delete title; + if(target != nullptr) { + delete target; } + if(title != nullptr) { + delete title; + } if(reverse_api_address != nullptr) { @@ -139,14 +146,16 @@ SWGGS232ControllerSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&track, pJson["track"], "qint32", ""); + ::SWGSDRangel::setValue(&target, pJson["target"], "QString", "QString"); + + ::SWGSDRangel::setValue(&azimuth_offset, pJson["azimuthOffset"], "qint32", ""); + + ::SWGSDRangel::setValue(&elevation_offset, pJson["elevationOffset"], "qint32", ""); + ::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString"); ::SWGSDRangel::setValue(&rgb_color, pJson["rgbColor"], "qint32", ""); - ::SWGSDRangel::setValue(&device_index, pJson["deviceIndex"], "qint32", ""); - - ::SWGSDRangel::setValue(&channel_index, pJson["channelIndex"], "qint32", ""); - ::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", ""); ::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString"); @@ -188,18 +197,21 @@ SWGGS232ControllerSettings::asJsonObject() { if(m_track_isSet){ obj->insert("track", QJsonValue(track)); } + if(target != nullptr && *target != QString("")){ + toJsonValue(QString("target"), target, obj, QString("QString")); + } + if(m_azimuth_offset_isSet){ + obj->insert("azimuthOffset", QJsonValue(azimuth_offset)); + } + if(m_elevation_offset_isSet){ + obj->insert("elevationOffset", QJsonValue(elevation_offset)); + } if(title != nullptr && *title != QString("")){ toJsonValue(QString("title"), title, obj, QString("QString")); } if(m_rgb_color_isSet){ obj->insert("rgbColor", QJsonValue(rgb_color)); } - if(m_device_index_isSet){ - obj->insert("deviceIndex", QJsonValue(device_index)); - } - if(m_channel_index_isSet){ - obj->insert("channelIndex", QJsonValue(channel_index)); - } if(m_use_reverse_api_isSet){ obj->insert("useReverseAPI", QJsonValue(use_reverse_api)); } @@ -269,6 +281,36 @@ SWGGS232ControllerSettings::setTrack(qint32 track) { this->m_track_isSet = true; } +QString* +SWGGS232ControllerSettings::getTarget() { + return target; +} +void +SWGGS232ControllerSettings::setTarget(QString* target) { + this->target = target; + this->m_target_isSet = true; +} + +qint32 +SWGGS232ControllerSettings::getAzimuthOffset() { + return azimuth_offset; +} +void +SWGGS232ControllerSettings::setAzimuthOffset(qint32 azimuth_offset) { + this->azimuth_offset = azimuth_offset; + this->m_azimuth_offset_isSet = true; +} + +qint32 +SWGGS232ControllerSettings::getElevationOffset() { + return elevation_offset; +} +void +SWGGS232ControllerSettings::setElevationOffset(qint32 elevation_offset) { + this->elevation_offset = elevation_offset; + this->m_elevation_offset_isSet = true; +} + QString* SWGGS232ControllerSettings::getTitle() { return title; @@ -289,26 +331,6 @@ SWGGS232ControllerSettings::setRgbColor(qint32 rgb_color) { this->m_rgb_color_isSet = true; } -qint32 -SWGGS232ControllerSettings::getDeviceIndex() { - return device_index; -} -void -SWGGS232ControllerSettings::setDeviceIndex(qint32 device_index) { - this->device_index = device_index; - this->m_device_index_isSet = true; -} - -qint32 -SWGGS232ControllerSettings::getChannelIndex() { - return channel_index; -} -void -SWGGS232ControllerSettings::setChannelIndex(qint32 channel_index) { - this->channel_index = channel_index; - this->m_channel_index_isSet = true; -} - qint32 SWGGS232ControllerSettings::getUseReverseApi() { return use_reverse_api; @@ -379,18 +401,21 @@ SWGGS232ControllerSettings::isSet(){ if(m_track_isSet){ isObjectUpdated = true; break; } + if(target && *target != QString("")){ + isObjectUpdated = true; break; + } + if(m_azimuth_offset_isSet){ + isObjectUpdated = true; break; + } + if(m_elevation_offset_isSet){ + isObjectUpdated = true; break; + } if(title && *title != QString("")){ isObjectUpdated = true; break; } if(m_rgb_color_isSet){ isObjectUpdated = true; break; } - if(m_device_index_isSet){ - isObjectUpdated = true; break; - } - if(m_channel_index_isSet){ - isObjectUpdated = true; break; - } if(m_use_reverse_api_isSet){ isObjectUpdated = true; break; } diff --git a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.h b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.h index e52a1936b..1a662bf9b 100644 --- a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.h +++ b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.h @@ -57,18 +57,21 @@ public: qint32 getTrack(); void setTrack(qint32 track); + QString* getTarget(); + void setTarget(QString* target); + + qint32 getAzimuthOffset(); + void setAzimuthOffset(qint32 azimuth_offset); + + qint32 getElevationOffset(); + void setElevationOffset(qint32 elevation_offset); + QString* getTitle(); void setTitle(QString* title); qint32 getRgbColor(); void setRgbColor(qint32 rgb_color); - qint32 getDeviceIndex(); - void setDeviceIndex(qint32 device_index); - - qint32 getChannelIndex(); - void setChannelIndex(qint32 channel_index); - qint32 getUseReverseApi(); void setUseReverseApi(qint32 use_reverse_api); @@ -103,18 +106,21 @@ private: qint32 track; bool m_track_isSet; + QString* target; + bool m_target_isSet; + + qint32 azimuth_offset; + bool m_azimuth_offset_isSet; + + qint32 elevation_offset; + bool m_elevation_offset_isSet; + QString* title; bool m_title_isSet; qint32 rgb_color; bool m_rgb_color_isSet; - qint32 device_index; - bool m_device_index_isSet; - - qint32 channel_index; - bool m_channel_index_isSet; - qint32 use_reverse_api; bool m_use_reverse_api_isSet; diff --git a/swagger/sdrangel/code/qt5/client/SWGMapActions.cpp b/swagger/sdrangel/code/qt5/client/SWGMapActions.cpp new file mode 100644 index 000000000..dbe5a9c0c --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGMapActions.cpp @@ -0,0 +1,110 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGMapActions.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGMapActions::SWGMapActions(QString* json) { + init(); + this->fromJson(*json); +} + +SWGMapActions::SWGMapActions() { + find = nullptr; + m_find_isSet = false; +} + +SWGMapActions::~SWGMapActions() { + this->cleanup(); +} + +void +SWGMapActions::init() { + find = new QString(""); + m_find_isSet = false; +} + +void +SWGMapActions::cleanup() { + if(find != nullptr) { + delete find; + } +} + +SWGMapActions* +SWGMapActions::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGMapActions::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&find, pJson["find"], "QString", "QString"); + +} + +QString +SWGMapActions::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGMapActions::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(find != nullptr && *find != QString("")){ + toJsonValue(QString("find"), find, obj, QString("QString")); + } + + return obj; +} + +QString* +SWGMapActions::getFind() { + return find; +} +void +SWGMapActions::setFind(QString* find) { + this->find = find; + this->m_find_isSet = true; +} + + +bool +SWGMapActions::isSet(){ + bool isObjectUpdated = false; + do{ + if(find && *find != QString("")){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGMapActions.h b/swagger/sdrangel/code/qt5/client/SWGMapActions.h new file mode 100644 index 000000000..67f4ed572 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGMapActions.h @@ -0,0 +1,59 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGMapActions.h + * + * Map + */ + +#ifndef SWGMapActions_H_ +#define SWGMapActions_H_ + +#include + + +#include + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGMapActions: public SWGObject { +public: + SWGMapActions(); + SWGMapActions(QString* json); + virtual ~SWGMapActions(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGMapActions* fromJson(QString &jsonString) override; + + QString* getFind(); + void setFind(QString* find); + + + virtual bool isSet() override; + +private: + QString* find; + bool m_find_isSet; + +}; + +} + +#endif /* SWGMapActions_H_ */ diff --git a/swagger/sdrangel/code/qt5/client/SWGMapActions_find.cpp b/swagger/sdrangel/code/qt5/client/SWGMapActions_find.cpp new file mode 100644 index 000000000..0e9607141 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGMapActions_find.cpp @@ -0,0 +1,110 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGMapActions_find.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGMapActions_find::SWGMapActions_find(QString* json) { + init(); + this->fromJson(*json); +} + +SWGMapActions_find::SWGMapActions_find() { + id = nullptr; + m_id_isSet = false; +} + +SWGMapActions_find::~SWGMapActions_find() { + this->cleanup(); +} + +void +SWGMapActions_find::init() { + id = new QString(""); + m_id_isSet = false; +} + +void +SWGMapActions_find::cleanup() { + if(id != nullptr) { + delete id; + } +} + +SWGMapActions_find* +SWGMapActions_find::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGMapActions_find::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&id, pJson["id"], "QString", "QString"); + +} + +QString +SWGMapActions_find::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGMapActions_find::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(id != nullptr && *id != QString("")){ + toJsonValue(QString("id"), id, obj, QString("QString")); + } + + return obj; +} + +QString* +SWGMapActions_find::getId() { + return id; +} +void +SWGMapActions_find::setId(QString* id) { + this->id = id; + this->m_id_isSet = true; +} + + +bool +SWGMapActions_find::isSet(){ + bool isObjectUpdated = false; + do{ + if(id && *id != QString("")){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGMapActions_find.h b/swagger/sdrangel/code/qt5/client/SWGMapActions_find.h new file mode 100644 index 000000000..cce1988c8 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGMapActions_find.h @@ -0,0 +1,59 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGMapActions_find.h + * + * A request to centre the map on an item. + */ + +#ifndef SWGMapActions_find_H_ +#define SWGMapActions_find_H_ + +#include + + +#include + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGMapActions_find: public SWGObject { +public: + SWGMapActions_find(); + SWGMapActions_find(QString* json); + virtual ~SWGMapActions_find(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGMapActions_find* fromJson(QString &jsonString) override; + + QString* getId(); + void setId(QString* id); + + + virtual bool isSet() override; + +private: + QString* id; + bool m_id_isSet; + +}; + +} + +#endif /* SWGMapActions_find_H_ */ diff --git a/swagger/sdrangel/code/qt5/client/SWGMapItem.cpp b/swagger/sdrangel/code/qt5/client/SWGMapItem.cpp new file mode 100644 index 000000000..f390c6d01 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGMapItem.cpp @@ -0,0 +1,252 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGMapItem.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGMapItem::SWGMapItem(QString* json) { + init(); + this->fromJson(*json); +} + +SWGMapItem::SWGMapItem() { + name = nullptr; + m_name_isSet = false; + image = nullptr; + m_image_isSet = false; + image_rotation = 0; + m_image_rotation_isSet = false; + image_fixed_size = 0; + m_image_fixed_size_isSet = false; + text = nullptr; + m_text_isSet = false; + latitude = 0.0f; + m_latitude_isSet = false; + longitude = 0.0f; + m_longitude_isSet = false; +} + +SWGMapItem::~SWGMapItem() { + this->cleanup(); +} + +void +SWGMapItem::init() { + name = new QString(""); + m_name_isSet = false; + image = new QString(""); + m_image_isSet = false; + image_rotation = 0; + m_image_rotation_isSet = false; + image_fixed_size = 0; + m_image_fixed_size_isSet = false; + text = new QString(""); + m_text_isSet = false; + latitude = 0.0f; + m_latitude_isSet = false; + longitude = 0.0f; + m_longitude_isSet = false; +} + +void +SWGMapItem::cleanup() { + if(name != nullptr) { + delete name; + } + if(image != nullptr) { + delete image; + } + + + if(text != nullptr) { + delete text; + } + + +} + +SWGMapItem* +SWGMapItem::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGMapItem::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&name, pJson["name"], "QString", "QString"); + + ::SWGSDRangel::setValue(&image, pJson["image"], "QString", "QString"); + + ::SWGSDRangel::setValue(&image_rotation, pJson["imageRotation"], "qint32", ""); + + ::SWGSDRangel::setValue(&image_fixed_size, pJson["imageFixedSize"], "qint32", ""); + + ::SWGSDRangel::setValue(&text, pJson["text"], "QString", "QString"); + + ::SWGSDRangel::setValue(&latitude, pJson["latitude"], "float", ""); + + ::SWGSDRangel::setValue(&longitude, pJson["longitude"], "float", ""); + +} + +QString +SWGMapItem::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGMapItem::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(name != nullptr && *name != QString("")){ + toJsonValue(QString("name"), name, obj, QString("QString")); + } + if(image != nullptr && *image != QString("")){ + toJsonValue(QString("image"), image, obj, QString("QString")); + } + if(m_image_rotation_isSet){ + obj->insert("imageRotation", QJsonValue(image_rotation)); + } + if(m_image_fixed_size_isSet){ + obj->insert("imageFixedSize", QJsonValue(image_fixed_size)); + } + if(text != nullptr && *text != QString("")){ + toJsonValue(QString("text"), text, obj, QString("QString")); + } + if(m_latitude_isSet){ + obj->insert("latitude", QJsonValue(latitude)); + } + if(m_longitude_isSet){ + obj->insert("longitude", QJsonValue(longitude)); + } + + return obj; +} + +QString* +SWGMapItem::getName() { + return name; +} +void +SWGMapItem::setName(QString* name) { + this->name = name; + this->m_name_isSet = true; +} + +QString* +SWGMapItem::getImage() { + return image; +} +void +SWGMapItem::setImage(QString* image) { + this->image = image; + this->m_image_isSet = true; +} + +qint32 +SWGMapItem::getImageRotation() { + return image_rotation; +} +void +SWGMapItem::setImageRotation(qint32 image_rotation) { + this->image_rotation = image_rotation; + this->m_image_rotation_isSet = true; +} + +qint32 +SWGMapItem::getImageFixedSize() { + return image_fixed_size; +} +void +SWGMapItem::setImageFixedSize(qint32 image_fixed_size) { + this->image_fixed_size = image_fixed_size; + this->m_image_fixed_size_isSet = true; +} + +QString* +SWGMapItem::getText() { + return text; +} +void +SWGMapItem::setText(QString* text) { + this->text = text; + this->m_text_isSet = true; +} + +float +SWGMapItem::getLatitude() { + return latitude; +} +void +SWGMapItem::setLatitude(float latitude) { + this->latitude = latitude; + this->m_latitude_isSet = true; +} + +float +SWGMapItem::getLongitude() { + return longitude; +} +void +SWGMapItem::setLongitude(float longitude) { + this->longitude = longitude; + this->m_longitude_isSet = true; +} + + +bool +SWGMapItem::isSet(){ + bool isObjectUpdated = false; + do{ + if(name && *name != QString("")){ + isObjectUpdated = true; break; + } + if(image && *image != QString("")){ + isObjectUpdated = true; break; + } + if(m_image_rotation_isSet){ + isObjectUpdated = true; break; + } + if(m_image_fixed_size_isSet){ + isObjectUpdated = true; break; + } + if(text && *text != QString("")){ + isObjectUpdated = true; break; + } + if(m_latitude_isSet){ + isObjectUpdated = true; break; + } + if(m_longitude_isSet){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGMapItem.h b/swagger/sdrangel/code/qt5/client/SWGMapItem.h new file mode 100644 index 000000000..f9c16eec3 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGMapItem.h @@ -0,0 +1,95 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGMapItem.h + * + * An item to draw on the map. Set image to an empty string to remove item from the map. + */ + +#ifndef SWGMapItem_H_ +#define SWGMapItem_H_ + +#include + + +#include + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGMapItem: public SWGObject { +public: + SWGMapItem(); + SWGMapItem(QString* json); + virtual ~SWGMapItem(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGMapItem* fromJson(QString &jsonString) override; + + QString* getName(); + void setName(QString* name); + + QString* getImage(); + void setImage(QString* image); + + qint32 getImageRotation(); + void setImageRotation(qint32 image_rotation); + + qint32 getImageFixedSize(); + void setImageFixedSize(qint32 image_fixed_size); + + QString* getText(); + void setText(QString* text); + + float getLatitude(); + void setLatitude(float latitude); + + float getLongitude(); + void setLongitude(float longitude); + + + virtual bool isSet() override; + +private: + QString* name; + bool m_name_isSet; + + QString* image; + bool m_image_isSet; + + qint32 image_rotation; + bool m_image_rotation_isSet; + + qint32 image_fixed_size; + bool m_image_fixed_size_isSet; + + QString* text; + bool m_text_isSet; + + float latitude; + bool m_latitude_isSet; + + float longitude; + bool m_longitude_isSet; + +}; + +} + +#endif /* SWGMapItem_H_ */ diff --git a/swagger/sdrangel/code/qt5/client/SWGMapItem_2.cpp b/swagger/sdrangel/code/qt5/client/SWGMapItem_2.cpp new file mode 100644 index 000000000..d788fee5a --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGMapItem_2.cpp @@ -0,0 +1,252 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGMapItem_2.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGMapItem_2::SWGMapItem_2(QString* json) { + init(); + this->fromJson(*json); +} + +SWGMapItem_2::SWGMapItem_2() { + name = nullptr; + m_name_isSet = false; + image = nullptr; + m_image_isSet = false; + image_rotation = 0; + m_image_rotation_isSet = false; + image_fixed_size = 0; + m_image_fixed_size_isSet = false; + text = nullptr; + m_text_isSet = false; + latitude = 0.0f; + m_latitude_isSet = false; + longitude = 0.0f; + m_longitude_isSet = false; +} + +SWGMapItem_2::~SWGMapItem_2() { + this->cleanup(); +} + +void +SWGMapItem_2::init() { + name = new QString(""); + m_name_isSet = false; + image = new QString(""); + m_image_isSet = false; + image_rotation = 0; + m_image_rotation_isSet = false; + image_fixed_size = 0; + m_image_fixed_size_isSet = false; + text = new QString(""); + m_text_isSet = false; + latitude = 0.0f; + m_latitude_isSet = false; + longitude = 0.0f; + m_longitude_isSet = false; +} + +void +SWGMapItem_2::cleanup() { + if(name != nullptr) { + delete name; + } + if(image != nullptr) { + delete image; + } + + + if(text != nullptr) { + delete text; + } + + +} + +SWGMapItem_2* +SWGMapItem_2::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGMapItem_2::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&name, pJson["name"], "QString", "QString"); + + ::SWGSDRangel::setValue(&image, pJson["image"], "QString", "QString"); + + ::SWGSDRangel::setValue(&image_rotation, pJson["imageRotation"], "qint32", ""); + + ::SWGSDRangel::setValue(&image_fixed_size, pJson["imageFixedSize"], "qint32", ""); + + ::SWGSDRangel::setValue(&text, pJson["text"], "QString", "QString"); + + ::SWGSDRangel::setValue(&latitude, pJson["latitude"], "float", ""); + + ::SWGSDRangel::setValue(&longitude, pJson["longitude"], "float", ""); + +} + +QString +SWGMapItem_2::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGMapItem_2::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(name != nullptr && *name != QString("")){ + toJsonValue(QString("name"), name, obj, QString("QString")); + } + if(image != nullptr && *image != QString("")){ + toJsonValue(QString("image"), image, obj, QString("QString")); + } + if(m_image_rotation_isSet){ + obj->insert("imageRotation", QJsonValue(image_rotation)); + } + if(m_image_fixed_size_isSet){ + obj->insert("imageFixedSize", QJsonValue(image_fixed_size)); + } + if(text != nullptr && *text != QString("")){ + toJsonValue(QString("text"), text, obj, QString("QString")); + } + if(m_latitude_isSet){ + obj->insert("latitude", QJsonValue(latitude)); + } + if(m_longitude_isSet){ + obj->insert("longitude", QJsonValue(longitude)); + } + + return obj; +} + +QString* +SWGMapItem_2::getName() { + return name; +} +void +SWGMapItem_2::setName(QString* name) { + this->name = name; + this->m_name_isSet = true; +} + +QString* +SWGMapItem_2::getImage() { + return image; +} +void +SWGMapItem_2::setImage(QString* image) { + this->image = image; + this->m_image_isSet = true; +} + +qint32 +SWGMapItem_2::getImageRotation() { + return image_rotation; +} +void +SWGMapItem_2::setImageRotation(qint32 image_rotation) { + this->image_rotation = image_rotation; + this->m_image_rotation_isSet = true; +} + +qint32 +SWGMapItem_2::getImageFixedSize() { + return image_fixed_size; +} +void +SWGMapItem_2::setImageFixedSize(qint32 image_fixed_size) { + this->image_fixed_size = image_fixed_size; + this->m_image_fixed_size_isSet = true; +} + +QString* +SWGMapItem_2::getText() { + return text; +} +void +SWGMapItem_2::setText(QString* text) { + this->text = text; + this->m_text_isSet = true; +} + +float +SWGMapItem_2::getLatitude() { + return latitude; +} +void +SWGMapItem_2::setLatitude(float latitude) { + this->latitude = latitude; + this->m_latitude_isSet = true; +} + +float +SWGMapItem_2::getLongitude() { + return longitude; +} +void +SWGMapItem_2::setLongitude(float longitude) { + this->longitude = longitude; + this->m_longitude_isSet = true; +} + + +bool +SWGMapItem_2::isSet(){ + bool isObjectUpdated = false; + do{ + if(name && *name != QString("")){ + isObjectUpdated = true; break; + } + if(image && *image != QString("")){ + isObjectUpdated = true; break; + } + if(m_image_rotation_isSet){ + isObjectUpdated = true; break; + } + if(m_image_fixed_size_isSet){ + isObjectUpdated = true; break; + } + if(text && *text != QString("")){ + isObjectUpdated = true; break; + } + if(m_latitude_isSet){ + isObjectUpdated = true; break; + } + if(m_longitude_isSet){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGMapItem_2.h b/swagger/sdrangel/code/qt5/client/SWGMapItem_2.h new file mode 100644 index 000000000..67414fe28 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGMapItem_2.h @@ -0,0 +1,95 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGMapItem_2.h + * + * An item to draw on the map. Set image to an empty string to remove item from the map. + */ + +#ifndef SWGMapItem_2_H_ +#define SWGMapItem_2_H_ + +#include + + +#include + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGMapItem_2: public SWGObject { +public: + SWGMapItem_2(); + SWGMapItem_2(QString* json); + virtual ~SWGMapItem_2(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGMapItem_2* fromJson(QString &jsonString) override; + + QString* getName(); + void setName(QString* name); + + QString* getImage(); + void setImage(QString* image); + + qint32 getImageRotation(); + void setImageRotation(qint32 image_rotation); + + qint32 getImageFixedSize(); + void setImageFixedSize(qint32 image_fixed_size); + + QString* getText(); + void setText(QString* text); + + float getLatitude(); + void setLatitude(float latitude); + + float getLongitude(); + void setLongitude(float longitude); + + + virtual bool isSet() override; + +private: + QString* name; + bool m_name_isSet; + + QString* image; + bool m_image_isSet; + + qint32 image_rotation; + bool m_image_rotation_isSet; + + qint32 image_fixed_size; + bool m_image_fixed_size_isSet; + + QString* text; + bool m_text_isSet; + + float latitude; + bool m_latitude_isSet; + + float longitude; + bool m_longitude_isSet; + +}; + +} + +#endif /* SWGMapItem_2_H_ */ diff --git a/swagger/sdrangel/code/qt5/client/SWGMapSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGMapSettings.cpp new file mode 100644 index 000000000..e4c686e73 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGMapSettings.cpp @@ -0,0 +1,273 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGMapSettings.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGMapSettings::SWGMapSettings(QString* json) { + init(); + this->fromJson(*json); +} + +SWGMapSettings::SWGMapSettings() { + display_names = 0; + m_display_names_isSet = false; + title = nullptr; + m_title_isSet = false; + rgb_color = 0; + m_rgb_color_isSet = false; + use_reverse_api = 0; + m_use_reverse_api_isSet = false; + reverse_api_address = nullptr; + m_reverse_api_address_isSet = false; + reverse_api_port = 0; + m_reverse_api_port_isSet = false; + reverse_api_device_index = 0; + m_reverse_api_device_index_isSet = false; + reverse_api_channel_index = 0; + m_reverse_api_channel_index_isSet = false; +} + +SWGMapSettings::~SWGMapSettings() { + this->cleanup(); +} + +void +SWGMapSettings::init() { + display_names = 0; + m_display_names_isSet = false; + title = new QString(""); + m_title_isSet = false; + rgb_color = 0; + m_rgb_color_isSet = false; + use_reverse_api = 0; + m_use_reverse_api_isSet = false; + reverse_api_address = new QString(""); + m_reverse_api_address_isSet = false; + reverse_api_port = 0; + m_reverse_api_port_isSet = false; + reverse_api_device_index = 0; + m_reverse_api_device_index_isSet = false; + reverse_api_channel_index = 0; + m_reverse_api_channel_index_isSet = false; +} + +void +SWGMapSettings::cleanup() { + + if(title != nullptr) { + delete title; + } + + + if(reverse_api_address != nullptr) { + delete reverse_api_address; + } + + + +} + +SWGMapSettings* +SWGMapSettings::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGMapSettings::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&display_names, pJson["displayNames"], "qint32", ""); + + ::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString"); + + ::SWGSDRangel::setValue(&rgb_color, pJson["rgbColor"], "qint32", ""); + + ::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString"); + + ::SWGSDRangel::setValue(&reverse_api_port, pJson["reverseAPIPort"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_device_index, pJson["reverseAPIDeviceIndex"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_channel_index, pJson["reverseAPIChannelIndex"], "qint32", ""); + +} + +QString +SWGMapSettings::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGMapSettings::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(m_display_names_isSet){ + obj->insert("displayNames", QJsonValue(display_names)); + } + if(title != nullptr && *title != QString("")){ + toJsonValue(QString("title"), title, obj, QString("QString")); + } + if(m_rgb_color_isSet){ + obj->insert("rgbColor", QJsonValue(rgb_color)); + } + if(m_use_reverse_api_isSet){ + obj->insert("useReverseAPI", QJsonValue(use_reverse_api)); + } + if(reverse_api_address != nullptr && *reverse_api_address != QString("")){ + toJsonValue(QString("reverseAPIAddress"), reverse_api_address, obj, QString("QString")); + } + if(m_reverse_api_port_isSet){ + obj->insert("reverseAPIPort", QJsonValue(reverse_api_port)); + } + if(m_reverse_api_device_index_isSet){ + obj->insert("reverseAPIDeviceIndex", QJsonValue(reverse_api_device_index)); + } + if(m_reverse_api_channel_index_isSet){ + obj->insert("reverseAPIChannelIndex", QJsonValue(reverse_api_channel_index)); + } + + return obj; +} + +qint32 +SWGMapSettings::getDisplayNames() { + return display_names; +} +void +SWGMapSettings::setDisplayNames(qint32 display_names) { + this->display_names = display_names; + this->m_display_names_isSet = true; +} + +QString* +SWGMapSettings::getTitle() { + return title; +} +void +SWGMapSettings::setTitle(QString* title) { + this->title = title; + this->m_title_isSet = true; +} + +qint32 +SWGMapSettings::getRgbColor() { + return rgb_color; +} +void +SWGMapSettings::setRgbColor(qint32 rgb_color) { + this->rgb_color = rgb_color; + this->m_rgb_color_isSet = true; +} + +qint32 +SWGMapSettings::getUseReverseApi() { + return use_reverse_api; +} +void +SWGMapSettings::setUseReverseApi(qint32 use_reverse_api) { + this->use_reverse_api = use_reverse_api; + this->m_use_reverse_api_isSet = true; +} + +QString* +SWGMapSettings::getReverseApiAddress() { + return reverse_api_address; +} +void +SWGMapSettings::setReverseApiAddress(QString* reverse_api_address) { + this->reverse_api_address = reverse_api_address; + this->m_reverse_api_address_isSet = true; +} + +qint32 +SWGMapSettings::getReverseApiPort() { + return reverse_api_port; +} +void +SWGMapSettings::setReverseApiPort(qint32 reverse_api_port) { + this->reverse_api_port = reverse_api_port; + this->m_reverse_api_port_isSet = true; +} + +qint32 +SWGMapSettings::getReverseApiDeviceIndex() { + return reverse_api_device_index; +} +void +SWGMapSettings::setReverseApiDeviceIndex(qint32 reverse_api_device_index) { + this->reverse_api_device_index = reverse_api_device_index; + this->m_reverse_api_device_index_isSet = true; +} + +qint32 +SWGMapSettings::getReverseApiChannelIndex() { + return reverse_api_channel_index; +} +void +SWGMapSettings::setReverseApiChannelIndex(qint32 reverse_api_channel_index) { + this->reverse_api_channel_index = reverse_api_channel_index; + this->m_reverse_api_channel_index_isSet = true; +} + + +bool +SWGMapSettings::isSet(){ + bool isObjectUpdated = false; + do{ + if(m_display_names_isSet){ + isObjectUpdated = true; break; + } + if(title && *title != QString("")){ + isObjectUpdated = true; break; + } + if(m_rgb_color_isSet){ + isObjectUpdated = true; break; + } + if(m_use_reverse_api_isSet){ + isObjectUpdated = true; break; + } + if(reverse_api_address && *reverse_api_address != QString("")){ + isObjectUpdated = true; break; + } + if(m_reverse_api_port_isSet){ + isObjectUpdated = true; break; + } + if(m_reverse_api_device_index_isSet){ + isObjectUpdated = true; break; + } + if(m_reverse_api_channel_index_isSet){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGMapSettings.h b/swagger/sdrangel/code/qt5/client/SWGMapSettings.h new file mode 100644 index 000000000..4a0b77869 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGMapSettings.h @@ -0,0 +1,101 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGMapSettings.h + * + * Map + */ + +#ifndef SWGMapSettings_H_ +#define SWGMapSettings_H_ + +#include + + +#include + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGMapSettings: public SWGObject { +public: + SWGMapSettings(); + SWGMapSettings(QString* json); + virtual ~SWGMapSettings(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGMapSettings* fromJson(QString &jsonString) override; + + qint32 getDisplayNames(); + void setDisplayNames(qint32 display_names); + + QString* getTitle(); + void setTitle(QString* title); + + qint32 getRgbColor(); + void setRgbColor(qint32 rgb_color); + + qint32 getUseReverseApi(); + void setUseReverseApi(qint32 use_reverse_api); + + QString* getReverseApiAddress(); + void setReverseApiAddress(QString* reverse_api_address); + + qint32 getReverseApiPort(); + void setReverseApiPort(qint32 reverse_api_port); + + qint32 getReverseApiDeviceIndex(); + void setReverseApiDeviceIndex(qint32 reverse_api_device_index); + + qint32 getReverseApiChannelIndex(); + void setReverseApiChannelIndex(qint32 reverse_api_channel_index); + + + virtual bool isSet() override; + +private: + qint32 display_names; + bool m_display_names_isSet; + + QString* title; + bool m_title_isSet; + + qint32 rgb_color; + bool m_rgb_color_isSet; + + qint32 use_reverse_api; + bool m_use_reverse_api_isSet; + + QString* reverse_api_address; + bool m_reverse_api_address_isSet; + + qint32 reverse_api_port; + bool m_reverse_api_port_isSet; + + qint32 reverse_api_device_index; + bool m_reverse_api_device_index_isSet; + + qint32 reverse_api_channel_index; + bool m_reverse_api_channel_index_isSet; + +}; + +} + +#endif /* SWGMapSettings_H_ */ diff --git a/swagger/sdrangel/code/qt5/client/SWGModelFactory.h b/swagger/sdrangel/code/qt5/client/SWGModelFactory.h index a14ea8262..301a8ddd5 100644 --- a/swagger/sdrangel/code/qt5/client/SWGModelFactory.h +++ b/swagger/sdrangel/code/qt5/client/SWGModelFactory.h @@ -25,6 +25,7 @@ #include "SWGAMDemodSettings.h" #include "SWGAMModReport.h" #include "SWGAMModSettings.h" +#include "SWGAPRSSettings.h" #include "SWGATVDemodSettings.h" #include "SWGATVModReport.h" #include "SWGATVModSettings.h" @@ -144,12 +145,17 @@ #include "SWGLocalSourceSettings.h" #include "SWGLocationInformation.h" #include "SWGLoggingInfo.h" +#include "SWGMapActions.h" +#include "SWGMapItem.h" +#include "SWGMapItem_2.h" +#include "SWGMapSettings.h" #include "SWGMetisMISOSettings.h" #include "SWGNFMDemodReport.h" #include "SWGNFMDemodSettings.h" #include "SWGNFMModReport.h" #include "SWGNFMModSettings.h" #include "SWGNamedEnum.h" +#include "SWGPacketDemodSettings.h" #include "SWGPacketModActions.h" #include "SWGPacketModActions_tx.h" #include "SWGPacketModReport.h" @@ -207,7 +213,9 @@ #include "SWGSoapySDRReport.h" #include "SWGSpectrumServer.h" #include "SWGSpectrumServer_clients.h" +#include "SWGStarTrackerSettings.h" #include "SWGSuccessResponse.h" +#include "SWGTargetAzimuthElevation.h" #include "SWGTestMISettings.h" #include "SWGTestMOSyncSettings.h" #include "SWGTestMiStreamSettings.h" @@ -274,6 +282,9 @@ namespace SWGSDRangel { if(QString("SWGAMModSettings").compare(type) == 0) { return new SWGAMModSettings(); } + if(QString("SWGAPRSSettings").compare(type) == 0) { + return new SWGAPRSSettings(); + } if(QString("SWGATVDemodSettings").compare(type) == 0) { return new SWGATVDemodSettings(); } @@ -631,6 +642,18 @@ namespace SWGSDRangel { if(QString("SWGLoggingInfo").compare(type) == 0) { return new SWGLoggingInfo(); } + if(QString("SWGMapActions").compare(type) == 0) { + return new SWGMapActions(); + } + if(QString("SWGMapItem").compare(type) == 0) { + return new SWGMapItem(); + } + if(QString("SWGMapItem_2").compare(type) == 0) { + return new SWGMapItem_2(); + } + if(QString("SWGMapSettings").compare(type) == 0) { + return new SWGMapSettings(); + } if(QString("SWGMetisMISOSettings").compare(type) == 0) { return new SWGMetisMISOSettings(); } @@ -649,6 +672,9 @@ namespace SWGSDRangel { if(QString("SWGNamedEnum").compare(type) == 0) { return new SWGNamedEnum(); } + if(QString("SWGPacketDemodSettings").compare(type) == 0) { + return new SWGPacketDemodSettings(); + } if(QString("SWGPacketModActions").compare(type) == 0) { return new SWGPacketModActions(); } @@ -820,9 +846,15 @@ namespace SWGSDRangel { if(QString("SWGSpectrumServer_clients").compare(type) == 0) { return new SWGSpectrumServer_clients(); } + if(QString("SWGStarTrackerSettings").compare(type) == 0) { + return new SWGStarTrackerSettings(); + } if(QString("SWGSuccessResponse").compare(type) == 0) { return new SWGSuccessResponse(); } + if(QString("SWGTargetAzimuthElevation").compare(type) == 0) { + return new SWGTargetAzimuthElevation(); + } if(QString("SWGTestMISettings").compare(type) == 0) { return new SWGTestMISettings(); } diff --git a/swagger/sdrangel/code/qt5/client/SWGPacketDemodSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGPacketDemodSettings.cpp new file mode 100644 index 000000000..0e6a75bc3 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGPacketDemodSettings.cpp @@ -0,0 +1,367 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGPacketDemodSettings.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGPacketDemodSettings::SWGPacketDemodSettings(QString* json) { + init(); + this->fromJson(*json); +} + +SWGPacketDemodSettings::SWGPacketDemodSettings() { + input_frequency_offset = 0L; + m_input_frequency_offset_isSet = false; + mode = nullptr; + m_mode_isSet = false; + rf_bandwidth = 0.0f; + m_rf_bandwidth_isSet = false; + fm_deviation = 0.0f; + m_fm_deviation_isSet = false; + rgb_color = 0; + m_rgb_color_isSet = false; + title = nullptr; + m_title_isSet = false; + stream_index = 0; + m_stream_index_isSet = false; + use_reverse_api = 0; + m_use_reverse_api_isSet = false; + reverse_api_address = nullptr; + m_reverse_api_address_isSet = false; + reverse_api_port = 0; + m_reverse_api_port_isSet = false; + reverse_api_device_index = 0; + m_reverse_api_device_index_isSet = false; + reverse_api_channel_index = 0; + m_reverse_api_channel_index_isSet = false; +} + +SWGPacketDemodSettings::~SWGPacketDemodSettings() { + this->cleanup(); +} + +void +SWGPacketDemodSettings::init() { + input_frequency_offset = 0L; + m_input_frequency_offset_isSet = false; + mode = new QString(""); + m_mode_isSet = false; + rf_bandwidth = 0.0f; + m_rf_bandwidth_isSet = false; + fm_deviation = 0.0f; + m_fm_deviation_isSet = false; + rgb_color = 0; + m_rgb_color_isSet = false; + title = new QString(""); + m_title_isSet = false; + stream_index = 0; + m_stream_index_isSet = false; + use_reverse_api = 0; + m_use_reverse_api_isSet = false; + reverse_api_address = new QString(""); + m_reverse_api_address_isSet = false; + reverse_api_port = 0; + m_reverse_api_port_isSet = false; + reverse_api_device_index = 0; + m_reverse_api_device_index_isSet = false; + reverse_api_channel_index = 0; + m_reverse_api_channel_index_isSet = false; +} + +void +SWGPacketDemodSettings::cleanup() { + + if(mode != nullptr) { + delete mode; + } + + + + if(title != nullptr) { + delete title; + } + + + if(reverse_api_address != nullptr) { + delete reverse_api_address; + } + + + +} + +SWGPacketDemodSettings* +SWGPacketDemodSettings::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGPacketDemodSettings::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&input_frequency_offset, pJson["inputFrequencyOffset"], "qint64", ""); + + ::SWGSDRangel::setValue(&mode, pJson["mode"], "QString", "QString"); + + ::SWGSDRangel::setValue(&rf_bandwidth, pJson["rfBandwidth"], "float", ""); + + ::SWGSDRangel::setValue(&fm_deviation, pJson["fmDeviation"], "float", ""); + + ::SWGSDRangel::setValue(&rgb_color, pJson["rgbColor"], "qint32", ""); + + ::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString"); + + ::SWGSDRangel::setValue(&stream_index, pJson["streamIndex"], "qint32", ""); + + ::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString"); + + ::SWGSDRangel::setValue(&reverse_api_port, pJson["reverseAPIPort"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_device_index, pJson["reverseAPIDeviceIndex"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_channel_index, pJson["reverseAPIChannelIndex"], "qint32", ""); + +} + +QString +SWGPacketDemodSettings::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGPacketDemodSettings::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(m_input_frequency_offset_isSet){ + obj->insert("inputFrequencyOffset", QJsonValue(input_frequency_offset)); + } + if(mode != nullptr && *mode != QString("")){ + toJsonValue(QString("mode"), mode, obj, QString("QString")); + } + if(m_rf_bandwidth_isSet){ + obj->insert("rfBandwidth", QJsonValue(rf_bandwidth)); + } + if(m_fm_deviation_isSet){ + obj->insert("fmDeviation", QJsonValue(fm_deviation)); + } + if(m_rgb_color_isSet){ + obj->insert("rgbColor", QJsonValue(rgb_color)); + } + if(title != nullptr && *title != QString("")){ + toJsonValue(QString("title"), title, obj, QString("QString")); + } + if(m_stream_index_isSet){ + obj->insert("streamIndex", QJsonValue(stream_index)); + } + if(m_use_reverse_api_isSet){ + obj->insert("useReverseAPI", QJsonValue(use_reverse_api)); + } + if(reverse_api_address != nullptr && *reverse_api_address != QString("")){ + toJsonValue(QString("reverseAPIAddress"), reverse_api_address, obj, QString("QString")); + } + if(m_reverse_api_port_isSet){ + obj->insert("reverseAPIPort", QJsonValue(reverse_api_port)); + } + if(m_reverse_api_device_index_isSet){ + obj->insert("reverseAPIDeviceIndex", QJsonValue(reverse_api_device_index)); + } + if(m_reverse_api_channel_index_isSet){ + obj->insert("reverseAPIChannelIndex", QJsonValue(reverse_api_channel_index)); + } + + return obj; +} + +qint64 +SWGPacketDemodSettings::getInputFrequencyOffset() { + return input_frequency_offset; +} +void +SWGPacketDemodSettings::setInputFrequencyOffset(qint64 input_frequency_offset) { + this->input_frequency_offset = input_frequency_offset; + this->m_input_frequency_offset_isSet = true; +} + +QString* +SWGPacketDemodSettings::getMode() { + return mode; +} +void +SWGPacketDemodSettings::setMode(QString* mode) { + this->mode = mode; + this->m_mode_isSet = true; +} + +float +SWGPacketDemodSettings::getRfBandwidth() { + return rf_bandwidth; +} +void +SWGPacketDemodSettings::setRfBandwidth(float rf_bandwidth) { + this->rf_bandwidth = rf_bandwidth; + this->m_rf_bandwidth_isSet = true; +} + +float +SWGPacketDemodSettings::getFmDeviation() { + return fm_deviation; +} +void +SWGPacketDemodSettings::setFmDeviation(float fm_deviation) { + this->fm_deviation = fm_deviation; + this->m_fm_deviation_isSet = true; +} + +qint32 +SWGPacketDemodSettings::getRgbColor() { + return rgb_color; +} +void +SWGPacketDemodSettings::setRgbColor(qint32 rgb_color) { + this->rgb_color = rgb_color; + this->m_rgb_color_isSet = true; +} + +QString* +SWGPacketDemodSettings::getTitle() { + return title; +} +void +SWGPacketDemodSettings::setTitle(QString* title) { + this->title = title; + this->m_title_isSet = true; +} + +qint32 +SWGPacketDemodSettings::getStreamIndex() { + return stream_index; +} +void +SWGPacketDemodSettings::setStreamIndex(qint32 stream_index) { + this->stream_index = stream_index; + this->m_stream_index_isSet = true; +} + +qint32 +SWGPacketDemodSettings::getUseReverseApi() { + return use_reverse_api; +} +void +SWGPacketDemodSettings::setUseReverseApi(qint32 use_reverse_api) { + this->use_reverse_api = use_reverse_api; + this->m_use_reverse_api_isSet = true; +} + +QString* +SWGPacketDemodSettings::getReverseApiAddress() { + return reverse_api_address; +} +void +SWGPacketDemodSettings::setReverseApiAddress(QString* reverse_api_address) { + this->reverse_api_address = reverse_api_address; + this->m_reverse_api_address_isSet = true; +} + +qint32 +SWGPacketDemodSettings::getReverseApiPort() { + return reverse_api_port; +} +void +SWGPacketDemodSettings::setReverseApiPort(qint32 reverse_api_port) { + this->reverse_api_port = reverse_api_port; + this->m_reverse_api_port_isSet = true; +} + +qint32 +SWGPacketDemodSettings::getReverseApiDeviceIndex() { + return reverse_api_device_index; +} +void +SWGPacketDemodSettings::setReverseApiDeviceIndex(qint32 reverse_api_device_index) { + this->reverse_api_device_index = reverse_api_device_index; + this->m_reverse_api_device_index_isSet = true; +} + +qint32 +SWGPacketDemodSettings::getReverseApiChannelIndex() { + return reverse_api_channel_index; +} +void +SWGPacketDemodSettings::setReverseApiChannelIndex(qint32 reverse_api_channel_index) { + this->reverse_api_channel_index = reverse_api_channel_index; + this->m_reverse_api_channel_index_isSet = true; +} + + +bool +SWGPacketDemodSettings::isSet(){ + bool isObjectUpdated = false; + do{ + if(m_input_frequency_offset_isSet){ + isObjectUpdated = true; break; + } + if(mode && *mode != QString("")){ + isObjectUpdated = true; break; + } + if(m_rf_bandwidth_isSet){ + isObjectUpdated = true; break; + } + if(m_fm_deviation_isSet){ + isObjectUpdated = true; break; + } + if(m_rgb_color_isSet){ + isObjectUpdated = true; break; + } + if(title && *title != QString("")){ + isObjectUpdated = true; break; + } + if(m_stream_index_isSet){ + isObjectUpdated = true; break; + } + if(m_use_reverse_api_isSet){ + isObjectUpdated = true; break; + } + if(reverse_api_address && *reverse_api_address != QString("")){ + isObjectUpdated = true; break; + } + if(m_reverse_api_port_isSet){ + isObjectUpdated = true; break; + } + if(m_reverse_api_device_index_isSet){ + isObjectUpdated = true; break; + } + if(m_reverse_api_channel_index_isSet){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGPacketDemodSettings.h b/swagger/sdrangel/code/qt5/client/SWGPacketDemodSettings.h new file mode 100644 index 000000000..d7bab93dd --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGPacketDemodSettings.h @@ -0,0 +1,125 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGPacketDemodSettings.h + * + * PacketDemod + */ + +#ifndef SWGPacketDemodSettings_H_ +#define SWGPacketDemodSettings_H_ + +#include + + +#include + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGPacketDemodSettings: public SWGObject { +public: + SWGPacketDemodSettings(); + SWGPacketDemodSettings(QString* json); + virtual ~SWGPacketDemodSettings(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGPacketDemodSettings* fromJson(QString &jsonString) override; + + qint64 getInputFrequencyOffset(); + void setInputFrequencyOffset(qint64 input_frequency_offset); + + QString* getMode(); + void setMode(QString* mode); + + float getRfBandwidth(); + void setRfBandwidth(float rf_bandwidth); + + float getFmDeviation(); + void setFmDeviation(float fm_deviation); + + qint32 getRgbColor(); + void setRgbColor(qint32 rgb_color); + + QString* getTitle(); + void setTitle(QString* title); + + qint32 getStreamIndex(); + void setStreamIndex(qint32 stream_index); + + qint32 getUseReverseApi(); + void setUseReverseApi(qint32 use_reverse_api); + + QString* getReverseApiAddress(); + void setReverseApiAddress(QString* reverse_api_address); + + qint32 getReverseApiPort(); + void setReverseApiPort(qint32 reverse_api_port); + + qint32 getReverseApiDeviceIndex(); + void setReverseApiDeviceIndex(qint32 reverse_api_device_index); + + qint32 getReverseApiChannelIndex(); + void setReverseApiChannelIndex(qint32 reverse_api_channel_index); + + + virtual bool isSet() override; + +private: + qint64 input_frequency_offset; + bool m_input_frequency_offset_isSet; + + QString* mode; + bool m_mode_isSet; + + float rf_bandwidth; + bool m_rf_bandwidth_isSet; + + float fm_deviation; + bool m_fm_deviation_isSet; + + qint32 rgb_color; + bool m_rgb_color_isSet; + + QString* title; + bool m_title_isSet; + + qint32 stream_index; + bool m_stream_index_isSet; + + qint32 use_reverse_api; + bool m_use_reverse_api_isSet; + + QString* reverse_api_address; + bool m_reverse_api_address_isSet; + + qint32 reverse_api_port; + bool m_reverse_api_port_isSet; + + qint32 reverse_api_device_index; + bool m_reverse_api_device_index_isSet; + + qint32 reverse_api_channel_index; + bool m_reverse_api_channel_index_isSet; + +}; + +} + +#endif /* SWGPacketDemodSettings_H_ */ diff --git a/swagger/sdrangel/code/qt5/client/SWGStarTrackerSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGStarTrackerSettings.cpp new file mode 100644 index 000000000..43beb03a0 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGStarTrackerSettings.cpp @@ -0,0 +1,722 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGStarTrackerSettings.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGStarTrackerSettings::SWGStarTrackerSettings(QString* json) { + init(); + this->fromJson(*json); +} + +SWGStarTrackerSettings::SWGStarTrackerSettings() { + target = nullptr; + m_target_isSet = false; + ra = nullptr; + m_ra_isSet = false; + dec = nullptr; + m_dec_isSet = false; + latitude = 0.0f; + m_latitude_isSet = false; + longitude = 0.0f; + m_longitude_isSet = false; + date_time = nullptr; + m_date_time_isSet = false; + refraction = nullptr; + m_refraction_isSet = false; + pressure = 0.0f; + m_pressure_isSet = false; + temperature = 0.0f; + m_temperature_isSet = false; + humidity = 0.0f; + m_humidity_isSet = false; + height_above_sea_level = 0.0f; + m_height_above_sea_level_isSet = false; + temperature_lapse_rate = 0.0f; + m_temperature_lapse_rate_isSet = false; + frequency = 0.0f; + m_frequency_isSet = false; + stellarium_server_enabled = 0; + m_stellarium_server_enabled_isSet = false; + stellarium_port = 0; + m_stellarium_port_isSet = false; + update_period = 0.0f; + m_update_period_isSet = false; + epoch = nullptr; + m_epoch_isSet = false; + draw_sun_on_map = 0; + m_draw_sun_on_map_isSet = false; + draw_moon_on_map = 0; + m_draw_moon_on_map_isSet = false; + draw_star_on_map = 0; + m_draw_star_on_map_isSet = false; + title = nullptr; + m_title_isSet = false; + rgb_color = 0; + m_rgb_color_isSet = false; + use_reverse_api = 0; + m_use_reverse_api_isSet = false; + reverse_api_address = nullptr; + m_reverse_api_address_isSet = false; + reverse_api_port = 0; + m_reverse_api_port_isSet = false; + reverse_api_device_index = 0; + m_reverse_api_device_index_isSet = false; + reverse_api_channel_index = 0; + m_reverse_api_channel_index_isSet = false; +} + +SWGStarTrackerSettings::~SWGStarTrackerSettings() { + this->cleanup(); +} + +void +SWGStarTrackerSettings::init() { + target = new QString(""); + m_target_isSet = false; + ra = new QString(""); + m_ra_isSet = false; + dec = new QString(""); + m_dec_isSet = false; + latitude = 0.0f; + m_latitude_isSet = false; + longitude = 0.0f; + m_longitude_isSet = false; + date_time = new QString(""); + m_date_time_isSet = false; + refraction = new QString(""); + m_refraction_isSet = false; + pressure = 0.0f; + m_pressure_isSet = false; + temperature = 0.0f; + m_temperature_isSet = false; + humidity = 0.0f; + m_humidity_isSet = false; + height_above_sea_level = 0.0f; + m_height_above_sea_level_isSet = false; + temperature_lapse_rate = 0.0f; + m_temperature_lapse_rate_isSet = false; + frequency = 0.0f; + m_frequency_isSet = false; + stellarium_server_enabled = 0; + m_stellarium_server_enabled_isSet = false; + stellarium_port = 0; + m_stellarium_port_isSet = false; + update_period = 0.0f; + m_update_period_isSet = false; + epoch = new QString(""); + m_epoch_isSet = false; + draw_sun_on_map = 0; + m_draw_sun_on_map_isSet = false; + draw_moon_on_map = 0; + m_draw_moon_on_map_isSet = false; + draw_star_on_map = 0; + m_draw_star_on_map_isSet = false; + title = new QString(""); + m_title_isSet = false; + rgb_color = 0; + m_rgb_color_isSet = false; + use_reverse_api = 0; + m_use_reverse_api_isSet = false; + reverse_api_address = new QString(""); + m_reverse_api_address_isSet = false; + reverse_api_port = 0; + m_reverse_api_port_isSet = false; + reverse_api_device_index = 0; + m_reverse_api_device_index_isSet = false; + reverse_api_channel_index = 0; + m_reverse_api_channel_index_isSet = false; +} + +void +SWGStarTrackerSettings::cleanup() { + if(target != nullptr) { + delete target; + } + if(ra != nullptr) { + delete ra; + } + if(dec != nullptr) { + delete dec; + } + + + if(date_time != nullptr) { + delete date_time; + } + if(refraction != nullptr) { + delete refraction; + } + + + + + + + + + + if(epoch != nullptr) { + delete epoch; + } + + + + if(title != nullptr) { + delete title; + } + + + if(reverse_api_address != nullptr) { + delete reverse_api_address; + } + + + +} + +SWGStarTrackerSettings* +SWGStarTrackerSettings::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGStarTrackerSettings::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&target, pJson["target"], "QString", "QString"); + + ::SWGSDRangel::setValue(&ra, pJson["ra"], "QString", "QString"); + + ::SWGSDRangel::setValue(&dec, pJson["dec"], "QString", "QString"); + + ::SWGSDRangel::setValue(&latitude, pJson["latitude"], "float", ""); + + ::SWGSDRangel::setValue(&longitude, pJson["longitude"], "float", ""); + + ::SWGSDRangel::setValue(&date_time, pJson["dateTime"], "QString", "QString"); + + ::SWGSDRangel::setValue(&refraction, pJson["refraction"], "QString", "QString"); + + ::SWGSDRangel::setValue(&pressure, pJson["pressure"], "float", ""); + + ::SWGSDRangel::setValue(&temperature, pJson["temperature"], "float", ""); + + ::SWGSDRangel::setValue(&humidity, pJson["humidity"], "float", ""); + + ::SWGSDRangel::setValue(&height_above_sea_level, pJson["heightAboveSeaLevel"], "float", ""); + + ::SWGSDRangel::setValue(&temperature_lapse_rate, pJson["temperatureLapseRate"], "float", ""); + + ::SWGSDRangel::setValue(&frequency, pJson["frequency"], "float", ""); + + ::SWGSDRangel::setValue(&stellarium_server_enabled, pJson["stellariumServerEnabled"], "qint32", ""); + + ::SWGSDRangel::setValue(&stellarium_port, pJson["stellariumPort"], "qint32", ""); + + ::SWGSDRangel::setValue(&update_period, pJson["updatePeriod"], "float", ""); + + ::SWGSDRangel::setValue(&epoch, pJson["epoch"], "QString", "QString"); + + ::SWGSDRangel::setValue(&draw_sun_on_map, pJson["drawSunOnMap"], "qint32", ""); + + ::SWGSDRangel::setValue(&draw_moon_on_map, pJson["drawMoonOnMap"], "qint32", ""); + + ::SWGSDRangel::setValue(&draw_star_on_map, pJson["drawStarOnMap"], "qint32", ""); + + ::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString"); + + ::SWGSDRangel::setValue(&rgb_color, pJson["rgbColor"], "qint32", ""); + + ::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString"); + + ::SWGSDRangel::setValue(&reverse_api_port, pJson["reverseAPIPort"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_device_index, pJson["reverseAPIDeviceIndex"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_channel_index, pJson["reverseAPIChannelIndex"], "qint32", ""); + +} + +QString +SWGStarTrackerSettings::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGStarTrackerSettings::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(target != nullptr && *target != QString("")){ + toJsonValue(QString("target"), target, obj, QString("QString")); + } + if(ra != nullptr && *ra != QString("")){ + toJsonValue(QString("ra"), ra, obj, QString("QString")); + } + if(dec != nullptr && *dec != QString("")){ + toJsonValue(QString("dec"), dec, obj, QString("QString")); + } + if(m_latitude_isSet){ + obj->insert("latitude", QJsonValue(latitude)); + } + if(m_longitude_isSet){ + obj->insert("longitude", QJsonValue(longitude)); + } + if(date_time != nullptr && *date_time != QString("")){ + toJsonValue(QString("dateTime"), date_time, obj, QString("QString")); + } + if(refraction != nullptr && *refraction != QString("")){ + toJsonValue(QString("refraction"), refraction, obj, QString("QString")); + } + if(m_pressure_isSet){ + obj->insert("pressure", QJsonValue(pressure)); + } + if(m_temperature_isSet){ + obj->insert("temperature", QJsonValue(temperature)); + } + if(m_humidity_isSet){ + obj->insert("humidity", QJsonValue(humidity)); + } + if(m_height_above_sea_level_isSet){ + obj->insert("heightAboveSeaLevel", QJsonValue(height_above_sea_level)); + } + if(m_temperature_lapse_rate_isSet){ + obj->insert("temperatureLapseRate", QJsonValue(temperature_lapse_rate)); + } + if(m_frequency_isSet){ + obj->insert("frequency", QJsonValue(frequency)); + } + if(m_stellarium_server_enabled_isSet){ + obj->insert("stellariumServerEnabled", QJsonValue(stellarium_server_enabled)); + } + if(m_stellarium_port_isSet){ + obj->insert("stellariumPort", QJsonValue(stellarium_port)); + } + if(m_update_period_isSet){ + obj->insert("updatePeriod", QJsonValue(update_period)); + } + if(epoch != nullptr && *epoch != QString("")){ + toJsonValue(QString("epoch"), epoch, obj, QString("QString")); + } + if(m_draw_sun_on_map_isSet){ + obj->insert("drawSunOnMap", QJsonValue(draw_sun_on_map)); + } + if(m_draw_moon_on_map_isSet){ + obj->insert("drawMoonOnMap", QJsonValue(draw_moon_on_map)); + } + if(m_draw_star_on_map_isSet){ + obj->insert("drawStarOnMap", QJsonValue(draw_star_on_map)); + } + if(title != nullptr && *title != QString("")){ + toJsonValue(QString("title"), title, obj, QString("QString")); + } + if(m_rgb_color_isSet){ + obj->insert("rgbColor", QJsonValue(rgb_color)); + } + if(m_use_reverse_api_isSet){ + obj->insert("useReverseAPI", QJsonValue(use_reverse_api)); + } + if(reverse_api_address != nullptr && *reverse_api_address != QString("")){ + toJsonValue(QString("reverseAPIAddress"), reverse_api_address, obj, QString("QString")); + } + if(m_reverse_api_port_isSet){ + obj->insert("reverseAPIPort", QJsonValue(reverse_api_port)); + } + if(m_reverse_api_device_index_isSet){ + obj->insert("reverseAPIDeviceIndex", QJsonValue(reverse_api_device_index)); + } + if(m_reverse_api_channel_index_isSet){ + obj->insert("reverseAPIChannelIndex", QJsonValue(reverse_api_channel_index)); + } + + return obj; +} + +QString* +SWGStarTrackerSettings::getTarget() { + return target; +} +void +SWGStarTrackerSettings::setTarget(QString* target) { + this->target = target; + this->m_target_isSet = true; +} + +QString* +SWGStarTrackerSettings::getRa() { + return ra; +} +void +SWGStarTrackerSettings::setRa(QString* ra) { + this->ra = ra; + this->m_ra_isSet = true; +} + +QString* +SWGStarTrackerSettings::getDec() { + return dec; +} +void +SWGStarTrackerSettings::setDec(QString* dec) { + this->dec = dec; + this->m_dec_isSet = true; +} + +float +SWGStarTrackerSettings::getLatitude() { + return latitude; +} +void +SWGStarTrackerSettings::setLatitude(float latitude) { + this->latitude = latitude; + this->m_latitude_isSet = true; +} + +float +SWGStarTrackerSettings::getLongitude() { + return longitude; +} +void +SWGStarTrackerSettings::setLongitude(float longitude) { + this->longitude = longitude; + this->m_longitude_isSet = true; +} + +QString* +SWGStarTrackerSettings::getDateTime() { + return date_time; +} +void +SWGStarTrackerSettings::setDateTime(QString* date_time) { + this->date_time = date_time; + this->m_date_time_isSet = true; +} + +QString* +SWGStarTrackerSettings::getRefraction() { + return refraction; +} +void +SWGStarTrackerSettings::setRefraction(QString* refraction) { + this->refraction = refraction; + this->m_refraction_isSet = true; +} + +float +SWGStarTrackerSettings::getPressure() { + return pressure; +} +void +SWGStarTrackerSettings::setPressure(float pressure) { + this->pressure = pressure; + this->m_pressure_isSet = true; +} + +float +SWGStarTrackerSettings::getTemperature() { + return temperature; +} +void +SWGStarTrackerSettings::setTemperature(float temperature) { + this->temperature = temperature; + this->m_temperature_isSet = true; +} + +float +SWGStarTrackerSettings::getHumidity() { + return humidity; +} +void +SWGStarTrackerSettings::setHumidity(float humidity) { + this->humidity = humidity; + this->m_humidity_isSet = true; +} + +float +SWGStarTrackerSettings::getHeightAboveSeaLevel() { + return height_above_sea_level; +} +void +SWGStarTrackerSettings::setHeightAboveSeaLevel(float height_above_sea_level) { + this->height_above_sea_level = height_above_sea_level; + this->m_height_above_sea_level_isSet = true; +} + +float +SWGStarTrackerSettings::getTemperatureLapseRate() { + return temperature_lapse_rate; +} +void +SWGStarTrackerSettings::setTemperatureLapseRate(float temperature_lapse_rate) { + this->temperature_lapse_rate = temperature_lapse_rate; + this->m_temperature_lapse_rate_isSet = true; +} + +float +SWGStarTrackerSettings::getFrequency() { + return frequency; +} +void +SWGStarTrackerSettings::setFrequency(float frequency) { + this->frequency = frequency; + this->m_frequency_isSet = true; +} + +qint32 +SWGStarTrackerSettings::getStellariumServerEnabled() { + return stellarium_server_enabled; +} +void +SWGStarTrackerSettings::setStellariumServerEnabled(qint32 stellarium_server_enabled) { + this->stellarium_server_enabled = stellarium_server_enabled; + this->m_stellarium_server_enabled_isSet = true; +} + +qint32 +SWGStarTrackerSettings::getStellariumPort() { + return stellarium_port; +} +void +SWGStarTrackerSettings::setStellariumPort(qint32 stellarium_port) { + this->stellarium_port = stellarium_port; + this->m_stellarium_port_isSet = true; +} + +float +SWGStarTrackerSettings::getUpdatePeriod() { + return update_period; +} +void +SWGStarTrackerSettings::setUpdatePeriod(float update_period) { + this->update_period = update_period; + this->m_update_period_isSet = true; +} + +QString* +SWGStarTrackerSettings::getEpoch() { + return epoch; +} +void +SWGStarTrackerSettings::setEpoch(QString* epoch) { + this->epoch = epoch; + this->m_epoch_isSet = true; +} + +qint32 +SWGStarTrackerSettings::getDrawSunOnMap() { + return draw_sun_on_map; +} +void +SWGStarTrackerSettings::setDrawSunOnMap(qint32 draw_sun_on_map) { + this->draw_sun_on_map = draw_sun_on_map; + this->m_draw_sun_on_map_isSet = true; +} + +qint32 +SWGStarTrackerSettings::getDrawMoonOnMap() { + return draw_moon_on_map; +} +void +SWGStarTrackerSettings::setDrawMoonOnMap(qint32 draw_moon_on_map) { + this->draw_moon_on_map = draw_moon_on_map; + this->m_draw_moon_on_map_isSet = true; +} + +qint32 +SWGStarTrackerSettings::getDrawStarOnMap() { + return draw_star_on_map; +} +void +SWGStarTrackerSettings::setDrawStarOnMap(qint32 draw_star_on_map) { + this->draw_star_on_map = draw_star_on_map; + this->m_draw_star_on_map_isSet = true; +} + +QString* +SWGStarTrackerSettings::getTitle() { + return title; +} +void +SWGStarTrackerSettings::setTitle(QString* title) { + this->title = title; + this->m_title_isSet = true; +} + +qint32 +SWGStarTrackerSettings::getRgbColor() { + return rgb_color; +} +void +SWGStarTrackerSettings::setRgbColor(qint32 rgb_color) { + this->rgb_color = rgb_color; + this->m_rgb_color_isSet = true; +} + +qint32 +SWGStarTrackerSettings::getUseReverseApi() { + return use_reverse_api; +} +void +SWGStarTrackerSettings::setUseReverseApi(qint32 use_reverse_api) { + this->use_reverse_api = use_reverse_api; + this->m_use_reverse_api_isSet = true; +} + +QString* +SWGStarTrackerSettings::getReverseApiAddress() { + return reverse_api_address; +} +void +SWGStarTrackerSettings::setReverseApiAddress(QString* reverse_api_address) { + this->reverse_api_address = reverse_api_address; + this->m_reverse_api_address_isSet = true; +} + +qint32 +SWGStarTrackerSettings::getReverseApiPort() { + return reverse_api_port; +} +void +SWGStarTrackerSettings::setReverseApiPort(qint32 reverse_api_port) { + this->reverse_api_port = reverse_api_port; + this->m_reverse_api_port_isSet = true; +} + +qint32 +SWGStarTrackerSettings::getReverseApiDeviceIndex() { + return reverse_api_device_index; +} +void +SWGStarTrackerSettings::setReverseApiDeviceIndex(qint32 reverse_api_device_index) { + this->reverse_api_device_index = reverse_api_device_index; + this->m_reverse_api_device_index_isSet = true; +} + +qint32 +SWGStarTrackerSettings::getReverseApiChannelIndex() { + return reverse_api_channel_index; +} +void +SWGStarTrackerSettings::setReverseApiChannelIndex(qint32 reverse_api_channel_index) { + this->reverse_api_channel_index = reverse_api_channel_index; + this->m_reverse_api_channel_index_isSet = true; +} + + +bool +SWGStarTrackerSettings::isSet(){ + bool isObjectUpdated = false; + do{ + if(target && *target != QString("")){ + isObjectUpdated = true; break; + } + if(ra && *ra != QString("")){ + isObjectUpdated = true; break; + } + if(dec && *dec != QString("")){ + isObjectUpdated = true; break; + } + if(m_latitude_isSet){ + isObjectUpdated = true; break; + } + if(m_longitude_isSet){ + isObjectUpdated = true; break; + } + if(date_time && *date_time != QString("")){ + isObjectUpdated = true; break; + } + if(refraction && *refraction != QString("")){ + isObjectUpdated = true; break; + } + if(m_pressure_isSet){ + isObjectUpdated = true; break; + } + if(m_temperature_isSet){ + isObjectUpdated = true; break; + } + if(m_humidity_isSet){ + isObjectUpdated = true; break; + } + if(m_height_above_sea_level_isSet){ + isObjectUpdated = true; break; + } + if(m_temperature_lapse_rate_isSet){ + isObjectUpdated = true; break; + } + if(m_frequency_isSet){ + isObjectUpdated = true; break; + } + if(m_stellarium_server_enabled_isSet){ + isObjectUpdated = true; break; + } + if(m_stellarium_port_isSet){ + isObjectUpdated = true; break; + } + if(m_update_period_isSet){ + isObjectUpdated = true; break; + } + if(epoch && *epoch != QString("")){ + isObjectUpdated = true; break; + } + if(m_draw_sun_on_map_isSet){ + isObjectUpdated = true; break; + } + if(m_draw_moon_on_map_isSet){ + isObjectUpdated = true; break; + } + if(m_draw_star_on_map_isSet){ + isObjectUpdated = true; break; + } + if(title && *title != QString("")){ + isObjectUpdated = true; break; + } + if(m_rgb_color_isSet){ + isObjectUpdated = true; break; + } + if(m_use_reverse_api_isSet){ + isObjectUpdated = true; break; + } + if(reverse_api_address && *reverse_api_address != QString("")){ + isObjectUpdated = true; break; + } + if(m_reverse_api_port_isSet){ + isObjectUpdated = true; break; + } + if(m_reverse_api_device_index_isSet){ + isObjectUpdated = true; break; + } + if(m_reverse_api_channel_index_isSet){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGStarTrackerSettings.h b/swagger/sdrangel/code/qt5/client/SWGStarTrackerSettings.h new file mode 100644 index 000000000..ef414b10f --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGStarTrackerSettings.h @@ -0,0 +1,215 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGStarTrackerSettings.h + * + * Star Tracker settings + */ + +#ifndef SWGStarTrackerSettings_H_ +#define SWGStarTrackerSettings_H_ + +#include + + +#include + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGStarTrackerSettings: public SWGObject { +public: + SWGStarTrackerSettings(); + SWGStarTrackerSettings(QString* json); + virtual ~SWGStarTrackerSettings(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGStarTrackerSettings* fromJson(QString &jsonString) override; + + QString* getTarget(); + void setTarget(QString* target); + + QString* getRa(); + void setRa(QString* ra); + + QString* getDec(); + void setDec(QString* dec); + + float getLatitude(); + void setLatitude(float latitude); + + float getLongitude(); + void setLongitude(float longitude); + + QString* getDateTime(); + void setDateTime(QString* date_time); + + QString* getRefraction(); + void setRefraction(QString* refraction); + + float getPressure(); + void setPressure(float pressure); + + float getTemperature(); + void setTemperature(float temperature); + + float getHumidity(); + void setHumidity(float humidity); + + float getHeightAboveSeaLevel(); + void setHeightAboveSeaLevel(float height_above_sea_level); + + float getTemperatureLapseRate(); + void setTemperatureLapseRate(float temperature_lapse_rate); + + float getFrequency(); + void setFrequency(float frequency); + + qint32 getStellariumServerEnabled(); + void setStellariumServerEnabled(qint32 stellarium_server_enabled); + + qint32 getStellariumPort(); + void setStellariumPort(qint32 stellarium_port); + + float getUpdatePeriod(); + void setUpdatePeriod(float update_period); + + QString* getEpoch(); + void setEpoch(QString* epoch); + + qint32 getDrawSunOnMap(); + void setDrawSunOnMap(qint32 draw_sun_on_map); + + qint32 getDrawMoonOnMap(); + void setDrawMoonOnMap(qint32 draw_moon_on_map); + + qint32 getDrawStarOnMap(); + void setDrawStarOnMap(qint32 draw_star_on_map); + + QString* getTitle(); + void setTitle(QString* title); + + qint32 getRgbColor(); + void setRgbColor(qint32 rgb_color); + + qint32 getUseReverseApi(); + void setUseReverseApi(qint32 use_reverse_api); + + QString* getReverseApiAddress(); + void setReverseApiAddress(QString* reverse_api_address); + + qint32 getReverseApiPort(); + void setReverseApiPort(qint32 reverse_api_port); + + qint32 getReverseApiDeviceIndex(); + void setReverseApiDeviceIndex(qint32 reverse_api_device_index); + + qint32 getReverseApiChannelIndex(); + void setReverseApiChannelIndex(qint32 reverse_api_channel_index); + + + virtual bool isSet() override; + +private: + QString* target; + bool m_target_isSet; + + QString* ra; + bool m_ra_isSet; + + QString* dec; + bool m_dec_isSet; + + float latitude; + bool m_latitude_isSet; + + float longitude; + bool m_longitude_isSet; + + QString* date_time; + bool m_date_time_isSet; + + QString* refraction; + bool m_refraction_isSet; + + float pressure; + bool m_pressure_isSet; + + float temperature; + bool m_temperature_isSet; + + float humidity; + bool m_humidity_isSet; + + float height_above_sea_level; + bool m_height_above_sea_level_isSet; + + float temperature_lapse_rate; + bool m_temperature_lapse_rate_isSet; + + float frequency; + bool m_frequency_isSet; + + qint32 stellarium_server_enabled; + bool m_stellarium_server_enabled_isSet; + + qint32 stellarium_port; + bool m_stellarium_port_isSet; + + float update_period; + bool m_update_period_isSet; + + QString* epoch; + bool m_epoch_isSet; + + qint32 draw_sun_on_map; + bool m_draw_sun_on_map_isSet; + + qint32 draw_moon_on_map; + bool m_draw_moon_on_map_isSet; + + qint32 draw_star_on_map; + bool m_draw_star_on_map_isSet; + + QString* title; + bool m_title_isSet; + + qint32 rgb_color; + bool m_rgb_color_isSet; + + qint32 use_reverse_api; + bool m_use_reverse_api_isSet; + + QString* reverse_api_address; + bool m_reverse_api_address_isSet; + + qint32 reverse_api_port; + bool m_reverse_api_port_isSet; + + qint32 reverse_api_device_index; + bool m_reverse_api_device_index_isSet; + + qint32 reverse_api_channel_index; + bool m_reverse_api_channel_index_isSet; + +}; + +} + +#endif /* SWGStarTrackerSettings_H_ */ diff --git a/swagger/sdrangel/code/qt5/client/SWGTargetAzimuthElevation.cpp b/swagger/sdrangel/code/qt5/client/SWGTargetAzimuthElevation.cpp new file mode 100644 index 000000000..54b94a1c3 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGTargetAzimuthElevation.cpp @@ -0,0 +1,156 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGTargetAzimuthElevation.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGTargetAzimuthElevation::SWGTargetAzimuthElevation(QString* json) { + init(); + this->fromJson(*json); +} + +SWGTargetAzimuthElevation::SWGTargetAzimuthElevation() { + name = nullptr; + m_name_isSet = false; + azimuth = 0.0f; + m_azimuth_isSet = false; + elevation = 0.0f; + m_elevation_isSet = false; +} + +SWGTargetAzimuthElevation::~SWGTargetAzimuthElevation() { + this->cleanup(); +} + +void +SWGTargetAzimuthElevation::init() { + name = new QString(""); + m_name_isSet = false; + azimuth = 0.0f; + m_azimuth_isSet = false; + elevation = 0.0f; + m_elevation_isSet = false; +} + +void +SWGTargetAzimuthElevation::cleanup() { + if(name != nullptr) { + delete name; + } + + +} + +SWGTargetAzimuthElevation* +SWGTargetAzimuthElevation::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGTargetAzimuthElevation::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&name, pJson["name"], "QString", "QString"); + + ::SWGSDRangel::setValue(&azimuth, pJson["azimuth"], "float", ""); + + ::SWGSDRangel::setValue(&elevation, pJson["elevation"], "float", ""); + +} + +QString +SWGTargetAzimuthElevation::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGTargetAzimuthElevation::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(name != nullptr && *name != QString("")){ + toJsonValue(QString("name"), name, obj, QString("QString")); + } + if(m_azimuth_isSet){ + obj->insert("azimuth", QJsonValue(azimuth)); + } + if(m_elevation_isSet){ + obj->insert("elevation", QJsonValue(elevation)); + } + + return obj; +} + +QString* +SWGTargetAzimuthElevation::getName() { + return name; +} +void +SWGTargetAzimuthElevation::setName(QString* name) { + this->name = name; + this->m_name_isSet = true; +} + +float +SWGTargetAzimuthElevation::getAzimuth() { + return azimuth; +} +void +SWGTargetAzimuthElevation::setAzimuth(float azimuth) { + this->azimuth = azimuth; + this->m_azimuth_isSet = true; +} + +float +SWGTargetAzimuthElevation::getElevation() { + return elevation; +} +void +SWGTargetAzimuthElevation::setElevation(float elevation) { + this->elevation = elevation; + this->m_elevation_isSet = true; +} + + +bool +SWGTargetAzimuthElevation::isSet(){ + bool isObjectUpdated = false; + do{ + if(name && *name != QString("")){ + isObjectUpdated = true; break; + } + if(m_azimuth_isSet){ + isObjectUpdated = true; break; + } + if(m_elevation_isSet){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGTargetAzimuthElevation.h b/swagger/sdrangel/code/qt5/client/SWGTargetAzimuthElevation.h new file mode 100644 index 000000000..4c6b48656 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGTargetAzimuthElevation.h @@ -0,0 +1,71 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 6.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGTargetAzimuthElevation.h + * + * A target azimuth and elevation + */ + +#ifndef SWGTargetAzimuthElevation_H_ +#define SWGTargetAzimuthElevation_H_ + +#include + + +#include + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGTargetAzimuthElevation: public SWGObject { +public: + SWGTargetAzimuthElevation(); + SWGTargetAzimuthElevation(QString* json); + virtual ~SWGTargetAzimuthElevation(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGTargetAzimuthElevation* fromJson(QString &jsonString) override; + + QString* getName(); + void setName(QString* name); + + float getAzimuth(); + void setAzimuth(float azimuth); + + float getElevation(); + void setElevation(float elevation); + + + virtual bool isSet() override; + +private: + QString* name; + bool m_name_isSet; + + float azimuth; + bool m_azimuth_isSet; + + float elevation; + bool m_elevation_isSet; + +}; + +} + +#endif /* SWGTargetAzimuthElevation_H_ */ From c847bdea36be1eaaa13033e514ef72a558fd4963 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 21:03:55 +0000 Subject: [PATCH 15/21] At QtCharts package dependency --- .appveyor.yml | 1 + debian/control | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index efdd4ee94..279b1d44d 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -81,6 +81,7 @@ for: qml-module-qtlocation qml-module-qtpositioning qml-module-qtquick-window2 qml-module-qtquick-dialogs \ qml-module-qtquick-controls qml-module-qtquick-layouts \ libqt5serialport5-dev qtdeclarative5-dev qtpositioning5-dev qtlocation5-dev \ + libqt5charts5-dev \ libusb-1.0-0-dev libboost-all-dev libasound2-dev libopencv-dev libopencv-imgcodecs-dev \ libxml2-dev bison flex ffmpeg libpostproc-dev libavcodec-dev libavformat-dev \ libopus-dev libcodec2-dev libairspy-dev libhackrf-dev \ diff --git a/debian/control b/debian/control index 692ee4e43..dfdfce52a 100644 --- a/debian/control +++ b/debian/control @@ -21,6 +21,7 @@ Build-Depends: debhelper (>= 9), qml-module-qtquick-controls, qml-module-qtquick-layouts, libqt5serialport5-dev, + libqt5charts5-dev, qtdeclarative5-dev, qtpositioning5-dev, qtlocation5-dev, @@ -55,7 +56,7 @@ Description: SDR/Analyzer/Generator front-end for various hardware Builds on Linux, Windows and Mac O/S Reception modes supported: Analog: AM, ATV, NFM, WFM, SSB, broadcast FM - Digital: D-Star, Yaesu SF, DMR, dPMR, LoRa, ADS-B + Digital: D-Star, Yaesu SF, DMR, dPMR, LoRa, ADS-B, Packet (AX.25/APRS) Analyzer: Generic channel Transmission modes supported: Analog: AM, ATV, NFM, SSB, WFM From 2094a01ae778c3c7bb2aa44e403cc0babd1af53d Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 21:18:14 +0000 Subject: [PATCH 16/21] Start ARPS GUI on stations tab --- plugins/feature/aprs/aprsgui.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/feature/aprs/aprsgui.ui b/plugins/feature/aprs/aprsgui.ui index 9efa848c0..db0e01608 100644 --- a/plugins/feature/aprs/aprsgui.ui +++ b/plugins/feature/aprs/aprsgui.ui @@ -181,7 +181,7 @@ QTabWidget::West - 1 + 0 From af7e69c7c1f79df7a7ca6ab0ce352306905c4ade Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 23:03:55 +0000 Subject: [PATCH 17/21] Fix gcc warnings --- plugins/channelrx/demodpacket/packetdemod.cpp | 2 +- plugins/channelrx/demodpacket/packetdemodgui.cpp | 2 +- plugins/feature/aprs/aprs.cpp | 2 ++ plugins/feature/aprs/aprsgui.cpp | 9 ++++++++- plugins/feature/map/map.cpp | 1 + plugins/feature/startracker/startrackergui.cpp | 2 ++ .../feature/startracker/startrackersettingsdialog.cpp | 4 ++-- sdrbase/feature/featurewebapiutils.cpp | 4 ++-- sdrbase/maincore.h | 1 + sdrbase/util/aprs.cpp | 2 -- sdrbase/util/astronomy.cpp | 6 +----- sdrbase/util/ax25.cpp | 6 +++--- sdrbase/util/maidenhead.cpp | 2 ++ 13 files changed, 26 insertions(+), 17 deletions(-) diff --git a/plugins/channelrx/demodpacket/packetdemod.cpp b/plugins/channelrx/demodpacket/packetdemod.cpp index 242968501..068d9fb88 100644 --- a/plugins/channelrx/demodpacket/packetdemod.cpp +++ b/plugins/channelrx/demodpacket/packetdemod.cpp @@ -187,7 +187,7 @@ void PacketDemod::applySettings(const PacketDemodSettings& settings, bool force) QList reverseAPIKeys; - if ((settings.m_inputFrequencyOffset != settings.m_inputFrequencyOffset) || force) { + if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force) { reverseAPIKeys.append("inputFrequencyOffset"); } if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) { diff --git a/plugins/channelrx/demodpacket/packetdemodgui.cpp b/plugins/channelrx/demodpacket/packetdemodgui.cpp index c11cdfb58..464ad61df 100644 --- a/plugins/channelrx/demodpacket/packetdemodgui.cpp +++ b/plugins/channelrx/demodpacket/packetdemodgui.cpp @@ -175,7 +175,6 @@ void PacketDemodGUI::packetReceived(QByteArray packet) QTableWidgetItem *pidItem = new QTableWidgetItem(); QTableWidgetItem *dataASCIIItem = new QTableWidgetItem(); QTableWidgetItem *dataHexItem = new QTableWidgetItem(); - QTableWidgetItem *dataAPRSItem = new QTableWidgetItem(); ui->packets->setItem(row, PACKET_COL_FROM, fromItem); ui->packets->setItem(row, PACKET_COL_TO, toItem); ui->packets->setItem(row, PACKET_COL_VIA, viaItem); @@ -260,6 +259,7 @@ void PacketDemodGUI::on_deltaFrequency_changed(qint64 value) void PacketDemodGUI::on_mode_currentIndexChanged(int value) { + (void) value; QString mode = ui->mode->currentText(); // TODO: Support 9600 FSK } diff --git a/plugins/feature/aprs/aprs.cpp b/plugins/feature/aprs/aprs.cpp index ab6a30c59..51e072f93 100644 --- a/plugins/feature/aprs/aprs.cpp +++ b/plugins/feature/aprs/aprs.cpp @@ -221,6 +221,8 @@ int APRS::webapiRun(bool run, SWGSDRangel::SWGDeviceState& response, QString& errorMessage) { + (void) run; + (void) response; (void) errorMessage; //getFeatureStateStr(*response.getState()); //MsgStartStopIGate *msg = MsgStartStopIGate::create(run); diff --git a/plugins/feature/aprs/aprsgui.cpp b/plugins/feature/aprs/aprsgui.cpp index 9733dcd4b..4e7326178 100644 --- a/plugins/feature/aprs/aprsgui.cpp +++ b/plugins/feature/aprs/aprsgui.cpp @@ -299,7 +299,7 @@ bool APRSGUI::handleMessage(const Message& message) { for (int j = 0; j < 8; j++) telemetryStation->m_telemetryBitSense[j] = aprs->m_telemetryBitSense[j]; - telemetryStation->m_hasTelemetryBitSense; + telemetryStation->m_hasTelemetryBitSense = true; telemetryStation->m_telemetryProjectName = aprs->m_telemetryProjectName; } if (ui->stationSelect->currentText() == aprs->m_addressee) @@ -972,6 +972,7 @@ void APRSGUI::on_stationFilter_currentIndexChanged(int index) void APRSGUI::on_stationSelect_currentIndexChanged(int index) { + (void) index; QString stationCallsign = ui->stationSelect->currentText(); APRSStation *station = m_stations.value(stationCallsign); @@ -1189,11 +1190,13 @@ void APRSGUI::plotWeather() void APRSGUI::on_weatherTimeSelect_currentIndexChanged(int index) { + (void) index; plotWeather(); } void APRSGUI::on_weatherPlotSelect_currentIndexChanged(int index) { + (void) index; plotWeather(); } @@ -1399,11 +1402,13 @@ void APRSGUI::plotMotion() void APRSGUI::on_motionTimeSelect_currentIndexChanged(int index) { + (void) index; plotMotion(); } void APRSGUI::on_motionPlotSelect_currentIndexChanged(int index) { + (void) index; plotMotion(); } @@ -1479,11 +1484,13 @@ void APRSGUI::plotTelemetry() void APRSGUI::on_telemetryTimeSelect_currentIndexChanged(int index) { + (void) index; plotTelemetry(); } void APRSGUI::on_telemetryPlotSelect_currentIndexChanged(int index) { + (void) index; plotTelemetry(); } diff --git a/plugins/feature/map/map.cpp b/plugins/feature/map/map.cpp index 0b71366e2..91558ccad 100644 --- a/plugins/feature/map/map.cpp +++ b/plugins/feature/map/map.cpp @@ -159,6 +159,7 @@ int Map::webapiRun(bool run, SWGSDRangel::SWGDeviceState& response, QString& errorMessage) { + (void) run; (void) errorMessage; getFeatureStateStr(*response.getState()); return 202; diff --git a/plugins/feature/startracker/startrackergui.cpp b/plugins/feature/startracker/startrackergui.cpp index 460ae2643..8686cc4c0 100644 --- a/plugins/feature/startracker/startrackergui.cpp +++ b/plugins/feature/startracker/startrackergui.cpp @@ -456,6 +456,7 @@ void StarTrackerGUI::applySettings(bool force) void StarTrackerGUI::on_useMyPosition_clicked(bool checked) { + (void) checked; double stationLatitude = MainCore::instance()->getSettings().getLatitude(); double stationLongitude = MainCore::instance()->getSettings().getLongitude(); double stationAltitude = MainCore::instance()->getSettings().getAltitude(); @@ -495,6 +496,7 @@ void StarTrackerGUI::on_dateTimeSelect_currentTextChanged(const QString &text) void StarTrackerGUI::on_dateTime_dateTimeChanged(const QDateTime &datetime) { + (void) datetime; if (ui->dateTimeSelect->currentIndex() == 1) { m_settings.m_dateTime = ui->dateTime->dateTime().toString(Qt::ISODateWithMs); diff --git a/plugins/feature/startracker/startrackersettingsdialog.cpp b/plugins/feature/startracker/startrackersettingsdialog.cpp index 5cd7a127c..f5dd6cbcd 100644 --- a/plugins/feature/startracker/startrackersettingsdialog.cpp +++ b/plugins/feature/startracker/startrackersettingsdialog.cpp @@ -21,8 +21,8 @@ StarTrackerSettingsDialog::StarTrackerSettingsDialog(StarTrackerSettings *settings, QWidget* parent) : QDialog(parent), - ui(new Ui::StarTrackerSettingsDialog), - m_settings(settings) + m_settings(settings), + ui(new Ui::StarTrackerSettingsDialog) { ui->setupUi(this); ui->epoch->setCurrentIndex(settings->m_jnow ? 1 : 0); diff --git a/sdrbase/feature/featurewebapiutils.cpp b/sdrbase/feature/featurewebapiutils.cpp index 33c07ee44..ec8e09bd7 100644 --- a/sdrbase/feature/featurewebapiutils.cpp +++ b/sdrbase/feature/featurewebapiutils.cpp @@ -42,7 +42,7 @@ bool FeatureWebAPIUtils::mapFind(const QString& target, int featureSetIndex, int int httpRC = feature->webapiActionsPost(featureActionKeys, query, errorMessage); if (httpRC/100 != 2) { - qWarning("FeatureWebAPIUtils::mapFind: error %d: %s", httpRC, errorMessage); + qWarning() << "FeatureWebAPIUtils::mapFind: error " << httpRC << ":" << errorMessage; return false; } @@ -65,7 +65,7 @@ Feature* FeatureWebAPIUtils::getFeature(int featureSetIndex, int featureIndex, c if (featureSetIndex != -1) { // Find feature with specific index - if (featureSetIndex < featureSets.size()) + if (featureSetIndex < (int)featureSets.size()) { featureSet = featureSets[featureSetIndex]; if (featureIndex < featureSet->getNumberOfFeatures()) diff --git a/sdrbase/maincore.h b/sdrbase/maincore.h index 1de9ecd46..1fc77834d 100644 --- a/sdrbase/maincore.h +++ b/sdrbase/maincore.h @@ -22,6 +22,7 @@ #include #include +#include #include "export.h" #include "settings/mainsettings.h" diff --git a/sdrbase/util/aprs.cpp b/sdrbase/util/aprs.cpp index 634e91b16..ee2029e13 100644 --- a/sdrbase/util/aprs.cpp +++ b/sdrbase/util/aprs.cpp @@ -47,7 +47,6 @@ bool APRSPacket::decode(AX25Packet packet) // First byte of information field is data type ID char dataType = packet.m_dataASCII[0].toLatin1(); - bool timestamp = false; int idx = 1; switch (dataType) { @@ -914,7 +913,6 @@ bool APRSPacket::parseMessage(QString& info, int& idx) } else if (m_message.startsWith("BITS.")) { - bool done = false; QString s(""); int i = 5; for (int j = 0; j < 8; j++) diff --git a/sdrbase/util/astronomy.cpp b/sdrbase/util/astronomy.cpp index 76544449b..c09b3103c 100644 --- a/sdrbase/util/astronomy.cpp +++ b/sdrbase/util/astronomy.cpp @@ -287,11 +287,7 @@ void Astronomy::moonPosition(AzAlt& aa, RADec& rd, double latitude, double longi double ecl = Units::degreesToRadians(23.4393 - 3.563E-7 * d); // Obliquity of the ecliptic - tilt of Earth's axis of rotation // Orbital elements for the Sun - double Ns = 0.0; - double is = 0.0; double ws = Units::degreesToRadians(282.9404 + 4.70935E-5 * d); - double as = 1.0; // (AU) - double es = 0.016709 - 1.151E-9 * d; // ecs double Ms = Units::degreesToRadians(356.0470 + 0.9856002585 * d); // Orbital elements for the Moon @@ -416,7 +412,7 @@ double Astronomy::refractionSaemundsson(double alt, double pressure, double temp { double pt = (pressure/1010.0) * (283.0/(273.0+temperature)); - return (1.02 / tan(Units::degreesToRadians(alt+10.3/(alt+5.11))) + 0.0019279) / 60.0; + return pt * (1.02 / tan(Units::degreesToRadians(alt+10.3/(alt+5.11))) + 0.0019279) / 60.0; } // Calculated adjustment to altitude angle from true to apparent due to atmospheric refraction using diff --git a/sdrbase/util/ax25.cpp b/sdrbase/util/ax25.cpp index 6d562d8e2..9fdfbccb6 100644 --- a/sdrbase/util/ax25.cpp +++ b/sdrbase/util/ax25.cpp @@ -39,11 +39,11 @@ bool AX25Packet::decode(QByteArray packet) // Address - ASCII shifted right one bit for (i = 0; i < 6; i++) destAddress[i] = (packet[i] >> 1) & 0x7f; - destAddress[6] = NULL; + destAddress[6] = '\0'; destSSID = packet[6]; for (i = 0; i < 6; i++) sourceAddress[i] = (packet[7+i] >> 1) & 0x7f; - sourceAddress[6] = NULL; + sourceAddress[6] = '\0'; sourceSSID = packet[13]; // From = source address @@ -66,7 +66,7 @@ bool AX25Packet::decode(QByteArray packet) i++; for (j = 0; j < 6; j++) repeaterAddress[j] = (packet[i+j] >> 1) & 0x7f; - repeaterAddress[j] = NULL; + repeaterAddress[j] = '\0'; i += 6; repeaterSSID = packet[i]; ssid = (repeaterSSID >> 1) & 0xf; diff --git a/sdrbase/util/maidenhead.cpp b/sdrbase/util/maidenhead.cpp index d7c6eab5d..7cdda6957 100644 --- a/sdrbase/util/maidenhead.cpp +++ b/sdrbase/util/maidenhead.cpp @@ -17,6 +17,8 @@ // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// +#include + #include #include "maidenhead.h" From 8658ce6fe78bd4dd5e4472e8818621edf3334b7f Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 23:11:21 +0000 Subject: [PATCH 18/21] Add images for documentation --- doc/img/APRS_map.png | Bin 0 -> 325238 bytes doc/img/StarTracker_map.png | Bin 0 -> 180748 bytes doc/img/StarTracker_plugin.png | Bin 0 -> 24495 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/img/APRS_map.png create mode 100644 doc/img/StarTracker_map.png create mode 100644 doc/img/StarTracker_plugin.png diff --git a/doc/img/APRS_map.png b/doc/img/APRS_map.png new file mode 100644 index 0000000000000000000000000000000000000000..fa9c5ae449e04152c277a40036c0de5d9362a3bc GIT binary patch literal 325238 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

gblVT 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 z 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 Zy78Tfw5J=w)RWn`Y!ww_Yf9oI0Ppmk%^ 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 YFIr4x928g4-2eap07*qoM6N<$f-KOSx&QzG literal 0 HcmV?d00001 diff --git a/doc/img/StarTracker_map.png b/doc/img/StarTracker_map.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac644bb03a8f8df8202ff961081bded266594fc GIT binary patch literal 180748 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 RNumIM1_)!FLM^+%{{_0QevSYD literal 0 HcmV?d00001 diff --git a/doc/img/StarTracker_plugin.png b/doc/img/StarTracker_plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..67324a930729ac36a4b220bc530317f7d0b6c6e2 GIT binary patch literal 24495 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 NO-buznWAaXe*mo-(xm_Z literal 0 HcmV?d00001 From ac05f4e0a16e02a26c9bed735e6ea39c9e0298fc Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Wed, 13 Jan 2021 23:22:37 +0000 Subject: [PATCH 19/21] Add Map plugin image --- doc/img/Map_plugin.png | Bin 0 -> 1443200 bytes plugins/feature/map/readme.md | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 doc/img/Map_plugin.png diff --git a/doc/img/Map_plugin.png b/doc/img/Map_plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..8fb44fc9aa3301269781b50a88b73460b3858787 GIT binary patch literal 1443200 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
GSOflYtsEcMhKMX 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
EGmZ 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�_f#1}(CbGd?H>)_dE{l%1hhC~X$p-5$ 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%0AI+OTLiO5DQGa+4 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

`Jb3e2RnH~Hzz!mU{%m1Gc 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

$TOagnPHH%62=ot#V!X%lP_xW4H0}qePJHk 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%0AY?{*3=T+_ari@Q>Z9$_lh~ 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%0DO)yg#?hlkMf47b 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

Pt8kmhnSj=V^jV5UIMyND;CyMy&CAd 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%0Ac6$OJ*GKSidk9~*2k>=g+^4_q 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

)rfid=iVPOVr$jn}Q`3DR>}izqRoM5z|b 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≀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⁡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�jZ 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

r4*hs)6 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 z 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 z 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 JHCnGC{sR~pO-BF# literal 0 HcmV?d00001 diff --git a/plugins/feature/map/readme.md b/plugins/feature/map/readme.md index 2dbe55efa..d9254cb54 100644 --- a/plugins/feature/map/readme.md +++ b/plugins/feature/map/readme.md @@ -24,6 +24,10 @@ To centre the map on an object or location, enter: When checked, names of objects are displayed in a bubble next to each object. +

4: Delete

+ +When clicked, all items will be deleted from the map. +

Map

The map displays objects reported by other SDRangel channels and features. From 45bf9e6d74c95e9842d88a1968dad10c5956c0d6 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Thu, 14 Jan 2021 09:36:50 +0000 Subject: [PATCH 20/21] Don't use Qt::hex as not available on earlier versions of Qt --- plugins/channelrx/demodpacket/packetdemodsink.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/channelrx/demodpacket/packetdemodsink.cpp b/plugins/channelrx/demodpacket/packetdemodsink.cpp index 572c16fd7..ce3930b6c 100644 --- a/plugins/channelrx/demodpacket/packetdemodsink.cpp +++ b/plugins/channelrx/demodpacket/packetdemodsink.cpp @@ -183,7 +183,7 @@ void PacketDemodSink::processOneSample(Complex &ci) if (calcCrc == rxCrc) { QByteArray rxPacket((char *)m_bytes, m_byteCount); - qDebug() << "RX: " << Qt::hex << rxPacket; + qDebug() << "RX: " << rxPacket.toHex(); if (getMessageQueueToChannel()) { MainCore::MsgPacket *msg = MainCore::MsgPacket::create(m_packetDemod, rxPacket, QDateTime::currentDateTime()); // FIXME pointer @@ -191,7 +191,7 @@ void PacketDemodSink::processOneSample(Complex &ci) } } else - qDebug() << "CRC mismatch: " << Qt::hex << calcCrc << " " << Qt::hex << rxCrc; + qDebug() << QString("CRC mismatch: %1 %2").arg(calcCrc, 4, 16, QLatin1Char('0')).arg(rxCrc, 4, 16, QLatin1Char('0')); // Reset state to start receiving next packet m_gotSOP = false; m_bits = 0; From 8ae2897814938411b8156cecd36960b4e19b83b7 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Thu, 14 Jan 2021 10:03:37 +0000 Subject: [PATCH 21/21] Disconnect connection to APRS-IS when worker stopped --- plugins/feature/aprs/aprsworker.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/feature/aprs/aprsworker.cpp b/plugins/feature/aprs/aprsworker.cpp index fd55bb63f..2764daab2 100644 --- a/plugins/feature/aprs/aprsworker.cpp +++ b/plugins/feature/aprs/aprsworker.cpp @@ -74,6 +74,9 @@ void APRSWorker::stopWork() QMutexLocker mutexLocker(&m_mutex); disconnect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); m_running = false; + // Close any existing connection + if (m_socket.isOpen()) + m_socket.close(); } void APRSWorker::handleInputMessages()

ftTyJU6Nwx$N9Zrf|?)2}ZpiKH&J+I6)$t*kNd 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%0D@hHA^%{Mg_=kZ4$*64`N)+RV@W`qNDP!j5d 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