00001 """autogenerated by genmsg_py from TiltLaserSnapshotAction.msg. Do not edit."""
00002 import roslib.message
00003 import struct
00004
00005 import roslib.rostime
00006 import actionlib_msgs.msg
00007 import geometry_msgs.msg
00008 import pr2_laser_snapshotter.msg
00009 import sensor_msgs.msg
00010 import std_msgs.msg
00011
00012 class TiltLaserSnapshotAction(roslib.message.Message):
00013 _md5sum = "f83cd41811454f8a69824e814d67c9ce"
00014 _type = "pr2_laser_snapshotter/TiltLaserSnapshotAction"
00015 _has_header = False
00016 _full_text = """# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00017
00018 TiltLaserSnapshotActionGoal action_goal
00019 TiltLaserSnapshotActionResult action_result
00020 TiltLaserSnapshotActionFeedback action_feedback
00021
00022 ================================================================================
00023 MSG: pr2_laser_snapshotter/TiltLaserSnapshotActionGoal
00024 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00025
00026 Header header
00027 actionlib_msgs/GoalID goal_id
00028 TiltLaserSnapshotGoal goal
00029
00030 ================================================================================
00031 MSG: std_msgs/Header
00032 # Standard metadata for higher-level stamped data types.
00033 # This is generally used to communicate timestamped data
00034 # in a particular coordinate frame.
00035 #
00036 # sequence ID: consecutively increasing ID
00037 uint32 seq
00038 #Two-integer timestamp that is expressed as:
00039 # * stamp.secs: seconds (stamp_secs) since epoch
00040 # * stamp.nsecs: nanoseconds since stamp_secs
00041 # time-handling sugar is provided by the client library
00042 time stamp
00043 #Frame this data is associated with
00044 # 0: no frame
00045 # 1: global frame
00046 string frame_id
00047
00048 ================================================================================
00049 MSG: actionlib_msgs/GoalID
00050 # The stamp should store the time at which this goal was requested.
00051 # It is used by an action server when it tries to preempt all
00052 # goals that were requested before a certain time
00053 time stamp
00054
00055 # The id provides a way to associate feedback and
00056 # result message with specific goal requests. The id
00057 # specified must be unique.
00058 string id
00059
00060
00061 ================================================================================
00062 MSG: pr2_laser_snapshotter/TiltLaserSnapshotGoal
00063 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00064 float64 angle_begin
00065 float64 angle_end
00066 float64 duration
00067
00068 ================================================================================
00069 MSG: pr2_laser_snapshotter/TiltLaserSnapshotActionResult
00070 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00071
00072 Header header
00073 actionlib_msgs/GoalStatus status
00074 TiltLaserSnapshotResult result
00075
00076 ================================================================================
00077 MSG: actionlib_msgs/GoalStatus
00078 GoalID goal_id
00079 uint8 status
00080 uint8 PENDING = 0 # The goal has yet to be processed by the action server
00081 uint8 ACTIVE = 1 # The goal is currently being processed by the action server
00082 uint8 PREEMPTED = 2 # The goal received a cancel request after it started executing
00083 # and has since completed its execution (Terminal State)
00084 uint8 SUCCEEDED = 3 # The goal was achieved successfully by the action server (Terminal State)
00085 uint8 ABORTED = 4 # The goal was aborted during execution by the action server due
00086 # to some failure (Terminal State)
00087 uint8 REJECTED = 5 # The goal was rejected by the action server without being processed,
00088 # because the goal was unattainable or invalid (Terminal State)
00089 uint8 PREEMPTING = 6 # The goal received a cancel request after it started executing
00090 # and has not yet completed execution
00091 uint8 RECALLING = 7 # The goal received a cancel request before it started executing,
00092 # but the action server has not yet confirmed that the goal is canceled
00093 uint8 RECALLED = 8 # The goal received a cancel request before it started executing
00094 # and was successfully cancelled (Terminal State)
00095 uint8 LOST = 9 # An action client can determine that a goal is LOST. This should not be
00096 # sent over the wire by an action server
00097
00098 #Allow for the user to associate a string with GoalStatus for debugging
00099 string text
00100
00101
00102 ================================================================================
00103 MSG: pr2_laser_snapshotter/TiltLaserSnapshotResult
00104 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00105 sensor_msgs/PointCloud cloud
00106
00107 ================================================================================
00108 MSG: sensor_msgs/PointCloud
00109 # This message holds a collection of 3d points, plus optional additional
00110 # information about each point.
00111
00112 # Time of sensor data acquisition, coordinate frame ID.
00113 Header header
00114
00115 # Array of 3d points. Each Point32 should be interpreted as a 3d point
00116 # in the frame given in the header.
00117 geometry_msgs/Point32[] points
00118
00119 # Each channel should have the same number of elements as points array,
00120 # and the data in each channel should correspond 1:1 with each point.
00121 # Channel names in common practice are listed in ChannelFloat32.msg.
00122 ChannelFloat32[] channels
00123
00124 ================================================================================
00125 MSG: geometry_msgs/Point32
00126 # This contains the position of a point in free space(with 32 bits of precision).
00127 # It is recommeded to use Point wherever possible instead of Point32.
00128 #
00129 # This recommendation is to promote interoperability.
00130 #
00131 # This message is designed to take up less space when sending
00132 # lots of points at once, as in the case of a PointCloud.
00133
00134 float32 x
00135 float32 y
00136 float32 z
00137 ================================================================================
00138 MSG: sensor_msgs/ChannelFloat32
00139 # This message is used by the PointCloud message to hold optional data
00140 # associated with each point in the cloud. The length of the values
00141 # array should be the same as the length of the points array in the
00142 # PointCloud, and each value should be associated with the corresponding
00143 # point.
00144
00145 # Channel names in existing practice include:
00146 # "u", "v" - row and column (respectively) in the left stereo image.
00147 # This is opposite to usual conventions but remains for
00148 # historical reasons. The newer PointCloud2 message has no
00149 # such problem.
00150 # "rgb" - For point clouds produced by color stereo cameras. uint8
00151 # (R,G,B) values packed into the least significant 24 bits,
00152 # in order.
00153 # "intensity" - laser or pixel intensity.
00154 # "distance"
00155
00156 # The channel name should give semantics of the channel (e.g.
00157 # "intensity" instead of "value").
00158 string name
00159
00160 # The values array should be 1-1 with the elements of the associated
00161 # PointCloud.
00162 float32[] values
00163
00164 ================================================================================
00165 MSG: pr2_laser_snapshotter/TiltLaserSnapshotActionFeedback
00166 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00167
00168 Header header
00169 actionlib_msgs/GoalStatus status
00170 TiltLaserSnapshotFeedback feedback
00171
00172 ================================================================================
00173 MSG: pr2_laser_snapshotter/TiltLaserSnapshotFeedback
00174 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00175
00176
00177 """
00178 __slots__ = ['action_goal','action_result','action_feedback']
00179 _slot_types = ['pr2_laser_snapshotter/TiltLaserSnapshotActionGoal','pr2_laser_snapshotter/TiltLaserSnapshotActionResult','pr2_laser_snapshotter/TiltLaserSnapshotActionFeedback']
00180
00181 def __init__(self, *args, **kwds):
00182 """
00183 Constructor. Any message fields that are implicitly/explicitly
00184 set to None will be assigned a default value. The recommend
00185 use is keyword arguments as this is more robust to future message
00186 changes. You cannot mix in-order arguments and keyword arguments.
00187
00188 The available fields are:
00189 action_goal,action_result,action_feedback
00190
00191 @param args: complete set of field values, in .msg order
00192 @param kwds: use keyword arguments corresponding to message field names
00193 to set specific fields.
00194 """
00195 if args or kwds:
00196 super(TiltLaserSnapshotAction, self).__init__(*args, **kwds)
00197 #message fields cannot be None, assign default values for those that are
00198 if self.action_goal is None:
00199 self.action_goal = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionGoal()
00200 if self.action_result is None:
00201 self.action_result = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionResult()
00202 if self.action_feedback is None:
00203 self.action_feedback = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionFeedback()
00204 else:
00205 self.action_goal = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionGoal()
00206 self.action_result = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionResult()
00207 self.action_feedback = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionFeedback()
00208
00209 def _get_types(self):
00210 """
00211 internal API method
00212 """
00213 return self._slot_types
00214
00215 def serialize(self, buff):
00216 """
00217 serialize message into buffer
00218 @param buff: buffer
00219 @type buff: StringIO
00220 """
00221 try:
00222 _x = self
00223 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs))
00224 _x = self.action_goal.header.frame_id
00225 length = len(_x)
00226 buff.write(struct.pack('<I%ss'%length, length, _x))
00227 _x = self
00228 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs))
00229 _x = self.action_goal.goal_id.id
00230 length = len(_x)
00231 buff.write(struct.pack('<I%ss'%length, length, _x))
00232 _x = self
00233 buff.write(_struct_3d3I.pack(_x.action_goal.goal.angle_begin, _x.action_goal.goal.angle_end, _x.action_goal.goal.duration, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs))
00234 _x = self.action_result.header.frame_id
00235 length = len(_x)
00236 buff.write(struct.pack('<I%ss'%length, length, _x))
00237 _x = self
00238 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs))
00239 _x = self.action_result.status.goal_id.id
00240 length = len(_x)
00241 buff.write(struct.pack('<I%ss'%length, length, _x))
00242 buff.write(_struct_B.pack(self.action_result.status.status))
00243 _x = self.action_result.status.text
00244 length = len(_x)
00245 buff.write(struct.pack('<I%ss'%length, length, _x))
00246 _x = self
00247 buff.write(_struct_3I.pack(_x.action_result.result.cloud.header.seq, _x.action_result.result.cloud.header.stamp.secs, _x.action_result.result.cloud.header.stamp.nsecs))
00248 _x = self.action_result.result.cloud.header.frame_id
00249 length = len(_x)
00250 buff.write(struct.pack('<I%ss'%length, length, _x))
00251 length = len(self.action_result.result.cloud.points)
00252 buff.write(_struct_I.pack(length))
00253 for val1 in self.action_result.result.cloud.points:
00254 _x = val1
00255 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
00256 length = len(self.action_result.result.cloud.channels)
00257 buff.write(_struct_I.pack(length))
00258 for val1 in self.action_result.result.cloud.channels:
00259 _x = val1.name
00260 length = len(_x)
00261 buff.write(struct.pack('<I%ss'%length, length, _x))
00262 length = len(val1.values)
00263 buff.write(_struct_I.pack(length))
00264 pattern = '<%sf'%length
00265 buff.write(struct.pack(pattern, *val1.values))
00266 _x = self
00267 buff.write(_struct_3I.pack(_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs))
00268 _x = self.action_feedback.header.frame_id
00269 length = len(_x)
00270 buff.write(struct.pack('<I%ss'%length, length, _x))
00271 _x = self
00272 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs))
00273 _x = self.action_feedback.status.goal_id.id
00274 length = len(_x)
00275 buff.write(struct.pack('<I%ss'%length, length, _x))
00276 buff.write(_struct_B.pack(self.action_feedback.status.status))
00277 _x = self.action_feedback.status.text
00278 length = len(_x)
00279 buff.write(struct.pack('<I%ss'%length, length, _x))
00280 except struct.error, se: self._check_types(se)
00281 except TypeError, te: self._check_types(te)
00282
00283 def deserialize(self, str):
00284 """
00285 unpack serialized message in str into this message instance
00286 @param str: byte array of serialized message
00287 @type str: str
00288 """
00289 try:
00290 if self.action_goal is None:
00291 self.action_goal = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionGoal()
00292 if self.action_result is None:
00293 self.action_result = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionResult()
00294 if self.action_feedback is None:
00295 self.action_feedback = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionFeedback()
00296 end = 0
00297 _x = self
00298 start = end
00299 end += 12
00300 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00301 start = end
00302 end += 4
00303 (length,) = _struct_I.unpack(str[start:end])
00304 start = end
00305 end += length
00306 self.action_goal.header.frame_id = str[start:end]
00307 _x = self
00308 start = end
00309 end += 8
00310 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00311 start = end
00312 end += 4
00313 (length,) = _struct_I.unpack(str[start:end])
00314 start = end
00315 end += length
00316 self.action_goal.goal_id.id = str[start:end]
00317 _x = self
00318 start = end
00319 end += 36
00320 (_x.action_goal.goal.angle_begin, _x.action_goal.goal.angle_end, _x.action_goal.goal.duration, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_3d3I.unpack(str[start:end])
00321 start = end
00322 end += 4
00323 (length,) = _struct_I.unpack(str[start:end])
00324 start = end
00325 end += length
00326 self.action_result.header.frame_id = str[start:end]
00327 _x = self
00328 start = end
00329 end += 8
00330 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00331 start = end
00332 end += 4
00333 (length,) = _struct_I.unpack(str[start:end])
00334 start = end
00335 end += length
00336 self.action_result.status.goal_id.id = str[start:end]
00337 start = end
00338 end += 1
00339 (self.action_result.status.status,) = _struct_B.unpack(str[start:end])
00340 start = end
00341 end += 4
00342 (length,) = _struct_I.unpack(str[start:end])
00343 start = end
00344 end += length
00345 self.action_result.status.text = str[start:end]
00346 _x = self
00347 start = end
00348 end += 12
00349 (_x.action_result.result.cloud.header.seq, _x.action_result.result.cloud.header.stamp.secs, _x.action_result.result.cloud.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00350 start = end
00351 end += 4
00352 (length,) = _struct_I.unpack(str[start:end])
00353 start = end
00354 end += length
00355 self.action_result.result.cloud.header.frame_id = str[start:end]
00356 start = end
00357 end += 4
00358 (length,) = _struct_I.unpack(str[start:end])
00359 self.action_result.result.cloud.points = []
00360 for i in xrange(0, length):
00361 val1 = geometry_msgs.msg.Point32()
00362 _x = val1
00363 start = end
00364 end += 12
00365 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
00366 self.action_result.result.cloud.points.append(val1)
00367 start = end
00368 end += 4
00369 (length,) = _struct_I.unpack(str[start:end])
00370 self.action_result.result.cloud.channels = []
00371 for i in xrange(0, length):
00372 val1 = sensor_msgs.msg.ChannelFloat32()
00373 start = end
00374 end += 4
00375 (length,) = _struct_I.unpack(str[start:end])
00376 start = end
00377 end += length
00378 val1.name = str[start:end]
00379 start = end
00380 end += 4
00381 (length,) = _struct_I.unpack(str[start:end])
00382 pattern = '<%sf'%length
00383 start = end
00384 end += struct.calcsize(pattern)
00385 val1.values = struct.unpack(pattern, str[start:end])
00386 self.action_result.result.cloud.channels.append(val1)
00387 _x = self
00388 start = end
00389 end += 12
00390 (_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00391 start = end
00392 end += 4
00393 (length,) = _struct_I.unpack(str[start:end])
00394 start = end
00395 end += length
00396 self.action_feedback.header.frame_id = str[start:end]
00397 _x = self
00398 start = end
00399 end += 8
00400 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00401 start = end
00402 end += 4
00403 (length,) = _struct_I.unpack(str[start:end])
00404 start = end
00405 end += length
00406 self.action_feedback.status.goal_id.id = str[start:end]
00407 start = end
00408 end += 1
00409 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end])
00410 start = end
00411 end += 4
00412 (length,) = _struct_I.unpack(str[start:end])
00413 start = end
00414 end += length
00415 self.action_feedback.status.text = str[start:end]
00416 return self
00417 except struct.error, e:
00418 raise roslib.message.DeserializationError(e) #most likely buffer underfill
00419
00420
00421 def serialize_numpy(self, buff, numpy):
00422 """
00423 serialize message with numpy array types into buffer
00424 @param buff: buffer
00425 @type buff: StringIO
00426 @param numpy: numpy python module
00427 @type numpy module
00428 """
00429 try:
00430 _x = self
00431 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs))
00432 _x = self.action_goal.header.frame_id
00433 length = len(_x)
00434 buff.write(struct.pack('<I%ss'%length, length, _x))
00435 _x = self
00436 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs))
00437 _x = self.action_goal.goal_id.id
00438 length = len(_x)
00439 buff.write(struct.pack('<I%ss'%length, length, _x))
00440 _x = self
00441 buff.write(_struct_3d3I.pack(_x.action_goal.goal.angle_begin, _x.action_goal.goal.angle_end, _x.action_goal.goal.duration, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs))
00442 _x = self.action_result.header.frame_id
00443 length = len(_x)
00444 buff.write(struct.pack('<I%ss'%length, length, _x))
00445 _x = self
00446 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs))
00447 _x = self.action_result.status.goal_id.id
00448 length = len(_x)
00449 buff.write(struct.pack('<I%ss'%length, length, _x))
00450 buff.write(_struct_B.pack(self.action_result.status.status))
00451 _x = self.action_result.status.text
00452 length = len(_x)
00453 buff.write(struct.pack('<I%ss'%length, length, _x))
00454 _x = self
00455 buff.write(_struct_3I.pack(_x.action_result.result.cloud.header.seq, _x.action_result.result.cloud.header.stamp.secs, _x.action_result.result.cloud.header.stamp.nsecs))
00456 _x = self.action_result.result.cloud.header.frame_id
00457 length = len(_x)
00458 buff.write(struct.pack('<I%ss'%length, length, _x))
00459 length = len(self.action_result.result.cloud.points)
00460 buff.write(_struct_I.pack(length))
00461 for val1 in self.action_result.result.cloud.points:
00462 _x = val1
00463 buff.write(_struct_3f.pack(_x.x, _x.y, _x.z))
00464 length = len(self.action_result.result.cloud.channels)
00465 buff.write(_struct_I.pack(length))
00466 for val1 in self.action_result.result.cloud.channels:
00467 _x = val1.name
00468 length = len(_x)
00469 buff.write(struct.pack('<I%ss'%length, length, _x))
00470 length = len(val1.values)
00471 buff.write(_struct_I.pack(length))
00472 pattern = '<%sf'%length
00473 buff.write(val1.values.tostring())
00474 _x = self
00475 buff.write(_struct_3I.pack(_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs))
00476 _x = self.action_feedback.header.frame_id
00477 length = len(_x)
00478 buff.write(struct.pack('<I%ss'%length, length, _x))
00479 _x = self
00480 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs))
00481 _x = self.action_feedback.status.goal_id.id
00482 length = len(_x)
00483 buff.write(struct.pack('<I%ss'%length, length, _x))
00484 buff.write(_struct_B.pack(self.action_feedback.status.status))
00485 _x = self.action_feedback.status.text
00486 length = len(_x)
00487 buff.write(struct.pack('<I%ss'%length, length, _x))
00488 except struct.error, se: self._check_types(se)
00489 except TypeError, te: self._check_types(te)
00490
00491 def deserialize_numpy(self, str, numpy):
00492 """
00493 unpack serialized message in str into this message instance using numpy for array types
00494 @param str: byte array of serialized message
00495 @type str: str
00496 @param numpy: numpy python module
00497 @type numpy: module
00498 """
00499 try:
00500 if self.action_goal is None:
00501 self.action_goal = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionGoal()
00502 if self.action_result is None:
00503 self.action_result = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionResult()
00504 if self.action_feedback is None:
00505 self.action_feedback = pr2_laser_snapshotter.msg.TiltLaserSnapshotActionFeedback()
00506 end = 0
00507 _x = self
00508 start = end
00509 end += 12
00510 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00511 start = end
00512 end += 4
00513 (length,) = _struct_I.unpack(str[start:end])
00514 start = end
00515 end += length
00516 self.action_goal.header.frame_id = str[start:end]
00517 _x = self
00518 start = end
00519 end += 8
00520 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00521 start = end
00522 end += 4
00523 (length,) = _struct_I.unpack(str[start:end])
00524 start = end
00525 end += length
00526 self.action_goal.goal_id.id = str[start:end]
00527 _x = self
00528 start = end
00529 end += 36
00530 (_x.action_goal.goal.angle_begin, _x.action_goal.goal.angle_end, _x.action_goal.goal.duration, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_3d3I.unpack(str[start:end])
00531 start = end
00532 end += 4
00533 (length,) = _struct_I.unpack(str[start:end])
00534 start = end
00535 end += length
00536 self.action_result.header.frame_id = str[start:end]
00537 _x = self
00538 start = end
00539 end += 8
00540 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00541 start = end
00542 end += 4
00543 (length,) = _struct_I.unpack(str[start:end])
00544 start = end
00545 end += length
00546 self.action_result.status.goal_id.id = str[start:end]
00547 start = end
00548 end += 1
00549 (self.action_result.status.status,) = _struct_B.unpack(str[start:end])
00550 start = end
00551 end += 4
00552 (length,) = _struct_I.unpack(str[start:end])
00553 start = end
00554 end += length
00555 self.action_result.status.text = str[start:end]
00556 _x = self
00557 start = end
00558 end += 12
00559 (_x.action_result.result.cloud.header.seq, _x.action_result.result.cloud.header.stamp.secs, _x.action_result.result.cloud.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00560 start = end
00561 end += 4
00562 (length,) = _struct_I.unpack(str[start:end])
00563 start = end
00564 end += length
00565 self.action_result.result.cloud.header.frame_id = str[start:end]
00566 start = end
00567 end += 4
00568 (length,) = _struct_I.unpack(str[start:end])
00569 self.action_result.result.cloud.points = []
00570 for i in xrange(0, length):
00571 val1 = geometry_msgs.msg.Point32()
00572 _x = val1
00573 start = end
00574 end += 12
00575 (_x.x, _x.y, _x.z,) = _struct_3f.unpack(str[start:end])
00576 self.action_result.result.cloud.points.append(val1)
00577 start = end
00578 end += 4
00579 (length,) = _struct_I.unpack(str[start:end])
00580 self.action_result.result.cloud.channels = []
00581 for i in xrange(0, length):
00582 val1 = sensor_msgs.msg.ChannelFloat32()
00583 start = end
00584 end += 4
00585 (length,) = _struct_I.unpack(str[start:end])
00586 start = end
00587 end += length
00588 val1.name = str[start:end]
00589 start = end
00590 end += 4
00591 (length,) = _struct_I.unpack(str[start:end])
00592 pattern = '<%sf'%length
00593 start = end
00594 end += struct.calcsize(pattern)
00595 val1.values = numpy.frombuffer(str[start:end], dtype=numpy.float32, count=length)
00596 self.action_result.result.cloud.channels.append(val1)
00597 _x = self
00598 start = end
00599 end += 12
00600 (_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00601 start = end
00602 end += 4
00603 (length,) = _struct_I.unpack(str[start:end])
00604 start = end
00605 end += length
00606 self.action_feedback.header.frame_id = str[start:end]
00607 _x = self
00608 start = end
00609 end += 8
00610 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00611 start = end
00612 end += 4
00613 (length,) = _struct_I.unpack(str[start:end])
00614 start = end
00615 end += length
00616 self.action_feedback.status.goal_id.id = str[start:end]
00617 start = end
00618 end += 1
00619 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end])
00620 start = end
00621 end += 4
00622 (length,) = _struct_I.unpack(str[start:end])
00623 start = end
00624 end += length
00625 self.action_feedback.status.text = str[start:end]
00626 return self
00627 except struct.error, e:
00628 raise roslib.message.DeserializationError(e) #most likely buffer underfill
00629
00630 _struct_I = roslib.message.struct_I
00631 _struct_3d3I = struct.Struct("<3d3I")
00632 _struct_3I = struct.Struct("<3I")
00633 _struct_B = struct.Struct("<B")
00634 _struct_2I = struct.Struct("<2I")
00635 _struct_3f = struct.Struct("<3f")