Skip to content

Commit 733cf3e

Browse files
Mark JessopMark Jessop
authored andcommitted
Add receiver data over 10s window
1 parent 0de9203 commit 733cf3e

File tree

1 file changed

+70
-24
lines changed

1 file changed

+70
-24
lines changed

js/tracker.js

Lines changed: 70 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1662,37 +1662,82 @@ function updateVehicleInfo(vcallsign, newPosition) {
16621662

16631663
var callsign_list = [];
16641664

1665-
if($.type(newPosition.callsign) === "string"){
1666-
// Single callsign entry, as a string (chase cars)
1667-
callsign_list = newPosition.callsign;
1668-
} else {
1669-
// Multiple callsigns, as an object
1670-
for(var rxcall in newPosition.callsign){
1671-
if(newPosition.callsign.hasOwnProperty(rxcall)) {
1672-
_new_call = rxcall;
1673-
tempFields = [];
1674-
if(newPosition.callsign[rxcall].hasOwnProperty('snr')){
1675-
if(newPosition.callsign[rxcall].snr){
1676-
tempFields.push(newPosition.callsign[rxcall].snr.toFixed(0) + " dB");
1665+
var current_time = convert_time(newPosition.server_time)
1666+
1667+
for(var i = 0; i < vehicle.receiver_info.length; i++){
1668+
if (vehicle.receiver_info[i]["time"] < current_time - 10000) {
1669+
vehicle.receiver_info.splice(i,1);
1670+
}
1671+
}
1672+
1673+
function addReceiver(callsign) {
1674+
for(var i = 0; i < vehicle.receiver_info.length; i++){
1675+
if (vehicle.receiver_info[i]["callsign"] === callsign) {
1676+
vehicle.receiver_info[i]["time"] = current_time
1677+
if(newPosition.callsign[callsign].hasOwnProperty('snr')){
1678+
if(newPosition.callsign[callsign].snr){
1679+
vehicle.receiver_info[i].snr = newPosition.callsign[rxcall].snr.toFixed(0)
16771680
}
16781681
}
1679-
if(newPosition.callsign[rxcall].hasOwnProperty('rssi')){
1680-
if(newPosition.callsign[rxcall].rssi){
1681-
tempFields.push(newPosition.callsign[rxcall].rssi.toFixed(0) + " dBm");
1682+
if(newPosition.callsign[callsign].hasOwnProperty('rssi')){
1683+
if(newPosition.callsign[callsign].rssi){
1684+
vehicle.receiver_info[i].rssi = newPosition.callsign[rxcall].rssi.toFixed(0)
16821685
}
16831686
}
1684-
if(newPosition.callsign[rxcall].hasOwnProperty('frequency')){
1685-
if(newPosition.callsign[rxcall].frequency){
1686-
tempFields.push(newPosition.callsign[rxcall].frequency + " MHz");
1687+
if(newPosition.callsign[callsign].hasOwnProperty('frequency')){
1688+
if(newPosition.callsign[callsign].frequency){
1689+
vehicle.receiver_info[i].frequency = newPosition.callsign[rxcall].frequency.toFixed(4)
16871690
}
16881691
}
1689-
if(tempFields.length > 0) {
1690-
_new_call += " (" + tempFields.join(", ") + ")";
1691-
}
1692-
callsign_list.push(_new_call); // catch cases where there are no fields
1692+
return
1693+
}
1694+
}
1695+
var temp_receiver = {callsign: callsign, time: current_time}
1696+
if(newPosition.callsign[callsign].hasOwnProperty('snr')){
1697+
if(newPosition.callsign[callsign].snr){
1698+
temp_receiver.snr = newPosition.callsign[rxcall].snr.toFixed(0)
1699+
}
1700+
}
1701+
if(newPosition.callsign[callsign].hasOwnProperty('rssi')){
1702+
if(newPosition.callsign[callsign].rssi){
1703+
temp_receiver.rssi = newPosition.callsign[rxcall].rssi.toFixed(0)
1704+
}
1705+
}
1706+
if(newPosition.callsign[callsign].hasOwnProperty('frequency')){
1707+
if(newPosition.callsign[callsign].frequency){
1708+
temp_receiver.frequency = newPosition.callsign[rxcall].frequency.toFixed(4)
1709+
}
1710+
}
1711+
vehicle.receiver_info.push(temp_receiver)
1712+
}
1713+
1714+
if($.type(newPosition.callsign) === "string"){
1715+
// Single callsign entry, as a string (chase cars)
1716+
callsign_list = newPosition.callsign;
1717+
} else {
1718+
// Multiple callsigns, as an object
1719+
for(var rxcall in newPosition.callsign){
1720+
addReceiver(rxcall)
1721+
}
1722+
1723+
for(var receiver in vehicle.receiver_info){
1724+
_new_call = "- " + vehicle.receiver_info[receiver].callsign;
1725+
tempFields = [];
1726+
if(vehicle.receiver_info[receiver].hasOwnProperty('snr')){
1727+
tempFields.push(vehicle.receiver_info[receiver].snr + " dB");
1728+
}
1729+
if(vehicle.receiver_info[receiver].hasOwnProperty('rssi')){
1730+
tempFields.push(vehicle.receiver_info[receiver].rssi + " dBm");
1731+
}
1732+
if(vehicle.receiver_info[receiver].hasOwnProperty('frequency')){
1733+
tempFields.push(vehicle.receiver_info[receiver].frequency + " MHz");
16931734
}
1735+
if(tempFields.length > 0) {
1736+
_new_call += " (" + tempFields.join(", ") + ")";
1737+
}
1738+
callsign_list.push(_new_call); // catch cases where there are no fields
16941739
}
1695-
callsign_list = callsign_list.join(", ");
1740+
callsign_list = callsign_list.join("<br>");
16961741
}
16971742

16981743
var timeNow = new Date();
@@ -3072,7 +3117,8 @@ function addPosition(position) {
30723117
graph_data: [],
30733118
graph_yaxes: [],
30743119
updated: false,
3075-
start_time: 2147483647000
3120+
start_time: 2147483647000,
3121+
receiver_info: []
30763122
};
30773123

30783124
// deep copy yaxes config for graph

0 commit comments

Comments
 (0)