diff --git a/DMRSlotRX.cpp b/DMRSlotRX.cpp index 5b2db45..6794673 100644 --- a/DMRSlotRX.cpp +++ b/DMRSlotRX.cpp @@ -93,7 +93,7 @@ bool CDMRSlotRX::processSample(q15_t sample) if (m_dataPtr >= min && m_dataPtr <= max) correlateSync(sample); } else { - if (m_dataPtr >= 160U && m_dataPtr <= 530U) + if (m_dataPtr >= 380U && m_dataPtr <= 530U) correlateSync(sample); } diff --git a/DMRTX.cpp b/DMRTX.cpp index b9007c0..812b33f 100644 --- a/DMRTX.cpp +++ b/DMRTX.cpp @@ -107,7 +107,7 @@ void CDMRTX::process() if (m_poLen > 0U) { uint16_t space = io.getSpace(); - while (space > (4U * DMR_RADIO_SYMBOL_LENGTH)) { + while (space > (4U * DMR_RADIO_SYMBOL_LENGTH) && space < 1000U) { uint8_t c = m_poBuffer[m_poPtr]; uint8_t m = m_markBuffer[m_poPtr]; m_poPtr++; diff --git a/DStarTX.cpp b/DStarTX.cpp index 72e64b3..1cfdb4f 100644 --- a/DStarTX.cpp +++ b/DStarTX.cpp @@ -260,7 +260,7 @@ void CDStarTX::process() if (m_poLen > 0U) { uint16_t space = io.getSpace(); - while (space > (8U * DSTAR_RADIO_BIT_LENGTH)) { + while (space > (8U * DSTAR_RADIO_BIT_LENGTH) && space < 1000U) { uint8_t c = m_poBuffer[m_poPtr++]; writeByte(c); diff --git a/IO.cpp b/IO.cpp index 6b74d3d..2d64514 100644 --- a/IO.cpp +++ b/IO.cpp @@ -32,7 +32,7 @@ const uint16_t GMSK_FILTER_LEN = 12U; const uint16_t DC_OFFSET = 2048U; -const uint16_t TX_BUFFER_SIZE = 1001U; +const uint16_t TX_BUFFER_SIZE = 501U; const uint16_t RX_BUFFER_SIZE = 601U; #if defined(__SAM3X8E__) diff --git a/YSFTX.cpp b/YSFTX.cpp index d8d1123..b59c8c5 100644 --- a/YSFTX.cpp +++ b/YSFTX.cpp @@ -75,7 +75,7 @@ void CYSFTX::process() if (m_poLen > 0U) { uint16_t space = io.getSpace(); - while (space > (4U * YSF_RADIO_SYMBOL_LENGTH)) { + while (space > (4U * YSF_RADIO_SYMBOL_LENGTH) && space < 1000U) { uint8_t c = m_poBuffer[m_poPtr++]; writeByte(c);