From 7233b9a918f7ea2a63d984fa406f4e1ec1797ed6 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Tue, 6 Apr 2021 19:58:13 +0000 Subject: [PATCH] conform LC_SYS_SRV_BCAST to P25 standards; --- p25/P25Defines.h | 27 ++++++++++++++++++++++----- p25/lc/TDULC.cpp | 3 +-- p25/lc/TSBK.cpp | 3 +-- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/p25/P25Defines.h b/p25/P25Defines.h index 4fa9803a..32dd2ba5 100644 --- a/p25/P25Defines.h +++ b/p25/P25Defines.h @@ -127,11 +127,28 @@ namespace p25 const uint8_t P25_SVC_CLS_REG = 0x40U; const uint8_t P25_SVC_CLS_AUTH = 0x80U; - const uint32_t P25_SYS_SRV_NET_ACTIVE = 0x0200001U; - const uint32_t P25_SYS_SRV_GROUP_VOICE = 0x0080001U; - const uint32_t P25_SYS_SRV_IND_VOICE = 0x0040001U; - const uint32_t P25_SYS_SRV_GROUP_DATA = 0x0004001U; - const uint32_t P25_SYS_SRV_IND_DATA = 0x0002001U; + const uint32_t P25_SYS_SRV_NET_ACTIVE = 0x0200000U; + const uint32_t P25_SYS_SRV_GROUP_VOICE = 0x0080000U; + const uint32_t P25_SYS_SRV_IND_VOICE = 0x0040000U; + const uint32_t P25_SYS_SRV_PSTN_UNIT_VOICE = 0x0020000U; + const uint32_t P25_SYS_SRV_UNIT_PSTN_VOICE = 0x0010000U; + const uint32_t P25_SYS_SRV_GROUP_DATA = 0x0004000U; + const uint32_t P25_SYS_SRV_IND_DATA = 0x0002000U; + const uint32_t P25_SYS_SRV_UNIT_REG = 0x0000800U; + const uint32_t P25_SYS_SRV_GROUP_AFF = 0x0000400U; + const uint32_t P25_SYS_SRV_GROUP_AFF_Q = 0x0000200U; + const uint32_t P25_SYS_SRV_USER_STS = 0x0000040U; + const uint32_t P25_SYS_SRV_USER_MSG = 0x0000020U; + const uint32_t P25_SYS_SRV_UNIT_STS = 0x0000010U; + const uint32_t P25_SYS_SRV_USER_STS_Q = 0x0000008U; + const uint32_t P25_SYS_SRV_UNIT_STS_Q = 0x0000004U; + const uint32_t P25_SYS_SRV_CALL_ALRT = 0x0000002U; + const uint32_t P25_SYS_SRV_EMERGENCY = 0x0000001U; + + const uint32_t P25_SYS_SRV_DEFAULT = P25_SYS_SRV_EMERGENCY | P25_SYS_SRV_CALL_ALRT | P25_SYS_SRV_USER_MSG | + P25_SYS_SRV_UNIT_STS_Q | P25_SYS_SRV_USER_STS_Q | P25_SYS_SRV_UNIT_STS | P25_SYS_SRV_USER_STS | + P25_SYS_SRV_IND_DATA | P25_SYS_SRV_IND_VOICE | P25_SYS_SRV_GROUP_DATA | P25_SYS_SRV_GROUP_VOICE; + const uint32_t P25_SYS_SRV_TRUNK = P25_SYS_SRV_DEFAULT | P25_SYS_SRV_GROUP_AFF | P25_SYS_SRV_UNIT_REG | P25_SYS_SRV_GROUP_AFF_Q; const uint8_t P25_CFVA_CONV = 0x08U; const uint8_t P25_CFVA_FAILURE = 0x04U; diff --git a/p25/lc/TDULC.cpp b/p25/lc/TDULC.cpp index 8a022c53..43428f92 100644 --- a/p25/lc/TDULC.cpp +++ b/p25/lc/TDULC.cpp @@ -275,8 +275,7 @@ bool TDULC::decodeLC(const uint8_t* rs) /// void TDULC::encodeLC(uint8_t* rs) { - const uint32_t services = (m_siteNetActive) ? P25_SYS_SRV_NET_ACTIVE : 0U | - P25_SYS_SRV_GROUP_DATA | P25_SYS_SRV_GROUP_VOICE | P25_SYS_SRV_IND_DATA | P25_SYS_SRV_IND_VOICE; + const uint32_t services = (m_siteNetActive) ? P25_SYS_SRV_NET_ACTIVE : 0U | P25_SYS_SRV_DEFAULT; ulong64_t rsValue = 0U; rs[0U] = m_lco; // LCO diff --git a/p25/lc/TSBK.cpp b/p25/lc/TSBK.cpp index 1807b712..12e7a1e3 100644 --- a/p25/lc/TSBK.cpp +++ b/p25/lc/TSBK.cpp @@ -302,8 +302,7 @@ void TSBK::encode(uint8_t * data, bool singleBlock) { assert(data != NULL); - const uint32_t services = (m_siteNetActive) ? P25_SYS_SRV_NET_ACTIVE : 0U | - P25_SYS_SRV_GROUP_DATA | P25_SYS_SRV_GROUP_VOICE | P25_SYS_SRV_IND_DATA | P25_SYS_SRV_IND_VOICE; + const uint32_t services = (m_siteNetActive) ? P25_SYS_SRV_NET_ACTIVE : 0U | P25_SYS_SRV_DEFAULT; uint8_t tsbk[P25_TSBK_LENGTH_BYTES]; ::memset(tsbk, 0x00U, P25_TSBK_LENGTH_BYTES);