From c25fa65ddad23cd341d7b385110e491540c431ee Mon Sep 17 00:00:00 2001 From: "Tony Corbett, G0WFV" Date: Wed, 4 Oct 2017 15:06:27 +0100 Subject: [PATCH 1/4] Change XLX reflector log messages Convert command number to room letter --- DMRGateway.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 189fd07..ccaeb32 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -366,12 +366,16 @@ int CDMRGateway::run() if (connected && !m_xlxConnected) { if (m_xlxReflector >= 4001U && m_xlxReflector <= 4026U) { writeXLXLink(m_xlxId, m_xlxReflector, m_xlxNetwork); - LogMessage("XLX, Linking to reflector %u in XLX%03u", m_xlxReflector, m_xlxNumber); + unsigned int ascii = m_xlxReflector - 3936; + char ch = (char)ascii; + LogMessage("XLX, Linking to reflector XLX%03u %c", m_xlxNumber, ch); if (voice != NULL) voice->linkedTo(m_xlxNumber, m_xlxReflector); } else if (m_xlxRoom >= 4001U && m_xlxRoom <= 4026U) { writeXLXLink(m_xlxId, m_xlxRoom, m_xlxNetwork); - LogMessage("XLX, Linking to reflector %u in XLX%03u", m_xlxRoom, m_xlxNumber); + unsigned int ascii = m_xlxRoom - 3936; + char ch = (char)ascii; + LogMessage("XLX, Linking to reflector XLX%03u %c", m_xlxNumber, ch); if (voice != NULL) voice->linkedTo(m_xlxNumber, m_xlxRoom); m_xlxReflector = m_xlxRoom; @@ -401,7 +405,9 @@ int CDMRGateway::run() if (m_xlxNumber != m_xlxStartup) { if (m_xlxStartup > 0U) { m_xlxReflector = 4000U; - LogMessage("XLX, Re-linking to startup reflector %u in XLX%03u due to RF inactivity timeout", m_xlxRoom, m_xlxNumber); + unsigned int ascii = m_xlxRoom - 3936; + char ch = (char)ascii; + LogMessage("XLX, Re-linking to startup reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, ch); linkXLX(m_xlxStartup); } else { LogMessage("XLX, Unlinking from XLX%03u due to RF inactivity timeout", m_xlxNumber); @@ -413,9 +419,13 @@ int CDMRGateway::run() if (m_xlxRoom >= 4001U && m_xlxRoom <= 4026U) { writeXLXLink(m_xlxId, m_xlxRoom, m_xlxNetwork); - LogMessage("XLX, Re-linking to startup reflector %u in XLX%03u due to RF inactivity timeout", m_xlxRoom, m_xlxNumber); + unsigned int ascii = m_xlxRoom - 3936; + char ch = (char)ascii; + LogMessage("XLX, Re-linking to startup reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, ch); } else if (m_xlxReflector >= 4001U && m_xlxReflector <= 4026U) { - LogMessage("XLX, Unlinking from reflector %u in XLX%03u due to RF inactivity timeout", m_xlxReflector, m_xlxNumber); + unsigned int ascii = m_xlxReflector - 3936; + char ch = (char)ascii; + LogMessage("XLX, Unlinking from reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, ch); } m_xlxReflector = m_xlxRoom; @@ -455,13 +465,17 @@ int CDMRGateway::run() if (dstId == 4000U) { writeXLXLink(srcId, 4000U, m_xlxNetwork); m_xlxReflector = 4000U; - LogMessage("XLX, Unlinking from reflector %u in XLX%03u", m_xlxRoom, m_xlxNumber); + unsigned int ascii = m_xlxRoom - 3936; + char ch = (char)ascii; + LogMessage("XLX, Unlinking from reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, ch); } else if (dstId != 5000U) { if (m_xlxReflector != 4000U) writeXLXLink(srcId, 4000U, m_xlxNetwork); writeXLXLink(srcId, dstId, m_xlxNetwork); m_xlxReflector = dstId; - LogMessage("XLX, Linking to reflector %u in XLX%03u", dstId, m_xlxNumber); + unsigned int ascii = dstId - 3936; + char ch = (char)ascii; + LogMessage("XLX, Linking to reflector XLX%03u %c", m_xlxNumber, ch); } if (m_xlxReflector != m_xlxRoom) From 0d13b2247dce2c31e5edf147d89481573b5ebdfc Mon Sep 17 00:00:00 2001 From: "Tony Corbett, G0WFV" Date: Wed, 4 Oct 2017 15:26:14 +0100 Subject: [PATCH 2/4] Correct message --- DMRGateway.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index ccaeb32..82c689d 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -467,7 +467,7 @@ int CDMRGateway::run() m_xlxReflector = 4000U; unsigned int ascii = m_xlxRoom - 3936; char ch = (char)ascii; - LogMessage("XLX, Unlinking from reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, ch); + LogMessage("XLX, Unlinking from reflector XLX%03u %c", m_xlxNumber, ch); } else if (dstId != 5000U) { if (m_xlxReflector != 4000U) writeXLXLink(srcId, 4000U, m_xlxNetwork); From 1d08926da2b79431d8940fd94e595e553d1c2a35 Mon Sep 17 00:00:00 2001 From: "Tony Corbett, G0WFV" Date: Wed, 4 Oct 2017 15:50:57 +0100 Subject: [PATCH 3/4] Alter reconnection behaviour Allow XLX to go back to where you were once network restored (used to relink to default XLX room) --- DMRGateway.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 82c689d..40fd5b6 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -396,7 +396,6 @@ int CDMRGateway::run() if (voice != NULL) voice->unlinked(); - m_xlxReflector = 4000U; m_xlxConnected = false; m_xlxRelink.stop(); } else if (connected && m_xlxRelink.isRunning() && m_xlxRelink.hasExpired()) { @@ -1193,7 +1192,7 @@ bool CDMRGateway::linkXLX(unsigned int number) m_xlxNumber = number; m_xlxRoom = reflector->m_startup; - m_xlxReflector = 4000U; + m_xlxReflector = 4000U; LogMessage("XLX, Connecting to XLX%03u", m_xlxNumber); From f4f5ec402436f0a67f9828a92f868eb9fc6771b7 Mon Sep 17 00:00:00 2001 From: "Tony Corbett, G0WFV" Date: Wed, 4 Oct 2017 16:18:29 +0100 Subject: [PATCH 4/4] Change conversion method 1 --- DMRGateway.cpp | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 40fd5b6..8d6065f 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -366,16 +366,14 @@ int CDMRGateway::run() if (connected && !m_xlxConnected) { if (m_xlxReflector >= 4001U && m_xlxReflector <= 4026U) { writeXLXLink(m_xlxId, m_xlxReflector, m_xlxNetwork); - unsigned int ascii = m_xlxReflector - 3936; - char ch = (char)ascii; - LogMessage("XLX, Linking to reflector XLX%03u %c", m_xlxNumber, ch); + char c = ('A' + (m_xlxReflector % 100U)) - 1U; + LogMessage("XLX, Linking to reflector XLX%03u %c", m_xlxNumber, c); if (voice != NULL) voice->linkedTo(m_xlxNumber, m_xlxReflector); } else if (m_xlxRoom >= 4001U && m_xlxRoom <= 4026U) { writeXLXLink(m_xlxId, m_xlxRoom, m_xlxNetwork); - unsigned int ascii = m_xlxRoom - 3936; - char ch = (char)ascii; - LogMessage("XLX, Linking to reflector XLX%03u %c", m_xlxNumber, ch); + char c = ('A' + (m_xlxRoom % 100U)) - 1U; + LogMessage("XLX, Linking to reflector XLX%03u %c", m_xlxNumber, c); if (voice != NULL) voice->linkedTo(m_xlxNumber, m_xlxRoom); m_xlxReflector = m_xlxRoom; @@ -404,9 +402,8 @@ int CDMRGateway::run() if (m_xlxNumber != m_xlxStartup) { if (m_xlxStartup > 0U) { m_xlxReflector = 4000U; - unsigned int ascii = m_xlxRoom - 3936; - char ch = (char)ascii; - LogMessage("XLX, Re-linking to startup reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, ch); + char c = ('A' + (m_xlxRoom % 100U)) - 1U; + LogMessage("XLX, Re-linking to startup reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, c); linkXLX(m_xlxStartup); } else { LogMessage("XLX, Unlinking from XLX%03u due to RF inactivity timeout", m_xlxNumber); @@ -418,13 +415,11 @@ int CDMRGateway::run() if (m_xlxRoom >= 4001U && m_xlxRoom <= 4026U) { writeXLXLink(m_xlxId, m_xlxRoom, m_xlxNetwork); - unsigned int ascii = m_xlxRoom - 3936; - char ch = (char)ascii; - LogMessage("XLX, Re-linking to startup reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, ch); + char c = ('A' + (m_xlxRoom % 100U)) - 1U; + LogMessage("XLX, Re-linking to startup reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, c); } else if (m_xlxReflector >= 4001U && m_xlxReflector <= 4026U) { - unsigned int ascii = m_xlxReflector - 3936; - char ch = (char)ascii; - LogMessage("XLX, Unlinking from reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, ch); + char c = ('A' + (m_xlxReflector % 100U)) - 1U; + LogMessage("XLX, Unlinking from reflector XLX%03u %c due to RF inactivity timeout", m_xlxNumber, c); } m_xlxReflector = m_xlxRoom; @@ -464,17 +459,15 @@ int CDMRGateway::run() if (dstId == 4000U) { writeXLXLink(srcId, 4000U, m_xlxNetwork); m_xlxReflector = 4000U; - unsigned int ascii = m_xlxRoom - 3936; - char ch = (char)ascii; - LogMessage("XLX, Unlinking from reflector XLX%03u %c", m_xlxNumber, ch); + char c = ('A' + (m_xlxRoom % 100U)) - 1U; + LogMessage("XLX, Unlinking from reflector XLX%03u %c", m_xlxNumber, c); } else if (dstId != 5000U) { if (m_xlxReflector != 4000U) writeXLXLink(srcId, 4000U, m_xlxNetwork); writeXLXLink(srcId, dstId, m_xlxNetwork); m_xlxReflector = dstId; - unsigned int ascii = dstId - 3936; - char ch = (char)ascii; - LogMessage("XLX, Linking to reflector XLX%03u %c", m_xlxNumber, ch); + char c = ('A' + (dstId % 100U)) - 1U; + LogMessage("XLX, Linking to reflector XLX%03u %c", m_xlxNumber, c); } if (m_xlxReflector != m_xlxRoom)