From fbecaa46881d20f2be2ff3f84e43663701a3572d Mon Sep 17 00:00:00 2001 From: Matthias Wirth Date: Fri, 26 Mar 2021 15:28:59 +0100 Subject: [PATCH] message rate for uuid stuff --- html/early.js | 1 + html/script.js | 26 +++++++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/html/early.js b/html/early.js index d9b1436..30f8306 100644 --- a/html/early.js +++ b/html/early.js @@ -39,6 +39,7 @@ let initialURL = window.location.href; let milRanges = []; let uuid = null; +let uuidCache = []; let usp; try { diff --git a/html/script.js b/html/script.js index 8a3f3d3..7518814 100644 --- a/html/script.js +++ b/html/script.js @@ -365,9 +365,10 @@ function fetchData(options) { url: ac_url[i], method: 'GET', xhr: function() { return xhrOverride; }, timeout: 5000, + urlIndex: i, }); } else { - req = $.ajax({ url: ac_url[i], dataType: 'json' }); + req = $.ajax({ url: ac_url[i], dataType: 'json', urlIndex: i }); } FetchPending.push(req); @@ -379,6 +380,7 @@ function fetchData(options) { data = { buffer: data, }; wqi(data); } + data.urlIndex = this.urlIndex; //console.time("Process " + data.globeIndex); processReceiverUpdate(data); @@ -5981,7 +5983,7 @@ function drawTileBorder(data) { } function updateMessageRate(data) { - if (data.messages && uuid == null) { + if (data.messages && data.messages > 1) { // Detect stats reset if (MessageCountHistory.length > 0 && MessageCountHistory[MessageCountHistory.length-1].messages > data.messages) { MessageCountHistory = []; @@ -6001,17 +6003,27 @@ function updateMessageRate(data) { if ((now - MessageCountHistory[0].time) > 10) MessageCountHistory.shift(); } else if (uuid != null) { - let time_delta = now - last; + const cache = uuidCache[data.urlIndex] || { now: 0 }; + let time_delta = now - cache.now; if (time_delta > 0.5) { + let newCache = uuidCache[data.urlIndex] = { now: now }; let message_delta = 0; let acs = data.aircraft; for (let j=0; j < acs.length; j++) { - let plane = Planes[acs[j].hex] - if (plane) { - message_delta += (acs[j].messages - plane.messages); + const hex = acs[j].hex; + const messages = acs[j].messages + let cachedMessages = cache[hex]; + if (cachedMessages) { + message_delta += (messages - cachedMessages); } + newCache[hex] = messages; } - MessageRate = message_delta / time_delta; + newCache.rate = message_delta / time_delta; + } + MessageRate = 0; + for (let i in uuidCache) { + const c = uuidCache[i]; + MessageRate += c ? c.rate : 0; } } else { MessageRate = null;