Merge branch 'M17_AX25_FM' of https://github.com/g4klx/MMDVMHost into M17_AX25_FM
This commit is contained in:
commit
b6ff701c05
1 changed files with 7 additions and 4 deletions
|
@ -185,6 +185,8 @@ bool CM17Control::writeModem(unsigned char* data, unsigned int len)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LogDebug("M17, link setup frame: errs: %u/368 (%.1f%%)", ber, float(ber) / 3.68F);
|
||||||
|
|
||||||
m_rfFrames = 0U;
|
m_rfFrames = 0U;
|
||||||
m_rfErrs = ber;
|
m_rfErrs = ber;
|
||||||
m_rfBits = 368U;
|
m_rfBits = 368U;
|
||||||
|
@ -266,16 +268,18 @@ bool CM17Control::writeModem(unsigned char* data, unsigned int len)
|
||||||
bool valid = errors < 12U;
|
bool valid = errors < 12U;
|
||||||
|
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
|
m_rfFN++;
|
||||||
|
|
||||||
frame[0U] = (m_rfFN >> 8) & 0xFFU;
|
frame[0U] = (m_rfFN >> 8) & 0xFFU;
|
||||||
frame[1U] = (m_rfFN >> 0) & 0xFFU;
|
frame[1U] = (m_rfFN >> 0) & 0xFFU;
|
||||||
|
|
||||||
::memcpy(frame + 2U + 0U, M17_3200_SILENCE, 8U);
|
::memcpy(frame + 2U + 0U, M17_3200_SILENCE, 8U);
|
||||||
::memcpy(frame + 2U + 8U, M17_3200_SILENCE, 8U);
|
::memcpy(frame + 2U + 8U, M17_3200_SILENCE, 8U);
|
||||||
} else {
|
} else {
|
||||||
m_rfFN = ((frame[0U] << 8) + (frame[1U] << 0)) & 0x7FU;
|
m_rfFN = (frame[0U] << 8) + (frame[1U] << 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
LogDebug("M17, FN: %u, errs: %u/272 (%.1f%%)", m_rfFN & 0x7FU, errors, float(errors) / 2.72F);
|
LogDebug("M17, audio: FN: %u, errs: %u/272 (%.1f%%)", m_rfFN & 0x7FU, errors, float(errors) / 2.72F);
|
||||||
|
|
||||||
m_rfBits += 272U;
|
m_rfBits += 272U;
|
||||||
m_rfErrs += errors;
|
m_rfErrs += errors;
|
||||||
|
@ -333,14 +337,13 @@ bool CM17Control::writeModem(unsigned char* data, unsigned int len)
|
||||||
}
|
}
|
||||||
|
|
||||||
m_rfFrames++;
|
m_rfFrames++;
|
||||||
m_rfFN++;
|
|
||||||
|
|
||||||
m_rfLSFn++;
|
m_rfLSFn++;
|
||||||
if (m_rfLSFn >= 6U)
|
if (m_rfLSFn >= 6U)
|
||||||
m_rfLSFn = 0U;
|
m_rfLSFn = 0U;
|
||||||
|
|
||||||
// Only check for the EOT marker if the frame has a reasonable BER
|
// Only check for the EOT marker if the frame has a reasonable BER
|
||||||
if (valid && (m_rfFN & 0x8000U) == 0x8000U) {
|
if (valid && ((m_rfFN & 0x8000U) == 0x8000U)) {
|
||||||
std::string source = m_rfLSF.getSource();
|
std::string source = m_rfLSF.getSource();
|
||||||
std::string dest = m_rfLSF.getDest();
|
std::string dest = m_rfLSF.getDest();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue