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