From 0b222a3ce1637eb3dbea610236fcc88f0ccfacb8 Mon Sep 17 00:00:00 2001 From: Marat Fayzullin Date: Wed, 27 Sep 2023 21:09:14 -0400 Subject: [PATCH] Added TTL to aircraft markers, updated ADSB display. --- htdocs/lib/MapMarkers.js | 6 +++++- htdocs/lib/MessagePanel.js | 8 ++++---- owrx/aircraft.py | 8 ++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/htdocs/lib/MapMarkers.js b/htdocs/lib/MapMarkers.js index 62a4e60d..828753db 100644 --- a/htdocs/lib/MapMarkers.js +++ b/htdocs/lib/MapMarkers.js @@ -109,7 +109,10 @@ MarkerManager.prototype.ageAll = function() { var now = new Date().getTime(); var data = this.markers; $.each(data, function(id, x) { - if (!x.age(now - x.lastseen)) delete data[id]; + if (x.ttl && now >= x.ttl) + delete data[id]; + else if (x.lastseen && !x.age(now - x.lastseen)) + delete data[id]; }); }; @@ -651,6 +654,7 @@ AircraftMarker.prototype = new Marker(); AircraftMarker.prototype.update = function(update) { this.lastseen = update.lastseen; + this.ttl = update.ttl; this.mode = update.mode; this.comment = update.location.comment; // HFDL, ACARS, VDL2, ADSB diff --git a/htdocs/lib/MessagePanel.js b/htdocs/lib/MessagePanel.js index 5b961f8f..4b8e4999 100644 --- a/htdocs/lib/MessagePanel.js +++ b/htdocs/lib/MessagePanel.js @@ -523,10 +523,10 @@ AdsbMessagePanel.prototype.render = function() { 'Flight' + 'Aircraft' + 'Squawk' + - 'Dist (km)' + + 'Dist' + 'Alt (ft)' + 'Speed (kt)' + - 'Sig (dB)' + + 'Signal' + '' + '' + '' @@ -542,7 +542,7 @@ AdsbMessagePanel.prototype.pushMessage = function(msg) { var odd = false; msg.aircraft.forEach(entry => { // Signal strength - var rssi = entry.rssi? entry.rssi : ''; + var rssi = entry.rssi? entry.rssi + ' dB' : ''; // Flight identificators var flight = @@ -583,7 +583,7 @@ AdsbMessagePanel.prototype.pushMessage = function(msg) { : entry.flight? entry.flight : null; - distance = this.distanceKm(entry, this.receiver_pos); + distance = this.distanceKm(entry, this.receiver_pos) + ' km'; if (id) distance = this.linkToMap(id, distance); } diff --git a/owrx/aircraft.py b/owrx/aircraft.py index 4d291941..b36f93c1 100644 --- a/owrx/aircraft.py +++ b/owrx/aircraft.py @@ -34,9 +34,9 @@ MODE_S_FORMATS = [ ADSB_CATEGORIES = { "A0": (0, 0), # No ADS-B emitter category information "A1": (3, 0), # Light (< 15500 lbs) - "A2": (5, 0), # Small (15500 to 75000 lbs) - "A3": (4, 0), # Large (75000 to 300000 lbs) - "A4": (0, 0), # High vortex large (aircraft such as B-757) + "A2": (4, 1), # Small (15500 to 75000 lbs) + "A3": (5, 0), # Large (75000 to 300000 lbs) + "A4": (4, 0), # High vortex large (aircraft such as B-757) "A5": (1, 7), # Heavy (> 300000 lbs) "A6": (7, 0), # High performance (> 5g acceleration and 400 kts) "A7": (6, 5), # Rotorcraft, regardless of weight @@ -81,7 +81,7 @@ class AircraftLocation(LatLngLocation): # Add APRS-like aircraft symbol (red or blue, depending on mode) res["symbol"] = { "x": 0, "y": 0 } # Convert aircraft-specific data into APRS-like data - for x in ["icao", "aircraft", "flight", "speed", "altitude", "course", "destination", "origin", "vspeed", "squawk", "rssi", "msglog"]: + for x in ["ttl", "icao", "aircraft", "flight", "speed", "altitude", "course", "destination", "origin", "vspeed", "squawk", "rssi", "msglog"]: if x in self.data: res[x] = self.data[x] # Return APRS-like dictionary object