From 207b9b49a575b02db6cf32cf7b808f753755b51f Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 Aug 2024 07:42:30 -0500 Subject: [PATCH 1/4] Always attempt to set NTP or GPS time on a fresh position packet (#4460) --- src/modules/PositionModule.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/PositionModule.cpp b/src/modules/PositionModule.cpp index 1618ba3ed..1756e8508 100644 --- a/src/modules/PositionModule.cpp +++ b/src/modules/PositionModule.cpp @@ -186,7 +186,7 @@ meshtastic_MeshPacket *PositionModule::allocReply() p.longitude_i = localPosition.longitude_i; } p.precision_bits = precision; - p.time = localPosition.time; + p.time = getValidTime(RTCQualityNTP) > 0 ? getValidTime(RTCQualityNTP) : localPosition.time; if (pos_flags & meshtastic_Config_PositionConfig_PositionFlags_ALTITUDE) { if (pos_flags & meshtastic_Config_PositionConfig_PositionFlags_ALTITUDE_MSL) From 181325103a614f78cbd0806e136f81df35dd873d Mon Sep 17 00:00:00 2001 From: Christopher Hoover Date: Wed, 14 Aug 2024 05:51:32 -0700 Subject: [PATCH 2/4] Improves ignore messages in Router.cpp (#4442) Signed-off-by: Christopher Hoover . --- src/mesh/Router.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/mesh/Router.cpp b/src/mesh/Router.cpp index 79095805d..db968ce51 100644 --- a/src/mesh/Router.cpp +++ b/src/mesh/Router.cpp @@ -517,18 +517,26 @@ void Router::perhapsHandleReceived(meshtastic_MeshPacket *p) } #endif // assert(radioConfig.has_preferences); - bool ignore = is_in_repeated(config.lora.ignore_incoming, p->from) || (config.lora.ignore_mqtt && p->via_mqtt); + if (is_in_repeated(config.lora.ignore_incoming, p->from)) { + LOG_DEBUG("Ignoring incoming message, 0x%x is in our ignore list\n", p->from); + packetPool.release(p); + return; + } - if (ignore) { - LOG_DEBUG("Ignoring incoming message, 0x%x is in our ignore list or came via MQTT\n", p->from); - } else if (ignore |= shouldFilterReceived(p)) { - LOG_DEBUG("Incoming message was filtered 0x%x\n", p->from); + if (config.lora.ignore_mqtt && p->via_mqtt) { + LOG_DEBUG("Message came in via MQTT from 0x%x\n", p->from); + packetPool.release(p); + return; + } + + if (shouldFilterReceived(p)) { + LOG_DEBUG("Incoming message was filtered from 0x%x\n", p->from); + packetPool.release(p); + return; } // Note: we avoid calling shouldFilterReceived if we are supposed to ignore certain nodes - because some overrides might // cache/learn of the existence of nodes (i.e. FloodRouter) that they should not - if (!ignore) - handleReceived(p); - + handleReceived(p); packetPool.release(p); } From 837c4e9e7ba89efaeefca6bc6fb8cd1446f66f3e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 09:33:57 -0500 Subject: [PATCH 3/4] [create-pull-request] automated change (#4461) Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com> --- protobufs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/protobufs b/protobufs index c9ca0dbe9..666b481ae 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit c9ca0dbe9cc7105399e0486c07e0601f849b94af +Subproject commit 666b481ae02f1f88ec30f10a2d80184b31c0fc4e From efc27f205106f7caf7b1541b64770e98e8b40872 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 Aug 2024 16:24:28 -0500 Subject: [PATCH 4/4] Initial telemetry with time and variant tags (#4463) --- src/modules/Telemetry/DeviceTelemetry.cpp | 3 +-- src/modules/Telemetry/EnvironmentTelemetry.cpp | 2 ++ src/modules/Telemetry/PowerTelemetry.cpp | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/modules/Telemetry/DeviceTelemetry.cpp b/src/modules/Telemetry/DeviceTelemetry.cpp index 4bde73f41..4b4869341 100644 --- a/src/modules/Telemetry/DeviceTelemetry.cpp +++ b/src/modules/Telemetry/DeviceTelemetry.cpp @@ -80,9 +80,8 @@ meshtastic_MeshPacket *DeviceTelemetryModule::allocReply() meshtastic_Telemetry DeviceTelemetryModule::getDeviceTelemetry() { meshtastic_Telemetry t = meshtastic_Telemetry_init_zero; - - t.time = getTime(); t.which_variant = meshtastic_Telemetry_device_metrics_tag; + t.time = getTime(); t.variant.device_metrics.air_util_tx = airTime->utilizationTXPercent(); #if ARCH_PORTDUINO t.variant.device_metrics.battery_level = MAGIC_USB_BATTERY_LEVEL; diff --git a/src/modules/Telemetry/EnvironmentTelemetry.cpp b/src/modules/Telemetry/EnvironmentTelemetry.cpp index a100d1ef5..db56fb1a5 100644 --- a/src/modules/Telemetry/EnvironmentTelemetry.cpp +++ b/src/modules/Telemetry/EnvironmentTelemetry.cpp @@ -418,6 +418,8 @@ meshtastic_MeshPacket *EnvironmentTelemetryModule::allocReply() bool EnvironmentTelemetryModule::sendTelemetry(NodeNum dest, bool phoneOnly) { meshtastic_Telemetry m = meshtastic_Telemetry_init_zero; + m.which_variant = meshtastic_Telemetry_environment_metrics_tag; + m.time = getTime(); #ifdef T1000X_SENSOR_EN if (t1000xSensor.getMetrics(&m)) { #else diff --git a/src/modules/Telemetry/PowerTelemetry.cpp b/src/modules/Telemetry/PowerTelemetry.cpp index 90371780f..318acf456 100644 --- a/src/modules/Telemetry/PowerTelemetry.cpp +++ b/src/modules/Telemetry/PowerTelemetry.cpp @@ -222,6 +222,8 @@ meshtastic_MeshPacket *PowerTelemetryModule::allocReply() bool PowerTelemetryModule::sendTelemetry(NodeNum dest, bool phoneOnly) { meshtastic_Telemetry m = meshtastic_Telemetry_init_zero; + m.which_variant = meshtastic_Telemetry_power_metrics_tag; + m.time = getTime(); if (getPowerTelemetry(&m)) { LOG_INFO("(Sending): ch1_voltage=%f, ch1_current=%f, ch2_voltage=%f, ch2_current=%f, " "ch3_voltage=%f, ch3_current=%f\n",