Correct switch to PKT on control packet

master
US1GHQ 2021-09-14 21:10:05 +03:00
parent 9d9f780264
commit c0c509cabf
2 changed files with 11 additions and 4 deletions

View File

@ -26,5 +26,5 @@
#define ERROR_QUEUE_FULL 0x04 #define ERROR_QUEUE_FULL 0x04
//Data control frames, ported from Direwolf //Data control frames, ported from Direwolf
#define T_PKT 0xaa #define T_PKT 0x03
#define R_PKT 0xa6 #define R_PKT 0xa6

View File

@ -127,13 +127,20 @@ String decode_kiss(const String &inputKISSTNCFrame, bool &dataFrame, bool &pktFr
if (validateKISSFrame(inputKISSTNCFrame)) { if (validateKISSFrame(inputKISSTNCFrame)) {
dataFrame = inputKISSTNCFrame.charAt(1) == CMD_DATA; dataFrame = inputKISSTNCFrame.charAt(1) == CMD_DATA;
pktFrame = inputKISSTNCFrame.charAt(2) == T_PKT; for (int i = 0; i < inputKISSTNCFrame.length(); ++i)
if (dataFrame && pktFrame) { {
char currentChar = inputKISSTNCFrame.charAt(i);
if (currentChar == (char) T_PKT)
{
pktFrame = true;
}
}
if (dataFrame && !pktFrame) {
String ax25Frame = decapsulateKISS(inputKISSTNCFrame); String ax25Frame = decapsulateKISS(inputKISSTNCFrame);
delay(250); delay(250);
TNC2Frame += ax25Frame; TNC2Frame += ax25Frame;
} }
else if (dataFrame){ else if (dataFrame && pktFrame){
String ax25Frame = decapsulateKISS(inputKISSTNCFrame); String ax25Frame = decapsulateKISS(inputKISSTNCFrame);
bool isLast = false; bool isLast = false;
String dst_addr = decode_address_ax25(ax25Frame.substring(0, 7), isLast, false); String dst_addr = decode_address_ax25(ax25Frame.substring(0, 7), isLast, false);