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)