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