mirror of
https://github.com/g4klx/MMDVM_HS.git
synced 2026-01-13 20:10:19 +01:00
Merge branch 'master' into duplex
This commit is contained in:
commit
98d19b18be
|
|
@ -209,6 +209,8 @@ void CDMRDMORX::correlateSync()
|
|||
m_endPtr = m_dataPtr + DMR_SLOT_TYPE_LENGTH_BITS / 2U + DMR_INFO_LENGTH_BITS / 2U;
|
||||
if (m_endPtr >= DMO_BUFFER_LENGTH_BITS)
|
||||
m_endPtr -= DMO_BUFFER_LENGTH_BITS;
|
||||
|
||||
m_modeTimerCnt = 0;
|
||||
|
||||
//DEBUG4("SYNC MS Data found pos/start/end:", m_dataPtr, m_startPtr, m_endPtr);
|
||||
} else if ( (countBits64((m_patternBuffer & DMR_SYNC_BITS_MASK) ^ DMR_MS_VOICE_SYNC_BITS) <= MAX_SYNC_BYTES_ERRS) || \
|
||||
|
|
@ -225,6 +227,8 @@ void CDMRDMORX::correlateSync()
|
|||
if (m_endPtr >= DMO_BUFFER_LENGTH_BITS)
|
||||
m_endPtr -= DMO_BUFFER_LENGTH_BITS;
|
||||
|
||||
m_modeTimerCnt = 0;
|
||||
|
||||
//DEBUG4("SYNC MS Voice found pos/start/end: ", m_dataPtr, m_startPtr, m_endPtr);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
21
DStarRX.cpp
21
DStarRX.cpp
|
|
@ -30,6 +30,11 @@ const unsigned int SYNC_POS = 21U * DSTAR_DATA_LENGTH_BITS;
|
|||
const unsigned int SYNC_SCAN_START = SYNC_POS - 3U;
|
||||
const unsigned int SYNC_SCAN_END = SYNC_POS + 3U;
|
||||
|
||||
// D-Star preamble sequence (only 32 bits of 101010...)
|
||||
const uint32_t PREAMBLE_MASK = 0xFFFFFFFFU;
|
||||
const uint32_t PREAMBLE_DATA = 0xAAAAAAAAU;
|
||||
const uint8_t PREAMBLE_ERRS = 2U;
|
||||
|
||||
// D-Star bit order version of 0x55 0x55 0x6E 0x0A
|
||||
const uint32_t FRAME_SYNC_DATA = 0x00557650U;
|
||||
const uint32_t FRAME_SYNC_MASK = 0x00FFFFFFU;
|
||||
|
|
@ -284,9 +289,21 @@ void CDStarRX::processNone(bool bit)
|
|||
if (bit)
|
||||
m_patternBuffer |= 0x01U;
|
||||
|
||||
// Fuzzy matching of the preamble sync sequence
|
||||
if (countBits32((m_patternBuffer & PREAMBLE_MASK) ^ PREAMBLE_DATA) <= PREAMBLE_ERRS) {
|
||||
DEBUG1("DStarRX: preamble detected, fuzzy");
|
||||
|
||||
// Extend scan period in D-Star, once preamble is detected
|
||||
m_modeTimerCnt = 0;
|
||||
|
||||
m_rxState = DSRXS_NONE;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Fuzzy matching of the frame sync sequence
|
||||
if (countBits32((m_patternBuffer & FRAME_SYNC_MASK) ^ FRAME_SYNC_DATA) <= FRAME_SYNC_ERRS) {
|
||||
DEBUG1("DStarRX: found frame sync in None");
|
||||
DEBUG1("DStarRX: found frame sync in None, fuzzy");
|
||||
|
||||
::memset(m_rxBuffer, 0x00U, DSTAR_FEC_SECTION_LENGTH_BYTES);
|
||||
m_rxBufferBits = 0U;
|
||||
|
|
@ -297,7 +314,7 @@ void CDStarRX::processNone(bool bit)
|
|||
|
||||
// Exact matching of the data sync bit sequence
|
||||
if (countBits32((m_patternBuffer & DATA_SYNC_MASK) ^ DATA_SYNC_DATA) == 0U) {
|
||||
DEBUG1("DStarRX: found data sync in None");
|
||||
DEBUG1("DStarRX: found data sync in None, exact");
|
||||
|
||||
io.setDecode(true);
|
||||
|
||||
|
|
|
|||
|
|
@ -64,6 +64,8 @@ const uint16_t RX_RINGBUFFER_SIZE = 120U;
|
|||
extern MMDVM_STATE m_modemState;
|
||||
extern MMDVM_STATE m_modemState_prev;
|
||||
|
||||
extern uint32_t m_modeTimerCnt;
|
||||
|
||||
extern bool m_dstarEnable;
|
||||
extern bool m_dmrEnable;
|
||||
extern bool m_ysfEnable;
|
||||
|
|
|
|||
3
IO.cpp
3
IO.cpp
|
|
@ -32,7 +32,6 @@ m_txBuffer(TX_RINGBUFFER_SIZE),
|
|||
m_LoDevYSF(false),
|
||||
m_ledCount(0U),
|
||||
m_scanEnable(false),
|
||||
m_modeTimerCnt(0U),
|
||||
m_scanPauseCnt(0U),
|
||||
m_scanPos(0U),
|
||||
m_ledValue(true),
|
||||
|
|
@ -57,6 +56,8 @@ m_watchdog(0U)
|
|||
SCLK_pin(LOW);
|
||||
SDATA_pin(LOW);
|
||||
SLE_pin(LOW);
|
||||
|
||||
m_modeTimerCnt = 0;
|
||||
}
|
||||
|
||||
void CIO::process()
|
||||
|
|
|
|||
1
IO.h
1
IO.h
|
|
@ -124,7 +124,6 @@ private:
|
|||
bool m_LoDevYSF;
|
||||
uint32_t m_ledCount;
|
||||
bool m_scanEnable;
|
||||
uint32_t m_modeTimerCnt;
|
||||
uint32_t m_scanPauseCnt;
|
||||
uint8_t m_scanPos;
|
||||
uint8_t m_TotalModes;
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@
|
|||
MMDVM_STATE m_modemState = STATE_IDLE;
|
||||
MMDVM_STATE m_modemState_prev = STATE_IDLE;
|
||||
|
||||
uint32_t m_modeTimerCnt;
|
||||
|
||||
bool m_dstarEnable = true;
|
||||
bool m_dmrEnable = true;
|
||||
bool m_ysfEnable = true;
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
MMDVM_STATE m_modemState = STATE_IDLE;
|
||||
MMDVM_STATE m_modemState_prev = STATE_IDLE;
|
||||
|
||||
uint32_t m_modeTimerCnt;
|
||||
|
||||
bool m_dstarEnable = true;
|
||||
bool m_dmrEnable = true;
|
||||
bool m_ysfEnable = true;
|
||||
|
|
|
|||
Loading…
Reference in a new issue