Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
189 changes: 137 additions & 52 deletions js/tracker.js
Original file line number Diff line number Diff line change
Expand Up @@ -2676,82 +2676,162 @@ function formatData(data, live) {
response.positions = {};
var dataTemp = [];
if (live) {
for (let entry in data) {
if (data.length) {
for (let entry in data) {
var dataTempEntry = {};
var station = data[entry].uploader_callsign;
dataTempEntry.callsign = {};
//check if other stations also received this packet
if (vehicles.hasOwnProperty(data[entry].serial)) {
if (data[entry].datetime == vehicles[data[entry].serial].curr_position.gps_time) {
for (let key in vehicles[data[entry].serial].curr_position.callsign) {
if (vehicles[data[entry].serial].curr_position.callsign.hasOwnProperty(key)) {
if (key != station) {
dataTempEntry.callsign[key] = {};
if (vehicles[data[entry].serial].curr_position.callsign[key].hasOwnProperty("snr")) {
dataTempEntry.callsign[key].snr = vehicles[data[entry].serial].curr_position.callsign[key].snr;
}
if (vehicles[data[entry].serial].curr_position.callsign[key].hasOwnProperty("rssi")) {
dataTempEntry.callsign[key].rssi = vehicles[data[entry].serial].curr_position.callsign[key].rssi;
}
}
}
}
}
}
dataTempEntry.callsign[station] = {};
if (data[entry].snr) {
dataTempEntry.callsign[station].snr = data[entry].snr;
}
if (data[entry].rssi) {
dataTempEntry.callsign[station].rssi = data[entry].rssi;
}
dataTempEntry.gps_alt = data[entry].alt;
dataTempEntry.gps_lat = data[entry].lat;
dataTempEntry.gps_lon = data[entry].lon;
if (data[entry].heading) {
dataTempEntry.gps_heading = data[entry].heading;
}
dataTempEntry.gps_time = data[entry].datetime;
dataTempEntry.server_time = data[entry].datetime;
dataTempEntry.vehicle = data[entry].serial;
dataTempEntry.position_id = data[entry].serial + "-" + data[entry].datetime;
dataTempEntry.data = {};
if (data[entry].batt) {
dataTempEntry.data.batt = data[entry].batt;
}
if (data[entry].burst_timer) {
dataTempEntry.data.burst_timer = data[entry].burst_timer;
}
if (data[entry].frequency) {
dataTempEntry.data.frequency = data[entry].frequency;
}
if (data[entry].humidity) {
dataTempEntry.data.humidity = data[entry].humidity;
}
if (data[entry].manufacturer) {
dataTempEntry.data.manufacturer = data[entry].manufacturer;
}
if (data[entry].sats) {
dataTempEntry.data.sats = data[entry].sats;
}
if (data[entry].temp) {
dataTempEntry.data.temperature_external = data[entry].temp;
}
if (data[entry].type) {
dataTempEntry.data.type = data[entry].type;
dataTempEntry.type = data[entry].type;
}
if (data[entry].subtype) {
dataTempEntry.data.type = data[entry].subtype;
dataTempEntry.type = data[entry].subtype;
}
if (data[entry].pressure) {
dataTempEntry.data.pressure = data[entry].pressure;
}
if (data[entry].xdata) {
dataTempEntry.data.xdata = data[entry].xdata;
}
if (data[entry].serial.toLowerCase() != "xxxxxxxx") {
dataTemp.push(dataTempEntry);
}
}
} else {
var dataTempEntry = {};
var station = data[entry].uploader_callsign;
var station = data.uploader_callsign;
dataTempEntry.callsign = {};
//check if other stations also received this packet
if (vehicles.hasOwnProperty(data[entry].serial)) {
if (data[entry].datetime == vehicles[data[entry].serial].curr_position.gps_time) {
for (let key in vehicles[data[entry].serial].curr_position.callsign) {
if (vehicles[data[entry].serial].curr_position.callsign.hasOwnProperty(key)) {
if (vehicles.hasOwnProperty(data.serial)) {
if (data.datetime == vehicles[data.serial].curr_position.gps_time) {
for (let key in vehicles[data.serial].curr_position.callsign) {
if (vehicles[data.serial].curr_position.callsign.hasOwnProperty(key)) {
if (key != station) {
dataTempEntry.callsign[key] = {};
if (vehicles[data[entry].serial].curr_position.callsign[key].hasOwnProperty("snr")) {
dataTempEntry.callsign[key].snr = vehicles[data[entry].serial].curr_position.callsign[key].snr;
if (vehicles[data.serial].curr_position.callsign[key].hasOwnProperty("snr")) {
dataTempEntry.callsign[key].snr = vehicles[data.serial].curr_position.callsign[key].snr;
}
if (vehicles[data[entry].serial].curr_position.callsign[key].hasOwnProperty("rssi")) {
dataTempEntry.callsign[key].rssi = vehicles[data[entry].serial].curr_position.callsign[key].rssi;
if (vehicles[data.serial].curr_position.callsign[key].hasOwnProperty("rssi")) {
dataTempEntry.callsign[key].rssi = vehicles[data.serial].curr_position.callsign[key].rssi;
}
}
}
}
}
}
dataTempEntry.callsign[station] = {};
if (data[entry].snr) {
dataTempEntry.callsign[station].snr = data[entry].snr;
}
if (data[entry].rssi) {
dataTempEntry.callsign[station].rssi = data[entry].rssi;
}
dataTempEntry.gps_alt = data[entry].alt;
dataTempEntry.gps_lat = data[entry].lat;
dataTempEntry.gps_lon = data[entry].lon;
if (data[entry].heading) {
dataTempEntry.gps_heading = data[entry].heading;
}
dataTempEntry.gps_time = data[entry].datetime;
dataTempEntry.server_time = data[entry].datetime;
dataTempEntry.vehicle = data[entry].serial;
dataTempEntry.position_id = data[entry].serial + "-" + data[entry].datetime;
if (data.snr) {
dataTempEntry.callsign[station].snr = data.snr;
}
if (data.rssi) {
dataTempEntry.callsign[station].rssi = data.rssi;
}
dataTempEntry.gps_alt = data.alt;
dataTempEntry.gps_lat = data.lat;
dataTempEntry.gps_lon = data.lon;
if (data.heading) {
dataTempEntry.gps_heading = data.heading;
}
dataTempEntry.gps_time = data.datetime;
dataTempEntry.server_time = data.datetime;
dataTempEntry.vehicle = data.serial;
dataTempEntry.position_id = data.serial + "-" + data.datetime;
dataTempEntry.data = {};
if (data[entry].batt) {
dataTempEntry.data.batt = data[entry].batt;
if (data.batt) {
dataTempEntry.data.batt = data.batt;
}
if (data[entry].burst_timer) {
dataTempEntry.data.burst_timer = data[entry].burst_timer;
if (data.burst_timer) {
dataTempEntry.data.burst_timer = data.burst_timer;
}
if (data[entry].frequency) {
dataTempEntry.data.frequency = data[entry].frequency;
if (data.frequency) {
dataTempEntry.data.frequency = data.frequency;
}
if (data[entry].humidity) {
dataTempEntry.data.humidity = data[entry].humidity;
if (data.humidity) {
dataTempEntry.data.humidity = data.humidity;
}
if (data[entry].manufacturer) {
dataTempEntry.data.manufacturer = data[entry].manufacturer;
if (data.manufacturer) {
dataTempEntry.data.manufacturer = data.manufacturer;
}
if (data[entry].sats) {
dataTempEntry.data.sats = data[entry].sats;
if (data.sats) {
dataTempEntry.data.sats = data.sats;
}
if (data[entry].temp) {
dataTempEntry.data.temperature_external = data[entry].temp;
if (data.temp) {
dataTempEntry.data.temperature_external = data.temp;
}
if (data[entry].type) {
dataTempEntry.data.type = data[entry].type;
dataTempEntry.type = data[entry].type;
if (data.type) {
dataTempEntry.data.type = data.type;
dataTempEntry.type = data.type;
}
if (data[entry].subtype) {
dataTempEntry.data.type = data[entry].subtype;
dataTempEntry.type = data[entry].subtype;
if (data.subtype) {
dataTempEntry.data.type = data.subtype;
dataTempEntry.type = data.subtype;
}
if (data[entry].pressure) {
dataTempEntry.data.pressure = data[entry].pressure;
if (data.pressure) {
dataTempEntry.data.pressure = data.pressure;
}
if (data[entry].xdata) {
dataTempEntry.data.xdata = data[entry].xdata;
if (data.xdata) {
dataTempEntry.data.xdata = data.xdata;
}
if (data[entry].serial.toLowerCase() != "xxxxxxxx") {
if (data.serial.toLowerCase() != "xxxxxxxx") {
dataTemp.push(dataTempEntry);
}
}
Expand Down Expand Up @@ -3027,7 +3107,12 @@ function liveData() {
if (clientActive) {
var frame = JSON.parse(message.payloadString.toString());
if (wvar.query == "" || sondePrefix.indexOf(wvar.query) > -1 || wvar.query == frame.serial) {
if ((dateNow - new Date(frame[frame.length - 1].time_received).getTime()) < 30000) {
if (frame.length == null) {
var tempDate = new Date(frame.time_received).getTime();
} else {
var tempDate = new Date(frame[frame.length - 1].time_received).getTime()
}
if ((dateNow - tempDate) < 30000) {
var test = formatData(frame, true);
if (clientActive) {
live_data_buffer.positions.position.push.apply(live_data_buffer.positions.position,test.positions.position)
Expand Down