From ff71383ac78ba0905ff7fb1391b7c0471d40676b Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Mon, 5 Feb 2018 21:39:50 +0000 Subject: [PATCH] Not happy about LICH reconstruction, remove it. --- NXDNControl.cpp | 24 ++++-------------------- NXDNControl.h | 2 +- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/NXDNControl.cpp b/NXDNControl.cpp index c1198a4..4eeea24 100644 --- a/NXDNControl.cpp +++ b/NXDNControl.cpp @@ -158,16 +158,16 @@ bool CNXDNControl::writeModem(unsigned char *data, unsigned int len) if (usc == NXDN_LICH_USC_UDCH) ret = processData(option, data); else - ret = processVoice(valid, usc, option, data); + ret = processVoice(usc, option, data); return ret; } -bool CNXDNControl::processVoice(bool validLICH, unsigned char usc, unsigned char option, unsigned char *data) +bool CNXDNControl::processVoice(unsigned char usc, unsigned char option, unsigned char *data) { CNXDNSACCH sacch; - bool validSACCH = sacch.decode(data + 2U); - if (validSACCH) { + bool valid = sacch.decode(data + 2U); + if (valid) { unsigned char ran = sacch.getRAN(); if (ran != m_ran && ran != 0U) return false; @@ -175,22 +175,6 @@ bool CNXDNControl::processVoice(bool validLICH, unsigned char usc, unsigned char return false; } - // Reconstruct invalid LICH - if (!validLICH) { - if (usc == NXDN_LICH_USC_SACCH_NS) { - option = NXDN_LICH_STEAL_NONE; - usc = NXDN_LICH_USC_SACCH_SS; - } else { - if (option == NXDN_LICH_STEAL_FACCH) - option = NXDN_LICH_STEAL_NONE; - else if (option == NXDN_LICH_STEAL_NONE) - option = NXDN_LICH_STEAL_FACCH; - } - - m_rfLastLICH.setFCT(usc); - m_rfLastLICH.setOption(option); - } - if (usc == NXDN_LICH_USC_SACCH_NS) { // The SACCH on a non-superblock frame is usually an idle and not interesting apart from the RAN. CNXDNFACCH1 facch; diff --git a/NXDNControl.h b/NXDNControl.h index 8dfaedd..5f000e7 100644 --- a/NXDNControl.h +++ b/NXDNControl.h @@ -81,7 +81,7 @@ private: unsigned int m_rssiCount; FILE* m_fp; - bool processVoice(bool validLICH, unsigned char usc, unsigned char option, unsigned char *data); + bool processVoice(unsigned char usc, unsigned char option, unsigned char *data); bool processData(unsigned char option, unsigned char *data); void writeQueueRF(const unsigned char* data);