@@ -1372,38 +1372,66 @@ function updateVehicleInfo(vcallsign, newPosition) {
1372
1372
1373
1373
var callsign_list = [ ] ;
1374
1374
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
+
1375
1406
if ( $ . type ( newPosition . callsign ) === "string" ) {
1376
1407
// Single callsign entry, as a string (chase cars)
1377
1408
callsign_list = newPosition . callsign ;
1378
1409
} else {
1379
1410
// Multiple callsigns, as an object
1380
1411
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" ) ;
1403
1423
}
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
1404
1431
}
1432
+
1405
1433
callsign_list = callsign_list . join ( ", " ) ;
1406
- }
1434
+ }
1407
1435
1408
1436
var timeNow = new Date ( ) ;
1409
1437
var timeSent = convert_time ( newPosition . server_time ) ;
@@ -2483,7 +2511,8 @@ function addPosition(position) {
2483
2511
graph_data : [ ] ,
2484
2512
graph_yaxes : [ ] ,
2485
2513
updated : false ,
2486
- start_time : 2147483647000
2514
+ start_time : 2147483647000 ,
2515
+ receiver_info : [ ]
2487
2516
} ;
2488
2517
2489
2518
// deep copy yaxes config for graph
@@ -3242,6 +3271,7 @@ function refreshReceivers() {
3242
3271
updateReceivers ( response ) ;
3243
3272
} ,
3244
3273
complete : function ( request , textStatus ) {
3274
+ periodical_receivers = setTimeout ( function ( ) { refreshReceivers ( false ) } , 60 * 5 * 1000 ) ;
3245
3275
if ( ! offline . get ( "opt_hide_chase" ) ) {
3246
3276
refreshNewReceivers ( true ) ;
3247
3277
}
0 commit comments