Allow the MMDVM levels to be specified as floating point values.

This commit is contained in:
Jonathan Naylor 2017-06-02 16:34:55 +01:00
parent ed9362845a
commit c1521ee445
5 changed files with 56 additions and 56 deletions

View file

@ -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;
}

24
Conf.h
View file

@ -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;

View file

@ -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);

View file

@ -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);

14
Modem.h
View file

@ -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;