From 8ed2565a256db0b99ce53bda566d544b548ef196 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 21 Oct 2018 15:26:54 +0100 Subject: [PATCH 1/6] XLX: Add option to overide default module in config. --- Conf.cpp | 11 +++++++++-- Conf.h | 2 ++ DMRGateway.cpp | 11 ++++++++++- DMRGateway.h | 1 + 4 files changed, 22 insertions(+), 3 deletions(-) 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; From 91dbcdf209e57edb21f90efb27b85b42978ce72b Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 21 Oct 2018 15:29:50 +0100 Subject: [PATCH 2/6] XLX: Convert module to UPPER CASE --- Conf.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Conf.cpp b/Conf.cpp index 543ac15..4188319 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -277,7 +277,7 @@ bool CConf::read() else if (::strcmp(key, "UserControl") == 0) m_xlxNetworkUserControl = ::atoi(value) ==1; else if (::strcmp(key, "Module") == 0) - m_xlxNetworkModule = value[0]; + m_xlxNetworkModule = ::toupper(value[0]); } else if (section == SECTION_DMR_NETWORK_1) { if (::strcmp(key, "Enabled") == 0) m_dmrNetwork1Enabled = ::atoi(value) == 1; From 45b910d6861500b27e5a24f42485e9958fc40727 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 21 Oct 2018 15:33:44 +0100 Subject: [PATCH 3/6] XLX: Fix error with Module init --- DMRGateway.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 7ece17d..1fe6e30 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -1460,7 +1460,7 @@ bool CDMRGateway::linkXLX(unsigned int number) m_xlxNumber = number; if (m_xlxModule) { - m_xlxRoom = (int(m_xlxModule) - 94); + m_xlxRoom = ((int(m_xlxModule) - 94U) + 4000U); } else { m_xlxRoom = reflector->m_startup; } From b289f816f608ea843d963a0f5b8111fa8a6d5a0f Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 21 Oct 2018 15:46:24 +0100 Subject: [PATCH 4/6] XLX: Fix error in default module override logic --- DMRGateway.cpp | 2 +- Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 1fe6e30..df25ffc 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -1460,7 +1460,7 @@ bool CDMRGateway::linkXLX(unsigned int number) m_xlxNumber = number; if (m_xlxModule) { - m_xlxRoom = ((int(m_xlxModule) - 94U) + 4000U); + m_xlxRoom = ((int(m_xlxModule) - 64U) + 4000U); } else { m_xlxRoom = reflector->m_startup; } diff --git a/Makefile b/Makefile index b0ae9f3..da6d662 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ CC = gcc CXX = g++ -CFLAGS = -g -O3 -Wall -std=c++0x -pthread +CFLAGS = -g -O3 -Wall -std=c++0x -pthread -lrt LIBS = -lpthread LDFLAGS = -g From 67e1362094428c341d271ce201a004acef3004c1 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 21 Oct 2018 15:49:51 +0100 Subject: [PATCH 5/6] Add startup module override to DMRGateway.ini --- DMRGateway.ini | 3 +++ 1 file changed, 3 insertions(+) diff --git a/DMRGateway.ini b/DMRGateway.ini index cb84b78..f61db56 100644 --- a/DMRGateway.ini +++ b/DMRGateway.ini @@ -47,7 +47,10 @@ Base=64000 Startup=950 Relink=10 Debug=0 +#Allow user linking control using Private Calls UserControl=1 +#Override default module for startup reflector +#Module=A # BrandMeister [DMR Network 1] From f19a8b2af0dd484ef46f5328cb535b1638f17fc6 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 21 Oct 2018 15:58:54 +0100 Subject: [PATCH 6/6] Removed -lrt from Makefile as others probably don't need it and I did not intend to push it with my PR. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index da6d662..b0ae9f3 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ CC = gcc CXX = g++ -CFLAGS = -g -O3 -Wall -std=c++0x -pthread -lrt +CFLAGS = -g -O3 -Wall -std=c++0x -pthread LIBS = -lpthread LDFLAGS = -g