Reset items at the end of the slot and transmission.

48kHz
Jonathan Naylor 2016-08-23 21:11:36 +01:00
parent d948df69a9
commit 697cbf9c6c
2 changed files with 7 additions and 18 deletions

View File

@ -64,19 +64,9 @@ m_rssi(0U)
{ {
} }
void CDMRDMORX::start()
{
m_dataPtr = 0U;
m_bitPtr = 0U;
m_maxCorr = 0;
m_control = CONTROL_NONE;
}
void CDMRDMORX::reset() void CDMRDMORX::reset()
{ {
m_syncPtr = 0U; m_syncPtr = 0U;
m_dataPtr = 0U;
m_bitPtr = 0U;
m_maxCorr = 0; m_maxCorr = 0;
m_control = CONTROL_NONE; m_control = CONTROL_NONE;
m_syncCount = 0U; m_syncCount = 0U;
@ -204,15 +194,13 @@ bool CDMRDMORX::processSample(q15_t sample)
if (m_state == DMORXS_VOICE) { if (m_state == DMORXS_VOICE) {
DEBUG4("DMRDMORX: voice terminator found pos/centre/threshold", m_syncPtr, centre, threshold); DEBUG4("DMRDMORX: voice terminator found pos/centre/threshold", m_syncPtr, centre, threshold);
serial.writeDMRData(true, frame, DMR_FRAME_LENGTH_BYTES + 1U); serial.writeDMRData(true, frame, DMR_FRAME_LENGTH_BYTES + 1U);
m_state = DMORXS_NONE; reset();
m_endPtr = NOENDPTR;
} }
break; break;
default: // DT_CSBK default: // DT_CSBK
DEBUG4("DMRDMORX: csbk found pos/centre/threshold", m_syncPtr, centre, threshold); DEBUG4("DMRDMORX: csbk found pos/centre/threshold", m_syncPtr, centre, threshold);
serial.writeDMRData(true, frame, DMR_FRAME_LENGTH_BYTES + 1U); serial.writeDMRData(true, frame, DMR_FRAME_LENGTH_BYTES + 1U);
m_state = DMORXS_NONE; reset();
m_endPtr = NOENDPTR;
break; break;
} }
} }
@ -243,8 +231,7 @@ bool CDMRDMORX::processSample(q15_t sample)
m_syncCount++; m_syncCount++;
if (m_syncCount >= MAX_SYNC_LOST_FRAMES) { if (m_syncCount >= MAX_SYNC_LOST_FRAMES) {
serial.writeDMRLost(true); serial.writeDMRLost(true);
m_state = DMORXS_NONE; reset();
m_endPtr = NOENDPTR;
} }
} }
@ -278,6 +265,10 @@ bool CDMRDMORX::processSample(q15_t sample)
} }
} }
} }
// End of this slot, reset some items for the next slot.
m_maxCorr = 0;
m_control = CONTROL_NONE;
} }
m_dataPtr++; m_dataPtr++;

View File

@ -34,8 +34,6 @@ class CDMRDMORX {
public: public:
CDMRDMORX(); CDMRDMORX();
void start();
void samples(const q15_t* samples, uint8_t length); void samples(const q15_t* samples, uint8_t length);
void setColorCode(uint8_t colorCode); void setColorCode(uint8_t colorCode);