From 580bfe6dfee692e88945d1a42b4e73a590923e28 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Sat, 18 Feb 2023 11:54:30 -0500 Subject: [PATCH] fix issue with target address being target ID for IOSP_UU_VCH; --- p25/lc/tsbk/IOSP_UU_ANS.cpp | 4 ++-- p25/lc/tsbk/IOSP_UU_VCH.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/p25/lc/tsbk/IOSP_UU_ANS.cpp b/p25/lc/tsbk/IOSP_UU_ANS.cpp index 006781c4..4b0657d5 100644 --- a/p25/lc/tsbk/IOSP_UU_ANS.cpp +++ b/p25/lc/tsbk/IOSP_UU_ANS.cpp @@ -70,7 +70,7 @@ bool IOSP_UU_ANS::decode(const uint8_t* data, bool rawTSBK) m_encrypted = (((tsbkValue >> 56) & 0xFFU) & 0x40U) == 0x40U; // Encryption Flag m_priority = (((tsbkValue >> 56) & 0xFFU) & 0x07U); // Priority m_response = (uint8_t)((tsbkValue >> 48) & 0xFFU); // Answer Response - m_dstId = (uint32_t)((tsbkValue >> 24) & 0xFFFFFFU); // Target Radio Address + m_dstId = (uint32_t)((tsbkValue >> 24) & 0xFFFFFFU); // Target ID m_srcId = (uint32_t)(tsbkValue & 0xFFFFFFU); // Source Radio Address return true; @@ -92,7 +92,7 @@ void IOSP_UU_ANS::encode(uint8_t* data, bool rawTSBK, bool noTrellis) (m_emergency ? 0x80U : 0x00U) + // Emergency Flag (m_encrypted ? 0x40U : 0x00U) + // Encrypted Flag (m_priority & 0x07U); // Priority - tsbkValue = (tsbkValue << 32) + m_dstId; // Target Radio Address + tsbkValue = (tsbkValue << 32) + m_dstId; // Target ID tsbkValue = (tsbkValue << 24) + m_srcId; // Source Radio Address std::unique_ptr tsbk = TSBK::fromValue(tsbkValue); diff --git a/p25/lc/tsbk/IOSP_UU_VCH.cpp b/p25/lc/tsbk/IOSP_UU_VCH.cpp index 1a39ee9d..188640ce 100644 --- a/p25/lc/tsbk/IOSP_UU_VCH.cpp +++ b/p25/lc/tsbk/IOSP_UU_VCH.cpp @@ -71,7 +71,7 @@ bool IOSP_UU_VCH::decode(const uint8_t* data, bool rawTSBK) m_priority = (((tsbkValue >> 56) & 0xFFU) & 0x07U); // Priority m_grpVchId = ((tsbkValue >> 52) & 0x0FU); // Channel ID m_grpVchNo = ((tsbkValue >> 40) & 0xFFFU); // Channel Number - m_dstId = (uint32_t)((tsbkValue >> 24) & 0xFFFFU); // Target Radio Address + m_dstId = (uint32_t)((tsbkValue >> 24) & 0xFFFFFFU); // Target ID m_srcId = (uint32_t)(tsbkValue & 0xFFFFFFU); // Source Radio Address return true; @@ -95,7 +95,7 @@ void IOSP_UU_VCH::encode(uint8_t* data, bool rawTSBK, bool noTrellis) (m_priority & 0x07U); // Priority tsbkValue = (tsbkValue << 4) + m_siteData.channelId(); // Channel ID tsbkValue = (tsbkValue << 12) + m_grpVchNo; // Channel Number - tsbkValue = (tsbkValue << 24) + m_dstId; // Target Radio Address + tsbkValue = (tsbkValue << 24) + m_dstId; // Target ID tsbkValue = (tsbkValue << 24) + m_srcId; // Source Radio Address std::unique_ptr tsbk = TSBK::fromValue(tsbkValue);