From db0800e6e6681d0f1ea43bbd56d5fae1c1b33ec2 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Thu, 23 Mar 2023 16:10:44 -0400 Subject: [PATCH] display decimal values (useful for DMR setup) for channel numbers as well as hex; properly send QUEUE responses in resources busy condition for DMR grants; --- src/dmr/packet/ControlSignaling.cpp | 8 ++++---- src/host/Host.cpp | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/dmr/packet/ControlSignaling.cpp b/src/dmr/packet/ControlSignaling.cpp index 53203d75..75b0b462 100644 --- a/src/dmr/packet/ControlSignaling.cpp +++ b/src/dmr/packet/ControlSignaling.cpp @@ -800,7 +800,7 @@ bool ControlSignaling::writeRF_CSBK_Grant(uint32_t srcId, uint32_t dstId, uint8_ if (grp) { if (!net) { LogWarning(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_GRP_VOICE_CALL (Group Voice Call) queued, no channels available, dstId = %u", m_tscc->m_slotNo, dstId); - writeRF_CSBK_ACK_RSP(srcId, TS_DENY_RSN_SYS_BUSY, (grp) ? 1U : 0U); + writeRF_CSBK_ACK_RSP(srcId, TS_QUEUED_RSN_NO_RESOURCE, (grp) ? 1U : 0U); ::ActivityLog("DMR", true, "Slot %u group grant request %u to TG %u queued", m_tscc->m_slotNo, srcId, dstId); m_slot->m_rfState = RS_RF_REJECTED; @@ -811,7 +811,7 @@ bool ControlSignaling::writeRF_CSBK_Grant(uint32_t srcId, uint32_t dstId, uint8_ else { if (!net) { LogWarning(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_IND_VOICE_CALL (Individual Voice Call) queued, no channels available, dstId = %u", m_tscc->m_slotNo, dstId); - writeRF_CSBK_ACK_RSP(srcId, TS_DENY_RSN_SYS_BUSY, (grp) ? 1U : 0U); + writeRF_CSBK_ACK_RSP(srcId, TS_QUEUED_RSN_NO_RESOURCE, (grp) ? 1U : 0U); ::ActivityLog("DMR", true, "Slot %u group grant request %u to TG %u queued", m_tscc->m_slotNo, srcId, dstId); m_slot->m_rfState = RS_RF_REJECTED; @@ -983,7 +983,7 @@ bool ControlSignaling::writeRF_CSBK_Data_Grant(uint32_t srcId, uint32_t dstId, u if (grp) { if (!net) { LogWarning(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_GRP_DATA_CALL (Group Data Call) queued, no channels available, dstId = %u", m_tscc->m_slotNo, dstId); - writeRF_CSBK_ACK_RSP(srcId, TS_DENY_RSN_SYS_BUSY, (grp) ? 1U : 0U); + writeRF_CSBK_ACK_RSP(srcId, TS_QUEUED_RSN_NO_RESOURCE, (grp) ? 1U : 0U); ::ActivityLog("DMR", true, "Slot %u group grant request %u to TG %u queued", m_tscc->m_slotNo, srcId, dstId); m_slot->m_rfState = RS_RF_REJECTED; @@ -994,7 +994,7 @@ bool ControlSignaling::writeRF_CSBK_Data_Grant(uint32_t srcId, uint32_t dstId, u else { if (!net) { LogWarning(LOG_RF, "DMR Slot %u, DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_IND_DATA_CALL (Individual Data Call) queued, no channels available, dstId = %u", m_tscc->m_slotNo, dstId); - writeRF_CSBK_ACK_RSP(srcId, TS_DENY_RSN_SYS_BUSY, (grp) ? 1U : 0U); + writeRF_CSBK_ACK_RSP(srcId, TS_QUEUED_RSN_NO_RESOURCE, (grp) ? 1U : 0U); ::ActivityLog("DMR", true, "Slot %u group grant request %u to TG %u queued", m_tscc->m_slotNo, srcId, dstId); m_slot->m_rfState = RS_RF_REJECTED; diff --git a/src/host/Host.cpp b/src/host/Host.cpp index 67ea36e7..667e27fd 100644 --- a/src/host/Host.cpp +++ b/src/host/Host.cpp @@ -1854,9 +1854,9 @@ bool Host::readParams() std::string strVoiceChNo = ""; for (auto it = m_voiceChNo.begin(); it != m_voiceChNo.end(); ++it) { int decVal = ::atoi(std::to_string(*it).c_str()); - char hexStr[8]; + char hexStr[23]; - ::sprintf(hexStr, "$%04X", decVal); + ::sprintf(hexStr, "$%04X (%u)", decVal, decVal); strVoiceChNo.append(std::string(hexStr)); strVoiceChNo.append(","); @@ -1903,7 +1903,7 @@ bool Host::readParams() LogInfo(" Bandwidth: %fKHz", entry.chBandwidthKhz()); LogInfo(" Channel Spacing: %fKHz", entry.chSpaceKhz()); LogInfo(" Channel Id: %u", m_channelId); - LogInfo(" Channel No.: $%04X", m_channelNo); + LogInfo(" Channel No.: $%04X (%u)", m_channelNo, m_channelNo); LogInfo(" Voice Channel No(s).: %s", strVoiceChNo.c_str()); LogInfo(" Site Id: $%02X", m_siteId); LogInfo(" System Id: $%03X", m_sysId);