diff --git a/Conf.cpp b/Conf.cpp index e13ac15..0e90b62 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -55,6 +55,7 @@ m_logFileLevel(0U), m_logFilePath(), m_logFileRoot(), m_dmrNetwork1Enabled(false), +m_dmrNetwork1Name(), m_dmrNetwork1Id(0U), m_dmrNetwork1Address(), m_dmrNetwork1Port(0U), @@ -69,6 +70,7 @@ m_dmrNetwork1SrcRewrites(), m_dmrNetwork1PassAllPC(), m_dmrNetwork1PassAllTG(), m_dmrNetwork2Enabled(false), +m_dmrNetwork2Name(), m_dmrNetwork2Id(0U), m_dmrNetwork2Address(), m_dmrNetwork2Port(0U), @@ -83,6 +85,7 @@ m_dmrNetwork2SrcRewrites(), m_dmrNetwork2PassAllPC(), m_dmrNetwork2PassAllTG(), m_xlxNetwork1Enabled(false), +m_xlxNetwork1Name(), m_xlxNetwork1Id(0U), m_xlxNetwork1Address(), m_xlxNetwork1Port(0U), @@ -96,6 +99,7 @@ m_xlxNetwork1Relink(0U), m_xlxNetwork1Options(), m_xlxNetwork1Debug(false), m_xlxNetwork2Enabled(false), +m_xlxNetwork2Name(), m_xlxNetwork2Id(0U), m_xlxNetwork2Address(), m_xlxNetwork2Port(0U), @@ -195,6 +199,8 @@ bool CConf::read() } else if (section == SECTION_XLX_NETWORK_1) { if (::strcmp(key, "Enabled") == 0) m_xlxNetwork1Enabled = ::atoi(value) == 1; + else if (::strcmp(key, "Name") == 0) + m_xlxNetwork1Name = value; else if (::strcmp(key, "Id") == 0) m_xlxNetwork1Id = (unsigned int)::atoi(value); else if (::strcmp(key, "Address") == 0) @@ -222,6 +228,8 @@ bool CConf::read() } else if (section == SECTION_XLX_NETWORK_2) { if (::strcmp(key, "Enabled") == 0) m_xlxNetwork2Enabled = ::atoi(value) == 1; + else if (::strcmp(key, "Name") == 0) + m_xlxNetwork2Name = value; else if (::strcmp(key, "Id") == 0) m_xlxNetwork2Id = (unsigned int)::atoi(value); else if (::strcmp(key, "Address") == 0) @@ -249,6 +257,8 @@ bool CConf::read() } else if (section == SECTION_DMR_NETWORK_1) { if (::strcmp(key, "Enabled") == 0) m_dmrNetwork1Enabled = ::atoi(value) == 1; + else if (::strcmp(key, "Name") == 0) + m_dmrNetwork1Name = value; else if (::strcmp(key, "Id") == 0) m_dmrNetwork1Id = (unsigned int)::atoi(value); else if (::strcmp(key, "Address") == 0) @@ -331,6 +341,8 @@ bool CConf::read() } else if (section == SECTION_DMR_NETWORK_2) { if (::strcmp(key, "Enabled") == 0) m_dmrNetwork2Enabled = ::atoi(value) == 1; + else if (::strcmp(key, "Name") == 0) + m_dmrNetwork2Name = value; else if (::strcmp(key, "Id") == 0) m_dmrNetwork2Id = (unsigned int)::atoi(value); else if (::strcmp(key, "Address") == 0) @@ -498,6 +510,14 @@ bool CConf::getXLXNetwork1Enabled() const return m_xlxNetwork1Enabled; } +std::string CConf::getXLXNetwork1Name() const +{ + if (m_xlxNetwork1Name.empty()) + return "XLX-1"; + else + return m_xlxNetwork1Name; +} + unsigned int CConf::getXLXNetwork1Id() const { return m_xlxNetwork1Id; @@ -563,6 +583,14 @@ bool CConf::getXLXNetwork2Enabled() const return m_xlxNetwork2Enabled; } +std::string CConf::getXLXNetwork2Name() const +{ + if (m_xlxNetwork2Name.empty()) + return "XLX-2"; + else + return m_xlxNetwork2Name; +} + unsigned int CConf::getXLXNetwork2Id() const { return m_xlxNetwork2Id; @@ -628,6 +656,14 @@ bool CConf::getDMRNetwork1Enabled() const return m_dmrNetwork1Enabled; } +std::string CConf::getDMRNetwork1Name() const +{ + if (m_dmrNetwork1Name.empty()) + return "DMR-1"; + else + return m_dmrNetwork1Name; +} + unsigned int CConf::getDMRNetwork1Id() const { return m_dmrNetwork1Id; @@ -698,6 +734,14 @@ bool CConf::getDMRNetwork2Enabled() const return m_dmrNetwork2Enabled; } +std::string CConf::getDMRNetwork2Name() const +{ + if (m_dmrNetwork2Name.empty()) + return "DMR-2"; + else + return m_dmrNetwork2Name; +} + unsigned int CConf::getDMRNetwork2Id() const { return m_dmrNetwork2Id; diff --git a/Conf.h b/Conf.h index 375aaae..f596dbb 100644 --- a/Conf.h +++ b/Conf.h @@ -84,6 +84,7 @@ public: // The DMR Network 1 section bool getDMRNetwork1Enabled() const; + std::string getDMRNetwork1Name() const; unsigned int getDMRNetwork1Id() const; std::string getDMRNetwork1Address() const; unsigned int getDMRNetwork1Port() const; @@ -100,6 +101,7 @@ public: // The DMR Network 2 section bool getDMRNetwork2Enabled() const; + std::string getDMRNetwork2Name() const; unsigned int getDMRNetwork2Id() const; std::string getDMRNetwork2Address() const; unsigned int getDMRNetwork2Port() const; @@ -116,6 +118,7 @@ public: // The XLX Network 1 section bool getXLXNetwork1Enabled() const; + std::string getXLXNetwork1Name() const; unsigned int getXLXNetwork1Id() const; std::string getXLXNetwork1Address() const; unsigned int getXLXNetwork1Port() const; @@ -131,6 +134,7 @@ public: // The XLX Network 2 section bool getXLXNetwork2Enabled() const; + std::string getXLXNetwork2Name() const; unsigned int getXLXNetwork2Id() const; std::string getXLXNetwork2Address() const; unsigned int getXLXNetwork2Port() const; @@ -165,6 +169,7 @@ private: std::string m_logFileRoot; bool m_dmrNetwork1Enabled; + std::string m_dmrNetwork1Name; unsigned int m_dmrNetwork1Id; std::string m_dmrNetwork1Address; unsigned int m_dmrNetwork1Port; @@ -180,6 +185,7 @@ private: std::vector m_dmrNetwork1PassAllTG; bool m_dmrNetwork2Enabled; + std::string m_dmrNetwork2Name; unsigned int m_dmrNetwork2Id; std::string m_dmrNetwork2Address; unsigned int m_dmrNetwork2Port; @@ -195,6 +201,7 @@ private: std::vector m_dmrNetwork2PassAllTG; bool m_xlxNetwork1Enabled; + std::string m_xlxNetwork1Name; unsigned int m_xlxNetwork1Id; std::string m_xlxNetwork1Address; unsigned int m_xlxNetwork1Port; @@ -209,6 +216,7 @@ private: bool m_xlxNetwork1Debug; bool m_xlxNetwork2Enabled; + std::string m_xlxNetwork2Name; unsigned int m_xlxNetwork2Id; std::string m_xlxNetwork2Address; unsigned int m_xlxNetwork2Port; diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 9879075..e03328c 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -133,9 +133,13 @@ CDMRGateway::CDMRGateway(const std::string& confFile) : m_conf(confFile), m_repeater(NULL), m_dmrNetwork1(NULL), +m_dmr1Name(), m_dmrNetwork2(NULL), +m_dmr2Name(), m_xlxNetwork1(NULL), +m_xlx1Name(), m_xlxNetwork2(NULL), +m_xlx2Name(), m_xlx1Id(0U), m_xlx1Reflector(4000U), m_xlx1Slot(0U), @@ -390,7 +394,7 @@ int CDMRGateway::run() if (connected && !m_xlx1Connected) { if (m_xlx1Startup != 4000U) { writeXLXLink(m_xlx1Id, m_xlx1Startup, m_xlxNetwork1); - LogMessage("XLX-1, Linking to reflector %u at startup", m_xlx1Startup); + LogMessage("%s, Linking to reflector %u at startup", m_xlx1Name.c_str(), m_xlx1Startup); if (voice1 != NULL) voice1->linkedTo(m_xlx1Startup); } @@ -400,7 +404,7 @@ int CDMRGateway::run() m_xlx1Relink.stop(); } else if (!connected && m_xlx1Connected) { if (m_xlx1Reflector != 4000U) { - LogMessage("XLX-1, Unlinking due to loss of connection"); + LogMessage("%s, Unlinking due to loss of connection", m_xlx1Name.c_str()); if (voice1 != NULL) voice1->unlinked(); } @@ -415,7 +419,7 @@ int CDMRGateway::run() writeXLXLink(m_xlx1Id, 4000U, m_xlxNetwork1); writeXLXLink(m_xlx1Id, m_xlx1Startup, m_xlxNetwork1); - LogMessage("XLX-1, Re-linking to startup reflector %u due to RF inactivity timeout", m_xlx1Startup); + LogMessage("%s, Re-linking to startup reflector %u due to RF inactivity timeout", m_xlx1Name.c_str(), m_xlx1Startup); m_xlx1Reflector = m_xlx1Startup; if (voice1 != NULL) { @@ -432,7 +436,7 @@ int CDMRGateway::run() if (connected && !m_xlx2Connected) { if (m_xlx2Startup != 4000U) { writeXLXLink(m_xlx2Id, m_xlx2Startup, m_xlxNetwork2); - LogMessage("XLX-2, Linking to reflector %u at startup", m_xlx2Startup); + LogMessage("%s, Linking to reflector %u at startup", m_xlx2Name.c_str(), m_xlx2Startup); if (voice2 != NULL) voice2->linkedTo(m_xlx2Startup); } @@ -442,7 +446,7 @@ int CDMRGateway::run() m_xlx2Relink.stop(); } else if (!connected && m_xlx2Connected) { if (m_xlx2Reflector != 4000U) { - LogMessage("XLX-2, Unlinking due to loss of connection"); + LogMessage("%s, Unlinking due to loss of connection", m_xlx2Name.c_str()); if (voice2 != NULL) voice2->unlinked(); } @@ -457,7 +461,7 @@ int CDMRGateway::run() writeXLXLink(m_xlx2Id, 4000U, m_xlxNetwork2); writeXLXLink(m_xlx2Id, m_xlx2Startup, m_xlxNetwork2); - LogMessage("XLX-2, Re-linking to startup reflector %u due to RF inactivity timeout", m_xlx2Startup); + 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) { @@ -500,7 +504,7 @@ int CDMRGateway::run() if (dstId != m_xlx1Reflector) { if (dstId == 4000U) { - LogMessage("XLX-1, Unlinking"); + LogMessage("%s, Unlinking", m_xlx1Name.c_str()); } else if (dstId == 5000U) { if (m_xlx1Reflector != 4000U) voice1->linkedTo(m_xlx1Reflector); @@ -510,7 +514,7 @@ int CDMRGateway::run() if (m_xlx1Reflector != 4000U) writeXLXLink(srcId, 4000U, m_xlxNetwork1); - LogMessage("XLX-1, Linking to reflector %u", dstId); + LogMessage("%s, Linking to reflector %u", m_xlx1Name.c_str(), dstId); } if (dstId != 5000U ) { @@ -546,7 +550,7 @@ int CDMRGateway::run() if (dstId != m_xlx2Reflector) { if (dstId == 4000U) { - LogMessage("XLX-2, Unlinking"); + LogMessage("%s, Unlinking", m_xlx2Name.c_str()); } else if (dstId == 5000U) { if (m_xlx2Reflector != 4000U) voice2->linkedTo(m_xlx2Reflector); @@ -556,7 +560,7 @@ int CDMRGateway::run() if (m_xlx2Reflector != 4000U) writeXLXLink(srcId, 4000U, m_xlxNetwork2); - LogMessage("XLX-2, Linking to reflector %u", dstId); + LogMessage("%s, Linking to reflector %u", m_xlx2Name.c_str(), dstId); } if (dstId != 5000U ) { @@ -702,7 +706,7 @@ int CDMRGateway::run() unsigned int slotNo = data.getSlotNo(); unsigned int dstId = data.getDstId(); FLCO flco = data.getFLCO(); - LogWarning("XLX-1, Unexpected data from slot %u %s%u", slotNo, flco == FLCO_GROUP ? "TG" : "", dstId); + LogWarning("%s, Unexpected data from slot %u %s%u", m_xlx1Name.c_str(), slotNo, flco == FLCO_GROUP ? "TG" : "", dstId); } } } @@ -722,7 +726,7 @@ int CDMRGateway::run() unsigned int slotNo = data.getSlotNo(); unsigned int dstId = data.getDstId(); FLCO flco = data.getFLCO(); - LogWarning("XLX-2, Unexpected data from slot %u %s%u", slotNo, flco == FLCO_GROUP ? "TG" : "", dstId); + LogWarning("%s, Unexpected data from slot %u %s%u", m_xlx2Name.c_str(), slotNo, flco == FLCO_GROUP ? "TG" : "", dstId); } } } @@ -965,11 +969,13 @@ bool CDMRGateway::createDMRNetwork1() unsigned int id = m_conf.getDMRNetwork1Id(); std::string password = m_conf.getDMRNetwork1Password(); bool debug = m_conf.getDMRNetwork1Debug(); + m_dmr1Name = m_conf.getDMRNetwork1Name(); if (id == 0U) id = m_repeater->getId(); LogInfo("DMR Network 1 Parameters"); + LogInfo(" Name: %s", m_dmr1Name.c_str()); LogInfo(" Id: %u", id); LogInfo(" Address: %s", address.c_str()); LogInfo(" Port: %u", port); @@ -978,7 +984,7 @@ bool CDMRGateway::createDMRNetwork1() else LogInfo(" Local: random"); - m_dmrNetwork1 = new CDMRNetwork(address, port, local, id, password, "DMR-1", debug); + m_dmrNetwork1 = new CDMRNetwork(address, port, local, id, password, m_dmr1Name, debug); std::string options = m_conf.getDMRNetwork1Options(); if (options.empty()) @@ -1012,8 +1018,8 @@ bool CDMRGateway::createDMRNetwork1() else LogInfo(" Rewrite Net: %u:TG%u-TG%u -> %u:TG%u-TG%u", (*it).m_toSlot, (*it).m_toTG, (*it).m_toTG + (*it).m_range - 1U, (*it).m_fromSlot, (*it).m_fromTG, (*it).m_fromTG + (*it).m_range - 1U); - CRewriteTG* rfRewrite = new CRewriteTG("DMR-1", (*it).m_fromSlot, (*it).m_fromTG, (*it).m_toSlot, (*it).m_toTG, (*it).m_range); - CRewriteTG* netRewrite = new CRewriteTG("DMR-1", (*it).m_toSlot, (*it).m_toTG, (*it).m_fromSlot, (*it).m_fromTG, (*it).m_range); + CRewriteTG* rfRewrite = new CRewriteTG(m_dmr1Name, (*it).m_fromSlot, (*it).m_fromTG, (*it).m_toSlot, (*it).m_toTG, (*it).m_range); + CRewriteTG* netRewrite = new CRewriteTG(m_dmr1Name, (*it).m_toSlot, (*it).m_toTG, (*it).m_fromSlot, (*it).m_fromTG, (*it).m_range); m_dmr1RFRewrites.push_back(rfRewrite); m_dmr1NetRewrites.push_back(netRewrite); @@ -1026,7 +1032,7 @@ bool CDMRGateway::createDMRNetwork1() else LogInfo(" Rewrite RF: %u:%u-%u -> %u:%u-%u", (*it).m_fromSlot, (*it).m_fromId, (*it).m_fromId + (*it).m_range - 1U, (*it).m_toSlot, (*it).m_toId, (*it).m_toId + (*it).m_range - 1U); - CRewritePC* rewrite = new CRewritePC("DMR-1", (*it).m_fromSlot, (*it).m_fromId, (*it).m_toSlot, (*it).m_toId, (*it).m_range); + CRewritePC* rewrite = new CRewritePC(m_dmr1Name, (*it).m_fromSlot, (*it).m_fromId, (*it).m_toSlot, (*it).m_toId, (*it).m_range); m_dmr1RFRewrites.push_back(rewrite); } @@ -1035,7 +1041,7 @@ bool CDMRGateway::createDMRNetwork1() for (std::vector::const_iterator it = typeRewrites.begin(); it != typeRewrites.end(); ++it) { LogInfo(" Rewrite RF: %u:TG%u -> %u:%u", (*it).m_fromSlot, (*it).m_fromTG, (*it).m_toSlot, (*it).m_toId); - CRewriteType* rewrite = new CRewriteType("DMR-1", (*it).m_fromSlot, (*it).m_fromTG, (*it).m_toSlot, (*it).m_toId); + CRewriteType* rewrite = new CRewriteType(m_dmr1Name, (*it).m_fromSlot, (*it).m_fromTG, (*it).m_toSlot, (*it).m_toId); m_dmr1RFRewrites.push_back(rewrite); } @@ -1047,7 +1053,7 @@ bool CDMRGateway::createDMRNetwork1() else LogInfo(" Rewrite Net: %u:%u-%u -> %u:TG%u", (*it).m_fromSlot, (*it).m_fromId, (*it).m_fromId + (*it).m_range - 1U, (*it).m_toSlot, (*it).m_toTG); - CRewriteSrc* rewrite = new CRewriteSrc("DMR-1", (*it).m_fromSlot, (*it).m_fromId, (*it).m_toSlot, (*it).m_toTG, (*it).m_range); + CRewriteSrc* rewrite = new CRewriteSrc(m_dmr1Name, (*it).m_fromSlot, (*it).m_fromId, (*it).m_toSlot, (*it).m_toTG, (*it).m_range); m_dmr1NetRewrites.push_back(rewrite); } @@ -1056,8 +1062,8 @@ bool CDMRGateway::createDMRNetwork1() for (std::vector::const_iterator it = tgPassAll.begin(); it != tgPassAll.end(); ++it) { LogInfo(" Pass All TG: %u", *it); - CPassAllTG* rfPassAllTG = new CPassAllTG("DMR-1", *it); - CPassAllTG* netPassAllTG = new CPassAllTG("DMR-1", *it); + CPassAllTG* rfPassAllTG = new CPassAllTG(m_dmr1Name, *it); + CPassAllTG* netPassAllTG = new CPassAllTG(m_dmr1Name, *it); m_dmr1Passalls.push_back(rfPassAllTG); m_dmr1NetRewrites.push_back(netPassAllTG); @@ -1067,8 +1073,8 @@ bool CDMRGateway::createDMRNetwork1() for (std::vector::const_iterator it = pcPassAll.begin(); it != pcPassAll.end(); ++it) { LogInfo(" Pass All PC: %u", *it); - CPassAllPC* rfPassAllPC = new CPassAllPC("DMR-1", *it); - CPassAllPC* netPassAllPC = new CPassAllPC("DMR-1", *it); + CPassAllPC* rfPassAllPC = new CPassAllPC(m_dmr1Name, *it); + CPassAllPC* netPassAllPC = new CPassAllPC(m_dmr1Name, *it); m_dmr1Passalls.push_back(rfPassAllPC); m_dmr1NetRewrites.push_back(netPassAllPC); @@ -1085,11 +1091,13 @@ bool CDMRGateway::createDMRNetwork2() unsigned int id = m_conf.getDMRNetwork2Id(); std::string password = m_conf.getDMRNetwork2Password(); bool debug = m_conf.getDMRNetwork2Debug(); + m_dmr2Name = m_conf.getDMRNetwork2Name(); if (id == 0U) id = m_repeater->getId(); LogInfo("DMR Network 2 Parameters"); + LogInfo(" Name: %s", m_dmr2Name.c_str()); LogInfo(" Id: %u", id); LogInfo(" Address: %s", address.c_str()); LogInfo(" Port: %u", port); @@ -1098,7 +1106,7 @@ bool CDMRGateway::createDMRNetwork2() else LogInfo(" Local: random"); - m_dmrNetwork2 = new CDMRNetwork(address, port, local, id, password, "DMR-2", debug); + m_dmrNetwork2 = new CDMRNetwork(address, port, local, id, password, m_dmr2Name, debug); std::string options = m_conf.getDMRNetwork2Options(); if (options.empty()) @@ -1132,8 +1140,8 @@ bool CDMRGateway::createDMRNetwork2() else LogInfo(" Rewrite Net: %u:TG%u-TG%u -> %u:TG%u-TG%u", (*it).m_toSlot, (*it).m_toTG, (*it).m_toTG + (*it).m_range - 1U, (*it).m_fromSlot, (*it).m_fromTG, (*it).m_fromTG + (*it).m_range - 1U); - CRewriteTG* rfRewrite = new CRewriteTG("DMR-2", (*it).m_fromSlot, (*it).m_fromTG, (*it).m_toSlot, (*it).m_toTG, (*it).m_range); - CRewriteTG* netRewrite = new CRewriteTG("DMR-2", (*it).m_toSlot, (*it).m_toTG, (*it).m_fromSlot, (*it).m_fromTG, (*it).m_range); + CRewriteTG* rfRewrite = new CRewriteTG(m_dmr2Name, (*it).m_fromSlot, (*it).m_fromTG, (*it).m_toSlot, (*it).m_toTG, (*it).m_range); + CRewriteTG* netRewrite = new CRewriteTG(m_dmr2Name, (*it).m_toSlot, (*it).m_toTG, (*it).m_fromSlot, (*it).m_fromTG, (*it).m_range); m_dmr2RFRewrites.push_back(rfRewrite); m_dmr2NetRewrites.push_back(netRewrite); @@ -1146,7 +1154,7 @@ bool CDMRGateway::createDMRNetwork2() else LogInfo(" Rewrite RF: %u:%u-%u -> %u:%u-%u", (*it).m_fromSlot, (*it).m_fromId, (*it).m_fromId + (*it).m_range - 1U, (*it).m_toSlot, (*it).m_toId, (*it).m_toId + (*it).m_range - 1U); - CRewritePC* rewrite = new CRewritePC("DMR-2", (*it).m_fromSlot, (*it).m_fromId, (*it).m_toSlot, (*it).m_toId, (*it).m_range); + CRewritePC* rewrite = new CRewritePC(m_dmr2Name, (*it).m_fromSlot, (*it).m_fromId, (*it).m_toSlot, (*it).m_toId, (*it).m_range); m_dmr2RFRewrites.push_back(rewrite); } @@ -1155,7 +1163,7 @@ bool CDMRGateway::createDMRNetwork2() for (std::vector::const_iterator it = typeRewrites.begin(); it != typeRewrites.end(); ++it) { LogInfo(" Rewrite RF: %u:TG%u -> %u:%u", (*it).m_fromSlot, (*it).m_fromTG, (*it).m_toSlot, (*it).m_toId); - CRewriteType* rewrite = new CRewriteType("DMR-2", (*it).m_fromSlot, (*it).m_fromTG, (*it).m_toSlot, (*it).m_toId); + CRewriteType* rewrite = new CRewriteType(m_dmr2Name, (*it).m_fromSlot, (*it).m_fromTG, (*it).m_toSlot, (*it).m_toId); m_dmr2RFRewrites.push_back(rewrite); } @@ -1167,7 +1175,7 @@ bool CDMRGateway::createDMRNetwork2() else LogInfo(" Rewrite Net: %u:%u-%u -> %u:TG%u", (*it).m_fromSlot, (*it).m_fromId, (*it).m_fromId + (*it).m_range - 1U, (*it).m_toSlot, (*it).m_toTG); - CRewriteSrc* rewrite = new CRewriteSrc("DMR-2", (*it).m_fromSlot, (*it).m_fromId, (*it).m_toSlot, (*it).m_toTG, (*it).m_range); + CRewriteSrc* rewrite = new CRewriteSrc(m_dmr2Name, (*it).m_fromSlot, (*it).m_fromId, (*it).m_toSlot, (*it).m_toTG, (*it).m_range); m_dmr2NetRewrites.push_back(rewrite); } @@ -1176,8 +1184,8 @@ bool CDMRGateway::createDMRNetwork2() for (std::vector::const_iterator it = tgPassAll.begin(); it != tgPassAll.end(); ++it) { LogInfo(" Pass All TG: %u", *it); - CPassAllTG* rfPassAllTG = new CPassAllTG("DMR-2", *it); - CPassAllTG* netPassAllTG = new CPassAllTG("DMR-2", *it); + CPassAllTG* rfPassAllTG = new CPassAllTG(m_dmr2Name, *it); + CPassAllTG* netPassAllTG = new CPassAllTG(m_dmr2Name, *it); m_dmr2Passalls.push_back(rfPassAllTG); m_dmr2NetRewrites.push_back(netPassAllTG); @@ -1187,8 +1195,8 @@ bool CDMRGateway::createDMRNetwork2() for (std::vector::const_iterator it = pcPassAll.begin(); it != pcPassAll.end(); ++it) { LogInfo(" Pass All PC: %u", *it); - CPassAllPC* rfPassAllPC = new CPassAllPC("DMR-2", *it); - CPassAllPC* netPassAllPC = new CPassAllPC("DMR-2", *it); + CPassAllPC* rfPassAllPC = new CPassAllPC(m_dmr2Name, *it); + CPassAllPC* netPassAllPC = new CPassAllPC(m_dmr2Name, *it); m_dmr2Passalls.push_back(rfPassAllPC); m_dmr2NetRewrites.push_back(netPassAllPC); @@ -1203,6 +1211,7 @@ bool CDMRGateway::createXLXNetwork1() unsigned int port = m_conf.getXLXNetwork1Port(); unsigned int local = m_conf.getXLXNetwork1Local(); m_xlx1Id = m_conf.getXLXNetwork1Id(); + m_xlx1Name = m_conf.getXLXNetwork1Name(); std::string password = m_conf.getXLXNetwork1Password(); bool debug = m_conf.getXLXNetwork1Debug(); @@ -1210,6 +1219,7 @@ bool CDMRGateway::createXLXNetwork1() m_xlx1Id = m_repeater->getId(); LogInfo("XLX Network 1 Parameters"); + LogInfo(" Name: %s", m_xlx1Name.c_str()); LogInfo(" Id: %u", m_xlx1Id); LogInfo(" Address: %s", address.c_str()); LogInfo(" Port: %u", port); @@ -1218,7 +1228,7 @@ bool CDMRGateway::createXLXNetwork1() else LogInfo(" Local: random"); - m_xlxNetwork1 = new CDMRNetwork(address, port, local, m_xlx1Id, password, "XLX-1", debug); + m_xlxNetwork1 = new CDMRNetwork(address, port, local, m_xlx1Id, password, m_xlx1Name, debug); std::string options = m_conf.getXLXNetwork1Options(); if (!options.empty()) { @@ -1259,8 +1269,8 @@ bool CDMRGateway::createXLXNetwork1() LogInfo(" Relink: disabled"); } - m_rpt1Rewrite = new CRewriteTG("XLX-1", XLX_SLOT, XLX_TG, m_xlx1Slot, m_xlx1TG, 1U); - m_xlx1Rewrite = new CRewriteTG("XLX-1", m_xlx1Slot, m_xlx1TG, XLX_SLOT, XLX_TG, 1U); + m_rpt1Rewrite = new CRewriteTG(m_xlx1Name, XLX_SLOT, XLX_TG, m_xlx1Slot, m_xlx1TG, 1U); + m_xlx1Rewrite = new CRewriteTG(m_xlx1Name, m_xlx1Slot, m_xlx1TG, XLX_SLOT, XLX_TG, 1U); return true; } @@ -1271,6 +1281,7 @@ bool CDMRGateway::createXLXNetwork2() unsigned int port = m_conf.getXLXNetwork2Port(); unsigned int local = m_conf.getXLXNetwork2Local(); m_xlx2Id = m_conf.getXLXNetwork2Id(); + m_xlx2Name = m_conf.getXLXNetwork2Name(); std::string password = m_conf.getXLXNetwork2Password(); bool debug = m_conf.getXLXNetwork2Debug(); @@ -1278,6 +1289,7 @@ bool CDMRGateway::createXLXNetwork2() m_xlx2Id = m_repeater->getId(); LogInfo("XLX Network 2 Parameters"); + LogInfo(" Name: %s", m_xlx2Name.c_str()); LogInfo(" Id: %u", m_xlx2Id); LogInfo(" Address: %s", address.c_str()); LogInfo(" Port: %u", port); @@ -1286,7 +1298,7 @@ bool CDMRGateway::createXLXNetwork2() else LogInfo(" Local: random"); - m_xlxNetwork2 = new CDMRNetwork(address, port, local, m_xlx2Id, password, "XLX-2", debug); + m_xlxNetwork2 = new CDMRNetwork(address, port, local, m_xlx2Id, password, m_xlx2Name, debug); std::string options = m_conf.getXLXNetwork2Options(); if (!options.empty()) { @@ -1327,8 +1339,8 @@ bool CDMRGateway::createXLXNetwork2() LogInfo(" Relink: disabled"); } - m_rpt2Rewrite = new CRewriteTG("XLX-2", XLX_SLOT, XLX_TG, m_xlx2Slot, m_xlx2TG, 1U); - m_xlx2Rewrite = new CRewriteTG("XLX-2", m_xlx2Slot, m_xlx2TG, XLX_SLOT, XLX_TG, 1U); + m_rpt2Rewrite = new CRewriteTG(m_xlx2Name, XLX_SLOT, XLX_TG, m_xlx2Slot, m_xlx2TG, 1U); + m_xlx2Rewrite = new CRewriteTG(m_xlx2Name, m_xlx2Slot, m_xlx2TG, XLX_SLOT, XLX_TG, 1U); return true; } diff --git a/DMRGateway.h b/DMRGateway.h index edf64da..0220b72 100644 --- a/DMRGateway.h +++ b/DMRGateway.h @@ -41,9 +41,13 @@ private: CConf m_conf; IRepeaterProtocol* m_repeater; CDMRNetwork* m_dmrNetwork1; + std::string m_dmr1Name; CDMRNetwork* m_dmrNetwork2; + std::string m_dmr2Name; CDMRNetwork* m_xlxNetwork1; + std::string m_xlx1Name; CDMRNetwork* m_xlxNetwork2; + std::string m_xlx2Name; unsigned int m_xlx1Id; unsigned int m_xlx1Reflector; unsigned int m_xlx1Slot; diff --git a/DMRGateway.ini b/DMRGateway.ini index fba5941..a904d98 100644 --- a/DMRGateway.ini +++ b/DMRGateway.ini @@ -22,6 +22,7 @@ Directory=./Audio [XLX Network 1] Enabled=1 +Name=XLX950 Address=xlx950.epf.lu Port=62030 # Local=3351 @@ -36,6 +37,7 @@ Debug=0 [XLX Network 2] Enabled=0 +Name=XLX000 Address=44.131.4.1 Port=62030 # Local=3351 @@ -49,6 +51,7 @@ Debug=0 # BrandMeister [DMR Network 1] Enabled=0 +Name=BM Address=44.131.4.1 Port=62031 # Local=3352 @@ -72,6 +75,7 @@ Debug=0 # DMR+ [DMR Network 2] Enabled=0 +Name=DMR+ Address=44.131.4.1 Port=55555 # Local=3352 diff --git a/DMRNetwork.cpp b/DMRNetwork.cpp index 888b499..72c0940 100644 --- a/DMRNetwork.cpp +++ b/DMRNetwork.cpp @@ -31,7 +31,7 @@ const unsigned int BUFFER_LENGTH = 500U; const unsigned int HOMEBREW_DATA_PACKET_LENGTH = 55U; -CDMRNetwork::CDMRNetwork(const std::string& address, unsigned int port, unsigned int local, unsigned int id, const std::string& password, const char* name, bool debug) : +CDMRNetwork::CDMRNetwork(const std::string& address, unsigned int port, unsigned int local, unsigned int id, const std::string& password, const std::string& name, bool debug) : m_address(), m_port(port), m_id(NULL), @@ -92,7 +92,7 @@ void CDMRNetwork::setConfig(const unsigned char* data, unsigned int len) bool CDMRNetwork::open() { - LogMessage("%s, Opening DMR Network", m_name); + LogMessage("%s, Opening DMR Network", m_name.c_str()); m_status = WAITING_CONNECT; m_timeoutTimer.stop(); @@ -265,7 +265,7 @@ bool CDMRNetwork::isConnected() const void CDMRNetwork::close() { - LogMessage("%s, Closing DMR Network", m_name); + LogMessage("%s, Closing DMR Network", m_name.c_str()); if (m_status == RUNNING) { unsigned char buffer[9U]; @@ -305,7 +305,7 @@ void CDMRNetwork::clock(unsigned int ms) unsigned int port; int length = m_socket.read(m_buffer, BUFFER_LENGTH, address, port); if (length < 0) { - LogError("%s, Socket has failed, retrying connection to the master", m_name); + LogError("%s, Socket has failed, retrying connection to the master", m_name.c_str()); close(); open(); return; @@ -324,7 +324,7 @@ void CDMRNetwork::clock(unsigned int ms) m_rxData.addData(m_buffer, len); } else if (::memcmp(m_buffer, "MSTNAK", 6U) == 0) { if (m_status == RUNNING) { - LogWarning("%s, Login to the master has failed, retrying login ...", m_name); + LogWarning("%s, Login to the master has failed, retrying login ...", m_name.c_str()); m_status = WAITING_LOGIN; m_timeoutTimer.start(); m_retryTimer.start(); @@ -332,7 +332,7 @@ void CDMRNetwork::clock(unsigned int ms) /* Once the modem death spiral has been prevented in Modem.cpp the Network sometimes times out and reaches here. We want it to reconnect so... */ - LogError("%s, Login to the master has failed, retrying network ...", m_name); + LogError("%s, Login to the master has failed, retrying network ...", m_name.c_str()); close(); open(); return; @@ -340,7 +340,7 @@ void CDMRNetwork::clock(unsigned int ms) } else if (::memcmp(m_buffer, "RPTACK", 6U) == 0) { switch (m_status) { case WAITING_LOGIN: - LogDebug("%s, Sending authorisation", m_name); + LogDebug("%s, Sending authorisation", m_name.c_str()); ::memcpy(m_salt, m_buffer + 6U, sizeof(uint32_t)); writeAuthorisation(); m_status = WAITING_AUTHORISATION; @@ -348,7 +348,7 @@ void CDMRNetwork::clock(unsigned int ms) m_retryTimer.start(); break; case WAITING_AUTHORISATION: - LogDebug("%s, Sending configuration", m_name); + LogDebug("%s, Sending configuration", m_name.c_str()); writeConfig(); m_status = WAITING_CONFIG; m_timeoutTimer.start(); @@ -356,10 +356,10 @@ void CDMRNetwork::clock(unsigned int ms) break; case WAITING_CONFIG: if (m_options.empty()) { - LogMessage("%s, Logged into the master successfully", m_name); + LogMessage("%s, Logged into the master successfully", m_name.c_str()); m_status = RUNNING; } else { - LogDebug("%s, Sending options", m_name); + LogDebug("%s, Sending options", m_name.c_str()); writeOptions(); m_status = WAITING_OPTIONS; } @@ -367,7 +367,7 @@ void CDMRNetwork::clock(unsigned int ms) m_retryTimer.start(); break; case WAITING_OPTIONS: - LogMessage("%s, Logged into the master successfully", m_name); + LogMessage("%s, Logged into the master successfully", m_name.c_str()); m_status = RUNNING; m_timeoutTimer.start(); m_retryTimer.start(); @@ -376,7 +376,7 @@ void CDMRNetwork::clock(unsigned int ms) break; } } else if (::memcmp(m_buffer, "MSTCL", 5U) == 0) { - LogError("%s, Master is closing down", m_name); + LogError("%s, Master is closing down", m_name.c_str()); close(); open(); } else if (::memcmp(m_buffer, "MSTPONG", 7U) == 0) { @@ -384,7 +384,9 @@ void CDMRNetwork::clock(unsigned int ms) } else if (::memcmp(m_buffer, "RPTSBKN", 7U) == 0) { m_beacon = true; } else { - CUtils::dump("Unknown packet from the master", m_buffer, length); + char buffer[100U]; + ::sprintf(buffer, "%s, Unknown packet from the master", m_name.c_str()); + CUtils::dump(buffer, m_buffer, length); } } @@ -415,7 +417,7 @@ void CDMRNetwork::clock(unsigned int ms) m_timeoutTimer.clock(ms); if (m_timeoutTimer.isRunning() && m_timeoutTimer.hasExpired()) { - LogError("%s, Connection to the master has timed out, retrying connection", m_name); + LogError("%s, Connection to the master has timed out, retrying connection", m_name.c_str()); close(); open(); } @@ -503,7 +505,7 @@ bool CDMRNetwork::write(const unsigned char* data, unsigned int length) bool ret = m_socket.write(data, length, m_address, m_port); if (!ret) { - LogError("%s, Socket has failed when writing data to the master, retrying connection", m_name); + LogError("%s, Socket has failed when writing data to the master, retrying connection", m_name.c_str()); m_socket.close(); open(); return false; diff --git a/DMRNetwork.h b/DMRNetwork.h index 15bd039..2e40e76 100644 --- a/DMRNetwork.h +++ b/DMRNetwork.h @@ -30,7 +30,7 @@ class CDMRNetwork { public: - CDMRNetwork(const std::string& address, unsigned int port, unsigned int local, unsigned int id, const std::string& password, const char* name, bool debug); + CDMRNetwork(const std::string& address, unsigned int port, unsigned int local, unsigned int id, const std::string& password, const std::string& name, bool debug); ~CDMRNetwork(); void setOptions(const std::string& options); @@ -60,7 +60,7 @@ private: unsigned int m_port; uint8_t* m_id; std::string m_password; - const char* m_name; + std::string m_name; bool m_debug; CUDPSocket m_socket; diff --git a/PassAllPC.cpp b/PassAllPC.cpp index edf5f50..b1c35bf 100644 --- a/PassAllPC.cpp +++ b/PassAllPC.cpp @@ -24,7 +24,7 @@ #include #include -CPassAllPC::CPassAllPC(const char* name, unsigned int slot) : +CPassAllPC::CPassAllPC(const std::string& name, unsigned int slot) : m_name(name), m_slot(slot) { @@ -43,7 +43,7 @@ bool CPassAllPC::process(CDMRData& data, bool trace) bool ret = (flco == FLCO_USER_USER && slotNo == m_slot); if (trace) - LogDebug("Rule Trace,\tPassAllPC %s Slot=%u: %s", m_name, m_slot, ret ? "matched" : "not matched"); + LogDebug("Rule Trace,\tPassAllPC %s Slot=%u: %s", m_name.c_str(), m_slot, ret ? "matched" : "not matched"); return ret; } diff --git a/PassAllPC.h b/PassAllPC.h index 108d981..83d7fce 100644 --- a/PassAllPC.h +++ b/PassAllPC.h @@ -22,15 +22,17 @@ #include "Rewrite.h" #include "DMRData.h" +#include + class CPassAllPC : public IRewrite { public: - CPassAllPC(const char* name, unsigned int slot); + CPassAllPC(const std::string& name, unsigned int slot); virtual ~CPassAllPC(); virtual bool process(CDMRData& data, bool trace); private: - const char* m_name; + std::string m_name; unsigned int m_slot; }; diff --git a/PassAllTG.cpp b/PassAllTG.cpp index 90f7ce5..a46c342 100644 --- a/PassAllTG.cpp +++ b/PassAllTG.cpp @@ -24,7 +24,7 @@ #include #include -CPassAllTG::CPassAllTG(const char* name, unsigned int slot) : +CPassAllTG::CPassAllTG(const std::string& name, unsigned int slot) : m_name(name), m_slot(slot) { @@ -43,7 +43,7 @@ bool CPassAllTG::process(CDMRData& data, bool trace) bool ret = (flco == FLCO_GROUP && slotNo == m_slot); if (trace) - LogDebug("Rule Trace,\tPassAllTG %s Slot=%u: %s", m_name, m_slot, ret ? "matched" : "not matched"); + LogDebug("Rule Trace,\tPassAllTG %s Slot=%u: %s", m_name.c_str(), m_slot, ret ? "matched" : "not matched"); return ret; } diff --git a/PassAllTG.h b/PassAllTG.h index 032eec4..9ddb366 100644 --- a/PassAllTG.h +++ b/PassAllTG.h @@ -22,15 +22,17 @@ #include "Rewrite.h" #include "DMRData.h" +#include + class CPassAllTG : public IRewrite { public: - CPassAllTG(const char* name, unsigned int slot); + CPassAllTG(const std::string& name, unsigned int slot); virtual ~CPassAllTG(); virtual bool process(CDMRData& data, bool trace); private: - const char* m_name; + std::string m_name; unsigned int m_slot; }; diff --git a/RewritePC.cpp b/RewritePC.cpp index 55c1367..9a87037 100644 --- a/RewritePC.cpp +++ b/RewritePC.cpp @@ -25,7 +25,7 @@ #include #include -CRewritePC::CRewritePC(const char* name, unsigned int fromSlot, unsigned int fromId, unsigned int toSlot, unsigned int toId, unsigned int range) : +CRewritePC::CRewritePC(const std::string& name, unsigned int fromSlot, unsigned int fromId, unsigned int toSlot, unsigned int toId, unsigned int range) : m_name(name), m_fromSlot(fromSlot), m_fromIdStart(fromId), @@ -52,7 +52,7 @@ bool CRewritePC::process(CDMRData& data, bool trace) if (flco != FLCO_USER_USER || slotNo != m_fromSlot || dstId < m_fromIdStart || dstId > m_fromIdEnd) { if (trace) - LogDebug("Rule Trace,\tRewritePC from %s Slot=%u Dst=%u-%u: not matched", m_name, m_fromSlot, m_fromIdStart, m_fromIdEnd); + LogDebug("Rule Trace,\tRewritePC from %s Slot=%u Dst=%u-%u: not matched", m_name.c_str(), m_fromSlot, m_fromIdStart, m_fromIdEnd); return false; } @@ -84,8 +84,8 @@ bool CRewritePC::process(CDMRData& data, bool trace) } if (trace) { - LogDebug("Rule Trace,\tRewritePC from %s Slot=%u Dst=%u-%u: not matched", m_name, m_fromSlot, m_fromIdStart, m_fromIdEnd); - LogDebug("Rule Trace,\tRewritePC to %s Slot=%u Dst=%u-%u", m_name, m_toSlot, m_toIdStart, m_toIdEnd); + LogDebug("Rule Trace,\tRewritePC from %s Slot=%u Dst=%u-%u: not matched", m_name.c_str(), m_fromSlot, m_fromIdStart, m_fromIdEnd); + LogDebug("Rule Trace,\tRewritePC to %s Slot=%u Dst=%u-%u", m_name.c_str(), m_toSlot, m_toIdStart, m_toIdEnd); } return true; diff --git a/RewritePC.h b/RewritePC.h index 9486a90..ff3a60c 100644 --- a/RewritePC.h +++ b/RewritePC.h @@ -24,15 +24,17 @@ #include "DMRData.h" #include "DMRLC.h" +#include + class CRewritePC : public IRewrite { public: - CRewritePC(const char* name, unsigned int fromSlot, unsigned int fromId, unsigned int toSlot, unsigned int toId, unsigned int range); + CRewritePC(const std::string& name, unsigned int fromSlot, unsigned int fromId, unsigned int toSlot, unsigned int toId, unsigned int range); virtual ~CRewritePC(); virtual bool process(CDMRData& data, bool trace); private: - const char* m_name; + std::string m_name; unsigned int m_fromSlot; unsigned int m_fromIdStart; unsigned int m_fromIdEnd; diff --git a/RewriteSrc.cpp b/RewriteSrc.cpp index 1b3e890..7ba69ee 100644 --- a/RewriteSrc.cpp +++ b/RewriteSrc.cpp @@ -25,7 +25,7 @@ #include #include -CRewriteSrc::CRewriteSrc(const char* name, unsigned int fromSlot, unsigned int fromId, unsigned int toSlot, unsigned int toTG, unsigned int range) : +CRewriteSrc::CRewriteSrc(const std::string& name, unsigned int fromSlot, unsigned int fromId, unsigned int toSlot, unsigned int toTG, unsigned int range) : m_name(name), m_fromSlot(fromSlot), m_fromIdStart(fromId), @@ -53,7 +53,7 @@ bool CRewriteSrc::process(CDMRData& data, bool trace) if (flco != FLCO_USER_USER || slotNo != m_fromSlot || srcId < m_fromIdStart || srcId > m_fromIdEnd) { if (trace) - LogDebug("Rule Trace,\tRewriteSrc from %s Slot=%u Src=%u-%u: not matched", m_name, m_fromSlot, m_fromIdStart, m_fromIdEnd); + LogDebug("Rule Trace,\tRewriteSrc from %s Slot=%u Src=%u-%u: not matched", m_name.c_str(), m_fromSlot, m_fromIdStart, m_fromIdEnd); return false; } @@ -82,8 +82,8 @@ bool CRewriteSrc::process(CDMRData& data, bool trace) } if (trace) { - LogDebug("Rule Trace,\tRewriteSrc from %s Slot=%u Src=%u-%u: matched", m_name, m_fromSlot, m_fromIdStart, m_fromIdEnd); - LogDebug("Rule Trace,\tRewriteSrc to %s Slot=%u Dst=TG%u", m_name, m_toSlot, m_toTG); + LogDebug("Rule Trace,\tRewriteSrc from %s Slot=%u Src=%u-%u: matched", m_name.c_str(), m_fromSlot, m_fromIdStart, m_fromIdEnd); + LogDebug("Rule Trace,\tRewriteSrc to %s Slot=%u Dst=TG%u", m_name.c_str(), m_toSlot, m_toTG); } return true; diff --git a/RewriteSrc.h b/RewriteSrc.h index ff323bb..b214f25 100644 --- a/RewriteSrc.h +++ b/RewriteSrc.h @@ -24,15 +24,17 @@ #include "DMRData.h" #include "DMRLC.h" +#include + class CRewriteSrc : public IRewrite { public: - CRewriteSrc(const char* name, unsigned int fromSlot, unsigned int fromId, unsigned int toSlot, unsigned int toTG, unsigned int range); + CRewriteSrc(const std::string& name, unsigned int fromSlot, unsigned int fromId, unsigned int toSlot, unsigned int toTG, unsigned int range); virtual ~CRewriteSrc(); virtual bool process(CDMRData& data, bool trace); private: - const char* m_name; + std::string m_name; unsigned int m_fromSlot; unsigned int m_fromIdStart; unsigned int m_fromIdEnd; diff --git a/RewriteTG.cpp b/RewriteTG.cpp index 4d0a0f0..fb9643c 100644 --- a/RewriteTG.cpp +++ b/RewriteTG.cpp @@ -25,7 +25,7 @@ #include #include -CRewriteTG::CRewriteTG(const char* name, unsigned int fromSlot, unsigned int fromTG, unsigned int toSlot, unsigned int toTG, unsigned int range) : +CRewriteTG::CRewriteTG(const std::string& name, unsigned int fromSlot, unsigned int fromTG, unsigned int toSlot, unsigned int toTG, unsigned int range) : m_name(name), m_fromSlot(fromSlot), m_fromTGStart(fromTG), @@ -53,9 +53,9 @@ bool CRewriteTG::process(CDMRData& data, bool trace) if (flco != FLCO_GROUP || slotNo != m_fromSlot || dstId < m_fromTGStart || dstId > m_fromTGEnd) { if (trace) { if (m_fromTGStart == m_fromTGEnd) - LogDebug("Rule Trace,\tRewriteTG from %s Slot=%u Dst=TG%u: not matched", m_name, m_fromSlot, m_fromTGStart); + LogDebug("Rule Trace,\tRewriteTG from %s Slot=%u Dst=TG%u: not matched", m_name.c_str(), m_fromSlot, m_fromTGStart); else - LogDebug("Rule Trace,\tRewriteTG from %s Slot=%u Dst=TG%u-TG%u: not matched", m_name, m_fromSlot, m_fromTGStart, m_fromTGEnd); + LogDebug("Rule Trace,\tRewriteTG from %s Slot=%u Dst=TG%u-TG%u: not matched", m_name.c_str(), m_fromSlot, m_fromTGStart, m_fromTGEnd); } return false; } @@ -89,13 +89,13 @@ bool CRewriteTG::process(CDMRData& data, bool trace) if (trace) { if (m_fromTGStart == m_fromTGEnd) - LogDebug("Rule Trace,\tRewriteTG from %s Slot=%u Dst=TG%u: matched", m_name, m_fromSlot, m_fromTGStart); + LogDebug("Rule Trace,\tRewriteTG from %s Slot=%u Dst=TG%u: matched", m_name.c_str(), m_fromSlot, m_fromTGStart); else - LogDebug("Rule Trace,\tRewriteTG from %s Slot=%u Dst=TG%u-TG%u: matched", m_name, m_fromSlot, m_fromTGStart, m_fromTGEnd); + LogDebug("Rule Trace,\tRewriteTG from %s Slot=%u Dst=TG%u-TG%u: matched", m_name.c_str(), m_fromSlot, m_fromTGStart, m_fromTGEnd); if (m_toTGStart == m_toTGEnd) - LogDebug("Rule Trace,\tRewriteTG to %s Slot=%u Dst=TG%u", m_name, m_toSlot, m_toTGStart); + LogDebug("Rule Trace,\tRewriteTG to %s Slot=%u Dst=TG%u", m_name.c_str(), m_toSlot, m_toTGStart); else - LogDebug("Rule Trace,\tRewriteTG to %s Slot=%u Dst=TG%u-TG%u", m_name, m_toSlot, m_toTGStart, m_toTGEnd); + LogDebug("Rule Trace,\tRewriteTG to %s Slot=%u Dst=TG%u-TG%u", m_name.c_str(), m_toSlot, m_toTGStart, m_toTGEnd); } return true; diff --git a/RewriteTG.h b/RewriteTG.h index 26d2f7d..a88de14 100644 --- a/RewriteTG.h +++ b/RewriteTG.h @@ -24,15 +24,17 @@ #include "DMRData.h" #include "DMRLC.h" +#include + class CRewriteTG : public IRewrite { public: - CRewriteTG(const char*name, unsigned int fromSlot, unsigned int fromTG, unsigned int toSlot, unsigned int toTG, unsigned int range); + CRewriteTG(const std::string& name, unsigned int fromSlot, unsigned int fromTG, unsigned int toSlot, unsigned int toTG, unsigned int range); virtual ~CRewriteTG(); virtual bool process(CDMRData& data, bool trace); private: - const char* m_name; + std::string m_name; unsigned int m_fromSlot; unsigned int m_fromTGStart; unsigned int m_fromTGEnd; diff --git a/RewriteType.cpp b/RewriteType.cpp index a4c0b39..26deaa5 100644 --- a/RewriteType.cpp +++ b/RewriteType.cpp @@ -25,7 +25,7 @@ #include #include -CRewriteType::CRewriteType(const char* name, unsigned int fromSlot, unsigned int fromTG, unsigned int toSlot, unsigned int toId) : +CRewriteType::CRewriteType(const std::string& name, unsigned int fromSlot, unsigned int fromTG, unsigned int toSlot, unsigned int toId) : m_name(name), m_fromSlot(fromSlot), m_fromTG(fromTG), @@ -50,7 +50,7 @@ bool CRewriteType::process(CDMRData& data, bool trace) if (flco != FLCO_GROUP || slotNo != m_fromSlot || dstId != m_fromTG) { if (trace) - LogDebug("Rule Trace,\tRewriteType %s Slot=%u Dst=TG%u: not matched", m_name, m_fromSlot, m_fromTG); + LogDebug("Rule Trace,\tRewriteType %s Slot=%u Dst=TG%u: not matched", m_name.c_str(), m_fromSlot, m_fromTG); return false; } @@ -79,7 +79,7 @@ bool CRewriteType::process(CDMRData& data, bool trace) } if (trace) - LogDebug("Rule Trace,\tRewriteType %s Slot=%u Dst=TG%u: matched", m_name, m_fromSlot, m_fromTG); + LogDebug("Rule Trace,\tRewriteType %s Slot=%u Dst=TG%u: matched", m_name.c_str(), m_fromSlot, m_fromTG); return true; } diff --git a/RewriteType.h b/RewriteType.h index 30e4d53..fb141e9 100644 --- a/RewriteType.h +++ b/RewriteType.h @@ -24,15 +24,17 @@ #include "DMRData.h" #include "DMRLC.h" +#include + class CRewriteType : public IRewrite { public: - CRewriteType(const char* name, unsigned int fromSlot, unsigned int fromTG, unsigned int toSlot, unsigned int toId); + CRewriteType(const std::string& name, unsigned int fromSlot, unsigned int fromTG, unsigned int toSlot, unsigned int toId); virtual ~CRewriteType(); virtual bool process(CDMRData& data, bool trace); private: - const char* m_name; + std::string m_name; unsigned int m_fromSlot; unsigned int m_fromTG; unsigned int m_toSlot;