mirror of
https://github.com/g4klx/MMDVM.git
synced 2026-04-07 15:36:21 +00:00
Add sync dumping and improve YSF and P25.
This commit is contained in:
parent
4bc0f36b49
commit
f3a3132a6c
10 changed files with 311 additions and 125 deletions
29
DMRDMORX.cpp
29
DMRDMORX.cpp
|
|
@ -18,6 +18,8 @@
|
|||
|
||||
#define WANT_DEBUG
|
||||
|
||||
#define DUMP_SAMPLES
|
||||
|
||||
#include "Config.h"
|
||||
#include "Globals.h"
|
||||
#include "DMRDMORX.h"
|
||||
|
|
@ -127,7 +129,11 @@ bool CDMRDMORX::processSample(q15_t sample, uint16_t rssi)
|
|||
ptr -= DMO_BUFFER_LENGTH_SAMPLES;
|
||||
|
||||
samplesToBits(ptr, DMR_FRAME_LENGTH_SYMBOLS, frame, 8U, centre, threshold);
|
||||
|
||||
#if defined(DUMP_SAMPLES)
|
||||
if (m_control == CONTROL_DATA || m_control == CONTROL_VOICE)
|
||||
writeSync(ptr);
|
||||
#endif
|
||||
|
||||
if (m_control == CONTROL_DATA) {
|
||||
// Data sync
|
||||
uint8_t colorCode;
|
||||
|
|
@ -425,3 +431,24 @@ void CDMRDMORX::writeRSSIData(uint8_t* frame)
|
|||
serial.writeDMRData(true, frame, DMR_FRAME_LENGTH_BYTES + 1U);
|
||||
#endif
|
||||
}
|
||||
|
||||
void CDMRDMORX::writeSync(uint16_t start)
|
||||
{
|
||||
// XXX Check this
|
||||
start += DMR_AUDIO_LENGTH_SYMBOLS / 2U;
|
||||
if (start >= DMO_BUFFER_LENGTH_SAMPLES)
|
||||
start -= DMO_BUFFER_LENGTH_SAMPLES;
|
||||
|
||||
q15_t sync[DMR_SYNC_LENGTH_SYMBOLS];
|
||||
|
||||
for (uint16_t i = 0U; i < DMR_SYNC_LENGTH_SYMBOLS; i++) {
|
||||
sync[i] = m_buffer[start];
|
||||
|
||||
start += DMR_RADIO_SYMBOL_LENGTH;
|
||||
if (start >= DMO_BUFFER_LENGTH_SAMPLES)
|
||||
start -= DMO_BUFFER_LENGTH_SAMPLES;
|
||||
}
|
||||
|
||||
serial.writeSamples(STATE_DMR, sync, DMR_SYNC_LENGTH_SYMBOLS);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue