@@ -1525,6 +1525,11 @@ function updateVehicleInfo(vcallsign, newPosition) {
1525
1525
// Finally generate the URL to use for the 'Plots' button.
1526
1526
var grafana_dashboard_url = grafana_base_url + "var-Payload=" + vcallsign + "&from=" + vehicle . positions_ts [ 0 ] + "&to=" + grafana_to_time + "&orgId=1" + grafana_refresh ;
1527
1527
1528
+ // Decide if we should enable the 'Float' button.
1529
+ // Enable this based on either a very low ascent rate, or if the payload is using WSPR (in which case it's likely a picoballoon)
1530
+ var float_button_enabled = ( newPosition . gps_alt > 3000 && vehicle . ascent_rate < 1 && vehicle . ascent_rate > - 1 ) || ( vehicle . curr_position . data . modulation . includes ( 'WSPR' ) ) ;
1531
+
1532
+
1528
1533
//desktop
1529
1534
var a = '<div class="header">' +
1530
1535
'<span>' + sonde_type + vcallsign + ' <i class="icon-target"></i></span>' +
@@ -1535,7 +1540,7 @@ function updateVehicleInfo(vcallsign, newPosition) {
1535
1540
'<span class="vbutton path ' + ( ( vehicle . polyline_visible ) ? 'active' : '' ) + '" data-vcallsign="' + vcallsign + '"' + ' style="top:' + ( vehicle . image_src_size [ 1 ] + 55 ) + 'px">Path</span>' +
1536
1541
( ( vehicle . vehicle_type != "car" ) ? '<span class="sbutton" onclick="shareVehicle(\'' + vcallsign + '\')" style="top:' + ( vehicle . image_src_size [ 1 ] + 85 ) + 'px">Share</span>' : '' ) +
1537
1542
( ( vehicle . vehicle_type != "car" ) ? '<span class="sbutton" onclick="openURL(\'' + grafana_dashboard_url + '\')" style="top:' + ( vehicle . image_src_size [ 1 ] + 115 ) + 'px">Plots</span>' : '' ) +
1538
- ( ( vehicle . vehicle_type != "car" && newPosition . gps_alt > 3000 && vehicle . ascent_rate < 1 && vehicle . ascent_rate > - 1 ) ? '<span class="sbutton hysplit ' + ( ( vehicle . prediction_hysplit_visible ) ? 'active' : '' ) + '" data-vcallsign="' + vcallsign + '" style="top:' + ( vehicle . image_src_size [ 1 ] + 145 ) + 'px">Float</span>' : '' ) +
1543
+ ( ( vehicle . vehicle_type != "car" && float_button_enabled ) ? '<span class="sbutton hysplit ' + ( ( vehicle . prediction_hysplit_visible ) ? 'active' : '' ) + '" data-vcallsign="' + vcallsign + '" style="top:' + ( vehicle . image_src_size [ 1 ] + 145 ) + 'px">Float</span>' : '' ) +
1539
1544
'<div class="left">' +
1540
1545
'<dl>' ;
1541
1546
//mobile
@@ -1548,7 +1553,7 @@ function updateVehicleInfo(vcallsign, newPosition) {
1548
1553
'<span class="vbutton path ' + ( ( vehicle . polyline_visible ) ? 'active' : '' ) + '" data-vcallsign="' + vcallsign + '"' + ' style="top:55px">Path</span>' +
1549
1554
( ( vehicle . vehicle_type != "car" ) ? '<span class="sbutton" onclick="shareVehicle(\'' + vcallsign + '\')" style="top:85px">Share</span>' : '' ) +
1550
1555
( ( vehicle . vehicle_type != "car" ) ? '<span class="sbutton" onclick="openURL(\'' + grafana_dashboard_url + '\')" style="top:115px">Plots</span>' : '' ) +
1551
- ( ( vehicle . vehicle_type != "car" && newPosition . gps_alt > 3000 && vehicle . ascent_rate < 1 && vehicle . ascent_rate > - 1 ) ? '<span class="sbutton hysplit ' + ( ( vehicle . prediction_hysplit_visible ) ? 'active' : '' ) + '" data-vcallsign="' + vcallsign + '" style="top:145px">Float</span>' : '' ) +
1556
+ ( ( vehicle . vehicle_type != "car" && float_button_enabled ) ? '<span class="sbutton hysplit ' + ( ( vehicle . prediction_hysplit_visible ) ? 'active' : '' ) + '" data-vcallsign="' + vcallsign + '" style="top:145px">Float</span>' : '' ) +
1552
1557
'<div class="left">' +
1553
1558
'<dl>' ;
1554
1559
var b = '</dl>' +
0 commit comments