Small System Fusion cleanups.

This commit is contained in:
Jonathan Naylor 2016-02-16 07:57:46 +00:00
parent 833822d388
commit 151b95e5d3

View file

@ -54,7 +54,7 @@ bool CYSFControl::writeModem(unsigned char *data)
unsigned char fi = data[1U] & YSF_FI_MASK;
unsigned char dt = data[1U] & YSF_DT_MASK;
if (valid && m_state == RS_LISTENING) {
if (type == TAG_DATA && valid && m_state == RS_LISTENING) {
m_frames = 0U;
m_timeoutTimer.start();
m_display->writeFusion("XXXXXX");
@ -62,23 +62,24 @@ bool CYSFControl::writeModem(unsigned char *data)
LogMessage("YSF, received RF header");
}
if (fi == YSF_DT_TERMINATOR_CHANNEL) {
if (m_state == RS_RELAYING_RF_AUDIO) {
CSync::addYSFSync(data + 2U);
if (m_state != RS_RELAYING_RF_AUDIO)
return false;
m_frames++;
if (type == TAG_EOT) {
CSync::addYSFSync(data + 2U);
if (m_duplex) {
data[0U] = TAG_DATA;
data[1U] = 0x00U;
writeQueue(data);
}
m_frames++;
LogMessage("YSF, received RF end of transmission, %.1f seconds", float(m_frames) / 10.0F);
writeEndOfTransmission();
if (m_duplex) {
data[0U] = TAG_EOT;
data[1U] = 0x00U;
writeQueue(data);
}
LogMessage("YSF, received RF end of transmission, %.1f seconds", float(m_frames) / 10.0F);
writeEndOfTransmission();
return false;
} else {
CSync::addYSFSync(data + 2U);