mirror of
https://github.com/g4klx/DMRGateway
synced 2025-12-20 21:25:37 +08:00
Add optional names for each network for use in the log,
This commit is contained in:
44
Conf.cpp
44
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;
|
||||
|
||||
8
Conf.h
8
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<unsigned int> 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<unsigned int> 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;
|
||||
|
||||
@@ -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<CTypeRewriteStruct>::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<unsigned int>::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<unsigned int>::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<CTypeRewriteStruct>::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<unsigned int>::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<unsigned int>::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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <cstdio>
|
||||
#include <cassert>
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -22,15 +22,17 @@
|
||||
#include "Rewrite.h"
|
||||
#include "DMRData.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <cstdio>
|
||||
#include <cassert>
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -22,15 +22,17 @@
|
||||
#include "Rewrite.h"
|
||||
#include "DMRData.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <cstdio>
|
||||
#include <cassert>
|
||||
|
||||
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;
|
||||
|
||||
@@ -24,15 +24,17 @@
|
||||
#include "DMRData.h"
|
||||
#include "DMRLC.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
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;
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <cstdio>
|
||||
#include <cassert>
|
||||
|
||||
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;
|
||||
|
||||
@@ -24,15 +24,17 @@
|
||||
#include "DMRData.h"
|
||||
#include "DMRLC.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
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;
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <cstdio>
|
||||
#include <cassert>
|
||||
|
||||
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;
|
||||
|
||||
@@ -24,15 +24,17 @@
|
||||
#include "DMRData.h"
|
||||
#include "DMRLC.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
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;
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <cstdio>
|
||||
#include <cassert>
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -24,15 +24,17 @@
|
||||
#include "DMRData.h"
|
||||
#include "DMRLC.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user