00001 """autogenerated by genpy from turtlebot_app_manager/App.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 turtlebot_app_manager.msg
00008
00009 class App(genpy.Message):
00010 _md5sum = "643c1db5f71b615a47789ff5e190811e"
00011 _type = "turtlebot_app_manager/App"
00012 _has_header = False
00013 _full_text = """# app name
00014 string name
00015 # user-friendly display name of application
00016 string display_name
00017 # icon for showing app
00018 Icon icon
00019 # ordered list (by preference) of client applications to interact with this robot app.
00020 ClientApp[] client_apps
00021
00022 ================================================================================
00023 MSG: turtlebot_app_manager/Icon
00024 # Image data format. "jpeg" or "png"
00025 string format
00026
00027 # Image data.
00028 uint8[] data
00029
00030 ================================================================================
00031 MSG: turtlebot_app_manager/ClientApp
00032 # like "android" or "web" or "linux"
00033 string client_type
00034
00035 # like "intent = ros.android.teleop" and "accelerometer = true", used to choose which ClientApp to use
00036 KeyValue[] manager_data
00037
00038 # parameters which just get passed through to the client app.
00039 KeyValue[] app_data
00040
00041 ================================================================================
00042 MSG: turtlebot_app_manager/KeyValue
00043 string key
00044 string value
00045
00046 """
00047 __slots__ = ['name','display_name','icon','client_apps']
00048 _slot_types = ['string','string','turtlebot_app_manager/Icon','turtlebot_app_manager/ClientApp[]']
00049
00050 def __init__(self, *args, **kwds):
00051 """
00052 Constructor. Any message fields that are implicitly/explicitly
00053 set to None will be assigned a default value. The recommend
00054 use is keyword arguments as this is more robust to future message
00055 changes. You cannot mix in-order arguments and keyword arguments.
00056
00057 The available fields are:
00058 name,display_name,icon,client_apps
00059
00060 :param args: complete set of field values, in .msg order
00061 :param kwds: use keyword arguments corresponding to message field names
00062 to set specific fields.
00063 """
00064 if args or kwds:
00065 super(App, self).__init__(*args, **kwds)
00066
00067 if self.name is None:
00068 self.name = ''
00069 if self.display_name is None:
00070 self.display_name = ''
00071 if self.icon is None:
00072 self.icon = turtlebot_app_manager.msg.Icon()
00073 if self.client_apps is None:
00074 self.client_apps = []
00075 else:
00076 self.name = ''
00077 self.display_name = ''
00078 self.icon = turtlebot_app_manager.msg.Icon()
00079 self.client_apps = []
00080
00081 def _get_types(self):
00082 """
00083 internal API method
00084 """
00085 return self._slot_types
00086
00087 def serialize(self, buff):
00088 """
00089 serialize message into buffer
00090 :param buff: buffer, ``StringIO``
00091 """
00092 try:
00093 _x = self.name
00094 length = len(_x)
00095 if python3 or type(_x) == unicode:
00096 _x = _x.encode('utf-8')
00097 length = len(_x)
00098 buff.write(struct.pack('<I%ss'%length, length, _x))
00099 _x = self.display_name
00100 length = len(_x)
00101 if python3 or type(_x) == unicode:
00102 _x = _x.encode('utf-8')
00103 length = len(_x)
00104 buff.write(struct.pack('<I%ss'%length, length, _x))
00105 _x = self.icon.format
00106 length = len(_x)
00107 if python3 or type(_x) == unicode:
00108 _x = _x.encode('utf-8')
00109 length = len(_x)
00110 buff.write(struct.pack('<I%ss'%length, length, _x))
00111 _x = self.icon.data
00112 length = len(_x)
00113
00114 if type(_x) in [list, tuple]:
00115 buff.write(struct.pack('<I%sB'%length, length, *_x))
00116 else:
00117 buff.write(struct.pack('<I%ss'%length, length, _x))
00118 length = len(self.client_apps)
00119 buff.write(_struct_I.pack(length))
00120 for val1 in self.client_apps:
00121 _x = val1.client_type
00122 length = len(_x)
00123 if python3 or type(_x) == unicode:
00124 _x = _x.encode('utf-8')
00125 length = len(_x)
00126 buff.write(struct.pack('<I%ss'%length, length, _x))
00127 length = len(val1.manager_data)
00128 buff.write(_struct_I.pack(length))
00129 for val2 in val1.manager_data:
00130 _x = val2.key
00131 length = len(_x)
00132 if python3 or type(_x) == unicode:
00133 _x = _x.encode('utf-8')
00134 length = len(_x)
00135 buff.write(struct.pack('<I%ss'%length, length, _x))
00136 _x = val2.value
00137 length = len(_x)
00138 if python3 or type(_x) == unicode:
00139 _x = _x.encode('utf-8')
00140 length = len(_x)
00141 buff.write(struct.pack('<I%ss'%length, length, _x))
00142 length = len(val1.app_data)
00143 buff.write(_struct_I.pack(length))
00144 for val2 in val1.app_data:
00145 _x = val2.key
00146 length = len(_x)
00147 if python3 or type(_x) == unicode:
00148 _x = _x.encode('utf-8')
00149 length = len(_x)
00150 buff.write(struct.pack('<I%ss'%length, length, _x))
00151 _x = val2.value
00152 length = len(_x)
00153 if python3 or type(_x) == unicode:
00154 _x = _x.encode('utf-8')
00155 length = len(_x)
00156 buff.write(struct.pack('<I%ss'%length, length, _x))
00157 except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(_x))))
00158 except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(_x))))
00159
00160 def deserialize(self, str):
00161 """
00162 unpack serialized message in str into this message instance
00163 :param str: byte array of serialized message, ``str``
00164 """
00165 try:
00166 if self.icon is None:
00167 self.icon = turtlebot_app_manager.msg.Icon()
00168 if self.client_apps is None:
00169 self.client_apps = None
00170 end = 0
00171 start = end
00172 end += 4
00173 (length,) = _struct_I.unpack(str[start:end])
00174 start = end
00175 end += length
00176 if python3:
00177 self.name = str[start:end].decode('utf-8')
00178 else:
00179 self.name = str[start:end]
00180 start = end
00181 end += 4
00182 (length,) = _struct_I.unpack(str[start:end])
00183 start = end
00184 end += length
00185 if python3:
00186 self.display_name = str[start:end].decode('utf-8')
00187 else:
00188 self.display_name = str[start:end]
00189 start = end
00190 end += 4
00191 (length,) = _struct_I.unpack(str[start:end])
00192 start = end
00193 end += length
00194 if python3:
00195 self.icon.format = str[start:end].decode('utf-8')
00196 else:
00197 self.icon.format = str[start:end]
00198 start = end
00199 end += 4
00200 (length,) = _struct_I.unpack(str[start:end])
00201 start = end
00202 end += length
00203 self.icon.data = str[start:end]
00204 start = end
00205 end += 4
00206 (length,) = _struct_I.unpack(str[start:end])
00207 self.client_apps = []
00208 for i in range(0, length):
00209 val1 = turtlebot_app_manager.msg.ClientApp()
00210 start = end
00211 end += 4
00212 (length,) = _struct_I.unpack(str[start:end])
00213 start = end
00214 end += length
00215 if python3:
00216 val1.client_type = str[start:end].decode('utf-8')
00217 else:
00218 val1.client_type = str[start:end]
00219 start = end
00220 end += 4
00221 (length,) = _struct_I.unpack(str[start:end])
00222 val1.manager_data = []
00223 for i in range(0, length):
00224 val2 = turtlebot_app_manager.msg.KeyValue()
00225 start = end
00226 end += 4
00227 (length,) = _struct_I.unpack(str[start:end])
00228 start = end
00229 end += length
00230 if python3:
00231 val2.key = str[start:end].decode('utf-8')
00232 else:
00233 val2.key = str[start:end]
00234 start = end
00235 end += 4
00236 (length,) = _struct_I.unpack(str[start:end])
00237 start = end
00238 end += length
00239 if python3:
00240 val2.value = str[start:end].decode('utf-8')
00241 else:
00242 val2.value = str[start:end]
00243 val1.manager_data.append(val2)
00244 start = end
00245 end += 4
00246 (length,) = _struct_I.unpack(str[start:end])
00247 val1.app_data = []
00248 for i in range(0, length):
00249 val2 = turtlebot_app_manager.msg.KeyValue()
00250 start = end
00251 end += 4
00252 (length,) = _struct_I.unpack(str[start:end])
00253 start = end
00254 end += length
00255 if python3:
00256 val2.key = str[start:end].decode('utf-8')
00257 else:
00258 val2.key = str[start:end]
00259 start = end
00260 end += 4
00261 (length,) = _struct_I.unpack(str[start:end])
00262 start = end
00263 end += length
00264 if python3:
00265 val2.value = str[start:end].decode('utf-8')
00266 else:
00267 val2.value = str[start:end]
00268 val1.app_data.append(val2)
00269 self.client_apps.append(val1)
00270 return self
00271 except struct.error as e:
00272 raise genpy.DeserializationError(e)
00273
00274
00275 def serialize_numpy(self, buff, numpy):
00276 """
00277 serialize message with numpy array types into buffer
00278 :param buff: buffer, ``StringIO``
00279 :param numpy: numpy python module
00280 """
00281 try:
00282 _x = self.name
00283 length = len(_x)
00284 if python3 or type(_x) == unicode:
00285 _x = _x.encode('utf-8')
00286 length = len(_x)
00287 buff.write(struct.pack('<I%ss'%length, length, _x))
00288 _x = self.display_name
00289 length = len(_x)
00290 if python3 or type(_x) == unicode:
00291 _x = _x.encode('utf-8')
00292 length = len(_x)
00293 buff.write(struct.pack('<I%ss'%length, length, _x))
00294 _x = self.icon.format
00295 length = len(_x)
00296 if python3 or type(_x) == unicode:
00297 _x = _x.encode('utf-8')
00298 length = len(_x)
00299 buff.write(struct.pack('<I%ss'%length, length, _x))
00300 _x = self.icon.data
00301 length = len(_x)
00302
00303 if type(_x) in [list, tuple]:
00304 buff.write(struct.pack('<I%sB'%length, length, *_x))
00305 else:
00306 buff.write(struct.pack('<I%ss'%length, length, _x))
00307 length = len(self.client_apps)
00308 buff.write(_struct_I.pack(length))
00309 for val1 in self.client_apps:
00310 _x = val1.client_type
00311 length = len(_x)
00312 if python3 or type(_x) == unicode:
00313 _x = _x.encode('utf-8')
00314 length = len(_x)
00315 buff.write(struct.pack('<I%ss'%length, length, _x))
00316 length = len(val1.manager_data)
00317 buff.write(_struct_I.pack(length))
00318 for val2 in val1.manager_data:
00319 _x = val2.key
00320 length = len(_x)
00321 if python3 or type(_x) == unicode:
00322 _x = _x.encode('utf-8')
00323 length = len(_x)
00324 buff.write(struct.pack('<I%ss'%length, length, _x))
00325 _x = val2.value
00326 length = len(_x)
00327 if python3 or type(_x) == unicode:
00328 _x = _x.encode('utf-8')
00329 length = len(_x)
00330 buff.write(struct.pack('<I%ss'%length, length, _x))
00331 length = len(val1.app_data)
00332 buff.write(_struct_I.pack(length))
00333 for val2 in val1.app_data:
00334 _x = val2.key
00335 length = len(_x)
00336 if python3 or type(_x) == unicode:
00337 _x = _x.encode('utf-8')
00338 length = len(_x)
00339 buff.write(struct.pack('<I%ss'%length, length, _x))
00340 _x = val2.value
00341 length = len(_x)
00342 if python3 or type(_x) == unicode:
00343 _x = _x.encode('utf-8')
00344 length = len(_x)
00345 buff.write(struct.pack('<I%ss'%length, length, _x))
00346 except struct.error as se: self._check_types(struct.error("%s: '%s' when writing '%s'" % (type(se), str(se), str(_x))))
00347 except TypeError as te: self._check_types(ValueError("%s: '%s' when writing '%s'" % (type(te), str(te), str(_x))))
00348
00349 def deserialize_numpy(self, str, numpy):
00350 """
00351 unpack serialized message in str into this message instance using numpy for array types
00352 :param str: byte array of serialized message, ``str``
00353 :param numpy: numpy python module
00354 """
00355 try:
00356 if self.icon is None:
00357 self.icon = turtlebot_app_manager.msg.Icon()
00358 if self.client_apps is None:
00359 self.client_apps = None
00360 end = 0
00361 start = end
00362 end += 4
00363 (length,) = _struct_I.unpack(str[start:end])
00364 start = end
00365 end += length
00366 if python3:
00367 self.name = str[start:end].decode('utf-8')
00368 else:
00369 self.name = str[start:end]
00370 start = end
00371 end += 4
00372 (length,) = _struct_I.unpack(str[start:end])
00373 start = end
00374 end += length
00375 if python3:
00376 self.display_name = str[start:end].decode('utf-8')
00377 else:
00378 self.display_name = str[start:end]
00379 start = end
00380 end += 4
00381 (length,) = _struct_I.unpack(str[start:end])
00382 start = end
00383 end += length
00384 if python3:
00385 self.icon.format = str[start:end].decode('utf-8')
00386 else:
00387 self.icon.format = str[start:end]
00388 start = end
00389 end += 4
00390 (length,) = _struct_I.unpack(str[start:end])
00391 start = end
00392 end += length
00393 self.icon.data = str[start:end]
00394 start = end
00395 end += 4
00396 (length,) = _struct_I.unpack(str[start:end])
00397 self.client_apps = []
00398 for i in range(0, length):
00399 val1 = turtlebot_app_manager.msg.ClientApp()
00400 start = end
00401 end += 4
00402 (length,) = _struct_I.unpack(str[start:end])
00403 start = end
00404 end += length
00405 if python3:
00406 val1.client_type = str[start:end].decode('utf-8')
00407 else:
00408 val1.client_type = str[start:end]
00409 start = end
00410 end += 4
00411 (length,) = _struct_I.unpack(str[start:end])
00412 val1.manager_data = []
00413 for i in range(0, length):
00414 val2 = turtlebot_app_manager.msg.KeyValue()
00415 start = end
00416 end += 4
00417 (length,) = _struct_I.unpack(str[start:end])
00418 start = end
00419 end += length
00420 if python3:
00421 val2.key = str[start:end].decode('utf-8')
00422 else:
00423 val2.key = str[start:end]
00424 start = end
00425 end += 4
00426 (length,) = _struct_I.unpack(str[start:end])
00427 start = end
00428 end += length
00429 if python3:
00430 val2.value = str[start:end].decode('utf-8')
00431 else:
00432 val2.value = str[start:end]
00433 val1.manager_data.append(val2)
00434 start = end
00435 end += 4
00436 (length,) = _struct_I.unpack(str[start:end])
00437 val1.app_data = []
00438 for i in range(0, length):
00439 val2 = turtlebot_app_manager.msg.KeyValue()
00440 start = end
00441 end += 4
00442 (length,) = _struct_I.unpack(str[start:end])
00443 start = end
00444 end += length
00445 if python3:
00446 val2.key = str[start:end].decode('utf-8')
00447 else:
00448 val2.key = str[start:end]
00449 start = end
00450 end += 4
00451 (length,) = _struct_I.unpack(str[start:end])
00452 start = end
00453 end += length
00454 if python3:
00455 val2.value = str[start:end].decode('utf-8')
00456 else:
00457 val2.value = str[start:end]
00458 val1.app_data.append(val2)
00459 self.client_apps.append(val1)
00460 return self
00461 except struct.error as e:
00462 raise genpy.DeserializationError(e)
00463
00464 _struct_I = genpy.struct_I