Skip to content

Commit e86772d

Browse files
authored
Persistent Callsigns (#41)
1 parent 0b08994 commit e86772d

File tree

1 file changed

+54
-24
lines changed

1 file changed

+54
-24
lines changed

js/tracker.js

Lines changed: 54 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1372,38 +1372,66 @@ function updateVehicleInfo(vcallsign, newPosition) {
13721372

13731373
var callsign_list = [];
13741374

1375+
var current_time = convert_time(newPosition.server_time)
1376+
1377+
for(var i = 0; i < vehicle.receiver_info.length; i++){
1378+
if (vehicle.receiver_info[i]["time"] < current_time - 10000) {
1379+
vehicle.receiver_info.splice(i,1);
1380+
}
1381+
}
1382+
1383+
function addReceiver(callsign) {
1384+
if (vehicle.receiver_info.filter(function(e) { return e.callsign === callsign; }).length > 0) {
1385+
return
1386+
}
1387+
var temp_receiver = {callsign: callsign, time: current_time}
1388+
if(newPosition.callsign[callsign].hasOwnProperty('snr')){
1389+
if(newPosition.callsign[callsign].snr){
1390+
temp_receiver.snr = newPosition.callsign[rxcall].snr.toFixed(0)
1391+
}
1392+
}
1393+
if(newPosition.callsign[callsign].hasOwnProperty('rssi')){
1394+
if(newPosition.callsign[callsign].rssi){
1395+
temp_receiver.rssi = newPosition.callsign[rxcall].rssi.toFixed(0)
1396+
}
1397+
}
1398+
if(newPosition.callsign[callsign].hasOwnProperty('frequency')){
1399+
if(newPosition.callsign[callsign].frequency){
1400+
temp_receiver.frequency = newPosition.callsign[rxcall].frequency.toFixed(0)
1401+
}
1402+
}
1403+
vehicle.receiver_info.push(temp_receiver)
1404+
}
1405+
13751406
if($.type(newPosition.callsign) === "string"){
13761407
// Single callsign entry, as a string (chase cars)
13771408
callsign_list = newPosition.callsign;
13781409
} else {
13791410
// Multiple callsigns, as an object
13801411
for(var rxcall in newPosition.callsign){
1381-
if(newPosition.callsign.hasOwnProperty(rxcall)) {
1382-
_new_call = rxcall;
1383-
tempFields = [];
1384-
if(newPosition.callsign[rxcall].hasOwnProperty('snr')){
1385-
if(newPosition.callsign[rxcall].snr){
1386-
tempFields.push(newPosition.callsign[rxcall].snr.toFixed(0) + " dB");
1387-
}
1388-
}
1389-
if(newPosition.callsign[rxcall].hasOwnProperty('rssi')){
1390-
if(newPosition.callsign[rxcall].rssi){
1391-
tempFields.push(newPosition.callsign[rxcall].rssi.toFixed(0) + " dBm");
1392-
}
1393-
}
1394-
if(newPosition.callsign[rxcall].hasOwnProperty('frequency')){
1395-
if(newPosition.callsign[rxcall].frequency){
1396-
tempFields.push(newPosition.callsign[rxcall].frequency + " MHz");
1397-
}
1398-
}
1399-
if(tempFields.length > 0) {
1400-
_new_call += " (" + tempFields.join(", ") + ")";
1401-
}
1402-
callsign_list.push(_new_call); // catch cases where there are no fields
1412+
addReceiver(rxcall)
1413+
}
1414+
1415+
for(var receiver in vehicle.receiver_info){
1416+
_new_call = vehicle.receiver_info[receiver].callsign;
1417+
tempFields = [];
1418+
if(vehicle.receiver_info[receiver].hasOwnProperty('snr')){
1419+
tempFields.push(vehicle.receiver_info[receiver].snr + " dB");
1420+
}
1421+
if(vehicle.receiver_info[receiver].hasOwnProperty('rssi')){
1422+
tempFields.push(vehicle.receiver_info[receiver].rssi + " dBm");
14031423
}
1424+
if(vehicle.receiver_info[receiver].hasOwnProperty('frequency')){
1425+
tempFields.push(vehicle.receiver_info[receiver].frequency + " MHz");
1426+
}
1427+
if(tempFields.length > 0) {
1428+
_new_call += " (" + tempFields.join(", ") + ")";
1429+
}
1430+
callsign_list.push(_new_call); // catch cases where there are no fields
14041431
}
1432+
14051433
callsign_list = callsign_list.join(", ");
1406-
}
1434+
}
14071435

14081436
var timeNow = new Date();
14091437
var timeSent = convert_time(newPosition.server_time);
@@ -2483,7 +2511,8 @@ function addPosition(position) {
24832511
graph_data: [],
24842512
graph_yaxes: [],
24852513
updated: false,
2486-
start_time: 2147483647000
2514+
start_time: 2147483647000,
2515+
receiver_info: []
24872516
};
24882517

24892518
// deep copy yaxes config for graph
@@ -3242,6 +3271,7 @@ function refreshReceivers() {
32423271
updateReceivers(response);
32433272
},
32443273
complete: function(request, textStatus) {
3274+
periodical_receivers = setTimeout(function() {refreshReceivers(false)}, 60 * 5 * 1000);
32453275
if (!offline.get("opt_hide_chase")) {
32463276
refreshNewReceivers(true);
32473277
}

0 commit comments

Comments
 (0)