diff --git a/edac/AMBEFEC.cpp b/edac/AMBEFEC.cpp index e8cb371c..614b0be0 100644 --- a/edac/AMBEFEC.cpp +++ b/edac/AMBEFEC.cpp @@ -514,7 +514,7 @@ uint32_t AMBEFEC::regenerateNXDN(uint8_t* bytes) const uint32_t c = 0U; MASK = 0x1000000U; - for (uint32_t i = 0U; i < 25U; i++, MASK >>= 1) { + for (uint32_t i = 0U; i < 24U; i++, MASK >>= 1) { uint32_t cPos = DMR_C_TABLE[i]; if (READ_BIT(bytes, cPos)) c |= MASK; @@ -535,7 +535,7 @@ uint32_t AMBEFEC::regenerateNXDN(uint8_t* bytes) const } MASK = 0x1000000U; - for (uint32_t i = 0U; i < 25U; i++, MASK >>= 1) { + for (uint32_t i = 0U; i < 24U; i++, MASK >>= 1) { uint32_t cPos = DMR_C_TABLE[i]; WRITE_BIT(bytes, cPos, c & MASK); } diff --git a/host/calibrate/HostCal.cpp b/host/calibrate/HostCal.cpp index c87cfa04..094fe85e 100644 --- a/host/calibrate/HostCal.cpp +++ b/host/calibrate/HostCal.cpp @@ -2263,9 +2263,9 @@ bool HostCal::writeConfig(uint8_t modeOverride) { uint8_t buffer[25U]; ::memset(buffer, 0x00U, 25U); + uint8_t lengthToWrite = 17U; buffer[0U] = DVM_FRAME_START; - buffer[1U] = 17U; buffer[2U] = CMD_SET_CONFIG; buffer[3U] = 0x00U; @@ -2331,7 +2331,7 @@ bool HostCal::writeConfig(uint8_t modeOverride) // are we on a protocol version 3 firmware? if (m_modem->getVersion() >= 3U) { - buffer[1U] = 24U; + lengthToWrite = 24U; if (m_nxdnEnabled) buffer[4U] |= 0x10U; @@ -2346,8 +2346,10 @@ bool HostCal::writeConfig(uint8_t modeOverride) buffer[24U] = m_rssiFinePot; } - int ret = m_modem->write(buffer, buffer[1U]); - if (ret <= 0) + buffer[1U] = lengthToWrite; + + int ret = m_modem->write(buffer, lengthToWrite); + if (ret != lengthToWrite) return false; sleep(10U); @@ -2364,9 +2366,9 @@ bool HostCal::writeRFParams() { uint8_t buffer[20U]; ::memset(buffer, 0x00U, 20U); + uint8_t lengthToWrite = 18U; buffer[0U] = DVM_FRAME_START; - buffer[1U] = 18U; buffer[2U] = CMD_SET_RFPARAMS; buffer[3U] = 0x00U; @@ -2397,7 +2399,7 @@ bool HostCal::writeRFParams() // are we on a protocol version 3 firmware? if (m_modem->getVersion() >= 3U) { - buffer[1U] = 20U; + lengthToWrite = 20U; m_conf["system"]["modem"]["hotspot"]["nxdnDiscBWAdj"] = __INT_STR(m_nxdnDiscBWAdj); buffer[18U] = (uint8_t)(m_nxdnDiscBWAdj + 128); @@ -2405,9 +2407,9 @@ bool HostCal::writeRFParams() buffer[19U] = (uint8_t)(m_nxdnPostBWAdj + 128); } - // CUtils::dump(1U, "Written", buffer, buffer[1U]); + buffer[1U] = lengthToWrite; - int ret = m_modem->write(buffer, buffer[1U]); + int ret = m_modem->write(buffer, lengthToWrite); if (ret <= 0) return false; @@ -2425,9 +2427,9 @@ bool HostCal::writeSymbolAdjust() { uint8_t buffer[20U]; ::memset(buffer, 0x00U, 20U); + uint8_t lengthToWrite = 7U; buffer[0U] = DVM_FRAME_START; - buffer[1U] = 7U; buffer[2U] = CMD_SET_SYMLVLADJ; m_conf["system"]["modem"]["repeater"]["dmrSymLvl3Adj"] = __INT_STR(m_dmrSymLevel3Adj); @@ -2442,7 +2444,7 @@ bool HostCal::writeSymbolAdjust() // are we on a protocol version 3 firmware? if (m_modem->getVersion() >= 3U) { - buffer[1U] = 9U; + lengthToWrite = 9U; m_conf["system"]["modem"]["repeater"]["nxdnSymLvl3Adj"] = __INT_STR(m_nxdnSymLevel3Adj); buffer[7U] = (uint8_t)(m_nxdnSymLevel3Adj + 128); @@ -2450,7 +2452,9 @@ bool HostCal::writeSymbolAdjust() buffer[8U] = (uint8_t)(m_nxdnSymLevel1Adj + 128); } - int ret = m_modem->write(buffer, buffer[1U]); + buffer[1U] = lengthToWrite; + + int ret = m_modem->write(buffer, lengthToWrite); if (ret <= 0) return false; diff --git a/modem/Modem.cpp b/modem/Modem.cpp index 85c24ae0..084cdf54 100644 --- a/modem/Modem.cpp +++ b/modem/Modem.cpp @@ -1768,9 +1768,9 @@ bool Modem::writeConfig() { uint8_t buffer[25U]; ::memset(buffer, 0x00U, 25U); + uint8_t lengthToWrite = 17U; buffer[0U] = DVM_FRAME_START; - buffer[1U] = 17U; buffer[2U] = CMD_SET_CONFIG; buffer[3U] = 0x00U; @@ -1826,7 +1826,7 @@ bool Modem::writeConfig() // are we on a protocol version 3 firmware? if (m_protoVer >= 3U) { - buffer[1U] = 24U; + lengthToWrite = 24U; if (m_nxdnEnabled) buffer[4U] |= 0x10U; @@ -1841,12 +1841,14 @@ bool Modem::writeConfig() buffer[24U] = m_rssiFinePot; } + buffer[1U] = lengthToWrite; + #if DEBUG_MODEM - Utils::dump(1U, "Modem::writeConfig(), Written", buffer, buffer[1U]); + Utils::dump(1U, "Modem::writeConfig(), Written", buffer, lengthToWrite); #endif - int ret = write(buffer, buffer[1U]); - if (ret != 17) + int ret = write(buffer, lengthToWrite); + if (ret != lengthToWrite) return false; uint32_t count = 0U; @@ -1884,9 +1886,9 @@ bool Modem::writeSymbolAdjust() { uint8_t buffer[20U]; ::memset(buffer, 0x00U, 20U); + uint8_t lengthToWrite = 7U; buffer[0U] = DVM_FRAME_START; - buffer[1U] = 7U; buffer[2U] = CMD_SET_SYMLVLADJ; buffer[3U] = (uint8_t)(m_dmrSymLevel3Adj + 128); @@ -1897,13 +1899,15 @@ bool Modem::writeSymbolAdjust() // are we on a protocol version 3 firmware? if (m_protoVer >= 3U) { - buffer[1U] = 9U; + lengthToWrite = 9U; buffer[7U] = (uint8_t)(m_nxdnSymLevel3Adj + 128); buffer[8U] = (uint8_t)(m_nxdnSymLevel1Adj + 128); } - int ret = write(buffer, buffer[1U]); + buffer[1U] = lengthToWrite; + + int ret = write(buffer, lengthToWrite); if (ret <= 0) return false; @@ -1940,9 +1944,9 @@ bool Modem::writeRFParams() { uint8_t buffer[20U]; ::memset(buffer, 0x00U, 20U); + uint8_t lengthToWrite = 18U; buffer[0U] = DVM_FRAME_START; - buffer[1U] = 18U; buffer[2U] = CMD_SET_RFPARAMS; buffer[3U] = 0x00U; @@ -1970,15 +1974,15 @@ bool Modem::writeRFParams() // are we on a protocol version 3 firmware? if (m_protoVer >= 3U) { - buffer[1U] = 20U; + lengthToWrite = 20U; buffer[18U] = (uint8_t)(m_nxdnDiscBWAdj + 128); buffer[19U] = (uint8_t)(m_nxdnPostBWAdj + 128); } - // CUtils::dump(1U, "Written", buffer, buffer[1U]); + buffer[1U] = lengthToWrite; - int ret = m_port->write(buffer, buffer[1U]); + int ret = m_port->write(buffer, lengthToWrite); if (ret <= 0) return false;