From 9914c43e1a6e6e82a1f80ae127aba4afc2617559 Mon Sep 17 00:00:00 2001 From: g0wfv Date: Thu, 1 Jun 2017 16:40:14 +0100 Subject: [PATCH 1/4] Add status request (while connected only I think) to XLX - PC to 5000 (plus base!) --- DMRGateway.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 2d68556..43d5003 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -424,6 +424,9 @@ int CDMRGateway::run() if (dstId != m_xlx1Reflector) { if (dstId == 4000U) { LogMessage("XLX-1, Unlinking"); + } elseif (dstId == 5000U) { + // Status XLX-1 here + voice1->linkedTo(m_xlx1Reflector); } else { if (m_xlx1Reflector != 4000U) writeXLXLink(srcId, 4000U, m_xlxNetwork1); @@ -458,6 +461,9 @@ int CDMRGateway::run() if (dstId != m_xlx2Reflector) { if (dstId == 4000U) { LogMessage("XLX-2, Unlinking"); + } elseif (dstId == 5000U) { + // Status XLX-2 here + voice2->linkedTo(m_xlx1Reflector); } else { if (m_xlx2Reflector != 4000U) writeXLXLink(srcId, 4000U, m_xlxNetwork2); From d9b0410fa00bad028f502d1ecd382c75ba02c182 Mon Sep 17 00:00:00 2001 From: Tony Corbett G0WFV Date: Thu, 1 Jun 2017 17:34:51 +0100 Subject: [PATCH 2/4] Add status when connected or disconnected via PC to 5000 +/- base! --- DMRGateway.cpp | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 444cda6..3452500 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -425,16 +425,18 @@ int CDMRGateway::run() m_xlxNetwork2->write(data); status[slotNo] = DMRGWS_XLXREFLECTOR2; timer[slotNo]->start(); - } else if (flco == FLCO_USER_USER && slotNo == m_xlx1Slot && dstId >= m_xlx1Base && dstId <= (m_xlx1Base + 26U)) { + } else if ((dstId <= (m_xlx1Base + 26U) || dstId == (m_xlx1Base + 1000U)) && flco == FLCO_USER_USER && slotNo == m_xlx1Slot && dstId >= m_xlx1Base) { // dstId += 4000U; dstId -= m_xlx1Base; if (dstId != m_xlx1Reflector) { if (dstId == 4000U) { LogMessage("XLX-1, Unlinking"); - } elseif (dstId == 5000U) { - // Status XLX-1 here - voice1->linkedTo(m_xlx1Reflector); + } else if (dstId == 5000U) { + if (m_xlx1Reflector != 4000) + voice1->linkedTo(m_xlx1Reflector); + else + voice1->unlinked(); } else { if (m_xlx1Reflector != 4000U) writeXLXLink(srcId, 4000U, m_xlxNetwork1); @@ -442,9 +444,11 @@ int CDMRGateway::run() LogMessage("XLX-1, Linking to reflector %u", dstId); } - writeXLXLink(srcId, dstId, m_xlxNetwork1); - m_xlx1Reflector = dstId; - changed = true; + if (dstId != 5000U ) { + writeXLXLink(srcId, dstId, m_xlxNetwork1); + m_xlx1Reflector = dstId; + changed = true; + } } status[slotNo] = DMRGWS_XLXREFLECTOR1; @@ -462,16 +466,18 @@ int CDMRGateway::run() } } } - } else if (flco == FLCO_USER_USER && slotNo == m_xlx2Slot && dstId >= m_xlx2Base && dstId <= (m_xlx2Base + 26U)) { + } else if ((dstId <= (m_xlx2Base + 26U) || dstId == (m_xlx2Base + 1000U)) && flco == FLCO_USER_USER && slotNo == m_xlx2Slot && dstId >= m_xlx2Base) { // dstId += 4000U; dstId -= m_xlx2Base; if (dstId != m_xlx2Reflector) { if (dstId == 4000U) { LogMessage("XLX-2, Unlinking"); - } elseif (dstId == 5000U) { - // Status XLX-2 here - voice2->linkedTo(m_xlx1Reflector); + } else if (dstId == 5000U) { + if (m_xlx2Reflector != 4000) + voice2->linkedTo(m_xlx2Reflector); + else + voice2->unlinked(); } else { if (m_xlx2Reflector != 4000U) writeXLXLink(srcId, 4000U, m_xlxNetwork2); @@ -479,9 +485,11 @@ int CDMRGateway::run() LogMessage("XLX-2, Linking to reflector %u", dstId); } - writeXLXLink(srcId, dstId, m_xlxNetwork2); - m_xlx2Reflector = dstId; - changed = true; + if (dstId != 5000U ) { + writeXLXLink(srcId, dstId, m_xlxNetwork2); + m_xlx2Reflector = dstId; + changed = true; + } } status[slotNo] = DMRGWS_XLXREFLECTOR2; From c8fbef105145345c1d2194149d35ece22a4dbd44 Mon Sep 17 00:00:00 2001 From: Tony Corbett G0WFV Date: Thu, 1 Jun 2017 17:41:16 +0100 Subject: [PATCH 3/4] Cleanup --- DMRGateway.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 3452500..a76da9d 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -425,7 +425,7 @@ int CDMRGateway::run() m_xlxNetwork2->write(data); status[slotNo] = DMRGWS_XLXREFLECTOR2; timer[slotNo]->start(); - } else if ((dstId <= (m_xlx1Base + 26U) || dstId == (m_xlx1Base + 1000U)) && flco == FLCO_USER_USER && slotNo == m_xlx1Slot && dstId >= m_xlx1Base) { // + } else if ((dstId <= (m_xlx1Base + 26U) || dstId == (m_xlx1Base + 1000U)) && flco == FLCO_USER_USER && slotNo == m_xlx1Slot && dstId >= m_xlx1Base) { dstId += 4000U; dstId -= m_xlx1Base; @@ -466,7 +466,7 @@ int CDMRGateway::run() } } } - } else if ((dstId <= (m_xlx2Base + 26U) || dstId == (m_xlx2Base + 1000U)) && flco == FLCO_USER_USER && slotNo == m_xlx2Slot && dstId >= m_xlx2Base) { // + } else if ((dstId <= (m_xlx2Base + 26U) || dstId == (m_xlx2Base + 1000U)) && flco == FLCO_USER_USER && slotNo == m_xlx2Slot && dstId >= m_xlx2Base) { dstId += 4000U; dstId -= m_xlx2Base; From b92b119e8dfa0a2ba271e0480dfac1f28d8e96c2 Mon Sep 17 00:00:00 2001 From: g0wfv Date: Thu, 1 Jun 2017 18:18:30 +0100 Subject: [PATCH 4/4] Satisfying my CDO --- DMRGateway.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index a76da9d..138a49c 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -433,7 +433,7 @@ int CDMRGateway::run() if (dstId == 4000U) { LogMessage("XLX-1, Unlinking"); } else if (dstId == 5000U) { - if (m_xlx1Reflector != 4000) + if (m_xlx1Reflector != 4000U) voice1->linkedTo(m_xlx1Reflector); else voice1->unlinked(); @@ -474,7 +474,7 @@ int CDMRGateway::run() if (dstId == 4000U) { LogMessage("XLX-2, Unlinking"); } else if (dstId == 5000U) { - if (m_xlx2Reflector != 4000) + if (m_xlx2Reflector != 4000U) voice2->linkedTo(m_xlx2Reflector); else voice2->unlinked();