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)
nxdnTX.process();
if (m_pocsagEnable && (m_modemState == STATE_POCSAG || pocsagTX.busy())) {
if (m_calState == STATE_POCSAGCAL)
pocsagTX.setCal(true);
if (m_pocsagEnable && (m_modemState == STATE_POCSAG || pocsagTX.busy()))
pocsagTX.process();
}
if (m_calState == STATE_DMRCAL || m_calState == STATE_DMRDMO1K || m_calState == STATE_INTCAL)
calDMR.process();

@ -87,8 +87,8 @@ bool CPOCSAGTX::busy()
uint8_t CPOCSAGTX::writeData(const uint8_t* data, uint8_t length)
{
//if (length != POCSAG_FRAME_LENGTH_BYTES)
//return 4U;
if (length != POCSAG_FRAME_LENGTH_BYTES)
return 4U;
uint16_t space = m_buffer.getSpace();
if (space < POCSAG_FRAME_LENGTH_BYTES)
@ -128,9 +128,17 @@ uint8_t CPOCSAGTX::getSpace() const
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()

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

@ -294,8 +294,9 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
m_pocsagEnable = true;
m_modemState = STATE_POCSAG;
m_calState = modemState;
if (m_firstCal)
io.updateCal();
//if (m_firstCal)
// io.updateCal();
io.ifConf(STATE_POCSAG, true);
}
else {
m_modemState = modemState;
@ -329,7 +330,7 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
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)
io.ifConf(STATE_DSTAR, true);
else if(m_dmrEnable)
@ -391,8 +392,8 @@ uint8_t CSerialPort::setMode(const uint8_t* data, uint8_t length)
m_pocsagEnable = true;
tmpState = STATE_POCSAG;
m_calState = modemState;
if (m_firstCal)
io.updateCal();
//if (m_firstCal)
// io.updateCal();
}
else {
tmpState = modemState;
@ -606,7 +607,7 @@ void CSerialPort::process()
if (m_calState == STATE_DMRCAL || m_calState == STATE_DMRDMO1K) {
err = calDMR.write(m_buffer + 3U, m_len - 3U);
} 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) {
err = 0U;
}

Loading…
Cancel
Save

Powered by TurnKey Linux.