From f7ead5cc0e6517d0965ae9c4a6237d41e1af8f8f Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Sat, 26 Dec 2020 12:42:16 +0000 Subject: [PATCH] Update the M17 sync vectors. --- M17Defines.h | 38 ++++++++++++++++++++++++-------------- M17RX.cpp | 12 ++++++------ Version.h | 2 +- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/M17Defines.h b/M17Defines.h index f98214b..de8ed31 100644 --- a/M17Defines.h +++ b/M17Defines.h @@ -30,29 +30,39 @@ const unsigned int M17_SYNC_LENGTH_BITS = 16U; const unsigned int M17_SYNC_LENGTH_SYMBOLS = M17_SYNC_LENGTH_BITS / 2U; const unsigned int M17_SYNC_LENGTH_SAMPLES = M17_SYNC_LENGTH_SYMBOLS * M17_RADIO_SYMBOL_LENGTH; -const uint8_t M17_HEADER_SYNC_BYTES[] = {0x5DU, 0xDDU}; -const uint8_t M17_DATA_SYNC_BYTES[] = {0xDDU, 0xDDU}; +const uint8_t M17_LINK_SETUP_SYNC_BYTES[] = {0x55U, 0xF7U}; +const uint8_t M17_STREAM_SYNC_BYTES[] = {0xFFU, 0x5DU}; +const uint8_t M17_PACKET_SYNC_BYTES[] = {0x75U, 0xFFU}; const uint8_t M17_SYNC_BYTES_LENGTH = 2U; -const uint16_t M17_HEADER_SYNC_BITS = 0x5DDDU; -const uint16_t M17_DAYA_SYNC_BITS = 0xDDDDU; +const uint16_t M17_LINK_SETUP_SYNC_BITS = 0x55F7U; +const uint16_t M17_STREAM_SYNC_BITS = 0xFF5DU; +const uint16_t M17_PACKET_SYNC_BITS = 0x75FFU; -// 5 D D D -// 01 01 11 01 11 01 11 01 -// +3 +3 -3 +3 -3 +3 -3 +3 +// 5 5 F 7 +// 01 01 01 01 11 11 01 11 +// +3 +3 +3 +3 -3 -3 +3 -3 -const int8_t M17_HEADER_SYNC_SYMBOLS_VALUES[] = {+3, +3, -3, +3, -3, +3, -3, +3}; +const int8_t M17_LINK_SETUP_SYNC_SYMBOLS_VALUES[] = {+3, +3, +3, +3, -3, -3, +3, -3}; -const uint8_t M17_HEADER_SYNC_SYMBOLS = 0xD5U; +const uint8_t M17_LINK_SETUP_SYNC_SYMBOLS = 0xF2U; -// D D D D -// 11 01 11 01 11 01 11 01 -// -3 +3 -3 +3 -3 +3 -3 +3 +// F F 5 D +// 11 11 11 11 01 01 11 01 +// -3 -3 -3 -3 +3 +3 -3 +3 -const int8_t M17_DATA_SYNC_SYMBOLS_VALUES[] = {-3, +3, -3, +3, -3, +3, -3, +3}; +const int8_t M17_STREAM_SYNC_SYMBOLS_VALUES[] = {-3, -3, -3, -3, +3, +3, -3, +3}; -const uint8_t M17_DATA_SYNC_SYMBOLS = 0x55U; +const uint8_t M17_STREAM_SYNC_SYMBOLS = 0x0DU; + +// 7 5 F F +// 01 11 01 01 11 11 11 11 +// +3 -3 +3 +3 -3 -3 -3 -3 + +const int8_t M17_PACKET_SYNC_SYMBOLS_VALUES[] = {+3, -3, +3, +3, -3, -3, -3, -3}; + +const uint8_t M17_PACKET_SYNC_SYMBOLS = 0xB0U; #endif diff --git a/M17RX.cpp b/M17RX.cpp index 18a0a97..b5abe42 100644 --- a/M17RX.cpp +++ b/M17RX.cpp @@ -125,8 +125,8 @@ void CM17RX::samples(const q15_t* samples, uint16_t* rssi, uint8_t length) void CM17RX::processNone(q15_t sample) { - bool ret1 = correlateSync(M17_HEADER_SYNC_SYMBOLS, M17_HEADER_SYNC_SYMBOLS_VALUES, M17_HEADER_SYNC_BYTES); - bool ret2 = correlateSync(M17_DATA_SYNC_SYMBOLS, M17_DATA_SYNC_SYMBOLS_VALUES, M17_DATA_SYNC_BYTES); + bool ret1 = correlateSync(M17_LINK_SETUP_SYNC_SYMBOLS, M17_LINK_SETUP_SYNC_SYMBOLS_VALUES, M17_LINK_SETUP_SYNC_BYTES); + bool ret2 = correlateSync(M17_STREAM_SYNC_SYMBOLS, M17_STREAM_SYNC_SYMBOLS_VALUES, M17_STREAM_SYNC_BYTES); if (ret1 || ret2) { // On the first sync, start the countdown to the state change @@ -166,10 +166,10 @@ void CM17RX::processHeader(q15_t sample) { if (m_minSyncPtr < m_maxSyncPtr) { if (m_dataPtr >= m_minSyncPtr && m_dataPtr <= m_maxSyncPtr) - correlateSync(M17_HEADER_SYNC_SYMBOLS, M17_HEADER_SYNC_SYMBOLS_VALUES, M17_HEADER_SYNC_BYTES); + correlateSync(M17_LINK_SETUP_SYNC_SYMBOLS, M17_LINK_SETUP_SYNC_SYMBOLS_VALUES, M17_LINK_SETUP_SYNC_BYTES); } else { if (m_dataPtr >= m_minSyncPtr || m_dataPtr <= m_maxSyncPtr) - correlateSync(M17_HEADER_SYNC_SYMBOLS, M17_HEADER_SYNC_SYMBOLS_VALUES, M17_HEADER_SYNC_BYTES); + correlateSync(M17_LINK_SETUP_SYNC_SYMBOLS, M17_LINK_SETUP_SYNC_SYMBOLS_VALUES, M17_LINK_SETUP_SYNC_BYTES); } if (m_dataPtr == m_endPtr) { @@ -200,10 +200,10 @@ void CM17RX::processData(q15_t sample) { if (m_minSyncPtr < m_maxSyncPtr) { if (m_dataPtr >= m_minSyncPtr && m_dataPtr <= m_maxSyncPtr) - correlateSync(M17_DATA_SYNC_SYMBOLS, M17_DATA_SYNC_SYMBOLS_VALUES, M17_DATA_SYNC_BYTES); + correlateSync(M17_STREAM_SYNC_SYMBOLS, M17_STREAM_SYNC_SYMBOLS_VALUES, M17_STREAM_SYNC_BYTES); } else { if (m_dataPtr >= m_minSyncPtr || m_dataPtr <= m_maxSyncPtr) - correlateSync(M17_DATA_SYNC_SYMBOLS, M17_DATA_SYNC_SYMBOLS_VALUES, M17_DATA_SYNC_BYTES); + correlateSync(M17_STREAM_SYNC_SYMBOLS, M17_STREAM_SYNC_SYMBOLS_VALUES, M17_STREAM_SYNC_BYTES); } if (m_dataPtr == m_endPtr) { diff --git a/Version.h b/Version.h index 0944889..451d12b 100644 --- a/Version.h +++ b/Version.h @@ -19,7 +19,7 @@ #if !defined(VERSION_H) #define VERSION_H -#define VERSION "20201214" +#define VERSION "20201226" #endif