diff --git a/src/mesh/Channels.cpp b/src/mesh/Channels.cpp index 4bdd9e674a..ce3943bf31 100644 --- a/src/mesh/Channels.cpp +++ b/src/mesh/Channels.cpp @@ -105,7 +105,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 e29c596df4..5968e07d26 100644 --- a/src/mesh/FloodingRouter.cpp +++ b/src/mesh/FloodingRouter.cpp @@ -50,6 +50,7 @@ bool FloodingRouter::shouldFilterReceived(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; } @@ -76,7 +77,7 @@ bool FloodingRouter::perhapsRebroadcast(const meshtastic_MeshPacket *p) return true; } 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");