mirror of https://github.com/g4klx/MMDVM.git
Merge remote-tracking branch 'g4klx/master'
This commit is contained in:
commit
d0f320a862
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
14
DMRDMORX.cpp
14
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);
|
||||
|
@ -231,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);
|
||||
|
@ -404,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)
|
||||
|
|
|
@ -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);
|
||||
|
@ -237,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);
|
||||
|
@ -370,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)
|
||||
|
|
|
@ -239,6 +239,7 @@
|
|||
<File name="DMRDMOTX.cpp" path="DMRDMOTX.cpp" type="1"/>
|
||||
<File name="DMRRX.cpp" path="DMRRX.cpp" type="1"/>
|
||||
<File name="YSFRX.cpp" path="YSFRX.cpp" type="1"/>
|
||||
<File name="CalRSSI.cpp" path="CalRSSI.cpp" type="1"/>
|
||||
<File name="STM32F4XX_Lib/Device/stm32f4xx.h" path="STM32F4XX_Lib/Device/stm32f4xx.h" type="1"/>
|
||||
<File name="SampleRB.cpp" path="SampleRB.cpp" type="1"/>
|
||||
<File name="CalDStarTX.h" path="CalDStarTX.h" type="1"/>
|
||||
|
@ -261,6 +262,7 @@
|
|||
<File name="SampleRB.h" path="SampleRB.h" type="1"/>
|
||||
<File name="YSFTX.h" path="YSFTX.h" type="1"/>
|
||||
<File name="DMRRX.h" path="DMRRX.h" type="1"/>
|
||||
<File name="CalRSSI.h" path="CalRSSI.h" type="1"/>
|
||||
<File name="IOTeensy.cpp" path="IOTeensy.cpp" type="1"/>
|
||||
<File name="MMDVM.cpp" path="MMDVM.cpp" type="1"/>
|
||||
<File name="STM32F4XX_Lib/CMSIS/Include/core_cmSimd.h" path="STM32F4XX_Lib/CMSIS/Include/core_cmSimd.h" type="1"/>
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue