From c909cfbea8ee64bc67d23b365ac72975a5b64e99 Mon Sep 17 00:00:00 2001 From: Yngwie Chou Date: Tue, 29 Aug 2017 07:16:01 +0800 Subject: [PATCH 1/2] Make DMRmmdvm and DMRplus node module Id configurable --- src/cdmrmmdvmprotocol.cpp | 14 +++++++------- src/cdmrmmdvmprotocol.h | 3 +++ src/cdmrplusprotocol.cpp | 6 +++--- src/cdmrplusprotocol.h | 3 +++ 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/cdmrmmdvmprotocol.cpp b/src/cdmrmmdvmprotocol.cpp index 3e8868e..0e67704 100644 --- a/src/cdmrmmdvmprotocol.cpp +++ b/src/cdmrmmdvmprotocol.cpp @@ -511,7 +511,7 @@ bool CDmrmmdvmProtocol::IsValidKeepAlivePacket(const CBuffer &Buffer, CCallsign { uint32 uiRptrId = MAKEDWORD(MAKEWORD(Buffer.data()[10],Buffer.data()[9]),MAKEWORD(Buffer.data()[8],Buffer.data()[7])); callsign->SetDmrid(uiRptrId, true); - callsign->SetModule('B'); + callsign->SetModule(MMDVM_MODULE_ID); valid = callsign->IsValid(); } return valid; @@ -526,7 +526,7 @@ bool CDmrmmdvmProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *c { uint32 uiRptrId = MAKEDWORD(MAKEWORD(Buffer.data()[7],Buffer.data()[6]),MAKEWORD(Buffer.data()[5],Buffer.data()[4])); callsign->SetDmrid(uiRptrId, true); - callsign->SetModule('B'); + callsign->SetModule(MMDVM_MODULE_ID); valid = callsign->IsValid(); if ( !valid) { @@ -545,7 +545,7 @@ bool CDmrmmdvmProtocol::IsValidAuthenticationPacket(const CBuffer &Buffer, CCall { uint32 uiRptrId = MAKEDWORD(MAKEWORD(Buffer.data()[7],Buffer.data()[6]),MAKEWORD(Buffer.data()[5],Buffer.data()[4])); callsign->SetDmrid(uiRptrId, true); - callsign->SetModule('B'); + callsign->SetModule(MMDVM_MODULE_ID); valid = callsign->IsValid(); } return valid; @@ -560,7 +560,7 @@ bool CDmrmmdvmProtocol::IsValidDisconnectPacket(const CBuffer &Buffer, CCallsign { uint32 uiRptrId = MAKEDWORD(MAKEWORD(Buffer.data()[7],Buffer.data()[6]),MAKEWORD(Buffer.data()[5],Buffer.data()[4])); callsign->SetDmrid(uiRptrId, true); - callsign->SetModule('B'); + callsign->SetModule(MMDVM_MODULE_ID); valid = callsign->IsValid(); } return valid; @@ -575,7 +575,7 @@ bool CDmrmmdvmProtocol::IsValidConfigPacket(const CBuffer &Buffer, CCallsign *ca { uint32 uiRptrId = MAKEDWORD(MAKEWORD(Buffer.data()[7],Buffer.data()[6]),MAKEWORD(Buffer.data()[5],Buffer.data()[4])); callsign->SetDmrid(uiRptrId, true); - callsign->SetModule('B'); + callsign->SetModule(MMDVM_MODULE_ID); valid = callsign->IsValid(); } return valid; @@ -590,7 +590,7 @@ bool CDmrmmdvmProtocol::IsValidOptionPacket(const CBuffer &Buffer, CCallsign *ca { uint32 uiRptrId = MAKEDWORD(MAKEWORD(Buffer.data()[7],Buffer.data()[6]),MAKEWORD(Buffer.data()[5],Buffer.data()[4])); callsign->SetDmrid(uiRptrId, true); - callsign->SetModule('B'); + callsign->SetModule(MMDVM_MODULE_ID); valid = callsign->IsValid(); } return valid; @@ -673,7 +673,7 @@ bool CDmrmmdvmProtocol::IsValidDvHeaderPacket(const CBuffer &Buffer, CDvHeaderPa // build DVHeader CCallsign csMY = CCallsign("", uiSrcId); CCallsign rpt1 = CCallsign("", uiRptrId); - rpt1.SetModule('B'); + rpt1.SetModule(MMDVM_MODULE_ID); CCallsign rpt2 = m_ReflectorCallsign; rpt2.SetModule(DmrDstIdToModule(uiDstId)); diff --git a/src/cdmrmmdvmprotocol.h b/src/cdmrmmdvmprotocol.h index 2f221c5..25dfbd3 100644 --- a/src/cdmrmmdvmprotocol.h +++ b/src/cdmrmmdvmprotocol.h @@ -43,6 +43,9 @@ #define MMDVM_SLOTTYPE_HEADER 1 #define MMDVM_SLOTTYPE_TERMINATOR 2 +// DMRMMDVM Module ID +#define MMDVM_MODULE_ID "B" + //////////////////////////////////////////////////////////////////////////////////////// // class diff --git a/src/cdmrplusprotocol.cpp b/src/cdmrplusprotocol.cpp index fb4f270..76bfd43 100644 --- a/src/cdmrplusprotocol.cpp +++ b/src/cdmrplusprotocol.cpp @@ -414,7 +414,7 @@ bool CDmrplusProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *ca sz[8] = 0; uint32 dmrid = atoi(sz); callsign->SetDmrid(dmrid, true); - callsign->SetModule('B'); + callsign->SetModule(DMRPLUS_MODULE_ID); ::memcpy(sz, &Buffer.data()[8], 4); sz[4] = 0; *reflectormodule = DmrDstIdToModule(atoi(sz)); @@ -437,7 +437,7 @@ bool CDmrplusProtocol::IsValidDisconnectPacket(const CBuffer &Buffer, CCallsign sz[8] = 0; uint32 dmrid = atoi(sz); callsign->SetDmrid(dmrid, true); - callsign->SetModule('B'); + callsign->SetModule(DMRPLUS_MODULE_ID); *reflectormodule = Buffer.data()[11] - '0' + 'A'; valid = (callsign->IsValid() && std::isupper(*reflectormodule)); } @@ -467,7 +467,7 @@ bool CDmrplusProtocol::IsValidDvHeaderPacket(const CIp &Ip, const CBuffer &Buffe // build DVHeader CCallsign csMY = CCallsign("", uiSrcId); CCallsign rpt1 = CCallsign("", uiSrcId); - rpt1.SetModule('B'); + rpt1.SetModule(DMRPLUS_MODULE_ID); CCallsign rpt2 = m_ReflectorCallsign; rpt2.SetModule(DmrDstIdToModule(uiDstId)); uint32 uiStreamId = IpToStreamId(Ip); diff --git a/src/cdmrplusprotocol.h b/src/cdmrplusprotocol.h index 430f741..1c8707d 100644 --- a/src/cdmrplusprotocol.h +++ b/src/cdmrplusprotocol.h @@ -34,6 +34,9 @@ //////////////////////////////////////////////////////////////////////////////////////// // define +// DMR Plus Module ID +#define DMRPLUS_MODULE_ID "B" + //////////////////////////////////////////////////////////////////////////////////////// // class From 8cdd27e80956491b93b42369488dff9931d54e1a Mon Sep 17 00:00:00 2001 From: Yngwie Chou Date: Tue, 29 Aug 2017 07:25:56 +0800 Subject: [PATCH 2/2] Make DMRmmdvm and DMRplus repeater module ID configurable --- src/cdmrmmdvmprotocol.h | 2 +- src/cdmrplusprotocol.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cdmrmmdvmprotocol.h b/src/cdmrmmdvmprotocol.h index 25dfbd3..52b5e64 100644 --- a/src/cdmrmmdvmprotocol.h +++ b/src/cdmrmmdvmprotocol.h @@ -44,7 +44,7 @@ #define MMDVM_SLOTTYPE_TERMINATOR 2 // DMRMMDVM Module ID -#define MMDVM_MODULE_ID "B" +#define MMDVM_MODULE_ID 'B' //////////////////////////////////////////////////////////////////////////////////////// // class diff --git a/src/cdmrplusprotocol.h b/src/cdmrplusprotocol.h index 1c8707d..e142a72 100644 --- a/src/cdmrplusprotocol.h +++ b/src/cdmrplusprotocol.h @@ -35,7 +35,7 @@ // define // DMR Plus Module ID -#define DMRPLUS_MODULE_ID "B" +#define DMRPLUS_MODULE_ID 'B' //////////////////////////////////////////////////////////////////////////////////////// // class