mirror of https://github.com/markqvist/MMDVM.git
Add TX Delay buffer protection.
parent
e93b264d9c
commit
c0941c4856
|
@ -166,7 +166,10 @@ uint8_t CDMRDMOTX::getSpace() const
|
||||||
|
|
||||||
void CDMRDMOTX::setTXDelay(uint8_t delay)
|
void CDMRDMOTX::setTXDelay(uint8_t delay)
|
||||||
{
|
{
|
||||||
m_txDelay = 240U + uint16_t(delay) * 12U; // 200ms + tx delay
|
m_txDelay = 600U + uint16_t(delay) * 12U; // 500ms + tx delay
|
||||||
|
|
||||||
|
if (m_txDelay > 1200U)
|
||||||
|
m_txDelay = 1200U;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDMRDMOTX::createCACH(uint8_t* buffer, uint8_t slotIndex)
|
void CDMRDMOTX::createCACH(uint8_t* buffer, uint8_t slotIndex)
|
||||||
|
|
|
@ -42,7 +42,7 @@ private:
|
||||||
CSerialRB m_fifo;
|
CSerialRB m_fifo;
|
||||||
arm_fir_interpolate_instance_q15 m_modFilter;
|
arm_fir_interpolate_instance_q15 m_modFilter;
|
||||||
q15_t m_modState[16U]; // blockSize + phaseLength - 1, 4 + 9 - 1 plus some spare
|
q15_t m_modState[16U]; // blockSize + phaseLength - 1, 4 + 9 - 1 plus some spare
|
||||||
uint8_t m_poBuffer[800U];
|
uint8_t m_poBuffer[1200U];
|
||||||
uint16_t m_poLen;
|
uint16_t m_poLen;
|
||||||
uint16_t m_poPtr;
|
uint16_t m_poPtr;
|
||||||
uint32_t m_txDelay;
|
uint32_t m_txDelay;
|
||||||
|
|
|
@ -434,6 +434,9 @@ void CDStarTX::writeByte(uint8_t c)
|
||||||
void CDStarTX::setTXDelay(uint8_t delay)
|
void CDStarTX::setTXDelay(uint8_t delay)
|
||||||
{
|
{
|
||||||
m_txDelay = 300U + uint16_t(delay) * 6U; // 250ms + tx delay
|
m_txDelay = 300U + uint16_t(delay) * 6U; // 250ms + tx delay
|
||||||
|
|
||||||
|
if (m_txDelay > 600U)
|
||||||
|
m_txDelay = 600U;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t CDStarTX::getSpace() const
|
uint8_t CDStarTX::getSpace() const
|
||||||
|
|
|
@ -166,6 +166,9 @@ void CP25TX::writeByte(uint8_t c)
|
||||||
void CP25TX::setTXDelay(uint8_t delay)
|
void CP25TX::setTXDelay(uint8_t delay)
|
||||||
{
|
{
|
||||||
m_txDelay = 600U + uint16_t(delay) * 12U; // 500ms + tx delay
|
m_txDelay = 600U + uint16_t(delay) * 12U; // 500ms + tx delay
|
||||||
|
|
||||||
|
if (m_txDelay > 1200U)
|
||||||
|
m_txDelay = 1200U;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t CP25TX::getSpace() const
|
uint8_t CP25TX::getSpace() const
|
||||||
|
|
|
@ -152,6 +152,9 @@ void CYSFTX::writeByte(uint8_t c)
|
||||||
void CYSFTX::setTXDelay(uint8_t delay)
|
void CYSFTX::setTXDelay(uint8_t delay)
|
||||||
{
|
{
|
||||||
m_txDelay = 600U + uint16_t(delay) * 12U; // 500ms + tx delay
|
m_txDelay = 600U + uint16_t(delay) * 12U; // 500ms + tx delay
|
||||||
|
|
||||||
|
if (m_txDelay > 1200U)
|
||||||
|
m_txDelay = 1200U;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t CYSFTX::getSpace() const
|
uint8_t CYSFTX::getSpace() const
|
||||||
|
|
Loading…
Reference in New Issue