00001 """autogenerated by genpy from pr2_gripper_sensor_msgs/PR2GripperGrabAction.msg. Do not edit."""
00002 import sys
00003 python3 = True if sys.hexversion > 0x03000000 else False
00004 import genpy
00005 import struct
00006
00007 import genpy
00008 import actionlib_msgs.msg
00009 import pr2_gripper_sensor_msgs.msg
00010 import std_msgs.msg
00011
00012 class PR2GripperGrabAction(genpy.Message):
00013 _md5sum = "f467562414aabe5b90666be976b0c379"
00014 _type = "pr2_gripper_sensor_msgs/PR2GripperGrabAction"
00015 _has_header = False
00016 _full_text = """# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00017
00018 PR2GripperGrabActionGoal action_goal
00019 PR2GripperGrabActionResult action_result
00020 PR2GripperGrabActionFeedback action_feedback
00021
00022 ================================================================================
00023 MSG: pr2_gripper_sensor_msgs/PR2GripperGrabActionGoal
00024 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00025
00026 Header header
00027 actionlib_msgs/GoalID goal_id
00028 PR2GripperGrabGoal 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_gripper_sensor_msgs/PR2GripperGrabGoal
00063 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00064 #goal
00065 PR2GripperGrabCommand command
00066
00067 ================================================================================
00068 MSG: pr2_gripper_sensor_msgs/PR2GripperGrabCommand
00069 # The gain to use to evaluate how hard an object should be
00070 # grasped after it is contacted. This is based on hardness
00071 # estimation as outlined in TRO paper (see wiki).
00072 #
00073 # Try 0.03
00074 #
00075 # Units (N/(m/s^2))
00076 float64 hardness_gain
00077
00078 ================================================================================
00079 MSG: pr2_gripper_sensor_msgs/PR2GripperGrabActionResult
00080 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00081
00082 Header header
00083 actionlib_msgs/GoalStatus status
00084 PR2GripperGrabResult result
00085
00086 ================================================================================
00087 MSG: actionlib_msgs/GoalStatus
00088 GoalID goal_id
00089 uint8 status
00090 uint8 PENDING = 0 # The goal has yet to be processed by the action server
00091 uint8 ACTIVE = 1 # The goal is currently being processed by the action server
00092 uint8 PREEMPTED = 2 # The goal received a cancel request after it started executing
00093 # and has since completed its execution (Terminal State)
00094 uint8 SUCCEEDED = 3 # The goal was achieved successfully by the action server (Terminal State)
00095 uint8 ABORTED = 4 # The goal was aborted during execution by the action server due
00096 # to some failure (Terminal State)
00097 uint8 REJECTED = 5 # The goal was rejected by the action server without being processed,
00098 # because the goal was unattainable or invalid (Terminal State)
00099 uint8 PREEMPTING = 6 # The goal received a cancel request after it started executing
00100 # and has not yet completed execution
00101 uint8 RECALLING = 7 # The goal received a cancel request before it started executing,
00102 # but the action server has not yet confirmed that the goal is canceled
00103 uint8 RECALLED = 8 # The goal received a cancel request before it started executing
00104 # and was successfully cancelled (Terminal State)
00105 uint8 LOST = 9 # An action client can determine that a goal is LOST. This should not be
00106 # sent over the wire by an action server
00107
00108 #Allow for the user to associate a string with GoalStatus for debugging
00109 string text
00110
00111
00112 ================================================================================
00113 MSG: pr2_gripper_sensor_msgs/PR2GripperGrabResult
00114 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00115 #result
00116 PR2GripperGrabData data
00117
00118 ================================================================================
00119 MSG: pr2_gripper_sensor_msgs/PR2GripperGrabData
00120 # the control state of our realtime controller
00121 PR2GripperSensorRTState rtstate
00122 ================================================================================
00123 MSG: pr2_gripper_sensor_msgs/PR2GripperSensorRTState
00124 # the control state of our realtime controller
00125 int8 realtime_controller_state
00126
00127 # predefined values to indicate our realtime_controller_state
00128 int8 DISABLED = 0
00129 int8 POSITION_SERVO = 3
00130 int8 FORCE_SERVO = 4
00131 int8 FIND_CONTACT = 5
00132 int8 SLIP_SERVO = 6
00133 ================================================================================
00134 MSG: pr2_gripper_sensor_msgs/PR2GripperGrabActionFeedback
00135 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00136
00137 Header header
00138 actionlib_msgs/GoalStatus status
00139 PR2GripperGrabFeedback feedback
00140
00141 ================================================================================
00142 MSG: pr2_gripper_sensor_msgs/PR2GripperGrabFeedback
00143 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00144
00145 #feedback
00146 PR2GripperGrabData data
00147
00148
00149 """
00150 __slots__ = ['action_goal','action_result','action_feedback']
00151 _slot_types = ['pr2_gripper_sensor_msgs/PR2GripperGrabActionGoal','pr2_gripper_sensor_msgs/PR2GripperGrabActionResult','pr2_gripper_sensor_msgs/PR2GripperGrabActionFeedback']
00152
00153 def __init__(self, *args, **kwds):
00154 """
00155 Constructor. Any message fields that are implicitly/explicitly
00156 set to None will be assigned a default value. The recommend
00157 use is keyword arguments as this is more robust to future message
00158 changes. You cannot mix in-order arguments and keyword arguments.
00159
00160 The available fields are:
00161 action_goal,action_result,action_feedback
00162
00163 :param args: complete set of field values, in .msg order
00164 :param kwds: use keyword arguments corresponding to message field names
00165 to set specific fields.
00166 """
00167 if args or kwds:
00168 super(PR2GripperGrabAction, self).__init__(*args, **kwds)
00169
00170 if self.action_goal is None:
00171 self.action_goal = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionGoal()
00172 if self.action_result is None:
00173 self.action_result = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionResult()
00174 if self.action_feedback is None:
00175 self.action_feedback = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionFeedback()
00176 else:
00177 self.action_goal = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionGoal()
00178 self.action_result = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionResult()
00179 self.action_feedback = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionFeedback()
00180
00181 def _get_types(self):
00182 """
00183 internal API method
00184 """
00185 return self._slot_types
00186
00187 def serialize(self, buff):
00188 """
00189 serialize message into buffer
00190 :param buff: buffer, ``StringIO``
00191 """
00192 try:
00193 _x = self
00194 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs))
00195 _x = self.action_goal.header.frame_id
00196 length = len(_x)
00197 if python3 or type(_x) == unicode:
00198 _x = _x.encode('utf-8')
00199 length = len(_x)
00200 buff.write(struct.pack('<I%ss'%length, length, _x))
00201 _x = self
00202 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs))
00203 _x = self.action_goal.goal_id.id
00204 length = len(_x)
00205 if python3 or type(_x) == unicode:
00206 _x = _x.encode('utf-8')
00207 length = len(_x)
00208 buff.write(struct.pack('<I%ss'%length, length, _x))
00209 _x = self
00210 buff.write(_struct_d3I.pack(_x.action_goal.goal.command.hardness_gain, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs))
00211 _x = self.action_result.header.frame_id
00212 length = len(_x)
00213 if python3 or type(_x) == unicode:
00214 _x = _x.encode('utf-8')
00215 length = len(_x)
00216 buff.write(struct.pack('<I%ss'%length, length, _x))
00217 _x = self
00218 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs))
00219 _x = self.action_result.status.goal_id.id
00220 length = len(_x)
00221 if python3 or type(_x) == unicode:
00222 _x = _x.encode('utf-8')
00223 length = len(_x)
00224 buff.write(struct.pack('<I%ss'%length, length, _x))
00225 buff.write(_struct_B.pack(self.action_result.status.status))
00226 _x = self.action_result.status.text
00227 length = len(_x)
00228 if python3 or type(_x) == unicode:
00229 _x = _x.encode('utf-8')
00230 length = len(_x)
00231 buff.write(struct.pack('<I%ss'%length, length, _x))
00232 _x = self
00233 buff.write(_struct_b3I.pack(_x.action_result.result.data.rtstate.realtime_controller_state, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs))
00234 _x = self.action_feedback.header.frame_id
00235 length = len(_x)
00236 if python3 or type(_x) == unicode:
00237 _x = _x.encode('utf-8')
00238 length = len(_x)
00239 buff.write(struct.pack('<I%ss'%length, length, _x))
00240 _x = self
00241 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs))
00242 _x = self.action_feedback.status.goal_id.id
00243 length = len(_x)
00244 if python3 or type(_x) == unicode:
00245 _x = _x.encode('utf-8')
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 if python3 or type(_x) == unicode:
00252 _x = _x.encode('utf-8')
00253 length = len(_x)
00254 buff.write(struct.pack('<I%ss'%length, length, _x))
00255 buff.write(_struct_b.pack(self.action_feedback.feedback.data.rtstate.realtime_controller_state))
00256 except struct.error as se: self._check_types(se)
00257 except TypeError as te: self._check_types(te)
00258
00259 def deserialize(self, str):
00260 """
00261 unpack serialized message in str into this message instance
00262 :param str: byte array of serialized message, ``str``
00263 """
00264 try:
00265 if self.action_goal is None:
00266 self.action_goal = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionGoal()
00267 if self.action_result is None:
00268 self.action_result = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionResult()
00269 if self.action_feedback is None:
00270 self.action_feedback = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionFeedback()
00271 end = 0
00272 _x = self
00273 start = end
00274 end += 12
00275 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00276 start = end
00277 end += 4
00278 (length,) = _struct_I.unpack(str[start:end])
00279 start = end
00280 end += length
00281 if python3:
00282 self.action_goal.header.frame_id = str[start:end].decode('utf-8')
00283 else:
00284 self.action_goal.header.frame_id = str[start:end]
00285 _x = self
00286 start = end
00287 end += 8
00288 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00289 start = end
00290 end += 4
00291 (length,) = _struct_I.unpack(str[start:end])
00292 start = end
00293 end += length
00294 if python3:
00295 self.action_goal.goal_id.id = str[start:end].decode('utf-8')
00296 else:
00297 self.action_goal.goal_id.id = str[start:end]
00298 _x = self
00299 start = end
00300 end += 20
00301 (_x.action_goal.goal.command.hardness_gain, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_d3I.unpack(str[start:end])
00302 start = end
00303 end += 4
00304 (length,) = _struct_I.unpack(str[start:end])
00305 start = end
00306 end += length
00307 if python3:
00308 self.action_result.header.frame_id = str[start:end].decode('utf-8')
00309 else:
00310 self.action_result.header.frame_id = str[start:end]
00311 _x = self
00312 start = end
00313 end += 8
00314 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00315 start = end
00316 end += 4
00317 (length,) = _struct_I.unpack(str[start:end])
00318 start = end
00319 end += length
00320 if python3:
00321 self.action_result.status.goal_id.id = str[start:end].decode('utf-8')
00322 else:
00323 self.action_result.status.goal_id.id = str[start:end]
00324 start = end
00325 end += 1
00326 (self.action_result.status.status,) = _struct_B.unpack(str[start:end])
00327 start = end
00328 end += 4
00329 (length,) = _struct_I.unpack(str[start:end])
00330 start = end
00331 end += length
00332 if python3:
00333 self.action_result.status.text = str[start:end].decode('utf-8')
00334 else:
00335 self.action_result.status.text = str[start:end]
00336 _x = self
00337 start = end
00338 end += 13
00339 (_x.action_result.result.data.rtstate.realtime_controller_state, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_b3I.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 if python3:
00346 self.action_feedback.header.frame_id = str[start:end].decode('utf-8')
00347 else:
00348 self.action_feedback.header.frame_id = str[start:end]
00349 _x = self
00350 start = end
00351 end += 8
00352 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00353 start = end
00354 end += 4
00355 (length,) = _struct_I.unpack(str[start:end])
00356 start = end
00357 end += length
00358 if python3:
00359 self.action_feedback.status.goal_id.id = str[start:end].decode('utf-8')
00360 else:
00361 self.action_feedback.status.goal_id.id = str[start:end]
00362 start = end
00363 end += 1
00364 (self.action_feedback.status.status,) = _struct_B.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 if python3:
00371 self.action_feedback.status.text = str[start:end].decode('utf-8')
00372 else:
00373 self.action_feedback.status.text = str[start:end]
00374 start = end
00375 end += 1
00376 (self.action_feedback.feedback.data.rtstate.realtime_controller_state,) = _struct_b.unpack(str[start:end])
00377 return self
00378 except struct.error as e:
00379 raise genpy.DeserializationError(e)
00380
00381
00382 def serialize_numpy(self, buff, numpy):
00383 """
00384 serialize message with numpy array types into buffer
00385 :param buff: buffer, ``StringIO``
00386 :param numpy: numpy python module
00387 """
00388 try:
00389 _x = self
00390 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs))
00391 _x = self.action_goal.header.frame_id
00392 length = len(_x)
00393 if python3 or type(_x) == unicode:
00394 _x = _x.encode('utf-8')
00395 length = len(_x)
00396 buff.write(struct.pack('<I%ss'%length, length, _x))
00397 _x = self
00398 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs))
00399 _x = self.action_goal.goal_id.id
00400 length = len(_x)
00401 if python3 or type(_x) == unicode:
00402 _x = _x.encode('utf-8')
00403 length = len(_x)
00404 buff.write(struct.pack('<I%ss'%length, length, _x))
00405 _x = self
00406 buff.write(_struct_d3I.pack(_x.action_goal.goal.command.hardness_gain, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs))
00407 _x = self.action_result.header.frame_id
00408 length = len(_x)
00409 if python3 or type(_x) == unicode:
00410 _x = _x.encode('utf-8')
00411 length = len(_x)
00412 buff.write(struct.pack('<I%ss'%length, length, _x))
00413 _x = self
00414 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs))
00415 _x = self.action_result.status.goal_id.id
00416 length = len(_x)
00417 if python3 or type(_x) == unicode:
00418 _x = _x.encode('utf-8')
00419 length = len(_x)
00420 buff.write(struct.pack('<I%ss'%length, length, _x))
00421 buff.write(_struct_B.pack(self.action_result.status.status))
00422 _x = self.action_result.status.text
00423 length = len(_x)
00424 if python3 or type(_x) == unicode:
00425 _x = _x.encode('utf-8')
00426 length = len(_x)
00427 buff.write(struct.pack('<I%ss'%length, length, _x))
00428 _x = self
00429 buff.write(_struct_b3I.pack(_x.action_result.result.data.rtstate.realtime_controller_state, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs))
00430 _x = self.action_feedback.header.frame_id
00431 length = len(_x)
00432 if python3 or type(_x) == unicode:
00433 _x = _x.encode('utf-8')
00434 length = len(_x)
00435 buff.write(struct.pack('<I%ss'%length, length, _x))
00436 _x = self
00437 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs))
00438 _x = self.action_feedback.status.goal_id.id
00439 length = len(_x)
00440 if python3 or type(_x) == unicode:
00441 _x = _x.encode('utf-8')
00442 length = len(_x)
00443 buff.write(struct.pack('<I%ss'%length, length, _x))
00444 buff.write(_struct_B.pack(self.action_feedback.status.status))
00445 _x = self.action_feedback.status.text
00446 length = len(_x)
00447 if python3 or type(_x) == unicode:
00448 _x = _x.encode('utf-8')
00449 length = len(_x)
00450 buff.write(struct.pack('<I%ss'%length, length, _x))
00451 buff.write(_struct_b.pack(self.action_feedback.feedback.data.rtstate.realtime_controller_state))
00452 except struct.error as se: self._check_types(se)
00453 except TypeError as te: self._check_types(te)
00454
00455 def deserialize_numpy(self, str, numpy):
00456 """
00457 unpack serialized message in str into this message instance using numpy for array types
00458 :param str: byte array of serialized message, ``str``
00459 :param numpy: numpy python module
00460 """
00461 try:
00462 if self.action_goal is None:
00463 self.action_goal = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionGoal()
00464 if self.action_result is None:
00465 self.action_result = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionResult()
00466 if self.action_feedback is None:
00467 self.action_feedback = pr2_gripper_sensor_msgs.msg.PR2GripperGrabActionFeedback()
00468 end = 0
00469 _x = self
00470 start = end
00471 end += 12
00472 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00473 start = end
00474 end += 4
00475 (length,) = _struct_I.unpack(str[start:end])
00476 start = end
00477 end += length
00478 if python3:
00479 self.action_goal.header.frame_id = str[start:end].decode('utf-8')
00480 else:
00481 self.action_goal.header.frame_id = str[start:end]
00482 _x = self
00483 start = end
00484 end += 8
00485 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00486 start = end
00487 end += 4
00488 (length,) = _struct_I.unpack(str[start:end])
00489 start = end
00490 end += length
00491 if python3:
00492 self.action_goal.goal_id.id = str[start:end].decode('utf-8')
00493 else:
00494 self.action_goal.goal_id.id = str[start:end]
00495 _x = self
00496 start = end
00497 end += 20
00498 (_x.action_goal.goal.command.hardness_gain, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_d3I.unpack(str[start:end])
00499 start = end
00500 end += 4
00501 (length,) = _struct_I.unpack(str[start:end])
00502 start = end
00503 end += length
00504 if python3:
00505 self.action_result.header.frame_id = str[start:end].decode('utf-8')
00506 else:
00507 self.action_result.header.frame_id = str[start:end]
00508 _x = self
00509 start = end
00510 end += 8
00511 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00512 start = end
00513 end += 4
00514 (length,) = _struct_I.unpack(str[start:end])
00515 start = end
00516 end += length
00517 if python3:
00518 self.action_result.status.goal_id.id = str[start:end].decode('utf-8')
00519 else:
00520 self.action_result.status.goal_id.id = str[start:end]
00521 start = end
00522 end += 1
00523 (self.action_result.status.status,) = _struct_B.unpack(str[start:end])
00524 start = end
00525 end += 4
00526 (length,) = _struct_I.unpack(str[start:end])
00527 start = end
00528 end += length
00529 if python3:
00530 self.action_result.status.text = str[start:end].decode('utf-8')
00531 else:
00532 self.action_result.status.text = str[start:end]
00533 _x = self
00534 start = end
00535 end += 13
00536 (_x.action_result.result.data.rtstate.realtime_controller_state, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_b3I.unpack(str[start:end])
00537 start = end
00538 end += 4
00539 (length,) = _struct_I.unpack(str[start:end])
00540 start = end
00541 end += length
00542 if python3:
00543 self.action_feedback.header.frame_id = str[start:end].decode('utf-8')
00544 else:
00545 self.action_feedback.header.frame_id = str[start:end]
00546 _x = self
00547 start = end
00548 end += 8
00549 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.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 if python3:
00556 self.action_feedback.status.goal_id.id = str[start:end].decode('utf-8')
00557 else:
00558 self.action_feedback.status.goal_id.id = str[start:end]
00559 start = end
00560 end += 1
00561 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end])
00562 start = end
00563 end += 4
00564 (length,) = _struct_I.unpack(str[start:end])
00565 start = end
00566 end += length
00567 if python3:
00568 self.action_feedback.status.text = str[start:end].decode('utf-8')
00569 else:
00570 self.action_feedback.status.text = str[start:end]
00571 start = end
00572 end += 1
00573 (self.action_feedback.feedback.data.rtstate.realtime_controller_state,) = _struct_b.unpack(str[start:end])
00574 return self
00575 except struct.error as e:
00576 raise genpy.DeserializationError(e)
00577
00578 _struct_I = genpy.struct_I
00579 _struct_B = struct.Struct("<B")
00580 _struct_3I = struct.Struct("<3I")
00581 _struct_b = struct.Struct("<b")
00582 _struct_b3I = struct.Struct("<b3I")
00583 _struct_d3I = struct.Struct("<d3I")
00584 _struct_2I = struct.Struct("<2I")