mirror of https://github.com/g4klx/MMDVM.git
Update the M17 sync vectors.
This commit is contained in:
parent
b155597693
commit
f7ead5cc0e
38
M17Defines.h
38
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_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
|
||||||
|
|
||||||
|
|
12
M17RX.cpp
12
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)
|
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) {
|
||||||
|
|
Loading…
Reference in New Issue