From c94f4f5d4ac3d4d9374615d9141e3e1cbc1d3afd Mon Sep 17 00:00:00 2001 From: Tim Stewart Date: Fri, 27 Nov 2020 17:14:31 -0500 Subject: [PATCH] Revert "Check the guard byte on fast data as well as the mini header." This reverts commit 317bda01770ef28f3ed6117af898b7628bffa545. --- DStarControl.cpp | 10 ++++------ DStarDefines.h | 6 ++++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/DStarControl.cpp b/DStarControl.cpp index f7f568d..7cf3f74 100644 --- a/DStarControl.cpp +++ b/DStarControl.cpp @@ -358,9 +358,8 @@ bool CDStarControl::writeModem(unsigned char *data, unsigned int len) // Check for the fast data signature if (m_rfState == RS_RF_AUDIO && (m_rfN % 2U) == 1U) { - unsigned char slowDataType = (data[DSTAR_VOICE_FRAME_LENGTH_BYTES + 1U] ^ DSTAR_SCRAMBLER_BYTES[0U]) & DSTAR_SLOW_DATA_TYPE_MASK; - unsigned char guard = data[4U + 1U] ^ DSTAR_SCRAMBLER_BYTES[4U]; - if ((slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA1 || slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA2) && guard == DSTAR_FAST_DATA_GUARD_BYTE) { + unsigned char slowDataType = (data[DSTAR_VOICE_FRAME_LENGTH_BYTES + 1U] ^ DSTAR_SCRAMBLER_BYTE1) & DSTAR_SLOW_DATA_TYPE_MASK; + if (slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA1 || slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA2) { LogMessage("D-Star, switching to fast data mode"); m_rfState = RS_RF_DATA; } @@ -735,9 +734,8 @@ void CDStarControl::writeNetwork() // Check for the fast data signature if (m_netState == RS_NET_AUDIO && (n % 2U) == 1U) { - unsigned char slowDataType = (data[DSTAR_VOICE_FRAME_LENGTH_BYTES + 2U] ^ DSTAR_SCRAMBLER_BYTES[0U]) & DSTAR_SLOW_DATA_TYPE_MASK; - unsigned char guard = data[4U + 2U] ^ DSTAR_SCRAMBLER_BYTES[4U]; - if ((slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA1 || slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA2) && guard == DSTAR_FAST_DATA_GUARD_BYTE) { + unsigned char slowDataType = data[DSTAR_VOICE_FRAME_LENGTH_BYTES + 2U] & DSTAR_SLOW_DATA_TYPE_MASK; + if (slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA1 || slowDataType == DSTAR_SLOW_DATA_TYPE_FAST_DATA2) { LogMessage("D-Star, switching to fast data mode"); m_netState = RS_NET_DATA; } diff --git a/DStarDefines.h b/DStarDefines.h index 9db014c..3f826ac 100644 --- a/DStarDefines.h +++ b/DStarDefines.h @@ -53,7 +53,7 @@ const unsigned char DSTAR_SLOW_DATA_TYPE_FAST_DATA2 = 0x90U; const unsigned char DSTAR_SLOW_DATA_TYPE_SQUELCH = 0xC0U; const unsigned char DSTAR_SLOW_DATA_LENGTH_MASK = 0x0FU; -const unsigned char DSTAR_SCRAMBLER_BYTES[] = { 0x70U, 0x4FU, 0x93U, 0x40U, 0x64U, 0x74U, 0x6DU, 0x30U, 0x2BU }; +const unsigned char DSTAR_SCRAMBLER_BYTES[] = {0x70U, 0x4FU, 0x93U}; const unsigned char DSTAR_DATA_MASK = 0x80U; const unsigned char DSTAR_REPEATER_MASK = 0x40U; @@ -67,7 +67,9 @@ const unsigned char DSTAR_ACK_FLAG = 0x03U; const unsigned char DSTAR_NO_RESPONSE = 0x02U; const unsigned char DSTAR_RELAY_UNAVAILABLE = 0x01U; -const unsigned char DSTAR_FAST_DATA_GUARD_BYTE = 0x02U; +const unsigned char DSTAR_SCRAMBLER_BYTE1 = 0x70U; +const unsigned char DSTAR_SCRAMBLER_BYTE2 = 0x4FU; +const unsigned char DSTAR_SCRAMBLER_BYTE3 = 0x93U; const unsigned char DSTAR_SYNC_BYTES[] = {0x55U, 0x2DU, 0x16U};