From ee2b701bb85feda4c58d526e07f9e08139f0130c Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Sun, 20 Aug 2017 22:37:28 +0100 Subject: [PATCH 1/3] Small bug fixes. --- DMRGateway.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index db7424b..226630f 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -464,11 +464,11 @@ int CDMRGateway::run() LogMessage("%s, Re-linking to startup reflector %u due to RF inactivity timeout", m_xlx2Name.c_str(), m_xlx2Startup); m_xlx2Reflector = m_xlx2Startup; - if (voice1 != NULL) { - if (m_xlx1Reflector == 4000U) - voice1->unlinked(); + if (voice2 != NULL) { + if (m_xlx2Reflector == 4000U) + voice2->unlinked(); else - voice1->linkedTo(m_xlx2Startup); + voice2->linkedTo(m_xlx2Startup); } } } @@ -526,7 +526,7 @@ int CDMRGateway::run() if (m_xlx1Reflector != m_xlx1Startup) m_xlx1Relink.start(); else - m_xlx2Relink.stop(); + m_xlx1Relink.stop(); } status[slotNo] = DMRGWS_XLXREFLECTOR1; From 9289d48939b8fbe8a2ead979d69c458603b759f2 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Sat, 16 Sep 2017 14:33:04 +0100 Subject: [PATCH 2/3] Optionally suppress location information info being sent to the masters. --- Conf.cpp | 16 ++++++++++++++++ Conf.h | 4 ++++ DMRGateway.cpp | 10 ++++++++++ DMRGateway.ini | 2 ++ 4 files changed, 32 insertions(+) diff --git a/Conf.cpp b/Conf.cpp index 0e90b62..c26d126 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -63,6 +63,7 @@ m_dmrNetwork1Local(0U), m_dmrNetwork1Password(), m_dmrNetwork1Options(), m_dmrNetwork1Debug(false), +m_dmrNetwork1Location(true), m_dmrNetwork1TGRewrites(), m_dmrNetwork1PCRewrites(), m_dmrNetwork1TypeRewrites(), @@ -77,6 +78,7 @@ m_dmrNetwork2Port(0U), m_dmrNetwork2Local(0U), m_dmrNetwork2Password(), m_dmrNetwork2Options(), +m_dmrNetwork2Location(true), m_dmrNetwork2Debug(false), m_dmrNetwork2TGRewrites(), m_dmrNetwork2PCRewrites(), @@ -271,6 +273,8 @@ bool CConf::read() m_dmrNetwork1Password = value; else if (::strcmp(key, "Options") == 0) m_dmrNetwork1Options = value; + else if (::strcmp(key, "Location") == 0) + m_dmrNetwork1Location = ::atoi(value) == 1; else if (::strcmp(key, "Debug") == 0) m_dmrNetwork1Debug = ::atoi(value) == 1; else if (::strcmp(key, "TGRewrite") == 0) { @@ -355,6 +359,8 @@ bool CConf::read() m_dmrNetwork2Password = value; else if (::strcmp(key, "Options") == 0) m_dmrNetwork2Options = value; + else if (::strcmp(key, "Location") == 0) + m_dmrNetwork2Location = ::atoi(value) == 1; else if (::strcmp(key, "Debug") == 0) m_dmrNetwork2Debug = ::atoi(value) == 1; else if (::strcmp(key, "TGRewrite") == 0) { @@ -694,6 +700,11 @@ std::string CConf::getDMRNetwork1Options() const return m_dmrNetwork1Options; } +bool CConf::getDMRNetwork1Location() const +{ + return m_dmrNetwork1Location; +} + bool CConf::getDMRNetwork1Debug() const { return m_dmrNetwork1Debug; @@ -772,6 +783,11 @@ std::string CConf::getDMRNetwork2Options() const return m_dmrNetwork2Options; } +bool CConf::getDMRNetwork2Location() const +{ + return m_dmrNetwork2Location; +} + bool CConf::getDMRNetwork2Debug() const { return m_dmrNetwork2Debug; diff --git a/Conf.h b/Conf.h index f596dbb..a24a33f 100644 --- a/Conf.h +++ b/Conf.h @@ -91,6 +91,7 @@ public: unsigned int getDMRNetwork1Local() const; std::string getDMRNetwork1Password() const; std::string getDMRNetwork1Options() const; + bool getDMRNetwork1Location() const; bool getDMRNetwork1Debug() const; std::vector getDMRNetwork1TGRewrites() const; std::vector getDMRNetwork1PCRewrites() const; @@ -108,6 +109,7 @@ public: unsigned int getDMRNetwork2Local() const; std::string getDMRNetwork2Password() const; std::string getDMRNetwork2Options() const; + bool getDMRNetwork2Location() const; bool getDMRNetwork2Debug() const; std::vector getDMRNetwork2TGRewrites() const; std::vector getDMRNetwork2PCRewrites() const; @@ -176,6 +178,7 @@ private: unsigned int m_dmrNetwork1Local; std::string m_dmrNetwork1Password; std::string m_dmrNetwork1Options; + bool m_dmrNetwork1Location; bool m_dmrNetwork1Debug; std::vector m_dmrNetwork1TGRewrites; std::vector m_dmrNetwork1PCRewrites; @@ -192,6 +195,7 @@ private: unsigned int m_dmrNetwork2Local; std::string m_dmrNetwork2Password; std::string m_dmrNetwork2Options; + bool m_dmrNetwork2Location; bool m_dmrNetwork2Debug; std::vector m_dmrNetwork2TGRewrites; std::vector m_dmrNetwork2PCRewrites; diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 226630f..fa62f9a 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -968,6 +968,7 @@ bool CDMRGateway::createDMRNetwork1() unsigned int local = m_conf.getDMRNetwork1Local(); unsigned int id = m_conf.getDMRNetwork1Id(); std::string password = m_conf.getDMRNetwork1Password(); + bool location = m_conf.getDMRNetwork1Location(); bool debug = m_conf.getDMRNetwork1Debug(); m_dmr1Name = m_conf.getDMRNetwork1Name(); @@ -983,6 +984,7 @@ bool CDMRGateway::createDMRNetwork1() LogInfo(" Local: %u", local); else LogInfo(" Local: random"); + LogInfo(" Location Data: %s", location ? "yes" : "no"); m_dmrNetwork1 = new CDMRNetwork(address, port, local, id, password, m_dmr1Name, debug); @@ -998,6 +1000,9 @@ bool CDMRGateway::createDMRNetwork1() unsigned char config[400U]; unsigned int len = m_repeater->getConfig(config); + if (!location) + ::memcpy(config + 30U, "0.00000000.000000", 17U); + m_dmrNetwork1->setConfig(config, len); bool ret = m_dmrNetwork1->open(); @@ -1090,6 +1095,7 @@ bool CDMRGateway::createDMRNetwork2() unsigned int local = m_conf.getDMRNetwork2Local(); unsigned int id = m_conf.getDMRNetwork2Id(); std::string password = m_conf.getDMRNetwork2Password(); + bool location = m_conf.getDMRNetwork2Location(); bool debug = m_conf.getDMRNetwork2Debug(); m_dmr2Name = m_conf.getDMRNetwork2Name(); @@ -1105,6 +1111,7 @@ bool CDMRGateway::createDMRNetwork2() LogInfo(" Local: %u", local); else LogInfo(" Local: random"); + LogInfo(" Location Data: %s", location ? "yes" : "no"); m_dmrNetwork2 = new CDMRNetwork(address, port, local, id, password, m_dmr2Name, debug); @@ -1120,6 +1127,9 @@ bool CDMRGateway::createDMRNetwork2() unsigned char config[400U]; unsigned int len = m_repeater->getConfig(config); + if (!location) + ::memcpy(config + 30U, "0.00000000.000000", 17U); + m_dmrNetwork2->setConfig(config, len); bool ret = m_dmrNetwork2->open(); diff --git a/DMRGateway.ini b/DMRGateway.ini index a904d98..2f64676 100644 --- a/DMRGateway.ini +++ b/DMRGateway.ini @@ -70,6 +70,7 @@ SrcRewrite=2,4000,2,9,1001 PassAllPC=1 PassAllPC=2 Password=PASSWORD +Location=1 Debug=0 # DMR+ @@ -89,4 +90,5 @@ PCRewrite=2,84000,2,4000,1001 PassAllTG=1 PassAllTG=2 Password=PASSWORD +Location=0 Debug=0 From 52a85090ffc6d858f1ff93c0c8b6e23e560c99af Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Sat, 16 Sep 2017 14:33:31 +0100 Subject: [PATCH 3/3] Move to VS2017. --- DMRGateway.vcxproj | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/DMRGateway.vcxproj b/DMRGateway.vcxproj index 985bb7a..93c005f 100644 --- a/DMRGateway.vcxproj +++ b/DMRGateway.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -22,32 +22,32 @@ {862A3182-C71A-4B01-B58D-5F0725927A56} Win32Proj DMRGateway - 8.1 + 10.0.15063.0 Application true - v140 + v141 Unicode Application false - v140 + v141 true Unicode Application true - v140 + v141 Unicode Application false - v140 + v141 true Unicode