From 9ccc86050a333e1277313f775f92e749359e4835 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Mon, 1 Feb 2016 21:44:40 +0000 Subject: [PATCH] Debugging D-Star. --- DStarControl.cpp | 4 +++- DStarDefines.h | 2 +- DStarNetwork.cpp | 1 + Modem.cpp | 16 ++++++++-------- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/DStarControl.cpp b/DStarControl.cpp index 4a53565..f632d3a 100644 --- a/DStarControl.cpp +++ b/DStarControl.cpp @@ -215,6 +215,8 @@ void CDStarControl::writeModem(unsigned char *data) m_errs += errors; m_bits += 48U; + m_frames++; + unsigned int bits = matchSync(data + 1U); if (bits <= MAX_SYNC_BIT_ERRORS) m_n = 0U; @@ -736,7 +738,7 @@ void CDStarControl::sendAck() if (m_network != NULL) m_network->getStatus(status, reflector); - char text[20U]; + char text[40U]; if (status == LS_LINKED_DEXTRA || status == LS_LINKED_DPLUS || status == LS_LINKED_DCS || status == LS_LINKED_CCS || status == LS_LINKED_LOOPBACK) ::sprintf(text, "%-8.8s BER: %.1f%% ", reflector, float(m_errs * 100U) / float(m_bits)); else diff --git a/DStarDefines.h b/DStarDefines.h index dfbac46..350759b 100644 --- a/DStarDefines.h +++ b/DStarDefines.h @@ -24,7 +24,7 @@ const unsigned int DSTAR_HEADER_LENGTH_BYTES = 41U; const unsigned int DSTAR_FRAME_LENGTH_BYTES = 12U; -const unsigned char DSTAR_END_PATTERN_BYTES[] = { TAG_EOT, 0x55, 0x55, 0x55, 0x55, 0xC8, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char DSTAR_END_PATTERN_BYTES[] = { TAG_EOT, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xC8, 0x7A }; const unsigned int DSTAR_END_PATTERN_LENGTH_BYTES = 6U; const unsigned char DSTAR_NULL_AMBE_DATA_BYTES[] = { 0x9E, 0x8D, 0x32, 0x88, 0x26, 0x1A, 0x3F, 0x61, 0xE8 }; diff --git a/DStarNetwork.cpp b/DStarNetwork.cpp index 583ba8c..9c3c48c 100644 --- a/DStarNetwork.cpp +++ b/DStarNetwork.cpp @@ -207,6 +207,7 @@ void CDStarNetwork::clock(unsigned int ms) case 0x00U: // NETWORK_TEXT; m_linkStatus = LINK_STATUS(buffer[25U]); ::memcpy(m_linkReflector, buffer + 26U, DSTAR_LONG_CALLSIGN_LENGTH); + LogMessage("D-Star link status set to \"%s\"", buffer + 5U); return; case 0x01U: // NETWORK_TEMPTEXT; diff --git a/Modem.cpp b/Modem.cpp index 101b547..66b5905 100644 --- a/Modem.cpp +++ b/Modem.cpp @@ -364,23 +364,23 @@ void CModem::clock(unsigned int ms) } if (m_dstarSpace > 1U && !m_txDStarData.isEmpty()) { - unsigned char buffer[2U]; - m_txDStarData.peek(buffer, 2U); + unsigned char buffer[4U]; + m_txDStarData.peek(buffer, 4U); - if ((buffer[1U] == TAG_HEADER && m_dstarSpace > 4U) || - (buffer[1U] == TAG_DATA && m_dstarSpace > 1U) || - (buffer[1U] == TAG_EOT && m_dstarSpace > 1U)) { + if ((buffer[3U] == MMDVM_DSTAR_HEADER && m_dstarSpace > 4U) || + (buffer[3U] == MMDVM_DSTAR_DATA && m_dstarSpace > 1U) || + (buffer[3U] == MMDVM_DSTAR_EOT && m_dstarSpace > 1U)) { unsigned char len = 0U; m_txDStarData.getData(&len, 1U); m_txDStarData.getData(m_buffer, len); if (m_debug) { - switch (buffer[1U]) { - case TAG_HEADER: + switch (buffer[3U]) { + case MMDVM_DSTAR_HEADER: CUtils::dump(1U, "TX D-Star Header", m_buffer, len); m_dstarSpace -= 4U; break; - case TAG_DATA: + case MMDVM_DSTAR_DATA: CUtils::dump(1U, "TX D-Star Data", m_buffer, len); m_dstarSpace -= 1U; break;