|
|
|
@ -44,6 +44,7 @@ using namespace nxdn;
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
NXDNTX::NXDNTX() :
|
|
|
|
NXDNTX::NXDNTX() :
|
|
|
|
m_fifo(NXDN_TX_BUFFER_LEN),
|
|
|
|
m_fifo(NXDN_TX_BUFFER_LEN),
|
|
|
|
|
|
|
|
m_state(NXDNTXSTATE_NORMAL),
|
|
|
|
m_poBuffer(),
|
|
|
|
m_poBuffer(),
|
|
|
|
m_poLen(0U),
|
|
|
|
m_poLen(0U),
|
|
|
|
m_poPtr(0U),
|
|
|
|
m_poPtr(0U),
|
|
|
|
@ -59,7 +60,8 @@ NXDNTX::NXDNTX() :
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
void NXDNTX::process()
|
|
|
|
void NXDNTX::process()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (m_fifo.getData() == 0U && m_poLen == 0U && m_tailCnt > 0U) {
|
|
|
|
if (m_fifo.getData() == 0U && m_poLen == 0U && m_tailCnt > 0U &&
|
|
|
|
|
|
|
|
m_state != NXDNTXSTATE_CAL) {
|
|
|
|
// transmit silence until the hang timer has expired
|
|
|
|
// transmit silence until the hang timer has expired
|
|
|
|
uint16_t space = io.getSpace();
|
|
|
|
uint16_t space = io.getSpace();
|
|
|
|
|
|
|
|
|
|
|
|
@ -82,10 +84,14 @@ void NXDNTX::process()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (m_poLen == 0U) {
|
|
|
|
if (m_poLen == 0U) {
|
|
|
|
|
|
|
|
if (m_state == NXDNTXSTATE_CAL)
|
|
|
|
|
|
|
|
m_tailCnt = 0U;
|
|
|
|
|
|
|
|
|
|
|
|
if (m_fifo.getData() == 0U)
|
|
|
|
if (m_fifo.getData() == 0U)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
createData();
|
|
|
|
createData();
|
|
|
|
|
|
|
|
|
|
|
|
DEBUG2("NXDNTX: process(): poLen", m_poLen);
|
|
|
|
DEBUG2("NXDNTX: process(): poLen", m_poLen);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -165,6 +171,15 @@ void NXDNTX::setTxHang(uint8_t txHang)
|
|
|
|
m_txHang = txHang * 600U;
|
|
|
|
m_txHang = txHang * 600U;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Helper to set the calibration state for Tx.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="start"></param>
|
|
|
|
|
|
|
|
void NXDNTX::setCal(bool start)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
m_state = start ? NXDNTXSTATE_CAL : NXDNTXSTATE_NORMAL;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// Helper to get how much space the ring buffer has for samples.
|
|
|
|
/// Helper to get how much space the ring buffer has for samples.
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
|