| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Sorry, something went wrong.
When other nodes relay our position via map reports, they send it at reduced precision (e.g., 13 bits). _onPositionReceive() was blindly overwriting our locally-stored high-precision GPS position (32 bits) with these degraded echoes. The fix only protects the local node's position — since we have the GPS internally, any lower-precision update is always an echo from the mesh, never fresh data. Remote node positions are still updated normally, as any position they broadcast reflects their current state. Fixes meshtastic#910 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
I think this looks decent, so I'll go ahead and merge it. Thanks for the contribution! |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Summary
Problem
When other nodes relay our position via map reports at reduced precision (e.g., precisionBits: 13), the library blindly overwrites our locally-stored high-precision GPS position (precisionBits: 32). This causes:
This only affects the local node — since we have the GPS internally, any lower-precision update is always an echo from the mesh, never fresh data. Remote nodes legitimately send their own positions at whatever precision their GPS provides, so those updates should always be accepted.
Fix
Added a check in _onPositionReceive() that detects if the position update is for the local node (by comparing asDict["from"] to iface.myInfo.my_node_num). For the local node only, it compares precisionBits and rejects updates with lower precision. Remote node positions continue to be updated unconditionally.
Test plan
Fixes #910
🤖 Generated with Claude Code