Sanity check the ring buffers.

48kHz
Jonathan Naylor 2016-06-13 19:47:45 +01:00
parent a381387c5c
commit 0c635f5132
6 changed files with 24 additions and 10 deletions

View File

@ -101,7 +101,7 @@ void CCWIdTX::process()
uint16_t space = io.getSpace();
while (space > CYCLE_LENGTH && space <= TX_RINGBUFFER_SIZE) {
while (space > CYCLE_LENGTH) {
bool b = READ_BIT1(m_poBuffer, m_poPtr);
if (b)
io.write(TONE, CYCLE_LENGTH);

View File

@ -113,7 +113,7 @@ void CDMRTX::process()
if (m_poLen > 0U) {
uint16_t space = io.getSpace();
while (space > (4U * DMR_RADIO_SYMBOL_LENGTH) && space <= TX_RINGBUFFER_SIZE) {
while (space > (4U * DMR_RADIO_SYMBOL_LENGTH)) {
uint8_t c = m_poBuffer[m_poPtr];
uint8_t m = m_markBuffer[m_poPtr];
m_poPtr++;

View File

@ -266,7 +266,7 @@ void CDStarTX::process()
if (m_poLen > 0U) {
uint16_t space = io.getSpace();
while (space > (8U * DSTAR_RADIO_BIT_LENGTH) && space <= TX_RINGBUFFER_SIZE) {
while (space > (8U * DSTAR_RADIO_BIT_LENGTH)) {
uint8_t c = m_poBuffer[m_poPtr++];
writeByte(c);

View File

@ -35,12 +35,19 @@ m_overflow(false)
uint16_t CSampleRB::getSpace() const
{
uint16_t n = 0U;
if (m_tail == m_head)
return m_full ? 0U : m_length;
n = m_full ? 0U : m_length;
else if (m_tail < m_head)
return m_length - m_head + m_tail;
n = m_length - m_head + m_tail;
else
return m_tail - m_head;
n = m_tail - m_head;
if (n > m_length)
n = 0U;
return n;
}
uint16_t CSampleRB::getData() const

View File

@ -39,12 +39,19 @@ void CSerialRB::reset()
uint16_t CSerialRB::getSpace() const
{
uint16_t n = 0U;
if (m_tail == m_head)
return m_full ? 0U : m_length;
n = m_full ? 0U : m_length;
else if (m_tail < m_head)
return m_length - m_head + m_tail;
n = m_length - m_head + m_tail;
else
return m_tail - m_head;
n = m_tail - m_head;
if (n > m_length)
n = 0U;
return n;
}
uint16_t CSerialRB::getData() const

View File

@ -77,7 +77,7 @@ void CYSFTX::process()
if (m_poLen > 0U) {
uint16_t space = io.getSpace();
while (space > (4U * YSF_RADIO_SYMBOL_LENGTH) && space <= TX_RINGBUFFER_SIZE) {
while (space > (4U * YSF_RADIO_SYMBOL_LENGTH)) {
uint8_t c = m_poBuffer[m_poPtr++];
writeByte(c);