System Fusion bug fixes.
This commit is contained in:
parent
2e84ab888a
commit
700ebda210
|
@ -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;
|
||||||
|
|
24
YSFDefines.h
24
YSFDefines.h
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue