00001 """autogenerated by genpy from iri_darwin_robot/tracking_headAction.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 iri_darwin_robot.msg
00008 import genpy
00009 import actionlib_msgs.msg
00010 import std_msgs.msg
00011
00012 class tracking_headAction(genpy.Message):
00013 _md5sum = "2acb8335f8746d4b90af1dbca291863e"
00014 _type = "iri_darwin_robot/tracking_headAction"
00015 _has_header = False
00016 _full_text = """# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00017
00018 tracking_headActionGoal action_goal
00019 tracking_headActionResult action_result
00020 tracking_headActionFeedback action_feedback
00021
00022 ================================================================================
00023 MSG: iri_darwin_robot/tracking_headActionGoal
00024 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00025
00026 Header header
00027 actionlib_msgs/GoalID goal_id
00028 tracking_headGoal 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: iri_darwin_robot/tracking_headGoal
00063 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00064 #goal definition
00065 float64 pan_goal
00066 float64 tilt_goal
00067
00068 ================================================================================
00069 MSG: iri_darwin_robot/tracking_headActionResult
00070 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00071
00072 Header header
00073 actionlib_msgs/GoalStatus status
00074 tracking_headResult 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: iri_darwin_robot/tracking_headResult
00104 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00105 #result definition
00106 bool successful
00107
00108 ================================================================================
00109 MSG: iri_darwin_robot/tracking_headActionFeedback
00110 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00111
00112 Header header
00113 actionlib_msgs/GoalStatus status
00114 tracking_headFeedback feedback
00115
00116 ================================================================================
00117 MSG: iri_darwin_robot/tracking_headFeedback
00118 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
00119 #feedback
00120 float64 current_pan
00121 float64 current_tilt
00122
00123
00124 """
00125 __slots__ = ['action_goal','action_result','action_feedback']
00126 _slot_types = ['iri_darwin_robot/tracking_headActionGoal','iri_darwin_robot/tracking_headActionResult','iri_darwin_robot/tracking_headActionFeedback']
00127
00128 def __init__(self, *args, **kwds):
00129 """
00130 Constructor. Any message fields that are implicitly/explicitly
00131 set to None will be assigned a default value. The recommend
00132 use is keyword arguments as this is more robust to future message
00133 changes. You cannot mix in-order arguments and keyword arguments.
00134
00135 The available fields are:
00136 action_goal,action_result,action_feedback
00137
00138 :param args: complete set of field values, in .msg order
00139 :param kwds: use keyword arguments corresponding to message field names
00140 to set specific fields.
00141 """
00142 if args or kwds:
00143 super(tracking_headAction, self).__init__(*args, **kwds)
00144
00145 if self.action_goal is None:
00146 self.action_goal = iri_darwin_robot.msg.tracking_headActionGoal()
00147 if self.action_result is None:
00148 self.action_result = iri_darwin_robot.msg.tracking_headActionResult()
00149 if self.action_feedback is None:
00150 self.action_feedback = iri_darwin_robot.msg.tracking_headActionFeedback()
00151 else:
00152 self.action_goal = iri_darwin_robot.msg.tracking_headActionGoal()
00153 self.action_result = iri_darwin_robot.msg.tracking_headActionResult()
00154 self.action_feedback = iri_darwin_robot.msg.tracking_headActionFeedback()
00155
00156 def _get_types(self):
00157 """
00158 internal API method
00159 """
00160 return self._slot_types
00161
00162 def serialize(self, buff):
00163 """
00164 serialize message into buffer
00165 :param buff: buffer, ``StringIO``
00166 """
00167 try:
00168 _x = self
00169 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs))
00170 _x = self.action_goal.header.frame_id
00171 length = len(_x)
00172 if python3 or type(_x) == unicode:
00173 _x = _x.encode('utf-8')
00174 length = len(_x)
00175 buff.write(struct.pack('<I%ss'%length, length, _x))
00176 _x = self
00177 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs))
00178 _x = self.action_goal.goal_id.id
00179 length = len(_x)
00180 if python3 or type(_x) == unicode:
00181 _x = _x.encode('utf-8')
00182 length = len(_x)
00183 buff.write(struct.pack('<I%ss'%length, length, _x))
00184 _x = self
00185 buff.write(_struct_2d3I.pack(_x.action_goal.goal.pan_goal, _x.action_goal.goal.tilt_goal, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs))
00186 _x = self.action_result.header.frame_id
00187 length = len(_x)
00188 if python3 or type(_x) == unicode:
00189 _x = _x.encode('utf-8')
00190 length = len(_x)
00191 buff.write(struct.pack('<I%ss'%length, length, _x))
00192 _x = self
00193 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs))
00194 _x = self.action_result.status.goal_id.id
00195 length = len(_x)
00196 if python3 or type(_x) == unicode:
00197 _x = _x.encode('utf-8')
00198 length = len(_x)
00199 buff.write(struct.pack('<I%ss'%length, length, _x))
00200 buff.write(_struct_B.pack(self.action_result.status.status))
00201 _x = self.action_result.status.text
00202 length = len(_x)
00203 if python3 or type(_x) == unicode:
00204 _x = _x.encode('utf-8')
00205 length = len(_x)
00206 buff.write(struct.pack('<I%ss'%length, length, _x))
00207 _x = self
00208 buff.write(_struct_B3I.pack(_x.action_result.result.successful, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs))
00209 _x = self.action_feedback.header.frame_id
00210 length = len(_x)
00211 if python3 or type(_x) == unicode:
00212 _x = _x.encode('utf-8')
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_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs))
00217 _x = self.action_feedback.status.goal_id.id
00218 length = len(_x)
00219 if python3 or type(_x) == unicode:
00220 _x = _x.encode('utf-8')
00221 length = len(_x)
00222 buff.write(struct.pack('<I%ss'%length, length, _x))
00223 buff.write(_struct_B.pack(self.action_feedback.status.status))
00224 _x = self.action_feedback.status.text
00225 length = len(_x)
00226 if python3 or type(_x) == unicode:
00227 _x = _x.encode('utf-8')
00228 length = len(_x)
00229 buff.write(struct.pack('<I%ss'%length, length, _x))
00230 _x = self
00231 buff.write(_struct_2d.pack(_x.action_feedback.feedback.current_pan, _x.action_feedback.feedback.current_tilt))
00232 except struct.error as se: self._check_types(se)
00233 except TypeError as te: self._check_types(te)
00234
00235 def deserialize(self, str):
00236 """
00237 unpack serialized message in str into this message instance
00238 :param str: byte array of serialized message, ``str``
00239 """
00240 try:
00241 if self.action_goal is None:
00242 self.action_goal = iri_darwin_robot.msg.tracking_headActionGoal()
00243 if self.action_result is None:
00244 self.action_result = iri_darwin_robot.msg.tracking_headActionResult()
00245 if self.action_feedback is None:
00246 self.action_feedback = iri_darwin_robot.msg.tracking_headActionFeedback()
00247 end = 0
00248 _x = self
00249 start = end
00250 end += 12
00251 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00252 start = end
00253 end += 4
00254 (length,) = _struct_I.unpack(str[start:end])
00255 start = end
00256 end += length
00257 if python3:
00258 self.action_goal.header.frame_id = str[start:end].decode('utf-8')
00259 else:
00260 self.action_goal.header.frame_id = str[start:end]
00261 _x = self
00262 start = end
00263 end += 8
00264 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00265 start = end
00266 end += 4
00267 (length,) = _struct_I.unpack(str[start:end])
00268 start = end
00269 end += length
00270 if python3:
00271 self.action_goal.goal_id.id = str[start:end].decode('utf-8')
00272 else:
00273 self.action_goal.goal_id.id = str[start:end]
00274 _x = self
00275 start = end
00276 end += 28
00277 (_x.action_goal.goal.pan_goal, _x.action_goal.goal.tilt_goal, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_2d3I.unpack(str[start:end])
00278 start = end
00279 end += 4
00280 (length,) = _struct_I.unpack(str[start:end])
00281 start = end
00282 end += length
00283 if python3:
00284 self.action_result.header.frame_id = str[start:end].decode('utf-8')
00285 else:
00286 self.action_result.header.frame_id = str[start:end]
00287 _x = self
00288 start = end
00289 end += 8
00290 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00291 start = end
00292 end += 4
00293 (length,) = _struct_I.unpack(str[start:end])
00294 start = end
00295 end += length
00296 if python3:
00297 self.action_result.status.goal_id.id = str[start:end].decode('utf-8')
00298 else:
00299 self.action_result.status.goal_id.id = str[start:end]
00300 start = end
00301 end += 1
00302 (self.action_result.status.status,) = _struct_B.unpack(str[start:end])
00303 start = end
00304 end += 4
00305 (length,) = _struct_I.unpack(str[start:end])
00306 start = end
00307 end += length
00308 if python3:
00309 self.action_result.status.text = str[start:end].decode('utf-8')
00310 else:
00311 self.action_result.status.text = str[start:end]
00312 _x = self
00313 start = end
00314 end += 13
00315 (_x.action_result.result.successful, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_B3I.unpack(str[start:end])
00316 self.action_result.result.successful = bool(self.action_result.result.successful)
00317 start = end
00318 end += 4
00319 (length,) = _struct_I.unpack(str[start:end])
00320 start = end
00321 end += length
00322 if python3:
00323 self.action_feedback.header.frame_id = str[start:end].decode('utf-8')
00324 else:
00325 self.action_feedback.header.frame_id = str[start:end]
00326 _x = self
00327 start = end
00328 end += 8
00329 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00330 start = end
00331 end += 4
00332 (length,) = _struct_I.unpack(str[start:end])
00333 start = end
00334 end += length
00335 if python3:
00336 self.action_feedback.status.goal_id.id = str[start:end].decode('utf-8')
00337 else:
00338 self.action_feedback.status.goal_id.id = str[start:end]
00339 start = end
00340 end += 1
00341 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end])
00342 start = end
00343 end += 4
00344 (length,) = _struct_I.unpack(str[start:end])
00345 start = end
00346 end += length
00347 if python3:
00348 self.action_feedback.status.text = str[start:end].decode('utf-8')
00349 else:
00350 self.action_feedback.status.text = str[start:end]
00351 _x = self
00352 start = end
00353 end += 16
00354 (_x.action_feedback.feedback.current_pan, _x.action_feedback.feedback.current_tilt,) = _struct_2d.unpack(str[start:end])
00355 return self
00356 except struct.error as e:
00357 raise genpy.DeserializationError(e)
00358
00359
00360 def serialize_numpy(self, buff, numpy):
00361 """
00362 serialize message with numpy array types into buffer
00363 :param buff: buffer, ``StringIO``
00364 :param numpy: numpy python module
00365 """
00366 try:
00367 _x = self
00368 buff.write(_struct_3I.pack(_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs))
00369 _x = self.action_goal.header.frame_id
00370 length = len(_x)
00371 if python3 or type(_x) == unicode:
00372 _x = _x.encode('utf-8')
00373 length = len(_x)
00374 buff.write(struct.pack('<I%ss'%length, length, _x))
00375 _x = self
00376 buff.write(_struct_2I.pack(_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs))
00377 _x = self.action_goal.goal_id.id
00378 length = len(_x)
00379 if python3 or type(_x) == unicode:
00380 _x = _x.encode('utf-8')
00381 length = len(_x)
00382 buff.write(struct.pack('<I%ss'%length, length, _x))
00383 _x = self
00384 buff.write(_struct_2d3I.pack(_x.action_goal.goal.pan_goal, _x.action_goal.goal.tilt_goal, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs))
00385 _x = self.action_result.header.frame_id
00386 length = len(_x)
00387 if python3 or type(_x) == unicode:
00388 _x = _x.encode('utf-8')
00389 length = len(_x)
00390 buff.write(struct.pack('<I%ss'%length, length, _x))
00391 _x = self
00392 buff.write(_struct_2I.pack(_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs))
00393 _x = self.action_result.status.goal_id.id
00394 length = len(_x)
00395 if python3 or type(_x) == unicode:
00396 _x = _x.encode('utf-8')
00397 length = len(_x)
00398 buff.write(struct.pack('<I%ss'%length, length, _x))
00399 buff.write(_struct_B.pack(self.action_result.status.status))
00400 _x = self.action_result.status.text
00401 length = len(_x)
00402 if python3 or type(_x) == unicode:
00403 _x = _x.encode('utf-8')
00404 length = len(_x)
00405 buff.write(struct.pack('<I%ss'%length, length, _x))
00406 _x = self
00407 buff.write(_struct_B3I.pack(_x.action_result.result.successful, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs))
00408 _x = self.action_feedback.header.frame_id
00409 length = len(_x)
00410 if python3 or type(_x) == unicode:
00411 _x = _x.encode('utf-8')
00412 length = len(_x)
00413 buff.write(struct.pack('<I%ss'%length, length, _x))
00414 _x = self
00415 buff.write(_struct_2I.pack(_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs))
00416 _x = self.action_feedback.status.goal_id.id
00417 length = len(_x)
00418 if python3 or type(_x) == unicode:
00419 _x = _x.encode('utf-8')
00420 length = len(_x)
00421 buff.write(struct.pack('<I%ss'%length, length, _x))
00422 buff.write(_struct_B.pack(self.action_feedback.status.status))
00423 _x = self.action_feedback.status.text
00424 length = len(_x)
00425 if python3 or type(_x) == unicode:
00426 _x = _x.encode('utf-8')
00427 length = len(_x)
00428 buff.write(struct.pack('<I%ss'%length, length, _x))
00429 _x = self
00430 buff.write(_struct_2d.pack(_x.action_feedback.feedback.current_pan, _x.action_feedback.feedback.current_tilt))
00431 except struct.error as se: self._check_types(se)
00432 except TypeError as te: self._check_types(te)
00433
00434 def deserialize_numpy(self, str, numpy):
00435 """
00436 unpack serialized message in str into this message instance using numpy for array types
00437 :param str: byte array of serialized message, ``str``
00438 :param numpy: numpy python module
00439 """
00440 try:
00441 if self.action_goal is None:
00442 self.action_goal = iri_darwin_robot.msg.tracking_headActionGoal()
00443 if self.action_result is None:
00444 self.action_result = iri_darwin_robot.msg.tracking_headActionResult()
00445 if self.action_feedback is None:
00446 self.action_feedback = iri_darwin_robot.msg.tracking_headActionFeedback()
00447 end = 0
00448 _x = self
00449 start = end
00450 end += 12
00451 (_x.action_goal.header.seq, _x.action_goal.header.stamp.secs, _x.action_goal.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00452 start = end
00453 end += 4
00454 (length,) = _struct_I.unpack(str[start:end])
00455 start = end
00456 end += length
00457 if python3:
00458 self.action_goal.header.frame_id = str[start:end].decode('utf-8')
00459 else:
00460 self.action_goal.header.frame_id = str[start:end]
00461 _x = self
00462 start = end
00463 end += 8
00464 (_x.action_goal.goal_id.stamp.secs, _x.action_goal.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00465 start = end
00466 end += 4
00467 (length,) = _struct_I.unpack(str[start:end])
00468 start = end
00469 end += length
00470 if python3:
00471 self.action_goal.goal_id.id = str[start:end].decode('utf-8')
00472 else:
00473 self.action_goal.goal_id.id = str[start:end]
00474 _x = self
00475 start = end
00476 end += 28
00477 (_x.action_goal.goal.pan_goal, _x.action_goal.goal.tilt_goal, _x.action_result.header.seq, _x.action_result.header.stamp.secs, _x.action_result.header.stamp.nsecs,) = _struct_2d3I.unpack(str[start:end])
00478 start = end
00479 end += 4
00480 (length,) = _struct_I.unpack(str[start:end])
00481 start = end
00482 end += length
00483 if python3:
00484 self.action_result.header.frame_id = str[start:end].decode('utf-8')
00485 else:
00486 self.action_result.header.frame_id = str[start:end]
00487 _x = self
00488 start = end
00489 end += 8
00490 (_x.action_result.status.goal_id.stamp.secs, _x.action_result.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00491 start = end
00492 end += 4
00493 (length,) = _struct_I.unpack(str[start:end])
00494 start = end
00495 end += length
00496 if python3:
00497 self.action_result.status.goal_id.id = str[start:end].decode('utf-8')
00498 else:
00499 self.action_result.status.goal_id.id = str[start:end]
00500 start = end
00501 end += 1
00502 (self.action_result.status.status,) = _struct_B.unpack(str[start:end])
00503 start = end
00504 end += 4
00505 (length,) = _struct_I.unpack(str[start:end])
00506 start = end
00507 end += length
00508 if python3:
00509 self.action_result.status.text = str[start:end].decode('utf-8')
00510 else:
00511 self.action_result.status.text = str[start:end]
00512 _x = self
00513 start = end
00514 end += 13
00515 (_x.action_result.result.successful, _x.action_feedback.header.seq, _x.action_feedback.header.stamp.secs, _x.action_feedback.header.stamp.nsecs,) = _struct_B3I.unpack(str[start:end])
00516 self.action_result.result.successful = bool(self.action_result.result.successful)
00517 start = end
00518 end += 4
00519 (length,) = _struct_I.unpack(str[start:end])
00520 start = end
00521 end += length
00522 if python3:
00523 self.action_feedback.header.frame_id = str[start:end].decode('utf-8')
00524 else:
00525 self.action_feedback.header.frame_id = str[start:end]
00526 _x = self
00527 start = end
00528 end += 8
00529 (_x.action_feedback.status.goal_id.stamp.secs, _x.action_feedback.status.goal_id.stamp.nsecs,) = _struct_2I.unpack(str[start:end])
00530 start = end
00531 end += 4
00532 (length,) = _struct_I.unpack(str[start:end])
00533 start = end
00534 end += length
00535 if python3:
00536 self.action_feedback.status.goal_id.id = str[start:end].decode('utf-8')
00537 else:
00538 self.action_feedback.status.goal_id.id = str[start:end]
00539 start = end
00540 end += 1
00541 (self.action_feedback.status.status,) = _struct_B.unpack(str[start:end])
00542 start = end
00543 end += 4
00544 (length,) = _struct_I.unpack(str[start:end])
00545 start = end
00546 end += length
00547 if python3:
00548 self.action_feedback.status.text = str[start:end].decode('utf-8')
00549 else:
00550 self.action_feedback.status.text = str[start:end]
00551 _x = self
00552 start = end
00553 end += 16
00554 (_x.action_feedback.feedback.current_pan, _x.action_feedback.feedback.current_tilt,) = _struct_2d.unpack(str[start:end])
00555 return self
00556 except struct.error as e:
00557 raise genpy.DeserializationError(e)
00558
00559 _struct_I = genpy.struct_I
00560 _struct_2d3I = struct.Struct("<2d3I")
00561 _struct_B = struct.Struct("<B")
00562 _struct_2d = struct.Struct("<2d")
00563 _struct_3I = struct.Struct("<3I")
00564 _struct_B3I = struct.Struct("<B3I")
00565 _struct_2I = struct.Struct("<2I")