COnvert to handling new style YSF data from the modem.

This commit is contained in:
Jonathan Naylor 2016-04-12 21:33:16 +01:00
parent 8eb564ba37
commit 8f836716b8
3 changed files with 10 additions and 15 deletions

View file

@ -331,10 +331,7 @@ void CModem::clock(unsigned int ms)
unsigned char data = m_length - 2U;
m_rxYSFData.addData(&data, 1U);
if ((m_buffer[3U] & (YSF_CKSUM_OK | YSF_FI_MASK)) == (YSF_CKSUM_OK | YSF_DT_TERMINATOR_CHANNEL))
data = TAG_EOT;
else
data = TAG_DATA;
data = TAG_DATA;
m_rxYSFData.addData(&data, 1U);
m_rxYSFData.addData(m_buffer + 3U, m_length - 3U);

View file

@ -79,9 +79,13 @@ bool CYSFControl::writeModem(unsigned char *data)
if (type == TAG_LOST)
return false;
bool valid = (data[1U] & YSF_CKSUM_OK) == YSF_CKSUM_OK;
bool valid = m_fich.decode(data + 2U);
if (valid && m_state == RS_RF_LISTENING) {
unsigned char fi = m_fich.getFI();
if (fi == YSF_FI_TERMINATOR)
return false;
if (type == TAG_DATA && valid && m_state == RS_RF_LISTENING) {
m_frames = 0U;
m_timeoutTimer.start();
m_payload.reset();
@ -94,12 +98,10 @@ bool CYSFControl::writeModem(unsigned char *data)
if (m_state != RS_RF_AUDIO)
return false;
if (type == TAG_EOT) {
unsigned char fi = m_fich.getFI();
if (valid && fi == YSF_FI_TERMINATOR) {
CSync::addYSFSync(data + 2U);
m_fich.decode(data + 2U);
unsigned char fi = m_fich.getFI();
unsigned char fn = m_fich.getFN();
unsigned char dt = m_fich.getDT();
@ -140,10 +142,6 @@ bool CYSFControl::writeModem(unsigned char *data)
CSync::addYSFSync(data + 2U);
if (valid) {
bool ret = m_fich.decode(data + 2U);
assert(ret);
unsigned char fi = m_fich.getFI();
unsigned char cm = m_fich.getCM();
unsigned char fn = m_fich.getFN();
unsigned char dt = m_fich.getDT();

View file

@ -32,7 +32,7 @@ const unsigned char YSF_DT_MASK = 0x30U;
const unsigned char YSF_DT_HEADER_CHANNEL = 0x00U;
const unsigned char YSF_DT_TERMINATOR_CHANNEL = 0x80U;
const unsigned char YSF_CKSUM_OK = 0x01U;
const unsigned char YSF_SYNC_OK = 0x01U;
const unsigned char YSF_FI_HEADER = 0x00U;
const unsigned char YSF_FI_COMMUNICATIONS = 0x40U;