From 051dc0eb7fd9de7de69209a6051621a7aa84817d Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Sun, 14 Jan 2024 00:24:51 -0500 Subject: [PATCH] allow overriding of group voice channel data in IOSP_GRP_VCH; make sure to instantiate values to sane defaults; --- src/common/p25/lc/TSBK.cpp | 2 ++ src/common/p25/lc/tsbk/IOSP_GRP_VCH.cpp | 5 +++-- src/common/p25/lc/tsbk/IOSP_GRP_VCH.h | 4 ++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/common/p25/lc/TSBK.cpp b/src/common/p25/lc/TSBK.cpp index 9192ab55..8596745a 100644 --- a/src/common/p25/lc/TSBK.cpp +++ b/src/common/p25/lc/TSBK.cpp @@ -100,6 +100,8 @@ TSBK::TSBK() : m_response(P25_RSP_ACCEPT), m_netId(P25_WACN_STD_DEFAULT), m_sysId(P25_SID_STD_DEFAULT), + m_grpVchId(0U), + m_grpVchNo(0U), m_emergency(false), m_encrypted(false), m_priority(4U), diff --git a/src/common/p25/lc/tsbk/IOSP_GRP_VCH.cpp b/src/common/p25/lc/tsbk/IOSP_GRP_VCH.cpp index 9693bcbc..b6949a93 100644 --- a/src/common/p25/lc/tsbk/IOSP_GRP_VCH.cpp +++ b/src/common/p25/lc/tsbk/IOSP_GRP_VCH.cpp @@ -42,7 +42,8 @@ using namespace p25; /// /// Initializes a new instance of the IOSP_GRP_VCH class. /// -IOSP_GRP_VCH::IOSP_GRP_VCH() : TSBK() +IOSP_GRP_VCH::IOSP_GRP_VCH() : TSBK(), + m_forceChannelId(false) { m_lco = TSBK_IOSP_GRP_VCH; } @@ -93,7 +94,7 @@ void IOSP_GRP_VCH::encode(uint8_t* data, bool rawTSBK, bool noTrellis) (m_emergency ? 0x80U : 0x00U) + // Emergency Flag (m_encrypted ? 0x40U : 0x00U) + // Encrypted Flag (m_priority & 0x07U); // Priority - if (m_grpVchId != 0U) { + if ((m_grpVchId != 0U) || m_forceChannelId) { tsbkValue = (tsbkValue << 4) + m_grpVchId; // Channel ID } else { diff --git a/src/common/p25/lc/tsbk/IOSP_GRP_VCH.h b/src/common/p25/lc/tsbk/IOSP_GRP_VCH.h index 67a50996..7775b4cd 100644 --- a/src/common/p25/lc/tsbk/IOSP_GRP_VCH.h +++ b/src/common/p25/lc/tsbk/IOSP_GRP_VCH.h @@ -53,6 +53,10 @@ namespace p25 /// Returns a string that represents the current TSBK. virtual std::string toString(bool isp = false) override; + + public: + /// Flag forcing the use of the group voice channel ID regardless of value. + __PROPERTY(bool, forceChannelId, ForceChannelId); }; } // namespace tsbk } // namespace lc