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); CSync::addYSFSync(data + 2U);
unsigned char fn = m_fich.getFN(); unsigned char fn = m_fich.getFN();
unsigned char ft = m_fich.getFT();
unsigned char dt = m_fich.getDT(); 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_payload.encode(data + 2U); XXX
m_frames++; m_frames++;
@ -144,11 +145,12 @@ bool CYSFControl::writeModem(unsigned char *data)
if (valid) { if (valid) {
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 ft = m_fich.getFT();
unsigned char dt = m_fich.getDT(); 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 // payload.encode(data + 2U); XXX
bool change = false; 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 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_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 = 0x01U;
const unsigned char YSF_FI_TERMINATOR = 0x80U; const unsigned char YSF_FI_TERMINATOR = 0x02U;
const unsigned char YSF_FI_TEST = 0xC0U; const unsigned char YSF_FI_TEST = 0x03U;
const unsigned char YSF_DT_VD_MODE1 = 0x00U; const unsigned char YSF_DT_VD_MODE1 = 0x00U;
const unsigned char YSF_DT_DATA_FR_MODE = 0x10U; const unsigned char YSF_DT_DATA_FR_MODE = 0x01U;
const unsigned char YSF_DT_VD_MODE2 = 0x20U; const unsigned char YSF_DT_VD_MODE2 = 0x02U;
const unsigned char YSF_DT_VOICE_FR_MODE = 0x30U; const unsigned char YSF_DT_VOICE_FR_MODE = 0x03U;
const unsigned char YSF_CM_GROUP = 0x00U; 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_NOT_BUSY = 0x01U;
const unsigned char YSF_MR_BUSY = 0x10U; const unsigned char YSF_MR_BUSY = 0x02U;
#endif #endif

View file

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

View file

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

View file

@ -94,7 +94,7 @@ CYSFPayload::~CYSFPayload()
delete[] m_dest; 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); assert(bytes != NULL);

View file

@ -28,7 +28,7 @@ public:
CYSFPayload(); CYSFPayload();
~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); void encode(unsigned char* bytes);