Allow for the fine adjustment of levels.

This commit is contained in:
Jonathan Naylor 2016-06-20 22:03:54 +01:00
parent 1c70de5aee
commit a3ea870b52
7 changed files with 166 additions and 21 deletions

View file

@ -185,7 +185,7 @@ void CSerialPort::getVersion()
uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
{
if (length < 9U)
if (length < 14U)
return 4U;
bool rxInvert = (data[0U] & 0x01U) == 0x01U;
@ -232,6 +232,14 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
m_sampleInsert = false;
}
int8_t dstarLevel = int8_t(data[9U]) - 128;
int8_t dmrLevel1 = int8_t(data[10U]) - 128;
int8_t dmrLevel3 = int8_t(data[11U]) - 128;
int8_t ysfLevel1 = int8_t(data[12U]) - 128;
int8_t ysfLevel3 = int8_t(data[13U]) - 128;
m_modemState = modemState;
m_dstarEnable = dstarEnable;
@ -246,6 +254,10 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
dmrRX.setDelay(dmrDelay);
dmrIdleRX.setColorCode(colorCode);
dstarTX.setLevels(dstarLevel);
dmrTX.setLevels(dmrLevel1, dmrLevel3);
ysfTX.setLevels(ysfLevel1, ysfLevel3);
io.setParameters(rxInvert, txInvert, pttInvert, rxLevel, txLevel);
io.start();