Заготовка под PacketMode, пока костыльная и нерабочая, еще думаю над реализацией

lora-esp32-dev
US1GHQ 2021-08-31 16:09:57 +03:00
parent 95e8d50abc
commit 5ebdb602c3
3 changed files with 24 additions and 0 deletions

View File

@ -66,6 +66,13 @@ String encode_kiss(const String &tnc2FormattedFrame) {
return kissFrame;
}
//Zaglyshka
String encode_kiss_2(const String &inputKISSTNCFrame, bool &rawFrame) {
Serial.print(inputKISSTNCFrame);
String kissFrame = "";
return kissFrame;
}
String encapsulateKISS(const String &ax25Frame, uint8_t TNCCmd) {
String kissFrame = "";
kissFrame += (char) FEND; // start of frame

View File

@ -8,6 +8,7 @@
#define IS_LAST_ADDRESS_POSITION_MASK 0b1
String encode_kiss(const String& tnc2FormattedFrame);
String encode_kiss_2(const String &inputKISSTNCFrame, bool &rawFrame);
String decode_kiss(const String &inputKISSTNCFrame, bool &dataFrame);
String encapsulateKISS(const String &ax25Frame, uint8_t TNCCmd);

View File

@ -45,6 +45,22 @@ void handleKISSData(char character, int bufferIndex) {
}
inTNCData->clear();
}
//Send raw packets for bbs
if (character == (char)0x04 && inTNCData->length() > 3) {
bool isRawFrame = false;
const String &TNC2DataFrame = encode_kiss_2(*inTNCData, isRawFrame);
if (isRawFrame) {
auto *buffer = new String();
buffer->concat(TNC2DataFrame);
Serial.print(TNC2DataFrame);
if (xQueueSend(tncToSendQueue, &buffer, (1000 / portTICK_PERIOD_MS)) != pdPASS) {
delete buffer;
}
}
inTNCData->clear();
return;
}
if (inTNCData->length() > 255){
// just in case of garbage input reset data
inTNCData->clear();