]> defiant.homedns.org Git - ros_wild_thumper.git/blobdiff - www/assets/javascripts/application.js
www: reconnect after error
[ros_wild_thumper.git] / www / assets / javascripts / application.js
index eed4a38f4a565d1d3a121920a3bd1d5254751ef5..a7b478517788dee56d68033f3d03647ea96af4e3 100644 (file)
@@ -1,8 +1,12 @@
 function init() {
        var ros = new ROSLIB.Ros();
-       ros.connect('ws://wildthumper:9090');
+       connect();
        var isDragging = false;
 
+       function connect() {
+               ros.connect('ws://wildthumper:9090');
+       }
+
        ros.on('connection', function() {
                information.alerts.push({message: "Connected to websocket server.", success: true});
        });
@@ -13,6 +17,9 @@ function init() {
 
        ros.on('close', function() {
                information.alerts.push({message: "Connection to websocket server closed.", info: true});
+               setTimeout(function() {
+                       connect();
+               }, 2000);
        });
 
        //tfClient.subscribe('base_link', function(tf) {
@@ -114,6 +121,16 @@ function init() {
        // Set the initial speed.
        teleop.scale = ($('#speed-slider').slider('value') * 2);
 
+       new Vue({
+               el: '#lights',
+               data: {
+                       front_row: ["[0]", "[1]", "[2]", "[3]"],
+                       top_row: ["[7]", "[6]", "[5]", "[4]"],
+                       aft_row: ["[8]", "[9]", "[10]", "[11]"],
+                       bottom_left_row: ["[14]", "[15]"],
+                       bottom_right_row: ["[13]", "[12]"],
+               }
+       })
        $('.led_color').minicolors({
                control: 'wheel',
                format: 'rgb',
@@ -216,4 +233,19 @@ function init() {
                        speed: $('#speed-slider').slider('value'),
                }
        })
+
+       $(".imagelink").on('click',function(){
+               // reload
+               $("img").attr("src", $("img").attr("src"))
+       });
 }
+
+Vue.component('input-value', {
+       template: '#input-value-template',
+       props: ['value', 'label', 'unit']
+})
+
+Vue.component('input-led', {
+       template: '#input-led-template',
+       props: ['name', 'label']
+})