mirror of https://github.com/markqvist/MMDVM.git
Stop TX buffer overflows.
parent
90ff130c51
commit
c509f11c2a
|
@ -101,7 +101,7 @@ void CCWIdTX::process()
|
|||
|
||||
uint16_t space = io.getSpace();
|
||||
|
||||
while (space > CYCLE_LENGTH && space < 1000U) {
|
||||
while (space > CYCLE_LENGTH && space <= TX_RINGBUFFER_SIZE) {
|
||||
bool b = READ_BIT1(m_poBuffer, m_poPtr);
|
||||
if (b)
|
||||
io.write(TONE, CYCLE_LENGTH);
|
||||
|
|
|
@ -113,7 +113,7 @@ void CDMRTX::process()
|
|||
if (m_poLen > 0U) {
|
||||
uint16_t space = io.getSpace();
|
||||
|
||||
while (space > (4U * DMR_RADIO_SYMBOL_LENGTH) && space < 1000U) {
|
||||
while (space > (4U * DMR_RADIO_SYMBOL_LENGTH) && space <= TX_RINGBUFFER_SIZE) {
|
||||
uint8_t c = m_poBuffer[m_poPtr];
|
||||
uint8_t m = m_markBuffer[m_poPtr];
|
||||
m_poPtr++;
|
||||
|
|
|
@ -266,7 +266,7 @@ void CDStarTX::process()
|
|||
if (m_poLen > 0U) {
|
||||
uint16_t space = io.getSpace();
|
||||
|
||||
while (space > (8U * DSTAR_RADIO_BIT_LENGTH) && space < 1000U) {
|
||||
while (space > (8U * DSTAR_RADIO_BIT_LENGTH) && space <= TX_RINGBUFFER_SIZE) {
|
||||
uint8_t c = m_poBuffer[m_poPtr++];
|
||||
writeByte(c);
|
||||
|
||||
|
|
|
@ -64,6 +64,9 @@ const uint8_t MARK_NONE = 0x00U;
|
|||
|
||||
const uint16_t RX_BLOCK_SIZE = 2U;
|
||||
|
||||
const uint16_t TX_RINGBUFFER_SIZE = 500U;
|
||||
const uint16_t RX_RINGBUFFER_SIZE = 600U;
|
||||
|
||||
extern MMDVM_STATE m_modemState;
|
||||
|
||||
extern bool m_dstarEnable;
|
||||
|
|
7
IO.cpp
7
IO.cpp
|
@ -36,9 +36,6 @@ const uint16_t GMSK_FILTER_LEN = 12U;
|
|||
|
||||
const uint16_t DC_OFFSET = 2048U;
|
||||
|
||||
const uint16_t TX_BUFFER_SIZE = 501U;
|
||||
const uint16_t RX_BUFFER_SIZE = 601U;
|
||||
|
||||
#if defined(__SAM3X8E__)
|
||||
// An Arduino Due
|
||||
#if defined(ARDUINO_DUE_PAPA)
|
||||
|
@ -105,8 +102,8 @@ m_pinDAC(PIN_DAC),
|
|||
m_ticker(),
|
||||
#endif
|
||||
m_started(false),
|
||||
m_rxBuffer(RX_BUFFER_SIZE),
|
||||
m_txBuffer(TX_BUFFER_SIZE),
|
||||
m_rxBuffer(RX_RINGBUFFER_SIZE),
|
||||
m_txBuffer(TX_RINGBUFFER_SIZE),
|
||||
m_C4FSKFilter(),
|
||||
m_GMSKFilter(),
|
||||
m_C4FSKState(),
|
||||
|
|
|
@ -78,7 +78,7 @@ void CYSFTX::process()
|
|||
if (m_poLen > 0U) {
|
||||
uint16_t space = io.getSpace();
|
||||
|
||||
while (space > (4U * YSF_RADIO_SYMBOL_LENGTH) && space < 1000U) {
|
||||
while (space > (4U * YSF_RADIO_SYMBOL_LENGTH) && space <= TX_RINGBUFFER_SIZE) {
|
||||
uint8_t c = m_poBuffer[m_poPtr++];
|
||||
writeByte(c);
|
||||
|
||||
|
|
Loading…
Reference in New Issue