Fix POCSAG cal TX on/off

pocsag_cal
Andy CA6JAU 7 years ago
parent b7a6edef6d
commit 5932cc227b

@ -121,11 +121,8 @@ void loop()
if (m_nxdnEnable && m_modemState == STATE_NXDN) if (m_nxdnEnable && m_modemState == STATE_NXDN)
nxdnTX.process(); nxdnTX.process();
if (m_pocsagEnable && (m_modemState == STATE_POCSAG || pocsagTX.busy())) { if (m_pocsagEnable && (m_modemState == STATE_POCSAG || pocsagTX.busy()))
if (m_calState == STATE_POCSAGCAL)
pocsagTX.setCal(true);
pocsagTX.process(); pocsagTX.process();
}
if (m_calState == STATE_DMRCAL || m_calState == STATE_DMRDMO1K || m_calState == STATE_INTCAL) if (m_calState == STATE_DMRCAL || m_calState == STATE_DMRDMO1K || m_calState == STATE_INTCAL)
calDMR.process(); calDMR.process();

@ -87,8 +87,8 @@ bool CPOCSAGTX::busy()
uint8_t CPOCSAGTX::writeData(const uint8_t* data, uint8_t length) uint8_t CPOCSAGTX::writeData(const uint8_t* data, uint8_t length)
{ {
//if (length != POCSAG_FRAME_LENGTH_BYTES) if (length != POCSAG_FRAME_LENGTH_BYTES)
//return 4U; return 4U;
uint16_t space = m_buffer.getSpace(); uint16_t space = m_buffer.getSpace();
if (space < POCSAG_FRAME_LENGTH_BYTES) if (space < POCSAG_FRAME_LENGTH_BYTES)
@ -128,9 +128,17 @@ uint8_t CPOCSAGTX::getSpace() const
return m_buffer.getSpace() / POCSAG_FRAME_LENGTH_BYTES; return m_buffer.getSpace() / POCSAG_FRAME_LENGTH_BYTES;
} }
void CPOCSAGTX::setCal(bool start) uint8_t CPOCSAGTX::setCal(const uint8_t* data, uint8_t length)
{ {
m_cal = start ? true : false; if (length != 1U)
return 4U;
m_cal = data[0U] == 1U;
if (!m_cal)
io.ifConf(STATE_POCSAG, true);
return 0U;
} }
void CPOCSAGTX::createCal() void CPOCSAGTX::createCal()

@ -29,7 +29,7 @@ public:
void setTXDelay(uint8_t delay); void setTXDelay(uint8_t delay);
void setCal(bool); uint8_t setCal(const uint8_t* data, uint8_t length);
void createCal(); void createCal();

@ -294,8 +294,9 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
m_pocsagEnable = true; m_pocsagEnable = true;
m_modemState = STATE_POCSAG; m_modemState = STATE_POCSAG;
m_calState = modemState; m_calState = modemState;
if (m_firstCal) //if (m_firstCal)
io.updateCal(); // io.updateCal();
io.ifConf(STATE_POCSAG, true);
} }
else { else {
m_modemState = modemState; m_modemState = modemState;
@ -329,7 +330,7 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
io.setLoDevYSF(ysfLoDev); io.setLoDevYSF(ysfLoDev);
if (!m_firstCal || (modemState != STATE_DMRCAL && modemState != STATE_DMRDMO1K && modemState != STATE_RSSICAL && modemState != STATE_INTCAL)) { if (!m_firstCal || (modemState != STATE_DMRCAL && modemState != STATE_DMRDMO1K && modemState != STATE_RSSICAL && modemState != STATE_INTCAL && modemState != STATE_POCSAGCAL)) {
if(m_dstarEnable) if(m_dstarEnable)
io.ifConf(STATE_DSTAR, true); io.ifConf(STATE_DSTAR, true);
else if(m_dmrEnable) else if(m_dmrEnable)
@ -391,8 +392,8 @@ uint8_t CSerialPort::setMode(const uint8_t* data, uint8_t length)
m_pocsagEnable = true; m_pocsagEnable = true;
tmpState = STATE_POCSAG; tmpState = STATE_POCSAG;
m_calState = modemState; m_calState = modemState;
if (m_firstCal) //if (m_firstCal)
io.updateCal(); // io.updateCal();
} }
else { else {
tmpState = modemState; tmpState = modemState;
@ -606,7 +607,7 @@ void CSerialPort::process()
if (m_calState == STATE_DMRCAL || m_calState == STATE_DMRDMO1K) { if (m_calState == STATE_DMRCAL || m_calState == STATE_DMRDMO1K) {
err = calDMR.write(m_buffer + 3U, m_len - 3U); err = calDMR.write(m_buffer + 3U, m_len - 3U);
} else if (m_calState == STATE_POCSAGCAL) { } else if (m_calState == STATE_POCSAGCAL) {
err = pocsagTX.writeData(m_buffer + 3U, m_len - 3U); err = pocsagTX.setCal(m_buffer + 3U, m_len - 3U);
} else if (m_calState == STATE_RSSICAL || m_calState == STATE_INTCAL) { } else if (m_calState == STATE_RSSICAL || m_calState == STATE_INTCAL) {
err = 0U; err = 0U;
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.