mirror of https://github.com/markqvist/MMDVM.git
Merge remote-tracking branch 'g4klx/master'
commit
55cb3945df
|
@ -54,6 +54,7 @@ const uint8_t BIT_MASK_TABLE[] = {0x80U, 0x40U, 0x20U, 0x10U, 0x08U, 0x04U, 0x02
|
|||
#define READ_BIT1(p,i) (p[(i)>>3] & BIT_MASK_TABLE[(i)&7])
|
||||
|
||||
const uint32_t STARTUP_COUNT = 20U;
|
||||
const uint32_t ABORT_COUNT = 6U;
|
||||
|
||||
CDMRTX::CDMRTX() :
|
||||
m_fifo(),
|
||||
|
@ -69,6 +70,7 @@ m_poBuffer(),
|
|||
m_poLen(0U),
|
||||
m_poPtr(0U),
|
||||
m_frameCount(0U),
|
||||
m_abortCount(),
|
||||
m_abort()
|
||||
{
|
||||
::memset(m_modState, 0x00U, 16U * sizeof(q15_t));
|
||||
|
@ -83,6 +85,9 @@ m_abort()
|
|||
|
||||
m_abort[0U] = false;
|
||||
m_abort[1U] = false;
|
||||
|
||||
m_abortCount[0U] = 0U;
|
||||
m_abortCount[1U] = 0U;
|
||||
}
|
||||
|
||||
void CDMRTX::process()
|
||||
|
@ -210,10 +215,12 @@ uint8_t CDMRTX::writeAbort(const uint8_t* data, uint8_t length)
|
|||
|
||||
switch (data[0U]) {
|
||||
case 1U:
|
||||
m_abortCount[0U] = 0U;
|
||||
m_abort[0U] = true;
|
||||
return 0U;
|
||||
|
||||
case 2U:
|
||||
m_abortCount[1U] = 0U;
|
||||
m_abort[1U] = true;
|
||||
return 0U;
|
||||
|
||||
|
@ -227,6 +234,8 @@ void CDMRTX::setStart(bool start)
|
|||
m_state = start ? DMRTXSTATE_SLOT1 : DMRTXSTATE_IDLE;
|
||||
|
||||
m_frameCount = 0U;
|
||||
m_abortCount[0U] = 0U;
|
||||
m_abortCount[1U] = 0U;
|
||||
|
||||
m_abort[0U] = false;
|
||||
m_abort[1U] = false;
|
||||
|
@ -282,7 +291,7 @@ uint8_t CDMRTX::getSpace2() const
|
|||
|
||||
void CDMRTX::createData(uint8_t slotIndex)
|
||||
{
|
||||
if (m_fifo[slotIndex].getData() > 0U && m_frameCount >= STARTUP_COUNT) {
|
||||
if (m_fifo[slotIndex].getData() >= DMR_FRAME_LENGTH_BYTES && m_frameCount >= STARTUP_COUNT && m_abortCount[slotIndex] >= ABORT_COUNT) {
|
||||
for (unsigned int i = 0U; i < DMR_FRAME_LENGTH_BYTES; i++) {
|
||||
m_poBuffer[i] = m_fifo[slotIndex].get();
|
||||
m_markBuffer[i] = MARK_NONE;
|
||||
|
@ -335,6 +344,8 @@ void CDMRTX::createCal()
|
|||
void CDMRTX::createCACH(uint8_t txSlotIndex, uint8_t rxSlotIndex)
|
||||
{
|
||||
m_frameCount++;
|
||||
m_abortCount[0U]++;
|
||||
m_abortCount[1U]++;
|
||||
|
||||
if (m_cachPtr >= 12U)
|
||||
m_cachPtr = 0U;
|
||||
|
|
Loading…
Reference in New Issue