00001 """autogenerated by genpy from fingertip_pressure/PressureInfoElement.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 geometry_msgs.msg
00008
00009 class PressureInfoElement(genpy.Message):
00010 _md5sum = "1cb486bb542ab85e1ff8d84fe9cc899f"
00011 _type = "fingertip_pressure/PressureInfoElement"
00012 _has_header = False
00013 _full_text = """string frame_id # Frame ID
00014 geometry_msgs/Vector3[] center # Corner of sensor (meters)
00015 geometry_msgs/Vector3[] halfside1 # Half of one edge of sensor (meters)
00016 geometry_msgs/Vector3[] halfside2 # Half of perpendicular edge of sensor (meters)
00017 # Sensor corners are at center+-halfside1+-halfside2
00018 # Cross product of halfside1 and halfside2 points out
00019 float64[] force_per_unit # Multiply this by the raw sensor value to get a force
00020
00021 ================================================================================
00022 MSG: geometry_msgs/Vector3
00023 # This represents a vector in free space.
00024
00025 float64 x
00026 float64 y
00027 float64 z
00028 """
00029 __slots__ = ['frame_id','center','halfside1','halfside2','force_per_unit']
00030 _slot_types = ['string','geometry_msgs/Vector3[]','geometry_msgs/Vector3[]','geometry_msgs/Vector3[]','float64[]']
00031
00032 def __init__(self, *args, **kwds):
00033 """
00034 Constructor. Any message fields that are implicitly/explicitly
00035 set to None will be assigned a default value. The recommend
00036 use is keyword arguments as this is more robust to future message
00037 changes. You cannot mix in-order arguments and keyword arguments.
00038
00039 The available fields are:
00040 frame_id,center,halfside1,halfside2,force_per_unit
00041
00042 :param args: complete set of field values, in .msg order
00043 :param kwds: use keyword arguments corresponding to message field names
00044 to set specific fields.
00045 """
00046 if args or kwds:
00047 super(PressureInfoElement, self).__init__(*args, **kwds)
00048
00049 if self.frame_id is None:
00050 self.frame_id = ''
00051 if self.center is None:
00052 self.center = []
00053 if self.halfside1 is None:
00054 self.halfside1 = []
00055 if self.halfside2 is None:
00056 self.halfside2 = []
00057 if self.force_per_unit is None:
00058 self.force_per_unit = []
00059 else:
00060 self.frame_id = ''
00061 self.center = []
00062 self.halfside1 = []
00063 self.halfside2 = []
00064 self.force_per_unit = []
00065
00066 def _get_types(self):
00067 """
00068 internal API method
00069 """
00070 return self._slot_types
00071
00072 def serialize(self, buff):
00073 """
00074 serialize message into buffer
00075 :param buff: buffer, ``StringIO``
00076 """
00077 try:
00078 _x = self.frame_id
00079 length = len(_x)
00080 if python3 or type(_x) == unicode:
00081 _x = _x.encode('utf-8')
00082 length = len(_x)
00083 buff.write(struct.pack('<I%ss'%length, length, _x))
00084 length = len(self.center)
00085 buff.write(_struct_I.pack(length))
00086 for val1 in self.center:
00087 _x = val1
00088 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00089 length = len(self.halfside1)
00090 buff.write(_struct_I.pack(length))
00091 for val1 in self.halfside1:
00092 _x = val1
00093 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00094 length = len(self.halfside2)
00095 buff.write(_struct_I.pack(length))
00096 for val1 in self.halfside2:
00097 _x = val1
00098 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00099 length = len(self.force_per_unit)
00100 buff.write(_struct_I.pack(length))
00101 pattern = '<%sd'%length
00102 buff.write(struct.pack(pattern, *self.force_per_unit))
00103 except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(_x))))
00104 except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(_x))))
00105
00106 def deserialize(self, str):
00107 """
00108 unpack serialized message in str into this message instance
00109 :param str: byte array of serialized message, ``str``
00110 """
00111 try:
00112 if self.center is None:
00113 self.center = None
00114 if self.halfside1 is None:
00115 self.halfside1 = None
00116 if self.halfside2 is None:
00117 self.halfside2 = None
00118 end = 0
00119 start = end
00120 end += 4
00121 (length,) = _struct_I.unpack(str[start:end])
00122 start = end
00123 end += length
00124 if python3:
00125 self.frame_id = str[start:end].decode('utf-8')
00126 else:
00127 self.frame_id = str[start:end]
00128 start = end
00129 end += 4
00130 (length,) = _struct_I.unpack(str[start:end])
00131 self.center = []
00132 for i in range(0, length):
00133 val1 = geometry_msgs.msg.Vector3()
00134 _x = val1
00135 start = end
00136 end += 24
00137 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00138 self.center.append(val1)
00139 start = end
00140 end += 4
00141 (length,) = _struct_I.unpack(str[start:end])
00142 self.halfside1 = []
00143 for i in range(0, length):
00144 val1 = geometry_msgs.msg.Vector3()
00145 _x = val1
00146 start = end
00147 end += 24
00148 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00149 self.halfside1.append(val1)
00150 start = end
00151 end += 4
00152 (length,) = _struct_I.unpack(str[start:end])
00153 self.halfside2 = []
00154 for i in range(0, length):
00155 val1 = geometry_msgs.msg.Vector3()
00156 _x = val1
00157 start = end
00158 end += 24
00159 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00160 self.halfside2.append(val1)
00161 start = end
00162 end += 4
00163 (length,) = _struct_I.unpack(str[start:end])
00164 pattern = '<%sd'%length
00165 start = end
00166 end += struct.calcsize(pattern)
00167 self.force_per_unit = struct.unpack(pattern, str[start:end])
00168 return self
00169 except struct.error as e:
00170 raise genpy.DeserializationError(e)
00171
00172
00173 def serialize_numpy(self, buff, numpy):
00174 """
00175 serialize message with numpy array types into buffer
00176 :param buff: buffer, ``StringIO``
00177 :param numpy: numpy python module
00178 """
00179 try:
00180 _x = self.frame_id
00181 length = len(_x)
00182 if python3 or type(_x) == unicode:
00183 _x = _x.encode('utf-8')
00184 length = len(_x)
00185 buff.write(struct.pack('<I%ss'%length, length, _x))
00186 length = len(self.center)
00187 buff.write(_struct_I.pack(length))
00188 for val1 in self.center:
00189 _x = val1
00190 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00191 length = len(self.halfside1)
00192 buff.write(_struct_I.pack(length))
00193 for val1 in self.halfside1:
00194 _x = val1
00195 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00196 length = len(self.halfside2)
00197 buff.write(_struct_I.pack(length))
00198 for val1 in self.halfside2:
00199 _x = val1
00200 buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
00201 length = len(self.force_per_unit)
00202 buff.write(_struct_I.pack(length))
00203 pattern = '<%sd'%length
00204 buff.write(self.force_per_unit.tostring())
00205 except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(_x))))
00206 except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(_x))))
00207
00208 def deserialize_numpy(self, str, numpy):
00209 """
00210 unpack serialized message in str into this message instance using numpy for array types
00211 :param str: byte array of serialized message, ``str``
00212 :param numpy: numpy python module
00213 """
00214 try:
00215 if self.center is None:
00216 self.center = None
00217 if self.halfside1 is None:
00218 self.halfside1 = None
00219 if self.halfside2 is None:
00220 self.halfside2 = None
00221 end = 0
00222 start = end
00223 end += 4
00224 (length,) = _struct_I.unpack(str[start:end])
00225 start = end
00226 end += length
00227 if python3:
00228 self.frame_id = str[start:end].decode('utf-8')
00229 else:
00230 self.frame_id = str[start:end]
00231 start = end
00232 end += 4
00233 (length,) = _struct_I.unpack(str[start:end])
00234 self.center = []
00235 for i in range(0, length):
00236 val1 = geometry_msgs.msg.Vector3()
00237 _x = val1
00238 start = end
00239 end += 24
00240 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00241 self.center.append(val1)
00242 start = end
00243 end += 4
00244 (length,) = _struct_I.unpack(str[start:end])
00245 self.halfside1 = []
00246 for i in range(0, length):
00247 val1 = geometry_msgs.msg.Vector3()
00248 _x = val1
00249 start = end
00250 end += 24
00251 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00252 self.halfside1.append(val1)
00253 start = end
00254 end += 4
00255 (length,) = _struct_I.unpack(str[start:end])
00256 self.halfside2 = []
00257 for i in range(0, length):
00258 val1 = geometry_msgs.msg.Vector3()
00259 _x = val1
00260 start = end
00261 end += 24
00262 (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
00263 self.halfside2.append(val1)
00264 start = end
00265 end += 4
00266 (length,) = _struct_I.unpack(str[start:end])
00267 pattern = '<%sd'%length
00268 start = end
00269 end += struct.calcsize(pattern)
00270 self.force_per_unit = numpy.frombuffer(str[start:end], dtype=numpy.float64, count=length)
00271 return self
00272 except struct.error as e:
00273 raise genpy.DeserializationError(e)
00274
00275 _struct_I = genpy.struct_I
00276 _struct_3d = struct.Struct("<3d")