From fca53dc67effc32bb1ed9e654b0f766a09087835 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Fri, 30 Dec 2016 11:34:31 +0000 Subject: [PATCH 1/3] Small tweaks. --- CalRSSI.cpp | 8 ++++---- DMRDMORX.cpp | 4 +--- DMRSlotRX.cpp | 4 +--- MMDVM_STM32F4xx.coproj | 2 ++ 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/CalRSSI.cpp b/CalRSSI.cpp index 4703bea..175975f 100644 --- a/CalRSSI.cpp +++ b/CalRSSI.cpp @@ -24,8 +24,8 @@ CCalRSSI::CCalRSSI() : m_count(0U), m_accum(0U), -m_min(0xFFFFFFU), -m_max(0x000000U) +m_min(0xFFFFU), +m_max(0x0000U) { } @@ -57,8 +57,8 @@ void CCalRSSI::samples(const uint16_t* rssi, uint8_t length) m_count = 0U; m_accum = 0U; - m_min = 0xFFFFFFU; - m_max = 0x000000U; + m_min = 0xFFFFU; + m_max = 0x0000U; } } } diff --git a/DMRDMORX.cpp b/DMRDMORX.cpp index 506e3f6..1dab3dd 100644 --- a/DMRDMORX.cpp +++ b/DMRDMORX.cpp @@ -88,8 +88,6 @@ void CDMRDMORX::samples(const q15_t* samples, const uint16_t* rssi, uint8_t leng bool CDMRDMORX::processSample(q15_t sample, uint16_t rssi) { - uint16_t rssi_avg; - m_buffer[m_dataPtr] = sample; m_rssi[m_dataPtr] = rssi; @@ -194,7 +192,7 @@ bool CDMRDMORX::processSample(q15_t sample, uint16_t rssi) // Send RSSI data approximately every second if (m_rssiCount == 2U) { // Calculate RSSI average over a burst period. We don't take into account 2.5 ms at the beginning and 2.5 ms at the end - rssi_avg = avgRSSI(m_startPtr + DMR_SYNC_LENGTH_SAMPLES / 2U, DMR_FRAME_LENGTH_SAMPLES - DMR_SYNC_LENGTH_SAMPLES); + uint16_t rssi_avg = avgRSSI(m_startPtr + DMR_SYNC_LENGTH_SAMPLES / 2U, DMR_FRAME_LENGTH_SAMPLES - DMR_SYNC_LENGTH_SAMPLES); frame[34U] = (rssi_avg >> 8) & 0xFFU; frame[35U] = (rssi_avg >> 0) & 0xFFU; serial.writeDMRData(true, frame, DMR_FRAME_LENGTH_BYTES + 3U); diff --git a/DMRSlotRX.cpp b/DMRSlotRX.cpp index 944d072..d126ab1 100644 --- a/DMRSlotRX.cpp +++ b/DMRSlotRX.cpp @@ -96,8 +96,6 @@ void CDMRSlotRX::reset() bool CDMRSlotRX::processSample(q15_t sample, uint16_t rssi) { - uint16_t rssi_avg; - m_delayPtr++; if (m_delayPtr < m_delay) return m_state != DMRRXS_NONE; @@ -199,7 +197,7 @@ bool CDMRSlotRX::processSample(q15_t sample, uint16_t rssi) // Send RSSI data approximately every second if (m_rssiCount == 2U) { // Calculate RSSI average over a burst period. We don't take into account 2.5 ms at the beginning and 2.5 ms at the end - rssi_avg = avgRSSI(m_startPtr + DMR_SYNC_LENGTH_SAMPLES / 2U, DMR_FRAME_LENGTH_SAMPLES - DMR_SYNC_LENGTH_SAMPLES); + uint16_t rssi_avg = avgRSSI(m_startPtr + DMR_SYNC_LENGTH_SAMPLES / 2U, DMR_FRAME_LENGTH_SAMPLES - DMR_SYNC_LENGTH_SAMPLES); frame[34U] = (rssi_avg >> 8) & 0xFFU; frame[35U] = (rssi_avg >> 0) & 0xFFU; serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 3U); diff --git a/MMDVM_STM32F4xx.coproj b/MMDVM_STM32F4xx.coproj index 30657cc..ccb0fbd 100644 --- a/MMDVM_STM32F4xx.coproj +++ b/MMDVM_STM32F4xx.coproj @@ -239,6 +239,7 @@ + @@ -261,6 +262,7 @@ + From 4b5f496a0ca4b86f3d2e874e065bca57990f387c Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Fri, 30 Dec 2016 11:35:39 +0000 Subject: [PATCH 2/3] Bump the version date. --- SerialPort.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SerialPort.cpp b/SerialPort.cpp index afd18b8..7972475 100644 --- a/SerialPort.cpp +++ b/SerialPort.cpp @@ -69,9 +69,9 @@ const uint8_t MMDVM_DEBUG4 = 0xF4U; const uint8_t MMDVM_DEBUG5 = 0xF5U; #if defined(EXTERNAL_OSC) -const uint8_t HARDWARE[] = "MMDVM 20161124 TCXO (D-Star/DMR/System Fusion/P25/RSSI/CW Id)"; +const uint8_t HARDWARE[] = "MMDVM 20161230 TCXO (D-Star/DMR/System Fusion/P25/RSSI/CW Id)"; #else -const uint8_t HARDWARE[] = "MMDVM 20161124 (D-Star/DMR/System Fusion/P25/RSSI/CW Id)"; +const uint8_t HARDWARE[] = "MMDVM 20161230 (D-Star/DMR/System Fusion/P25/RSSI/CW Id)"; #endif const uint8_t PROTOCOL_VERSION = 1U; From a05eaee855450f939ae52ee85eb425b29256a900 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Fri, 30 Dec 2016 13:48:55 +0000 Subject: [PATCH 3/3] Fix RSSI compile. --- DMRDMORX.cpp | 10 +++++----- DMRSlotRX.cpp | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/DMRDMORX.cpp b/DMRDMORX.cpp index 1dab3dd..df9e717 100644 --- a/DMRDMORX.cpp +++ b/DMRDMORX.cpp @@ -229,7 +229,7 @@ bool CDMRDMORX::processSample(q15_t sample, uint16_t rssi) // Send RSSI data approximately every second if (m_rssiCount == 2U) { // Calculate RSSI average over a burst period. We don't take into account 2.5 ms at the beginning and 2.5 ms at the end - rssi_avg = avgRSSI(m_startPtr + DMR_SYNC_LENGTH_SAMPLES / 2U, DMR_FRAME_LENGTH_SAMPLES - DMR_SYNC_LENGTH_SAMPLES); + uint16_t rssi_avg = avgRSSI(m_startPtr + DMR_SYNC_LENGTH_SAMPLES / 2U, DMR_FRAME_LENGTH_SAMPLES - DMR_SYNC_LENGTH_SAMPLES); frame[34U] = (rssi_avg >> 8) & 0xFFU; frame[35U] = (rssi_avg >> 0) & 0xFFU; serial.writeDMRData(true, frame, DMR_FRAME_LENGTH_BYTES + 3U); @@ -402,17 +402,17 @@ void CDMRDMORX::correlateSync(bool first) uint16_t CDMRDMORX::avgRSSI(uint16_t start, uint16_t count) { - float rssi_tmp = 0; - + float rssi_tmp = 0.0F; + for (uint16_t i = 0U; i < count; i++) { - rssi_tmp += (float) m_rssi[start]; + rssi_tmp += float(m_rssi[start]); start++; if (start >= DMO_BUFFER_LENGTH_SAMPLES) start -= DMO_BUFFER_LENGTH_SAMPLES; } - return (uint16_t) (rssi_tmp / count); + return uint16_t(rssi_tmp / count); } void CDMRDMORX::samplesToBits(uint16_t start, uint8_t count, uint8_t* buffer, uint16_t offset, q15_t centre, q15_t threshold) diff --git a/DMRSlotRX.cpp b/DMRSlotRX.cpp index d126ab1..708d008 100644 --- a/DMRSlotRX.cpp +++ b/DMRSlotRX.cpp @@ -235,7 +235,7 @@ bool CDMRSlotRX::processSample(q15_t sample, uint16_t rssi) // Send RSSI data approximately every second if (m_rssiCount == 2U) { // Calculate RSSI average over a burst period. We don't take into account 2.5 ms at the beginning and 2.5 ms at the end - rssi_avg = avgRSSI(m_startPtr + DMR_SYNC_LENGTH_SAMPLES / 2U, DMR_FRAME_LENGTH_SAMPLES - DMR_SYNC_LENGTH_SAMPLES); + uint16_t rssi_avg = avgRSSI(m_startPtr + DMR_SYNC_LENGTH_SAMPLES / 2U, DMR_FRAME_LENGTH_SAMPLES - DMR_SYNC_LENGTH_SAMPLES); frame[34U] = (rssi_avg >> 8) & 0xFFU; frame[35U] = (rssi_avg >> 0) & 0xFFU; serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 3U); @@ -368,17 +368,17 @@ void CDMRSlotRX::correlateSync(bool first) uint16_t CDMRSlotRX::avgRSSI(uint16_t start, uint16_t count) { - float rssi_tmp = 0; - + float rssi_tmp = 0.0F; + for (uint16_t i = 0U; i < count; i++) { - rssi_tmp += (float) m_rssi[start]; + rssi_tmp += float(m_rssi[start]); start++; if (start >= 900U) start -= 900U; } - return (uint16_t) (rssi_tmp / count); + return uint16_t(rssi_tmp / count); } void CDMRSlotRX::samplesToBits(uint16_t start, uint8_t count, uint8_t* buffer, uint16_t offset, q15_t centre, q15_t threshold)