@@ -5,8 +5,10 @@ var receivers_url = "https://api.v2.sondehub.org/amateur/listeners/telemetry";
5
5
var predictions_url = "https://api.v2.sondehub.org/amateur/predictions?vehicles=" ;
6
6
// Grafana dashboard for most payloads
7
7
var grafana_url = "https://grafana.v2.sondehub.org/d/HJgOZLq7k/basic?" ;
8
- // Grafana dashboard for slower update-rate payloads (APRS, WSPR )
8
+ // Grafana dashboard for slower update-rate payloads (APRS)
9
9
var grafana_aprs_url = "https://grafana.v2.sondehub.org/d/Lwvk1Hy4k/aprs-telemetry?" ;
10
+ // Grafana dashboard for WSPR flight
11
+ var grafana_wspr_url = "https://grafana.v2.sondehub.org/d/e4571f1f-b51e-4e02-b97a-dcd198b49560/wspr-balloon-telemetry?" ;
10
12
11
13
var livedata = "wss://ws-reader.v2.sondehub.org/" ;
12
14
var clientID = "SondeHub-Tracker-" + Math . floor ( Math . random ( ) * 10000000000 ) ;
@@ -1516,9 +1518,18 @@ function updateVehicleInfo(vcallsign, newPosition) {
1516
1518
1517
1519
if ( vehicle . vehicle_type != "car" ) {
1518
1520
if ( vehicle . curr_position . data . hasOwnProperty ( 'modulation' ) ) {
1519
- if ( vehicle . curr_position . data . modulation . includes ( 'APRS' ) || vehicle . curr_position . data . modulation . includes ( 'WSPR' ) ) {
1521
+ if ( vehicle . curr_position . data . modulation . includes ( 'APRS' ) ) {
1520
1522
grafana_base_url = grafana_aprs_url ;
1521
1523
}
1524
+
1525
+ if ( vehicle . curr_position . data . modulation . includes ( 'WSPR' ) ) {
1526
+ grafana_base_url = grafana_wspr_url ;
1527
+ }
1528
+ }
1529
+ if ( vehicle . curr_position . data . hasOwnProperty ( 'comment' ) ) {
1530
+ if ( vehicle . curr_position . data . comment . includes ( 'WSPR' ) ) {
1531
+ grafana_base_url = grafana_wspr_url ;
1532
+ }
1522
1533
}
1523
1534
}
1524
1535
@@ -1535,6 +1546,11 @@ function updateVehicleInfo(vcallsign, newPosition) {
1535
1546
float_button_enabled = true ;
1536
1547
}
1537
1548
}
1549
+ if ( vehicle . curr_position . data . hasOwnProperty ( 'comment' ) ) {
1550
+ if ( vehicle . curr_position . data . comment . includes ( 'WSPR' ) ) {
1551
+ float_button_enabled = true ;
1552
+ }
1553
+ }
1538
1554
}
1539
1555
1540
1556
@@ -1658,8 +1674,14 @@ function generateHysplit(callsign) {
1658
1674
hideHysplit ( callsign )
1659
1675
var vehicle = vehicles [ callsign ] ;
1660
1676
vehicle . prediction_hysplit_visible = true ;
1661
- alt_max = 1000 ;
1662
- alt_step = 100 ;
1677
+ // If requested, constrain the float prediction altitudes to a narrower range.
1678
+ if ( offline . get ( "opt_float_constrained" ) ) {
1679
+ alt_max = 100 ;
1680
+ alt_step = 20 ;
1681
+ } else {
1682
+ alt_max = 1000 ;
1683
+ alt_step = 100 ;
1684
+ }
1663
1685
alt_min = alt_max * - 1 ;
1664
1686
for ( var alt = alt_min ; alt <= alt_max ; alt += alt_step ) {
1665
1687
alt_norm = ( alt + alt_max ) / ( alt_max * 2.0 ) ;
0 commit comments