System Fusion bug fixes.

This commit is contained in:
Jonathan Naylor 2016-04-18 21:56:10 +01:00
parent 2e84ab888a
commit 700ebda210
6 changed files with 23 additions and 21 deletions

View File

@ -103,11 +103,12 @@ bool CYSFControl::writeModem(unsigned char *data)
CSync::addYSFSync(data + 2U);
unsigned char fn = m_fich.getFN();
unsigned char ft = m_fich.getFT();
unsigned char dt = m_fich.getDT();
LogMessage("YSF, EOT, FI=%X FN=%u DT=%X", fi, fn, dt);
LogMessage("YSF, EOT, FI=%X FN=%u FT=%u DT=%X", fi, fn, ft, dt);
m_payload.decode(data + 2U, fi, fn, dt);
m_payload.decode(data + 2U, fi, fn, ft, dt);
// m_payload.encode(data + 2U); XXX
m_frames++;
@ -144,11 +145,12 @@ bool CYSFControl::writeModem(unsigned char *data)
if (valid) {
unsigned char cm = m_fich.getCM();
unsigned char fn = m_fich.getFN();
unsigned char ft = m_fich.getFT();
unsigned char dt = m_fich.getDT();
LogMessage("YSF, Valid FICH, FI=%X FN=%u DT=%X", fi, fn, dt);
LogMessage("YSF, Valid FICH, FI=%X FN=%u FT=%u DT=%X", fi, fn, ft, dt);
m_payload.decode(data + 2U, fi, fn, dt);
m_payload.decode(data + 2U, fi, fn, ft, dt);
// payload.encode(data + 2U); XXX
bool change = false;

View File

@ -26,28 +26,22 @@ const unsigned int YSF_SYNC_LENGTH_BYTES = 5U;
const unsigned int YSF_FICH_LENGTH_BYTES = 25U;
const unsigned char YSF_FI_MASK = 0xC0U;
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_SYNC_OK = 0x01U;
const unsigned char YSF_FI_HEADER = 0x00U;
const unsigned char YSF_FI_COMMUNICATIONS = 0x40U;
const unsigned char YSF_FI_TERMINATOR = 0x80U;
const unsigned char YSF_FI_TEST = 0xC0U;
const unsigned char YSF_FI_COMMUNICATIONS = 0x01U;
const unsigned char YSF_FI_TERMINATOR = 0x02U;
const unsigned char YSF_FI_TEST = 0x03U;
const unsigned char YSF_DT_VD_MODE1 = 0x00U;
const unsigned char YSF_DT_DATA_FR_MODE = 0x10U;
const unsigned char YSF_DT_VD_MODE2 = 0x20U;
const unsigned char YSF_DT_VOICE_FR_MODE = 0x30U;
const unsigned char YSF_DT_DATA_FR_MODE = 0x01U;
const unsigned char YSF_DT_VD_MODE2 = 0x02U;
const unsigned char YSF_DT_VOICE_FR_MODE = 0x03U;
const unsigned char YSF_CM_GROUP = 0x00U;
const unsigned char YSF_CM_INDIVIDUAL = 0x0CU;
const unsigned char YSF_CM_INDIVIDUAL = 0x03U;
const unsigned char YSF_MR_NOT_BUSY = 0x08U;
const unsigned char YSF_MR_BUSY = 0x10U;
const unsigned char YSF_MR_NOT_BUSY = 0x01U;
const unsigned char YSF_MR_BUSY = 0x02U;
#endif

View File

@ -174,6 +174,11 @@ unsigned char CYSFFICH::getFN() const
return (m_fich[1U] >> 3) & 0x07U;
}
unsigned char CYSFFICH::getFT() const
{
return m_fich[1U] & 0x07U;
}
unsigned char CYSFFICH::getDT() const
{
return m_fich[2U] & 0x03U;

View File

@ -31,6 +31,7 @@ public:
unsigned char getFI() const;
unsigned char getCM() const;
unsigned char getFN() const;
unsigned char getFT() const;
unsigned char getDT() const;
void setFI(unsigned char fi);

View File

@ -94,7 +94,7 @@ CYSFPayload::~CYSFPayload()
delete[] m_dest;
}
void CYSFPayload::decode(const unsigned char* bytes, unsigned char fi, unsigned char fn, unsigned char dt)
void CYSFPayload::decode(const unsigned char* bytes, unsigned char fi, unsigned char fn, unsigned char ft, unsigned char dt)
{
assert(bytes != NULL);

View File

@ -28,7 +28,7 @@ public:
CYSFPayload();
~CYSFPayload();
void decode(const unsigned char* bytes, unsigned char fi, unsigned char fn, unsigned char dt);
void decode(const unsigned char* bytes, unsigned char fi, unsigned char fn, unsigned char ft, unsigned char dt);
void encode(unsigned char* bytes);