From 0a0534de7bfcf62eed015a881af015db5208bbd0 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Thu, 21 Apr 2016 19:57:27 +0100 Subject: [PATCH] Fix minor counting bugs. --- YSFControl.cpp | 14 +++++++------- YSFPayload.cpp | 4 ++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/YSFControl.cpp b/YSFControl.cpp index c0822db..a5de092 100644 --- a/YSFControl.cpp +++ b/YSFControl.cpp @@ -106,10 +106,10 @@ bool CYSFControl::writeModem(unsigned char *data) ::memcpy(orig, data + 2U, YSF_FRAME_LENGTH_BYTES); fich.encode(data + 2U); - valid = m_payload.processHeader(data + 2U); + // valid = m_payload.processHeader(data + 2U); unsigned int errs = calculateBER(orig, data + 2U); - LogDebug("YSF, FI=%u FN=%u FT=%u DT=%u BER=%.1f%%", fi, fn, ft, dt, float(errs) / 9.6F); + LogDebug("YSF, FI=%u FN=%u FT=%u DT=%u BER=%.1f%%", fi, fn, ft, dt, float(errs) / 2.4F); if (m_duplex) { fich.setMR(YSF_MR_BUSY); @@ -162,10 +162,10 @@ bool CYSFControl::writeModem(unsigned char *data) ::memcpy(orig, data + 2U, YSF_FRAME_LENGTH_BYTES); fich.encode(data + 2U); - m_payload.processTrailer(data + 2U); + // m_payload.processTrailer(data + 2U); unsigned int errs = calculateBER(orig, data + 2U); - LogDebug("YSF, FI=%u FN=%u FT=%u DT=%u BER=%.1f%%", fi, fn, ft, dt, float(errs) / 9.6F); + LogDebug("YSF, FI=%u FN=%u FT=%u DT=%u BER=%.1f%%", fi, fn, ft, dt, float(errs) / 2.4F); m_frames++; @@ -207,10 +207,10 @@ bool CYSFControl::writeModem(unsigned char *data) ::memcpy(orig, data + 2U, YSF_FRAME_LENGTH_BYTES); fich.encode(data + 2U); - m_payload.processData(data + 2U, fn, dt); + // m_payload.processData(data + 2U, fn, dt); unsigned int errs = calculateBER(orig, data + 2U); - LogDebug("YSF, FI=%u FN=%u FT=%u DT=%u BER=%.1f%%", fi, fn, ft, dt, float(errs) / 9.6F); + LogDebug("YSF, FI=%u FN=%u FT=%u DT=%u BER=%.1f%%", fi, fn, ft, dt, float(errs) / 2.4F); bool change = false; @@ -426,7 +426,7 @@ unsigned int CYSFControl::calculateBER(const unsigned char* orig, const unsigned { unsigned int errors = 0U; - for (unsigned int i = 0U; i < YSF_FRAME_LENGTH_BYTES; i++) { + for (unsigned int i = 0U; i < (YSF_SYNC_LENGTH_BYTES + YSF_FICH_LENGTH_BYTES); i++) { unsigned char v = orig[i] ^ curr[i]; while (v != 0U) { v &= v - 1U; diff --git a/YSFPayload.cpp b/YSFPayload.cpp index 76a2bff..b5f5c4c 100644 --- a/YSFPayload.cpp +++ b/YSFPayload.cpp @@ -116,6 +116,8 @@ void CYSFPayload::processData(unsigned char* bytes, unsigned char fn, unsigned c bool CYSFPayload::processHeader(unsigned char* data) { + data += YSF_SYNC_LENGTH_BYTES + YSF_FICH_LENGTH_BYTES; + unsigned char dch[45U]; unsigned char* p1 = data; @@ -236,6 +238,8 @@ bool CYSFPayload::processHeader(unsigned char* data) void CYSFPayload::processTrailer(unsigned char* data) { + data += YSF_SYNC_LENGTH_BYTES + YSF_FICH_LENGTH_BYTES; + unsigned char dch[45U]; unsigned char* p1 = data;