Update the M17 sync vectors.

This commit is contained in:
Jonathan Naylor 2020-12-26 12:42:16 +00:00
parent b155597693
commit f7ead5cc0e
3 changed files with 31 additions and 21 deletions

View File

@ -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_SYMBOLS = M17_SYNC_LENGTH_BITS / 2U;
const unsigned int M17_SYNC_LENGTH_SAMPLES = M17_SYNC_LENGTH_SYMBOLS * M17_RADIO_SYMBOL_LENGTH; 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_LINK_SETUP_SYNC_BYTES[] = {0x55U, 0xF7U};
const uint8_t M17_DATA_SYNC_BYTES[] = {0xDDU, 0xDDU}; 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 uint8_t M17_SYNC_BYTES_LENGTH = 2U;
const uint16_t M17_HEADER_SYNC_BITS = 0x5DDDU; const uint16_t M17_LINK_SETUP_SYNC_BITS = 0x55F7U;
const uint16_t M17_DAYA_SYNC_BITS = 0xDDDDU; const uint16_t M17_STREAM_SYNC_BITS = 0xFF5DU;
const uint16_t M17_PACKET_SYNC_BITS = 0x75FFU;
// 5 D D D // 5 5 F 7
// 01 01 11 01 11 01 11 01 // 01 01 01 01 11 11 01 11
// +3 +3 -3 +3 -3 +3 -3 +3 // +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 // F F 5 D
// 11 01 11 01 11 01 11 01 // 11 11 11 11 01 01 11 01
// -3 +3 -3 +3 -3 +3 -3 +3 // -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 #endif

View File

@ -125,8 +125,8 @@ void CM17RX::samples(const q15_t* samples, uint16_t* rssi, uint8_t length)
void CM17RX::processNone(q15_t sample) void CM17RX::processNone(q15_t sample)
{ {
bool ret1 = correlateSync(M17_HEADER_SYNC_SYMBOLS, M17_HEADER_SYNC_SYMBOLS_VALUES, M17_HEADER_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_DATA_SYNC_SYMBOLS, M17_DATA_SYNC_SYMBOLS_VALUES, M17_DATA_SYNC_BYTES); bool ret2 = correlateSync(M17_STREAM_SYNC_SYMBOLS, M17_STREAM_SYNC_SYMBOLS_VALUES, M17_STREAM_SYNC_BYTES);
if (ret1 || ret2) { if (ret1 || ret2) {
// On the first sync, start the countdown to the state change // 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_minSyncPtr < m_maxSyncPtr) {
if (m_dataPtr >= m_minSyncPtr && m_dataPtr <= 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 { } else {
if (m_dataPtr >= m_minSyncPtr || m_dataPtr <= 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);
} }
if (m_dataPtr == m_endPtr) { if (m_dataPtr == m_endPtr) {
@ -200,10 +200,10 @@ void CM17RX::processData(q15_t sample)
{ {
if (m_minSyncPtr < m_maxSyncPtr) { if (m_minSyncPtr < m_maxSyncPtr) {
if (m_dataPtr >= m_minSyncPtr && m_dataPtr <= 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 { } else {
if (m_dataPtr >= m_minSyncPtr || m_dataPtr <= 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);
} }
if (m_dataPtr == m_endPtr) { if (m_dataPtr == m_endPtr) {

View File

@ -19,7 +19,7 @@
#if !defined(VERSION_H) #if !defined(VERSION_H)
#define VERSION_H #define VERSION_H
#define VERSION "20201214" #define VERSION "20201226"
#endif #endif