Allow for the fine adjustment of levels.
This commit is contained in:
parent
1e994e920a
commit
9240550de6
40
Conf.cpp
40
Conf.cpp
|
@ -77,6 +77,11 @@ m_modemTXDelay(100U),
|
||||||
m_modemDMRDelay(0U),
|
m_modemDMRDelay(0U),
|
||||||
m_modemRXLevel(100U),
|
m_modemRXLevel(100U),
|
||||||
m_modemTXLevel(100U),
|
m_modemTXLevel(100U),
|
||||||
|
m_modemDStarLevel(0),
|
||||||
|
m_modemDMRLevel1(0),
|
||||||
|
m_modemDMRLevel3(0),
|
||||||
|
m_modemYSFLevel1(0),
|
||||||
|
m_modemYSFLevel3(0),
|
||||||
m_modemOscOffset(0),
|
m_modemOscOffset(0),
|
||||||
m_modemDebug(false),
|
m_modemDebug(false),
|
||||||
m_dstarEnabled(true),
|
m_dstarEnabled(true),
|
||||||
|
@ -265,6 +270,16 @@ bool CConf::read()
|
||||||
m_modemRXLevel = (unsigned int)::atoi(value);
|
m_modemRXLevel = (unsigned int)::atoi(value);
|
||||||
else if (::strcmp(key, "TXLevel") == 0)
|
else if (::strcmp(key, "TXLevel") == 0)
|
||||||
m_modemTXLevel = (unsigned int)::atoi(value);
|
m_modemTXLevel = (unsigned int)::atoi(value);
|
||||||
|
else if (::strcmp(key, "DStarLevel") == 0)
|
||||||
|
m_modemDStarLevel = ::atoi(value);
|
||||||
|
else if (::strcmp(key, "DMRLevel1") == 0)
|
||||||
|
m_modemDMRLevel1 = ::atoi(value);
|
||||||
|
else if (::strcmp(key, "DMRLevel3") == 0)
|
||||||
|
m_modemDMRLevel3 = ::atoi(value);
|
||||||
|
else if (::strcmp(key, "YSFLevel1") == 0)
|
||||||
|
m_modemYSFLevel1 = ::atoi(value);
|
||||||
|
else if (::strcmp(key, "YSFLevel3") == 0)
|
||||||
|
m_modemYSFLevel3 = ::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)
|
||||||
|
@ -601,6 +616,31 @@ unsigned int CConf::getModemTXLevel() const
|
||||||
return m_modemTXLevel;
|
return m_modemTXLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CConf::getModemDStarLevel() const
|
||||||
|
{
|
||||||
|
return m_modemDStarLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CConf::getModemDMRLevel1() const
|
||||||
|
{
|
||||||
|
return m_modemDMRLevel1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CConf::getModemDMRLevel3() const
|
||||||
|
{
|
||||||
|
return m_modemDMRLevel3;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CConf::getModemYSFLevel1() const
|
||||||
|
{
|
||||||
|
return m_modemYSFLevel1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CConf::getModemYSFLevel3() const
|
||||||
|
{
|
||||||
|
return m_modemYSFLevel3;
|
||||||
|
}
|
||||||
|
|
||||||
int CConf::getModemOscOffset() const
|
int CConf::getModemOscOffset() const
|
||||||
{
|
{
|
||||||
return m_modemOscOffset;
|
return m_modemOscOffset;
|
||||||
|
|
10
Conf.h
10
Conf.h
|
@ -68,6 +68,11 @@ public:
|
||||||
unsigned int getModemDMRDelay() const;
|
unsigned int getModemDMRDelay() const;
|
||||||
unsigned int getModemRXLevel() const;
|
unsigned int getModemRXLevel() const;
|
||||||
unsigned int getModemTXLevel() const;
|
unsigned int getModemTXLevel() const;
|
||||||
|
int getModemDStarLevel() const;
|
||||||
|
int getModemDMRLevel1() const;
|
||||||
|
int getModemDMRLevel3() const;
|
||||||
|
int getModemYSFLevel1() const;
|
||||||
|
int getModemYSFLevel3() const;
|
||||||
int getModemOscOffset() const;
|
int getModemOscOffset() const;
|
||||||
bool getModemDebug() const;
|
bool getModemDebug() const;
|
||||||
|
|
||||||
|
@ -182,6 +187,11 @@ private:
|
||||||
unsigned int m_modemDMRDelay;
|
unsigned int m_modemDMRDelay;
|
||||||
unsigned int m_modemRXLevel;
|
unsigned int m_modemRXLevel;
|
||||||
unsigned int m_modemTXLevel;
|
unsigned int m_modemTXLevel;
|
||||||
|
int m_modemDStarLevel;
|
||||||
|
int m_modemDMRLevel1;
|
||||||
|
int m_modemDMRLevel3;
|
||||||
|
int m_modemYSFLevel1;
|
||||||
|
int m_modemYSFLevel3;
|
||||||
int m_modemOscOffset;
|
int m_modemOscOffset;
|
||||||
bool m_modemDebug;
|
bool m_modemDebug;
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,11 @@ TXDelay=100
|
||||||
DMRDelay=0
|
DMRDelay=0
|
||||||
RXLevel=50
|
RXLevel=50
|
||||||
TXLevel=50
|
TXLevel=50
|
||||||
|
DStarLevel=0
|
||||||
|
DMRLevel1=0
|
||||||
|
DMRLevel3=0
|
||||||
|
YSFLevel1=0
|
||||||
|
YSFLevel3=0
|
||||||
OscOffset=0
|
OscOffset=0
|
||||||
Debug=0
|
Debug=0
|
||||||
|
|
||||||
|
|
|
@ -635,6 +635,11 @@ bool CMMDVMHost::createModem()
|
||||||
unsigned int colorCode = m_conf.getDMRColorCode();
|
unsigned int colorCode = m_conf.getDMRColorCode();
|
||||||
unsigned int rxFrequency = m_conf.getRxFrequency();
|
unsigned int rxFrequency = m_conf.getRxFrequency();
|
||||||
unsigned int txFrequency = m_conf.getTxFrequency();
|
unsigned int txFrequency = m_conf.getTxFrequency();
|
||||||
|
int dstarLevel = m_conf.getModemDStarLevel();
|
||||||
|
int dmrLevel1 = m_conf.getModemDMRLevel1();
|
||||||
|
int dmrLevel3 = m_conf.getModemDMRLevel3();
|
||||||
|
int ysfLevel1 = m_conf.getModemYSFLevel1();
|
||||||
|
int ysfLevel3 = m_conf.getModemYSFLevel3();
|
||||||
int oscOffset = m_conf.getModemOscOffset();
|
int oscOffset = m_conf.getModemOscOffset();
|
||||||
|
|
||||||
LogInfo("Modem Parameters");
|
LogInfo("Modem Parameters");
|
||||||
|
@ -648,10 +653,16 @@ 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);
|
||||||
|
LogInfo(" D-Star Level: %.1f%%", float(dstarLevel) / 10.0F);
|
||||||
|
LogInfo(" DMR Level 1: %.1f%%", float(dmrLevel1) / 10.0F);
|
||||||
|
LogInfo(" DMR Level 3: %.1f%%", float(dmrLevel3) / 10.0F);
|
||||||
|
LogInfo(" YSF Level 1: %.1f%%", float(ysfLevel1) / 10.0F);
|
||||||
|
LogInfo(" YSF Level 3: %.1f%%", float(ysfLevel3) / 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->setRFParams(rxFrequency, txFrequency);
|
m_modem->setRFParams(rxFrequency, txFrequency);
|
||||||
m_modem->setDMRParams(colorCode);
|
m_modem->setDMRParams(colorCode);
|
||||||
|
|
||||||
|
|
30
Modem.cpp
30
Modem.cpp
|
@ -87,6 +87,11 @@ m_dmrDelay(dmrDelay),
|
||||||
m_rxLevel(rxLevel),
|
m_rxLevel(rxLevel),
|
||||||
m_txLevel(txLevel),
|
m_txLevel(txLevel),
|
||||||
m_oscOffset(oscOffset),
|
m_oscOffset(oscOffset),
|
||||||
|
m_dstarLevel(0),
|
||||||
|
m_dmrLevel1(0),
|
||||||
|
m_dmrLevel3(0),
|
||||||
|
m_ysfLevel1(0),
|
||||||
|
m_ysfLevel3(0),
|
||||||
m_debug(debug),
|
m_debug(debug),
|
||||||
m_rxFrequency(0U),
|
m_rxFrequency(0U),
|
||||||
m_txFrequency(0U),
|
m_txFrequency(0U),
|
||||||
|
@ -132,6 +137,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)
|
||||||
|
{
|
||||||
|
m_dstarLevel = dstarLevel;
|
||||||
|
m_dmrLevel1 = dmrLevel1;
|
||||||
|
m_dmrLevel3 = dmrLevel3;
|
||||||
|
m_ysfLevel1 = ysfLevel1;
|
||||||
|
m_ysfLevel3 = ysfLevel3;
|
||||||
|
}
|
||||||
|
|
||||||
void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled)
|
void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled)
|
||||||
{
|
{
|
||||||
m_dstarEnabled = dstarEnabled;
|
m_dstarEnabled = dstarEnabled;
|
||||||
|
@ -742,11 +756,11 @@ bool CModem::readStatus()
|
||||||
|
|
||||||
bool CModem::setConfig()
|
bool CModem::setConfig()
|
||||||
{
|
{
|
||||||
unsigned char buffer[12U];
|
unsigned char buffer[20U];
|
||||||
|
|
||||||
buffer[0U] = MMDVM_FRAME_START;
|
buffer[0U] = MMDVM_FRAME_START;
|
||||||
|
|
||||||
buffer[1U] = 12U;
|
buffer[1U] = 17U;
|
||||||
|
|
||||||
buffer[2U] = MMDVM_SET_CONFIG;
|
buffer[2U] = MMDVM_SET_CONFIG;
|
||||||
|
|
||||||
|
@ -779,10 +793,16 @@ bool CModem::setConfig()
|
||||||
|
|
||||||
buffer[11U] = (unsigned char)(m_oscOffset + 128);
|
buffer[11U] = (unsigned char)(m_oscOffset + 128);
|
||||||
|
|
||||||
// CUtils::dump(1U, "Written", buffer, 12U);
|
buffer[12U] = (unsigned char)(m_dstarLevel + 128);
|
||||||
|
buffer[13U] = (unsigned char)(m_dmrLevel1 + 128);
|
||||||
|
buffer[14U] = (unsigned char)(m_dmrLevel3 + 128);
|
||||||
|
buffer[15U] = (unsigned char)(m_ysfLevel1 + 128);
|
||||||
|
buffer[16U] = (unsigned char)(m_ysfLevel3 + 128);
|
||||||
|
|
||||||
int ret = m_serial.write(buffer, 12U);
|
// CUtils::dump(1U, "Written", buffer, 17U);
|
||||||
if (ret != 12)
|
|
||||||
|
int ret = m_serial.write(buffer, 17U);
|
||||||
|
if (ret != 17)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
unsigned int count = 0U;
|
unsigned int count = 0U;
|
||||||
|
|
6
Modem.h
6
Modem.h
|
@ -37,6 +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 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,6 +86,11 @@ private:
|
||||||
unsigned int m_rxLevel;
|
unsigned int m_rxLevel;
|
||||||
unsigned int m_txLevel;
|
unsigned int m_txLevel;
|
||||||
int m_oscOffset;
|
int m_oscOffset;
|
||||||
|
int m_dstarLevel;
|
||||||
|
int m_dmrLevel1;
|
||||||
|
int m_dmrLevel3;
|
||||||
|
int m_ysfLevel1;
|
||||||
|
int m_ysfLevel3;
|
||||||
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