Debugging D-Star.

This commit is contained in:
Jonathan Naylor
2016-02-01 21:44:40 +00:00
parent 00c15f116c
commit 9ccc86050a
4 changed files with 13 additions and 10 deletions

View File

@@ -215,6 +215,8 @@ void CDStarControl::writeModem(unsigned char *data)
m_errs += errors; m_errs += errors;
m_bits += 48U; m_bits += 48U;
m_frames++;
unsigned int bits = matchSync(data + 1U); unsigned int bits = matchSync(data + 1U);
if (bits <= MAX_SYNC_BIT_ERRORS) if (bits <= MAX_SYNC_BIT_ERRORS)
m_n = 0U; m_n = 0U;
@@ -736,7 +738,7 @@ void CDStarControl::sendAck()
if (m_network != NULL) if (m_network != NULL)
m_network->getStatus(status, reflector); 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) 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)); ::sprintf(text, "%-8.8s BER: %.1f%% ", reflector, float(m_errs * 100U) / float(m_bits));
else else

View File

@@ -24,7 +24,7 @@
const unsigned int DSTAR_HEADER_LENGTH_BYTES = 41U; const unsigned int DSTAR_HEADER_LENGTH_BYTES = 41U;
const unsigned int DSTAR_FRAME_LENGTH_BYTES = 12U; 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 int DSTAR_END_PATTERN_LENGTH_BYTES = 6U;
const unsigned char DSTAR_NULL_AMBE_DATA_BYTES[] = { 0x9E, 0x8D, 0x32, 0x88, 0x26, 0x1A, 0x3F, 0x61, 0xE8 }; const unsigned char DSTAR_NULL_AMBE_DATA_BYTES[] = { 0x9E, 0x8D, 0x32, 0x88, 0x26, 0x1A, 0x3F, 0x61, 0xE8 };

View File

@@ -207,6 +207,7 @@ void CDStarNetwork::clock(unsigned int ms)
case 0x00U: // NETWORK_TEXT; case 0x00U: // NETWORK_TEXT;
m_linkStatus = LINK_STATUS(buffer[25U]); m_linkStatus = LINK_STATUS(buffer[25U]);
::memcpy(m_linkReflector, buffer + 26U, DSTAR_LONG_CALLSIGN_LENGTH); ::memcpy(m_linkReflector, buffer + 26U, DSTAR_LONG_CALLSIGN_LENGTH);
LogMessage("D-Star link status set to \"%s\"", buffer + 5U);
return; return;
case 0x01U: // NETWORK_TEMPTEXT; case 0x01U: // NETWORK_TEMPTEXT;

View File

@@ -364,23 +364,23 @@ void CModem::clock(unsigned int ms)
} }
if (m_dstarSpace > 1U && !m_txDStarData.isEmpty()) { if (m_dstarSpace > 1U && !m_txDStarData.isEmpty()) {
unsigned char buffer[2U]; unsigned char buffer[4U];
m_txDStarData.peek(buffer, 2U); m_txDStarData.peek(buffer, 4U);
if ((buffer[1U] == TAG_HEADER && m_dstarSpace > 4U) || if ((buffer[3U] == MMDVM_DSTAR_HEADER && m_dstarSpace > 4U) ||
(buffer[1U] == TAG_DATA && m_dstarSpace > 1U) || (buffer[3U] == MMDVM_DSTAR_DATA && m_dstarSpace > 1U) ||
(buffer[1U] == TAG_EOT && m_dstarSpace > 1U)) { (buffer[3U] == MMDVM_DSTAR_EOT && m_dstarSpace > 1U)) {
unsigned char len = 0U; unsigned char len = 0U;
m_txDStarData.getData(&len, 1U); m_txDStarData.getData(&len, 1U);
m_txDStarData.getData(m_buffer, len); m_txDStarData.getData(m_buffer, len);
if (m_debug) { if (m_debug) {
switch (buffer[1U]) { switch (buffer[3U]) {
case TAG_HEADER: case MMDVM_DSTAR_HEADER:
CUtils::dump(1U, "TX D-Star Header", m_buffer, len); CUtils::dump(1U, "TX D-Star Header", m_buffer, len);
m_dstarSpace -= 4U; m_dstarSpace -= 4U;
break; break;
case TAG_DATA: case MMDVM_DSTAR_DATA:
CUtils::dump(1U, "TX D-Star Data", m_buffer, len); CUtils::dump(1U, "TX D-Star Data", m_buffer, len);
m_dstarSpace -= 1U; m_dstarSpace -= 1U;
break; break;