Add fine adjustments to DMR/YSF thresholds.
This commit is contained in:
parent
9240550de6
commit
768e3efcad
16
Conf.cpp
16
Conf.cpp
|
@ -82,6 +82,8 @@ m_modemDMRLevel1(0),
|
|||
m_modemDMRLevel3(0),
|
||||
m_modemYSFLevel1(0),
|
||||
m_modemYSFLevel3(0),
|
||||
m_modemDMRThreshold(0),
|
||||
m_modemYSFThreshold(0),
|
||||
m_modemOscOffset(0),
|
||||
m_modemDebug(false),
|
||||
m_dstarEnabled(true),
|
||||
|
@ -280,6 +282,10 @@ bool CConf::read()
|
|||
m_modemYSFLevel1 = ::atoi(value);
|
||||
else if (::strcmp(key, "YSFLevel3") == 0)
|
||||
m_modemYSFLevel3 = ::atoi(value);
|
||||
else if (::strcmp(key, "DMRThreshold") == 0)
|
||||
m_modemDMRThreshold = ::atoi(value);
|
||||
else if (::strcmp(key, "YSFThreshold") == 0)
|
||||
m_modemYSFThreshold = ::atoi(value);
|
||||
else if (::strcmp(key, "OscOffset") == 0)
|
||||
m_modemOscOffset = ::atoi(value);
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
|
@ -641,6 +647,16 @@ int CConf::getModemYSFLevel3() const
|
|||
return m_modemYSFLevel3;
|
||||
}
|
||||
|
||||
int CConf::getModemDMRThreshold() const
|
||||
{
|
||||
return m_modemDMRThreshold;
|
||||
}
|
||||
|
||||
int CConf::getModemYSFThreshold() const
|
||||
{
|
||||
return m_modemYSFThreshold;
|
||||
}
|
||||
|
||||
int CConf::getModemOscOffset() const
|
||||
{
|
||||
return m_modemOscOffset;
|
||||
|
|
4
Conf.h
4
Conf.h
|
@ -73,6 +73,8 @@ public:
|
|||
int getModemDMRLevel3() const;
|
||||
int getModemYSFLevel1() const;
|
||||
int getModemYSFLevel3() const;
|
||||
int getModemDMRThreshold() const;
|
||||
int getModemYSFThreshold() const;
|
||||
int getModemOscOffset() const;
|
||||
bool getModemDebug() const;
|
||||
|
||||
|
@ -192,6 +194,8 @@ private:
|
|||
int m_modemDMRLevel3;
|
||||
int m_modemYSFLevel1;
|
||||
int m_modemYSFLevel3;
|
||||
int m_modemDMRThreshold;
|
||||
int m_modemYSFThreshold;
|
||||
int m_modemOscOffset;
|
||||
bool m_modemDebug;
|
||||
|
||||
|
|
|
@ -43,6 +43,8 @@ DMRLevel1=0
|
|||
DMRLevel3=0
|
||||
YSFLevel1=0
|
||||
YSFLevel3=0
|
||||
DMRThreshold=0
|
||||
YSFThreshold=0
|
||||
OscOffset=0
|
||||
Debug=0
|
||||
|
||||
|
|
|
@ -640,6 +640,8 @@ bool CMMDVMHost::createModem()
|
|||
int dmrLevel3 = m_conf.getModemDMRLevel3();
|
||||
int ysfLevel1 = m_conf.getModemYSFLevel1();
|
||||
int ysfLevel3 = m_conf.getModemYSFLevel3();
|
||||
int dmrThreshold = m_conf.getModemDMRThreshold();
|
||||
int ysfThreshold = m_conf.getModemYSFThreshold();
|
||||
int oscOffset = m_conf.getModemOscOffset();
|
||||
|
||||
LogInfo("Modem Parameters");
|
||||
|
@ -653,16 +655,27 @@ bool CMMDVMHost::createModem()
|
|||
LogInfo(" TX Level: %u%%", txLevel);
|
||||
LogInfo(" RX Frequency: %uHz", rxFrequency);
|
||||
LogInfo(" TX Frequency: %uHz", txFrequency);
|
||||
|
||||
if (dstarLevel != 0)
|
||||
LogInfo(" D-Star Level: %.1f%%", float(dstarLevel) / 10.0F);
|
||||
if (dmrLevel1 != 0)
|
||||
LogInfo(" DMR Level 1: %.1f%%", float(dmrLevel1) / 10.0F);
|
||||
if (dmrLevel3 != 0)
|
||||
LogInfo(" DMR Level 3: %.1f%%", float(dmrLevel3) / 10.0F);
|
||||
if (ysfLevel1 != 0)
|
||||
LogInfo(" YSF Level 1: %.1f%%", float(ysfLevel1) / 10.0F);
|
||||
if (ysfLevel3 != 0)
|
||||
LogInfo(" YSF Level 3: %.1f%%", float(ysfLevel3) / 10.0F);
|
||||
if (dmrThreshold != 0)
|
||||
LogInfo(" DMR Threshold: %.1f%%", float(dmrThreshold) / 10.0F);
|
||||
if (ysfThreshold != 0)
|
||||
LogInfo(" YSF Threshold: %.1f%%", float(ysfThreshold) / 10.0F);
|
||||
|
||||
LogInfo(" Osc. Offset: %dppm", oscOffset);
|
||||
|
||||
m_modem = new CModem(port, rxInvert, txInvert, pttInvert, txDelay, rxLevel, txLevel, dmrDelay, oscOffset, debug);
|
||||
m_modem->setModeParams(m_dstarEnabled, m_dmrEnabled, m_ysfEnabled);
|
||||
m_modem->setModeLevels(dstarLevel, dmrLevel1, dmrLevel3, ysfLevel1, ysfLevel3);
|
||||
m_modem->setModeLevels(dstarLevel, dmrLevel1, dmrLevel3, ysfLevel1, ysfLevel3, dmrThreshold, ysfThreshold);
|
||||
m_modem->setRFParams(rxFrequency, txFrequency);
|
||||
m_modem->setDMRParams(colorCode);
|
||||
|
||||
|
|
18
Modem.cpp
18
Modem.cpp
|
@ -86,12 +86,14 @@ m_txDelay(txDelay),
|
|||
m_dmrDelay(dmrDelay),
|
||||
m_rxLevel(rxLevel),
|
||||
m_txLevel(txLevel),
|
||||
m_oscOffset(oscOffset),
|
||||
m_dstarLevel(0),
|
||||
m_dmrLevel1(0),
|
||||
m_dmrLevel3(0),
|
||||
m_ysfLevel1(0),
|
||||
m_ysfLevel3(0),
|
||||
m_dmrThreshold(0),
|
||||
m_ysfThreshold(0),
|
||||
m_oscOffset(oscOffset),
|
||||
m_debug(debug),
|
||||
m_rxFrequency(0U),
|
||||
m_txFrequency(0U),
|
||||
|
@ -137,13 +139,15 @@ void CModem::setRFParams(unsigned int rxFrequency, unsigned int txFrequency)
|
|||
m_txFrequency = txFrequency;
|
||||
}
|
||||
|
||||
void CModem::setModeLevels(int dstarLevel, int dmrLevel1, int dmrLevel3, int ysfLevel1, int ysfLevel3)
|
||||
void CModem::setModeLevels(int dstarLevel, int dmrLevel1, int dmrLevel3, int ysfLevel1, int ysfLevel3, int dmrThreshold, int ysfThreshold)
|
||||
{
|
||||
m_dstarLevel = dstarLevel;
|
||||
m_dmrLevel1 = dmrLevel1;
|
||||
m_dmrLevel3 = dmrLevel3;
|
||||
m_ysfLevel1 = ysfLevel1;
|
||||
m_ysfLevel3 = ysfLevel3;
|
||||
m_dmrThreshold = dmrThreshold;
|
||||
m_ysfThreshold = ysfThreshold;
|
||||
}
|
||||
|
||||
void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled)
|
||||
|
@ -760,7 +764,7 @@ bool CModem::setConfig()
|
|||
|
||||
buffer[0U] = MMDVM_FRAME_START;
|
||||
|
||||
buffer[1U] = 17U;
|
||||
buffer[1U] = 19U;
|
||||
|
||||
buffer[2U] = MMDVM_SET_CONFIG;
|
||||
|
||||
|
@ -798,11 +802,13 @@ bool CModem::setConfig()
|
|||
buffer[14U] = (unsigned char)(m_dmrLevel3 + 128);
|
||||
buffer[15U] = (unsigned char)(m_ysfLevel1 + 128);
|
||||
buffer[16U] = (unsigned char)(m_ysfLevel3 + 128);
|
||||
buffer[17U] = (unsigned char)(m_dmrThreshold + 128);
|
||||
buffer[18U] = (unsigned char)(m_ysfThreshold + 128);
|
||||
|
||||
// CUtils::dump(1U, "Written", buffer, 17U);
|
||||
// CUtils::dump(1U, "Written", buffer, 19U);
|
||||
|
||||
int ret = m_serial.write(buffer, 17U);
|
||||
if (ret != 17)
|
||||
int ret = m_serial.write(buffer, 19U);
|
||||
if (ret != 19)
|
||||
return false;
|
||||
|
||||
unsigned int count = 0U;
|
||||
|
|
6
Modem.h
6
Modem.h
|
@ -37,7 +37,7 @@ public:
|
|||
~CModem();
|
||||
|
||||
void setRFParams(unsigned int rxFrequency, unsigned int txFrequency);
|
||||
void setModeLevels(int dstarLevel, int dmrLevel1, int dmrLevel3, int ysfLevel1, int ysfLevel3);
|
||||
void setModeLevels(int dstarLevel, int dmrLevel1, int dmrLevel3, int ysfLevel1, int ysfLevel3, int dmrThreshold, int ysfThreshold);
|
||||
void setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled);
|
||||
void setDMRParams(unsigned int colorCode);
|
||||
|
||||
|
@ -85,12 +85,14 @@ private:
|
|||
unsigned int m_dmrDelay;
|
||||
unsigned int m_rxLevel;
|
||||
unsigned int m_txLevel;
|
||||
int m_oscOffset;
|
||||
int m_dstarLevel;
|
||||
int m_dmrLevel1;
|
||||
int m_dmrLevel3;
|
||||
int m_ysfLevel1;
|
||||
int m_ysfLevel3;
|
||||
int m_dmrThreshold;
|
||||
int m_ysfThreshold;
|
||||
int m_oscOffset;
|
||||
bool m_debug;
|
||||
unsigned int m_rxFrequency;
|
||||
unsigned int m_txFrequency;
|
||||
|
|
Loading…
Reference in a new issue