COnvert to handling new style YSF data from the modem.
This commit is contained in:
parent
8eb564ba37
commit
8f836716b8
|
@ -331,10 +331,7 @@ void CModem::clock(unsigned int ms)
|
||||||
unsigned char data = m_length - 2U;
|
unsigned char data = m_length - 2U;
|
||||||
m_rxYSFData.addData(&data, 1U);
|
m_rxYSFData.addData(&data, 1U);
|
||||||
|
|
||||||
if ((m_buffer[3U] & (YSF_CKSUM_OK | YSF_FI_MASK)) == (YSF_CKSUM_OK | YSF_DT_TERMINATOR_CHANNEL))
|
data = TAG_DATA;
|
||||||
data = TAG_EOT;
|
|
||||||
else
|
|
||||||
data = TAG_DATA;
|
|
||||||
m_rxYSFData.addData(&data, 1U);
|
m_rxYSFData.addData(&data, 1U);
|
||||||
|
|
||||||
m_rxYSFData.addData(m_buffer + 3U, m_length - 3U);
|
m_rxYSFData.addData(m_buffer + 3U, m_length - 3U);
|
||||||
|
|
|
@ -79,9 +79,13 @@ bool CYSFControl::writeModem(unsigned char *data)
|
||||||
if (type == TAG_LOST)
|
if (type == TAG_LOST)
|
||||||
return false;
|
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_frames = 0U;
|
||||||
m_timeoutTimer.start();
|
m_timeoutTimer.start();
|
||||||
m_payload.reset();
|
m_payload.reset();
|
||||||
|
@ -94,12 +98,10 @@ bool CYSFControl::writeModem(unsigned char *data)
|
||||||
if (m_state != RS_RF_AUDIO)
|
if (m_state != RS_RF_AUDIO)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (type == TAG_EOT) {
|
unsigned char fi = m_fich.getFI();
|
||||||
|
if (valid && fi == YSF_FI_TERMINATOR) {
|
||||||
CSync::addYSFSync(data + 2U);
|
CSync::addYSFSync(data + 2U);
|
||||||
|
|
||||||
m_fich.decode(data + 2U);
|
|
||||||
|
|
||||||
unsigned char fi = m_fich.getFI();
|
|
||||||
unsigned char fn = m_fich.getFN();
|
unsigned char fn = m_fich.getFN();
|
||||||
unsigned char dt = m_fich.getDT();
|
unsigned char dt = m_fich.getDT();
|
||||||
|
|
||||||
|
@ -140,10 +142,6 @@ bool CYSFControl::writeModem(unsigned char *data)
|
||||||
CSync::addYSFSync(data + 2U);
|
CSync::addYSFSync(data + 2U);
|
||||||
|
|
||||||
if (valid) {
|
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 cm = m_fich.getCM();
|
||||||
unsigned char fn = m_fich.getFN();
|
unsigned char fn = m_fich.getFN();
|
||||||
unsigned char dt = m_fich.getDT();
|
unsigned char dt = m_fich.getDT();
|
||||||
|
|
|
@ -32,7 +32,7 @@ const unsigned char YSF_DT_MASK = 0x30U;
|
||||||
const unsigned char YSF_DT_HEADER_CHANNEL = 0x00U;
|
const unsigned char YSF_DT_HEADER_CHANNEL = 0x00U;
|
||||||
const unsigned char YSF_DT_TERMINATOR_CHANNEL = 0x80U;
|
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_HEADER = 0x00U;
|
||||||
const unsigned char YSF_FI_COMMUNICATIONS = 0x40U;
|
const unsigned char YSF_FI_COMMUNICATIONS = 0x40U;
|
||||||
|
|
Loading…
Reference in a new issue