From 809153e0f254bb486cee17ee37c9e8e3a893af7c Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 11 Sep 2016 13:01:05 +0100 Subject: [PATCH] Add TG rewrite code call to DMRSlot.cpp --- DMRSlot.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/DMRSlot.cpp b/DMRSlot.cpp index 620a423..67d415d 100644 --- a/DMRSlot.cpp +++ b/DMRSlot.cpp @@ -157,7 +157,14 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len) if (!DMRAccessControl::validateAccess(id, did, m_slotNo, false)) { delete lc; return; - } + } + + // Test dst rewrite + unsigned int rw_id = DMRAccessControl::DstIdRewrite(id, false); + if (rw_id) { + LogMessage("Rewrite ID: %u", rw_id); + lc->setDstId(rw_id); + } m_rfLC = lc; @@ -271,6 +278,7 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len) if (!DMRAccessControl::validateAccess(srcId, dstId, m_slotNo, false)) return; + m_rfFrames = dataHeader.getBlocks(); m_rfDataHeader = dataHeader; @@ -325,7 +333,7 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len) unsigned int dstId = csbk.getDstId(); if (!DMRAccessControl::validateAccess(srcId, dstId, m_slotNo, false)) return; - + // Regenerate the CSBK data csbk.get(data + 2U); @@ -484,6 +492,12 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len) delete lc; return; } + // Test dst rewrite + unsigned int rw_id = DMRAccessControl::DstIdRewrite(id, false); + if (rw_id) { + LogMessage("Rewrite ID: %u", rw_id); + lc->setDstId(rw_id); + } m_rfLC = lc;