Move modem tracing to Trace and add a new modem Debug function.

This commit is contained in:
Jonathan Naylor 2017-04-14 14:05:30 +01:00
parent 0fe100b01c
commit 9ac4919a4c
6 changed files with 45 additions and 29 deletions

View File

@ -92,6 +92,7 @@ m_modemDMRTXLevel(50U),
m_modemYSFTXLevel(50U),
m_modemP25TXLevel(50U),
m_modemRSSIMappingFile(),
m_modemTrace(false),
m_modemDebug(false),
m_umpEnabled(false),
m_umpPort(),
@ -341,6 +342,8 @@ bool CConf::read()
m_modemP25TXLevel = (unsigned int)::atoi(value);
else if (::strcmp(key, "RSSIMappingFile") == 0)
m_modemRSSIMappingFile = value;
else if (::strcmp(key, "Trace") == 0)
m_modemTrace = ::atoi(value) == 1;
else if (::strcmp(key, "Debug") == 0)
m_modemDebug = ::atoi(value) == 1;
} else if (section == SECTION_UMP) {
@ -762,6 +765,11 @@ std::string CConf::getModemRSSIMappingFile () const
return m_modemRSSIMappingFile;
}
bool CConf::getModemTrace() const
{
return m_modemTrace;
}
bool CConf::getModemDebug() const
{
return m_modemDebug;

2
Conf.h
View File

@ -79,6 +79,7 @@ public:
unsigned int getModemYSFTXLevel() const;
unsigned int getModemP25TXLevel() const;
std::string getModemRSSIMappingFile() const;
bool getModemTrace() const;
bool getModemDebug() const;
// The UMP section
@ -233,6 +234,7 @@ private:
unsigned int m_modemYSFTXLevel;
unsigned int m_modemP25TXLevel;
std::string m_modemRSSIMappingFile;
bool m_modemTrace;
bool m_modemDebug;
bool m_umpEnabled;

View File

@ -51,6 +51,7 @@ TXLevel=50
# YSFTXLevel=50
# P25TXLevel=50
RSSIMappingFile=RSSI.dat
Trace=0
Debug=0
[UMP]

View File

@ -805,6 +805,7 @@ bool CMMDVMHost::createModem()
unsigned int dmrTXLevel = m_conf.getModemDMRTXLevel();
unsigned int ysfTXLevel = m_conf.getModemYSFTXLevel();
unsigned int p25TXLevel = m_conf.getModemP25TXLevel();
bool trace = m_conf.getModemTrace();
bool debug = m_conf.getModemDebug();
unsigned int colorCode = m_conf.getDMRColorCode();
bool lowDeviation = m_conf.getFusionLowDeviation();
@ -827,7 +828,7 @@ bool CMMDVMHost::createModem()
LogInfo(" RX Frequency: %uHz", rxFrequency);
LogInfo(" TX Frequency: %uHz", txFrequency);
m_modem = new CModem(port, m_duplex, rxInvert, txInvert, pttInvert, txDelay, dmrDelay, debug);
m_modem = new CModem(port, m_duplex, rxInvert, txInvert, pttInvert, txDelay, dmrDelay, trace, debug);
m_modem->setModeParams(m_dstarEnabled, m_dmrEnabled, m_ysfEnabled, m_p25Enabled);
m_modem->setLevels(rxLevel, cwIdTXLevel, dstarTXLevel, dmrTXLevel, ysfTXLevel, p25TXLevel);
m_modem->setRFParams(rxFrequency, txFrequency);

View File

@ -83,7 +83,7 @@ const unsigned int MAX_RESPONSES = 30U;
const unsigned int BUFFER_LENGTH = 2000U;
CModem::CModem(const std::string& port, bool duplex, bool rxInvert, bool txInvert, bool pttInvert, unsigned int txDelay, unsigned int dmrDelay, bool debug) :
CModem::CModem(const std::string& port, bool duplex, bool rxInvert, bool txInvert, bool pttInvert, unsigned int txDelay, unsigned int dmrDelay, bool trace, bool debug) :
m_port(port),
m_dmrColorCode(0U),
m_ysfLoDev(false),
@ -99,6 +99,7 @@ m_dstarTXLevel(0U),
m_dmrTXLevel(0U),
m_ysfTXLevel(0U),
m_p25TXLevel(0U),
m_trace(trace),
m_debug(debug),
m_rxFrequency(0U),
m_txFrequency(0U),
@ -248,7 +249,7 @@ void CModem::clock(unsigned int ms)
// type == RTM_OK
switch (m_buffer[2U]) {
case MMDVM_DSTAR_HEADER: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX D-Star Header", m_buffer, m_length);
unsigned char data = m_length - 2U;
@ -262,7 +263,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_DSTAR_DATA: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX D-Star Data", m_buffer, m_length);
unsigned char data = m_length - 2U;
@ -276,7 +277,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_DSTAR_LOST: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX D-Star Lost", m_buffer, m_length);
unsigned char data = 1U;
@ -288,7 +289,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_DSTAR_EOT: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX D-Star EOT", m_buffer, m_length);
unsigned char data = 1U;
@ -300,7 +301,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_DMR_DATA1: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX DMR Data 1", m_buffer, m_length);
unsigned char data = m_length - 2U;
@ -317,7 +318,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_DMR_DATA2: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX DMR Data 2", m_buffer, m_length);
unsigned char data = m_length - 2U;
@ -334,7 +335,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_DMR_LOST1: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX DMR Lost 1", m_buffer, m_length);
unsigned char data = 1U;
@ -346,7 +347,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_DMR_LOST2: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX DMR Lost 2", m_buffer, m_length);
unsigned char data = 1U;
@ -358,7 +359,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_YSF_DATA: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX YSF Data", m_buffer, m_length);
unsigned char data = m_length - 2U;
@ -372,7 +373,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_YSF_LOST: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX YSF Lost", m_buffer, m_length);
unsigned char data = 1U;
@ -384,7 +385,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_P25_HDR: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX P25 Header", m_buffer, m_length);
unsigned char data = m_length - 2U;
@ -398,7 +399,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_P25_LDU: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX P25 LDU", m_buffer, m_length);
unsigned char data = m_length - 2U;
@ -412,7 +413,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_P25_LOST: {
if (m_debug)
if (m_trace)
CUtils::dump(1U, "RX P25 Lost", m_buffer, m_length);
unsigned char data = 1U;
@ -424,7 +425,7 @@ void CModem::clock(unsigned int ms)
break;
case MMDVM_GET_STATUS: {
// if (m_debug)
// if (m_trace)
// CUtils::dump(1U, "GET_STATUS", m_buffer, m_length);
m_tx = (m_buffer[5U] & 0x01U) == 0x01U;
@ -502,17 +503,17 @@ void CModem::clock(unsigned int ms)
switch (buffer[3U]) {
case MMDVM_DSTAR_HEADER:
if (m_debug)
if (m_trace)
CUtils::dump(1U, "TX D-Star Header", m_buffer, len);
m_dstarSpace -= 4U;
break;
case MMDVM_DSTAR_DATA:
if (m_debug)
if (m_trace)
CUtils::dump(1U, "TX D-Star Data", m_buffer, len);
m_dstarSpace -= 1U;
break;
default:
if (m_debug)
if (m_trace)
CUtils::dump(1U, "TX D-Star EOT", m_buffer, len);
m_dstarSpace -= 1U;
break;
@ -531,7 +532,7 @@ void CModem::clock(unsigned int ms)
m_txDMRData1.getData(&len, 1U);
m_txDMRData1.getData(m_buffer, len);
if (m_debug)
if (m_trace)
CUtils::dump(1U, "TX DMR Data 1", m_buffer, len);
int ret = m_serial.write(m_buffer, len);
@ -548,7 +549,7 @@ void CModem::clock(unsigned int ms)
m_txDMRData2.getData(&len, 1U);
m_txDMRData2.getData(m_buffer, len);
if (m_debug)
if (m_trace)
CUtils::dump(1U, "TX DMR Data 2", m_buffer, len);
int ret = m_serial.write(m_buffer, len);
@ -565,7 +566,7 @@ void CModem::clock(unsigned int ms)
m_txYSFData.getData(&len, 1U);
m_txYSFData.getData(m_buffer, len);
if (m_debug)
if (m_trace)
CUtils::dump(1U, "TX YSF Data", m_buffer, len);
int ret = m_serial.write(m_buffer, len);
@ -582,7 +583,7 @@ void CModem::clock(unsigned int ms)
m_txP25Data.getData(&len, 1U);
m_txP25Data.getData(m_buffer, len);
if (m_debug) {
if (m_trace) {
if (m_buffer[2U] == MMDVM_P25_HDR)
CUtils::dump(1U, "TX P25 HDR", m_buffer, len);
else
@ -955,6 +956,8 @@ bool CModem::setConfig()
buffer[3U] |= 0x04U;
if (m_ysfLoDev)
buffer[3U] |= 0x08U;
if (m_debug)
buffer[3U] |= 0x10U;
if (!m_duplex)
buffer[3U] |= 0x80U;
@ -1272,21 +1275,21 @@ bool CModem::writeDMRShortLC(const unsigned char* lc)
void CModem::printDebug()
{
if (m_buffer[2U] == 0xF1U) {
if (m_buffer[2U] == MMDVM_DEBUG1) {
LogMessage("Debug: %.*s", m_length - 3U, m_buffer + 3U);
} else if (m_buffer[2U] == 0xF2U) {
} else if (m_buffer[2U] == MMDVM_DEBUG2) {
short val1 = (m_buffer[m_length - 2U] << 8) | m_buffer[m_length - 1U];
LogMessage("Debug: %.*s %d", m_length - 5U, m_buffer + 3U, val1);
} else if (m_buffer[2U] == 0xF3U) {
} else if (m_buffer[2U] == MMDVM_DEBUG3) {
short val1 = (m_buffer[m_length - 4U] << 8) | m_buffer[m_length - 3U];
short val2 = (m_buffer[m_length - 2U] << 8) | m_buffer[m_length - 1U];
LogMessage("Debug: %.*s %d %d", m_length - 7U, m_buffer + 3U, val1, val2);
} else if (m_buffer[2U] == 0xF4U) {
} else if (m_buffer[2U] == MMDVM_DEBUG4) {
short val1 = (m_buffer[m_length - 6U] << 8) | m_buffer[m_length - 5U];
short val2 = (m_buffer[m_length - 4U] << 8) | m_buffer[m_length - 3U];
short val3 = (m_buffer[m_length - 2U] << 8) | m_buffer[m_length - 1U];
LogMessage("Debug: %.*s %d %d %d", m_length - 9U, m_buffer + 3U, val1, val2, val3);
} else if (m_buffer[2U] == 0xF5U) {
} else if (m_buffer[2U] == MMDVM_DEBUG5) {
short val1 = (m_buffer[m_length - 8U] << 8) | m_buffer[m_length - 7U];
short val2 = (m_buffer[m_length - 6U] << 8) | m_buffer[m_length - 5U];
short val3 = (m_buffer[m_length - 4U] << 8) | m_buffer[m_length - 3U];

View File

@ -34,7 +34,7 @@ enum RESP_TYPE_MMDVM {
class CModem {
public:
CModem(const std::string& port, bool duplex, bool rxInvert, bool txInvert, bool pttInvert, unsigned int txDelay, unsigned int dmrDelay, bool debug = false);
CModem(const std::string& port, bool duplex, bool rxInvert, bool txInvert, bool pttInvert, unsigned int txDelay, unsigned int dmrDelay, bool trace, bool debug);
~CModem();
void setRFParams(unsigned int rxFrequency, unsigned int txFrequency);
@ -103,6 +103,7 @@ private:
unsigned int m_dmrTXLevel;
unsigned int m_ysfTXLevel;
unsigned int m_p25TXLevel;
bool m_trace;
bool m_debug;
unsigned int m_rxFrequency;
unsigned int m_txFrequency;