mirror of
https://github.com/meshtastic/firmware.git
synced 2026-01-06 09:57:52 +00:00
Compare commits
6 Commits
v2.2.8.61f
...
v2.2.9.473
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
47301a5ac0 | ||
|
|
0d023ea215 | ||
|
|
b5e952db24 | ||
|
|
a1c433748a | ||
|
|
04b2ab82dc | ||
|
|
e96ba7cbcf |
Submodule protobufs updated: 60f1f15743...fb28d59352
@@ -359,7 +359,6 @@ bool perhapsDecode(meshtastic_MeshPacket *p)
|
|||||||
// LOG_DEBUG("\n\n**\n\nDecompressed length - %d \n", decompressed_len);
|
// LOG_DEBUG("\n\n**\n\nDecompressed length - %d \n", decompressed_len);
|
||||||
|
|
||||||
memcpy(p->decoded.payload.bytes, decompressed_out, decompressed_len);
|
memcpy(p->decoded.payload.bytes, decompressed_out, decompressed_len);
|
||||||
p->decoded.payload.size = decompressed_len;
|
|
||||||
|
|
||||||
// Switch the port from PortNum_TEXT_MESSAGE_COMPRESSED_APP to PortNum_TEXT_MESSAGE_APP
|
// Switch the port from PortNum_TEXT_MESSAGE_COMPRESSED_APP to PortNum_TEXT_MESSAGE_APP
|
||||||
p->decoded.portnum = meshtastic_PortNum_TEXT_MESSAGE_APP;
|
p->decoded.portnum = meshtastic_PortNum_TEXT_MESSAGE_APP;
|
||||||
@@ -383,7 +382,9 @@ meshtastic_Routing_Error perhapsEncode(meshtastic_MeshPacket *p)
|
|||||||
|
|
||||||
// If the packet is not yet encrypted, do so now
|
// If the packet is not yet encrypted, do so now
|
||||||
if (p->which_payload_variant == meshtastic_MeshPacket_decoded_tag) {
|
if (p->which_payload_variant == meshtastic_MeshPacket_decoded_tag) {
|
||||||
// Only allow compression on the text message app.
|
size_t numbytes = pb_encode_to_bytes(bytes, sizeof(bytes), &meshtastic_Data_msg, &p->decoded);
|
||||||
|
|
||||||
|
// Only allow encryption on the text message app.
|
||||||
// TODO: Allow modules to opt into compression.
|
// TODO: Allow modules to opt into compression.
|
||||||
if (p->decoded.portnum == meshtastic_PortNum_TEXT_MESSAGE_APP) {
|
if (p->decoded.portnum == meshtastic_PortNum_TEXT_MESSAGE_APP) {
|
||||||
|
|
||||||
@@ -395,12 +396,17 @@ meshtastic_Routing_Error perhapsEncode(meshtastic_MeshPacket *p)
|
|||||||
int compressed_len;
|
int compressed_len;
|
||||||
compressed_len = unishox2_compress_simple(original_payload, p->decoded.payload.size, compressed_out);
|
compressed_len = unishox2_compress_simple(original_payload, p->decoded.payload.size, compressed_out);
|
||||||
|
|
||||||
LOG_DEBUG("Length - %d, compressed length - %d \n", p->decoded.payload.size, compressed_len);
|
LOG_DEBUG("Original length - %d \n", p->decoded.payload.size);
|
||||||
|
LOG_DEBUG("Compressed length - %d \n", compressed_len);
|
||||||
LOG_DEBUG("Original message - %s \n", p->decoded.payload.bytes);
|
LOG_DEBUG("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 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) {
|
if (compressed_len >= p->decoded.payload.size) {
|
||||||
|
|
||||||
LOG_DEBUG("Not using compressing message.\n");
|
LOG_DEBUG("Not using compressing message.\n");
|
||||||
|
// Set the uncompressed payload variant anyway. Shouldn't hurt?
|
||||||
|
// p->decoded.which_payloadVariant = Data_payload_tag;
|
||||||
|
|
||||||
// Otherwise we use the compressor
|
// Otherwise we use the compressor
|
||||||
} else {
|
} else {
|
||||||
LOG_DEBUG("Using compressed message.\n");
|
LOG_DEBUG("Using compressed message.\n");
|
||||||
@@ -413,8 +419,6 @@ meshtastic_Routing_Error perhapsEncode(meshtastic_MeshPacket *p)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t numbytes = pb_encode_to_bytes(bytes, sizeof(bytes), &meshtastic_Data_msg, &p->decoded);
|
|
||||||
|
|
||||||
if (numbytes > MAX_RHPACKETLEN)
|
if (numbytes > MAX_RHPACKETLEN)
|
||||||
return meshtastic_Routing_Error_TOO_LARGE;
|
return meshtastic_Routing_Error_TOO_LARGE;
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,8 @@ typedef enum _meshtastic_PortNum {
|
|||||||
NOTE: audio frames contain a 3 byte header (0xc0 0xde 0xc2) and a one byte marker for the decompressed bitrate.
|
NOTE: audio frames contain a 3 byte header (0xc0 0xde 0xc2) and a one byte marker for the decompressed bitrate.
|
||||||
This marker comes from the 'moduleConfig.audio.bitrate' enum minus one. */
|
This marker comes from the 'moduleConfig.audio.bitrate' enum minus one. */
|
||||||
meshtastic_PortNum_AUDIO_APP = 9,
|
meshtastic_PortNum_AUDIO_APP = 9,
|
||||||
/* Same as Text Message but originating from Detection Sensor Module. */
|
/* Same as Text Message but originating from Detection Sensor Module.
|
||||||
|
NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9 */
|
||||||
meshtastic_PortNum_DETECTION_SENSOR_APP = 10,
|
meshtastic_PortNum_DETECTION_SENSOR_APP = 10,
|
||||||
/* Provides a 'ping' service that replies to any packet it receives.
|
/* Provides a 'ping' service that replies to any packet it receives.
|
||||||
Also serves as a small example module.
|
Also serves as a small example module.
|
||||||
@@ -90,7 +91,8 @@ typedef enum _meshtastic_PortNum {
|
|||||||
ENCODING: Protobuf */
|
ENCODING: Protobuf */
|
||||||
meshtastic_PortNum_STORE_FORWARD_APP = 65,
|
meshtastic_PortNum_STORE_FORWARD_APP = 65,
|
||||||
/* Optional port for messages for the range test module.
|
/* Optional port for messages for the range test module.
|
||||||
ENCODING: ASCII Plaintext */
|
ENCODING: ASCII Plaintext
|
||||||
|
NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9 */
|
||||||
meshtastic_PortNum_RANGE_TEST_APP = 66,
|
meshtastic_PortNum_RANGE_TEST_APP = 66,
|
||||||
/* Provides a format to send and receive telemetry data from the Meshtastic network.
|
/* Provides a format to send and receive telemetry data from the Meshtastic network.
|
||||||
Maintained by Charles Crossan (crossan007) : crossan007@gmail.com
|
Maintained by Charles Crossan (crossan007) : crossan007@gmail.com
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
#if defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)
|
#if defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)
|
||||||
#include "modules/ExternalNotificationModule.h"
|
#include "modules/ExternalNotificationModule.h"
|
||||||
#include "modules/RangeTestModule.h"
|
#include "modules/RangeTestModule.h"
|
||||||
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52)) && !defined(CONFIG_IDF_TARGET_ESP32S2)
|
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)) && !defined(CONFIG_IDF_TARGET_ESP32S2)
|
||||||
#include "modules/SerialModule.h"
|
#include "modules/SerialModule.h"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@@ -92,7 +92,8 @@ void setupModules()
|
|||||||
new AirQualityTelemetryModule();
|
new AirQualityTelemetryModule();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && \
|
||||||
|
!defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
new SerialModule();
|
new SerialModule();
|
||||||
#endif
|
#endif
|
||||||
#ifdef ARCH_ESP32
|
#ifdef ARCH_ESP32
|
||||||
|
|||||||
@@ -44,9 +44,10 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && \
|
||||||
|
!defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
|
||||||
#define RX_BUFFER 128
|
#define RX_BUFFER 256
|
||||||
#define TIMEOUT 250
|
#define TIMEOUT 250
|
||||||
#define BAUD 38400
|
#define BAUD 38400
|
||||||
#define ACK 1
|
#define ACK 1
|
||||||
@@ -141,7 +142,12 @@ int32_t SerialModule::runOnce()
|
|||||||
}
|
}
|
||||||
#elif !defined(TTGO_T_ECHO)
|
#elif !defined(TTGO_T_ECHO)
|
||||||
if (moduleConfig.serial.rxd && moduleConfig.serial.txd) {
|
if (moduleConfig.serial.rxd && moduleConfig.serial.txd) {
|
||||||
|
#ifdef ARCH_RP2040
|
||||||
|
Serial2.setFIFOSize(RX_BUFFER);
|
||||||
|
Serial2.setPinout(moduleConfig.serial.txd, moduleConfig.serial.rxd);
|
||||||
|
#else
|
||||||
Serial2.setPins(moduleConfig.serial.rxd, moduleConfig.serial.txd);
|
Serial2.setPins(moduleConfig.serial.rxd, moduleConfig.serial.txd);
|
||||||
|
#endif
|
||||||
Serial2.begin(baud, SERIAL_8N1);
|
Serial2.begin(baud, SERIAL_8N1);
|
||||||
Serial2.setTimeout(moduleConfig.serial.timeout > 0 ? moduleConfig.serial.timeout : TIMEOUT);
|
Serial2.setTimeout(moduleConfig.serial.timeout > 0 ? moduleConfig.serial.timeout : TIMEOUT);
|
||||||
} else {
|
} else {
|
||||||
@@ -182,7 +188,7 @@ int32_t SerialModule::runOnce()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef TTGO_T_ECHO
|
#if !defined(TTGO_T_ECHO)
|
||||||
else {
|
else {
|
||||||
while (Serial2.available()) {
|
while (Serial2.available()) {
|
||||||
serialPayloadSize = Serial2.readBytes(serialBytes, meshtastic_Constants_DATA_PAYLOAD_LEN);
|
serialPayloadSize = Serial2.readBytes(serialBytes, meshtastic_Constants_DATA_PAYLOAD_LEN);
|
||||||
|
|||||||
@@ -8,7 +8,8 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)) && !defined(CONFIG_IDF_TARGET_ESP32S2) && \
|
||||||
|
!defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
|
||||||
class SerialModule : public StreamAPI, private concurrency::OSThread
|
class SerialModule : public StreamAPI, private concurrency::OSThread
|
||||||
{
|
{
|
||||||
@@ -74,4 +75,4 @@ class SerialModuleRadio : public MeshModule
|
|||||||
|
|
||||||
extern SerialModuleRadio *serialModuleRadio;
|
extern SerialModuleRadio *serialModuleRadio;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -455,6 +455,13 @@ void MQTT::onSend(const meshtastic_MeshPacket &mp, ChannelIndex chIndex)
|
|||||||
{
|
{
|
||||||
auto &ch = channels.getByIndex(chIndex);
|
auto &ch = channels.getByIndex(chIndex);
|
||||||
|
|
||||||
|
if (&mp.decoded && strcmp(moduleConfig.mqtt.address, default_mqtt_address) == 0 &&
|
||||||
|
(mp.decoded.portnum == meshtastic_PortNum_RANGE_TEST_APP ||
|
||||||
|
mp.decoded.portnum == meshtastic_PortNum_DETECTION_SENSOR_APP)) {
|
||||||
|
LOG_DEBUG("MQTT onSend - Ignoring range test or detection sensor message on public mqtt\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (ch.settings.uplink_enabled) {
|
if (ch.settings.uplink_enabled) {
|
||||||
const char *channelId = channels.getGlobalId(chIndex); // FIXME, for now we just use the human name for the channel
|
const char *channelId = channels.getGlobalId(chIndex); // FIXME, for now we just use the human name for the channel
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
#define I2C_SCL 22
|
#define I2C_SCL 22
|
||||||
|
|
||||||
#define BUTTON_PIN 36 // The user button (information button) GPIO on the Nano G1 explorer
|
#define BUTTON_PIN 36 // The user button (information button) GPIO on the Nano G1 explorer
|
||||||
//#define BUTTON_PIN_ALT 13 // Alternate GPIO for an external button if needed. Does anyone use this? It is not documented
|
// #define BUTTON_PIN_ALT 13 // Alternate GPIO for an external button if needed. Does anyone use this? It is not documented
|
||||||
// anywhere.
|
// anywhere.
|
||||||
#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Module.
|
#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Module.
|
||||||
|
|
||||||
// common pinout for their SX1262 vs RF95 modules - both can be enabled and we will probe at runtime for RF95 and if
|
// common pinout for their SX1262 vs RF95 modules - both can be enabled and we will probe at runtime for RF95 and if
|
||||||
@@ -13,6 +13,9 @@
|
|||||||
#define USE_RF95
|
#define USE_RF95
|
||||||
#define USE_SX1262
|
#define USE_SX1262
|
||||||
|
|
||||||
|
#define GPS_RX_PIN 34
|
||||||
|
#define GPS_TX_PIN 12
|
||||||
|
|
||||||
#define LORA_DIO0 26 // a No connect on the SX1262 module
|
#define LORA_DIO0 26 // a No connect on the SX1262 module
|
||||||
#define LORA_RESET 23
|
#define LORA_RESET 23
|
||||||
#define LORA_DIO1 33 // SX1262 IRQ
|
#define LORA_DIO1 33 // SX1262 IRQ
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
#define I2C_SCL 22
|
#define I2C_SCL 22
|
||||||
|
|
||||||
#define BUTTON_PIN 36 // The middle button GPIO on the Nano G1
|
#define BUTTON_PIN 36 // The middle button GPIO on the Nano G1
|
||||||
//#define BUTTON_PIN_ALT 13 // Alternate GPIO for an external button if needed. Does anyone use this? It is not documented
|
// #define BUTTON_PIN_ALT 13 // Alternate GPIO for an external button if needed. Does anyone use this? It is not documented
|
||||||
// anywhere.
|
// anywhere.
|
||||||
#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Module.
|
#define EXT_NOTIFY_OUT 13 // Default pin to use for Ext Notify Module.
|
||||||
|
|
||||||
// common pinout for their SX1262 vs RF95 modules - both can be enabled and we will probe at runtime for RF95 and if
|
// common pinout for their SX1262 vs RF95 modules - both can be enabled and we will probe at runtime for RF95 and if
|
||||||
@@ -13,6 +13,9 @@
|
|||||||
#define USE_RF95
|
#define USE_RF95
|
||||||
#define USE_SX1262
|
#define USE_SX1262
|
||||||
|
|
||||||
|
#define GPS_RX_PIN 34
|
||||||
|
#define GPS_TX_PIN 12
|
||||||
|
|
||||||
#define LORA_DIO0 26 // a No connect on the SX1262 module
|
#define LORA_DIO0 26 // a No connect on the SX1262 module
|
||||||
#define LORA_RESET 23
|
#define LORA_RESET 23
|
||||||
#define LORA_DIO1 33 // SX1262 IRQ
|
#define LORA_DIO1 33 // SX1262 IRQ
|
||||||
@@ -30,4 +33,4 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// different screen
|
// different screen
|
||||||
#define USE_SH1106
|
#define USE_SH1106
|
||||||
@@ -17,6 +17,10 @@
|
|||||||
// SDA = 4
|
// SDA = 4
|
||||||
// SCL = 5
|
// SCL = 5
|
||||||
|
|
||||||
|
// Recommended pins for SerialModule:
|
||||||
|
// txd = 8
|
||||||
|
// rxd = 9
|
||||||
|
|
||||||
#define EXT_NOTIFY_OUT 22
|
#define EXT_NOTIFY_OUT 22
|
||||||
#define BUTTON_PIN 17
|
#define BUTTON_PIN 17
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,10 @@
|
|||||||
// SDA = 4
|
// SDA = 4
|
||||||
// SCL = 5
|
// SCL = 5
|
||||||
|
|
||||||
|
// Recommended pins for SerialModule:
|
||||||
|
// txd = 8
|
||||||
|
// rxd = 9
|
||||||
|
|
||||||
#define EXT_NOTIFY_OUT 22
|
#define EXT_NOTIFY_OUT 22
|
||||||
#define BUTTON_PIN 17
|
#define BUTTON_PIN 17
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[VERSION]
|
[VERSION]
|
||||||
major = 2
|
major = 2
|
||||||
minor = 2
|
minor = 2
|
||||||
build = 8
|
build = 9
|
||||||
|
|||||||
Reference in New Issue
Block a user