<html> <head> <meta charset="utf-8"> <title>ROS_js_plot</title> <style> body { background-color: #DEFCD7; margin: 0px; } #graf{ position: absolute; min-width: 85%; width: 100%; height: 100%; margin: 0px 0px 0px 0px; padding: 0px; } </style> <script type="application/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script type="text/javascript" src="https://code.highcharts.com/stock/highstock.js"></script> <script type="text/javascript" src="https://code.highcharts.com/stock/modules/exporting.js"></script> <script type="text/javascript" src="http://cdn.robotwebtools.org/EventEmitter2/current/eventemitter2.js"></script> <script type="text/javascript" src="http://cdn.robotwebtools.org/roslibjs/current/roslib.js"></script> <script type="text/javascript"> $(function () { Highcharts.setOptions({ global : { useUTC : true } }); // Create the chart $('#container').highcharts('StockChart', { chart : { events : { load : function () { } } }, rangeSelector : { selected : 3 }, title: { text : 'I2C user interface' }, exporting: { enabled: true } }); }); </script> <script> // Komunikace s ROSem // pripojeni a chybove hlasky var ros = new ROSLIB.Ros(); ros.on('error', function(error) { console.log(error); }); ros.on('connection', function() { console.log('Pripojeno'); }); ros.on('close', function() { console.log('Odpojeno :/'); }); ros.connect('ws://telescopeC.local:9090'); var rosdevices = new ROSLIB.Param({ ros : ros, name : 'values' }); // funkce obstaravajici cteni z tématu rosdevices.get(function(value) { console.log( value); devices = eval(value); console.log(devices); var devicesName = Object.keys(devices); console.log(devicesName); var listeners = []; console.log(listeners); var chart = $('#container').highcharts(); for (i = 0, len = devicesName.length; i < len; i++) { console.log(devicesName[i].replace(/\\/g,'')); chart.addSeries({ id: 'pymlab/'+devicesName[i].replace(/\\/g,''), name: devicesName[i], data: [0, 10, 5] }); console.log( devicesName[i] + i); listeners[i] = new ROSLIB.Topic({ ros : ros, name : 'pymlab/'+devicesName[i], messageType : 'std_msgs/Float32' }); listeners[i].subscribe(function(message) { var chart = $('#container').highcharts(); var series = chart.get(this.name.replace(/\\/g,'')); //console.log(this.name, message.data, series); series.addPoint(message.data); }); //console.log(listeners) } }); </script> </head> <body onload=""> <div id="graf"> <div id="container" style="min-width: 310px; min-height: 400px; height: 100%; margin: 0 auto"> </div> </div> </body> </html>