First go at VW mode IMBE FEC.

This commit is contained in:
Jonathan Naylor
2016-04-19 07:45:49 +01:00
parent b560594cac
commit 38dc134982
5 changed files with 199 additions and 107 deletions

View File

@@ -108,8 +108,7 @@ bool CYSFControl::writeModem(unsigned char *data)
LogMessage("YSF, EOT, FI=%X FN=%u FT=%u DT=%X", fi, fn, ft, dt);
m_payload.decode(data + 2U, fi, fn, ft, dt);
// m_payload.encode(data + 2U); XXX
m_payload.process(data + 2U, fi, fn, ft, dt);
m_frames++;
@@ -150,14 +149,19 @@ bool CYSFControl::writeModem(unsigned char *data)
LogMessage("YSF, Valid FICH, FI=%X FN=%u FT=%u DT=%X", fi, fn, ft, dt);
m_payload.decode(data + 2U, fi, fn, ft, dt);
// payload.encode(data + 2U); XXX
m_payload.process(data + 2U, fi, fn, ft, dt);
bool change = false;
if (cm == 0x00U && m_dest == NULL) {
m_dest = (unsigned char*)"CQCQCQ ";
change = true;
if (m_dest == NULL) {
if (cm == YSF_CM_GROUP) {
m_dest = (unsigned char*)"CQCQCQ ";
change = true;
} else {
m_dest = m_payload.getDest();
if (m_dest != NULL)
change = true;
}
}
if (m_source == NULL) {
@@ -166,12 +170,6 @@ bool CYSFControl::writeModem(unsigned char *data)
change = true;
}
if (m_dest == NULL) {
m_dest = m_payload.getDest();
if (m_dest != NULL)
change = true;
}
if (change) {
if (m_source != NULL && m_dest != NULL) {
m_display->writeFusion((char*)m_source, (char*)m_dest);
@@ -188,7 +186,7 @@ bool CYSFControl::writeModem(unsigned char *data)
}
} else {
// Reconstruct FICH based on the last valid frame
m_fich.setFI(0x01U); // Communication channel
m_fich.setFI(YSF_FI_COMMUNICATIONS); // Communication channel
}
m_frames++;