Revert "Simplify the D-Star sequence number processing."
This reverts commit 99d4a9bc51
.
This commit is contained in:
parent
7ea37fc5e9
commit
bbbfbbbfad
1 changed files with 16 additions and 7 deletions
|
@ -730,8 +730,6 @@ void CDStarControl::writeNetwork()
|
||||||
writeEndNet();
|
writeEndNet();
|
||||||
}
|
}
|
||||||
} else if (type == TAG_DATA) {
|
} else if (type == TAG_DATA) {
|
||||||
unsigned char m_netN = data[1U];
|
|
||||||
|
|
||||||
// Check for the fast data signature
|
// Check for the fast data signature
|
||||||
if (m_netState == RS_NET_AUDIO && (m_netN % 2U) == 1U) {
|
if (m_netState == RS_NET_AUDIO && (m_netN % 2U) == 1U) {
|
||||||
unsigned char slowDataType = data[DSTAR_VOICE_FRAME_LENGTH_BYTES + 2U] & DSTAR_SLOW_DATA_TYPE_MASK;
|
unsigned char slowDataType = data[DSTAR_VOICE_FRAME_LENGTH_BYTES + 2U] & DSTAR_SLOW_DATA_TYPE_MASK;
|
||||||
|
@ -744,13 +742,17 @@ void CDStarControl::writeNetwork()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_netState == RS_NET_DATA) {
|
if (m_netState == RS_NET_DATA) {
|
||||||
|
unsigned char n = data[1U];
|
||||||
|
|
||||||
data[1U] = TAG_DATA;
|
data[1U] = TAG_DATA;
|
||||||
|
|
||||||
m_netBits += 72U;
|
m_netBits += 72U;
|
||||||
m_netErrs = 0U;
|
m_netErrs = 0U;
|
||||||
|
|
||||||
|
m_netN = n;
|
||||||
|
|
||||||
// Regenerate the sync
|
// Regenerate the sync
|
||||||
if (m_netN == 0U)
|
if (n == 0U)
|
||||||
CSync::addDStarSync(data + 2U);
|
CSync::addDStarSync(data + 2U);
|
||||||
|
|
||||||
m_packetTimer.start();
|
m_packetTimer.start();
|
||||||
|
@ -760,9 +762,12 @@ void CDStarControl::writeNetwork()
|
||||||
writeFile(data + 1U, length - 1U);
|
writeFile(data + 1U, length - 1U);
|
||||||
#endif
|
#endif
|
||||||
writeQueueDataNet(data + 1U);
|
writeQueueDataNet(data + 1U);
|
||||||
} else if (m_netState == RS_NET_AUDIO) {
|
|
||||||
unsigned int errors = 0U;
|
|
||||||
|
|
||||||
|
m_netN = (m_netN + 1U) % 21U;
|
||||||
|
} else if (m_netState == RS_NET_AUDIO) {
|
||||||
|
unsigned char n = data[1U];
|
||||||
|
|
||||||
|
unsigned int errors = 0U;
|
||||||
if (!m_netHeader.isDataPacket()) {
|
if (!m_netHeader.isDataPacket()) {
|
||||||
if (CUtils::compare(data + 2U, DSTAR_NULL_FRAME_DATA_SRAMBLED_BYTES, DSTAR_VOICE_FRAME_LENGTH_BYTES) < 5U) {
|
if (CUtils::compare(data + 2U, DSTAR_NULL_FRAME_DATA_SRAMBLED_BYTES, DSTAR_VOICE_FRAME_LENGTH_BYTES) < 5U) {
|
||||||
// Fix any scrambled null data frames, typically sent by Kenwood D-Star radios
|
// Fix any scrambled null data frames, typically sent by Kenwood D-Star radios
|
||||||
|
@ -778,15 +783,17 @@ void CDStarControl::writeNetwork()
|
||||||
data[1U] = TAG_DATA;
|
data[1U] = TAG_DATA;
|
||||||
|
|
||||||
// Insert silence and reject if in the past
|
// Insert silence and reject if in the past
|
||||||
bool ret = insertSilence(data + 1U, m_netN);
|
bool ret = insertSilence(data + 1U, n);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_netErrs += errors;
|
m_netErrs += errors;
|
||||||
m_netBits += 48U;
|
m_netBits += 48U;
|
||||||
|
|
||||||
|
m_netN = n;
|
||||||
|
|
||||||
// Regenerate the sync
|
// Regenerate the sync
|
||||||
if (m_netN == 0U)
|
if (n == 0U)
|
||||||
CSync::addDStarSync(data + 2U);
|
CSync::addDStarSync(data + 2U);
|
||||||
|
|
||||||
m_packetTimer.start();
|
m_packetTimer.start();
|
||||||
|
@ -796,6 +803,8 @@ void CDStarControl::writeNetwork()
|
||||||
writeFile(data + 1U, length - 1U);
|
writeFile(data + 1U, length - 1U);
|
||||||
#endif
|
#endif
|
||||||
writeQueueDataNet(data + 1U);
|
writeQueueDataNet(data + 1U);
|
||||||
|
|
||||||
|
m_netN = (m_netN + 1U) % 21U;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
CUtils::dump("D-Star, unknown data from network", data, DSTAR_FRAME_LENGTH_BYTES + 1U);
|
CUtils::dump("D-Star, unknown data from network", data, DSTAR_FRAME_LENGTH_BYTES + 1U);
|
||||||
|
|
Loading…
Reference in a new issue