diff --git a/Conf.cpp b/Conf.cpp index ac9f63e..8dd5d42 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -85,12 +85,12 @@ m_modemTXInvert(false), m_modemPTTInvert(false), m_modemTXDelay(100U), m_modemDMRDelay(0U), -m_modemRXLevel(50U), -m_modemCWIdTXLevel(50U), -m_modemDStarTXLevel(50U), -m_modemDMRTXLevel(50U), -m_modemYSFTXLevel(50U), -m_modemP25TXLevel(50U), +m_modemRXLevel(50.0F), +m_modemCWIdTXLevel(50.0F), +m_modemDStarTXLevel(50.0F), +m_modemDMRTXLevel(50.0F), +m_modemYSFTXLevel(50.0F), +m_modemP25TXLevel(50.0F), m_modemRSSIMappingFile(), m_modemTrace(false), m_modemDebug(false), @@ -329,17 +329,17 @@ bool CConf::read() else if (::strcmp(key, "RXLevel") == 0) m_modemRXLevel = (unsigned int)::atoi(value); else if (::strcmp(key, "TXLevel") == 0) - m_modemCWIdTXLevel = m_modemDStarTXLevel = m_modemDMRTXLevel = m_modemYSFTXLevel = m_modemP25TXLevel = (unsigned int)::atoi(value); + m_modemCWIdTXLevel = m_modemDStarTXLevel = m_modemDMRTXLevel = m_modemYSFTXLevel = m_modemP25TXLevel = ::atof(value); else if (::strcmp(key, "CWIdTXLevel") == 0) - m_modemCWIdTXLevel = (unsigned int)::atoi(value); + m_modemCWIdTXLevel = ::atof(value); else if (::strcmp(key, "D-StarTXLevel") == 0) - m_modemDStarTXLevel = (unsigned int)::atoi(value); + m_modemDStarTXLevel = ::atof(value); else if (::strcmp(key, "DMRTXLevel") == 0) - m_modemDMRTXLevel = (unsigned int)::atoi(value); + m_modemDMRTXLevel = ::atof(value); else if (::strcmp(key, "YSFTXLevel") == 0) - m_modemYSFTXLevel = (unsigned int)::atoi(value); + m_modemYSFTXLevel = ::atof(value); else if (::strcmp(key, "P25TXLevel") == 0) - m_modemP25TXLevel = (unsigned int)::atoi(value); + m_modemP25TXLevel = ::atof(value); else if (::strcmp(key, "RSSIMappingFile") == 0) m_modemRSSIMappingFile = value; else if (::strcmp(key, "Trace") == 0) @@ -730,32 +730,32 @@ unsigned int CConf::getModemDMRDelay() const return m_modemDMRDelay; } -unsigned int CConf::getModemRXLevel() const +float CConf::getModemRXLevel() const { return m_modemRXLevel; } -unsigned int CConf::getModemCWIdTXLevel() const +float CConf::getModemCWIdTXLevel() const { return m_modemCWIdTXLevel; } -unsigned int CConf::getModemDStarTXLevel() const +float CConf::getModemDStarTXLevel() const { return m_modemDStarTXLevel; } -unsigned int CConf::getModemDMRTXLevel() const +float CConf::getModemDMRTXLevel() const { return m_modemDMRTXLevel; } -unsigned int CConf::getModemYSFTXLevel() const +float CConf::getModemYSFTXLevel() const { return m_modemYSFTXLevel; } -unsigned int CConf::getModemP25TXLevel() const +float CConf::getModemP25TXLevel() const { return m_modemP25TXLevel; } diff --git a/Conf.h b/Conf.h index 4ef4dac..a021573 100644 --- a/Conf.h +++ b/Conf.h @@ -72,12 +72,12 @@ public: bool getModemPTTInvert() const; 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; - unsigned int getModemP25TXLevel() const; + float getModemRXLevel() const; + float getModemCWIdTXLevel() const; + float getModemDStarTXLevel() const; + float getModemDMRTXLevel() const; + float getModemYSFTXLevel() const; + float getModemP25TXLevel() const; std::string getModemRSSIMappingFile() const; bool getModemTrace() const; bool getModemDebug() const; @@ -227,12 +227,12 @@ private: bool m_modemPTTInvert; 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; - unsigned int m_modemP25TXLevel; + float m_modemRXLevel; + float m_modemCWIdTXLevel; + float m_modemDStarTXLevel; + float m_modemDMRTXLevel; + float m_modemYSFTXLevel; + float m_modemP25TXLevel; std::string m_modemRSSIMappingFile; bool m_modemTrace; bool m_modemDebug; diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index a66bae0..2fb660f 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -799,12 +799,12 @@ bool CMMDVMHost::createModem() bool pttInvert = m_conf.getModemPTTInvert(); 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(); - unsigned int p25TXLevel = m_conf.getModemP25TXLevel(); + float rxLevel = m_conf.getModemRXLevel(); + float cwIdTXLevel = m_conf.getModemCWIdTXLevel(); + float dstarTXLevel = m_conf.getModemDStarTXLevel(); + float dmrTXLevel = m_conf.getModemDMRTXLevel(); + float ysfTXLevel = m_conf.getModemYSFTXLevel(); + float p25TXLevel = m_conf.getModemP25TXLevel(); bool trace = m_conf.getModemTrace(); bool debug = m_conf.getModemDebug(); unsigned int colorCode = m_conf.getDMRColorCode(); @@ -819,12 +819,12 @@ bool CMMDVMHost::createModem() LogInfo(" PTT Invert: %s", pttInvert ? "yes" : "no"); 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); - LogInfo(" P25 TX Level: %u%%", p25TXLevel); + LogInfo(" RX Level: %.1f%%", rxLevel); + LogInfo(" CW Id TX Level: %.1f%%", cwIdTXLevel); + LogInfo(" D-Star TX Level: %.1f%%", dstarTXLevel); + LogInfo(" DMR TX Level: %.1f%%", dmrTXLevel); + LogInfo(" YSF TX Level: %.1f%%", ysfTXLevel); + LogInfo(" P25 TX Level: %.1f%%", p25TXLevel); LogInfo(" RX Frequency: %uHz", rxFrequency); LogInfo(" TX Frequency: %uHz", txFrequency); diff --git a/Modem.cpp b/Modem.cpp index 15235c5..13d6f2c 100644 --- a/Modem.cpp +++ b/Modem.cpp @@ -159,7 +159,7 @@ void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled, m_p25Enabled = p25Enabled; } -void CModem::setLevels(unsigned int rxLevel, unsigned int cwIdTXLevel, unsigned int dstarTXLevel, unsigned int dmrTXLevel, unsigned int ysfTXLevel, unsigned int p25TXLevel) +void CModem::setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, float dmrTXLevel, float ysfTXLevel, float p25TXLevel) { m_rxLevel = rxLevel; m_cwIdTXLevel = cwIdTXLevel; @@ -975,9 +975,9 @@ bool CModem::setConfig() buffer[6U] = MODE_IDLE; - buffer[7U] = (m_rxLevel * 255U) / 100U; + buffer[7U] = (unsigned char)(m_rxLevel * 2.55F + 0.5F); - buffer[8U] = (m_cwIdTXLevel * 255U) / 100U; + buffer[8U] = (unsigned char)(m_cwIdTXLevel * 2.55F + 0.5F); buffer[9U] = m_dmrColorCode; @@ -985,10 +985,10 @@ bool CModem::setConfig() buffer[11U] = 128U; // Was OscOffset - buffer[12U] = (m_dstarTXLevel * 255U) / 100U; - buffer[13U] = (m_dmrTXLevel * 255U) / 100U; - buffer[14U] = (m_ysfTXLevel * 255U) / 100U; - buffer[15U] = (m_p25TXLevel * 255U) / 100U; + buffer[12U] = (unsigned char)(m_dstarTXLevel * 2.55F + 0.5F); + buffer[13U] = (unsigned char)(m_dmrTXLevel * 2.55F + 0.5F); + buffer[14U] = (unsigned char)(m_ysfTXLevel * 2.55F + 0.5F); + buffer[15U] = (unsigned char)(m_p25TXLevel * 2.55F + 0.5F); // CUtils::dump(1U, "Written", buffer, 16U); diff --git a/Modem.h b/Modem.h index 7196220..f67104e 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 cwIdTXLevel, unsigned int dstarTXLevel, unsigned int dmrTXLevel, unsigned int ysfTXLevel, unsigned int p25Enabled); + void setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, float dmrTXLevel, float ysfTXLevel, float p25Enabled); void setDMRParams(unsigned int colorCode); void setYSFParams(bool loDev); @@ -97,12 +97,12 @@ private: bool m_pttInvert; 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; - unsigned int m_p25TXLevel; + float m_rxLevel; + float m_cwIdTXLevel; + float m_dstarTXLevel; + float m_dmrTXLevel; + float m_ysfTXLevel; + float m_p25TXLevel; bool m_trace; bool m_debug; unsigned int m_rxFrequency;