mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-26 17:58:43 -05:00
Merge pull request #815 from srcejon/lora_aprs
Enable CRC checking for LoRa APRS packets
This commit is contained in:
commit
f1c0301e11
@ -192,10 +192,13 @@ bool ChirpChatDemod::handleMessage(const Message& cmd)
|
|||||||
// Is this an APRS packet?
|
// Is this an APRS packet?
|
||||||
// As per: https://github.com/oe3cjb/TTGO-T-Beam-LoRa-APRS/blob/master/lib/BG_RF95/BG_RF95.cpp
|
// As per: https://github.com/oe3cjb/TTGO-T-Beam-LoRa-APRS/blob/master/lib/BG_RF95/BG_RF95.cpp
|
||||||
// There is a 3 byte header for LoRa APRS packets. Addressing follows in ASCII: srccall>dst:
|
// There is a 3 byte header for LoRa APRS packets. Addressing follows in ASCII: srccall>dst:
|
||||||
// TODO: Should we check for valid CRC?
|
|
||||||
int colonIdx = m_lastMsgBytes.indexOf(':');
|
int colonIdx = m_lastMsgBytes.indexOf(':');
|
||||||
int greaterThanIdx = m_lastMsgBytes.indexOf('>');
|
int greaterThanIdx = m_lastMsgBytes.indexOf('>');
|
||||||
if ((m_lastMsgBytes[0] == '<') && (greaterThanIdx != -1) && (colonIdx != -1))
|
if ( (m_lastMsgBytes[0] == '<')
|
||||||
|
&& (greaterThanIdx != -1)
|
||||||
|
&& (colonIdx != -1)
|
||||||
|
&& ((m_lastMsgHasCRC && m_lastMsgPayloadCRC) || !m_lastMsgHasCRC)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
QByteArray packet;
|
QByteArray packet;
|
||||||
|
|
||||||
@ -210,8 +213,11 @@ bool ChirpChatDemod::handleMessage(const Message& cmd)
|
|||||||
packet.append(3);
|
packet.append(3);
|
||||||
packet.append(-16); // 0xf0
|
packet.append(-16); // 0xf0
|
||||||
packet.append(m_lastMsgBytes.mid(colonIdx+1));
|
packet.append(m_lastMsgBytes.mid(colonIdx+1));
|
||||||
|
if (!m_lastMsgHasCRC)
|
||||||
|
{
|
||||||
packet.append((char)0); // dummy crc
|
packet.append((char)0); // dummy crc
|
||||||
packet.append((char)0);
|
packet.append((char)0);
|
||||||
|
}
|
||||||
|
|
||||||
// Forward to APRS and other packet features
|
// Forward to APRS and other packet features
|
||||||
MessagePipes& messagePipes = MainCore::instance()->getMessagePipes();
|
MessagePipes& messagePipes = MainCore::instance()->getMessagePipes();
|
||||||
|
Loading…
Reference in New Issue
Block a user