for debugging purposes enhance debug trace messaging;

82-dvmbridge---implement-notch-filter-for-2175hz-trc-guard-tone
Bryan Biedenkapp 12 months ago
parent afbd7e9848
commit 6e327eb2b2

@ -494,6 +494,7 @@ bool Host::createModem()
bool disableOFlowReset = modemConf["disableOFlowReset"].as<bool>(false);
bool ignoreModemConfigArea = modemConf["ignoreModemConfigArea"].as<bool>(false);
bool dumpModemStatus = modemConf["dumpModemStatus"].as<bool>(false);
bool respTrace = modemConf["respTrace"].as<bool>(false);
bool trace = modemConf["trace"].as<bool>(false);
bool debug = modemConf["debug"].as<bool>(false);
@ -687,6 +688,8 @@ bool Host::createModem()
m_modem->setP25NAC(m_p25NAC);
}
m_modem->setResponseTrace(respTrace);
if (m_modemRemote) {
m_modem->setOpenHandler(MODEM_OC_PORT_HANDLER_BIND(Host::rmtPortModemOpen, this));
m_modem->setCloseHandler(MODEM_OC_PORT_HANDLER_BIND(Host::rmtPortModemClose, this));

@ -158,6 +158,7 @@ Modem::Modem(port::IModemPort* port, bool duplex, bool rxInvert, bool txInvert,
m_flashDisabled(false),
m_gotModemStatus(false),
m_dumpModemStatus(dumpModemStatus),
m_respTrace(false),
m_trace(trace),
m_debug(debug)
{
@ -579,6 +580,8 @@ void Modem::clock(uint32_t ms)
m_rxDMRQueue1.addData(&data, 1U);
m_rxDMRQueue1.addData(m_buffer + 3U, m_length - 3U);
if (m_trace)
Utils::dump(1U, "Modem::clock() RX DMR Data 1", m_buffer + 3U, m_length - 3U);
}
}
break;
@ -603,6 +606,8 @@ void Modem::clock(uint32_t ms)
m_rxDMRQueue2.addData(&data, 1U);
m_rxDMRQueue2.addData(m_buffer + 3U, m_length - 3U);
if (m_trace)
Utils::dump(1U, "Modem::clock() RX DMR Data 2", m_buffer + 3U, m_length - 3U);
}
}
break;
@ -663,6 +668,8 @@ void Modem::clock(uint32_t ms)
m_rxP25Queue.addData(&data, 1U);
m_rxP25Queue.addData(m_buffer + (cmdOffset + 1U), m_length - (cmdOffset + 1U));
if (m_trace)
Utils::dump(1U, "Modem::clock() RX P25 Data", m_buffer + (cmdOffset + 1U), m_length - (cmdOffset + 1U));
}
}
break;
@ -704,6 +711,8 @@ void Modem::clock(uint32_t ms)
m_rxNXDNQueue.addData(&data, 1U);
m_rxNXDNQueue.addData(m_buffer + 3U, m_length - 3U);
if (m_trace)
Utils::dump(1U, "Modem::clock() RX NXDN Data", m_buffer + 3U, m_length - 3U);
}
}
break;
@ -1391,8 +1400,8 @@ bool Modem::writeDMRFrame1(const uint8_t* data, uint32_t length)
if (m_dmrSpace1 >= length) {
if (m_debug)
LogDebug(LOG_MODEM, "Modem::writeDMRData1(); immediate write (len %u)", length);
//if (m_trace)
// Utils::dump(1U, "Immediate TX DMR Data 1", buffer, len);
if (m_trace)
Utils::dump(1U, "Modem::writeDMRData1() Immediate TX DMR Data 1", buffer + 3U, length - 1U);
int ret = write(buffer, len);
if (ret != int(len)) {
@ -1445,8 +1454,8 @@ bool Modem::writeDMRFrame2(const uint8_t* data, uint32_t length)
if (m_dmrSpace2 >= length) {
if (m_debug)
LogDebug(LOG_MODEM, "Modem::writeDMRData2(); immediate write (len %u)", length);
//if (m_trace)
// Utils::dump(1U, "Immediate TX DMR Data 2", buffer, len);
if (m_trace)
Utils::dump(1U, "Modem::writeDMRData2() Immediate TX DMR Data 2", buffer + 3U, length - 1U);
int ret = write(buffer, len);
if (ret != int(len)) {
@ -1511,8 +1520,8 @@ bool Modem::writeP25Frame(const uint8_t* data, uint32_t length)
if (m_p25Space >= length) {
if (m_debug)
LogDebug(LOG_MODEM, "Modem::writeP25Data(); immediate write (len %u)", length);
//if (m_trace)
// Utils::dump(1U, "Immediate TX P25 Data", buffer, len);
if (m_trace)
Utils::dump(1U, "Modem::writeP25Data() Immediate TX P25 Data", buffer + 3U, length - 3U);
int ret = write(buffer, len);
if (ret != int(len)) {
@ -1565,8 +1574,8 @@ bool Modem::writeNXDNFrame(const uint8_t* data, uint32_t length)
if (m_nxdnSpace >= length) {
if (m_debug)
LogDebug(LOG_MODEM, "Modem::writeNXDNData(); immediate write (len %u)", length);
//if (m_trace)
// Utils::dump(1U, "Immediate TX NXDN Data", buffer, len);
if (m_trace)
Utils::dump(1U, "Modem::writeNXDNData() Immediate TX NXDN Data", buffer + 3U, length - 1U);
int ret = write(buffer, len);
if (ret != int(len)) {
@ -1749,8 +1758,8 @@ bool Modem::sendCWId(const std::string& callsign)
for (uint32_t i = 0U; i < length; i++)
buffer[i + 3U] = callsign.at(i);
//if (m_trace)
// Utils::dump(1U, "CW ID Data", buffer, length + 3U);
if (m_trace)
Utils::dump(1U, "CW ID Data", buffer, length + 3U);
return write(buffer, length + 3U) == int(length + 3U);
}
@ -2324,36 +2333,36 @@ void Modem::printDebug(const uint8_t* buffer, uint16_t len)
}
if (buffer[2U] == CMD_DEBUG1) {
LogDebug(LOG_MODEM, "M: %.*s", len - 3U, buffer + 3U);
LogDebug(LOG_MODEM, "DSP_FW_API %.*s", len - 3U, buffer + 3U);
}
else if (buffer[2U] == CMD_DEBUG2) {
short val1 = (buffer[len - 2U] << 8) | buffer[len - 1U];
LogDebug(LOG_MODEM, "M: %.*s %X", len - 5U, buffer + 3U, val1);
LogDebug(LOG_MODEM, "DSP_FW_API %.*s %X", len - 5U, buffer + 3U, val1);
}
else if (buffer[2U] == CMD_DEBUG3) {
short val1 = (buffer[len - 4U] << 8) | buffer[len - 3U];
short val2 = (buffer[len - 2U] << 8) | buffer[len - 1U];
LogDebug(LOG_MODEM, "M: %.*s %X %X", len - 7U, buffer + 3U, val1, val2);
LogDebug(LOG_MODEM, "DSP_FW_API %.*s %X %X", len - 7U, buffer + 3U, val1, val2);
}
else if (buffer[2U] == CMD_DEBUG4) {
short val1 = (buffer[len - 6U] << 8) | buffer[len - 5U];
short val2 = (buffer[len - 4U] << 8) | buffer[len - 3U];
short val3 = (buffer[len - 2U] << 8) | buffer[len - 1U];
LogDebug(LOG_MODEM, "M: %.*s %X %X %X", len - 9U, buffer + 3U, val1, val2, val3);
LogDebug(LOG_MODEM, "DSP_FW_API %.*s %X %X %X", len - 9U, buffer + 3U, val1, val2, val3);
}
else if (buffer[2U] == CMD_DEBUG5) {
short val1 = (buffer[len - 8U] << 8) | buffer[len - 7U];
short val2 = (buffer[len - 6U] << 8) | buffer[len - 5U];
short val3 = (buffer[len - 4U] << 8) | buffer[len - 3U];
short val4 = (buffer[len - 2U] << 8) | buffer[len - 1U];
LogDebug(LOG_MODEM, "M: %.*s %X %X %X %X", len - 11U, buffer + 3U, val1, val2, val3, val4);
LogDebug(LOG_MODEM, "DSP_FW_API %.*s %X %X %X %X", len - 11U, buffer + 3U, val1, val2, val3, val4);
}
else if (buffer[2U] == CMD_DEBUG_DUMP) {
uint8_t data[255U];
::memset(data, 0x00U, 255U);
::memcpy(data, buffer, len);
Utils::dump(1U, "Modem Debug Dump", data, len);
Utils::dump(1U, "Modem::printDebug() DSP_FW_API Debug Dump", data, len);
}
}
@ -2363,7 +2372,7 @@ RESP_TYPE_DVM Modem::getResponse()
{
m_rspDoubleLength = false;
//LogDebug(LOG_MODEM, "getResponse(), checking if we have data");
//LogDebug(LOG_MODEM, "Modem::getResponse(), checking if we have data");
// get the start of the frame or nothing at all
if (m_rspState == RESP_START) {
@ -2375,7 +2384,7 @@ RESP_TYPE_DVM Modem::getResponse()
}
if (ret == 0) {
//LogDebug(LOG_MODEM, "getResponse(), no data available");
//LogDebug(LOG_MODEM, "Modem::getResponse(), no data available");
return RTM_TIMEOUT;
}
@ -2391,12 +2400,12 @@ RESP_TYPE_DVM Modem::getResponse()
m_rspDoubleLength = true;
}
//LogDebug(LOG_MODEM, "getResponse(), RESP_START");
//LogDebug(LOG_MODEM, "Modem::getResponse(), RESP_START");
m_rspState = RESP_LENGTH1;
}
//LogDebug(LOG_MODEM, "getResponse(), getting frame length 1/2, rspDoubleLength = %u", m_rspDoubleLength);
//LogDebug(LOG_MODEM, "Modem::getResponse(), getting frame length 1/2, rspDoubleLength = %u", m_rspDoubleLength);
// get the length of the frame, 1/2
if (m_rspState == RESP_LENGTH1) {
int ret = m_port->read(m_buffer + 1U, 1U);
@ -2423,12 +2432,12 @@ RESP_TYPE_DVM Modem::getResponse()
m_length = m_buffer[1U];
}
//LogDebug(LOG_MODEM, "getResponse(), RESP_LENGTH1, len = %u", m_length);
//LogDebug(LOG_MODEM, "Modem::getResponse(), RESP_LENGTH1, len = %u", m_length);
m_rspOffset = 2U;
}
//LogDebug(LOG_MODEM, "getResponse(), getting frame length 2/2");
//LogDebug(LOG_MODEM, "Modem::getResponse(), getting frame length 2/2");
// get the length of the frame, 2/2
if (m_rspState == RESP_LENGTH2) {
int ret = m_port->read(m_buffer + 2U, 1U);
@ -2444,13 +2453,13 @@ RESP_TYPE_DVM Modem::getResponse()
m_length = (m_length + (m_buffer[2U] & 0xFFU));
m_rspState = RESP_TYPE;
//LogDebug(LOG_MODEM, "getResponse(), RESP_LENGTH2, len = %u", m_length);
//LogDebug(LOG_MODEM, "Modem::getResponse(), RESP_LENGTH2, len = %u", m_length);
m_rspDoubleLength = true;
m_rspOffset = 3U;
}
//LogDebug(LOG_MODEM, "getResponse(), getting frame type");
//LogDebug(LOG_MODEM, "Modem::getResponse(), getting frame type");
// get the frame type
if (m_rspState == RESP_TYPE) {
int ret = m_port->read(m_buffer + m_rspOffset, 1U);
@ -2465,18 +2474,18 @@ RESP_TYPE_DVM Modem::getResponse()
m_rspType = (DVM_COMMANDS)m_buffer[m_rspOffset];
//LogDebug(LOG_MODEM, "getResponse(), RESP_TYPE, len = %u, type = %u", m_length, m_rspType);
//LogDebug(LOG_MODEM, "Modem::getResponse(), RESP_TYPE, len = %u, type = %u", m_length, m_rspType);
m_rspState = RESP_DATA;
m_rspOffset++;
}
//LogDebug(LOG_MODEM, "getResponse(), getting frame data");
//LogDebug(LOG_MODEM, "Modem::getResponse(), getting frame data");
// get the frame data
if (m_rspState == RESP_DATA) {
if (m_debug && m_trace)
LogDebug(LOG_MODEM, "getResponse(), RESP_DATA, len = %u, offset = %u, type = %02X", m_length, m_rspOffset, m_rspType);
if (m_respTrace)
LogDebug(LOG_MODEM, "Modem::getResponse(), RESP_DATA, len = %u, offset = %u, type = %02X", m_length, m_rspOffset, m_rspType);
while (m_rspOffset < m_length) {
int ret = m_port->read(m_buffer + m_rspOffset, m_length - m_rspOffset);
@ -2493,8 +2502,8 @@ RESP_TYPE_DVM Modem::getResponse()
m_rspOffset += ret;
}
if (m_debug && m_trace)
Utils::dump(1U, "Modem getResponse()", m_buffer, m_length);
if (m_respTrace)
Utils::dump(1U, "Modem::getResponse() Buffer", m_buffer, m_length);
}
m_rspState = RESP_START;

@ -897,6 +897,10 @@ namespace modem
std::string rsnToString(uint8_t reason);
public:
/**
* @brief Flag indicating if modem response trace is enabled.
*/
__PROTECTED_PROPERTY(bool, respTrace, ResponseTrace);
/**
* @brief Flag indicating if modem trace is enabled.
*/

@ -198,6 +198,8 @@ void ModemV24::clock(uint32_t ms)
convertToAirTIA(m_buffer + (cmdOffset + 1U), m_length - (cmdOffset + 1U));
else
convertToAir(m_buffer + (cmdOffset + 1U), m_length - (cmdOffset + 1U));
if (m_trace)
Utils::dump(1U, "ModemV24::clock() RX P25 Data", m_buffer + (cmdOffset + 1U), m_length - (cmdOffset + 1U));
}
}
break;

Loading…
Cancel
Save

Powered by TurnKey Linux.