mirror of
https://github.com/g4klx/MMDVM.git
synced 2026-04-07 15:36:21 +00:00
Add DMR calibration.
This commit is contained in:
parent
8bfff17ace
commit
51f26b1330
13 changed files with 184 additions and 46 deletions
25
DMRTX.cpp
25
DMRTX.cpp
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2009-2016 by Jonathan Naylor G4KLX
|
||||
* Copyright (C) 2016 by Colin Durbridge G4EML
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -97,7 +98,11 @@ void CDMRTX::process()
|
|||
createData(1U);
|
||||
m_state = DMRTXSTATE_CACH1;
|
||||
break;
|
||||
|
||||
|
||||
case DMRTXSTATE_CAL:
|
||||
createCal();
|
||||
break;
|
||||
|
||||
default:
|
||||
createCACH(0U, 1U);
|
||||
m_state = DMRTXSTATE_SLOT1;
|
||||
|
|
@ -193,6 +198,13 @@ void CDMRTX::setStart(bool start)
|
|||
m_count = 0U;
|
||||
}
|
||||
|
||||
void CDMRTX::setCal(bool start)
|
||||
{
|
||||
m_state = start ? DMRTXSTATE_CAL : DMRTXSTATE_IDLE;
|
||||
|
||||
m_count = 0U;
|
||||
}
|
||||
|
||||
void CDMRTX::writeByte(uint8_t c, uint8_t control)
|
||||
{
|
||||
q15_t inBuffer[DMR_RADIO_SYMBOL_LENGTH * 4U + 1U];
|
||||
|
|
@ -279,6 +291,17 @@ void CDMRTX::createData(uint8_t slotIndex)
|
|||
m_poPtr = 0U;
|
||||
}
|
||||
|
||||
void CDMRTX::createCal()
|
||||
{
|
||||
for (unsigned int i = 0U; i < DMR_FRAME_LENGTH_BYTES; i++) {
|
||||
m_poBuffer[i] = 0x5FU; // +3, +3, -3, -3 pattern for deviation cal.
|
||||
m_markBuffer[i] = MARK_NONE;
|
||||
}
|
||||
|
||||
m_poLen = DMR_FRAME_LENGTH_BYTES;
|
||||
m_poPtr = 0U;
|
||||
}
|
||||
|
||||
void CDMRTX::createCACH(uint8_t txSlotIndex, uint8_t rxSlotIndex)
|
||||
{
|
||||
if (m_cachPtr >= 12U)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue