diff --git a/Conf.cpp b/Conf.cpp index f4b7acb..543ac15 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -127,7 +127,8 @@ m_xlxNetworkBase(84000U), m_xlxNetworkStartup(4000U), m_xlxNetworkRelink(0U), m_xlxNetworkDebug(false), -m_xlxNetworkUserControl(true) +m_xlxNetworkUserControl(true), +m_xlxNetworkModule() { } @@ -274,7 +275,9 @@ bool CConf::read() else if (::strcmp(key, "Debug") == 0) m_xlxNetworkDebug = ::atoi(value) == 1; else if (::strcmp(key, "UserControl") == 0) - m_xlxNetworkUserControl = atoi(value) ==1; + m_xlxNetworkUserControl = ::atoi(value) ==1; + else if (::strcmp(key, "Module") == 0) + m_xlxNetworkModule = value[0]; } else if (section == SECTION_DMR_NETWORK_1) { if (::strcmp(key, "Enabled") == 0) m_dmrNetwork1Enabled = ::atoi(value) == 1; @@ -739,6 +742,10 @@ bool CConf::getXLXNetworkUserControl() const { return m_xlxNetworkUserControl; } +char CConf::getXLXNetworkModule() const +{ + return m_xlxNetworkModule; +} bool CConf::getDMRNetwork1Enabled() const { diff --git a/Conf.h b/Conf.h index 4412193..fd16f67 100644 --- a/Conf.h +++ b/Conf.h @@ -164,6 +164,7 @@ public: unsigned int getXLXNetworkRelink() const; bool getXLXNetworkDebug() const; bool getXLXNetworkUserControl() const; + char getXLXNetworkModule() const; private: std::string m_file; @@ -262,6 +263,7 @@ private: unsigned int m_xlxNetworkRelink; bool m_xlxNetworkDebug; bool m_xlxNetworkUserControl; + char m_xlxNetworkModule; }; #endif diff --git a/DMRGateway.cpp b/DMRGateway.cpp index a85139a..7ece17d 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -157,6 +157,7 @@ m_xlxRelink(1000U), m_xlxConnected(false), m_xlxDebug(false), m_xlxUserControl(true), +m_xlxModule(), m_rptRewrite(NULL), m_xlxRewrite(NULL), m_dmr1NetRewrites(), @@ -1385,6 +1386,7 @@ bool CDMRGateway::createXLXNetwork() m_xlxTG = m_conf.getXLXNetworkTG(); m_xlxBase = m_conf.getXLXNetworkBase(); m_xlxStartup = m_conf.getXLXNetworkStartup(); + m_xlxModule = m_conf.getXLXNetworkModule(); unsigned int xlxRelink = m_conf.getXLXNetworkRelink(); @@ -1413,6 +1415,9 @@ bool CDMRGateway::createXLXNetwork() } else { LogInfo(" User Control: disabled"); } + if (m_xlxModule) { + LogInfo(" Module: %c",m_xlxModule); + } if (m_xlxStartup > 0U) @@ -1454,7 +1459,11 @@ bool CDMRGateway::linkXLX(unsigned int number) } m_xlxNumber = number; - m_xlxRoom = reflector->m_startup; + if (m_xlxModule) { + m_xlxRoom = (int(m_xlxModule) - 94); + } else { + m_xlxRoom = reflector->m_startup; + } m_xlxReflector = 4000U; LogMessage("XLX, Connecting to XLX%03u", m_xlxNumber); diff --git a/DMRGateway.h b/DMRGateway.h index de9cdb6..dffc360 100644 --- a/DMRGateway.h +++ b/DMRGateway.h @@ -66,6 +66,7 @@ private: bool m_xlxConnected; bool m_xlxDebug; bool m_xlxUserControl; + char m_xlxModule; CRewriteTG* m_rptRewrite; CRewriteTG* m_xlxRewrite; std::vector m_dmr1NetRewrites;