Skip to content

Commit 350c0e5

Browse files
authored
Merge pull request projecthorus#42 from projecthorus/testing
Push changes from testing to main
2 parents 44352c2 + 71a706c commit 350c0e5

File tree

1 file changed

+105
-170
lines changed

1 file changed

+105
-170
lines changed

js/tracker.js

Lines changed: 105 additions & 170 deletions
Original file line numberDiff line numberDiff line change
@@ -2619,6 +2619,98 @@ function graphAddPosition(vcallsign, new_data) {
26192619
}
26202620
}
26212621

2622+
function formatData(data) {
2623+
var response = {};
2624+
response.positions = {};
2625+
var dataTemp = [];
2626+
for (var i = data.length - 1; i >= 0; i--) {
2627+
if (data[i].hasOwnProperty('subtype')) {
2628+
if (data[i].subtype != "SondehubV1") {
2629+
var dataTempEntry = {};
2630+
var station = data[i].uploader_callsign;
2631+
dataTempEntry.callsign = {};
2632+
dataTempEntry.callsign[station] = {};
2633+
if (data[i].snr) {
2634+
dataTempEntry.callsign[station].snr = data[i].snr;
2635+
}
2636+
if (data[i].rssi) {
2637+
dataTempEntry.callsign[station].rssi = data[i].rssi;
2638+
}
2639+
dataTempEntry.gps_alt = data[i].alt;
2640+
dataTempEntry.gps_lat = data[i].lat;
2641+
dataTempEntry.gps_lon = data[i].lon;
2642+
if (data[i].heading) {
2643+
dataTempEntry.gps_heading = data[i].heading;
2644+
}
2645+
dataTempEntry.gps_time = data[i].datetime;
2646+
dataTempEntry.server_time = data[i].datetime;
2647+
dataTempEntry.vehicle = data[i].serial;
2648+
dataTempEntry.position_id = data[i].serial + "-" + data[i].datetime;
2649+
dataTempEntry.data = {};
2650+
if (data[i].batt) {
2651+
dataTempEntry.data.batt = data[i].batt;
2652+
}
2653+
if (data[i].burst_timer) {
2654+
dataTempEntry.data.burst_timer = data[i].burst_timer;
2655+
}
2656+
if (data[i].frequency) {
2657+
dataTempEntry.data.burst_timer = data[i].frequency;
2658+
}
2659+
if (data[i].humidity) {
2660+
dataTempEntry.data.humidity = data[i].humidity;
2661+
}
2662+
if (data[i].manufacturer) {
2663+
dataTempEntry.data.manufacturer = data[i].manufacturer;
2664+
}
2665+
if (data[i].sats) {
2666+
dataTempEntry.data.sats = data[i].sats;
2667+
}
2668+
if (data[i].temp) {
2669+
dataTempEntry.data.temperature_external = data[i].temp;
2670+
}
2671+
if (data[i].type) {
2672+
dataTempEntry.data.type = data[i].type;
2673+
dataTempEntry.type = data[i].type;
2674+
}
2675+
if (data[i].subtype) {
2676+
dataTempEntry.data.type = data[i].subtype;
2677+
dataTempEntry.type = data[i].subtype;
2678+
}
2679+
if (data[i].pressure) {
2680+
dataTempEntry.data.pressure = data[i].pressure;
2681+
}
2682+
if (data[i].xdata) {
2683+
dataTempEntry.data.xdata = data[i].xdata;
2684+
}
2685+
dataTemp.push(dataTempEntry);
2686+
} else {
2687+
var dataTempEntry = {};
2688+
var station = data[i].uploader_callsign;
2689+
dataTempEntry.callsign = {};
2690+
dataTempEntry.callsign[station] = {};
2691+
dataTempEntry.gps_alt = parseFloat(data[i].alt);
2692+
dataTempEntry.gps_lat = parseFloat(data[i].lat);
2693+
dataTempEntry.gps_lon = parseFloat(data[i].lon);
2694+
dataTempEntry.gps_time = data[i].time_received;
2695+
dataTempEntry.server_time = data[i].time_received;
2696+
dataTempEntry.vehicle = data[i].serial;
2697+
dataTempEntry.position_id = data[i].serial + "-" + data[i].time_received;
2698+
dataTempEntry.data = {};
2699+
if (data[i].humidity) {
2700+
dataTempEntry.data.humidity = parseFloat(data[i].humidity);
2701+
}
2702+
if (data[i].temp) {
2703+
dataTempEntry.data.temperature_external = parseFloat(data[i].temp);
2704+
}
2705+
dataTemp.push(dataTempEntry);
2706+
}
2707+
}
2708+
}
2709+
response.positions.position = dataTemp;
2710+
response.fetch_timestamp = Date.now();
2711+
return response;
2712+
}
2713+
26222714
var ajax_positions = null;
26232715
var ajax_positions_single = null;
26242716
var ajax_positions_old = null;
@@ -2632,29 +2724,22 @@ function refresh() {
26322724
periodical = setTimeout(refresh, 2000);
26332725
return;
26342726
}
2635-
2727+
26362728
if (ajax_inprogress_old != wvar.query) {
2637-
document.getElementById("timeperiod").disabled = false;
2729+
document.getElementById("timeperiod").disabled = false;
26382730
}
26392731

