From 51c742ea7f7b90a25bdb77505de922bb86fc9698 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Wed, 5 Oct 2016 07:42:41 +0100 Subject: [PATCH] Remobe AMBE regeneration on data packets. --- DStarControl.cpp | 12 +++++++++--- DStarHeader.cpp | 5 +++++ DStarHeader.h | 2 ++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/DStarControl.cpp b/DStarControl.cpp index 9373586..bc967a0 100644 --- a/DStarControl.cpp +++ b/DStarControl.cpp @@ -235,7 +235,9 @@ bool CDStarControl::writeModem(unsigned char *data, unsigned int len) return false; } else if (m_rfState == RS_RF_AUDIO) { - unsigned int errors = m_fec.regenerateDStar(data + 1U); + unsigned int errors = 0U; + if (!m_rfHeader.isDataPacket()) + errors = m_fec.regenerateDStar(data + 1U); m_rfErrs += errors; m_rfBits += 48U; @@ -354,7 +356,9 @@ bool CDStarControl::writeModem(unsigned char *data, unsigned int len) delete header; - unsigned int errors = m_fec.regenerateDStar(data + 1U); + unsigned int errors = 0U; + if (!m_rfHeader.isDataPacket()) + errors = m_fec.regenerateDStar(data + 1U); m_rfErrs += errors; m_rfBits += 48U; @@ -529,7 +533,9 @@ void CDStarControl::writeNetwork() unsigned char n = data[1U]; - unsigned int errors = m_fec.regenerateDStar(data + 2U); + unsigned int errors = 0U; + if (!m_netHeader.isDataPacket()) + errors = m_fec.regenerateDStar(data + 2U); blankDTMF(data + 2U); diff --git a/DStarHeader.cpp b/DStarHeader.cpp index ab39292..e06ed1a 100644 --- a/DStarHeader.cpp +++ b/DStarHeader.cpp @@ -72,6 +72,11 @@ void CDStarHeader::setRepeater(bool on) m_header[0U] &= ~DSTAR_REPEATER_MASK; } +bool CDStarHeader::isDataPacket() const +{ + return (m_header[0U] & DSTAR_DATA_MASK) == DSTAR_DATA_MASK; +} + void CDStarHeader::setUnavailable(bool on) { if (on) diff --git a/DStarHeader.h b/DStarHeader.h index 2c75380..867f1da 100644 --- a/DStarHeader.h +++ b/DStarHeader.h @@ -28,6 +28,8 @@ public: bool isRepeater() const; void setRepeater(bool on); + bool isDataPacket() const; + void setUnavailable(bool on); void getMyCall1(unsigned char* call1) const;