From 4c64d3a8f74dd41d9f6048994db3b9f9149e0f99 Mon Sep 17 00:00:00 2001 From: g0wfv Date: Thu, 8 Jun 2017 09:43:30 +0100 Subject: [PATCH 1/4] Send MSTCL instead of MSTNAK --- MMDVMNetwork.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/MMDVMNetwork.cpp b/MMDVMNetwork.cpp index fc360a6..a09d5bb 100644 --- a/MMDVMNetwork.cpp +++ b/MMDVMNetwork.cpp @@ -260,12 +260,8 @@ void CMMDVMNetwork::close() LogMessage("DMR, Closing MMDVM Network"); - buffer[0U] = 'M'; - buffer[1U] = 'S'; - buffer[2U] = 'T'; - buffer[3U] = 'N'; - buffer[4U] = 'A'; - buffer[5U] = 'K'; + ::memcpy(buffer + 0U, "MSTCL", 5U); + ::memcpy(buffer + 5U, m_netId, 4U); m_socket.write(buffer, HOMEBREW_DATA_PACKET_LENGTH, m_rptAddress, m_rptPort); m_socket.close(); From 706d30303e67e324658a0680718ea725c7a529ad Mon Sep 17 00:00:00 2001 From: Tony Corbett G0WFV Date: Thu, 8 Jun 2017 10:15:00 +0100 Subject: [PATCH 2/4] Respond to MMDVM closing down --- MMDVMNetwork.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MMDVMNetwork.cpp b/MMDVMNetwork.cpp index a09d5bb..7cbdb64 100644 --- a/MMDVMNetwork.cpp +++ b/MMDVMNetwork.cpp @@ -265,7 +265,6 @@ void CMMDVMNetwork::close() m_socket.write(buffer, HOMEBREW_DATA_PACKET_LENGTH, m_rptAddress, m_rptPort); m_socket.close(); - } void CMMDVMNetwork::clock(unsigned int ms) @@ -313,6 +312,8 @@ void CMMDVMNetwork::clock(unsigned int ms) ::memcpy(ack + 0U, "RPTACK", 6U); ::memcpy(ack + 6U, m_netId, 4U); m_socket.write(ack, 10U, m_rptAddress, m_rptPort); + } else if (::memcmp(m_buffer, "RPTCL", 5U) == 0) { + ::LogMessage("DMR, MMDVM is restarting"); } else if (::memcmp(m_buffer, "RPTC", 4U) == 0) { m_configLen = length - 8U; m_configData = new unsigned char[m_configLen]; From 2c94d8a6c2efe7d98849c2db1316131baa4ba32a Mon Sep 17 00:00:00 2001 From: g0wfv Date: Thu, 8 Jun 2017 10:29:36 +0100 Subject: [PATCH 3/4] Alter log messages to differentiate between DMR and MMDVM networks --- MMDVMNetwork.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MMDVMNetwork.cpp b/MMDVMNetwork.cpp index 7cbdb64..11af70b 100644 --- a/MMDVMNetwork.cpp +++ b/MMDVMNetwork.cpp @@ -94,7 +94,7 @@ unsigned int CMMDVMNetwork::getId() const bool CMMDVMNetwork::open() { - LogMessage("DMR, Opening MMDVM Network"); + LogMessage("MMDVM Network, Opening"); return m_socket.open(); } @@ -258,7 +258,7 @@ void CMMDVMNetwork::close() unsigned char buffer[HOMEBREW_DATA_PACKET_LENGTH]; ::memset(buffer, 0x00U, HOMEBREW_DATA_PACKET_LENGTH); - LogMessage("DMR, Closing MMDVM Network"); + LogMessage("MMDVM Network, Closing"); ::memcpy(buffer + 0U, "MSTCL", 5U); ::memcpy(buffer + 5U, m_netId, 4U); @@ -273,7 +273,7 @@ void CMMDVMNetwork::clock(unsigned int ms) unsigned int port; int length = m_socket.read(m_buffer, BUFFER_LENGTH, address, port); if (length < 0) { - LogError("DMR, Socket has failed, reopening"); + LogError("MMDVM Network, Socket has failed, reopening"); close(); open(); return; @@ -313,7 +313,7 @@ void CMMDVMNetwork::clock(unsigned int ms) ::memcpy(ack + 6U, m_netId, 4U); m_socket.write(ack, 10U, m_rptAddress, m_rptPort); } else if (::memcmp(m_buffer, "RPTCL", 5U) == 0) { - ::LogMessage("DMR, MMDVM is restarting"); + ::LogMessage("MMDVM Network, The connected MMDVM is closing down"); } else if (::memcmp(m_buffer, "RPTC", 4U) == 0) { m_configLen = length - 8U; m_configData = new unsigned char[m_configLen]; From fc4d79abe902623de8b3b1444298858b89a726b6 Mon Sep 17 00:00:00 2001 From: g0wfv Date: Thu, 8 Jun 2017 10:31:08 +0100 Subject: [PATCH 4/4] Alter MSTNAK responses to differentiate stages of retry --- DMRNetwork.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DMRNetwork.cpp b/DMRNetwork.cpp index 422b77a..888b499 100644 --- a/DMRNetwork.cpp +++ b/DMRNetwork.cpp @@ -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, The master is restarting, logging back in", m_name); + LogWarning("%s, Login to the master has failed, retrying login ...", m_name); 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 ...", m_name); + LogError("%s, Login to the master has failed, retrying network ...", m_name); close(); open(); return;