rosruby_msgs 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/{lib/actionlib_msgs → actionlib_msgs}/GoalID.rb +23 -24
- data/{lib/actionlib_msgs → actionlib_msgs}/GoalStatus.rb +29 -25
- data/{lib/actionlib_msgs → actionlib_msgs}/GoalStatusArray.rb +31 -32
- data/{lib/actionlib_tutorials → actionlib_tutorials}/AveragingAction.rb +29 -25
- data/{lib/actionlib_tutorials → actionlib_tutorials}/AveragingActionFeedback.rb +29 -25
- data/{lib/actionlib_tutorials → actionlib_tutorials}/AveragingActionGoal.rb +29 -25
- data/{lib/actionlib_tutorials → actionlib_tutorials}/AveragingActionResult.rb +29 -25
- data/{lib/actionlib_tutorials → actionlib_tutorials}/AveragingFeedback.rb +35 -26
- data/{lib/actionlib_tutorials → actionlib_tutorials}/AveragingGoal.rb +17 -23
- data/{lib/actionlib_tutorials → actionlib_tutorials}/AveragingResult.rb +23 -24
- data/{lib/actionlib_tutorials → actionlib_tutorials}/FibonacciAction.rb +29 -25
- data/{lib/actionlib_tutorials → actionlib_tutorials}/FibonacciActionFeedback.rb +29 -25
- data/{lib/actionlib_tutorials → actionlib_tutorials}/FibonacciActionGoal.rb +29 -25
- data/{lib/actionlib_tutorials → actionlib_tutorials}/FibonacciActionResult.rb +29 -25
- data/{lib/actionlib_tutorials → actionlib_tutorials}/FibonacciFeedback.rb +17 -23
- data/{lib/actionlib_tutorials → actionlib_tutorials}/FibonacciGoal.rb +17 -23
- data/{lib/actionlib_tutorials → actionlib_tutorials}/FibonacciResult.rb +17 -23
- data/{lib/geometry_msgs → geometry_msgs}/Point.rb +29 -25
- data/{lib/geometry_msgs → geometry_msgs}/Point32.rb +29 -25
- data/{lib/geometry_msgs → geometry_msgs}/PointStamped.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/Polygon.rb +17 -23
- data/{lib/geometry_msgs → geometry_msgs}/PolygonStamped.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/Pose.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/Pose2D.rb +29 -25
- data/{lib/geometry_msgs → geometry_msgs}/PoseArray.rb +31 -32
- data/{lib/geometry_msgs → geometry_msgs}/PoseStamped.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/PoseWithCovariance.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/PoseWithCovarianceStamped.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/Quaternion.rb +35 -26
- data/{lib/geometry_msgs → geometry_msgs}/QuaternionStamped.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/Transform.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/TransformStamped.rb +29 -25
- data/{lib/geometry_msgs → geometry_msgs}/Twist.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/TwistStamped.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/TwistWithCovariance.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/TwistWithCovarianceStamped.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/Vector3.rb +29 -25
- data/{lib/geometry_msgs → geometry_msgs}/Vector3Stamped.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/Wrench.rb +23 -24
- data/{lib/geometry_msgs → geometry_msgs}/WrenchStamped.rb +23 -24
- data/{lib/nav_msgs → nav_msgs}/GetMap.rb +29 -45
- data/{lib/nav_msgs → nav_msgs}/GetPlan.rb +66 -68
- data/{lib/nav_msgs → nav_msgs}/GridCells.rb +35 -26
- data/{lib/nav_msgs → nav_msgs}/MapMetaData.rb +41 -27
- data/{lib/nav_msgs → nav_msgs}/OccupancyGrid.rb +29 -25
- data/{lib/nav_msgs → nav_msgs}/Odometry.rb +35 -26
- data/{lib/nav_msgs → nav_msgs}/Path.rb +43 -44
- data/pr2_controllers_msgs/JointTrajectoryAction.rb +409 -0
- data/pr2_controllers_msgs/JointTrajectoryActionFeedback.rb +206 -0
- data/pr2_controllers_msgs/JointTrajectoryActionGoal.rb +265 -0
- data/pr2_controllers_msgs/JointTrajectoryActionResult.rb +205 -0
- data/pr2_controllers_msgs/JointTrajectoryControllerState.rb +284 -0
- data/pr2_controllers_msgs/JointTrajectoryFeedback.rb +67 -0
- data/pr2_controllers_msgs/JointTrajectoryGoal.rb +196 -0
- data/pr2_controllers_msgs/JointTrajectoryResult.rb +66 -0
- data/pr2_controllers_msgs/PointHeadActionFeedback.rb +211 -0
- data/pr2_controllers_msgs/PointHeadActionGoal.rb +225 -0
- data/pr2_controllers_msgs/PointHeadActionResult.rb +205 -0
- data/pr2_controllers_msgs/PointHeadGoal.rb +186 -0
- data/pr2_controllers_msgs/Pr2GripperCommandAction.rb +334 -0
- data/pr2_controllers_msgs/Pr2GripperCommandActionGoal.rb +0 -0
- data/pr2_controllers_msgs/Pr2GripperCommandActionResult.rb +216 -0
- data/pr2_controllers_msgs/Pr2GripperCommandFeedback.rb +102 -0
- data/pr2_controllers_msgs/Pr2GripperCommandGoal.rb +87 -0
- data/pr2_controllers_msgs/Pr2GripperCommandResult.rb +101 -0
- data/pr2_controllers_msgs/SingleJointPositionAction.rb +335 -0
- data/pr2_controllers_msgs/SingleJointPositionActionFeedback.rb +228 -0
- data/pr2_controllers_msgs/SingleJointPositionActionGoal.rb +173 -0
- data/pr2_controllers_msgs/SingleJointPositionActionResult.rb +205 -0
- data/pr2_controllers_msgs/SingleJointPositionGoal.rb +96 -0
- data/pr2_controllers_msgs/SingleJointPositionResult.rb +66 -0
- data/{lib/roscpp → roscpp}/Empty.rb +24 -44
- data/{lib/roscpp → roscpp}/GetLoggers.rb +29 -45
- data/{lib/roscpp → roscpp}/Logger.rb +23 -24
- data/{lib/roscpp → roscpp}/SetLoggerLevel.rb +35 -46
- data/{lib/roscpp_tutorials → roscpp_tutorials}/TwoInts.rb +40 -47
- data/{lib/rosgraph_msgs → rosgraph_msgs}/Clock.rb +17 -23
- data/{lib/rosgraph_msgs → rosgraph_msgs}/Log.rb +59 -30
- data/{lib/sensor_msgs → sensor_msgs}/CameraInfo.rb +77 -33
- data/{lib/sensor_msgs → sensor_msgs}/ChannelFloat32.rb +23 -24
- data/{lib/sensor_msgs → sensor_msgs}/CompressedImage.rb +30 -31
- data/{lib/sensor_msgs → sensor_msgs}/Image.rb +54 -35
- data/{lib/sensor_msgs → sensor_msgs}/Imu.rb +53 -29
- data/{lib/sensor_msgs → sensor_msgs}/JointState.rb +41 -27
- data/{lib/sensor_msgs → sensor_msgs}/Joy.rb +29 -25
- data/{lib/sensor_msgs → sensor_msgs}/JoyFeedback.rb +29 -25
- data/{lib/sensor_msgs → sensor_msgs}/JoyFeedbackArray.rb +17 -23
- data/{lib/sensor_msgs → sensor_msgs}/LaserScan.rb +71 -32
- data/{lib/sensor_msgs → sensor_msgs}/NavSatFix.rb +53 -29
- data/{lib/sensor_msgs → sensor_msgs}/NavSatStatus.rb +23 -24
- data/{lib/sensor_msgs → sensor_msgs}/PointCloud.rb +29 -25
- data/{lib/sensor_msgs → sensor_msgs}/PointCloud2.rb +66 -37
- data/{lib/sensor_msgs → sensor_msgs}/PointField.rb +35 -26
- data/{lib/sensor_msgs → sensor_msgs}/Range.rb +47 -28
- data/{lib/sensor_msgs → sensor_msgs}/RegionOfInterest.rb +41 -27
- data/{lib/sensor_msgs → sensor_msgs}/SetCameraInfo.rb +40 -47
- data/{lib/sensor_msgs → sensor_msgs}/TimeReference.rb +29 -25
- data/{lib/std_msgs → std_msgs}/Bool.rb +17 -23
- data/{lib/std_msgs → std_msgs}/Byte.rb +17 -23
- data/{lib/std_msgs → std_msgs}/ByteMultiArray.rb +23 -24
- data/{lib/std_msgs → std_msgs}/Char.rb +17 -23
- data/{lib/std_msgs → std_msgs}/ColorRGBA.rb +35 -26
- data/{lib/std_msgs → std_msgs}/Duration.rb +17 -23
- data/std_msgs/Empty.rb +65 -0
- data/{lib/std_msgs → std_msgs}/Float32.rb +17 -23
- data/{lib/std_msgs → std_msgs}/Float32MultiArray.rb +23 -24
- data/{lib/std_msgs → std_msgs}/Float64.rb +17 -23
- data/{lib/std_msgs → std_msgs}/Float64MultiArray.rb +23 -24
- data/{lib/std_msgs → std_msgs}/Header.rb +29 -25
- data/{lib/std_msgs → std_msgs}/Int16.rb +17 -23
- data/{lib/std_msgs → std_msgs}/Int16MultiArray.rb +23 -24
- data/{lib/std_msgs → std_msgs}/Int32.rb +17 -23
- data/{lib/std_msgs → std_msgs}/Int32MultiArray.rb +23 -24
- data/{lib/std_msgs → std_msgs}/Int64.rb +17 -23
- data/{lib/std_msgs → std_msgs}/Int64MultiArray.rb +23 -24
- data/{lib/std_msgs → std_msgs}/Int8.rb +17 -23
- data/{lib/std_msgs → std_msgs}/Int8MultiArray.rb +23 -24
- data/{lib/std_msgs → std_msgs}/MultiArrayDimension.rb +29 -25
- data/{lib/std_msgs → std_msgs}/MultiArrayLayout.rb +23 -24
- data/{lib/std_msgs → std_msgs}/String.rb +17 -23
- data/{lib/std_msgs → std_msgs}/Time.rb +17 -23
- data/{lib/std_msgs → std_msgs}/UInt16.rb +17 -23
- data/{lib/std_msgs → std_msgs}/UInt16MultiArray.rb +23 -24
- data/{lib/std_msgs → std_msgs}/UInt32.rb +17 -23
- data/{lib/std_msgs → std_msgs}/UInt32MultiArray.rb +23 -24
- data/{lib/std_msgs → std_msgs}/UInt64.rb +17 -23
- data/{lib/std_msgs → std_msgs}/UInt64MultiArray.rb +23 -24
- data/{lib/std_msgs → std_msgs}/UInt8.rb +17 -23
- data/{lib/std_msgs → std_msgs}/UInt8MultiArray.rb +24 -30
- data/{lib/std_srvs → std_srvs}/Empty.rb +24 -44
- data/{lib/stereo_msgs → stereo_msgs}/DisparityImage.rb +60 -36
- data/{lib/tf → tf}/FrameGraph.rb +29 -45
- data/{lib/tf → tf}/tfMessage.rb +37 -43
- data/{lib/trajectory_msgs → trajectory_msgs}/JointTrajectory.rb +33 -29
- data/{lib/trajectory_msgs → trajectory_msgs}/JointTrajectoryPoint.rb +35 -26
- data/{lib/visualization_msgs → visualization_msgs}/ImageMarker.rb +89 -35
- data/{lib/visualization_msgs → visualization_msgs}/InteractiveMarker.rb +89 -65
- data/{lib/visualization_msgs → visualization_msgs}/InteractiveMarkerControl.rb +91 -62
- data/{lib/visualization_msgs → visualization_msgs}/InteractiveMarkerFeedback.rb +65 -31
- data/{lib/visualization_msgs → visualization_msgs}/InteractiveMarkerInit.rb +85 -81
- data/{lib/visualization_msgs → visualization_msgs}/InteractiveMarkerPose.rb +29 -25
- data/{lib/visualization_msgs → visualization_msgs}/InteractiveMarkerUpdate.rb +123 -104
- data/{lib/visualization_msgs → visualization_msgs}/Marker.rb +101 -37
- data/{lib/visualization_msgs → visualization_msgs}/MarkerArray.rb +49 -55
- data/{lib/visualization_msgs → visualization_msgs}/MenuEntry.rb +41 -27
- metadata +149 -129
- data/lib/std_msgs/Empty.rb +0 -75
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# autogenerated by genmsg_ruby from Pr2GripperCommandFeedback.msg. Do not edit.
|
|
2
|
+
require 'ros/message'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
module Pr2_controllers_msgs
|
|
6
|
+
|
|
7
|
+
class Pr2GripperCommandFeedback <::ROS::Message
|
|
8
|
+
def self.md5sum
|
|
9
|
+
"e4cbff56d3562bcf113da5a5adeef91f"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.type
|
|
13
|
+
"pr2_controllers_msgs/Pr2GripperCommandFeedback"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def has_header?
|
|
17
|
+
false
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def message_definition
|
|
21
|
+
"# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
|
|
22
|
+
float64 position # The current gripper gap size (in meters)
|
|
23
|
+
float64 effort # The current effort exerted (in Newtons)
|
|
24
|
+
bool stalled # True iff the gripper is exerting max effort and not moving
|
|
25
|
+
bool reached_goal # True iff the gripper position has reached the commanded setpoint
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
"
|
|
29
|
+
end
|
|
30
|
+
attr_accessor :position, :effort, :stalled, :reached_goal
|
|
31
|
+
|
|
32
|
+
@@struct_d2C2 = ::ROS::Struct.new("d2C2")
|
|
33
|
+
|
|
34
|
+
@@struct_L = ::ROS::Struct.new("L")
|
|
35
|
+
@@slot_types = ['float64','float64','bool','bool']
|
|
36
|
+
|
|
37
|
+
# Constructor. You can set the default values using keyword operators.
|
|
38
|
+
#
|
|
39
|
+
# @param [Hash] args keyword for initializing values
|
|
40
|
+
# @option args [float64] :position initialize value
|
|
41
|
+
# @option args [float64] :effort initialize value
|
|
42
|
+
# @option args [bool] :stalled initialize value
|
|
43
|
+
# @option args [bool] :reached_goal initialize value
|
|
44
|
+
def initialize(args={})
|
|
45
|
+
# message fields cannot be None, assign default values for those that are
|
|
46
|
+
if args[:position]
|
|
47
|
+
@position = args[:position]
|
|
48
|
+
else
|
|
49
|
+
@position = 0.0
|
|
50
|
+
end
|
|
51
|
+
if args[:effort]
|
|
52
|
+
@effort = args[:effort]
|
|
53
|
+
else
|
|
54
|
+
@effort = 0.0
|
|
55
|
+
end
|
|
56
|
+
if args[:stalled]
|
|
57
|
+
@stalled = args[:stalled]
|
|
58
|
+
else
|
|
59
|
+
@stalled = false
|
|
60
|
+
end
|
|
61
|
+
if args[:reached_goal]
|
|
62
|
+
@reached_goal = args[:reached_goal]
|
|
63
|
+
else
|
|
64
|
+
@reached_goal = false
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# internal API method
|
|
69
|
+
# @return [String] Message type string.
|
|
70
|
+
def _get_types
|
|
71
|
+
@slot_types
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# serialize message into buffer
|
|
75
|
+
# @param [IO] buff buffer
|
|
76
|
+
def serialize(buff)
|
|
77
|
+
begin
|
|
78
|
+
buff.write(@@struct_d2C2.pack(@position, @effort, @stalled, @reached_goal))
|
|
79
|
+
rescue => exception
|
|
80
|
+
raise "some erro in serialize: #{exception}"
|
|
81
|
+
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# unpack serialized message in str into this message instance
|
|
86
|
+
# @param [String] str: byte array of serialized message
|
|
87
|
+
def deserialize(str)
|
|
88
|
+
|
|
89
|
+
begin
|
|
90
|
+
end_point = 0
|
|
91
|
+
start = end_point
|
|
92
|
+
end_point += ROS::Struct::calc_size('d2C2')
|
|
93
|
+
(@position, @effort, @stalled, @reached_goal,) = @@struct_d2C2.unpack(str[start..(end_point-1)])
|
|
94
|
+
@stalled = bool(@stalled)
|
|
95
|
+
@reached_goal = bool(@reached_goal)
|
|
96
|
+
return self
|
|
97
|
+
rescue => exception
|
|
98
|
+
raise "message DeserializationError: #{exception}" #most likely buffer underfill
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end # end of class
|
|
102
|
+
end # end of module
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# autogenerated by genmsg_ruby from Pr2GripperCommandGoal.msg. Do not edit.
|
|
2
|
+
require 'ros/message'
|
|
3
|
+
|
|
4
|
+
require "pr2_controllers_msgs/Pr2GripperCommand"
|
|
5
|
+
|
|
6
|
+
module Pr2_controllers_msgs
|
|
7
|
+
|
|
8
|
+
class Pr2GripperCommandGoal <::ROS::Message
|
|
9
|
+
def self.md5sum
|
|
10
|
+
"86fd82f4ddc48a4cb6856cfa69217e43"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.type
|
|
14
|
+
"pr2_controllers_msgs/Pr2GripperCommandGoal"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def has_header?
|
|
18
|
+
false
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def message_definition
|
|
22
|
+
"# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
|
|
23
|
+
pr2_controllers_msgs/Pr2GripperCommand command
|
|
24
|
+
|
|
25
|
+
================================================================================
|
|
26
|
+
MSG: pr2_controllers_msgs/Pr2GripperCommand
|
|
27
|
+
float64 position
|
|
28
|
+
float64 max_effort
|
|
29
|
+
|
|
30
|
+
"
|
|
31
|
+
end
|
|
32
|
+
attr_accessor :command
|
|
33
|
+
|
|
34
|
+
@@struct_d2 = ::ROS::Struct.new("d2")
|
|
35
|
+
|
|
36
|
+
@@struct_L = ::ROS::Struct.new("L")
|
|
37
|
+
@@slot_types = ['pr2_controllers_msgs/Pr2GripperCommand']
|
|
38
|
+
|
|
39
|
+
# Constructor. You can set the default values using keyword operators.
|
|
40
|
+
#
|
|
41
|
+
# @param [Hash] args keyword for initializing values
|
|
42
|
+
# @option args [pr2_controllers_msgs/Pr2GripperCommand] :command initialize value
|
|
43
|
+
def initialize(args={})
|
|
44
|
+
# message fields cannot be None, assign default values for those that are
|
|
45
|
+
if args[:command]
|
|
46
|
+
@command = args[:command]
|
|
47
|
+
else
|
|
48
|
+
@command = Pr2_controllers_msgs::Pr2GripperCommand.new
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# internal API method
|
|
53
|
+
# @return [String] Message type string.
|
|
54
|
+
def _get_types
|
|
55
|
+
@slot_types
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# serialize message into buffer
|
|
59
|
+
# @param [IO] buff buffer
|
|
60
|
+
def serialize(buff)
|
|
61
|
+
begin
|
|
62
|
+
buff.write(@@struct_d2.pack(@command.position, @command.max_effort))
|
|
63
|
+
rescue => exception
|
|
64
|
+
raise "some erro in serialize: #{exception}"
|
|
65
|
+
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# unpack serialized message in str into this message instance
|
|
70
|
+
# @param [String] str: byte array of serialized message
|
|
71
|
+
def deserialize(str)
|
|
72
|
+
|
|
73
|
+
begin
|
|
74
|
+
if @command == nil
|
|
75
|
+
@command = Pr2_controllers_msgs::Pr2GripperCommand.new
|
|
76
|
+
end
|
|
77
|
+
end_point = 0
|
|
78
|
+
start = end_point
|
|
79
|
+
end_point += ROS::Struct::calc_size('d2')
|
|
80
|
+
(@command.position, @command.max_effort,) = @@struct_d2.unpack(str[start..(end_point-1)])
|
|
81
|
+
return self
|
|
82
|
+
rescue => exception
|
|
83
|
+
raise "message DeserializationError: #{exception}" #most likely buffer underfill
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end # end of class
|
|
87
|
+
end # end of module
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# autogenerated by genmsg_ruby from Pr2GripperCommandResult.msg. Do not edit.
|
|
2
|
+
require 'ros/message'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
module Pr2_controllers_msgs
|
|
6
|
+
|
|
7
|
+
class Pr2GripperCommandResult <::ROS::Message
|
|
8
|
+
def self.md5sum
|
|
9
|
+
"e4cbff56d3562bcf113da5a5adeef91f"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.type
|
|
13
|
+
"pr2_controllers_msgs/Pr2GripperCommandResult"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def has_header?
|
|
17
|
+
false
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def message_definition
|
|
21
|
+
"# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
|
|
22
|
+
float64 position # The current gripper gap size (in meters)
|
|
23
|
+
float64 effort # The current effort exerted (in Newtons)
|
|
24
|
+
bool stalled # True iff the gripper is exerting max effort and not moving
|
|
25
|
+
bool reached_goal # True iff the gripper position has reached the commanded setpoint
|
|
26
|
+
|
|
27
|
+
"
|
|
28
|
+
end
|
|
29
|
+
attr_accessor :position, :effort, :stalled, :reached_goal
|
|
30
|
+
|
|
31
|
+
@@struct_d2C2 = ::ROS::Struct.new("d2C2")
|
|
32
|
+
|
|
33
|
+
@@struct_L = ::ROS::Struct.new("L")
|
|
34
|
+
@@slot_types = ['float64','float64','bool','bool']
|
|
35
|
+
|
|
36
|
+
# Constructor. You can set the default values using keyword operators.
|
|
37
|
+
#
|
|
38
|
+
# @param [Hash] args keyword for initializing values
|
|
39
|
+
# @option args [float64] :position initialize value
|
|
40
|
+
# @option args [float64] :effort initialize value
|
|
41
|
+
# @option args [bool] :stalled initialize value
|
|
42
|
+
# @option args [bool] :reached_goal initialize value
|
|
43
|
+
def initialize(args={})
|
|
44
|
+
# message fields cannot be None, assign default values for those that are
|
|
45
|
+
if args[:position]
|
|
46
|
+
@position = args[:position]
|
|
47
|
+
else
|
|
48
|
+
@position = 0.0
|
|
49
|
+
end
|
|
50
|
+
if args[:effort]
|
|
51
|
+
@effort = args[:effort]
|
|
52
|
+
else
|
|
53
|
+
@effort = 0.0
|
|
54
|
+
end
|
|
55
|
+
if args[:stalled]
|
|
56
|
+
@stalled = args[:stalled]
|
|
57
|
+
else
|
|
58
|
+
@stalled = false
|
|
59
|
+
end
|
|
60
|
+
if args[:reached_goal]
|
|
61
|
+
@reached_goal = args[:reached_goal]
|
|
62
|
+
else
|
|
63
|
+
@reached_goal = false
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# internal API method
|
|
68
|
+
# @return [String] Message type string.
|
|
69
|
+
def _get_types
|
|
70
|
+
@slot_types
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# serialize message into buffer
|
|
74
|
+
# @param [IO] buff buffer
|
|
75
|
+
def serialize(buff)
|
|
76
|
+
begin
|
|
77
|
+
buff.write(@@struct_d2C2.pack(@position, @effort, @stalled, @reached_goal))
|
|
78
|
+
rescue => exception
|
|
79
|
+
raise "some erro in serialize: #{exception}"
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# unpack serialized message in str into this message instance
|
|
85
|
+
# @param [String] str: byte array of serialized message
|
|
86
|
+
def deserialize(str)
|
|
87
|
+
|
|
88
|
+
begin
|
|
89
|
+
end_point = 0
|
|
90
|
+
start = end_point
|
|
91
|
+
end_point += ROS::Struct::calc_size('d2C2')
|
|
92
|
+
(@position, @effort, @stalled, @reached_goal,) = @@struct_d2C2.unpack(str[start..(end_point-1)])
|
|
93
|
+
@stalled = bool(@stalled)
|
|
94
|
+
@reached_goal = bool(@reached_goal)
|
|
95
|
+
return self
|
|
96
|
+
rescue => exception
|
|
97
|
+
raise "message DeserializationError: #{exception}" #most likely buffer underfill
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end # end of class
|
|
101
|
+
end # end of module
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
# autogenerated by genmsg_ruby from SingleJointPositionAction.msg. Do not edit.
|
|
2
|
+
require 'ros/message'
|
|
3
|
+
|
|
4
|
+
require "ros/time"
|
|
5
|
+
require "pr2_controllers_msgs/SingleJointPositionFeedback"
|
|
6
|
+
require "pr2_controllers_msgs/SingleJointPositionResult"
|
|
7
|
+
require "pr2_controllers_msgs/SingleJointPositionGoal"
|
|
8
|
+
require "ros/duration"
|
|
9
|
+
require "pr2_controllers_msgs/SingleJointPositionActionFeedback"
|
|
10
|
+
require "std_msgs/Header"
|
|
11
|
+
require "actionlib_msgs/GoalID"
|
|
12
|
+
require "pr2_controllers_msgs/SingleJointPositionActionResult"
|
|
13
|
+
require "pr2_controllers_msgs/SingleJointPositionActionGoal"
|
|
14
|
+
require "actionlib_msgs/GoalStatus"
|
|
15
|
+
|
|
16
|
+
module Pr2_controllers_msgs
|
|
17
|
+
|
|
18
|
+
class SingleJointPositionAction <::ROS::Message
|
|
19
|
+
def self.md5sum
|
|
20
|
+
"c4a786b7d53e5d0983decf967a5a779e"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.type
|
|
24
|
+
"pr2_controllers_msgs/SingleJointPositionAction"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def has_header?
|
|
28
|
+
false
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def message_definition
|
|
32
|
+
"# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
|
|
33
|
+
|
|
34
|
+
SingleJointPositionActionGoal action_goal
|
|
35
|
+
SingleJointPositionActionResult action_result
|
|
36
|
+
SingleJointPositionActionFeedback action_feedback
|
|
37
|
+
|
|
38
|
+
================================================================================
|
|
39
|
+
MSG: pr2_controllers_msgs/SingleJointPositionActionGoal
|
|
40
|
+
# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
|
|
41
|
+
|
|
42
|
+
Header header
|
|
43
|
+
actionlib_msgs/GoalID goal_id
|
|
44
|
+
SingleJointPositionGoal goal
|
|
45
|
+
|
|
46
|
+
================================================================================
|
|
47
|
+
MSG: std_msgs/Header
|
|
48
|
+
# Standard metadata for higher-level stamped data types.
|
|
49
|
+
# This is generally used to communicate timestamped data
|
|
50
|
+
# in a particular coordinate frame.
|
|
51
|
+
#
|
|
52
|
+
# sequence ID: consecutively increasing ID
|
|
53
|
+
uint32 seq
|
|
54
|
+
#Two-integer timestamp that is expressed as:
|
|
55
|
+
# * stamp.secs: seconds (stamp_secs) since epoch
|
|
56
|
+
# * stamp.nsecs: nanoseconds since stamp_secs
|
|
57
|
+
# time-handling sugar is provided by the client library
|
|
58
|
+
time stamp
|
|
59
|
+
#Frame this data is associated with
|
|
60
|
+
# 0: no frame
|
|
61
|
+
# 1: global frame
|
|
62
|
+
string frame_id
|
|
63
|
+
|
|
64
|
+
================================================================================
|
|
65
|
+
MSG: actionlib_msgs/GoalID
|
|
66
|
+
# The stamp should store the time at which this goal was requested.
|
|
67
|
+
# It is used by an action server when it tries to preempt all
|
|
68
|
+
# goals that were requested before a certain time
|
|
69
|
+
time stamp
|
|
70
|
+
|
|
71
|
+
# The id provides a way to associate feedback and
|
|
72
|
+
# result message with specific goal requests. The id
|
|
73
|
+
# specified must be unique.
|
|
74
|
+
string id
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
================================================================================
|
|
78
|
+
MSG: pr2_controllers_msgs/SingleJointPositionGoal
|
|
79
|
+
# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
|
|
80
|
+
float64 position
|
|
81
|
+
duration min_duration
|
|
82
|
+
float64 max_velocity
|
|
83
|
+
|
|
84
|
+
================================================================================
|
|
85
|
+
MSG: pr2_controllers_msgs/SingleJointPositionActionResult
|
|
86
|
+
# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
|
|
87
|
+
|
|
88
|
+
Header header
|
|
89
|
+
actionlib_msgs/GoalStatus status
|
|
90
|
+
SingleJointPositionResult result
|
|
91
|
+
|
|
92
|
+
================================================================================
|
|
93
|
+
MSG: actionlib_msgs/GoalStatus
|
|
94
|
+
GoalID goal_id
|
|
95
|
+
uint8 status
|
|
96
|
+
uint8 PENDING = 0 # The goal has yet to be processed by the action server
|
|
97
|
+
uint8 ACTIVE = 1 # The goal is currently being processed by the action server
|
|
98
|
+
uint8 PREEMPTED = 2 # The goal received a cancel request after it started executing
|
|
99
|
+
# and has since completed its execution (Terminal State)
|
|
100
|
+
uint8 SUCCEEDED = 3 # The goal was achieved successfully by the action server (Terminal State)
|
|
101
|
+
uint8 ABORTED = 4 # The goal was aborted during execution by the action server due
|
|
102
|
+
# to some failure (Terminal State)
|
|
103
|
+
uint8 REJECTED = 5 # The goal was rejected by the action server without being processed,
|
|
104
|
+
# because the goal was unattainable or invalid (Terminal State)
|
|
105
|
+
uint8 PREEMPTING = 6 # The goal received a cancel request after it started executing
|
|
106
|
+
# and has not yet completed execution
|
|
107
|
+
uint8 RECALLING = 7 # The goal received a cancel request before it started executing,
|
|
108
|
+
# but the action server has not yet confirmed that the goal is canceled
|
|
109
|
+
uint8 RECALLED = 8 # The goal received a cancel request before it started executing
|
|
110
|
+
# and was successfully cancelled (Terminal State)
|
|
111
|
+
uint8 LOST = 9 # An action client can determine that a goal is LOST. This should not be
|
|
112
|
+
# sent over the wire by an action server
|
|
113
|
+
|
|
114
|
+
#Allow for the user to associate a string with GoalStatus for debugging
|
|
115
|
+
string text
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
================================================================================
|
|
119
|
+
MSG: pr2_controllers_msgs/SingleJointPositionResult
|
|
120
|
+
# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
|
|
121
|
+
|
|
122
|
+
================================================================================
|
|
123
|
+
MSG: pr2_controllers_msgs/SingleJointPositionActionFeedback
|
|
124
|
+
# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
|
|
125
|
+
|
|
126
|
+
Header header
|
|
127
|
+
actionlib_msgs/GoalStatus status
|
|
128
|
+
SingleJointPositionFeedback feedback
|
|
129
|
+
|
|
130
|
+
================================================================================
|
|
131
|
+
MSG: pr2_controllers_msgs/SingleJointPositionFeedback
|
|
132
|
+
# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
|
|
133
|
+
Header header
|
|
134
|
+
float64 position
|
|
135
|
+
float64 velocity
|
|
136
|
+
float64 error
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
"
|
|
140
|
+
end
|
|
141
|
+
attr_accessor :action_goal, :action_result, :action_feedback
|
|
142
|
+
|
|
143
|
+
@@struct_L3 = ::ROS::Struct.new("L3")
|
|
144
|
+
@@struct_dl2dL3 = ::ROS::Struct.new("dl2dL3")
|
|
145
|
+
@@struct_L2 = ::ROS::Struct.new("L2")
|
|
146
|
+
@@struct_C = ::ROS::Struct.new("C")
|
|
147
|
+
@@struct_d3 = ::ROS::Struct.new("d3")
|
|
148
|
+
|
|
149
|
+
@@struct_L = ::ROS::Struct.new("L")
|
|
150
|
+
@@slot_types = ['pr2_controllers_msgs/SingleJointPositionActionGoal','pr2_controllers_msgs/SingleJointPositionActionResult','pr2_controllers_msgs/SingleJointPositionActionFeedback']
|
|
151
|
+
|
|
152
|
+
# Constructor. You can set the default values using keyword operators.
|
|
153
|
+
#
|
|
154
|
+
# @param [Hash] args keyword for initializing values
|
|
155
|
+
# @option args [pr2_controllers_msgs/SingleJointPositionActionGoal] :action_goal initialize value
|
|
156
|
+
# @option args [pr2_controllers_msgs/SingleJointPositionActionResult] :action_result initialize value
|
|
157
|
+
# @option args [pr2_controllers_msgs/SingleJointPositionActionFeedback] :action_feedback initialize value
|
|
158
|
+
def initialize(args={})
|
|
159
|
+
# message fields cannot be None, assign default values for those that are
|
|
160
|
+
if args[:action_goal]
|
|
161
|
+
@action_goal = args[:action_goal]
|
|
162
|
+
else
|
|
163
|
+
@action_goal = Pr2_controllers_msgs::SingleJointPositionActionGoal.new
|
|
164
|
+
end
|
|
165
|
+
if args[:action_result]
|
|
166
|
+
@action_result = args[:action_result]
|
|
167
|
+
else
|
|
168
|
+
@action_result = Pr2_controllers_msgs::SingleJointPositionActionResult.new
|
|
169
|
+
end
|
|
170
|
+
if args[:action_feedback]
|
|
171
|
+
@action_feedback = args[:action_feedback]
|
|
172
|
+
else
|
|
173
|
+
@action_feedback = Pr2_controllers_msgs::SingleJointPositionActionFeedback.new
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
# internal API method
|
|
178
|
+
# @return [String] Message type string.
|
|
179
|
+
def _get_types
|
|
180
|
+
@slot_types
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
# serialize message into buffer
|
|
184
|
+
# @param [IO] buff buffer
|
|
185
|
+
def serialize(buff)
|
|
186
|
+
begin
|
|
187
|
+
buff.write(@@struct_L3.pack(@action_goal.header.seq, @action_goal.header.stamp.secs, @action_goal.header.stamp.nsecs))
|
|
188
|
+
_x = @action_goal.header.frame_id
|
|
189
|
+
length = _x.length
|
|
190
|
+
buff.write([length, _x].pack("La#{length}"))
|
|
191
|
+
buff.write(@@struct_L2.pack(@action_goal.goal_id.stamp.secs, @action_goal.goal_id.stamp.nsecs))
|
|
192
|
+
_x = @action_goal.goal_id.id
|
|
193
|
+
length = _x.length
|
|
194
|
+
buff.write([length, _x].pack("La#{length}"))
|
|
195
|
+
buff.write(@@struct_dl2dL3.pack(@action_goal.goal.position, @action_goal.goal.min_duration.secs, @action_goal.goal.min_duration.nsecs, @action_goal.goal.max_velocity, @action_result.header.seq, @action_result.header.stamp.secs, @action_result.header.stamp.nsecs))
|
|
196
|
+
_x = @action_result.header.frame_id
|
|
197
|
+
length = _x.length
|
|
198
|
+
buff.write([length, _x].pack("La#{length}"))
|
|
199
|
+
buff.write(@@struct_L2.pack(@action_result.status.goal_id.stamp.secs, @action_result.status.goal_id.stamp.nsecs))
|
|
200
|
+
_x = @action_result.status.goal_id.id
|
|
201
|
+
length = _x.length
|
|
202
|
+
buff.write([length, _x].pack("La#{length}"))
|
|
203
|
+
buff.write(@@struct_C.pack(@action_result.status.status))
|
|
204
|
+
_x = @action_result.status.text
|
|
205
|
+
length = _x.length
|
|
206
|
+
buff.write([length, _x].pack("La#{length}"))
|
|
207
|
+
buff.write(@@struct_L3.pack(@action_feedback.header.seq, @action_feedback.header.stamp.secs, @action_feedback.header.stamp.nsecs))
|
|
208
|
+
_x = @action_feedback.header.frame_id
|
|
209
|
+
length = _x.length
|
|
210
|
+
buff.write([length, _x].pack("La#{length}"))
|
|
211
|
+
buff.write(@@struct_L2.pack(@action_feedback.status.goal_id.stamp.secs, @action_feedback.status.goal_id.stamp.nsecs))
|
|
212
|
+
_x = @action_feedback.status.goal_id.id
|
|
213
|
+
length = _x.length
|
|
214
|
+
buff.write([length, _x].pack("La#{length}"))
|
|
215
|
+
buff.write(@@struct_C.pack(@action_feedback.status.status))
|
|
216
|
+
_x = @action_feedback.status.text
|
|
217
|
+
length = _x.length
|
|
218
|
+
buff.write([length, _x].pack("La#{length}"))
|
|
219
|
+
buff.write(@@struct_L3.pack(@action_feedback.feedback.header.seq, @action_feedback.feedback.header.stamp.secs, @action_feedback.feedback.header.stamp.nsecs))
|
|
220
|
+
_x = @action_feedback.feedback.header.frame_id
|
|
221
|
+
length = _x.length
|
|
222
|
+
buff.write([length, _x].pack("La#{length}"))
|
|
223
|
+
buff.write(@@struct_d3.pack(@action_feedback.feedback.position, @action_feedback.feedback.velocity, @action_feedback.feedback.error))
|
|
224
|
+
rescue => exception
|
|
225
|
+
raise "some erro in serialize: #{exception}"
|
|
226
|
+
|
|
227
|
+
end
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
# unpack serialized message in str into this message instance
|
|
231
|
+
# @param [String] str: byte array of serialized message
|
|
232
|
+
def deserialize(str)
|
|
233
|
+
|
|
234
|
+
begin
|
|
235
|
+
if @action_goal == nil
|
|
236
|
+
@action_goal = Pr2_controllers_msgs::SingleJointPositionActionGoal.new
|
|
237
|
+
end
|
|
238
|
+
if @action_result == nil
|
|
239
|
+
@action_result = Pr2_controllers_msgs::SingleJointPositionActionResult.new
|
|
240
|
+
end
|
|
241
|
+
if @action_feedback == nil
|
|
242
|
+
@action_feedback = Pr2_controllers_msgs::SingleJointPositionActionFeedback.new
|
|
243
|
+
end
|
|
244
|
+
end_point = 0
|
|
245
|
+
start = end_point
|
|
246
|
+
end_point += ROS::Struct::calc_size('L3')
|
|
247
|
+
(@action_goal.header.seq, @action_goal.header.stamp.secs, @action_goal.header.stamp.nsecs,) = @@struct_L3.unpack(str[start..(end_point-1)])
|
|
248
|
+
start = end_point
|
|
249
|
+
end_point += 4
|
|
250
|
+
(length,) = @@struct_L.unpack(str[start..(end_point-1)])
|
|
251
|
+
start = end_point
|
|
252
|
+
end_point += length
|
|
253
|
+
@action_goal.header.frame_id = str[start..(end_point-1)]
|
|
254
|
+
start = end_point
|
|
255
|
+
end_point += ROS::Struct::calc_size('L2')
|
|
256
|
+
(@action_goal.goal_id.stamp.secs, @action_goal.goal_id.stamp.nsecs,) = @@struct_L2.unpack(str[start..(end_point-1)])
|
|
257
|
+
start = end_point
|
|
258
|
+
end_point += 4
|
|
259
|
+
(length,) = @@struct_L.unpack(str[start..(end_point-1)])
|
|
260
|
+
start = end_point
|
|
261
|
+
end_point += length
|
|
262
|
+
@action_goal.goal_id.id = str[start..(end_point-1)]
|
|
263
|
+
start = end_point
|
|
264
|
+
end_point += ROS::Struct::calc_size('dl2dL3')
|
|
265
|
+
(@action_goal.goal.position, @action_goal.goal.min_duration.secs, @action_goal.goal.min_duration.nsecs, @action_goal.goal.max_velocity, @action_result.header.seq, @action_result.header.stamp.secs, @action_result.header.stamp.nsecs,) = @@struct_dl2dL3.unpack(str[start..(end_point-1)])
|
|
266
|
+
start = end_point
|
|
267
|
+
end_point += 4
|
|
268
|
+
(length,) = @@struct_L.unpack(str[start..(end_point-1)])
|
|
269
|
+
start = end_point
|
|
270
|
+
end_point += length
|
|
271
|
+
@action_result.header.frame_id = str[start..(end_point-1)]
|
|
272
|
+
start = end_point
|
|
273
|
+
end_point += ROS::Struct::calc_size('L2')
|
|
274
|
+
(@action_result.status.goal_id.stamp.secs, @action_result.status.goal_id.stamp.nsecs,) = @@struct_L2.unpack(str[start..(end_point-1)])
|
|
275
|
+
start = end_point
|
|
276
|
+
end_point += 4
|
|
277
|
+
(length,) = @@struct_L.unpack(str[start..(end_point-1)])
|
|
278
|
+
start = end_point
|
|
279
|
+
end_point += length
|
|
280
|
+
@action_result.status.goal_id.id = str[start..(end_point-1)]
|
|
281
|
+
start = end_point
|
|
282
|
+
end_point += ROS::Struct::calc_size('C')
|
|
283
|
+
(@action_result.status.status,) = @@struct_C.unpack(str[start..(end_point-1)])
|
|
284
|
+
start = end_point
|
|
285
|
+
end_point += 4
|
|
286
|
+
(length,) = @@struct_L.unpack(str[start..(end_point-1)])
|
|
287
|
+
start = end_point
|
|
288
|
+
end_point += length
|
|
289
|
+
@action_result.status.text = str[start..(end_point-1)]
|
|
290
|
+
start = end_point
|
|
291
|
+
end_point += ROS::Struct::calc_size('L3')
|
|
292
|
+
(@action_feedback.header.seq, @action_feedback.header.stamp.secs, @action_feedback.header.stamp.nsecs,) = @@struct_L3.unpack(str[start..(end_point-1)])
|
|
293
|
+
start = end_point
|
|
294
|
+
end_point += 4
|
|
295
|
+
(length,) = @@struct_L.unpack(str[start..(end_point-1)])
|
|
296
|
+
start = end_point
|
|
297
|
+
end_point += length
|
|
298
|
+
@action_feedback.header.frame_id = str[start..(end_point-1)]
|
|
299
|
+
start = end_point
|
|
300
|
+
end_point += ROS::Struct::calc_size('L2')
|
|
301
|
+
(@action_feedback.status.goal_id.stamp.secs, @action_feedback.status.goal_id.stamp.nsecs,) = @@struct_L2.unpack(str[start..(end_point-1)])
|
|
302
|
+
start = end_point
|
|
303
|
+
end_point += 4
|
|
304
|
+
(length,) = @@struct_L.unpack(str[start..(end_point-1)])
|
|
305
|
+
start = end_point
|
|
306
|
+
end_point += length
|
|
307
|
+
@action_feedback.status.goal_id.id = str[start..(end_point-1)]
|
|
308
|
+
start = end_point
|
|
309
|
+
end_point += ROS::Struct::calc_size('C')
|
|
310
|
+
(@action_feedback.status.status,) = @@struct_C.unpack(str[start..(end_point-1)])
|
|
311
|
+
start = end_point
|
|
312
|
+
end_point += 4
|
|
313
|
+
(length,) = @@struct_L.unpack(str[start..(end_point-1)])
|
|
314
|
+
start = end_point
|
|
315
|
+
end_point += length
|
|
316
|
+
@action_feedback.status.text = str[start..(end_point-1)]
|
|
317
|
+
start = end_point
|
|
318
|
+
end_point += ROS::Struct::calc_size('L3')
|
|
319
|
+
(@action_feedback.feedback.header.seq, @action_feedback.feedback.header.stamp.secs, @action_feedback.feedback.header.stamp.nsecs,) = @@struct_L3.unpack(str[start..(end_point-1)])
|
|
320
|
+
start = end_point
|
|
321
|
+
end_point += 4
|
|
322
|
+
(length,) = @@struct_L.unpack(str[start..(end_point-1)])
|
|
323
|
+
start = end_point
|
|
324
|
+
end_point += length
|
|
325
|
+
@action_feedback.feedback.header.frame_id = str[start..(end_point-1)]
|
|
326
|
+
start = end_point
|
|
327
|
+
end_point += ROS::Struct::calc_size('d3')
|
|
328
|
+
(@action_feedback.feedback.position, @action_feedback.feedback.velocity, @action_feedback.feedback.error,) = @@struct_d3.unpack(str[start..(end_point-1)])
|
|
329
|
+
return self
|
|
330
|
+
rescue => exception
|
|
331
|
+
raise "message DeserializationError: #{exception}" #most likely buffer underfill
|
|
332
|
+
end
|
|
333
|
+
end
|
|
334
|
+
end # end of class
|
|
335
|
+
end # end of module
|