diff --git a/src/mesh/Channels.cpp b/src/mesh/Channels.cpp index 4dcd94e3b..cb55a7a41 100644 --- a/src/mesh/Channels.cpp +++ b/src/mesh/Channels.cpp @@ -134,7 +134,11 @@ void Channels::initDefaultChannel(ChannelIndex chIndex) channelSettings.psk.bytes[0] = defaultpskIndex; channelSettings.psk.size = 1; strncpy(channelSettings.name, "", sizeof(channelSettings.name)); - channelSettings.module_settings.position_precision = 13; // default to sending location on the primary channel + if (config.device.role == meshtastic_Config_DeviceConfig_Role_LOST_AND_FOUND) { + channelSettings.module_settings.position_precision = 32; // lost and found defaults to full precision + } else { + channelSettings.module_settings.position_precision = 13; // default to sending location on the primary channel + } channelSettings.has_module_settings = true; ch.has_settings = true; diff --git a/src/mesh/FloodingRouter.cpp b/src/mesh/FloodingRouter.cpp index 1d8ac247f..03386f2ea 100644 --- a/src/mesh/FloodingRouter.cpp +++ b/src/mesh/FloodingRouter.cpp @@ -118,6 +118,7 @@ void FloodingRouter::perhapsCancelDupe(const meshtastic_MeshPacket *p) bool FloodingRouter::isRebroadcaster() { return config.device.role != meshtastic_Config_DeviceConfig_Role_CLIENT_MUTE && + config.device.role != meshtastic_Config_DeviceConfig_Role_LOST_AND_FOUND && config.device.rebroadcast_mode != meshtastic_Config_DeviceConfig_RebroadcastMode_NONE; } @@ -148,7 +149,7 @@ void FloodingRouter::perhapsRebroadcast(const meshtastic_MeshPacket *p) // Note: we are careful to resend using the original senders node id send(tosend); } else { - LOG_DEBUG("No rebroadcast: Role = CLIENT_MUTE or Rebroadcast Mode = NONE"); + LOG_DEBUG("No rebroadcast: CLIENT_MUTE/LOST_AND_FOUND or Rebroadcast Mode = NONE"); } } else { LOG_DEBUG("Ignore 0 id broadcast");