class OroGen::ROS::Spec::Package
Constants
- OROGEN_ROS_NODE_NAME
The name of the root model for all ROS nodes
Attributes
ros_loader[R]
The loader that should be used for ROS-specific stuff @return [Loader]
Public Class Methods
new(root_loader, ros_loader = root_loader)
click to toggle source
Calls superclass method
OroGen::Spec::Project.new
# File lib/orogen/ros/spec/package.rb, line 14 def initialize(root_loader, ros_loader = root_loader) super(root_loader) @ros_loader = ros_loader self.define_default_deployments = false end
Public Instance Methods
__eval__(deffile, deftext, verbose = (::OroGen.logger.level == ::Logger::DEBUG))
click to toggle source
# File lib/orogen/ros/spec/package.rb, line 77 def __eval__(deffile, deftext, verbose = (::OroGen.logger.level == ::Logger::DEBUG)) if !deffile @load_doc = false instance_eval deftext else @load_doc = ::File.file?(deffile) instance_eval deftext, deffile, 1 end self rescue ::Exception => e if true || verbose then ::Kernel.raise else this_level = ::Kernel.caller.size until_here = e.backtrace[-(this_level-1)..-1] || [] subcalls = e.backtrace[0, e.backtrace.size - this_level - 1] || [] subcalls.delete_if { |line| line =~ /eval|method_missing/ && line !~ /\.orogen/ } subcalls = subcalls.map { |line| line.gsub(/:in `(?:block in )?__eval__'/, '') } ::Kernel.raise e, e.message, (subcalls + until_here) end end
default_task_superclass()
click to toggle source
# File lib/orogen/ros/spec/package.rb, line 20 def default_task_superclass if @default_task_superclass.nil? @default_task_superclass = loader.task_model_from_name "ROS::Node" else @default_task_superclass end end
import_types_from(typekit)
click to toggle source
Load a typekit to import RTT-to-ROS mappings
# File lib/orogen/ros/spec/package.rb, line 28 def import_types_from(typekit) using_typekit(typekit) end
ros_launcher(name, &block)
click to toggle source
Declares a ros launcher that exists within the package defined by the project name
#ros_launcher “test”
use_existing
end
If use existing is given it will search for “test.lauch” in the ros package and extract the nodes started by the launch- file
# File lib/orogen/ros/spec/package.rb, line 60 def ros_launcher(name, &block) launcher = Spec::Launcher.new(self, name) launcher.instance_eval(&block) if block_given? deployers[launcher.name] = launcher launcher rescue Exception => e raise e, "defining ROS launcher #{name} on #{self} failed: #{e.message}", e.backtrace end
ros_node(name, options = Hash.new, &block)
click to toggle source
Declares a ros node that exists within the package define by the project name
name “ros_package” #ros_node “ros_node” do
.. node specification ..
end
defines a ros_package::ros_node class.
Nodes are represented as instances of RosNode. See the documentation of that class for more details @return [Node]
# File lib/orogen/ros/spec/package.rb, line 45 def ros_node(name, options = Hash.new, &block) task = external_task_context(name, Hash[:class => Spec::Node].merge(options), &block) self_tasks[task.name] = task end
simple_deployment()
click to toggle source
# File lib/orogen/ros/spec/package.rb, line 73 def simple_deployment raise NotImplementedError, "cannot create simple deployments on #{self.class}" end
using_ros_package(name)
click to toggle source
# File lib/orogen/ros/spec/package.rb, line 69 def using_ros_package(name) using_task_library(name) end