26402732
ajax_inprogress = true;
26412733

26422734
$("#stText").text("checking |");
26432735

2644-
if(/[a-z0-9]{32}/ig.exec(wvar.query)) {
2645-
initHabitat();
2646-
return;
2647-
}
2648-
26492736
var mode = wvar.mode.toLowerCase();
26502737
mode = (mode == "position") ? "latest" : mode.replace(/ /g,"");
26512738

2652-
if (wvar.query) {
2653-
if (sondePrefix.indexOf(wvar.query) > -1) {
2654-
var data_str = "mode="+mode+"&type=positions&format=json&max_positions=" + max_positions + "&position_id=" + position_id + "&vehicles=";
2655-
} else {
2656-
var data_str = "mode=3days&type=positions&format=json&max_positions=" + max_positions + "&position_id=0&vehicles=" + encodeURIComponent(wvar.query);
2657-
}
2739+
if (wvar.query && sondePrefix.indexOf(wvar.query) > -1) {
2740+
var data_str = "mode="+mode+"&type=positions&format=json&max_positions=" + max_positions + "&position_id=0";
2741+
} else if (wvar.query) {
2742+
var data_str = "mode=3days&type=positions&format=json&max_positions=" + max_positions + "&position_id=0&vehicles=" + encodeURIComponent(wvar.query);
26582743
} else {
26592744
var data_str = "mode="+mode+"&type=positions&format=json&max_positions=" + max_positions + "&position_id=" + position_id + "&vehicles=" + encodeURIComponent(wvar.query);
26602745
}
@@ -2667,10 +2752,7 @@ function refresh() {
26672752
success: function(response, textStatus) {
26682753
$("#stText").text("loading |");
26692754
response.fetch_timestamp = Date.now();
2670-
if (sondePrefix.indexOf(wvar.query) > -1) {
2671-
ajax_inprogress_old = "none";
2672-
update(response);
2673-
} else if (wvar.query != null) {
2755+
if (wvar.query && sondePrefix.indexOf(wvar.query) == -1) {
26742756
if (JSON.stringify(response).indexOf(wvar.query) == -1) {
26752757
//check using new API
26762758
ajax_inprogress = false;
@@ -2689,14 +2771,11 @@ function refresh() {
26892771
error: function() {
26902772
$("#stText").text("error |");
26912773

2692-
if(!zoomed_in && offline.get('opt_offline')) {
2693-
var data = offline.get('positions');
2694-
update(data);
2695-
$("#stText").text("no connection |");
2696-
$("#stTimer").attr("data-timestamp", data.fetch_timestamp);
2697-
}
2698-
26992774
ajax_inprogress = false;
2775+
2776+
if (ajax_inprogress_old != wvar.query) {
2777+
document.getElementById("timeperiod").disabled = false;
2778+
}
27002779
},
27012780
complete: function(request, textStatus) {
27022781
if (ajax_inprogress_old != wvar.query) {
@@ -2753,7 +2832,7 @@ function refreshSingle(serial, first) {
27532832
},
27542833
complete: function(request, textStatus) {
27552834
clearTimeout(periodical_focus);
2756-
periodical_focus = setTimeout(refreshSingle, timer_seconds_focus * 1000, serial);
2835+
periodical_focus = setTimeout(refreshSingle, timer_seconds * 1000, serial);
27572836
}
27582837
});
27592838
}
@@ -2775,84 +2854,7 @@ function refreshSingleOld(serial) {
27752854
url: data_url,
27762855
dataType: "json",
27772856
success: function(data, textStatus) {
2778-
var response = {};
2779-
response.positions = {};
2780-
var dataTemp = [];
2781-
for (var i = data.length - 1; i >= 0; i--) {
2782-
if (data[i].hasOwnProperty('subtype')) {
2783-
if (data[i].subtype != "SondehubV1") {
2784-
var dataTempEntry = {};
2785-
var station = data[i].uploader_callsign;
2786-
dataTempEntry.callsign = {};
2787-
dataTempEntry.callsign[station] = {};
2788-
dataTempEntry.callsign[station].snr = data[i].snr;
2789-
dataTempEntry.callsign[station].rssi = data[i].rssi;
2790-
dataTempEntry.gps_alt = data[i].alt;
2791-
dataTempEntry.gps_heading = data[i].heading;
2792-
dataTempEntry.gps_lat = data[i].lat;
2793-
dataTempEntry.gps_lon = data[i].lon;
2794-
dataTempEntry.gps_time = data[i].datetime;
2795-
dataTempEntry.server_time = data[i].datetime;
2796-
dataTempEntry.vehicle = data[i].serial;
2797-
dataTempEntry.position_id = data[i].serial + "-" + data[i].datetime;
2798-
dataTempEntry.data = {};
2799-
if (data[i].batt) {
2800-
dataTempEntry.data.batt = data[i].batt;
2801-
}
2802-
if (data[i].burst_timer) {
2803-
dataTempEntry.data.burst_timer = data[i].burst_timer;
2804-
}
2805-
if (data[i].frequency) {
2806-
dataTempEntry.data.burst_timer = data[i].frequency;
2807-
}
2808-
if (data[i].humidity) {
2809-
dataTempEntry.data.humidity = data[i].humidity;
2810-
}
2811-
if (data[i].manufacturer) {
2812-
dataTempEntry.data.manufacturer = data[i].manufacturer;
2813-
}
2814-
if (data[i].sats) {
2815-
dataTempEntry.data.sats = data[i].sats;
2816-
}
2817-
if (data[i].temp) {
2818-
dataTempEntry.data.temperature_external = data[i].temp;
2819-
}
2820-
if (data[i].type) {
2821-
dataTempEntry.data.type = data[i].type;
2822-
dataTempEntry.type = data[i].type;
2823-
}
2824-
if (data[i].pressure) {
2825-
dataTempEntry.data.pressure = data[i].pressure;
2826-
}
2827-
if (data[i].xdata) {
2828-
dataTempEntry.data.xdata = data[i].xdata;
2829-
}
2830-
dataTemp.push(dataTempEntry);
2831-
} else {
2832-
var dataTempEntry = {};
2833-
var station = data[i].uploader_callsign;
2834-
dataTempEntry.callsign = {};
2835-
dataTempEntry.callsign[station] = {};
2836-
dataTempEntry.gps_alt = parseFloat(data[i].alt);
2837-
dataTempEntry.gps_lat = parseFloat(data[i].lat);
2838-
dataTempEntry.gps_lon = parseFloat(data[i].lon);
2839-
dataTempEntry.gps_time = data[i].time_received;
2840-
dataTempEntry.server_time = data[i].time_received;
2841-
dataTempEntry.vehicle = data[i].serial;
2842-
dataTempEntry.position_id = data[i].serial + "-" + data[i].time_received;
2843-
dataTempEntry.data = {};
2844-
if (data[i].humidity) {
2845-
dataTempEntry.data.humidity = parseFloat(data[i].humidity);
2846-
}
2847-
if (data[i].temp) {
2848-
dataTempEntry.data.temperature_external = parseFloat(data[i].temp);
2849-
}
2850-
dataTemp.push(dataTempEntry);
2851-
}
2852-
}
2853-
}
2854-
response.positions.position = dataTemp;
2855-
response.fetch_timestamp = Date.now();
2857+
response = formatData(data);
28562858
if (response.positions.position.length == 0) {
28572859
update(response);
28582860
} else {
@@ -3056,76 +3058,9 @@ function habitat_payload_step(remove_current) {
30563058
});
30573059
}
30583060

3059-
function initHabitat() {
3060-
$("#stText").text("loading |");
3061-
3062-
habitat_payload_step_data = {
3063-
idx: 0,
3064-
payloads: [],
3065-
};
3066-
var habitat_docs = [];
3067-
3068-
wvar.query.split(";").forEach(function(v) {
3069-
v = v.trim();
3070-
if(/^[a-z0-9]{32}$/ig.exec(v)) habitat_docs.push(v);
3071-
})
3072-
3073-
habitat_doc_step(habitat_docs);
3074-
}
3075-
3076-
3077-
function habitat_doc_step(hab_docs) {
3078-
var docid = hab_docs.shift();
3079-
3080-
ajax_positions = $.ajax({
3081-
type: "GET",
3082-
url: habitat_url + docid,
3083-
data: "",
3084-
dataType: "json",
3085-
success: function(response, textStatus) {
3086-
if(response.type == "flight") {
3087-
if(response.payloads.length > 0) {
3088-
ts_start = convert_time(response.start) / 1000;
3089-
ts_end = convert_time(response.end) / 1000;
3090-
3091-
3092-
response.payloads.forEach( function(payload_id) {
3093-
var url = habitat_url_payload_telemetry.replace(/\{ID\}/g, payload_id);
3094-
url = url.replace("{START}", ts_start).replace("{END}", ts_end);
3095-
3096-
habitat_payload_step_data.payloads.push({
3097-
prefix: response._id.substr(-4) + "/",
3098-
url: url,
3099-
skip: 0,
3100-
});
3101-
});
3102-
}
3103-
}
3104-
else {
3105-
if(hab_docs.length === 0) update(null);
3106-
console.error("tracker: docid", docid, " is not a flight_doc");
3107-
}
3108-
3109-
if(hab_docs.length === 0) {
3110-
habitat_payload_step();
3111-
} else {
3112-
habitat_doc_step(hab_docs);
3113-
}
3114-
},
3115-
error: function() {
3116-
if(hab_docs.length === 0) update(null);
3117-
console.error("tracker: error trying to load docid", docid);
3118-
},
3119-
complete: function(request, textStatus) {
3120-
}
3121-
});
3122-
}
3123-
3124-
31253061
var periodical, periodical_focus, periodical_receivers, periodical_recoveries;
31263062
var periodical_predictions = null;
31273063
var timer_seconds = 5;
3128-
var timer_seconds_focus = 1;
31293064

31303065
function startAjax() {
31313066
// prevent insane clicks to start numerous requests

0 commit comments

Comments
 (0)