Fix minor problems with YSF.

This commit is contained in:
Jonathan Naylor 2016-04-25 20:10:03 +01:00
parent 6700801653
commit fa4660d332
3 changed files with 6 additions and 12 deletions

View file

@ -34,7 +34,6 @@ m_interval(),
m_frames(0U), m_frames(0U),
m_errs(0U), m_errs(0U),
m_bits(0U), m_bits(0U),
m_headerSeen(false),
m_source(NULL), m_source(NULL),
m_dest(NULL), m_dest(NULL),
m_payload(), m_payload(),
@ -87,7 +86,6 @@ bool CYSFControl::writeModem(unsigned char *data)
m_frames = 0U; m_frames = 0U;
m_errs = 0U; m_errs = 0U;
m_bits = 1U; m_bits = 1U;
m_headerSeen = false;
m_timeoutTimer.start(); m_timeoutTimer.start();
m_payload.reset(); m_payload.reset();
m_state = RS_RF_AUDIO; m_state = RS_RF_AUDIO;
@ -120,7 +118,6 @@ bool CYSFControl::writeModem(unsigned char *data)
m_bits += 240U; m_bits += 240U;
m_frames++; m_frames++;
m_headerSeen = true;
// valid = m_payload.processHeaderData(data + 2U); // valid = m_payload.processHeaderData(data + 2U);
@ -245,31 +242,29 @@ bool CYSFControl::writeModem(unsigned char *data)
break; break;
default: // YSF_DT_VOICE_FR_MODE default: // YSF_DT_VOICE_FR_MODE
if (!m_headerSeen) { if (fn != 0U || ft != 1U) {
// The first packet after the header is odd, don't try and regenerate it // The first packet after the header is odd, don't try and regenerate it
m_errs += m_payload.processVoiceFRModeAudio(data + 2U); // m_errs += m_payload.processVoiceFRModeAudio(data + 2U);
m_bits += 720U; // m_bits += 720U;
valid = false; valid = false;
} }
break; break;
} }
m_headerSeen = false;
bool change = false; bool change = false;
if (m_dest == NULL) { if (m_dest == NULL) {
if (cm == YSF_CM_GROUP) { if (cm == YSF_CM_GROUP) {
m_dest = (unsigned char*)"CQCQCQ "; m_dest = (unsigned char*)"CQCQCQ ";
change = true; change = true;
} else { } else if (valid) {
m_dest = m_payload.getDest(); m_dest = m_payload.getDest();
if (m_dest != NULL) if (m_dest != NULL)
change = true; change = true;
} }
} }
if (m_source == NULL) { if (valid && m_source == NULL) {
m_source = m_payload.getSource(); m_source = m_payload.getSource();
if (m_source != NULL) if (m_source != NULL)
change = true; change = true;
@ -322,7 +317,6 @@ bool CYSFControl::writeModem(unsigned char *data)
m_bits += 40U; m_bits += 40U;
m_frames++; m_frames++;
m_headerSeen = false;
if (m_duplex) { if (m_duplex) {
data[0U] = TAG_DATA; data[0U] = TAG_DATA;

View file

@ -52,7 +52,6 @@ private:
unsigned int m_frames; unsigned int m_frames;
unsigned int m_errs; unsigned int m_errs;
unsigned int m_bits; unsigned int m_bits;
bool m_headerSeen;
unsigned char* m_source; unsigned char* m_source;
unsigned char* m_dest; unsigned char* m_dest;
CYSFPayload m_payload; CYSFPayload m_payload;

View file

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2016 Jonathan Naylor, G4KLX * Copyright (C) 2016 Jonathan Naylor, G4KLX
* Copyright (C) 2016 Matt Weyland, HB9FRV
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by