@@ -7,6 +7,9 @@ var launch_predictions_url = "https://api.v2.sondehub.org/predictions/reverse";
77var recovered_sondes_url = "https://api.v2.sondehub.org/recovered" ;
88var recovered_sondes_stats_url = "https://api.v2.sondehub.org/recovered/stats" ;
99
10+ // Grafana dashboard for Radiosondes
11+ var grafana_url = "https://grafana.v2.sondehub.org/d/bbaa7894-e5f4-4c0d-be96-897b4ffde43b/radiosonde-telemetry-dashboard?" ;
12+
1013var livedata = "wss://ws-reader.v2.sondehub.org/" ;
1114var clientID = "SondeHub-Tracker-" + Math . floor ( Math . random ( ) * 10000000000 ) ;
1215var client = new Paho . Client ( livedata , clientID ) ;
@@ -72,7 +75,6 @@ var car_index = 0;
7275var car_colors = [ "blue" , "red" , "green" , "yellow" , "teal" , "purple" ] ;
7376var balloon_index = 0 ;
7477var balloon_colors_name = [ "red" , "blue" , "green" , "purple" , "orange" , "cyan" ] ;
75- // Yellow was #FDFC30, darker version is "#caca02"
7678var balloon_colors = [ "#f00" , "blue" , "green" , "#c700e6" , "#ff8a0f" , "#0fffca" ] ;
7779
7880var nyan_color_index = 0 ;
@@ -1085,6 +1087,10 @@ function shareVehicle(callsign) {
10851087
10861088}
10871089
1090+ function openURL ( address ) {
1091+ window . open ( address , '_blank' ) ;
1092+ }
1093+
10881094function panTo ( vcallsign ) {
10891095 if ( ! vcallsign || vehicles [ vcallsign ] === undefined ) return ;
10901096
@@ -1756,6 +1762,19 @@ function updateVehicleInfo(vcallsign, newPosition) {
17561762 timeChosen = timeSent ;
17571763 }
17581764
1765+ // Use to-time = now, and enable refresh if the data age is < 30 min old.
1766+ if ( ( timeNow - timeSent ) < ( 30 * 60 * 1000 ) ) {
1767+ var grafana_to_time = "now" ;
1768+ var grafana_refresh = "&refresh=1m" ;
1769+ } else {
1770+ var grafana_to_time = vehicle . positions_ts [ vehicle . positions_ts . length - 1 ] ;
1771+ var grafana_refresh = "" ;
1772+ }
1773+
1774+ // Finally generate the URL to use for the 'Plots' button.
1775+ var grafana_dashboard_url = grafana_url + "var-Serial=" + vcallsign + "&from=" + vehicle . positions_ts [ 0 ] + "&to=" + grafana_to_time + "&orgId=1" + grafana_refresh ;
1776+
1777+
17591778 //desktop
17601779 var a = '<div class="header">' +
17611780 '<span>' + sonde_type + vcallsign + ' <i class="icon-target"></i></span>' +
@@ -1766,6 +1785,7 @@ function updateVehicleInfo(vcallsign, newPosition) {
17661785 '<span class="vbutton path ' + ( ( vehicle . polyline_visible ) ? 'active' : '' ) + '" data-vcallsign="' + vcallsign + '"' + ' style="top:' + ( vehicle . image_src_size [ 1 ] + 55 ) + 'px">Path</span>' +
17671786 ( ( vehicle . vehicle_type != "car" ) ? '<span class="sbutton" onclick="shareVehicle(\'' + vcallsign + '\')" style="top:' + ( vehicle . image_src_size [ 1 ] + 85 ) + 'px">Share</span>' : '' ) +
17681787 ( ( vehicle . vehicle_type != "car" ) ? '<span class="sbutton" onclick="skewTdraw(\'' + vcallsign + '\')" style="top:' + ( vehicle . image_src_size [ 1 ] + 115 ) + 'px">SkewT</span>' : '' ) +
1788+ ( ( vehicle . vehicle_type != "car" ) ? '<span class="sbutton" onclick="openURL(\'' + grafana_dashboard_url + '\')" style="top:' + ( vehicle . image_src_size [ 1 ] + 145 ) + 'px">Plots</span>' : '' ) +
17691789 '<div class="left">' +
17701790 '<dl>' ;
17711791 //mobile
@@ -1778,6 +1798,7 @@ function updateVehicleInfo(vcallsign, newPosition) {
17781798 '<span class="vbutton path ' + ( ( vehicle . polyline_visible ) ? 'active' : '' ) + '" data-vcallsign="' + vcallsign + '"' + ' style="top:55px">Path</span>' +
17791799 ( ( vehicle . vehicle_type != "car" ) ? '<span class="sbutton" onclick="shareVehicle(\'' + vcallsign + '\')" style="top:85px">Share</span>' : '' ) +
17801800 ( ( vehicle . vehicle_type != "car" ) ? '<span class="sbutton" onclick="skewTdraw(\'' + vcallsign + '\')" style="top:115px">SkewT</span>' : '' ) +
1801+ ( ( vehicle . vehicle_type != "car" ) ? '<span class="sbutton" onclick="openURL(\'' + grafana_dashboard_url + '\')" style="top:145px">Plots</span>' : '' ) +
17811802 '<div class="left">' +
17821803 '<dl>' ;
17831804 var b = '</dl>' +
0 commit comments