From c0d821eb0f6ad3b777d0b510072fc40959547553 Mon Sep 17 00:00:00 2001 From: Nils Berg Date: Thu, 12 Jun 2014 14:48:39 +0200 Subject: [PATCH] add connection status indicator to roslibjs examples Related issue: https://github.com/RobotWebTools/roslibjs/issues/67 --- examples/fibonacci.html | 34 ++++++++++++++++++++++++++++++++ examples/simple.html | 29 +++++++++++++++++++++++++++ examples/tf.html | 29 +++++++++++++++++++++++++++ examples/urdf.html | 43 +++++++++++++++++++++++++++++++++++++++-- 4 files changed, 133 insertions(+), 2 deletions(-) diff --git a/examples/fibonacci.html b/examples/fibonacci.html index 12dc76a1..2aa7c414 100644 --- a/examples/fibonacci.html +++ b/examples/fibonacci.html @@ -14,9 +14,29 @@ // If there is an error on the backend, an 'error' emit will be emitted. ros.on('error', function(error) { + document.getElementById('connecting').style.display = 'none'; + document.getElementById('connected').style.display = 'none'; + document.getElementById('closed').style.display = 'none'; + document.getElementById('error').style.display = 'inline'; console.log(error); }); + // Find out exactly when we made a connection. + ros.on('connection', function() { + console.log('Connection made!'); + document.getElementById('connecting').style.display = 'none'; + document.getElementById('error').style.display = 'none'; + document.getElementById('closed').style.display = 'none'; + document.getElementById('connected').style.display = 'inline'; + }); + + ros.on('close', function() { + console.log('Connection closed.'); + document.getElementById('connecting').style.display = 'none'; + document.getElementById('connected').style.display = 'none'; + document.getElementById('closed').style.display = 'inline'; + }); + // The ActionClient // ---------------- @@ -56,5 +76,19 @@

Fibonacci ActionClient Example

  • rosrun actionlib_tutorials fibonacci_server
  • roslaunch rosbridge_server rosbridge_websocket.launch
  • +
    +

    + Connecting to rosbridge... +

    + + + +
    diff --git a/examples/simple.html b/examples/simple.html index 1d24a6e5..f054a15a 100644 --- a/examples/simple.html +++ b/examples/simple.html @@ -12,12 +12,27 @@ // If there is an error on the backend, an 'error' emit will be emitted. ros.on('error', function(error) { + document.getElementById('connecting').style.display = 'none'; + document.getElementById('connected').style.display = 'none'; + document.getElementById('closed').style.display = 'none'; + document.getElementById('error').style.display = 'inline'; console.log(error); }); // Find out exactly when we made a connection. ros.on('connection', function() { console.log('Connection made!'); + document.getElementById('connecting').style.display = 'none'; + document.getElementById('error').style.display = 'none'; + document.getElementById('closed').style.display = 'none'; + document.getElementById('connected').style.display = 'inline'; + }); + + ros.on('close', function() { + console.log('Connection closed.'); + document.getElementById('connecting').style.display = 'none'; + document.getElementById('connected').style.display = 'none'; + document.getElementById('closed').style.display = 'inline'; }); // Create a connection to the rosbridge WebSocket server. @@ -138,5 +153,19 @@

    Simple roslib Example

  • rosrun rospy_tutorials add_two_ints_server
  • roslaunch rosbridge_server rosbridge_websocket.launch
  • +
    +

    + Connecting to rosbridge... +

    + + + +
    diff --git a/examples/tf.html b/examples/tf.html index 8254e059..ebdf5b92 100644 --- a/examples/tf.html +++ b/examples/tf.html @@ -12,12 +12,27 @@ // If there is an error on the backend, an 'error' emit will be emitted. ros.on('error', function(error) { + document.getElementById('connecting').style.display = 'none'; + document.getElementById('connected').style.display = 'none'; + document.getElementById('closed').style.display = 'none'; + document.getElementById('error').style.display = 'inline'; console.log(error); }); // Find out exactly when we made a connection. ros.on('connection', function() { console.log('Connection made!'); + document.getElementById('connecting').style.display = 'none'; + document.getElementById('error').style.display = 'none'; + document.getElementById('closed').style.display = 'none'; + document.getElementById('connected').style.display = 'inline'; + }); + + ros.on('close', function() { + console.log('Connection closed.'); + document.getElementById('connecting').style.display = 'none'; + document.getElementById('connected').style.display = 'none'; + document.getElementById('closed').style.display = 'inline'; }); // Create a connection to the rosbridge WebSocket server. @@ -53,5 +68,19 @@

    Simple TF Example

  • Use your arrow keys on your keyboard to move the turtle (must have turtle_tf_demo.launch terminal focused).
  • +
    +

    + Connecting to rosbridge... +

    + + + +
    diff --git a/examples/urdf.html b/examples/urdf.html index 05881dde..73112fa0 100644 --- a/examples/urdf.html +++ b/examples/urdf.html @@ -20,6 +20,7 @@ ros : ros, name : 'robot_description' }); + param.get(function(param) { // Setup the loader for the URDF. var urdfModel = new ROSLIB.UrdfModel({ @@ -28,6 +29,30 @@ console.log(urdfModel); }); + // If there is an error on the backend, an 'error' emit will be emitted. + ros.on('error', function(error) { + document.getElementById('connecting').style.display = 'none'; + document.getElementById('connected').style.display = 'none'; + document.getElementById('closed').style.display = 'none'; + document.getElementById('error').style.display = 'inline'; + console.log(error); + }); + + // Find out exactly when we made a connection. + ros.on('connection', function() { + console.log('Connection made!'); + document.getElementById('connecting').style.display = 'none'; + document.getElementById('error').style.display = 'none'; + document.getElementById('closed').style.display = 'none'; + document.getElementById('connected').style.display = 'inline'; + }); + + ros.on('close', function() { + console.log('Connection closed.'); + document.getElementById('connecting').style.display = 'none'; + document.getElementById('connected').style.display = 'none'; + document.getElementById('closed').style.display = 'inline'; + }); } @@ -38,8 +63,22 @@

    Simple URDF Parsing Example

    Run the following commands in the terminal then refresh this page. Check the JavaScript console for the output.

      -
    1. roslaunch pr2_description upload_pr2.launch
    2. -
    3. roslaunch rosbridge_server rosbridge_websocket.launch
    4. +
    5. roslaunch pr2_description upload_pr2.launch
    6. +
    7. roslaunch rosbridge_server rosbridge_websocket.launch
    +
    +

    + Connecting to rosbridge... +

    + + + +