From d1047a402080dbd3e2c9f1d7e43f28b90a16578c Mon Sep 17 00:00:00 2001 From: Andy CA6JAU Date: Sat, 24 Feb 2018 17:21:00 -0300 Subject: [PATCH] Fix for NAK error using MMDVMCal with simplex firmware --- SerialPort.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/SerialPort.cpp b/SerialPort.cpp index 1b580f4..b2042aa 100644 --- a/SerialPort.cpp +++ b/SerialPort.cpp @@ -207,13 +207,6 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length) bool ysfLoDev = (data[0U] & 0x08U) == 0x08U; bool simplex = (data[0U] & 0x80U) == 0x80U; -#if !defined(DUPLEX) - if (!simplex) { - DEBUG1("Full duplex not supported with this firmware"); - return 6U; - } -#endif - m_debug = (data[0U] & 0x10U) == 0x10U; bool dstarEnable = (data[1U] & 0x01U) == 0x01U; @@ -266,7 +259,7 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length) m_dmrEnable = dmrEnable; m_ysfEnable = ysfEnable; m_p25Enable = p25Enable; - m_nxdnEnable = nxdnEnable; + m_nxdnEnable = nxdnEnable; if (modemState == STATE_DMRCAL || modemState == STATE_DMRDMO1K || modemState == STATE_RSSICAL) { m_dmrEnable = true; @@ -278,12 +271,19 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length) io.ifConf(STATE_DMR, true); } else { - m_modemState = modemState; + m_modemState = modemState; m_calState = STATE_IDLE; } m_duplex = !simplex; +#if !defined(DUPLEX) + if (m_duplex && m_calState == STATE_IDLE && modemState != STATE_DSTARCAL) { + DEBUG1("Full duplex not supported with this firmware"); + return 6U; + } +#endif + dstarTX.setTXDelay(txDelay); ysfTX.setTXDelay(txDelay); p25TX.setTXDelay(txDelay);