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()
|
void CDMRTX::createCal()
|
||||||
{
|
{
|
||||||
for (unsigned int i = 0U; i < DMR_FRAME_LENGTH_BYTES; i++) {
|
// 1.2 kHz sine wave generation
|
||||||
m_poBuffer[i] = 0x5FU; // +3, +3, -3, -3 pattern for deviation cal.
|
if (m_modemState == STATE_DMRCAL) {
|
||||||
m_markBuffer[i] = MARK_NONE;
|
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;
|
m_poPtr = 0U;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,7 @@ enum MMDVM_STATE {
|
||||||
STATE_P25 = 4,
|
STATE_P25 = 4,
|
||||||
|
|
||||||
// Dummy states start at 90
|
// Dummy states start at 90
|
||||||
|
STATE_LFCAL = 95,
|
||||||
STATE_RSSICAL = 96,
|
STATE_RSSICAL = 96,
|
||||||
STATE_CWID = 97,
|
STATE_CWID = 97,
|
||||||
STATE_DMRCAL = 98,
|
STATE_DMRCAL = 98,
|
||||||
|
|
|
@ -93,7 +93,7 @@ void loop()
|
||||||
if (m_modemState == STATE_DSTARCAL)
|
if (m_modemState == STATE_DSTARCAL)
|
||||||
calDStarTX.process();
|
calDStarTX.process();
|
||||||
|
|
||||||
if (m_modemState == STATE_DMRCAL)
|
if (m_modemState == STATE_DMRCAL || m_modemState == STATE_LFCAL)
|
||||||
calDMR.process();
|
calDMR.process();
|
||||||
|
|
||||||
if (m_modemState == STATE_IDLE)
|
if (m_modemState == STATE_IDLE)
|
||||||
|
|
|
@ -90,7 +90,7 @@ void loop()
|
||||||
if (m_modemState == STATE_DSTARCAL)
|
if (m_modemState == STATE_DSTARCAL)
|
||||||
calDStarTX.process();
|
calDStarTX.process();
|
||||||
|
|
||||||
if (m_modemState == STATE_DMRCAL)
|
if (m_modemState == STATE_DMRCAL || m_modemState == STATE_LFCAL)
|
||||||
calDMR.process();
|
calDMR.process();
|
||||||
|
|
||||||
if (m_modemState == STATE_IDLE)
|
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]);
|
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;
|
return 4U;
|
||||||
if (modemState == STATE_DSTAR && !dstarEnable)
|
if (modemState == STATE_DSTAR && !dstarEnable)
|
||||||
return 4U;
|
return 4U;
|
||||||
|
@ -309,7 +309,7 @@ uint8_t CSerialPort::setMode(const uint8_t* data, uint8_t length)
|
||||||
if (modemState == m_modemState)
|
if (modemState == m_modemState)
|
||||||
return 0U;
|
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;
|
return 4U;
|
||||||
if (modemState == STATE_DSTAR && !m_dstarEnable)
|
if (modemState == STATE_DSTAR && !m_dstarEnable)
|
||||||
return 4U;
|
return 4U;
|
||||||
|
@ -392,6 +392,16 @@ void CSerialPort::setMode(MMDVM_STATE modemState)
|
||||||
p25RX.reset();
|
p25RX.reset();
|
||||||
cwIdTX.reset();
|
cwIdTX.reset();
|
||||||
break;
|
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:
|
default:
|
||||||
DEBUG1("Mode set to Idle");
|
DEBUG1("Mode set to Idle");
|
||||||
// STATE_IDLE
|
// STATE_IDLE
|
||||||
|
@ -473,7 +483,7 @@ void CSerialPort::process()
|
||||||
case MMDVM_CAL_DATA:
|
case MMDVM_CAL_DATA:
|
||||||
if (m_modemState == STATE_DSTARCAL)
|
if (m_modemState == STATE_DSTARCAL)
|
||||||
err = calDStarTX.write(m_buffer + 3U, m_len - 3U);
|
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);
|
err = calDMR.write(m_buffer + 3U, m_len - 3U);
|
||||||
if (err == 0U) {
|
if (err == 0U) {
|
||||||
sendACK();
|
sendACK();
|
||||||
|
|
Loading…
Reference in New Issue