Skip to content

Commit 231bc50

Browse files
committed
works for single sonde again
1 parent deef9dc commit 231bc50

File tree

1 file changed

+137
-52
lines changed

1 file changed

+137
-52
lines changed

js/tracker.js

Lines changed: 137 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2676,82 +2676,162 @@ function formatData(data, live) {
26762676
response.positions = {};
26772677
var dataTemp = [];
26782678
if (live) {
2679-
for (let entry in data) {
2679+
if (data.length) {
2680+
for (let entry in data) {
2681+
var dataTempEntry = {};
2682+
var station = data[entry].uploader_callsign;
2683+
dataTempEntry.callsign = {};
2684+
//check if other stations also received this packet
2685+
if (vehicles.hasOwnProperty(data[entry].serial)) {
2686+
if (data[entry].datetime == vehicles[data[entry].serial].curr_position.gps_time) {
2687+
for (let key in vehicles[data[entry].serial].curr_position.callsign) {
2688+
if (vehicles[data[entry].serial].curr_position.callsign.hasOwnProperty(key)) {
2689+
if (key != station) {
2690+
dataTempEntry.callsign[key] = {};
2691+
if (vehicles[data[entry].serial].curr_position.callsign[key].hasOwnProperty("snr")) {
2692+
dataTempEntry.callsign[key].snr = vehicles[data[entry].serial].curr_position.callsign[key].snr;
2693+
}
2694+
if (vehicles[data[entry].serial].curr_position.callsign[key].hasOwnProperty("rssi")) {
2695+
dataTempEntry.callsign[key].rssi = vehicles[data[entry].serial].curr_position.callsign[key].rssi;
2696+
}
2697+
}
2698+
}
2699+
}
2700+
}
2701+
}
2702+
dataTempEntry.callsign[station] = {};
2703+
if (data[entry].snr) {
2704+
dataTempEntry.callsign[station].snr = data[entry].snr;
2705+
}
2706+
if (data[entry].rssi) {
2707+
dataTempEntry.callsign[station].rssi = data[entry].rssi;
2708+
}
2709+
dataTempEntry.gps_alt = data[entry].alt;
2710+
dataTempEntry.gps_lat = data[entry].lat;
2711+
dataTempEntry.gps_lon = data[entry].lon;
2712+
if (data[entry].heading) {
2713+
dataTempEntry.gps_heading = data[entry].heading;
2714+
}
2715+
dataTempEntry.gps_time = data[entry].datetime;
2716+
dataTempEntry.server_time = data[entry].datetime;
2717+
dataTempEntry.vehicle = data[entry].serial;
2718+
dataTempEntry.position_id = data[entry].serial + "-" + data[entry].datetime;
2719+
dataTempEntry.data = {};
2720+
if (data[entry].batt) {
2721+
dataTempEntry.data.batt = data[entry].batt;
2722+
}
2723+
if (data[entry].burst_timer) {
2724+
dataTempEntry.data.burst_timer = data[entry].burst_timer;
2725+
}
2726+
if (data[entry].frequency) {
2727+
dataTempEntry.data.frequency = data[entry].frequency;
2728+
}
2729+
if (data[entry].humidity) {
2730+
dataTempEntry.data.humidity = data[entry].humidity;
2731+
}
2732+
if (data[entry].manufacturer) {
2733+
dataTempEntry.data.manufacturer = data[entry].manufacturer;
2734+
}
2735+
if (data[entry].sats) {
2736+
dataTempEntry.data.sats = data[entry].sats;
2737+
}
2738+
if (data[entry].temp) {
2739+
dataTempEntry.data.temperature_external = data[entry].temp;
2740+
}
2741+
if (data[entry].type) {
2742+
dataTempEntry.data.type = data[entry].type;
2743+
dataTempEntry.type = data[entry].type;
2744+
}
2745+
if (data[entry].subtype) {
2746+
dataTempEntry.data.type = data[entry].subtype;
2747+
dataTempEntry.type = data[entry].subtype;
2748+
}
2749+
if (data[entry].pressure) {
2750+
dataTempEntry.data.pressure = data[entry].pressure;
2751+
}
2752+
if (data[entry].xdata) {
2753+
dataTempEntry.data.xdata = data[entry].xdata;
2754+
}
2755+
if (data[entry].serial.toLowerCase() != "xxxxxxxx") {
2756+
dataTemp.push(dataTempEntry);
2757+
}
2758+
}
2759+
} else {
26802760
var dataTempEntry = {};
2681-
var station = data[entry].uploader_callsign;
2761+
var station = data.uploader_callsign;
26822762
dataTempEntry.callsign = {};
26832763
//check if other stations also received this packet
2684-
if (vehicles.hasOwnProperty(data[entry].serial)) {
2685-
if (data[entry].datetime == vehicles[data[entry].serial].curr_position.gps_time) {
2686-
for (let key in vehicles[data[entry].serial].curr_position.callsign) {
2687-
if (vehicles[data[entry].serial].curr_position.callsign.hasOwnProperty(key)) {
2764+
if (vehicles.hasOwnProperty(data.serial)) {
2765+
if (data.datetime == vehicles[data.serial].curr_position.gps_time) {
2766+
for (let key in vehicles[data.serial].curr_position.callsign) {
2767+
if (vehicles[data.serial].curr_position.callsign.hasOwnProperty(key)) {
26882768
if (key != station) {
26892769
dataTempEntry.callsign[key] = {};
2690-
if (vehicles[data[entry].serial].curr_position.callsign[key].hasOwnProperty("snr")) {
2691-
dataTempEntry.callsign[key].snr = vehicles[data[entry].serial].curr_position.callsign[key].snr;
2770+
if (vehicles[data.serial].curr_position.callsign[key].hasOwnProperty("snr")) {
2771+
dataTempEntry.callsign[key].snr = vehicles[data.serial].curr_position.callsign[key].snr;
26922772
}
2693-
if (vehicles[data[entry].serial].curr_position.callsign[key].hasOwnProperty("rssi")) {
2694-
dataTempEntry.callsign[key].rssi = vehicles[data[entry].serial].curr_position.callsign[key].rssi;
2773+
if (vehicles[data.serial].curr_position.callsign[key].hasOwnProperty("rssi")) {
2774+
dataTempEntry.callsign[key].rssi = vehicles[data.serial].curr_position.callsign[key].rssi;
26952775
}
26962776
}
26972777
}
26982778
}
26992779
}
27002780
}
27012781
dataTempEntry.callsign[station] = {};
2702-
if (data[entry].snr) {
2703-
dataTempEntry.callsign[station].snr = data[entry].snr;
2704-
}
2705-
if (data[entry].rssi) {
2706-
dataTempEntry.callsign[station].rssi = data[entry].rssi;
2707-
}
2708-
dataTempEntry.gps_alt = data[entry].alt;
2709-
dataTempEntry.gps_lat = data[entry].lat;
2710-
dataTempEntry.gps_lon = data[entry].lon;
2711-
if (data[entry].heading) {
2712-
dataTempEntry.gps_heading = data[entry].heading;
2713-
}
2714-
dataTempEntry.gps_time = data[entry].datetime;
2715-
dataTempEntry.server_time = data[entry].datetime;
2716-
dataTempEntry.vehicle = data[entry].serial;
2717-
dataTempEntry.position_id = data[entry].serial + "-" + data[entry].datetime;
2782+
if (data.snr) {
2783+
dataTempEntry.callsign[station].snr = data.snr;
2784+
}
2785+
if (data.rssi) {
2786+
dataTempEntry.callsign[station].rssi = data.rssi;
2787+
}
2788+
dataTempEntry.gps_alt = data.alt;
2789+
dataTempEntry.gps_lat = data.lat;
2790+
dataTempEntry.gps_lon = data.lon;
2791+
if (data.heading) {
2792+
dataTempEntry.gps_heading = data.heading;
2793+
}
2794+
dataTempEntry.gps_time = data.datetime;
2795+
dataTempEntry.server_time = data.datetime;
2796+
dataTempEntry.vehicle = data.serial;
2797+
dataTempEntry.position_id = data.serial + "-" + data.datetime;
27182798
dataTempEntry.data = {};
2719-
if (data[entry].batt) {
2720-
dataTempEntry.data.batt = data[entry].batt;
2799+
if (data.batt) {
2800+
dataTempEntry.data.batt = data.batt;
27212801
}
2722-
if (data[entry].burst_timer) {
2723-
dataTempEntry.data.burst_timer = data[entry].burst_timer;
2802+
if (data.burst_timer) {
2803+
dataTempEntry.data.burst_timer = data.burst_timer;
27242804
}
2725-
if (data[entry].frequency) {
2726-
dataTempEntry.data.frequency = data[entry].frequency;
2805+
if (data.frequency) {
2806+
dataTempEntry.data.frequency = data.frequency;
27272807
}
2728-
if (data[entry].humidity) {
2729-
dataTempEntry.data.humidity = data[entry].humidity;
2808+
if (data.humidity) {
2809+
dataTempEntry.data.humidity = data.humidity;
27302810
}
2731-
if (data[entry].manufacturer) {
2732-
dataTempEntry.data.manufacturer = data[entry].manufacturer;
2811+
if (data.manufacturer) {
2812+
dataTempEntry.data.manufacturer = data.manufacturer;
27332813
}
2734-
if (data[entry].sats) {
2735-
dataTempEntry.data.sats = data[entry].sats;
2814+
if (data.sats) {
2815+
dataTempEntry.data.sats = data.sats;
27362816
}
2737-
if (data[entry].temp) {
2738-
dataTempEntry.data.temperature_external = data[entry].temp;
2817+
if (data.temp) {
2818+
dataTempEntry.data.temperature_external = data.temp;
27392819
}
2740-
if (data[entry].type) {
2741-
dataTempEntry.data.type = data[entry].type;
2742-
dataTempEntry.type = data[entry].type;
2820+
if (data.type) {
2821+
dataTempEntry.data.type = data.type;
2822+
dataTempEntry.type = data.type;
27432823
}
2744-
if (data[entry].subtype) {
2745-
dataTempEntry.data.type = data[entry].subtype;
2746-
dataTempEntry.type = data[entry].subtype;
2824+
if (data.subtype) {
2825+
dataTempEntry.data.type = data.subtype;
2826+
dataTempEntry.type = data.subtype;
27472827
}
2748-
if (data[entry].pressure) {
2749-
dataTempEntry.data.pressure = data[entry].pressure;
2828+
if (data.pressure) {
2829+
dataTempEntry.data.pressure = data.pressure;
27502830
}
2751-
if (data[entry].xdata) {
2752-
dataTempEntry.data.xdata = data[entry].xdata;
2831+
if (data.xdata) {
2832+
dataTempEntry.data.xdata = data.xdata;
27532833
}
2754-
if (data[entry].serial.toLowerCase() != "xxxxxxxx") {
2834+
if (data.serial.toLowerCase() != "xxxxxxxx") {
27552835
dataTemp.push(dataTempEntry);
27562836
}
27572837
}
@@ -3027,7 +3107,12 @@ function liveData() {
30273107
if (clientActive) {
30283108
var frame = JSON.parse(message.payloadString.toString());
30293109
if (wvar.query == "" || sondePrefix.indexOf(wvar.query) > -1 || wvar.query == frame.serial) {
3030-
if ((dateNow - new Date(frame[frame.length - 1].time_received).getTime()) < 30000) {
3110+
if (frame.length == null) {
3111+
var tempDate = new Date(frame.time_received).getTime();
3112+
} else {
3113+
var tempDate = new Date(frame[frame.length - 1].time_received).getTime()
3114+
}
3115+
if ((dateNow - tempDate) < 30000) {
30313116
var test = formatData(frame, true);
30323117
if (clientActive) {
30333118
live_data_buffer.positions.position.push.apply(live_data_buffer.positions.position,test.positions.position)

0 commit comments

Comments
 (0)