$search
00001 """autogenerated by genmsg_py from BlockDetectionAction.msg. Do not edit.""" 00002 import roslib.message 00003 import struct 00004 00005 import turtlebot_block_manipulation.msg 00006 import geometry_msgs.msg 00007 import roslib.rostime 00008 import actionlib_msgs.msg 00009 import std_msgs.msg 00010 00011 class BlockDetectionAction(roslib.message.Message): 00012 _md5sum = "32b318b57a8d5ec852090b7f3b7885e0" 00013 _type = "turtlebot_block_manipulation/BlockDetectionAction" 00014 _has_header = False #flag to mark the presence of a Header object 00015 _full_text = """# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00016 00017 BlockDetectionActionGoal action_goal 00018 BlockDetectionActionResult action_result 00019 BlockDetectionActionFeedback action_feedback 00020 00021 ================================================================================ 00022 MSG: turtlebot_block_manipulation/BlockDetectionActionGoal 00023 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00024 00025 Header header 00026 actionlib_msgs/GoalID goal_id 00027 BlockDetectionGoal goal 00028 00029 ================================================================================ 00030 MSG: std_msgs/Header 00031 # Standard metadata for higher-level stamped data types. 00032 # This is generally used to communicate timestamped data 00033 # in a particular coordinate frame. 00034 # 00035 # sequence ID: consecutively increasing ID 00036 uint32 seq 00037 #Two-integer timestamp that is expressed as: 00038 # * stamp.secs: seconds (stamp_secs) since epoch 00039 # * stamp.nsecs: nanoseconds since stamp_secs 00040 # time-handling sugar is provided by the client library 00041 time stamp 00042 #Frame this data is associated with 00043 # 0: no frame 00044 # 1: global frame 00045 string frame_id 00046 00047 ================================================================================ 00048 MSG: actionlib_msgs/GoalID 00049 # The stamp should store the time at which this goal was requested. 00050 # It is used by an action server when it tries to preempt all 00051 # goals that were requested before a certain time 00052 time stamp 00053 00054 # The id provides a way to associate feedback and 00055 # result message with specific goal requests. The id 00056 # specified must be unique. 00057 string id 00058 00059 00060 ================================================================================ 00061 MSG: turtlebot_block_manipulation/BlockDetectionGoal 00062 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00063 #goal definition 00064 string frame 00065 float32 table_height 00066 float32 block_size 00067 00068 ================================================================================ 00069 MSG: turtlebot_block_manipulation/BlockDetectionActionResult 00070 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00071 00072 Header header 00073 actionlib_msgs/GoalStatus status 00074 BlockDetectionResult 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: turtlebot_block_manipulation/BlockDetectionResult 00104 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00105 #result definition 00106 geometry_msgs/PoseArray blocks 00107 00108 ================================================================================ 00109 MSG: geometry_msgs/PoseArray 00110 # An array of poses with a header for global reference. 00111 00112 Header header 00113 00114 geometry_msgs/Pose[] poses 00115 00116 ================================================================================ 00117 MSG: geometry_msgs/Pose 00118 # A representation of pose in free space, composed of postion and orientation. 00119 Point position 00120 Quaternion orientation 00121 00122 ================================================================================ 00123 MSG: geometry_msgs/Point 00124 # This contains the position of a point in free space 00125 float64 x 00126 float64 y 00127 float64 z 00128 00129 ================================================================================ 00130 MSG: geometry_msgs/Quaternion 00131 # This represents an orientation in free space in quaternion form. 00132 00133 float64 x 00134 float64 y 00135 float64 z 00136 float64 w 00137 00138 ================================================================================ 00139 MSG: turtlebot_block_manipulation/BlockDetectionActionFeedback 00140 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00141 00142 Header header 00143 actionlib_msgs/GoalStatus status 00144 BlockDetectionFeedback feedback 00145 00146 ================================================================================ 00147 MSG: turtlebot_block_manipulation/BlockDetectionFeedback 00148 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ====== 00149 #feedback 00150 00151 00152 """ 00153 __slots__ = ['action_goal','action_result','action_feedback'] 00154 _slot_types = ['turtlebot_block_manipulation/BlockDetectionActionGoal','turtlebot_block_manipulation/BlockDetectionActionResult','turtlebot_block_manipulation/BlockDetectionActionFeedback'] 00155 00156 def __init__(self, *args, **kwds): 00157 """ 00158 Constructor. Any message fields that are implicitly/explicitly 00159 set to None will be assigned a default value. The recommend 00160 use is keyword arguments as this is more robust to future message 00161 changes. You cannot mix in-order arguments and keyword arguments. 00162 00163 The available fields are: 00164 action_goal,action_result,action_feedback 00165 00166 @param args: complete set of field values, in .msg order 00167 @param kwds: use keyword arguments corresponding to message field names 00168 to set specific fields. 00169 """ 00170 if args or kwds: 00171 super(BlockDetectionAction, self).__init__(*args, **kwds) 00172 #message fields cannot be None, assign default values for those that are 00173 if self.action_goal is None: 00174 self.action_goal = turtlebot_block_manipulation.msg.BlockDetectionActionGoal() 00175 if self.action_result is None: 00176 self.action_result = turtlebot_block_manipulation.msg.BlockDetectionActionResult() 00177 if self.action_feedback is None: 00178 self.action_feedback = turtlebot_block_manipulation.msg.BlockDetectionActionFeedback() 00179 else: 00180 self.action_goal = turtlebot_block_manipulation.msg.BlockDetectionActionGoal() 00181 self.action_result = turtlebot_block_manipulation.msg.BlockDetectionActionResult() 00182 self.action_feedback = turtlebot_block_manipulation.msg.BlockDetectionActionFeedback() 00183 00184 def _get_types(self): 00185 """ 00186 internal API method 00187 """ 00188 return self._slot_types 00189 00190 def serialize(self, buff): 00191 """ 00192 serialize message into buffer 00193 @param buff: buffer 00194 @type buff: StringIO 00195 """ 00196 try: 00197 _x = self 00198 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs)) 00199 _x = self.action_goal.header.frame_id 00200 length = len(_x) 00201 buff.write(struct.pack('<I%ss'%length, length, _x)) 00202 _x = self 00203 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs)) 00204 _x = self.action_goal.goal_id.id 00205 length = len(_x) 00206 buff.write(struct.pack('<I%ss'%length, length, _x)) 00207 _x = self.action_goal.goal.frame 00208 length = len(_x) 00209 buff.write(struct.pack('<I%ss'%length, length, _x)) 00210 _x = self 00211 buff.write(_struct_2f3I.pack(_x.action_goal.goal.table_height, _x.action_goal.goal.block_size, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs)) 00212 _x = self.action_result.header.frame_id 00213 length = len(_x) 00214 buff.write(struct.pack('<I%ss'%length, length, _x)) 00215 _x = self 00216 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs)) 00217 _x = self.action_result.status.goal_id.id 00218 length = len(_x) 00219 buff.write(struct.pack('<I%ss'%length, length, _x)) 00220 buff.write(_struct_B.pack(self.action_result.status.status)) 00221 _x = self.action_result.status.text 00222 length = len(_x) 00223 buff.write(struct.pack('<I%ss'%length, length, _x)) 00224 _x = self 00225 buff.write(_struct_3I.pack(_x.action_result.result.blocks.header.seq, _x.action_result.result.blocks.header.stamp.secs, _x.action_result.result.blocks.header.stamp.nsecs)) 00226 _x = self.action_result.result.blocks.header.frame_id 00227 length = len(_x) 00228 buff.write(struct.pack('<I%ss'%length, length, _x)) 00229 length = len(self.action_result.result.blocks.poses) 00230 buff.write(_struct_I.pack(length)) 00231 for val1 in self.action_result.result.blocks.poses: 00232 _v1 = val1.position 00233 _x = _v1 00234 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z)) 00235 _v2 = val1.orientation 00236 _x = _v2 00237 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w)) 00238 _x = self 00239 buff.write(_struct_3I.pack(_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs)) 00240 _x = self.action_feedback.header.frame_id 00241 length = len(_x) 00242 buff.write(struct.pack('<I%ss'%length, length, _x)) 00243 _x = self 00244 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs)) 00245 _x = self.action_feedback.status.goal_id.id 00246 length = len(_x) 00247 buff.write(struct.pack('<I%ss'%length, length, _x)) 00248 buff.write(_struct_B.pack(self.action_feedback.status.status)) 00249 _x = self.action_feedback.status.text 00250 length = len(_x) 00251 buff.write(struct.pack('<I%ss'%length, length, _x)) 00252 except struct.error as se: self._check_types(se) 00253 except TypeError as te: self._check_types(te) 00254 00255 def deserialize(self, str): 00256 """ 00257 unpack serialized message in str into this message instance 00258 @param str: byte array of serialized message 00259 @type str: str 00260 """ 00261 try: 00262 if self.action_goal is None: 00263 self.action_goal = turtlebot_block_manipulation.msg.BlockDetectionActionGoal() 00264 if self.action_result is None: 00265 self.action_result = turtlebot_block_manipulation.msg.BlockDetectionActionResult() 00266 if self.action_feedback is None: 00267 self.action_feedback = turtlebot_block_manipulation.msg.BlockDetectionActionFeedback() 00268 end = 0 00269 _x = self 00270 start = end 00271 end += 12 00272 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00273 start = end 00274 end += 4 00275 (length,) = _struct_I.unpack(str[start:end]) 00276 start = end 00277 end += length 00278 self.action_goal.header.frame_id = str[start:end] 00279 _x = self 00280 start = end 00281 end += 8 00282 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00283 start = end 00284 end += 4 00285 (length,) = _struct_I.unpack(str[start:end]) 00286 start = end 00287 end += length 00288 self.action_goal.goal_id.id = str[start:end] 00289 start = end 00290 end += 4 00291 (length,) = _struct_I.unpack(str[start:end]) 00292 start = end 00293 end += length 00294 self.action_goal.goal.frame = str[start:end] 00295 _x = self 00296 start = end 00297 end += 20 00298 (_x.action_goal.goal.table_height, _x.action_goal.goal.block_size, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_2f3I.unpack(str[start:end]) 00299 start = end 00300 end += 4 00301 (length,) = _struct_I.unpack(str[start:end]) 00302 start = end 00303 end += length 00304 self.action_result.header.frame_id = str[start:end] 00305 _x = self 00306 start = end 00307 end += 8 00308 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00309 start = end 00310 end += 4 00311 (length,) = _struct_I.unpack(str[start:end]) 00312 start = end 00313 end += length 00314 self.action_result.status.goal_id.id = str[start:end] 00315 start = end 00316 end += 1 00317 (self.action_result.status.status,) = _struct_B.unpack(str[start:end]) 00318 start = end 00319 end += 4 00320 (length,) = _struct_I.unpack(str[start:end]) 00321 start = end 00322 end += length 00323 self.action_result.status.text = str[start:end] 00324 _x = self 00325 start = end 00326 end += 12 00327 (_x.action_result.result.blocks.header.seq, _x.action_result.result.blocks.header.stamp.secs, _x.action_result.result.blocks.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00328 start = end 00329 end += 4 00330 (length,) = _struct_I.unpack(str[start:end]) 00331 start = end 00332 end += length 00333 self.action_result.result.blocks.header.frame_id = str[start:end] 00334 start = end 00335 end += 4 00336 (length,) = _struct_I.unpack(str[start:end]) 00337 self.action_result.result.blocks.poses = [] 00338 for i in range(0, length): 00339 val1 = geometry_msgs.msg.Pose() 00340 _v3 = val1.position 00341 _x = _v3 00342 start = end 00343 end += 24 00344 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end]) 00345 _v4 = val1.orientation 00346 _x = _v4 00347 start = end 00348 end += 32 00349 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end]) 00350 self.action_result.result.blocks.poses.append(val1) 00351 _x = self 00352 start = end 00353 end += 12 00354 (_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00355 start = end 00356 end += 4 00357 (length,) = _struct_I.unpack(str[start:end]) 00358 start = end 00359 end += length 00360 self.action_feedback.header.frame_id = str[start:end] 00361 _x = self 00362 start = end 00363 end += 8 00364 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00365 start = end 00366 end += 4 00367 (length,) = _struct_I.unpack(str[start:end]) 00368 start = end 00369 end += length 00370 self.action_feedback.status.goal_id.id = str[start:end] 00371 start = end 00372 end += 1 00373 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end]) 00374 start = end 00375 end += 4 00376 (length,) = _struct_I.unpack(str[start:end]) 00377 start = end 00378 end += length 00379 self.action_feedback.status.text = str[start:end] 00380 return self 00381 except struct.error as e: 00382 raise roslib.message.DeserializationError(e) #most likely buffer underfill 00383 00384 00385 def serialize_numpy(self, buff, numpy): 00386 """ 00387 serialize message with numpy array types into buffer 00388 @param buff: buffer 00389 @type buff: StringIO 00390 @param numpy: numpy python module 00391 @type numpy module 00392 """ 00393 try: 00394 _x = self 00395 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs)) 00396 _x = self.action_goal.header.frame_id 00397 length = len(_x) 00398 buff.write(struct.pack('<I%ss'%length, length, _x)) 00399 _x = self 00400 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs)) 00401 _x = self.action_goal.goal_id.id 00402 length = len(_x) 00403 buff.write(struct.pack('<I%ss'%length, length, _x)) 00404 _x = self.action_goal.goal.frame 00405 length = len(_x) 00406 buff.write(struct.pack('<I%ss'%length, length, _x)) 00407 _x = self 00408 buff.write(_struct_2f3I.pack(_x.action_goal.goal.table_height, _x.action_goal.goal.block_size, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs)) 00409 _x = self.action_result.header.frame_id 00410 length = len(_x) 00411 buff.write(struct.pack('<I%ss'%length, length, _x)) 00412 _x = self 00413 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs)) 00414 _x = self.action_result.status.goal_id.id 00415 length = len(_x) 00416 buff.write(struct.pack('<I%ss'%length, length, _x)) 00417 buff.write(_struct_B.pack(self.action_result.status.status)) 00418 _x = self.action_result.status.text 00419 length = len(_x) 00420 buff.write(struct.pack('<I%ss'%length, length, _x)) 00421 _x = self 00422 buff.write(_struct_3I.pack(_x.action_result.result.blocks.header.seq, _x.action_result.result.blocks.header.stamp.secs, _x.action_result.result.blocks.header.stamp.nsecs)) 00423 _x = self.action_result.result.blocks.header.frame_id 00424 length = len(_x) 00425 buff.write(struct.pack('<I%ss'%length, length, _x)) 00426 length = len(self.action_result.result.blocks.poses) 00427 buff.write(_struct_I.pack(length)) 00428 for val1 in self.action_result.result.blocks.poses: 00429 _v5 = val1.position 00430 _x = _v5 00431 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z)) 00432 _v6 = val1.orientation 00433 _x = _v6 00434 buff.write(_struct_4d.pack(_x.x, _x.y, _x.z, _x.w)) 00435 _x = self 00436 buff.write(_struct_3I.pack(_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs)) 00437 _x = self.action_feedback.header.frame_id 00438 length = len(_x) 00439 buff.write(struct.pack('<I%ss'%length, length, _x)) 00440 _x = self 00441 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs)) 00442 _x = self.action_feedback.status.goal_id.id 00443 length = len(_x) 00444 buff.write(struct.pack('<I%ss'%length, length, _x)) 00445 buff.write(_struct_B.pack(self.action_feedback.status.status)) 00446 _x = self.action_feedback.status.text 00447 length = len(_x) 00448 buff.write(struct.pack('<I%ss'%length, length, _x)) 00449 except struct.error as se: self._check_types(se) 00450 except TypeError as te: self._check_types(te) 00451 00452 def deserialize_numpy(self, str, numpy): 00453 """ 00454 unpack serialized message in str into this message instance using numpy for array types 00455 @param str: byte array of serialized message 00456 @type str: str 00457 @param numpy: numpy python module 00458 @type numpy: module 00459 """ 00460 try: 00461 if self.action_goal is None: 00462 self.action_goal = turtlebot_block_manipulation.msg.BlockDetectionActionGoal() 00463 if self.action_result is None: 00464 self.action_result = turtlebot_block_manipulation.msg.BlockDetectionActionResult() 00465 if self.action_feedback is None: 00466 self.action_feedback = turtlebot_block_manipulation.msg.BlockDetectionActionFeedback() 00467 end = 0 00468 _x = self 00469 start = end 00470 end += 12 00471 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00472 start = end 00473 end += 4 00474 (length,) = _struct_I.unpack(str[start:end]) 00475 start = end 00476 end += length 00477 self.action_goal.header.frame_id = str[start:end] 00478 _x = self 00479 start = end 00480 end += 8 00481 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00482 start = end 00483 end += 4 00484 (length,) = _struct_I.unpack(str[start:end]) 00485 start = end 00486 end += length 00487 self.action_goal.goal_id.id = str[start:end] 00488 start = end 00489 end += 4 00490 (length,) = _struct_I.unpack(str[start:end]) 00491 start = end 00492 end += length 00493 self.action_goal.goal.frame = str[start:end] 00494 _x = self 00495 start = end 00496 end += 20 00497 (_x.action_goal.goal.table_height, _x.action_goal.goal.block_size, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_2f3I.unpack(str[start:end]) 00498 start = end 00499 end += 4 00500 (length,) = _struct_I.unpack(str[start:end]) 00501 start = end 00502 end += length 00503 self.action_result.header.frame_id = str[start:end] 00504 _x = self 00505 start = end 00506 end += 8 00507 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00508 start = end 00509 end += 4 00510 (length,) = _struct_I.unpack(str[start:end]) 00511 start = end 00512 end += length 00513 self.action_result.status.goal_id.id = str[start:end] 00514 start = end 00515 end += 1 00516 (self.action_result.status.status,) = _struct_B.unpack(str[start:end]) 00517 start = end 00518 end += 4 00519 (length,) = _struct_I.unpack(str[start:end]) 00520 start = end 00521 end += length 00522 self.action_result.status.text = str[start:end] 00523 _x = self 00524 start = end 00525 end += 12 00526 (_x.action_result.result.blocks.header.seq, _x.action_result.result.blocks.header.stamp.secs, _x.action_result.result.blocks.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00527 start = end 00528 end += 4 00529 (length,) = _struct_I.unpack(str[start:end]) 00530 start = end 00531 end += length 00532 self.action_result.result.blocks.header.frame_id = str[start:end] 00533 start = end 00534 end += 4 00535 (length,) = _struct_I.unpack(str[start:end]) 00536 self.action_result.result.blocks.poses = [] 00537 for i in range(0, length): 00538 val1 = geometry_msgs.msg.Pose() 00539 _v7 = val1.position 00540 _x = _v7 00541 start = end 00542 end += 24 00543 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end]) 00544 _v8 = val1.orientation 00545 _x = _v8 00546 start = end 00547 end += 32 00548 (_x.x, _x.y, _x.z, _x.w,) = _struct_4d.unpack(str[start:end]) 00549 self.action_result.result.blocks.poses.append(val1) 00550 _x = self 00551 start = end 00552 end += 12 00553 (_x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end]) 00554 start = end 00555 end += 4 00556 (length,) = _struct_I.unpack(str[start:end]) 00557 start = end 00558 end += length 00559 self.action_feedback.header.frame_id = str[start:end] 00560 _x = self 00561 start = end 00562 end += 8 00563 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end]) 00564 start = end 00565 end += 4 00566 (length,) = _struct_I.unpack(str[start:end]) 00567 start = end 00568 end += length 00569 self.action_feedback.status.goal_id.id = str[start:end] 00570 start = end 00571 end += 1 00572 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end]) 00573 start = end 00574 end += 4 00575 (length,) = _struct_I.unpack(str[start:end]) 00576 start = end 00577 end += length 00578 self.action_feedback.status.text = str[start:end] 00579 return self 00580 except struct.error as e: 00581 raise roslib.message.DeserializationError(e) #most likely buffer underfill 00582 00583 _struct_I = roslib.message.struct_I 00584 _struct_B = struct.Struct("<B") 00585 _struct_2f3I = struct.Struct("<2f3I") 00586 _struct_3I = struct.Struct("<3I") 00587 _struct_4d = struct.Struct("<4d") 00588 _struct_2I = struct.Struct("<2I") 00589 _struct_3d = struct.Struct("<3d")