mirror of https://github.com/g4klx/MMDVM.git
Add working sync sample dumping for DMR, P25 and YSF.
This commit is contained in:
parent
f3a3132a6c
commit
ac4249bbb1
23
DMRDMORX.cpp
23
DMRDMORX.cpp
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
#define WANT_DEBUG
|
#define WANT_DEBUG
|
||||||
|
|
||||||
#define DUMP_SAMPLES
|
// #define DUMP_SAMPLES
|
||||||
|
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
|
@ -131,7 +131,7 @@ bool CDMRDMORX::processSample(q15_t sample, uint16_t rssi)
|
||||||
samplesToBits(ptr, DMR_FRAME_LENGTH_SYMBOLS, frame, 8U, centre, threshold);
|
samplesToBits(ptr, DMR_FRAME_LENGTH_SYMBOLS, frame, 8U, centre, threshold);
|
||||||
#if defined(DUMP_SAMPLES)
|
#if defined(DUMP_SAMPLES)
|
||||||
if (m_control == CONTROL_DATA || m_control == CONTROL_VOICE)
|
if (m_control == CONTROL_DATA || m_control == CONTROL_VOICE)
|
||||||
writeSync(ptr);
|
writeSync();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (m_control == CONTROL_DATA) {
|
if (m_control == CONTROL_DATA) {
|
||||||
|
@ -432,23 +432,24 @@ void CDMRDMORX::writeRSSIData(uint8_t* frame)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDMRDMORX::writeSync(uint16_t start)
|
#if defined(DUMP_SAMPLES)
|
||||||
|
void CDMRDMORX::writeSync()
|
||||||
{
|
{
|
||||||
// XXX Check this
|
uint16_t ptr = m_syncPtr + DMO_BUFFER_LENGTH_SAMPLES - DMR_SYNC_LENGTH_SAMPLES + DMR_RADIO_SYMBOL_LENGTH;
|
||||||
start += DMR_AUDIO_LENGTH_SYMBOLS / 2U;
|
if (ptr >= DMO_BUFFER_LENGTH_SAMPLES)
|
||||||
if (start >= DMO_BUFFER_LENGTH_SAMPLES)
|
ptr -= DMO_BUFFER_LENGTH_SAMPLES;
|
||||||
start -= DMO_BUFFER_LENGTH_SAMPLES;
|
|
||||||
|
|
||||||
q15_t sync[DMR_SYNC_LENGTH_SYMBOLS];
|
q15_t sync[DMR_SYNC_LENGTH_SYMBOLS];
|
||||||
|
|
||||||
for (uint16_t i = 0U; i < DMR_SYNC_LENGTH_SYMBOLS; i++) {
|
for (uint16_t i = 0U; i < DMR_SYNC_LENGTH_SYMBOLS; i++) {
|
||||||
sync[i] = m_buffer[start];
|
sync[i] = m_buffer[ptr];
|
||||||
|
|
||||||
start += DMR_RADIO_SYMBOL_LENGTH;
|
ptr += DMR_RADIO_SYMBOL_LENGTH;
|
||||||
if (start >= DMO_BUFFER_LENGTH_SAMPLES)
|
if (ptr >= DMO_BUFFER_LENGTH_SAMPLES)
|
||||||
start -= DMO_BUFFER_LENGTH_SAMPLES;
|
ptr -= DMO_BUFFER_LENGTH_SAMPLES;
|
||||||
}
|
}
|
||||||
|
|
||||||
serial.writeSamples(STATE_DMR, sync, DMR_SYNC_LENGTH_SYMBOLS);
|
serial.writeSamples(STATE_DMR, sync, DMR_SYNC_LENGTH_SYMBOLS);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ private:
|
||||||
void correlateSync(bool first);
|
void correlateSync(bool first);
|
||||||
void samplesToBits(uint16_t start, uint8_t count, uint8_t* buffer, uint16_t offset, q15_t centre, q15_t threshold);
|
void samplesToBits(uint16_t start, uint8_t count, uint8_t* buffer, uint16_t offset, q15_t centre, q15_t threshold);
|
||||||
void writeRSSIData(uint8_t* frame);
|
void writeRSSIData(uint8_t* frame);
|
||||||
void writeSync(uint16_t start);
|
void writeSync();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
#define WANT_DEBUG
|
#define WANT_DEBUG
|
||||||
|
|
||||||
#define DUMP_SAMPLES
|
// #define DUMP_SAMPLES
|
||||||
|
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
|
@ -134,7 +134,7 @@ bool CDMRSlotRX::processSample(q15_t sample, uint16_t rssi)
|
||||||
samplesToBits(ptr, DMR_FRAME_LENGTH_SYMBOLS, frame, 8U, centre, threshold);
|
samplesToBits(ptr, DMR_FRAME_LENGTH_SYMBOLS, frame, 8U, centre, threshold);
|
||||||
#if defined(DUMP_SAMPLES)
|
#if defined(DUMP_SAMPLES)
|
||||||
if (m_control == CONTROL_DATA || m_control == CONTROL_VOICE)
|
if (m_control == CONTROL_DATA || m_control == CONTROL_VOICE)
|
||||||
writeSync(ptr);
|
writeSync();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (m_control == CONTROL_DATA) {
|
if (m_control == CONTROL_DATA) {
|
||||||
|
@ -394,19 +394,19 @@ void CDMRSlotRX::writeRSSIData(uint8_t* frame)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDMRSlotRX::writeSync(uint16_t start)
|
#if defined(DUMP_SAMPLES)
|
||||||
|
void CDMRSlotRX::writeSync()
|
||||||
{
|
{
|
||||||
// XXX Check this
|
uint16_t ptr = m_syncPtr - DMR_SYNC_LENGTH_SAMPLES + DMR_RADIO_SYMBOL_LENGTH;
|
||||||
start += DMR_AUDIO_LENGTH_SYMBOLS / 2U;
|
|
||||||
|
|
||||||
q15_t sync[DMR_SYNC_LENGTH_SYMBOLS];
|
q15_t sync[DMR_SYNC_LENGTH_SYMBOLS];
|
||||||
|
|
||||||
for (uint16_t i = 0U; i < DMR_SYNC_LENGTH_SYMBOLS; i++) {
|
for (uint16_t i = 0U; i < DMR_SYNC_LENGTH_SYMBOLS; i++) {
|
||||||
sync[i] = m_buffer[start];
|
sync[i] = m_buffer[ptr];
|
||||||
|
ptr += DMR_RADIO_SYMBOL_LENGTH;
|
||||||
start += DMR_RADIO_SYMBOL_LENGTH;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
serial.writeSamples(STATE_DMR, sync, DMR_SYNC_LENGTH_SYMBOLS);
|
serial.writeSamples(STATE_DMR, sync, DMR_SYNC_LENGTH_SYMBOLS);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ private:
|
||||||
void correlateSync(bool first);
|
void correlateSync(bool first);
|
||||||
void samplesToBits(uint16_t start, uint8_t count, uint8_t* buffer, uint16_t offset, q15_t centre, q15_t threshold);
|
void samplesToBits(uint16_t start, uint8_t count, uint8_t* buffer, uint16_t offset, q15_t centre, q15_t threshold);
|
||||||
void writeRSSIData(uint8_t* frame);
|
void writeRSSIData(uint8_t* frame);
|
||||||
void writeSync(uint16_t start);
|
void writeSync();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
#define WANT_DEBUG
|
#define WANT_DEBUG
|
||||||
|
|
||||||
#define DUMP_SAMPLES
|
// #define DUMP_SAMPLES
|
||||||
|
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
|
@ -438,6 +438,7 @@ void CP25RX::writeRSSILdu(uint8_t* ldu)
|
||||||
m_rssiCount = 0U;
|
m_rssiCount = 0U;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(DUMP_SAMPLES)
|
||||||
void CP25RX::writeSync(uint16_t start)
|
void CP25RX::writeSync(uint16_t start)
|
||||||
{
|
{
|
||||||
q15_t sync[P25_SYNC_LENGTH_SYMBOLS];
|
q15_t sync[P25_SYNC_LENGTH_SYMBOLS];
|
||||||
|
@ -452,3 +453,4 @@ void CP25RX::writeSync(uint16_t start)
|
||||||
|
|
||||||
serial.writeSamples(STATE_P25, sync, P25_SYNC_LENGTH_SYMBOLS);
|
serial.writeSamples(STATE_P25, sync, P25_SYNC_LENGTH_SYMBOLS);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
#define WANT_DEBUG
|
#define WANT_DEBUG
|
||||||
|
|
||||||
#define DUMP_SAMPLES
|
// #define DUMP_SAMPLES
|
||||||
|
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
|
@ -354,6 +354,7 @@ void CYSFRX::writeRSSIData(uint8_t* data)
|
||||||
m_rssiCount = 0U;
|
m_rssiCount = 0U;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(DUMP_SAMPLES)
|
||||||
void CYSFRX::writeSync(uint16_t start)
|
void CYSFRX::writeSync(uint16_t start)
|
||||||
{
|
{
|
||||||
q15_t sync[YSF_SYNC_LENGTH_SYMBOLS];
|
q15_t sync[YSF_SYNC_LENGTH_SYMBOLS];
|
||||||
|
@ -368,3 +369,5 @@ void CYSFRX::writeSync(uint16_t start)
|
||||||
|
|
||||||
serial.writeSamples(STATE_YSF, sync, YSF_SYNC_LENGTH_SYMBOLS);
|
serial.writeSamples(STATE_YSF, sync, YSF_SYNC_LENGTH_SYMBOLS);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue