Tidy up as per Jonathan's comments

This commit is contained in:
Simon 2016-09-22 16:47:04 +01:00
parent 020948cf63
commit dfb3630315
5 changed files with 34 additions and 33 deletions

View file

@ -94,10 +94,10 @@ m_dmrBeacons(false),
m_dmrId(0U), m_dmrId(0U),
m_dmrColorCode(2U), m_dmrColorCode(2U),
m_dmrSelfOnly(false), m_dmrSelfOnly(false),
m_TGRewriteSlot1(false), m_dmrTGRewriteSlot1(false),
m_TGRewriteSlot2(false), m_dmrTGRewriteSlot2(false),
m_BMAutoRewrite(false), m_dmrBMAutoRewrite(false),
m_BMRewriteReflectorVoicePrompts(false), m_dmrBMRewriteReflectorVoicePrompts(false),
m_dmrPrefixes(), m_dmrPrefixes(),
m_dmrBlackList(), m_dmrBlackList(),
m_dmrDstIdBlacklistSlot1RF(), m_dmrDstIdBlacklistSlot1RF(),
@ -422,14 +422,14 @@ bool CConf::read()
m_dmrTXHang = (unsigned int)::atoi(value); m_dmrTXHang = (unsigned int)::atoi(value);
else if (::strcmp(key, "CallHang") == 0) else if (::strcmp(key, "CallHang") == 0)
m_dmrCallHang = (unsigned int)::atoi(value); m_dmrCallHang = (unsigned int)::atoi(value);
if (::strcmp(key, "TGRewriteSlot1") == 0) else if (::strcmp(key, "TGRewriteSlot1") == 0)
m_TGRewriteSlot1 = ::atoi(value) == 1; m_dmrTGRewriteSlot1 = ::atoi(value) == 1;
else if (::strcmp(key, "TGRewriteSlot2") == 0) else if (::strcmp(key, "TGRewriteSlot2") == 0)
m_TGRewriteSlot2 = ::atoi(value) == 1; m_dmrTGRewriteSlot2 = ::atoi(value) == 1;
else if (::strcmp(key, "BMAutoRewrite") == 0) else if (::strcmp(key, "BMAutoRewrite") == 0)
m_BMAutoRewrite = ::atoi(value) == 1; m_dmrBMAutoRewrite = ::atoi(value) == 1;
else if (::strcmp(key, "BMRewriteReflectorVoicePrompts") == 0) else if (::strcmp(key, "BMRewriteReflectorVoicePrompts") == 0)
m_BMRewriteReflectorVoicePrompts = ::atoi(value) == 1; m_dmrBMRewriteReflectorVoicePrompts = ::atoi(value) == 1;
} else if (section == SECTION_FUSION) { } else if (section == SECTION_FUSION) {
if (::strcmp(key, "Enable") == 0) if (::strcmp(key, "Enable") == 0)
m_fusionEnabled = ::atoi(value) == 1; m_fusionEnabled = ::atoi(value) == 1;
@ -765,22 +765,22 @@ bool CConf::getDMRSelfOnly() const
bool CConf::getDMRTGRewriteSlot1() const bool CConf::getDMRTGRewriteSlot1() const
{ {
return m_TGRewriteSlot1; return m_dmrTGRewriteSlot1;
} }
bool CConf::getDMRTGRewriteSlot2() const bool CConf::getDMRTGRewriteSlot2() const
{ {
return m_TGRewriteSlot2; return m_dmrTGRewriteSlot2;
} }
bool CConf::getDMRBMAutoRewrite() const bool CConf::getDMRBMAutoRewrite() const
{ {
return m_BMAutoRewrite; return m_dmrBMAutoRewrite;
} }
bool CConf::getDMRBMRewriteReflectorVoicePrompts() const bool CConf::getDMRBMRewriteReflectorVoicePrompts() const
{ {
return m_BMRewriteReflectorVoicePrompts; return m_dmrBMRewriteReflectorVoicePrompts;
} }
std::vector<unsigned int> CConf::getDMRPrefixes() const std::vector<unsigned int> CConf::getDMRPrefixes() const

8
Conf.h
View file

@ -217,10 +217,10 @@ private:
unsigned int m_dmrId; unsigned int m_dmrId;
unsigned int m_dmrColorCode; unsigned int m_dmrColorCode;
bool m_dmrSelfOnly; bool m_dmrSelfOnly;
bool m_TGRewriteSlot1; bool m_dmrTGRewriteSlot1;
bool m_TGRewriteSlot2; bool m_dmrTGRewriteSlot2;
bool m_BMAutoRewrite; bool m_dmrBMAutoRewrite;
bool m_BMRewriteReflectorVoicePrompts; bool m_dmrBMRewriteReflectorVoicePrompts;
std::vector<unsigned int> m_dmrPrefixes; std::vector<unsigned int> m_dmrPrefixes;
std::vector<unsigned int> m_dmrBlackList; std::vector<unsigned int> m_dmrBlackList;

View file

@ -206,11 +206,11 @@ bool DMRAccessControl::validateAccess (unsigned int src_id, unsigned int dst_id,
unsigned int DMRAccessControl::DstIdRewrite (unsigned int did, unsigned int sid, unsigned int slot, bool network, CDMRLC* dmrLC) unsigned int DMRAccessControl::DstIdRewrite (unsigned int did, unsigned int sid, unsigned int slot, bool network, CDMRLC* dmrLC)
{ {
if (slot == 1 && m_TGRewriteSlot1 == false) if (slot == 1U && m_TGRewriteSlot1 == false)
return 0; return 0U;
if (slot == 2 && m_TGRewriteSlot2 == false) if (slot == 2U && m_TGRewriteSlot2 == false)
return 0; return 0U;
std::time_t currenttime = std::time(nullptr); std::time_t currenttime = std::time(nullptr);
@ -218,25 +218,26 @@ unsigned int DMRAccessControl::DstIdRewrite (unsigned int did, unsigned int sid,
if (network) { if (network) {
m_dstRewriteID = did; m_dstRewriteID = did;
m_SrcID = sid; m_SrcID = sid;
memcpy(&m_lastdmrLC, &dmrLC, sizeof(dmrLC)); //not needed at present - for direct dial, which requires change at master end.
if (m_BMAutoRewrite && (did < 4000 || did > 5000) && did > 0 && did != 9 && dmrLC->getFLCO() == FLCO_GROUP ) { //memcpy(&m_lastdmrLC, &dmrLC, sizeof(dmrLC));
if (m_BMAutoRewrite && (did < 4000U || did > 5000U) && did > 0U && did != 9U && dmrLC->getFLCO() == FLCO_GROUP ) {
LogMessage("DMR Slot %u, Rewrite DST ID (TG) of of inbound network traffic from %u to 9",slot,did); LogMessage("DMR Slot %u, Rewrite DST ID (TG) of of inbound network traffic from %u to 9",slot,did);
return 9; return 9U;
// rewrite incoming BM voice prompts to TG 9 // rewrite incoming BM voice prompts to TG 9
} else if (m_BMRewriteReflectorVoicePrompts && (sid >= 4000 && sid <= 5000) && dmrLC->getFLCO() == FLCO_USER_USER) { } else if (m_BMRewriteReflectorVoicePrompts && (sid >= 4000U && sid <= 5000U) && dmrLC->getFLCO() == FLCO_USER_USER) {
dmrLC->setFLCO(FLCO_GROUP); dmrLC->setFLCO(FLCO_GROUP);
LogMessage("DMR Slot %u, Rewrite inbound private call to %u to Group Call on TG 9 (BM reflector voice prompt)",slot,did); LogMessage("DMR Slot %u, Rewrite inbound private call to %u to Group Call on TG 9 (BM reflector voice prompt)",slot,did);
return 9; return 9U;
} else { } else {
return 0; return 0U;
} }
} else if (m_BMAutoRewrite && did == 9 && m_dstRewriteID != 9 && m_dstRewriteID != 0 && (m_time + m_callHang) > currenttime && dmrLC->getFLCO() == FLCO_GROUP ) { } else if (m_BMAutoRewrite && did == 9U && m_dstRewriteID != 9U && m_dstRewriteID != 0U && (m_time + m_callHang) > currenttime && dmrLC->getFLCO() == FLCO_GROUP ) {
LogMessage("DMR Slot %u, Rewrite DST ID (TG) of outbound network traffic from %u to %u (return traffic during CallHang)",slot,did,m_dstRewriteID); LogMessage("DMR Slot %u, Rewrite DST ID (TG) of outbound network traffic from %u to %u (return traffic during CallHang)",slot,did,m_dstRewriteID);
return(m_dstRewriteID); return(m_dstRewriteID);
} else if (m_BMAutoRewrite && (did < 4000 || did > 5000) && did > 0 && did !=9) { } else if (m_BMAutoRewrite && (did < 4000U || did > 5000U) && did > 0U && did !=9U) {
m_dstRewriteID = did; m_dstRewriteID = did;
} }
return 0; return 0U;
} }

View file

@ -20,6 +20,7 @@
#include <cassert> #include <cassert>
#include <algorithm> #include <algorithm>
CDMRControl::CDMRControl(unsigned int id, unsigned int colorCode, unsigned int callHang, bool selfOnly, const std::vector<unsigned int>& prefixes, const std::vector<unsigned int>& blackList, const std::vector<unsigned int>& DstIdBlacklistSlot1RF, const std::vector<unsigned int>& DstIdWhitelistSlot1RF, const std::vector<unsigned int>& DstIdBlacklistSlot2RF, const std::vector<unsigned int>& DstIdWhitelistSlot2RF, const std::vector<unsigned int>& DstIdBlacklistSlot1NET, const std::vector<unsigned int>& DstIdWhitelistSlot1NET, const std::vector<unsigned int>& DstIdBlacklistSlot2NET, const std::vector<unsigned int>& DstIdWhitelistSlot2NET, unsigned int timeout, CModem* modem, CDMRIPSC* network, CDisplay* display, bool duplex, const std::string& lookupFile, int rssiMultiplier, int rssiOffset, unsigned int jitter, bool TGRewriteSlot1, bool TGRewriteSlot2, bool BMAutoRewrite, bool BMRewriteReflectorVoicePrompts) : CDMRControl::CDMRControl(unsigned int id, unsigned int colorCode, unsigned int callHang, bool selfOnly, const std::vector<unsigned int>& prefixes, const std::vector<unsigned int>& blackList, const std::vector<unsigned int>& DstIdBlacklistSlot1RF, const std::vector<unsigned int>& DstIdWhitelistSlot1RF, const std::vector<unsigned int>& DstIdBlacklistSlot2RF, const std::vector<unsigned int>& DstIdWhitelistSlot2RF, const std::vector<unsigned int>& DstIdBlacklistSlot1NET, const std::vector<unsigned int>& DstIdWhitelistSlot1NET, const std::vector<unsigned int>& DstIdBlacklistSlot2NET, const std::vector<unsigned int>& DstIdWhitelistSlot2NET, unsigned int timeout, CModem* modem, CDMRIPSC* network, CDisplay* display, bool duplex, const std::string& lookupFile, int rssiMultiplier, int rssiOffset, unsigned int jitter, bool TGRewriteSlot1, bool TGRewriteSlot2, bool BMAutoRewrite, bool BMRewriteReflectorVoicePrompts) :
m_id(id), m_id(id),
m_colorCode(colorCode), m_colorCode(colorCode),
@ -36,7 +37,7 @@ m_lookup(NULL)
assert(display != NULL); assert(display != NULL);
m_lookup = new CDMRLookup(lookupFile); m_lookup = new CDMRLookup(lookupFile);
m_lookup->read(); //m_lookup->read();
CDMRSlot::init(id, colorCode, callHang, selfOnly, prefixes, blackList, DstIdBlacklistSlot1RF, DstIdWhitelistSlot1RF, DstIdBlacklistSlot2RF, DstIdWhitelistSlot2RF, DstIdBlacklistSlot1NET, DstIdWhitelistSlot1NET, DstIdBlacklistSlot2NET, DstIdWhitelistSlot2NET, modem, network, display, duplex, m_lookup, rssiMultiplier, rssiOffset, jitter, TGRewriteSlot1, TGRewriteSlot2, BMAutoRewrite, BMRewriteReflectorVoicePrompts); CDMRSlot::init(id, colorCode, callHang, selfOnly, prefixes, blackList, DstIdBlacklistSlot1RF, DstIdWhitelistSlot1RF, DstIdBlacklistSlot2RF, DstIdWhitelistSlot2RF, DstIdBlacklistSlot1NET, DstIdWhitelistSlot1NET, DstIdBlacklistSlot2NET, DstIdWhitelistSlot2NET, modem, network, display, duplex, m_lookup, rssiMultiplier, rssiOffset, jitter, TGRewriteSlot1, TGRewriteSlot2, BMAutoRewrite, BMRewriteReflectorVoicePrompts);
} }

View file

@ -496,8 +496,7 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
} }
unsigned int rw_id = DMRAccessControl::DstIdRewrite(did,sid,m_slotNo,false,lc); unsigned int rw_id = DMRAccessControl::DstIdRewrite(did,sid,m_slotNo,false,lc);
if (rw_id) { if (rw_id) {
lc->setDstId(rw_id);
lc->setDstId(rw_id);
} }
m_rfLC = lc; m_rfLC = lc;