mirror of
https://github.com/ShaYmez/NXDNClients.git
synced 2025-07-30 19:52:25 -04:00
Tested Kenwood GPS data decoding.
This commit is contained in:
parent
6afbe5939a
commit
e83aa61428
@ -60,8 +60,6 @@ void CGPSHandler::processData(const unsigned char* data)
|
|||||||
{
|
{
|
||||||
assert(data != NULL);
|
assert(data != NULL);
|
||||||
|
|
||||||
CUtils::dump(4U, "processData GPS Data", data, 21U);
|
|
||||||
|
|
||||||
::memcpy(m_data + m_length, data + 1U, NXDN_DATA_LENGTH);
|
::memcpy(m_data + m_length, data + 1U, NXDN_DATA_LENGTH);
|
||||||
m_length += NXDN_DATA_LENGTH;
|
m_length += NXDN_DATA_LENGTH;
|
||||||
|
|
||||||
@ -197,25 +195,6 @@ bool CGPSHandler::processKenwood()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
CUtils::dump("Kenwood GPS Data", m_data, m_length);
|
|
||||||
|
|
||||||
unsigned char UTCss = m_data[3U] & 0x3FU;
|
|
||||||
unsigned char UTCmm = ((m_data[3U] & 0xC0U) >> 6) | ((m_data[4U] & 0x0FU) << 2);
|
|
||||||
unsigned char UTChh = ((m_data[5U] & 0x01U) << 4) | ((m_data[4U] & 0xF0U) >> 4);
|
|
||||||
|
|
||||||
LogMessage("UTC hh:%u mm:%u ss:%u", UTChh, UTCmm, UTCss);
|
|
||||||
|
|
||||||
unsigned char UTCday = 0x1FU;
|
|
||||||
unsigned char UTCmonth = 0x0FU;
|
|
||||||
unsigned char UTCyear = 0x7FU;
|
|
||||||
if (type == GPS_FULL) {
|
|
||||||
UTCday = m_data[17U] & 0x1FU;
|
|
||||||
UTCmonth = ((m_data[17U] & 0xE0U) >> 5) | ((m_data[18U] & 0x01U) << 4);
|
|
||||||
UTCyear = (m_data[18U] & 0xFEU) >> 1;
|
|
||||||
|
|
||||||
LogMessage("UTC dd:%u mm:%u yy:%u", UTCday, UTCmonth, UTCyear);
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned char north = 'N';
|
unsigned char north = 'N';
|
||||||
unsigned int latAfter = 0x7FFFU;
|
unsigned int latAfter = 0x7FFFU;
|
||||||
unsigned int latBefore = 0xFFFFU;
|
unsigned int latBefore = 0xFFFFU;
|
||||||
@ -240,9 +219,6 @@ bool CGPSHandler::processKenwood()
|
|||||||
lonBefore = (m_data[16U] << 8) | m_data[15U];
|
lonBefore = (m_data[16U] << 8) | m_data[15U];
|
||||||
}
|
}
|
||||||
|
|
||||||
LogMessage("Latitude: %u . %u %c", latBefore, latAfter, north);
|
|
||||||
LogMessage("Longitude: %u . %u %c", lonBefore, lonAfter, east);
|
|
||||||
|
|
||||||
if (latAfter == 0x7FFFU || latBefore == 0xFFFFU || lonAfter == 0x7FFFU || lonBefore == 0xFFFFU)
|
if (latAfter == 0x7FFFU || latBefore == 0xFFFFU || lonAfter == 0x7FFFU || lonBefore == 0xFFFFU)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@ -270,9 +246,7 @@ bool CGPSHandler::processKenwood()
|
|||||||
source.c_str(), m_callsign.c_str(), latBefore, latAfter / 100U, north, lonBefore, lonAfter / 100U, east);
|
source.c_str(), m_callsign.c_str(), latBefore, latAfter / 100U, north, lonBefore, lonAfter / 100U, east);
|
||||||
}
|
}
|
||||||
|
|
||||||
LogMessage("Kenwood APRS message = %s", output);
|
m_writer->write(output);
|
||||||
|
|
||||||
// m_writer->write(output);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user