Add dummy RSSI sampling code.

This commit is contained in:
Jonathan Naylor 2016-10-31 19:39:32 +00:00
parent e0ea81bbc9
commit ba969d85d0
10 changed files with 182 additions and 34 deletions

View file

@ -76,17 +76,17 @@ void CDMRDMORX::reset()
m_rssiCount = 0U;
}
void CDMRDMORX::samples(const q15_t* samples, uint8_t length)
void CDMRDMORX::samples(const q15_t* samples, const uint16_t* rssi, uint8_t length)
{
bool dcd = false;
for (uint8_t i = 0U; i < length; i++)
dcd = processSample(samples[i]);
dcd = processSample(samples[i], rssi[i]);
io.setDecode(dcd);
}
bool CDMRDMORX::processSample(q15_t sample)
bool CDMRDMORX::processSample(q15_t sample, uint16_t rssi)
{
m_buffer[m_dataPtr] = sample;
@ -97,11 +97,10 @@ bool CDMRDMORX::processSample(q15_t sample)
if (m_state == DMORXS_NONE) {
correlateSync(true);
} else {
#if defined(SEND_RSSI_DATA)
// Grab the RSSI data during the frame
if (m_state == DMORXS_VOICE && m_dataPtr == m_syncPtr && m_rssiCount == 2U)
m_rssi = io.getRSSIValue();
#endif
if (m_state == DMORXS_VOICE && m_dataPtr == m_syncPtr)
m_rssi = rssi;
uint16_t min = m_syncPtr + DMO_BUFFER_LENGTH_SAMPLES - 1U;
uint16_t max = m_syncPtr + 1U;