From 42330d73090a3df35d331e4704b0e6281d43816a Mon Sep 17 00:00:00 2001 From: Matthias Wirth Date: Tue, 15 Oct 2019 17:04:36 +0200 Subject: [PATCH] web interface stability improvements --- html/planeObject.js | 6 ++--- html/script.js | 59 +++++++++++++++++++++++++++------------------ 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/html/planeObject.js b/html/planeObject.js index de4d211..e48372a 100644 --- a/html/planeObject.js +++ b/html/planeObject.js @@ -157,7 +157,7 @@ var badDot = new ol.style.Style({ }); PlaneObject.prototype.logSel = function(loggable) { - if (debug && this.selected && !SelectedAllPlanes) + if (debugTracks && this.selected && !SelectedAllPlanes) console.log(loggable); return; } @@ -265,7 +265,7 @@ PlaneObject.prototype.updateTrack = function(now, last) { if (positionFilter && derivedMach > filterSpeed && this.too_fast < 1) { this.bad_position = this.position; this.too_fast++; - if (debug) { + if (debugTracks) { console.log(this.icao + " / " + this.name + " ("+ this.dataSource + "): Implausible position filtered: " + this.bad_position[0] + ", " + this.bad_position[1] + " (Mach " + derivedMach.toFixed(1) + ") (" + (this.position_time - this.prev_time + 0.2).toFixed(1) + "s)"); } this.position = this.prev_position; @@ -961,7 +961,7 @@ PlaneObject.prototype.updateMarker = function(moved) { PlaneObject.prototype.altitudeLines = function(altitude) { var colorArr = this.getAltitudeColor(altitude); var color = 'hsl(' + colorArr[0].toFixed(0) + ',' + colorArr[1].toFixed(0) + '%,' + colorArr[2].toFixed(0) + '%)'; - if (!debug) { + if (!debugTracks) { return new ol.style.Style({ stroke: new ol.style.Stroke({ color: color, diff --git a/html/script.js b/html/script.js index 84c85af..0d08d97 100644 --- a/html/script.js +++ b/html/script.js @@ -27,7 +27,7 @@ var loadFinished = false; var mapResizeTimeout; var refresh; var scaleFactor; -var debug = false; +var debugTracks = false; var debugAll = false; var trackLabels = false; var fragment; @@ -44,6 +44,9 @@ var tableInView = false; var historyOutdated = false; var filterMLAT = false; var sidebar_width = 450; +var fetchingPf = false; +var reaping = false; +var debug = false; var SpecialSquawks = { '7500' : { cssClass: 'squawk7500', markerColor: 'rgb(255, 85, 85)', text: 'Aircraft Hijacking' }, @@ -230,9 +233,6 @@ function setupPlane(hex, plane) { } function fetchData() { - var center = ol.proj.toLonLat(OLMap.getView().getCenter(), OLMap.getView().getProjection()); - localStorage['CenterLon'] = CenterLon = center[0]; - localStorage['CenterLat'] = CenterLat = center[1]; if (FetchPending != null) { // don't double up on fetches, let the last one resolve return; @@ -241,6 +241,10 @@ function fetchData() { // don't double up on fetches, let the last one resolve return; } + FetchPending = true; + var center = ol.proj.toLonLat(OLMap.getView().getCenter(), OLMap.getView().getProjection()); + localStorage['CenterLon'] = CenterLon = center[0]; + localStorage['CenterLat'] = CenterLat = center[1]; var item; var tryAgain = []; @@ -536,14 +540,14 @@ function init_page() { } $('#debug_checkbox').on('click', function() { - toggleDebug(); + toggleDebugTracks(); }); - if (localStorage['debug'] === "true") { - debug = true; + if (localStorage['debugTracks'] === "true") { + debugTracks = true; $('#debug_checkbox').addClass('settingsCheckboxChecked'); } else { - debug = false; + debugTracks = false; $('#debug_checkbox').removeClass('settingsCheckboxChecked'); } @@ -1039,10 +1043,16 @@ function initialize_map() { toggleExtendedLabels(); break; case "M": - toggleFilterMLAT(); + filterMLAT = !filterMLAT; break; case "T": - toggleFilterTISB(); + filterTISB = !filterTISB; + break; + case "P": + debugPosFilter = !debugPosFilter; + break; + case "D": + debug = !debug; break; case "k": toggleTrackLabels(); @@ -1188,6 +1198,9 @@ function createSiteCircleFeatures() { // This looks for planes to reap out of the master Planes variable function reaper(all) { //console.log("Reaping started.."); + if (reaping) + return; + reaping = true; // Look for planes where we have seen no messages for >300 seconds var newPlanes = []; @@ -1206,6 +1219,7 @@ function reaper(all) { }; PlanesOrdered = newPlanes; + reaping = false; } // Page Title update function @@ -1610,7 +1624,7 @@ function refreshTableInfo() { } - if (tableplane.seen >= 58 || tableplane.isFiltered()) { + if (tableplane.seen == null || tableplane.seen >= 58 || tableplane.isFiltered()) { classes = "plane_table_row hidden"; } else if (mapIsVisible && tableInView && (!inView || !tableplane.visible) && !(tableplane.selected && !SelectedAllPlanes)) { TrackedAircraft++; @@ -2240,14 +2254,14 @@ function toggleDebugAll() { } } -function toggleDebug() { - if (localStorage['debug'] === "true") { - debug = false; - localStorage['debug'] = "false"; +function toggleDebugTracks() { + if (localStorage['debugTracks'] === "true") { + debugTracks = false; + localStorage['debugTracks'] = "false"; $('#debug_checkbox').removeClass('settingsCheckboxChecked'); } else { - debug = true; - localStorage['debug'] = "true"; + debugTracks = true; + localStorage['debugTracks'] = "true"; $('#debug_checkbox').addClass('settingsCheckboxChecked'); } for (var i in PlanesOrdered) { @@ -2372,13 +2386,6 @@ function toggleExtendedLabels() { PlanesOrdered[key].updateMarker(false); } } -function toggleFilterMLAT() { - filterMLAT = !filterMLAT; -} - -function toggleFilterTISB() { - filterTISB = !filterTISB; -} function toggleTrackLabels() { trackLabels = !trackLabels; @@ -2517,6 +2524,9 @@ function updatePiAwareOrFlightFeeder() { } function fetchPfData() { + if (fetchingPf) + return; + fetchingPf = true; for (const i in pf_data) { const req = $.ajax({ url: pf_data[i], timeout: 20000, @@ -2548,6 +2558,7 @@ function fetchPfData() { } } + fetchingPf = false; }); } }