mirror of https://github.com/markqvist/MMDVM.git
Merge pull request #134 from juribeparada/master
Adding 80 Hz square wave test signal support for MMDVMCaldstar_correlator
commit
7b03336469
29
DMRTX.cpp
29
DMRTX.cpp
|
@ -302,12 +302,33 @@ void CDMRTX::createData(uint8_t slotIndex)
|
|||
|
||||
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;
|
||||
// 1.2 kHz sine wave generation
|
||||
if (m_modemState == STATE_DMRCAL) {
|
||||
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;
|
||||
}
|
||||
|
||||
// 80 Hz square wave generation
|
||||
if (m_modemState == STATE_LFCAL) {
|
||||
for (unsigned int i = 0U; i < 7U; i++) {
|
||||
m_poBuffer[i] = 0x55U; // +3, +3, ... pattern
|
||||
m_markBuffer[i] = MARK_NONE;
|
||||
}
|
||||
|
||||
m_poBuffer[7U] = 0x5FU; // +3, +3, -3, -3 pattern
|
||||
|
||||
for (unsigned int i = 8U; i < 15U; i++) {
|
||||
m_poBuffer[i] = 0xFFU; // -3, -3, ... pattern
|
||||
m_markBuffer[i] = MARK_NONE;
|
||||
}
|
||||
|
||||
m_poLen = 15U;
|
||||
}
|
||||
|
||||
m_poLen = DMR_FRAME_LENGTH_BYTES;
|
||||
m_poPtr = 0U;
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ enum MMDVM_STATE {
|
|||
STATE_P25 = 4,
|
||||
|
||||
// Dummy states start at 90
|
||||
STATE_LFCAL = 95,
|
||||
STATE_RSSICAL = 96,
|
||||
STATE_CWID = 97,
|
||||
STATE_DMRCAL = 98,
|
||||
|
|
|
@ -93,7 +93,7 @@ void loop()
|
|||
if (m_modemState == STATE_DSTARCAL)
|
||||
calDStarTX.process();
|
||||
|
||||
if (m_modemState == STATE_DMRCAL)
|
||||
if (m_modemState == STATE_DMRCAL || m_modemState == STATE_LFCAL)
|
||||
calDMR.process();
|
||||
|
||||
if (m_modemState == STATE_IDLE)
|
||||
|
|
|
@ -90,7 +90,7 @@ void loop()
|
|||
if (m_modemState == STATE_DSTARCAL)
|
||||
calDStarTX.process();
|
||||
|
||||
if (m_modemState == STATE_DMRCAL)
|
||||
if (m_modemState == STATE_DMRCAL || m_modemState == STATE_LFCAL)
|
||||
calDMR.process();
|
||||
|
||||
if (m_modemState == STATE_IDLE)
|
||||
|
|
|
@ -243,7 +243,7 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
|
|||
|
||||
MMDVM_STATE modemState = MMDVM_STATE(data[3U]);
|
||||
|
||||
if (modemState != STATE_IDLE && modemState != STATE_DSTAR && modemState != STATE_DMR && modemState != STATE_YSF && modemState != STATE_P25 && modemState != STATE_DSTARCAL && modemState != STATE_DMRCAL && modemState != STATE_RSSICAL)
|
||||
if (modemState != STATE_IDLE && modemState != STATE_DSTAR && modemState != STATE_DMR && modemState != STATE_YSF && modemState != STATE_P25 && modemState != STATE_DSTARCAL && modemState != STATE_DMRCAL && modemState != STATE_RSSICAL && modemState != STATE_LFCAL)
|
||||
return 4U;
|
||||
if (modemState == STATE_DSTAR && !dstarEnable)
|
||||
return 4U;
|
||||
|
@ -309,7 +309,7 @@ uint8_t CSerialPort::setMode(const uint8_t* data, uint8_t length)
|
|||
if (modemState == m_modemState)
|
||||
return 0U;
|
||||
|
||||
if (modemState != STATE_IDLE && modemState != STATE_DSTAR && modemState != STATE_DMR && modemState != STATE_YSF && modemState != STATE_P25 && modemState != STATE_DSTARCAL && modemState != STATE_DMRCAL && modemState != STATE_RSSICAL)
|
||||
if (modemState != STATE_IDLE && modemState != STATE_DSTAR && modemState != STATE_DMR && modemState != STATE_YSF && modemState != STATE_P25 && modemState != STATE_DSTARCAL && modemState != STATE_DMRCAL && modemState != STATE_RSSICAL && modemState != STATE_LFCAL)
|
||||
return 4U;
|
||||
if (modemState == STATE_DSTAR && !m_dstarEnable)
|
||||
return 4U;
|
||||
|
@ -392,6 +392,16 @@ void CSerialPort::setMode(MMDVM_STATE modemState)
|
|||
p25RX.reset();
|
||||
cwIdTX.reset();
|
||||
break;
|
||||
case STATE_LFCAL:
|
||||
DEBUG1("Mode set to 80 Hz Calibrate");
|
||||
dmrIdleRX.reset();
|
||||
dmrDMORX.reset();
|
||||
dmrRX.reset();
|
||||
dstarRX.reset();
|
||||
ysfRX.reset();
|
||||
p25RX.reset();
|
||||
cwIdTX.reset();
|
||||
break;
|
||||
default:
|
||||
DEBUG1("Mode set to Idle");
|
||||
// STATE_IDLE
|
||||
|
@ -473,7 +483,7 @@ void CSerialPort::process()
|
|||
case MMDVM_CAL_DATA:
|
||||
if (m_modemState == STATE_DSTARCAL)
|
||||
err = calDStarTX.write(m_buffer + 3U, m_len - 3U);
|
||||
if (m_modemState == STATE_DMRCAL)
|
||||
if (m_modemState == STATE_DMRCAL || m_modemState == STATE_LFCAL)
|
||||
err = calDMR.write(m_buffer + 3U, m_len - 3U);
|
||||
if (err == 0U) {
|
||||
sendACK();
|
||||
|
|
Loading…
Reference in New Issue