From 56935be5e1cdc6b46fec9715571c7fb9c62c2300 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Thu, 18 Feb 2016 18:18:37 +0000 Subject: [PATCH] Add FEC BER debugging statements. --- DMRSlot.cpp | 26 ++++++++++++++++++++------ DStarControl.cpp | 10 ++++++++-- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/DMRSlot.cpp b/DMRSlot.cpp index 2a9ff13..2c439eb 100644 --- a/DMRSlot.cpp +++ b/DMRSlot.cpp @@ -313,8 +313,12 @@ void CDMRSlot::writeModem(unsigned char *data) CSync::addDMRAudioSync(data + 2U); unsigned char fid = m_lc->getFID(); - if (fid == FID_ETSI || fid == FID_DMRA) - m_errs += m_fec.regenerateDMR(data + 2U); + if (fid == FID_ETSI || fid == FID_DMRA) { + unsigned int errors = m_fec.regenerateDMR(data + 2U); + LogDebug("DMR Slot %u, audio sequence no. 0, errs: %u/144", m_slotNo, errors); + m_errs += errors; + } + m_bits += 144U; data[0U] = TAG_DATA; @@ -339,8 +343,13 @@ void CDMRSlot::writeModem(unsigned char *data) emb.getData(data + 2U); unsigned char fid = m_lc->getFID(); - if (fid == FID_ETSI || fid == FID_DMRA) - m_errs += m_fec.regenerateDMR(data + 2U); + if (fid == FID_ETSI || fid == FID_DMRA) { + unsigned int errors = m_fec.regenerateDMR(data + 2U); + unsigned char n = data[1U] & 0x0FU; + LogDebug("DMR Slot %u, audio sequence no. %u, errs: %u/144", m_slotNo, n, errors); + m_errs += errors; + } + m_bits += 144U; data[0U] = TAG_DATA; @@ -398,8 +407,13 @@ void CDMRSlot::writeModem(unsigned char *data) // Send the original audio frame out unsigned char fid = m_lc->getFID(); - if (fid == FID_ETSI || fid == FID_DMRA) - m_errs += m_fec.regenerateDMR(data + 2U); + if (fid == FID_ETSI || fid == FID_DMRA) { + unsigned int errors = m_fec.regenerateDMR(data + 2U); + unsigned char n = data[1U] & 0x0FU; + LogDebug("DMR Slot %u, audio sequence no. %u, errs: %u/144", m_slotNo, n, errors); + m_errs += errors; + } + m_bits += 144U; data[0U] = TAG_DATA; diff --git a/DStarControl.cpp b/DStarControl.cpp index 16a2955..3f6e90a 100644 --- a/DStarControl.cpp +++ b/DStarControl.cpp @@ -219,6 +219,8 @@ bool CDStarControl::writeModem(unsigned char *data) return false; } else if (m_state == RS_RELAYING_RF_AUDIO) { unsigned int errors = m_fec.regenerateDStar(data + 1U); + LogDebug("D-Star, audio sequence no. %u, errs: %u/48", m_n, errors); + m_errs += errors; m_bits += 48U; @@ -335,7 +337,9 @@ bool CDStarControl::writeModem(unsigned char *data) delete header; - unsigned int errors = m_fec.regenerateDMR(data + 1U); + unsigned int errors = m_fec.regenerateDStar(data + 1U); + LogDebug("D-Star, audio sequence no. %u, errs: %u/48", m_n, errors); + m_errs += errors; m_bits += 48U; @@ -479,7 +483,9 @@ void CDStarControl::writeNetwork() insertSilence(data + 2U, n); - m_errs += m_fec.regenerateDStar(data + 2U); + unsigned int errors = m_fec.regenerateDStar(data + 2U); + + m_errs += errors; m_bits += 48U; blankDTMF(data + 2U);