diff --git a/plugins/channelrx/demodm17/m17demodgui.ui b/plugins/channelrx/demodm17/m17demodgui.ui index 7625d83bb..a2ddb2ec2 100644 --- a/plugins/channelrx/demodm17/m17demodgui.ui +++ b/plugins/channelrx/demodm17/m17demodgui.ui @@ -732,7 +732,7 @@ QTabWidget::East - 2 + 0 diff --git a/plugins/channeltx/modm17/m17modgui.ui b/plugins/channeltx/modm17/m17modgui.ui index aaff57bf9..6f10a3830 100644 --- a/plugins/channeltx/modm17/m17modgui.ui +++ b/plugins/channeltx/modm17/m17modgui.ui @@ -1112,7 +1112,7 @@ - Insert position (latitude and longitude) + Alternate status and position (latitude and longitude) packets ... diff --git a/plugins/channeltx/modm17/m17modprocessor.cpp b/plugins/channeltx/modm17/m17modprocessor.cpp index f221bf698..5b9d87103 100644 --- a/plugins/channeltx/modm17/m17modprocessor.cpp +++ b/plugins/channeltx/modm17/m17modprocessor.cpp @@ -66,9 +66,18 @@ bool M17ModProcessor::handleMessage(const Message& cmd) M17ModAX25 modAX25; QString strData; - if (notif.getInsertPosition()) { - strData += "!" + formatAPRSPosition(); - } else { + if (notif.getInsertPosition()) + { + if (m_insertPositionToggle) { + strData += "!" + formatAPRSPosition(); + } else { + strData = notif.getData(); + } + + m_insertPositionToggle = !m_insertPositionToggle; + } + else + { strData = notif.getData(); } diff --git a/plugins/channeltx/modm17/m17modprocessor.h b/plugins/channeltx/modm17/m17modprocessor.h index 641105ef3..5f45ee087 100644 --- a/plugins/channeltx/modm17/m17modprocessor.h +++ b/plugins/channeltx/modm17/m17modprocessor.h @@ -188,6 +188,7 @@ public: MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } M17ModFIFO *getBasebandFifo() { return &m_basebandFifo; } + void resetInsertPositionToggle() { m_insertPositionToggle = true; } private: MessageQueue m_inputMessageQueue; @@ -202,6 +203,7 @@ private: int m_audioFrameIndex; uint16_t m_audioFrameNumber; struct CODEC2 *m_codec2; + bool m_insertPositionToggle; bool handleMessage(const Message& cmd); void processPacket(const QString& sourceCall, const QString& destCall, uint8_t can, const QByteArray& packetBytes); diff --git a/plugins/channeltx/modm17/m17modsource.cpp b/plugins/channeltx/modm17/m17modsource.cpp index a0259b4ec..f513381f7 100644 --- a/plugins/channeltx/modm17/m17modsource.cpp +++ b/plugins/channeltx/modm17/m17modsource.cpp @@ -523,6 +523,13 @@ void M17ModSource::applySettings(const M17ModSettings& settings, bool force) } } + if ((settings.m_insertPosition != m_settings.m_insertPosition) || force) + { + if (settings.m_insertPosition) { + m_processor->resetInsertPositionToggle(); + } + } + m_settings = settings; }