Improve frame dumping capabilities.

This commit is contained in:
Jonathan Naylor 2017-02-26 12:33:59 +00:00
parent a6affb765e
commit 7fafd762d2
12 changed files with 100 additions and 35 deletions

View file

@ -18,6 +18,8 @@
#define WANT_DEBUG
// #define DUMP_SAMPLES
#include "Config.h"
#include "Globals.h"
#include "DMRIdleRX.h"
@ -159,6 +161,9 @@ void CDMRIdleRX::processSample(q15_t sample)
if (colorCode == m_colorCode && dataType == DT_CSBK) {
frame[0U] = CONTROL_IDLE | CONTROL_DATA | DT_CSBK;
serial.writeDMRData(false, frame, DMR_FRAME_LENGTH_BYTES + 1U);
#if defined(DUMP_SAMPLES)
writeSamples(ptr, frame[0U]);
#endif
}
m_endPtr = NOENDPTR;
@ -212,3 +217,19 @@ void CDMRIdleRX::setColorCode(uint8_t colorCode)
m_colorCode = colorCode;
}
#if defined(DUMP_SAMPLES)
void CDMRIdleRX::writeSamples(uint16_t start, uint8_t control)
{
q15_t samples[DMR_FRAME_LENGTH_SYMBOLS];
for (uint16_t i = 0U; i < DMR_FRAME_LENGTH_SYMBOLS; i++) {
samples[i] = m_buffer[start];
start += DMR_RADIO_SYMBOL_LENGTH;
if (start >= DMR_FRAME_LENGTH_SAMPLES)
start -= DMR_FRAME_LENGTH_SAMPLES;
}
serial.writeSamples(STATE_DMR, control, samples, DMR_FRAME_LENGTH_SYMBOLS);
}
#endif