Add DMR slot delay parameter.

This commit is contained in:
Jonathan Naylor
2016-03-17 18:12:14 +00:00
parent 337ec7dc97
commit efa9ec1977
6 changed files with 29 additions and 12 deletions

View File

@@ -66,6 +66,7 @@ m_modemRXInvert(false),
m_modemTXInvert(false), m_modemTXInvert(false),
m_modemPTTInvert(false), m_modemPTTInvert(false),
m_modemTXDelay(100U), m_modemTXDelay(100U),
m_modemDMRDelay(0U),
m_modemRXLevel(100U), m_modemRXLevel(100U),
m_modemTXLevel(100U), m_modemTXLevel(100U),
m_modemDebug(false), m_modemDebug(false),
@@ -205,6 +206,8 @@ bool CConf::read()
m_modemPTTInvert = ::atoi(value) == 1; m_modemPTTInvert = ::atoi(value) == 1;
else if (::strcmp(key, "TXDelay") == 0) else if (::strcmp(key, "TXDelay") == 0)
m_modemTXDelay = (unsigned int)::atoi(value); m_modemTXDelay = (unsigned int)::atoi(value);
else if (::strcmp(key, "DMRDelay") == 0)
m_modemDMRDelay = (unsigned int)::atoi(value);
else if (::strcmp(key, "RXLevel") == 0) else if (::strcmp(key, "RXLevel") == 0)
m_modemRXLevel = (unsigned int)::atoi(value); m_modemRXLevel = (unsigned int)::atoi(value);
else if (::strcmp(key, "TXLevel") == 0) else if (::strcmp(key, "TXLevel") == 0)
@@ -398,6 +401,11 @@ unsigned int CConf::getModemTXDelay() const
return m_modemTXDelay; return m_modemTXDelay;
} }
unsigned int CConf::getModemDMRDelay() const
{
return m_modemDMRDelay;
}
unsigned int CConf::getModemRXLevel() const unsigned int CConf::getModemRXLevel() const
{ {
return m_modemRXLevel; return m_modemRXLevel;

2
Conf.h
View File

@@ -59,6 +59,7 @@ public:
bool getModemTXInvert() const; bool getModemTXInvert() const;
bool getModemPTTInvert() const; bool getModemPTTInvert() const;
unsigned int getModemTXDelay() const; unsigned int getModemTXDelay() const;
unsigned int getModemDMRDelay() const;
unsigned int getModemRXLevel() const; unsigned int getModemRXLevel() const;
unsigned int getModemTXLevel() const; unsigned int getModemTXLevel() const;
bool getModemDebug() const; bool getModemDebug() const;
@@ -135,6 +136,7 @@ private:
bool m_modemTXInvert; bool m_modemTXInvert;
bool m_modemPTTInvert; bool m_modemPTTInvert;
unsigned int m_modemTXDelay; unsigned int m_modemTXDelay;
unsigned int m_modemDMRDelay;
unsigned int m_modemRXLevel; unsigned int m_modemRXLevel;
unsigned int m_modemTXLevel; unsigned int m_modemTXLevel;
bool m_modemDebug; bool m_modemDebug;

View File

@@ -30,6 +30,7 @@ TXInvert=1
RXInvert=0 RXInvert=0
PTTInvert=0 PTTInvert=0
TXDelay=100 TXDelay=100
DMRDelay=0
RXLevel=50 RXLevel=50
TXLevel=50 TXLevel=50
Debug=0 Debug=0

View File

@@ -412,6 +412,7 @@ bool CMMDVMHost::createModem()
bool txInvert = m_conf.getModemTXInvert(); bool txInvert = m_conf.getModemTXInvert();
bool pttInvert = m_conf.getModemPTTInvert(); bool pttInvert = m_conf.getModemPTTInvert();
unsigned int txDelay = m_conf.getModemTXDelay(); unsigned int txDelay = m_conf.getModemTXDelay();
unsigned int dmrDelay = m_conf.getModemDMRDelay();
unsigned int rxLevel = m_conf.getModemRXLevel(); unsigned int rxLevel = m_conf.getModemRXLevel();
unsigned int txLevel = m_conf.getModemTXLevel(); unsigned int txLevel = m_conf.getModemTXLevel();
bool debug = m_conf.getModemDebug(); bool debug = m_conf.getModemDebug();
@@ -424,13 +425,14 @@ bool CMMDVMHost::createModem()
LogInfo(" RX Invert: %s", rxInvert ? "yes" : "no"); LogInfo(" RX Invert: %s", rxInvert ? "yes" : "no");
LogInfo(" TX Invert: %s", txInvert ? "yes" : "no"); LogInfo(" TX Invert: %s", txInvert ? "yes" : "no");
LogInfo(" PTT Invert: %s", pttInvert ? "yes" : "no"); LogInfo(" PTT Invert: %s", pttInvert ? "yes" : "no");
LogInfo(" TX Delay: %u", txDelay); LogInfo(" TX Delay: %ums", txDelay);
LogInfo(" RX Level: %u", rxLevel); LogInfo(" DMR Delay: %u", dmrDelay);
LogInfo(" TX Level: %u", txLevel); LogInfo(" RX Level: %u%%", rxLevel);
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);
m_modem = new CModem(port, rxInvert, txInvert, pttInvert, txDelay, rxLevel, txLevel, debug); m_modem = new CModem(port, rxInvert, txInvert, pttInvert, txDelay, rxLevel, txLevel, dmrDelay, debug);
m_modem->setModeParams(m_dstarEnabled, m_dmrEnabled, m_ysfEnabled); m_modem->setModeParams(m_dstarEnabled, m_dmrEnabled, m_ysfEnabled);
m_modem->setRFParams(rxFrequency, txFrequency); m_modem->setRFParams(rxFrequency, txFrequency);
m_modem->setDMRParams(colorCode); m_modem->setDMRParams(colorCode);

View File

@@ -74,13 +74,14 @@ const unsigned int MAX_RESPONSES = 30U;
const unsigned int BUFFER_LENGTH = 500U; const unsigned int BUFFER_LENGTH = 500U;
CModem::CModem(const std::string& port, bool rxInvert, bool txInvert, bool pttInvert, unsigned int txDelay, unsigned int rxLevel, unsigned int txLevel, bool debug) : CModem::CModem(const std::string& port, bool rxInvert, bool txInvert, bool pttInvert, unsigned int txDelay, unsigned int rxLevel, unsigned int txLevel, unsigned int dmrDelay, bool debug) :
m_port(port), m_port(port),
m_colorCode(0U), m_colorCode(0U),
m_rxInvert(rxInvert), m_rxInvert(rxInvert),
m_txInvert(txInvert), m_txInvert(txInvert),
m_pttInvert(pttInvert), m_pttInvert(pttInvert),
m_txDelay(txDelay), m_txDelay(txDelay),
m_dmrDelay(dmrDelay),
m_rxLevel(rxLevel), m_rxLevel(rxLevel),
m_txLevel(txLevel), m_txLevel(txLevel),
m_debug(debug), m_debug(debug),
@@ -735,11 +736,11 @@ bool CModem::readStatus()
bool CModem::setConfig() bool CModem::setConfig()
{ {
unsigned char buffer[10U]; unsigned char buffer[11U];
buffer[0U] = MMDVM_FRAME_START; buffer[0U] = MMDVM_FRAME_START;
buffer[1U] = 10U; buffer[1U] = 11U;
buffer[2U] = MMDVM_SET_CONFIG; buffer[2U] = MMDVM_SET_CONFIG;
@@ -768,10 +769,12 @@ bool CModem::setConfig()
buffer[9U] = m_colorCode; buffer[9U] = m_colorCode;
// CUtils::dump(1U, "Written", buffer, 10U); buffer[10U] = m_dmrDelay;
int ret = m_serial.write(buffer, 10U); // CUtils::dump(1U, "Written", buffer, 11U);
if (ret != 10)
int ret = m_serial.write(buffer, 11U);
if (ret != 11)
return false; return false;
unsigned int count = 0U; unsigned int count = 0U;

View File

@@ -33,7 +33,7 @@ enum RESP_TYPE_MMDVM {
class CModem { class CModem {
public: public:
CModem(const std::string& port, bool rxInvert, bool txInvert, bool pttInvert, unsigned int txDelay, unsigned int rxLevel, unsigned int txLevel, bool debug = false); CModem(const std::string& port, bool rxInvert, bool txInvert, bool pttInvert, unsigned int txDelay, unsigned int rxLevel, unsigned int txLevel, unsigned int dmrDelay, bool debug = false);
~CModem(); ~CModem();
void setRFParams(unsigned int rxFrequency, unsigned int txFrequency); void setRFParams(unsigned int rxFrequency, unsigned int txFrequency);
@@ -75,6 +75,7 @@ private:
bool m_txInvert; bool m_txInvert;
bool m_pttInvert; bool m_pttInvert;
unsigned int m_txDelay; unsigned int m_txDelay;
unsigned int m_dmrDelay;
unsigned int m_rxLevel; unsigned int m_rxLevel;
unsigned int m_txLevel; unsigned int m_txLevel;
bool m_debug; bool m_debug;