Class: OroGen::ROS::Spec::Node
- Inherits:
-
Spec::TaskContext
- Object
- Spec::TaskContext
- OroGen::ROS::Spec::Node
- Defined in:
- lib/orogen/ros/spec/node.rb
Overview
Representation of a ROS node as an oroGen model
Constant Summary
Constants inherited from Spec::TaskContext
Spec::TaskContext::STATE_TYPES
Instance Attribute Summary collapse
-
#ros_name ⇒ String
The name on the ROS side.
-
#ros_package ⇒ String
The name of the ROS package.
Attributes inherited from Spec::TaskContext
#dynamic_ports, #extensions, #implemented_classes, #name, #project, #superclass, #uses_qt
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
Equals operator.
- #eql?(other) ⇒ Boolean
-
#initialize(project, name = nil) ⇒ Node
constructor
A new instance of Node.
-
#input_topic(topic_name, name, message_type) ⇒ InputTopic
Declares that this node subscribes to a specific topic.
-
#output_topic(topic_name, name, message_type) ⇒ OutputTopic
Declares that this node produces data on a specific topic.
- #to_s ⇒ Object
Methods inherited from Spec::TaskContext
#abstract, #abstract?, #all_ports, #ancestors, apply_default_extensions, #attribute, blank, #check_uniqueness, #configuration_object, #default_activity, default_extensions, #define_state, #doc, #dynamic_input_port, #dynamic_output_port, #dynamic_port, #each_dynamic_input_port, #each_dynamic_output_port, #each_extension, #each_interface_type, #each_port, #each_state, #error_states, #exception_states, #extended_state_support, #extended_state_support?, #extension, #external_definition=, #external_definition?, #fatal_states, #fd_driven, #fd_driven?, #find_dynamic_input_ports, #find_dynamic_output_ports, #find_extension, #find_port, #fixed_initial_state, #fixed_initial_state?, #has_dynamic_attributes?, #has_dynamic_input_port?, #has_dynamic_output_port?, #has_dynamic_port?, #has_dynamic_properties?, #has_extension?, #has_input_port?, #has_output_port?, #has_port?, #has_property?, #hidden_operation, #implements, #implements?, #initialize_copy, #input_port, #inspect, #loader, #make_property_dynamic, #merge_ports_from, #needs_configuration, #needs_configuration?, #new_operations, #operation, #output_port, #periodic, pop_default_extensions_state, #port_driven, #pretty_print, #pretty_print_interface, #property, push_default_extensions_state, #register_extension, #reports, #required_activity, #required_activity=, #required_activity?, #ro_ptr, #root_model, #runtime_states, #self_ports, #shared_ptr, #state?, #state_kind, #states, #subclasses, #to_dot, #to_h, #toplevel_states, #type, #use_qt, #uses_qt?, #worstcase_processing_time
Constructor Details
#initialize(project, name = nil) ⇒ Node
Returns a new instance of Node
11 12 13 14 15 16 |
# File 'lib/orogen/ros/spec/node.rb', line 11 def initialize(project, name = nil) super @ros_name = name @ros_package = project.name end |
Instance Attribute Details
#ros_name ⇒ String
Returns the name on the ROS side
7 8 9 |
# File 'lib/orogen/ros/spec/node.rb', line 7 def ros_name @ros_name end |
#ros_package ⇒ String
Returns the name of the ROS package
9 10 11 |
# File 'lib/orogen/ros/spec/node.rb', line 9 def ros_package @ros_package end |
Instance Method Details
#==(other) ⇒ Boolean
Equals operator
54 55 56 57 58 59 60 61 62 |
# File 'lib/orogen/ros/spec/node.rb', line 54 def ==(other) if other.respond_to?(:ros_name) if ros_name.empty? || other.ros_name.empty? raise ArgumentError, "Cannot compare ROS Spec node with empty ros_name: #{self} vs. #{other}" end return ros_name == other.ros_name && ros_package == other.ros_package end false end |
#eql?(other) ⇒ Boolean
64 |
# File 'lib/orogen/ros/spec/node.rb', line 64 def eql?(other); self == other end |
#input_topic(topic_name, name, message_type) ⇒ InputTopic
Declares that this node subscribes to a specific topic
41 42 43 44 45 46 |
# File 'lib/orogen/ros/spec/node.rb', line 41 def input_topic(topic_name, name, ) data_type = project.ros_loader.() topic = input_port(name, data_type, :class => InputTopic) topic.ros_name = ROS.normalize_topic_name(topic_name) topic end |
#output_topic(topic_name, name, message_type) ⇒ OutputTopic
Declares that this node produces data on a specific topic
26 27 28 29 30 31 |
# File 'lib/orogen/ros/spec/node.rb', line 26 def output_topic(topic_name, name, ) data_type = project.ros_loader.() topic = output_port(name, data_type, :class => OutputTopic) topic.ros_name = ROS.normalize_topic_name(topic_name) topic end |
#to_s ⇒ Object
48 49 50 |
# File 'lib/orogen/ros/spec/node.rb', line 48 def to_s "#{self.class} ros_name: #{ros_name}, ros_package: #{ros_package}" end |