diff --git a/src/configuration.h b/src/configuration.h index 49c7fd4de..1f4864f8a 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -144,7 +144,7 @@ along with this program. If not, see . //#define DISABLE_NTP // Disable the welcome screen and allow - #define DISABLE_WELCOME_UNSET +//#define DISABLE_WELCOME_UNSET // ----------------------------------------------------------------------------- // OLED & Input diff --git a/src/mesh/PhoneAPI.cpp b/src/mesh/PhoneAPI.cpp index cc40ff728..033ef4906 100644 --- a/src/mesh/PhoneAPI.cpp +++ b/src/mesh/PhoneAPI.cpp @@ -179,9 +179,6 @@ size_t PhoneAPI::getFromRadio(uint8_t *buf) // Encapsulate as a FromRadio packet fromRadioScratch.which_payloadVariant = FromRadio_packet_tag; fromRadioScratch.packet = *packetForPhone; - - // TODO: Remove with compression rework - fromRadioScratch.packet.decoded.which_payloadVariant = Data_payload_tag; } releasePhonePacket(); break; diff --git a/src/mesh/Router.cpp b/src/mesh/Router.cpp index 2546dbe81..d7dd7afcb 100644 --- a/src/mesh/Router.cpp +++ b/src/mesh/Router.cpp @@ -275,7 +275,7 @@ void Router::sniffReceived(const MeshPacket *p, const Routing *c) bool perhapsDecode(MeshPacket *p) { - //DEBUG_MSG("\n\n** perhapsDecode payloadVariant - %d\n\n", p->which_payloadVariant); + // DEBUG_MSG("\n\n** perhapsDecode payloadVariant - %d\n\n", p->which_payloadVariant); if (p->which_payloadVariant == MeshPacket_decoded_tag) return true; // If packet was already decoded just return @@ -307,27 +307,31 @@ bool perhapsDecode(MeshPacket *p) p->which_payloadVariant = MeshPacket_decoded_tag; // change type to decoded p->channel = chIndex; // change to store the index instead of the hash + /* if (p->decoded.portnum == PortNum_TEXT_MESSAGE_APP) { - DEBUG_MSG("\n\n** TEXT_MESSAGE_APP payloadVariant - %d\n\n", p->decoded.which_payloadVariant); + DEBUG_MSG("\n\n** TEXT_MESSAGE_APP\n"); + } else if (p->decoded.portnum == PortNum_TEXT_MESSAGE_COMPRESSED_APP) { + DEBUG_MSG("\n\n** PortNum_TEXT_MESSAGE_COMPRESSED_APP\n"); } + */ + // Decompress if needed. jm - if (p->decoded.portnum == PortNum_TEXT_MESSAGE_APP) { - if (p->decoded.which_payloadVariant == Data_payload_compressed_tag) { - // Decompress the payload - char compressed_in[Constants_DATA_PAYLOAD_LEN] = {}; - char decompressed_out[Constants_DATA_PAYLOAD_LEN] = {}; - int decompressed_len; + if (p->decoded.portnum == PortNum_TEXT_MESSAGE_COMPRESSED_APP) { + // Decompress the payload + char compressed_in[Constants_DATA_PAYLOAD_LEN] = {}; + char decompressed_out[Constants_DATA_PAYLOAD_LEN] = {}; + int decompressed_len; - memcpy(compressed_in, p->decoded.payload.bytes, p->decoded.payload.size); + memcpy(compressed_in, p->decoded.payload.bytes, p->decoded.payload.size); - decompressed_len = unishox2_decompress_simple(compressed_in, p->decoded.payload.size, decompressed_out); + decompressed_len = unishox2_decompress_simple(compressed_in, p->decoded.payload.size, decompressed_out); - DEBUG_MSG("\n\n**\n\nDecompressed length - %d \n", decompressed_len); - // Serial.println(p->decoded.payload.bytes); - Serial.println(decompressed_out); + // DEBUG_MSG("\n\n**\n\nDecompressed length - %d \n", decompressed_len); - p->decoded.which_payloadVariant = Data_payload_tag; - } + memcpy(p->decoded.payload.bytes, decompressed_out, decompressed_len); + + // Switch the port from PortNum_TEXT_MESSAGE_COMPRESSED_APP to PortNum_TEXT_MESSAGE_APP + p->decoded.portnum = PortNum_TEXT_MESSAGE_APP; } printPacket("decoded message", p); @@ -364,38 +368,24 @@ Routing_Error perhapsEncode(MeshPacket *p) DEBUG_MSG("Original length - %d \n", p->decoded.payload.size); DEBUG_MSG("Compressed length - %d \n", compressed_len); - - // Serial.println(compressed_out); + DEBUG_MSG("Original message - %s \n", p->decoded.payload.bytes); // If the compressed length is greater than or equal to the original size, don't use the compressed form if (compressed_len >= p->decoded.payload.size) { DEBUG_MSG("Not using compressing message.\n"); // Set the uncompressed payload varient anyway. Shouldn't hurt? - p->decoded.which_payloadVariant = Data_payload_tag; + // p->decoded.which_payloadVariant = Data_payload_tag; // Otherwise we use the compressor } else { DEBUG_MSG("Using compressed message.\n"); // Copy the compressed data into the meshpacket - - p->decoded.payload_compressed.size = compressed_len; - memcpy(p->decoded.payload_compressed.bytes, compressed_out, compressed_len); - DEBUG_MSG("\n\n** TEXT_MESSAGE_APP payloadVariant - %d\n\n", p->decoded.which_payloadVariant); - p->decoded.which_payloadVariant = Data_payload_compressed_tag; - DEBUG_MSG("\n\n** TEXT_MESSAGE_APP payloadVariant - %d\n\n", p->decoded.which_payloadVariant); - } + p->decoded.payload.size = compressed_len; + memcpy(p->decoded.payload.bytes, compressed_out, compressed_len); - if (0) { - char decompressed_out[Constants_DATA_PAYLOAD_LEN] = {}; - int decompressed_len; - - decompressed_len = unishox2_decompress_simple(compressed_out, compressed_len, decompressed_out); - - Serial.print("Decompressed length - "); - Serial.println(decompressed_len); - Serial.println(decompressed_out); + p->decoded.portnum = PortNum_TEXT_MESSAGE_COMPRESSED_APP; } } diff --git a/src/modules/esp32/RangeTestModule.cpp b/src/modules/esp32/RangeTestModule.cpp index 71b1bbb53..1a871e81f 100644 --- a/src/modules/esp32/RangeTestModule.cpp +++ b/src/modules/esp32/RangeTestModule.cpp @@ -36,8 +36,8 @@ int32_t RangeTestModule::runOnce() without having to configure it from the PythonAPI or WebUI. */ - // moduleConfig.range_test.enabled = 1; - // moduleConfig.range_test.sender = 45; + //moduleConfig.range_test.enabled = 1; + //moduleConfig.range_test.sender = 30; // moduleConfig.range_test.save = 1; // Fixed position is useful when testing indoors. @@ -115,7 +115,7 @@ void RangeTestModuleRadio::sendPayload(NodeNum dest, bool wantReplies) packetSequence++; - static char heartbeatString[20]; + static char heartbeatString[MAX_RHPACKETLEN]; snprintf(heartbeatString, sizeof(heartbeatString), "seq %u", packetSequence); p->decoded.payload.size = strlen(heartbeatString); // You must specify how many bytes are in the reply