paulmandal / atak-forwarder

Forwards packets to/from ATAK over an off-grid communication layer
MIT License
404 stars 42 forks source link

Tracker: absent units keep being advertised eternally #88

Closed a-f-G-U-C closed 3 years ago

a-f-G-U-C commented 3 years ago

After a tracker leaves the network and becomes stale, the Forwarder plugin keeps broadcasting that tracker's PLI at the last location, using stale CoT packets based on the time of last activity.

Example:

09-01 23:32:03.998 31437 31698 V FWDDBG.TrackerCotGenerator: drawTracker() callsign: K************, meshId: !99999999, atakUid: null
09-01 23:32:03.999 31437 31698 V FWDDBG.TrackerCotGenerator:   Tracker last seen: 8817144ms ago vs. trackerStaleTime: 300000, drawing stale: true

As far as I can tell, this stale point broadcast is repeated infinitely.

Why this is a problem

  1. creates visual clutter that is neither informative nor actionable
  2. creates unneeded network traffic
  3. gives the team incorrect information due to detail panel still showing the item as "Last report: 0m XXs ago" (time when last CoT packet was received) even though the actual icon is greyed out
  4. the tracker icon can't be deleted from screen - it comes back on every drawTracker() cycle
  5. the only way (that I know) to get rid of the stale icon is to restart ATAK

Suggestion: do not publish CoTs for stale trackers - just set the stale timestamp correctly based on the user preference, and let ATAK fade them organically.

paulmandal commented 3 years ago

Fixed by https://github.com/paulmandal/atak-forwarder/pull/90