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_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

View File

@@ -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 };

View File

@@ -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;

View File

@@ -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;