Correct switch to PKT on control packet
parent
9d9f780264
commit
c0c509cabf
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue