From 878b4d6d7324e6c0d5b844e1bf4f31cd3476b499 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Mon, 10 Oct 2016 17:46:37 +0100 Subject: [PATCH] Add controls for the CW Id level. --- Conf.cpp | 10 +++++++++- Conf.h | 2 ++ MMDVM.ini | 1 + MMDVMHost.cpp | 4 +++- Modem.cpp | 7 +++++-- Modem.h | 3 ++- 6 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Conf.cpp b/Conf.cpp index eb32872..7a00eae 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -80,6 +80,7 @@ m_modemPTTInvert(false), m_modemTXDelay(100U), m_modemDMRDelay(0U), m_modemRXLevel(50U), +m_modemCWIdTXLevel(50U), m_modemDStarTXLevel(50U), m_modemDMRTXLevel(50U), m_modemYSFTXLevel(50U), @@ -302,7 +303,9 @@ bool CConf::read() else if (::strcmp(key, "RXLevel") == 0) m_modemRXLevel = (unsigned int)::atoi(value); else if (::strcmp(key, "TXLevel") == 0) - m_modemDStarTXLevel = m_modemDMRTXLevel = m_modemYSFTXLevel = m_modemP25TXLevel = (unsigned int)::atoi(value); + m_modemCWIdTXLevel = m_modemDStarTXLevel = m_modemDMRTXLevel = m_modemYSFTXLevel = m_modemP25TXLevel = (unsigned int)::atoi(value); + else if (::strcmp(key, "CWIdTXLevel") == 0) + m_modemCWIdTXLevel = (unsigned int)::atoi(value); else if (::strcmp(key, "D-StarTXLevel") == 0) m_modemDStarTXLevel = (unsigned int)::atoi(value); else if (::strcmp(key, "DMRTXLevel") == 0) @@ -718,6 +721,11 @@ unsigned int CConf::getModemRXLevel() const return m_modemRXLevel; } +unsigned int CConf::getModemCWIdTXLevel() const +{ + return m_modemCWIdTXLevel; +} + unsigned int CConf::getModemDStarTXLevel() const { return m_modemDStarTXLevel; diff --git a/Conf.h b/Conf.h index ad36a19..e3efdf4 100644 --- a/Conf.h +++ b/Conf.h @@ -68,6 +68,7 @@ public: unsigned int getModemTXDelay() const; unsigned int getModemDMRDelay() const; unsigned int getModemRXLevel() const; + unsigned int getModemCWIdTXLevel() const; unsigned int getModemDStarTXLevel() const; unsigned int getModemDMRTXLevel() const; unsigned int getModemYSFTXLevel() const; @@ -212,6 +213,7 @@ private: unsigned int m_modemTXDelay; unsigned int m_modemDMRDelay; unsigned int m_modemRXLevel; + unsigned int m_modemCWIdTXLevel; unsigned int m_modemDStarTXLevel; unsigned int m_modemDMRTXLevel; unsigned int m_modemYSFTXLevel; diff --git a/MMDVM.ini b/MMDVM.ini index 31ed9f4..af9556e 100644 --- a/MMDVM.ini +++ b/MMDVM.ini @@ -40,6 +40,7 @@ TXDelay=100 DMRDelay=0 RXLevel=50 TXLevel=50 +# CWIdTXLevel=50 # D-StarTXLevel=50 # DMRTXLevel=50 # YSFTXLevel=50 diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index 3865096..cc8afb4 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -761,6 +761,7 @@ bool CMMDVMHost::createModem() unsigned int txDelay = m_conf.getModemTXDelay(); unsigned int dmrDelay = m_conf.getModemDMRDelay(); unsigned int rxLevel = m_conf.getModemRXLevel(); + unsigned int cwIdTXLevel = m_conf.getModemCWIdTXLevel(); unsigned int dstarTXLevel = m_conf.getModemDStarTXLevel(); unsigned int dmrTXLevel = m_conf.getModemDMRTXLevel(); unsigned int ysfTXLevel = m_conf.getModemYSFTXLevel(); @@ -779,6 +780,7 @@ bool CMMDVMHost::createModem() LogInfo(" TX Delay: %ums", txDelay); LogInfo(" DMR Delay: %u (%.1fms)", dmrDelay, float(dmrDelay) * 0.0416666F); LogInfo(" RX Level: %u%%", rxLevel); + LogInfo(" CW Id TX Level: %u%%", cwIdTXLevel); LogInfo(" D-Star TX Level: %u%%", dstarTXLevel); LogInfo(" DMR TX Level: %u%%", dmrTXLevel); LogInfo(" YSF TX Level: %u%%", ysfTXLevel); @@ -790,7 +792,7 @@ bool CMMDVMHost::createModem() m_modem = new CModem(port, m_duplex, rxInvert, txInvert, pttInvert, txDelay, dmrDelay, oscOffset, debug); m_modem->setModeParams(m_dstarEnabled, m_dmrEnabled, m_ysfEnabled, m_p25Enabled); - m_modem->setLevels(rxLevel, dstarTXLevel, dmrTXLevel, ysfTXLevel, p25TXLevel); + m_modem->setLevels(rxLevel, cwIdTXLevel, dstarTXLevel, dmrTXLevel, ysfTXLevel, p25TXLevel); m_modem->setRFParams(rxFrequency, txFrequency); m_modem->setDMRParams(colorCode); diff --git a/Modem.cpp b/Modem.cpp index 587247a..2ed5621 100644 --- a/Modem.cpp +++ b/Modem.cpp @@ -92,6 +92,7 @@ m_pttInvert(pttInvert), m_txDelay(txDelay), m_dmrDelay(dmrDelay), m_rxLevel(0U), +m_cwIdTXLevel(0U), m_dstarTXLevel(0U), m_dmrTXLevel(0U), m_ysfTXLevel(0U), @@ -155,9 +156,10 @@ void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled, m_p25Enabled = p25Enabled; } -void CModem::setLevels(unsigned int rxLevel, unsigned int dstarTXLevel, unsigned int dmrTXLevel, unsigned int ysfTXLevel, unsigned int p25TXLevel) +void CModem::setLevels(unsigned int rxLevel, unsigned int cwIdTXLevel, unsigned int dstarTXLevel, unsigned int dmrTXLevel, unsigned int ysfTXLevel, unsigned int p25TXLevel) { m_rxLevel = rxLevel; + m_cwIdTXLevel = cwIdTXLevel; m_dstarTXLevel = dstarTXLevel; m_dmrTXLevel = dmrTXLevel; m_ysfTXLevel = ysfTXLevel; @@ -947,7 +949,8 @@ bool CModem::setConfig() buffer[6U] = MODE_IDLE; buffer[7U] = (m_rxLevel * 255U) / 100U; - buffer[8U] = (m_dstarTXLevel * 255U) / 100U; // For backwards compatibility + + buffer[8U] = (m_cwIdTXLevel * 255U) / 100U; buffer[9U] = m_colorCode; diff --git a/Modem.h b/Modem.h index 96cba0c..8403235 100644 --- a/Modem.h +++ b/Modem.h @@ -39,7 +39,7 @@ public: void setRFParams(unsigned int rxFrequency, unsigned int txFrequency); void setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled, bool p25Enabled); - void setLevels(unsigned int rxLevel, unsigned int dstarTXLevel, unsigned int dmrTXLevel, unsigned int ysfTXLevel, unsigned int p25Enabled); + void setLevels(unsigned int rxLevel, unsigned int cwIdTXLevel, unsigned int dstarTXLevel, unsigned int dmrTXLevel, unsigned int ysfTXLevel, unsigned int p25Enabled); void setDMRParams(unsigned int colorCode); bool open(); @@ -95,6 +95,7 @@ private: unsigned int m_txDelay; unsigned int m_dmrDelay; unsigned int m_rxLevel; + unsigned int m_cwIdTXLevel; unsigned int m_dstarTXLevel; unsigned int m_dmrTXLevel; unsigned int m_ysfTXLevel;