mirror of
https://github.com/g4klx/MMDVM.git
synced 2026-04-05 14:37:02 +00:00
Merge branch 'DMO'
This commit is contained in:
commit
23faa81030
10 changed files with 826 additions and 19 deletions
|
|
@ -153,8 +153,13 @@ void CSerialPort::getStatus()
|
|||
reply[6U] = 0U;
|
||||
|
||||
if (m_dmrEnable) {
|
||||
reply[7U] = dmrTX.getSpace1();
|
||||
reply[8U] = dmrTX.getSpace2();
|
||||
if (m_duplex) {
|
||||
reply[7U] = dmrTX.getSpace1();
|
||||
reply[8U] = dmrTX.getSpace2();
|
||||
} else {
|
||||
reply[7U] = 10U;
|
||||
reply[8U] = dmrDMOTX.getSpace();
|
||||
}
|
||||
} else {
|
||||
reply[7U] = 0U;
|
||||
reply[8U] = 0U;
|
||||
|
|
@ -195,7 +200,7 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
|
|||
bool rxInvert = (data[0U] & 0x01U) == 0x01U;
|
||||
bool txInvert = (data[0U] & 0x02U) == 0x02U;
|
||||
bool pttInvert = (data[0U] & 0x04U) == 0x04U;
|
||||
bool duplex = (data[0U] & 0x80U) == 0x80U;
|
||||
bool simplex = (data[0U] & 0x80U) == 0x80U;
|
||||
|
||||
bool dstarEnable = (data[1U] & 0x01U) == 0x01U;
|
||||
bool dmrEnable = (data[1U] & 0x02U) == 0x02U;
|
||||
|
|
@ -245,14 +250,16 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
|
|||
m_dstarEnable = dstarEnable;
|
||||
m_dmrEnable = dmrEnable;
|
||||
m_ysfEnable = ysfEnable;
|
||||
m_duplex = duplex;
|
||||
m_duplex = !simplex;
|
||||
|
||||
dstarTX.setTXDelay(txDelay);
|
||||
ysfTX.setTXDelay(txDelay);
|
||||
dmrDMOTX.setTXDelay(txDelay);
|
||||
|
||||
dmrTX.setColorCode(colorCode);
|
||||
dmrRX.setColorCode(colorCode);
|
||||
dmrRX.setDelay(dmrDelay);
|
||||
dmrDMORX.setColorCode(colorCode);
|
||||
dmrIdleRX.setColorCode(colorCode);
|
||||
|
||||
io.setParameters(rxInvert, txInvert, pttInvert, rxLevel, dstarTXLevel, dmrTXLevel, ysfTXLevel);
|
||||
|
|
@ -298,6 +305,7 @@ void CSerialPort::setMode(MMDVM_STATE modemState)
|
|||
case STATE_DSTAR:
|
||||
DEBUG1("Mode set to D-Star");
|
||||
dmrIdleRX.reset();
|
||||
dmrDMORX.reset();
|
||||
dmrRX.reset();
|
||||
ysfRX.reset();
|
||||
cwIdTX.reset();
|
||||
|
|
@ -305,6 +313,7 @@ void CSerialPort::setMode(MMDVM_STATE modemState)
|
|||
case STATE_YSF:
|
||||
DEBUG1("Mode set to System Fusion");
|
||||
dmrIdleRX.reset();
|
||||
dmrDMORX.reset();
|
||||
dmrRX.reset();
|
||||
dstarRX.reset();
|
||||
cwIdTX.reset();
|
||||
|
|
@ -312,6 +321,7 @@ void CSerialPort::setMode(MMDVM_STATE modemState)
|
|||
case STATE_DSTARCAL:
|
||||
DEBUG1("Mode set to D-Star Calibrate");
|
||||
dmrIdleRX.reset();
|
||||
dmrDMORX.reset();
|
||||
dmrRX.reset();
|
||||
dstarRX.reset();
|
||||
ysfRX.reset();
|
||||
|
|
@ -320,6 +330,7 @@ void CSerialPort::setMode(MMDVM_STATE modemState)
|
|||
case STATE_DMRCAL:
|
||||
DEBUG1("Mode set to DMR Calibrate");
|
||||
dmrIdleRX.reset();
|
||||
dmrDMORX.reset();
|
||||
dmrRX.reset();
|
||||
dstarRX.reset();
|
||||
ysfRX.reset();
|
||||
|
|
@ -475,8 +486,10 @@ void CSerialPort::process()
|
|||
|
||||
case MMDVM_DMR_DATA1:
|
||||
if (m_dmrEnable) {
|
||||
if (m_modemState == STATE_IDLE || m_modemState == STATE_DMR)
|
||||
err = dmrTX.writeData1(m_buffer + 3U, m_len - 3U);
|
||||
if (m_modemState == STATE_IDLE || m_modemState == STATE_DMR) {
|
||||
if (m_duplex)
|
||||
err = dmrTX.writeData1(m_buffer + 3U, m_len - 3U);
|
||||
}
|
||||
}
|
||||
if (err == 0U) {
|
||||
if (m_modemState == STATE_IDLE)
|
||||
|
|
@ -489,8 +502,12 @@ void CSerialPort::process()
|
|||
|
||||
case MMDVM_DMR_DATA2:
|
||||
if (m_dmrEnable) {
|
||||
if (m_modemState == STATE_IDLE || m_modemState == STATE_DMR)
|
||||
err = dmrTX.writeData2(m_buffer + 3U, m_len - 3U);
|
||||
if (m_modemState == STATE_IDLE || m_modemState == STATE_DMR) {
|
||||
if (m_duplex)
|
||||
err = dmrTX.writeData2(m_buffer + 3U, m_len - 3U);
|
||||
else
|
||||
err = dmrDMOTX.writeData(m_buffer + 3U, m_len - 3U);
|
||||
}
|
||||
}
|
||||
if (err == 0U) {
|
||||
if (m_modemState == STATE_IDLE)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue