Files
tar1090/html/early.js

150 lines
4.3 KiB
JavaScript
Raw Normal View History

// This was functionality of script.js, moved it to here to start the downloading of track history earlier
"use strict";
let Dump1090Version = "unknown version";
let RefreshInterval = 1000;
let enable_uat = false;
let enable_pf_data = false;
let HistoryChunks = false;
let nHistoryItems = 0;
let HistoryItemsReturned = 0;
let chunkNames;
let PositionHistoryBuffer = [];
var receiverJson;
let deferHistory = [];
let configureReceiver = $.Deferred();
let historyTimeout = 60;
let globeIndex = 0;
let regCache = {};
let databaseFolder = "db2";
2020-02-23 17:07:36 +01:00
let uuid = null;
try {
const search = new URLSearchParams(window.location.search);
const feed = search.get('feed');
if (feed != null) {
uuid = feed;
console.log('uuid: ' + uuid);
}
2020-02-08 20:32:04 +01:00
const customTiles = search.get('customTiles');
if (customTiles)
localStorage['customTiles'] = customTiles;
if (customTiles == 'remove')
localStorage.removeItem('customTiles');
} catch (error) {
}
// get configuration json files, will be used in initialize function
let get_receiver_defer = $.ajax({ url: 'data/receiver.json',
cache: false,
dataType: 'json'
});
let test_chunk_defer = $.ajax({
url:'chunks/chunks.json',
cache: false,
dataType: 'json'
});
if (uuid != null) {
get_receiver_defer = null;
receiverJson = null;
Dump1090Version = 'unknown';
RefreshInterval = 5000;
configureReceiver.resolve();
console.time("Downloaded History");
} else {
$.when(get_receiver_defer).done(function(data){
get_receiver_defer = null;
receiverJson = data;
Dump1090Version = data.version;
RefreshInterval = data.refresh;
nHistoryItems = (data.history < 2) ? 0 : data.history;
if (data.globeIndexGrid != null) {
HistoryChunks = false;
nHistoryItems = 0;
globeIndex = 1;
get_history();
configureReceiver.resolve();
} else {
$.when(test_chunk_defer).done(function(data) {
HistoryChunks = true;
chunkNames = data.chunks;
nHistoryItems = chunkNames.length;
enable_uat = (data.enable_uat == "true");
enable_pf_data = (data.pf_data == "true");
if (enable_uat)
console.log("UAT/978 enabled!");
console.log("Chunks enabled");
get_history();
configureReceiver.resolve();
}).fail(function() {
HistoryChunks = false;
get_history();
configureReceiver.resolve();
});
}
});
}
function get_history() {
if (!receiverJson.globeIndexGrid) {
nHistoryItems++;
let request = $.ajax({ url: 'data/aircraft.json',
timeout: historyTimeout*800,
cache: false,
dataType: 'json' });
deferHistory.push(request);
if (enable_uat) {
nHistoryItems++;
request = $.ajax({ url: 'chunks/978.json',
timeout: historyTimeout*800,
cache: false,
dataType: 'json' });
deferHistory.push(request);
}
}
if (HistoryChunks) {
if (nHistoryItems > 0) {
console.log("Starting to load history (" + nHistoryItems + " chunks)");
console.time("Downloaded History");
for (let i = chunkNames.length-1; i >= 0; i--) {
get_history_item(i);
}
}
} else if (nHistoryItems > 0) {
console.log("Starting to load history (" + nHistoryItems + " items)");
console.time("Downloaded History");
// Queue up the history file downloads
for (let i = nHistoryItems-1; i >= 0; i--) {
get_history_item(i);
}
}
}
function get_history_item(i) {
let request;
if (HistoryChunks) {
request = $.ajax({ url: 'chunks/' + chunkNames[i],
timeout: historyTimeout * 1000,
dataType: 'json'
});
} else {
request = $.ajax({ url: 'data/history_' + i + '.json',
timeout: nHistoryItems * 80, // Allow 40 ms load time per history entry
cache: false,
dataType: 'json' });
}
deferHistory.push(request);
}