mirror of
https://github.com/g4klx/DMRGateway
synced 2025-12-21 05:25:40 +08:00
Added the IdRewrite=RFId,NetworkId rule to the network configuration section for bidirectional ID translation
This commit is contained in:
60
Conf.cpp
60
Conf.cpp
@@ -81,6 +81,7 @@ m_dmrNetwork1TGRewrites(),
|
|||||||
m_dmrNetwork1PCRewrites(),
|
m_dmrNetwork1PCRewrites(),
|
||||||
m_dmrNetwork1TypeRewrites(),
|
m_dmrNetwork1TypeRewrites(),
|
||||||
m_dmrNetwork1SrcRewrites(),
|
m_dmrNetwork1SrcRewrites(),
|
||||||
|
m_dmrNetwork1IdRewrites(),
|
||||||
m_dmrNetwork1PassAllPC(),
|
m_dmrNetwork1PassAllPC(),
|
||||||
m_dmrNetwork1PassAllTG(),
|
m_dmrNetwork1PassAllTG(),
|
||||||
m_dmrNetwork2Enabled(false),
|
m_dmrNetwork2Enabled(false),
|
||||||
@@ -97,6 +98,7 @@ m_dmrNetwork2TGRewrites(),
|
|||||||
m_dmrNetwork2PCRewrites(),
|
m_dmrNetwork2PCRewrites(),
|
||||||
m_dmrNetwork2TypeRewrites(),
|
m_dmrNetwork2TypeRewrites(),
|
||||||
m_dmrNetwork2SrcRewrites(),
|
m_dmrNetwork2SrcRewrites(),
|
||||||
|
m_dmrNetwork2IdRewrites(),
|
||||||
m_dmrNetwork2PassAllPC(),
|
m_dmrNetwork2PassAllPC(),
|
||||||
m_dmrNetwork2PassAllTG(),
|
m_dmrNetwork2PassAllTG(),
|
||||||
m_dmrNetwork3Enabled(false),
|
m_dmrNetwork3Enabled(false),
|
||||||
@@ -113,6 +115,7 @@ m_dmrNetwork3TGRewrites(),
|
|||||||
m_dmrNetwork3PCRewrites(),
|
m_dmrNetwork3PCRewrites(),
|
||||||
m_dmrNetwork3TypeRewrites(),
|
m_dmrNetwork3TypeRewrites(),
|
||||||
m_dmrNetwork3SrcRewrites(),
|
m_dmrNetwork3SrcRewrites(),
|
||||||
|
m_dmrNetwork3IdRewrites(),
|
||||||
m_dmrNetwork3PassAllPC(),
|
m_dmrNetwork3PassAllPC(),
|
||||||
m_dmrNetwork3PassAllTG(),
|
m_dmrNetwork3PassAllTG(),
|
||||||
m_dmrNetwork4Enabled(false),
|
m_dmrNetwork4Enabled(false),
|
||||||
@@ -129,6 +132,7 @@ m_dmrNetwork4TGRewrites(),
|
|||||||
m_dmrNetwork4PCRewrites(),
|
m_dmrNetwork4PCRewrites(),
|
||||||
m_dmrNetwork4TypeRewrites(),
|
m_dmrNetwork4TypeRewrites(),
|
||||||
m_dmrNetwork4SrcRewrites(),
|
m_dmrNetwork4SrcRewrites(),
|
||||||
|
m_dmrNetwork4IdRewrites(),
|
||||||
m_dmrNetwork4PassAllPC(),
|
m_dmrNetwork4PassAllPC(),
|
||||||
m_dmrNetwork4PassAllTG(),
|
m_dmrNetwork4PassAllTG(),
|
||||||
m_xlxNetworkEnabled(false),
|
m_xlxNetworkEnabled(false),
|
||||||
@@ -376,6 +380,15 @@ bool CConf::read()
|
|||||||
rewrite.m_range = ::atoi(p5);
|
rewrite.m_range = ::atoi(p5);
|
||||||
m_dmrNetwork1SrcRewrites.push_back(rewrite);
|
m_dmrNetwork1SrcRewrites.push_back(rewrite);
|
||||||
}
|
}
|
||||||
|
} else if (::strncmp(key, "IdRewrite", 9U) == 0) {
|
||||||
|
char* rfId = ::strtok(value, ", ");
|
||||||
|
char* netId = ::strtok(NULL, " \r\n");
|
||||||
|
if (rfId != NULL && netId != NULL) {
|
||||||
|
CIdRewriteStruct rewrite;
|
||||||
|
rewrite.m_rfId = ::atoi(rfId);
|
||||||
|
rewrite.m_netId = ::atoi(netId);
|
||||||
|
m_dmrNetwork1IdRewrites.push_back(rewrite);
|
||||||
|
}
|
||||||
} else if (::strncmp(key, "PassAllPC", 9U) == 0) {
|
} else if (::strncmp(key, "PassAllPC", 9U) == 0) {
|
||||||
unsigned int slotNo = (unsigned int)::atoi(value);
|
unsigned int slotNo = (unsigned int)::atoi(value);
|
||||||
m_dmrNetwork1PassAllPC.push_back(slotNo);
|
m_dmrNetwork1PassAllPC.push_back(slotNo);
|
||||||
@@ -462,6 +475,15 @@ bool CConf::read()
|
|||||||
rewrite.m_range = ::atoi(p5);
|
rewrite.m_range = ::atoi(p5);
|
||||||
m_dmrNetwork2SrcRewrites.push_back(rewrite);
|
m_dmrNetwork2SrcRewrites.push_back(rewrite);
|
||||||
}
|
}
|
||||||
|
} else if (::strncmp(key, "IdRewrite", 9U) == 0) {
|
||||||
|
char* rfId = ::strtok(value, ", ");
|
||||||
|
char* netId = ::strtok(NULL, " \r\n");
|
||||||
|
if (rfId != NULL && netId != NULL) {
|
||||||
|
CIdRewriteStruct rewrite;
|
||||||
|
rewrite.m_rfId = ::atoi(rfId);
|
||||||
|
rewrite.m_netId = ::atoi(netId);
|
||||||
|
m_dmrNetwork2IdRewrites.push_back(rewrite);
|
||||||
|
}
|
||||||
} else if (::strncmp(key, "PassAllPC", 9U) == 0) {
|
} else if (::strncmp(key, "PassAllPC", 9U) == 0) {
|
||||||
unsigned int slotNo = (unsigned int)::atoi(value);
|
unsigned int slotNo = (unsigned int)::atoi(value);
|
||||||
m_dmrNetwork2PassAllPC.push_back(slotNo);
|
m_dmrNetwork2PassAllPC.push_back(slotNo);
|
||||||
@@ -548,6 +570,15 @@ bool CConf::read()
|
|||||||
rewrite.m_range = ::atoi(p5);
|
rewrite.m_range = ::atoi(p5);
|
||||||
m_dmrNetwork3SrcRewrites.push_back(rewrite);
|
m_dmrNetwork3SrcRewrites.push_back(rewrite);
|
||||||
}
|
}
|
||||||
|
} else if (::strncmp(key, "IdRewrite", 9U) == 0) {
|
||||||
|
char* rfId = ::strtok(value, ", ");
|
||||||
|
char* netId = ::strtok(NULL, " \r\n");
|
||||||
|
if (rfId != NULL && netId != NULL) {
|
||||||
|
CIdRewriteStruct rewrite;
|
||||||
|
rewrite.m_rfId = ::atoi(rfId);
|
||||||
|
rewrite.m_netId = ::atoi(netId);
|
||||||
|
m_dmrNetwork3IdRewrites.push_back(rewrite);
|
||||||
|
}
|
||||||
} else if (::strncmp(key, "PassAllPC", 9U) == 0) {
|
} else if (::strncmp(key, "PassAllPC", 9U) == 0) {
|
||||||
unsigned int slotNo = (unsigned int)::atoi(value);
|
unsigned int slotNo = (unsigned int)::atoi(value);
|
||||||
m_dmrNetwork3PassAllPC.push_back(slotNo);
|
m_dmrNetwork3PassAllPC.push_back(slotNo);
|
||||||
@@ -634,6 +665,15 @@ bool CConf::read()
|
|||||||
rewrite.m_range = ::atoi(p5);
|
rewrite.m_range = ::atoi(p5);
|
||||||
m_dmrNetwork4SrcRewrites.push_back(rewrite);
|
m_dmrNetwork4SrcRewrites.push_back(rewrite);
|
||||||
}
|
}
|
||||||
|
} else if (::strncmp(key, "IdRewrite", 9U) == 0) {
|
||||||
|
char* rfId = ::strtok(value, ", ");
|
||||||
|
char* netId = ::strtok(NULL, " \r\n");
|
||||||
|
if (rfId != NULL && netId != NULL) {
|
||||||
|
CIdRewriteStruct rewrite;
|
||||||
|
rewrite.m_rfId = ::atoi(rfId);
|
||||||
|
rewrite.m_netId = ::atoi(netId);
|
||||||
|
m_dmrNetwork4IdRewrites.push_back(rewrite);
|
||||||
|
}
|
||||||
} else if (::strncmp(key, "PassAllPC", 9U) == 0) {
|
} else if (::strncmp(key, "PassAllPC", 9U) == 0) {
|
||||||
unsigned int slotNo = (unsigned int)::atoi(value);
|
unsigned int slotNo = (unsigned int)::atoi(value);
|
||||||
m_dmrNetwork4PassAllPC.push_back(slotNo);
|
m_dmrNetwork4PassAllPC.push_back(slotNo);
|
||||||
@@ -925,6 +965,11 @@ std::vector<CSrcRewriteStruct> CConf::getDMRNetwork1SrcRewrites() const
|
|||||||
return m_dmrNetwork1SrcRewrites;
|
return m_dmrNetwork1SrcRewrites;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<CIdRewriteStruct> CConf::getDMRNetwork1IdRewrites() const
|
||||||
|
{
|
||||||
|
return m_dmrNetwork1IdRewrites;
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<unsigned int> CConf::getDMRNetwork1PassAllPC() const
|
std::vector<unsigned int> CConf::getDMRNetwork1PassAllPC() const
|
||||||
{
|
{
|
||||||
return m_dmrNetwork1PassAllPC;
|
return m_dmrNetwork1PassAllPC;
|
||||||
@@ -1008,6 +1053,11 @@ std::vector<CSrcRewriteStruct> CConf::getDMRNetwork2SrcRewrites() const
|
|||||||
return m_dmrNetwork2SrcRewrites;
|
return m_dmrNetwork2SrcRewrites;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<CIdRewriteStruct> CConf::getDMRNetwork2IdRewrites() const
|
||||||
|
{
|
||||||
|
return m_dmrNetwork2IdRewrites;
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<unsigned int> CConf::getDMRNetwork2PassAllPC() const
|
std::vector<unsigned int> CConf::getDMRNetwork2PassAllPC() const
|
||||||
{
|
{
|
||||||
return m_dmrNetwork2PassAllPC;
|
return m_dmrNetwork2PassAllPC;
|
||||||
@@ -1091,6 +1141,11 @@ std::vector<CSrcRewriteStruct> CConf::getDMRNetwork3SrcRewrites() const
|
|||||||
return m_dmrNetwork3SrcRewrites;
|
return m_dmrNetwork3SrcRewrites;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<CIdRewriteStruct> CConf::getDMRNetwork3IdRewrites() const
|
||||||
|
{
|
||||||
|
return m_dmrNetwork3IdRewrites;
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<unsigned int> CConf::getDMRNetwork3PassAllPC() const
|
std::vector<unsigned int> CConf::getDMRNetwork3PassAllPC() const
|
||||||
{
|
{
|
||||||
return m_dmrNetwork3PassAllPC;
|
return m_dmrNetwork3PassAllPC;
|
||||||
@@ -1174,6 +1229,11 @@ std::vector<CSrcRewriteStruct> CConf::getDMRNetwork4SrcRewrites() const
|
|||||||
return m_dmrNetwork4SrcRewrites;
|
return m_dmrNetwork4SrcRewrites;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<CIdRewriteStruct> CConf::getDMRNetwork4IdRewrites() const
|
||||||
|
{
|
||||||
|
return m_dmrNetwork4IdRewrites;
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<unsigned int> CConf::getDMRNetwork4PassAllPC() const
|
std::vector<unsigned int> CConf::getDMRNetwork4PassAllPC() const
|
||||||
{
|
{
|
||||||
return m_dmrNetwork4PassAllPC;
|
return m_dmrNetwork4PassAllPC;
|
||||||
|
|||||||
13
Conf.h
13
Conf.h
@@ -53,6 +53,11 @@ struct CSrcRewriteStruct {
|
|||||||
unsigned int m_range;
|
unsigned int m_range;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct CIdRewriteStruct {
|
||||||
|
unsigned int m_rfId;
|
||||||
|
unsigned int m_netId;
|
||||||
|
};
|
||||||
|
|
||||||
class CConf
|
class CConf
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -110,6 +115,7 @@ public:
|
|||||||
std::vector<CPCRewriteStruct> getDMRNetwork1PCRewrites() const;
|
std::vector<CPCRewriteStruct> getDMRNetwork1PCRewrites() const;
|
||||||
std::vector<CTypeRewriteStruct> getDMRNetwork1TypeRewrites() const;
|
std::vector<CTypeRewriteStruct> getDMRNetwork1TypeRewrites() const;
|
||||||
std::vector<CSrcRewriteStruct> getDMRNetwork1SrcRewrites() const;
|
std::vector<CSrcRewriteStruct> getDMRNetwork1SrcRewrites() const;
|
||||||
|
std::vector<CIdRewriteStruct> getDMRNetwork1IdRewrites() const;
|
||||||
std::vector<unsigned int> getDMRNetwork1PassAllPC() const;
|
std::vector<unsigned int> getDMRNetwork1PassAllPC() const;
|
||||||
std::vector<unsigned int> getDMRNetwork1PassAllTG() const;
|
std::vector<unsigned int> getDMRNetwork1PassAllTG() const;
|
||||||
|
|
||||||
@@ -128,6 +134,7 @@ public:
|
|||||||
std::vector<CPCRewriteStruct> getDMRNetwork2PCRewrites() const;
|
std::vector<CPCRewriteStruct> getDMRNetwork2PCRewrites() const;
|
||||||
std::vector<CTypeRewriteStruct> getDMRNetwork2TypeRewrites() const;
|
std::vector<CTypeRewriteStruct> getDMRNetwork2TypeRewrites() const;
|
||||||
std::vector<CSrcRewriteStruct> getDMRNetwork2SrcRewrites() const;
|
std::vector<CSrcRewriteStruct> getDMRNetwork2SrcRewrites() const;
|
||||||
|
std::vector<CIdRewriteStruct> getDMRNetwork2IdRewrites() const;
|
||||||
std::vector<unsigned int> getDMRNetwork2PassAllPC() const;
|
std::vector<unsigned int> getDMRNetwork2PassAllPC() const;
|
||||||
std::vector<unsigned int> getDMRNetwork2PassAllTG() const;
|
std::vector<unsigned int> getDMRNetwork2PassAllTG() const;
|
||||||
|
|
||||||
@@ -146,6 +153,7 @@ public:
|
|||||||
std::vector<CPCRewriteStruct> getDMRNetwork3PCRewrites() const;
|
std::vector<CPCRewriteStruct> getDMRNetwork3PCRewrites() const;
|
||||||
std::vector<CTypeRewriteStruct> getDMRNetwork3TypeRewrites() const;
|
std::vector<CTypeRewriteStruct> getDMRNetwork3TypeRewrites() const;
|
||||||
std::vector<CSrcRewriteStruct> getDMRNetwork3SrcRewrites() const;
|
std::vector<CSrcRewriteStruct> getDMRNetwork3SrcRewrites() const;
|
||||||
|
std::vector<CIdRewriteStruct> getDMRNetwork3IdRewrites() const;
|
||||||
std::vector<unsigned int> getDMRNetwork3PassAllPC() const;
|
std::vector<unsigned int> getDMRNetwork3PassAllPC() const;
|
||||||
std::vector<unsigned int> getDMRNetwork3PassAllTG() const;
|
std::vector<unsigned int> getDMRNetwork3PassAllTG() const;
|
||||||
|
|
||||||
@@ -164,6 +172,7 @@ public:
|
|||||||
std::vector<CPCRewriteStruct> getDMRNetwork4PCRewrites() const;
|
std::vector<CPCRewriteStruct> getDMRNetwork4PCRewrites() const;
|
||||||
std::vector<CTypeRewriteStruct> getDMRNetwork4TypeRewrites() const;
|
std::vector<CTypeRewriteStruct> getDMRNetwork4TypeRewrites() const;
|
||||||
std::vector<CSrcRewriteStruct> getDMRNetwork4SrcRewrites() const;
|
std::vector<CSrcRewriteStruct> getDMRNetwork4SrcRewrites() const;
|
||||||
|
std::vector<CIdRewriteStruct> getDMRNetwork4IdRewrites() const;
|
||||||
std::vector<unsigned int> getDMRNetwork4PassAllPC() const;
|
std::vector<unsigned int> getDMRNetwork4PassAllPC() const;
|
||||||
std::vector<unsigned int> getDMRNetwork4PassAllTG() const;
|
std::vector<unsigned int> getDMRNetwork4PassAllTG() const;
|
||||||
|
|
||||||
@@ -230,6 +239,7 @@ private:
|
|||||||
std::vector<CPCRewriteStruct> m_dmrNetwork1PCRewrites;
|
std::vector<CPCRewriteStruct> m_dmrNetwork1PCRewrites;
|
||||||
std::vector<CTypeRewriteStruct> m_dmrNetwork1TypeRewrites;
|
std::vector<CTypeRewriteStruct> m_dmrNetwork1TypeRewrites;
|
||||||
std::vector<CSrcRewriteStruct> m_dmrNetwork1SrcRewrites;
|
std::vector<CSrcRewriteStruct> m_dmrNetwork1SrcRewrites;
|
||||||
|
std::vector<CIdRewriteStruct> m_dmrNetwork1IdRewrites;
|
||||||
std::vector<unsigned int> m_dmrNetwork1PassAllPC;
|
std::vector<unsigned int> m_dmrNetwork1PassAllPC;
|
||||||
std::vector<unsigned int> m_dmrNetwork1PassAllTG;
|
std::vector<unsigned int> m_dmrNetwork1PassAllTG;
|
||||||
|
|
||||||
@@ -247,6 +257,7 @@ private:
|
|||||||
std::vector<CPCRewriteStruct> m_dmrNetwork2PCRewrites;
|
std::vector<CPCRewriteStruct> m_dmrNetwork2PCRewrites;
|
||||||
std::vector<CTypeRewriteStruct> m_dmrNetwork2TypeRewrites;
|
std::vector<CTypeRewriteStruct> m_dmrNetwork2TypeRewrites;
|
||||||
std::vector<CSrcRewriteStruct> m_dmrNetwork2SrcRewrites;
|
std::vector<CSrcRewriteStruct> m_dmrNetwork2SrcRewrites;
|
||||||
|
std::vector<CIdRewriteStruct> m_dmrNetwork2IdRewrites;
|
||||||
std::vector<unsigned int> m_dmrNetwork2PassAllPC;
|
std::vector<unsigned int> m_dmrNetwork2PassAllPC;
|
||||||
std::vector<unsigned int> m_dmrNetwork2PassAllTG;
|
std::vector<unsigned int> m_dmrNetwork2PassAllTG;
|
||||||
|
|
||||||
@@ -264,6 +275,7 @@ private:
|
|||||||
std::vector<CPCRewriteStruct> m_dmrNetwork3PCRewrites;
|
std::vector<CPCRewriteStruct> m_dmrNetwork3PCRewrites;
|
||||||
std::vector<CTypeRewriteStruct> m_dmrNetwork3TypeRewrites;
|
std::vector<CTypeRewriteStruct> m_dmrNetwork3TypeRewrites;
|
||||||
std::vector<CSrcRewriteStruct> m_dmrNetwork3SrcRewrites;
|
std::vector<CSrcRewriteStruct> m_dmrNetwork3SrcRewrites;
|
||||||
|
std::vector<CIdRewriteStruct> m_dmrNetwork3IdRewrites;
|
||||||
std::vector<unsigned int> m_dmrNetwork3PassAllPC;
|
std::vector<unsigned int> m_dmrNetwork3PassAllPC;
|
||||||
std::vector<unsigned int> m_dmrNetwork3PassAllTG;
|
std::vector<unsigned int> m_dmrNetwork3PassAllTG;
|
||||||
|
|
||||||
@@ -281,6 +293,7 @@ private:
|
|||||||
std::vector<CPCRewriteStruct> m_dmrNetwork4PCRewrites;
|
std::vector<CPCRewriteStruct> m_dmrNetwork4PCRewrites;
|
||||||
std::vector<CTypeRewriteStruct> m_dmrNetwork4TypeRewrites;
|
std::vector<CTypeRewriteStruct> m_dmrNetwork4TypeRewrites;
|
||||||
std::vector<CSrcRewriteStruct> m_dmrNetwork4SrcRewrites;
|
std::vector<CSrcRewriteStruct> m_dmrNetwork4SrcRewrites;
|
||||||
|
std::vector<CIdRewriteStruct> m_dmrNetwork4IdRewrites;
|
||||||
std::vector<unsigned int> m_dmrNetwork4PassAllPC;
|
std::vector<unsigned int> m_dmrNetwork4PassAllPC;
|
||||||
std::vector<unsigned int> m_dmrNetwork4PassAllTG;
|
std::vector<unsigned int> m_dmrNetwork4PassAllTG;
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
#include "DMRGateway.h"
|
#include "DMRGateway.h"
|
||||||
#include "StopWatch.h"
|
#include "StopWatch.h"
|
||||||
#include "RewritePC.h"
|
#include "RewritePC.h"
|
||||||
|
#include "RewriteSrcId.h"
|
||||||
|
#include "RewriteDstId.h"
|
||||||
#include "PassAllPC.h"
|
#include "PassAllPC.h"
|
||||||
#include "PassAllTG.h"
|
#include "PassAllTG.h"
|
||||||
#include "DMRFullLC.h"
|
#include "DMRFullLC.h"
|
||||||
@@ -165,10 +167,16 @@ m_rptRewrite(NULL),
|
|||||||
m_xlxRewrite(NULL),
|
m_xlxRewrite(NULL),
|
||||||
m_dmr1NetRewrites(),
|
m_dmr1NetRewrites(),
|
||||||
m_dmr1RFRewrites(),
|
m_dmr1RFRewrites(),
|
||||||
|
m_dmr1SrcRewrites(),
|
||||||
m_dmr2NetRewrites(),
|
m_dmr2NetRewrites(),
|
||||||
m_dmr2RFRewrites(),
|
m_dmr2RFRewrites(),
|
||||||
|
m_dmr2SrcRewrites(),
|
||||||
m_dmr3NetRewrites(),
|
m_dmr3NetRewrites(),
|
||||||
m_dmr3RFRewrites(),
|
m_dmr3RFRewrites(),
|
||||||
|
m_dmr3SrcRewrites(),
|
||||||
|
m_dmr4NetRewrites(),
|
||||||
|
m_dmr4RFRewrites(),
|
||||||
|
m_dmr4SrcRewrites(),
|
||||||
m_dmr1Passalls(),
|
m_dmr1Passalls(),
|
||||||
m_dmr2Passalls(),
|
m_dmr2Passalls(),
|
||||||
m_dmr3Passalls()
|
m_dmr3Passalls()
|
||||||
@@ -184,18 +192,36 @@ CDMRGateway::~CDMRGateway()
|
|||||||
for (std::vector<CRewrite*>::iterator it = m_dmr1RFRewrites.begin(); it != m_dmr1RFRewrites.end(); ++it)
|
for (std::vector<CRewrite*>::iterator it = m_dmr1RFRewrites.begin(); it != m_dmr1RFRewrites.end(); ++it)
|
||||||
delete *it;
|
delete *it;
|
||||||
|
|
||||||
|
for (std::vector<CRewrite*>::iterator it = m_dmr1SrcRewrites.begin(); it != m_dmr1SrcRewrites.end(); ++it)
|
||||||
|
delete *it;
|
||||||
|
|
||||||
for (std::vector<CRewrite*>::iterator it = m_dmr2NetRewrites.begin(); it != m_dmr2NetRewrites.end(); ++it)
|
for (std::vector<CRewrite*>::iterator it = m_dmr2NetRewrites.begin(); it != m_dmr2NetRewrites.end(); ++it)
|
||||||
delete *it;
|
delete *it;
|
||||||
|
|
||||||
for (std::vector<CRewrite*>::iterator it = m_dmr2RFRewrites.begin(); it != m_dmr2RFRewrites.end(); ++it)
|
for (std::vector<CRewrite*>::iterator it = m_dmr2RFRewrites.begin(); it != m_dmr2RFRewrites.end(); ++it)
|
||||||
delete *it;
|
delete *it;
|
||||||
|
|
||||||
|
for (std::vector<CRewrite*>::iterator it = m_dmr2SrcRewrites.begin(); it != m_dmr2SrcRewrites.end(); ++it)
|
||||||
|
delete *it;
|
||||||
|
|
||||||
for (std::vector<CRewrite*>::iterator it = m_dmr3NetRewrites.begin(); it != m_dmr3NetRewrites.end(); ++it)
|
for (std::vector<CRewrite*>::iterator it = m_dmr3NetRewrites.begin(); it != m_dmr3NetRewrites.end(); ++it)
|
||||||
delete *it;
|
delete *it;
|
||||||
|
|
||||||
for (std::vector<CRewrite*>::iterator it = m_dmr3RFRewrites.begin(); it != m_dmr3RFRewrites.end(); ++it)
|
for (std::vector<CRewrite*>::iterator it = m_dmr3RFRewrites.begin(); it != m_dmr3RFRewrites.end(); ++it)
|
||||||
delete *it;
|
delete *it;
|
||||||
|
|
||||||
|
for (std::vector<CRewrite*>::iterator it = m_dmr3SrcRewrites.begin(); it != m_dmr3SrcRewrites.end(); ++it)
|
||||||
|
delete *it;
|
||||||
|
|
||||||
|
for (std::vector<CRewrite*>::iterator it = m_dmr4NetRewrites.begin(); it != m_dmr4NetRewrites.end(); ++it)
|
||||||
|
delete *it;
|
||||||
|
|
||||||
|
for (std::vector<CRewrite*>::iterator it = m_dmr4RFRewrites.begin(); it != m_dmr4RFRewrites.end(); ++it)
|
||||||
|
delete *it;
|
||||||
|
|
||||||
|
for (std::vector<CRewrite*>::iterator it = m_dmr4SrcRewrites.begin(); it != m_dmr4SrcRewrites.end(); ++it)
|
||||||
|
delete *it;
|
||||||
|
|
||||||
for (std::vector<CRewrite*>::iterator it = m_dmr1Passalls.begin(); it != m_dmr1Passalls.end(); ++it)
|
for (std::vector<CRewrite*>::iterator it = m_dmr1Passalls.begin(); it != m_dmr1Passalls.end(); ++it)
|
||||||
delete *it;
|
delete *it;
|
||||||
|
|
||||||
@@ -205,6 +231,9 @@ CDMRGateway::~CDMRGateway()
|
|||||||
for (std::vector<CRewrite*>::iterator it = m_dmr3Passalls.begin(); it != m_dmr3Passalls.end(); ++it)
|
for (std::vector<CRewrite*>::iterator it = m_dmr3Passalls.begin(); it != m_dmr3Passalls.end(); ++it)
|
||||||
delete *it;
|
delete *it;
|
||||||
|
|
||||||
|
for (std::vector<CRewrite*>::iterator it = m_dmr4Passalls.begin(); it != m_dmr4Passalls.end(); ++it)
|
||||||
|
delete *it;
|
||||||
|
|
||||||
delete m_rptRewrite;
|
delete m_rptRewrite;
|
||||||
delete m_xlxRewrite;
|
delete m_xlxRewrite;
|
||||||
|
|
||||||
@@ -576,6 +605,7 @@ int CDMRGateway::run()
|
|||||||
|
|
||||||
if (rewritten) {
|
if (rewritten) {
|
||||||
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK1) {
|
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK1) {
|
||||||
|
rewrite(m_dmr1SrcRewrites, data, trace);
|
||||||
m_dmrNetwork1->write(data);
|
m_dmrNetwork1->write(data);
|
||||||
status[slotNo] = DMRGWS_DMRNETWORK1;
|
status[slotNo] = DMRGWS_DMRNETWORK1;
|
||||||
timer[slotNo]->setTimeout(rfTimeout);
|
timer[slotNo]->setTimeout(rfTimeout);
|
||||||
@@ -597,6 +627,7 @@ int CDMRGateway::run()
|
|||||||
|
|
||||||
if (rewritten) {
|
if (rewritten) {
|
||||||
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK2) {
|
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK2) {
|
||||||
|
rewrite(m_dmr2SrcRewrites, data, trace);
|
||||||
m_dmrNetwork2->write(data);
|
m_dmrNetwork2->write(data);
|
||||||
status[slotNo] = DMRGWS_DMRNETWORK2;
|
status[slotNo] = DMRGWS_DMRNETWORK2;
|
||||||
timer[slotNo]->setTimeout(rfTimeout);
|
timer[slotNo]->setTimeout(rfTimeout);
|
||||||
@@ -618,6 +649,7 @@ int CDMRGateway::run()
|
|||||||
|
|
||||||
if (rewritten) {
|
if (rewritten) {
|
||||||
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK3) {
|
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK3) {
|
||||||
|
rewrite(m_dmr3SrcRewrites, data, trace);
|
||||||
m_dmrNetwork3->write(data);
|
m_dmrNetwork3->write(data);
|
||||||
status[slotNo] = DMRGWS_DMRNETWORK3;
|
status[slotNo] = DMRGWS_DMRNETWORK3;
|
||||||
timer[slotNo]->setTimeout(rfTimeout);
|
timer[slotNo]->setTimeout(rfTimeout);
|
||||||
@@ -639,6 +671,7 @@ int CDMRGateway::run()
|
|||||||
|
|
||||||
if (rewritten) {
|
if (rewritten) {
|
||||||
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK4) {
|
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK4) {
|
||||||
|
rewrite(m_dmr4SrcRewrites, data, trace);
|
||||||
m_dmrNetwork4->write(data);
|
m_dmrNetwork4->write(data);
|
||||||
status[slotNo] = DMRGWS_DMRNETWORK4;
|
status[slotNo] = DMRGWS_DMRNETWORK4;
|
||||||
timer[slotNo]->setTimeout(rfTimeout);
|
timer[slotNo]->setTimeout(rfTimeout);
|
||||||
@@ -662,6 +695,7 @@ int CDMRGateway::run()
|
|||||||
|
|
||||||
if (rewritten) {
|
if (rewritten) {
|
||||||
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK1) {
|
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK1) {
|
||||||
|
rewrite(m_dmr1SrcRewrites, data, trace);
|
||||||
m_dmrNetwork1->write(data);
|
m_dmrNetwork1->write(data);
|
||||||
status[slotNo] = DMRGWS_DMRNETWORK1;
|
status[slotNo] = DMRGWS_DMRNETWORK1;
|
||||||
timer[slotNo]->setTimeout(rfTimeout);
|
timer[slotNo]->setTimeout(rfTimeout);
|
||||||
@@ -683,6 +717,7 @@ int CDMRGateway::run()
|
|||||||
|
|
||||||
if (rewritten) {
|
if (rewritten) {
|
||||||
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK2) {
|
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK2) {
|
||||||
|
rewrite(m_dmr2SrcRewrites, data, trace);
|
||||||
m_dmrNetwork2->write(data);
|
m_dmrNetwork2->write(data);
|
||||||
status[slotNo] = DMRGWS_DMRNETWORK2;
|
status[slotNo] = DMRGWS_DMRNETWORK2;
|
||||||
timer[slotNo]->setTimeout(rfTimeout);
|
timer[slotNo]->setTimeout(rfTimeout);
|
||||||
@@ -704,6 +739,7 @@ int CDMRGateway::run()
|
|||||||
|
|
||||||
if (rewritten) {
|
if (rewritten) {
|
||||||
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK3) {
|
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK3) {
|
||||||
|
rewrite(m_dmr3SrcRewrites, data, trace);
|
||||||
m_dmrNetwork3->write(data);
|
m_dmrNetwork3->write(data);
|
||||||
status[slotNo] = DMRGWS_DMRNETWORK3;
|
status[slotNo] = DMRGWS_DMRNETWORK3;
|
||||||
timer[slotNo]->setTimeout(rfTimeout);
|
timer[slotNo]->setTimeout(rfTimeout);
|
||||||
@@ -725,6 +761,7 @@ int CDMRGateway::run()
|
|||||||
|
|
||||||
if (rewritten) {
|
if (rewritten) {
|
||||||
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK4) {
|
if (status[slotNo] == DMRGWS_NONE || status[slotNo] == DMRGWS_DMRNETWORK4) {
|
||||||
|
rewrite(m_dmr4SrcRewrites, data, trace);
|
||||||
m_dmrNetwork4->write(data);
|
m_dmrNetwork4->write(data);
|
||||||
status[slotNo] = DMRGWS_DMRNETWORK4;
|
status[slotNo] = DMRGWS_DMRNETWORK4;
|
||||||
timer[slotNo]->setTimeout(rfTimeout);
|
timer[slotNo]->setTimeout(rfTimeout);
|
||||||
@@ -1209,6 +1246,17 @@ bool CDMRGateway::createDMRNetwork1()
|
|||||||
m_dmr1NetRewrites.push_back(rewrite);
|
m_dmr1NetRewrites.push_back(rewrite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<CIdRewriteStruct> idRewrites = m_conf.getDMRNetwork1IdRewrites();
|
||||||
|
for (std::vector<CIdRewriteStruct>::const_iterator it = idRewrites.begin(); it != idRewrites.end(); ++it) {
|
||||||
|
LogInfo(" Rewrite Id: %u <-> %u", (*it).m_rfId, (*it).m_netId);
|
||||||
|
|
||||||
|
CRewriteSrcId* rewriteSrcId = new CRewriteSrcId(m_dmr1Name, (*it).m_rfId, (*it).m_netId);
|
||||||
|
CRewriteDstId* rewriteDstId = new CRewriteDstId(m_dmr1Name, (*it).m_netId, (*it).m_rfId);
|
||||||
|
|
||||||
|
m_dmr1SrcRewrites.push_back(rewriteSrcId);
|
||||||
|
m_dmr1NetRewrites.push_back(rewriteDstId);
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<unsigned int> tgPassAll = m_conf.getDMRNetwork1PassAllTG();
|
std::vector<unsigned int> tgPassAll = m_conf.getDMRNetwork1PassAllTG();
|
||||||
for (std::vector<unsigned int>::const_iterator it = tgPassAll.begin(); it != tgPassAll.end(); ++it) {
|
for (std::vector<unsigned int>::const_iterator it = tgPassAll.begin(); it != tgPassAll.end(); ++it) {
|
||||||
LogInfo(" Pass All TG: %u", *it);
|
LogInfo(" Pass All TG: %u", *it);
|
||||||
@@ -1336,6 +1384,17 @@ bool CDMRGateway::createDMRNetwork2()
|
|||||||
m_dmr2NetRewrites.push_back(rewrite);
|
m_dmr2NetRewrites.push_back(rewrite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<CIdRewriteStruct> idRewrites = m_conf.getDMRNetwork2IdRewrites();
|
||||||
|
for (std::vector<CIdRewriteStruct>::const_iterator it = idRewrites.begin(); it != idRewrites.end(); ++it) {
|
||||||
|
LogInfo(" Rewrite Id: %u <-> %u", (*it).m_rfId, (*it).m_netId);
|
||||||
|
|
||||||
|
CRewriteSrcId* rewriteSrcId = new CRewriteSrcId(m_dmr2Name, (*it).m_rfId, (*it).m_netId);
|
||||||
|
CRewriteDstId* rewriteDstId = new CRewriteDstId(m_dmr2Name, (*it).m_netId, (*it).m_rfId);
|
||||||
|
|
||||||
|
m_dmr2SrcRewrites.push_back(rewriteSrcId);
|
||||||
|
m_dmr2NetRewrites.push_back(rewriteDstId);
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<unsigned int> tgPassAll = m_conf.getDMRNetwork2PassAllTG();
|
std::vector<unsigned int> tgPassAll = m_conf.getDMRNetwork2PassAllTG();
|
||||||
for (std::vector<unsigned int>::const_iterator it = tgPassAll.begin(); it != tgPassAll.end(); ++it) {
|
for (std::vector<unsigned int>::const_iterator it = tgPassAll.begin(); it != tgPassAll.end(); ++it) {
|
||||||
LogInfo(" Pass All TG: %u", *it);
|
LogInfo(" Pass All TG: %u", *it);
|
||||||
@@ -1463,6 +1522,17 @@ bool CDMRGateway::createDMRNetwork3()
|
|||||||
m_dmr3NetRewrites.push_back(rewrite);
|
m_dmr3NetRewrites.push_back(rewrite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<CIdRewriteStruct> idRewrites = m_conf.getDMRNetwork3IdRewrites();
|
||||||
|
for (std::vector<CIdRewriteStruct>::const_iterator it = idRewrites.begin(); it != idRewrites.end(); ++it) {
|
||||||
|
LogInfo(" Rewrite Id: %u <-> %u", (*it).m_rfId, (*it).m_netId);
|
||||||
|
|
||||||
|
CRewriteSrcId* rewriteSrcId = new CRewriteSrcId(m_dmr3Name, (*it).m_rfId, (*it).m_netId);
|
||||||
|
CRewriteDstId* rewriteDstId = new CRewriteDstId(m_dmr3Name, (*it).m_netId, (*it).m_rfId);
|
||||||
|
|
||||||
|
m_dmr3SrcRewrites.push_back(rewriteSrcId);
|
||||||
|
m_dmr3NetRewrites.push_back(rewriteDstId);
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<unsigned int> tgPassAll = m_conf.getDMRNetwork3PassAllTG();
|
std::vector<unsigned int> tgPassAll = m_conf.getDMRNetwork3PassAllTG();
|
||||||
for (std::vector<unsigned int>::const_iterator it = tgPassAll.begin(); it != tgPassAll.end(); ++it) {
|
for (std::vector<unsigned int>::const_iterator it = tgPassAll.begin(); it != tgPassAll.end(); ++it) {
|
||||||
LogInfo(" Pass All TG: %u", *it);
|
LogInfo(" Pass All TG: %u", *it);
|
||||||
@@ -1590,6 +1660,17 @@ bool CDMRGateway::createDMRNetwork4()
|
|||||||
m_dmr4NetRewrites.push_back(rewrite);
|
m_dmr4NetRewrites.push_back(rewrite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<CIdRewriteStruct> idRewrites = m_conf.getDMRNetwork4IdRewrites();
|
||||||
|
for (std::vector<CIdRewriteStruct>::const_iterator it = idRewrites.begin(); it != idRewrites.end(); ++it) {
|
||||||
|
LogInfo(" Rewrite Id: %u <-> %u", (*it).m_rfId, (*it).m_netId);
|
||||||
|
|
||||||
|
CRewriteSrcId* rewriteSrcId = new CRewriteSrcId(m_dmr4Name, (*it).m_rfId, (*it).m_netId);
|
||||||
|
CRewriteDstId* rewriteDstId = new CRewriteDstId(m_dmr4Name, (*it).m_netId, (*it).m_rfId);
|
||||||
|
|
||||||
|
m_dmr4SrcRewrites.push_back(rewriteSrcId);
|
||||||
|
m_dmr4NetRewrites.push_back(rewriteDstId);
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<unsigned int> tgPassAll = m_conf.getDMRNetwork4PassAllTG();
|
std::vector<unsigned int> tgPassAll = m_conf.getDMRNetwork4PassAllTG();
|
||||||
for (std::vector<unsigned int>::const_iterator it = tgPassAll.begin(); it != tgPassAll.end(); ++it) {
|
for (std::vector<unsigned int>::const_iterator it = tgPassAll.begin(); it != tgPassAll.end(); ++it) {
|
||||||
LogInfo(" Pass All TG: %u", *it);
|
LogInfo(" Pass All TG: %u", *it);
|
||||||
@@ -1794,6 +1875,14 @@ void CDMRGateway::writeXLXLink(unsigned int srcId, unsigned int dstId, CDMRNetwo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CDMRGateway::rewrite(std::vector<CRewrite*>& rewrites, CDMRData & data, bool trace)
|
||||||
|
{
|
||||||
|
for (std::vector<CRewrite*>::iterator it = rewrites.begin(); it != rewrites.end(); ++it)
|
||||||
|
if ((*it)->process(data, trace))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned int CDMRGateway::getConfig(const std::string& name, unsigned char* buffer)
|
unsigned int CDMRGateway::getConfig(const std::string& name, unsigned char* buffer)
|
||||||
{
|
{
|
||||||
assert(buffer != NULL);
|
assert(buffer != NULL);
|
||||||
|
|||||||
@@ -73,12 +73,16 @@ private:
|
|||||||
CRewriteTG* m_xlxRewrite;
|
CRewriteTG* m_xlxRewrite;
|
||||||
std::vector<CRewrite*> m_dmr1NetRewrites;
|
std::vector<CRewrite*> m_dmr1NetRewrites;
|
||||||
std::vector<CRewrite*> m_dmr1RFRewrites;
|
std::vector<CRewrite*> m_dmr1RFRewrites;
|
||||||
|
std::vector<CRewrite*> m_dmr1SrcRewrites;
|
||||||
std::vector<CRewrite*> m_dmr2NetRewrites;
|
std::vector<CRewrite*> m_dmr2NetRewrites;
|
||||||
std::vector<CRewrite*> m_dmr2RFRewrites;
|
std::vector<CRewrite*> m_dmr2RFRewrites;
|
||||||
|
std::vector<CRewrite*> m_dmr2SrcRewrites;
|
||||||
std::vector<CRewrite*> m_dmr3NetRewrites;
|
std::vector<CRewrite*> m_dmr3NetRewrites;
|
||||||
std::vector<CRewrite*> m_dmr3RFRewrites;
|
std::vector<CRewrite*> m_dmr3RFRewrites;
|
||||||
|
std::vector<CRewrite*> m_dmr3SrcRewrites;
|
||||||
std::vector<CRewrite*> m_dmr4NetRewrites;
|
std::vector<CRewrite*> m_dmr4NetRewrites;
|
||||||
std::vector<CRewrite*> m_dmr4RFRewrites;
|
std::vector<CRewrite*> m_dmr4RFRewrites;
|
||||||
|
std::vector<CRewrite*> m_dmr4SrcRewrites;
|
||||||
std::vector<CRewrite*> m_dmr1Passalls;
|
std::vector<CRewrite*> m_dmr1Passalls;
|
||||||
std::vector<CRewrite*> m_dmr2Passalls;
|
std::vector<CRewrite*> m_dmr2Passalls;
|
||||||
std::vector<CRewrite*> m_dmr3Passalls;
|
std::vector<CRewrite*> m_dmr3Passalls;
|
||||||
@@ -95,6 +99,8 @@ private:
|
|||||||
void unlinkXLX();
|
void unlinkXLX();
|
||||||
void writeXLXLink(unsigned int srcId, unsigned int dstId, CDMRNetwork* network);
|
void writeXLXLink(unsigned int srcId, unsigned int dstId, CDMRNetwork* network);
|
||||||
|
|
||||||
|
bool rewrite(std::vector<CRewrite*>& rewrites, CDMRData& data, bool trace);
|
||||||
|
|
||||||
unsigned int getConfig(const std::string& name, unsigned char* buffer);
|
unsigned int getConfig(const std::string& name, unsigned char* buffer);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -176,8 +176,10 @@
|
|||||||
<ClInclude Include="Reflectors.h" />
|
<ClInclude Include="Reflectors.h" />
|
||||||
<ClInclude Include="RepeaterProtocol.h" />
|
<ClInclude Include="RepeaterProtocol.h" />
|
||||||
<ClInclude Include="Rewrite.h" />
|
<ClInclude Include="Rewrite.h" />
|
||||||
|
<ClInclude Include="RewriteDstId.h" />
|
||||||
<ClInclude Include="RewritePC.h" />
|
<ClInclude Include="RewritePC.h" />
|
||||||
<ClInclude Include="RewriteSrc.h" />
|
<ClInclude Include="RewriteSrc.h" />
|
||||||
|
<ClInclude Include="RewriteSrcId.h" />
|
||||||
<ClInclude Include="RewriteTG.h" />
|
<ClInclude Include="RewriteTG.h" />
|
||||||
<ClInclude Include="RewriteType.h" />
|
<ClInclude Include="RewriteType.h" />
|
||||||
<ClInclude Include="RingBuffer.h" />
|
<ClInclude Include="RingBuffer.h" />
|
||||||
@@ -216,8 +218,10 @@
|
|||||||
<ClCompile Include="Reflectors.cpp" />
|
<ClCompile Include="Reflectors.cpp" />
|
||||||
<ClCompile Include="RepeaterProtocol.cpp" />
|
<ClCompile Include="RepeaterProtocol.cpp" />
|
||||||
<ClCompile Include="Rewrite.cpp" />
|
<ClCompile Include="Rewrite.cpp" />
|
||||||
|
<ClCompile Include="RewriteDstId.cpp" />
|
||||||
<ClCompile Include="RewritePC.cpp" />
|
<ClCompile Include="RewritePC.cpp" />
|
||||||
<ClCompile Include="RewriteSrc.cpp" />
|
<ClCompile Include="RewriteSrc.cpp" />
|
||||||
|
<ClCompile Include="RewriteSrcId.cpp" />
|
||||||
<ClCompile Include="RewriteTG.cpp" />
|
<ClCompile Include="RewriteTG.cpp" />
|
||||||
<ClCompile Include="RewriteType.cpp" />
|
<ClCompile Include="RewriteType.cpp" />
|
||||||
<ClCompile Include="RS129.cpp" />
|
<ClCompile Include="RS129.cpp" />
|
||||||
|
|||||||
@@ -107,9 +107,15 @@
|
|||||||
<ClInclude Include="Rewrite.h">
|
<ClInclude Include="Rewrite.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="RewriteDstId.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="RewriteSrc.h">
|
<ClInclude Include="RewriteSrc.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="RewriteSrcId.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="RewriteType.h">
|
<ClInclude Include="RewriteType.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@@ -217,9 +223,15 @@
|
|||||||
<ClCompile Include="Rewrite.cpp">
|
<ClCompile Include="Rewrite.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="RewriteDstId.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="RewriteSrc.cpp">
|
<ClCompile Include="RewriteSrc.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="RewriteSrcId.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="RewriteType.cpp">
|
<ClCompile Include="RewriteType.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|||||||
4
Makefile
4
Makefile
@@ -5,8 +5,8 @@ LIBS = -lpthread
|
|||||||
LDFLAGS = -g
|
LDFLAGS = -g
|
||||||
|
|
||||||
OBJECTS = BPTC19696.o Conf.o CRC.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREmbeddedData.o DMREMB.o DMRFullLC.o DMRGateway.o DMRLC.o DMRNetwork.o DMRSlotType.o \
|
OBJECTS = BPTC19696.o Conf.o CRC.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREmbeddedData.o DMREMB.o DMRFullLC.o DMRGateway.o DMRLC.o DMRNetwork.o DMRSlotType.o \
|
||||||
Golay2087.o Hamming.o Log.o MMDVMNetwork.o PassAllPC.o PassAllTG.o QR1676.o Reflectors.o RepeaterProtocol.o Rewrite.o RewritePC.o RewriteSrc.o RewriteTG.o \
|
Golay2087.o Hamming.o Log.o MMDVMNetwork.o PassAllPC.o PassAllTG.o QR1676.o Reflectors.o RepeaterProtocol.o Rewrite.o RewriteDstId.o RewritePC.o RewriteSrc.o \
|
||||||
RewriteType.o RS129.o SHA256.o StopWatch.o Sync.o Thread.o Timer.o UDPSocket.o Utils.o Voice.o
|
RewriteSrcId.o RewriteTG.o RewriteType.o RS129.o SHA256.o StopWatch.o Sync.o Thread.o Timer.o UDPSocket.o Utils.o Voice.o
|
||||||
|
|
||||||
all: DMRGateway
|
all: DMRGateway
|
||||||
|
|
||||||
|
|||||||
60
RewriteDstId.cpp
Normal file
60
RewriteDstId.cpp
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2017 by Jonathan Naylor G4KLX
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "RewriteDstId.h"
|
||||||
|
|
||||||
|
#include "DMRDefines.h"
|
||||||
|
#include "Log.h"
|
||||||
|
|
||||||
|
#include <cstdio>
|
||||||
|
|
||||||
|
CRewriteDstId::CRewriteDstId(const std::string& name, unsigned int fromId, unsigned int toId) :
|
||||||
|
CRewrite(),
|
||||||
|
m_name(name),
|
||||||
|
m_fromId(fromId),
|
||||||
|
m_toId(toId)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
CRewriteDstId::~CRewriteDstId()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CRewriteDstId::process(CDMRData& data, bool trace)
|
||||||
|
{
|
||||||
|
FLCO flco = data.getFLCO();
|
||||||
|
unsigned int dstId = data.getDstId();
|
||||||
|
|
||||||
|
if (flco != FLCO_USER_USER || dstId != m_fromId) {
|
||||||
|
if (trace)
|
||||||
|
LogDebug("Rule Trace,\tRewriteDstId from %s Src=%u: not matched", m_name.c_str(), m_fromId);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
data.setDstId(m_toId);
|
||||||
|
|
||||||
|
processMessage(data);
|
||||||
|
|
||||||
|
if (trace) {
|
||||||
|
LogDebug("Rule Trace,\tRewriteDstId from %s Src=%u: matched", m_name.c_str(), m_fromId);
|
||||||
|
LogDebug("Rule Trace,\tRewriteDstId to %s Src=%u", m_name.c_str(), m_toId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
41
RewriteDstId.h
Normal file
41
RewriteDstId.h
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2017 by Jonathan Naylor G4KLX
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(REWRITEDSTID_H)
|
||||||
|
#define REWRITEDSTID_H
|
||||||
|
|
||||||
|
#include "Rewrite.h"
|
||||||
|
#include "DMRData.h"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class CRewriteDstId : public CRewrite {
|
||||||
|
public:
|
||||||
|
CRewriteDstId(const std::string& name, unsigned int fromId, unsigned int toID);
|
||||||
|
virtual ~CRewriteDstId();
|
||||||
|
|
||||||
|
virtual bool process(CDMRData& data, bool trace);
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::string m_name;
|
||||||
|
unsigned int m_fromId;
|
||||||
|
unsigned int m_toId;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
59
RewriteSrcId.cpp
Normal file
59
RewriteSrcId.cpp
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2017 by Jonathan Naylor G4KLX
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "RewriteSrcId.h"
|
||||||
|
|
||||||
|
#include "DMRDefines.h"
|
||||||
|
#include "Log.h"
|
||||||
|
|
||||||
|
#include <cstdio>
|
||||||
|
|
||||||
|
CRewriteSrcId::CRewriteSrcId(const std::string& name, unsigned int fromId, unsigned int toId) :
|
||||||
|
CRewrite(),
|
||||||
|
m_name(name),
|
||||||
|
m_fromId(fromId),
|
||||||
|
m_toId(toId)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
CRewriteSrcId::~CRewriteSrcId()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CRewriteSrcId::process(CDMRData& data, bool trace)
|
||||||
|
{
|
||||||
|
unsigned int srcId = data.getSrcId();
|
||||||
|
|
||||||
|
if (srcId != m_fromId) {
|
||||||
|
if (trace)
|
||||||
|
LogDebug("Rule Trace,\tRewriteSrcId from %s Src=%u: not matched", m_name.c_str(), m_fromId);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
data.setSrcId(m_toId);
|
||||||
|
|
||||||
|
processMessage(data);
|
||||||
|
|
||||||
|
if (trace) {
|
||||||
|
LogDebug("Rule Trace,\tRewriteSrcId from %s Src=%u: matched", m_name.c_str(), m_fromId);
|
||||||
|
LogDebug("Rule Trace,\tRewriteSrcId to %s Src=%u", m_name.c_str(), m_toId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
41
RewriteSrcId.h
Normal file
41
RewriteSrcId.h
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2017 by Jonathan Naylor G4KLX
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(REWRITESRCID_H)
|
||||||
|
#define REWRITESRCID_H
|
||||||
|
|
||||||
|
#include "Rewrite.h"
|
||||||
|
#include "DMRData.h"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class CRewriteSrcId : public CRewrite {
|
||||||
|
public:
|
||||||
|
CRewriteSrcId(const std::string& name, unsigned int fromId, unsigned int toID);
|
||||||
|
virtual ~CRewriteSrcId();
|
||||||
|
|
||||||
|
virtual bool process(CDMRData& data, bool trace);
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::string m_name;
|
||||||
|
unsigned int m_fromId;
|
||||||
|
unsigned int m_toId;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user