mirror of
https://github.com/g4klx/MMDVM_HS.git
synced 2026-01-20 07:20:20 +01:00
Fixing bits to bytes conversion function in DMR DMO mode (improvement in DMR BER)
This commit is contained in:
parent
52dd589cea
commit
eef5d81e2c
37
DMRDMORX.cpp
37
DMRDMORX.cpp
|
|
@ -25,7 +25,7 @@
|
|||
#include "DMRSlotType.h"
|
||||
#include "Utils.h"
|
||||
|
||||
const uint8_t MAX_SYNC_BYTES_ERRS = 1U;
|
||||
const uint8_t MAX_SYNC_BYTES_ERRS = 3U;
|
||||
|
||||
const uint8_t MAX_SYNC_LOST_FRAMES = 13U;
|
||||
|
||||
|
|
@ -206,7 +206,7 @@ void CDMRDMORX::correlateSync()
|
|||
if (m_startPtr >= DMO_BUFFER_LENGTH_BITS)
|
||||
m_startPtr -= DMO_BUFFER_LENGTH_BITS;
|
||||
|
||||
m_endPtr = m_dataPtr + DMR_SLOT_TYPE_LENGTH_BITS / 2U + DMR_INFO_LENGTH_BITS / 2U;
|
||||
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;
|
||||
|
||||
|
|
@ -234,17 +234,28 @@ void CDMRDMORX::bitsToBytes(uint16_t start, uint8_t count, uint8_t* buffer)
|
|||
for (uint8_t i = 0U; i < count; i++) {
|
||||
|
||||
buffer[i] = 0U;
|
||||
buffer[i] |= ((m_buffer[start + 0U] & 0x01) << 7);
|
||||
buffer[i] |= ((m_buffer[start + 1U] & 0x01) << 6);
|
||||
buffer[i] |= ((m_buffer[start + 2U] & 0x01) << 5);
|
||||
buffer[i] |= ((m_buffer[start + 3U] & 0x01) << 4);
|
||||
buffer[i] |= ((m_buffer[start + 4U] & 0x01) << 3);
|
||||
buffer[i] |= ((m_buffer[start + 5U] & 0x01) << 2);
|
||||
buffer[i] |= ((m_buffer[start + 6U] & 0x01) << 1);
|
||||
buffer[i] |= ((m_buffer[start + 7U] & 0x01) << 0);
|
||||
|
||||
start += 8U;
|
||||
|
||||
buffer[i] |= ((m_buffer[start++] & 0x01) << 7);
|
||||
if (start >= DMO_BUFFER_LENGTH_BITS)
|
||||
start -= DMO_BUFFER_LENGTH_BITS;
|
||||
buffer[i] |= ((m_buffer[start++] & 0x01) << 6);
|
||||
if (start >= DMO_BUFFER_LENGTH_BITS)
|
||||
start -= DMO_BUFFER_LENGTH_BITS;
|
||||
buffer[i] |= ((m_buffer[start++] & 0x01) << 5);
|
||||
if (start >= DMO_BUFFER_LENGTH_BITS)
|
||||
start -= DMO_BUFFER_LENGTH_BITS;
|
||||
buffer[i] |= ((m_buffer[start++] & 0x01) << 4);
|
||||
if (start >= DMO_BUFFER_LENGTH_BITS)
|
||||
start -= DMO_BUFFER_LENGTH_BITS;
|
||||
buffer[i] |= ((m_buffer[start++] & 0x01) << 3);
|
||||
if (start >= DMO_BUFFER_LENGTH_BITS)
|
||||
start -= DMO_BUFFER_LENGTH_BITS;
|
||||
buffer[i] |= ((m_buffer[start++] & 0x01) << 2);
|
||||
if (start >= DMO_BUFFER_LENGTH_BITS)
|
||||
start -= DMO_BUFFER_LENGTH_BITS;
|
||||
buffer[i] |= ((m_buffer[start++] & 0x01) << 1);
|
||||
if (start >= DMO_BUFFER_LENGTH_BITS)
|
||||
start -= DMO_BUFFER_LENGTH_BITS;
|
||||
buffer[i] |= ((m_buffer[start++] & 0x01) << 0);
|
||||
if (start >= DMO_BUFFER_LENGTH_BITS)
|
||||
start -= DMO_BUFFER_LENGTH_BITS;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue