UNPKG

roslib

Version:

The standard ROS Javascript Library

83 lines (71 loc) 1.76 kB
/** * @fileoverview * @author Brandon Alexander - baalexander@gmail.com */ var Service = require('./Service'); var ServiceRequest = require('./ServiceRequest'); /** * A ROS parameter. * * @constructor * @param options - possible keys include: * * ros - the ROSLIB.Ros connection handle * * name - the param name, like max_vel_x */ function Param(options) { options = options || {}; this.ros = options.ros; this.name = options.name; } /** * Fetches the value of the param. * * @param callback - function with the following params: * * value - the value of the param from ROS. */ Param.prototype.get = function(callback) { var paramClient = new Service({ ros : this.ros, name : '/rosapi/get_param', serviceType : 'rosapi/GetParam' }); var request = new ServiceRequest({ name : this.name }); paramClient.callService(request, function(result) { var value = JSON.parse(result.value); callback(value); }); }; /** * Sets the value of the param in ROS. * * @param value - value to set param to. */ Param.prototype.set = function(value, callback) { var paramClient = new Service({ ros : this.ros, name : '/rosapi/set_param', serviceType : 'rosapi/SetParam' }); var request = new ServiceRequest({ name : this.name, value : JSON.stringify(value) }); paramClient.callService(request, callback); }; /** * Delete this parameter on the ROS server. */ Param.prototype.delete = function(callback) { var paramClient = new Service({ ros : this.ros, name : '/rosapi/delete_param', serviceType : 'rosapi/DeleteParam' }); var request = new ServiceRequest({ name : this.name }); paramClient.callService(request, callback); }; module.exports = Param;