From c66f3fa455e15024b130fedb8b480014e96b82ab Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Sun, 11 Dec 2016 16:01:30 +0000 Subject: [PATCH] Add extra Preamble CSBK data dumping. --- DMRCSBK.cpp | 21 +++++++++++++++++++-- DMRCSBK.h | 5 +++++ DMRSlot.cpp | 4 ++-- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/DMRCSBK.cpp b/DMRCSBK.cpp index fcb4ec7..5fd8fe8 100644 --- a/DMRCSBK.cpp +++ b/DMRCSBK.cpp @@ -31,7 +31,9 @@ m_FID(0x00U), m_GI(false), m_bsId(0U), m_srcId(0U), -m_dstId(0U) +m_dstId(0U), +m_dataContent(false), +m_CBF(0U) { m_data = new unsigned char[12U]; } @@ -62,6 +64,9 @@ bool CDMRCSBK::put(const unsigned char* bytes) m_CSBKO = CSBKO(m_data[0U] & 0x3FU); m_FID = m_data[1U]; + m_dataContent = false; + m_CBF = 0U; + switch (m_CSBKO) { case CSBKO_BSDWNACT: m_bsId = m_data[4U] << 16 | m_data[5U] << 8 | m_data[6U]; @@ -85,7 +90,9 @@ bool CDMRCSBK::put(const unsigned char* bytes) m_GI = (m_data[2U] & 0x40U) == 0x40U; m_dstId = m_data[4U] << 16 | m_data[5U] << 8 | m_data[6U]; m_srcId = m_data[7U] << 16 | m_data[8U] << 8 | m_data[9U]; - CUtils::dump(1U, "Preamble CSBK", m_data, 12U); + m_dataContent = (m_data[2U] & 0x80U) == 0x80U; + m_CBF = m_data[3U]; + // CUtils::dump(1U, "Preamble CSBK", m_data, 12U); break; case CSBKO_NACKRSP: @@ -141,3 +148,13 @@ unsigned int CDMRCSBK::getDstId() const { return m_dstId; } + +bool CDMRCSBK::getDataContent() const +{ + return m_dataContent; +} + +unsigned char CDMRCSBK::getCBF() const +{ + return m_CBF; +} diff --git a/DMRCSBK.h b/DMRCSBK.h index 26932b1..69942b4 100644 --- a/DMRCSBK.h +++ b/DMRCSBK.h @@ -54,6 +54,9 @@ public: unsigned int getSrcId() const; unsigned int getDstId() const; + bool getDataContent() const; + unsigned char getCBF() const; + private: unsigned char* m_data; CSBKO m_CSBKO; @@ -62,6 +65,8 @@ private: unsigned int m_bsId; unsigned int m_srcId; unsigned int m_dstId; + bool m_dataContent; + unsigned char m_CBF; }; #endif diff --git a/DMRSlot.cpp b/DMRSlot.cpp index d83f35f..0905d28 100644 --- a/DMRSlot.cpp +++ b/DMRSlot.cpp @@ -363,7 +363,7 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len) LogMessage("DMR Slot %u, received RF Negative Acknowledgment Response CSBK from %s to %s%s", m_slotNo, src.c_str(), gi ? "TG ": "", dst.c_str()); break; case CSBKO_PRECCSBK: - LogMessage("DMR Slot %u, received RF Preamble CSBK from %s to %s%s", m_slotNo, src.c_str(), gi ? "TG ": "", dst.c_str()); + LogMessage("DMR Slot %u, received RF %s Preamble CSBK (%u to follow) from %s to %s%s", m_slotNo, csbk.getDataContent() ? "Data" : "CSBK", csbk.getCBF(), src.c_str(), gi ? "TG ": "", dst.c_str()); break; default: LogWarning("DMR Slot %u, unhandled RF CSBK type - 0x%02X", m_slotNo, csbko); @@ -1226,7 +1226,7 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData) LogMessage("DMR Slot %u, received network Negative Acknowledgment Response CSBK from %s to %s%s", m_slotNo, src.c_str(), gi ? "TG ": "", dst.c_str()); break; case CSBKO_PRECCSBK: - LogMessage("DMR Slot %u, received network Preamble CSBK from %s to %s%s", m_slotNo, src.c_str(), gi ? "TG ": "", dst.c_str()); + LogMessage("DMR Slot %u, received network %s Preamble CSBK (%u to follow) from %s to %s%s", m_slotNo, csbk.getDataContent() ? "Data" : "CSBK", csbk.getCBF(), src.c_str(), gi ? "TG " : "", dst.c_str()); break; default: LogWarning("DMR Slot %u, unhandled network CSBK type - 0x%02X", m_slotNo, csbko);