diff --git a/HomebrewDMRIPSC.cpp b/HomebrewDMRIPSC.cpp index 286070c..7c21b99 100644 --- a/HomebrewDMRIPSC.cpp +++ b/HomebrewDMRIPSC.cpp @@ -38,6 +38,7 @@ m_debug(debug), m_software(software), m_version(version), m_socket(), +m_enabled(false), m_status(DISCONNECTED), m_retryTimer(1000U, 10U), m_timeoutTimer(1000U, 600U), @@ -127,6 +128,11 @@ bool CHomebrewDMRIPSC::open() return true; } +void CHomebrewDMRIPSC::enable(bool enabled) +{ + m_enabled = enabled; +} + bool CHomebrewDMRIPSC::read(CDMRData& data) { if (m_status != RUNNING) @@ -259,9 +265,11 @@ void CHomebrewDMRIPSC::clock(unsigned int ms) if (length > 0 && m_address.s_addr == address.s_addr && m_port == port) { if (::memcmp(m_buffer, "DMRD", 4U) == 0) { - unsigned char len = length; - m_rxData.addData(&len, 1U); - m_rxData.addData(m_buffer, len); + if (m_enabled) { + unsigned char len = length; + m_rxData.addData(&len, 1U); + m_rxData.addData(m_buffer, len); + } } else if (::memcmp(m_buffer, "MSTNAK", 6U) == 0) { if (m_status == RUNNING) { LogWarning("The master is restarting, logging back in"); diff --git a/HomebrewDMRIPSC.h b/HomebrewDMRIPSC.h index 032d3a6..8e804ea 100644 --- a/HomebrewDMRIPSC.h +++ b/HomebrewDMRIPSC.h @@ -37,6 +37,8 @@ public: bool open(); + void enable(bool enabled); + bool read(CDMRData& data); bool write(const CDMRData& data); @@ -56,6 +58,7 @@ private: const char* m_software; const char* m_version; CUDPSocket m_socket; + bool m_enabled; enum STATUS { DISCONNECTED, diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index 8e78cac..7a4ea97 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -459,6 +459,8 @@ bool CMMDVMHost::createDMRNetwork() return false; } + m_dmrNetwork->enable(true); + return true; }