Added new map report opt-in for compliance and limit map report (and default) to one hour (#6813)

* Added new map report opt-in for compliance and limit map report (and default) to one hour

* Trunk
This commit is contained in:
Ben Meadors
2025-05-14 15:31:28 -05:00
committed by GitHub
parent fc64bea698
commit 7cffd9ba70
5 changed files with 12 additions and 4 deletions

View File

@@ -769,7 +769,8 @@ void MQTT::onSend(const meshtastic_MeshPacket &mp_encrypted, const meshtastic_Me
void MQTT::perhapsReportToMap()
{
if (!moduleConfig.mqtt.map_reporting_enabled || !(moduleConfig.mqtt.proxy_to_client_enabled || isConnectedDirectly()))
if (!moduleConfig.mqtt.map_reporting_enabled || !moduleConfig.mqtt.map_report_settings.should_report_location ||
!(moduleConfig.mqtt.proxy_to_client_enabled || isConnectedDirectly()))
return;
if (Throttle::isWithinTimespanMs(last_report_to_map, map_publish_interval_msecs))
@@ -801,6 +802,7 @@ void MQTT::perhapsReportToMap()
mapReport.region = config.lora.region;
mapReport.modem_preset = config.lora.modem_preset;
mapReport.has_default_channel = channels.hasDefaultChannel();
mapReport.has_opted_report_location = true;
// Set position with precision (same as in PositionModule)
if (map_position_precision < 32 && map_position_precision > 0) {

View File

@@ -1,5 +1,6 @@
#pragma once
#include "Default.h"
#include "configuration.h"
#include "concurrency/OSThread.h"
@@ -105,8 +106,7 @@ class MQTT : private concurrency::OSThread
std::string mapTopic = "/2/map/"; // For protobuf-encoded MapReport messages
// For map reporting (only applies when enabled)
const uint32_t default_map_position_precision = 14; // defaults to max. offset of ~1459m
const uint32_t default_map_publish_interval_secs = 60 * 15; // defaults to 15 minutes
const uint32_t default_map_position_precision = 14; // defaults to max. offset of ~1459m
uint32_t last_report_to_map = 0;
uint32_t map_position_precision = default_map_position_precision;
uint32_t map_publish_interval_msecs = default_map_publish_interval_secs * 1000;