Files
clover/roslaunch_editor/www/ros.js
2020-07-21 10:00:33 +03:00

47 lines
1.3 KiB
JavaScript

var url = 'ws://' + location.hostname + ':9090';
var ros = new ROSLIB.Ros({ url });
ros.on('connection', function () {
document.body.classList.add('connected');
});
ros.on('close', function () {
document.body.classList.remove('connected');
setTimeout(function() {
try {
ros.connect(url);
} catch (e) {}
}, 2000);
});
var exec = new ROSLIB.Service({ ros: ros, name : '/exec', serviceType : 'clover/Execute' });
var readLaunchFiles = new ROSLIB.Service({ ros: ros, name: '/roslaunch_editor/read', serviceType: 'roslaunch_editor/ReadLaunchFiles' });
var writeLaunchFiles = new ROSLIB.Service({ ros: ros, name: '/roslaunch_editor/write', serviceType: 'roslaunch_editor/WriteLaunchFiles' });
var p = {}; // parameters storage
function readParam(name, fromUrl, _default) {
return new Promise(function(resolve, reject) {
// read from url
if (fromUrl && ((p[name] = new URL(window.location.href).searchParams.get(name)) !== null)) {
resolve();
return;
}
// read from ROS params
new ROSLIB.Param({ ros: ros, name: '/roslaunch_editor/' + name }).get(function(val) {
if (val === null) {
if (_default === undefined) {
alert('Cannot read required parameter ' + name);
reject();
} else {
p[name] = _default;
resolve();
}
return;
}
p[name] = val;
resolve();
})
});
}