"""autogenerated by genpy from humanMonitor/niut_HUMAN_LIST.msg. Do not edit."""
import sys
python3 = True if sys.hexversion > 0x03000000 else False
import genpy
import struct

import humanMonitor.msg

class niut_HUMAN_LIST(genpy.Message):
  _md5sum = "9442f7b60b19634aa64749beaf671cc9"
  _type = "humanMonitor/niut_HUMAN_LIST"
  _has_header = False #flag to mark the presence of a Header object
  _full_text = """# IDL struct ::niut::HUMAN_LIST
int32 watch_dog
int32 num
niut_USER_STR[16] users
niut_USER_STR[16] filtered_users

================================================================================
MSG: humanMonitor/niut_USER_STR
# IDL struct ::niut::USER_STR
int32 id
int32 trackedId
niut_TIME_STR date_discovered
niut_TIME_STR date
niut_TRACK_STATE state
niut_SKELETON_STR skeleton

================================================================================
MSG: humanMonitor/niut_TIME_STR
# IDL struct ::niut::TIME_STR
uint32 t_sec
uint32 t_usec

================================================================================
MSG: humanMonitor/niut_TRACK_STATE
# IDL enum ::niut::TRACK_STATE
uint32 niut_NO_TRACKING = 0
uint32 niut_POSE_SEARCH = 1
uint32 niut_CALIBRATE = 2
uint32 niut_TRACKING = 3

uint32 value

================================================================================
MSG: humanMonitor/niut_SKELETON_STR
# IDL struct ::niut::SKELETON_STR
niut_JOINT_STR[25] joint
niut_JOINT unused

================================================================================
MSG: humanMonitor/niut_JOINT_STR
# IDL struct ::niut::JOINT_STR
float64 confidence
niut_GEN_POINT_3D position

================================================================================
MSG: humanMonitor/niut_GEN_POINT_3D
# IDL struct ::niut::GEN_POINT_3D
float64 x
float64 y
float64 z

================================================================================
MSG: humanMonitor/niut_JOINT
# IDL enum ::niut::JOINT
uint32 niut_ZERO = 0
uint32 niut_HEAD = 1
uint32 niut_NECK = 2
uint32 niut_TORSO = 3
uint32 niut_WAIST = 4
uint32 niut_LEFT_COLLAR = 5
uint32 niut_LEFT_SHOULDER = 6
uint32 niut_LEFT_ELBOW = 7
uint32 niut_LEFT_WRIST = 8
uint32 niut_LEFT_HAND = 9
uint32 niut_LEFT_FINGERTIP = 10
uint32 niut_RIGHT_COLLAR = 11
uint32 niut_RIGHT_SHOULDER = 12
uint32 niut_RIGHT_ELBOW = 13
uint32 niut_RIGHT_WRIST = 14
uint32 niut_RIGHT_HAND = 15
uint32 niut_RIGHT_FINGERTIP = 16
uint32 niut_LEFT_HIP = 17
uint32 niut_LEFT_KNEE = 18
uint32 niut_LEFT_ANKLE = 19
uint32 niut_LEFT_FOOT = 20
uint32 niut_RIGHT_HIP = 21
uint32 niut_RIGHT_KNEE = 22
uint32 niut_RIGHT_ANKLE = 23
uint32 niut_RIGHT_FOOT = 24

uint32 value

"""
  __slots__ = ['watch_dog','num','users','filtered_users']
  _slot_types = ['int32','int32','humanMonitor/niut_USER_STR[16]','humanMonitor/niut_USER_STR[16]']

  def __init__(self, *args, **kwds):
    """
    Constructor. Any message fields that are implicitly/explicitly
    set to None will be assigned a default value. The recommend
    use is keyword arguments as this is more robust to future message
    changes.  You cannot mix in-order arguments and keyword arguments.

    The available fields are:
       watch_dog,num,users,filtered_users

    :param args: complete set of field values, in .msg order
    :param kwds: use keyword arguments corresponding to message field names
    to set specific fields.
    """
    if args or kwds:
      super(niut_HUMAN_LIST, self).__init__(*args, **kwds)
      #message fields cannot be None, assign default values for those that are
      if self.watch_dog is None:
        self.watch_dog = 0
      if self.num is None:
        self.num = 0
      if self.users is None:
        self.users = [humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR()]
      if self.filtered_users is None:
        self.filtered_users = [humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR()]
    else:
      self.watch_dog = 0
      self.num = 0
      self.users = [humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR()]
      self.filtered_users = [humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR()]

  def _get_types(self):
    """
    internal API method
    """
    return self._slot_types

  def serialize(self, buff):
    """
    serialize message into buffer
    :param buff: buffer, ``StringIO``
    """
    try:
      _x = self
      buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
      for val1 in self.users:
        _x = val1
        buff.write(_struct_2i.pack(_x.id, _x.trackedId))
        _v1 = val1.date_discovered
        _x = _v1
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v2 = val1.date
        _x = _v2
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v3 = val1.state
        buff.write(_struct_I.pack(_v3.value))
        _v4 = val1.skeleton
        for val3 in _v4.joint:
          buff.write(_struct_d.pack(val3.confidence))
          _v5 = val3.position
          _x = _v5
          buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
        _v6 = _v4.unused
        buff.write(_struct_I.pack(_v6.value))
      for val1 in self.filtered_users:
        _x = val1
        buff.write(_struct_2i.pack(_x.id, _x.trackedId))
        _v7 = val1.date_discovered
        _x = _v7
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v8 = val1.date
        _x = _v8
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v9 = val1.state
        buff.write(_struct_I.pack(_v9.value))
        _v10 = val1.skeleton
        for val3 in _v10.joint:
          buff.write(_struct_d.pack(val3.confidence))
          _v11 = val3.position
          _x = _v11
          buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
        _v12 = _v10.unused
        buff.write(_struct_I.pack(_v12.value))
    except struct.error as se: self._check_types(se)
    except TypeError as te: self._check_types(te)

  def deserialize(self, str):
    """
    unpack serialized message in str into this message instance
    :param str: byte array of serialized message, ``str``
    """
    try:
      if self.users is None:
        self.users = None
      if self.filtered_users is None:
        self.filtered_users = None
      end = 0
      _x = self
      start = end
      end += 8
      (_x.watch_dog, _x.num,) = _struct_2i.unpack(str[start:end])
      self.users = []
      for i in range(0, 16):
        val1 = humanMonitor.msg.niut_USER_STR()
        _x = val1
        start = end
        end += 8
        (_x.id, _x.trackedId,) = _struct_2i.unpack(str[start:end])
        _v13 = val1.date_discovered
        _x = _v13
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v14 = val1.date
        _x = _v14
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v15 = val1.state
        start = end
        end += 4
        (_v15.value,) = _struct_I.unpack(str[start:end])
        _v16 = val1.skeleton
        _v16.joint = []
        for i in range(0, 25):
          val3 = humanMonitor.msg.niut_JOINT_STR()
          start = end
          end += 8
          (val3.confidence,) = _struct_d.unpack(str[start:end])
          _v17 = val3.position
          _x = _v17
          start = end
          end += 24
          (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
          _v16.joint.append(val3)
        _v18 = _v16.unused
        start = end
        end += 4
        (_v18.value,) = _struct_I.unpack(str[start:end])
        self.users.append(val1)
      self.filtered_users = []
      for i in range(0, 16):
        val1 = humanMonitor.msg.niut_USER_STR()
        _x = val1
        start = end
        end += 8
        (_x.id, _x.trackedId,) = _struct_2i.unpack(str[start:end])
        _v19 = val1.date_discovered
        _x = _v19
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v20 = val1.date
        _x = _v20
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v21 = val1.state
        start = end
        end += 4
        (_v21.value,) = _struct_I.unpack(str[start:end])
        _v22 = val1.skeleton
        _v22.joint = []
        for i in range(0, 25):
          val3 = humanMonitor.msg.niut_JOINT_STR()
          start = end
          end += 8
          (val3.confidence,) = _struct_d.unpack(str[start:end])
          _v23 = val3.position
          _x = _v23
          start = end
          end += 24
          (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
          _v22.joint.append(val3)
        _v24 = _v22.unused
        start = end
        end += 4
        (_v24.value,) = _struct_I.unpack(str[start:end])
        self.filtered_users.append(val1)
      return self
    except struct.error as e:
      raise genpy.DeserializationError(e) #most likely buffer underfill


  def serialize_numpy(self, buff, numpy):
    """
    serialize message with numpy array types into buffer
    :param buff: buffer, ``StringIO``
    :param numpy: numpy python module
    """
    try:
      _x = self
      buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
      for val1 in self.users:
        _x = val1
        buff.write(_struct_2i.pack(_x.id, _x.trackedId))
        _v25 = val1.date_discovered
        _x = _v25
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v26 = val1.date
        _x = _v26
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v27 = val1.state
        buff.write(_struct_I.pack(_v27.value))
        _v28 = val1.skeleton
        for val3 in _v28.joint:
          buff.write(_struct_d.pack(val3.confidence))
          _v29 = val3.position
          _x = _v29
          buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
        _v30 = _v28.unused
        buff.write(_struct_I.pack(_v30.value))
      for val1 in self.filtered_users:
        _x = val1
        buff.write(_struct_2i.pack(_x.id, _x.trackedId))
        _v31 = val1.date_discovered
        _x = _v31
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v32 = val1.date
        _x = _v32
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v33 = val1.state
        buff.write(_struct_I.pack(_v33.value))
        _v34 = val1.skeleton
        for val3 in _v34.joint:
          buff.write(_struct_d.pack(val3.confidence))
          _v35 = val3.position
          _x = _v35
          buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
        _v36 = _v34.unused
        buff.write(_struct_I.pack(_v36.value))
    except struct.error as se: self._check_types(se)
    except TypeError as te: self._check_types(te)

  def deserialize_numpy(self, str, numpy):
    """
    unpack serialized message in str into this message instance using numpy for array types
    :param str: byte array of serialized message, ``str``
    :param numpy: numpy python module
    """
    try:
      if self.users is None:
        self.users = None
      if self.filtered_users is None:
        self.filtered_users = None
      end = 0
      _x = self
      start = end
      end += 8
      (_x.watch_dog, _x.num,) = _struct_2i.unpack(str[start:end])
      self.users = []
      for i in range(0, 16):
        val1 = humanMonitor.msg.niut_USER_STR()
        _x = val1
        start = end
        end += 8
        (_x.id, _x.trackedId,) = _struct_2i.unpack(str[start:end])
        _v37 = val1.date_discovered
        _x = _v37
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v38 = val1.date
        _x = _v38
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v39 = val1.state
        start = end
        end += 4
        (_v39.value,) = _struct_I.unpack(str[start:end])
        _v40 = val1.skeleton
        _v40.joint = []
        for i in range(0, 25):
          val3 = humanMonitor.msg.niut_JOINT_STR()
          start = end
          end += 8
          (val3.confidence,) = _struct_d.unpack(str[start:end])
          _v41 = val3.position
          _x = _v41
          start = end
          end += 24
          (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
          _v40.joint.append(val3)
        _v42 = _v40.unused
        start = end
        end += 4
        (_v42.value,) = _struct_I.unpack(str[start:end])
        self.users.append(val1)
      self.filtered_users = []
      for i in range(0, 16):
        val1 = humanMonitor.msg.niut_USER_STR()
        _x = val1
        start = end
        end += 8
        (_x.id, _x.trackedId,) = _struct_2i.unpack(str[start:end])
        _v43 = val1.date_discovered
        _x = _v43
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v44 = val1.date
        _x = _v44
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v45 = val1.state
        start = end
        end += 4
        (_v45.value,) = _struct_I.unpack(str[start:end])
        _v46 = val1.skeleton
        _v46.joint = []
        for i in range(0, 25):
          val3 = humanMonitor.msg.niut_JOINT_STR()
          start = end
          end += 8
          (val3.confidence,) = _struct_d.unpack(str[start:end])
          _v47 = val3.position
          _x = _v47
          start = end
          end += 24
          (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
          _v46.joint.append(val3)
        _v48 = _v46.unused
        start = end
        end += 4
        (_v48.value,) = _struct_I.unpack(str[start:end])
        self.filtered_users.append(val1)
      return self
    except struct.error as e:
      raise genpy.DeserializationError(e) #most likely buffer underfill

_struct_I = genpy.struct_I
_struct_d = struct.Struct("<d")
_struct_3d = struct.Struct("<3d")
_struct_2i = struct.Struct("<2i")
_struct_2I = struct.Struct("<2I")

90ea74826506454b562ab4243ccc6fd05c852fa1
<mask token>


class niut_HUMAN_LIST(genpy.Message):
    <mask token>
    <mask token>
    <mask token>
    <mask token>
    <mask token>
    <mask token>
    <mask token>
    <mask token>

    def serialize(self, buff):
        """
    serialize message into buffer
    :param buff: buffer, ``StringIO``
    """
        try:
            _x = self
            buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
            for val1 in self.users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v1 = val1.date_discovered
                _x = _v1
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v2 = val1.date
                _x = _v2
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v3 = val1.state
                buff.write(_struct_I.pack(_v3.value))
                _v4 = val1.skeleton
                for val3 in _v4.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v5 = val3.position
                    _x = _v5
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v6 = _v4.unused
                buff.write(_struct_I.pack(_v6.value))
            for val1 in self.filtered_users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v7 = val1.date_discovered
                _x = _v7
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v8 = val1.date
                _x = _v8
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v9 = val1.state
                buff.write(_struct_I.pack(_v9.value))
                _v10 = val1.skeleton
                for val3 in _v10.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v11 = val3.position
                    _x = _v11
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v12 = _v10.unused
                buff.write(_struct_I.pack(_v12.value))
        except struct.error as se:
            self._check_types(se)
        except TypeError as te:
            self._check_types(te)
    <mask token>

    def serialize_numpy(self, buff, numpy):
        """
    serialize message with numpy array types into buffer
    :param buff: buffer, ``StringIO``
    :param numpy: numpy python module
    """
        try:
            _x = self
            buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
            for val1 in self.users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v25 = val1.date_discovered
                _x = _v25
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v26 = val1.date
                _x = _v26
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v27 = val1.state
                buff.write(_struct_I.pack(_v27.value))
                _v28 = val1.skeleton
                for val3 in _v28.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v29 = val3.position
                    _x = _v29
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v30 = _v28.unused
                buff.write(_struct_I.pack(_v30.value))
            for val1 in self.filtered_users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v31 = val1.date_discovered
                _x = _v31
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v32 = val1.date
                _x = _v32
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v33 = val1.state
                buff.write(_struct_I.pack(_v33.value))
                _v34 = val1.skeleton
                for val3 in _v34.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v35 = val3.position
                    _x = _v35
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v36 = _v34.unused
                buff.write(_struct_I.pack(_v36.value))
        except struct.error as se:
            self._check_types(se)
        except TypeError as te:
            self._check_types(te)
    <mask token>


<mask token>

<mask token>


class niut_HUMAN_LIST(genpy.Message):
    <mask token>
    <mask token>
    <mask token>
    <mask token>
    <mask token>
    <mask token>

    def __init__(self, *args, **kwds):
        """
    Constructor. Any message fields that are implicitly/explicitly
    set to None will be assigned a default value. The recommend
    use is keyword arguments as this is more robust to future message
    changes.  You cannot mix in-order arguments and keyword arguments.

    The available fields are:
       watch_dog,num,users,filtered_users

    :param args: complete set of field values, in .msg order
    :param kwds: use keyword arguments corresponding to message field names
    to set specific fields.
    """
        if args or kwds:
            super(niut_HUMAN_LIST, self).__init__(*args, **kwds)
            if self.watch_dog is None:
                self.watch_dog = 0
            if self.num is None:
                self.num = 0
            if self.users is None:
                self.users = [humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR()]
            if self.filtered_users is None:
                self.filtered_users = [humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR()]
        else:
            self.watch_dog = 0
            self.num = 0
            self.users = [humanMonitor.msg.niut_USER_STR(), humanMonitor.
                msg.niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR()]
            self.filtered_users = [humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR()]

    def _get_types(self):
        """
    internal API method
    """
        return self._slot_types

    def serialize(self, buff):
        """
    serialize message into buffer
    :param buff: buffer, ``StringIO``
    """
        try:
            _x = self
            buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
            for val1 in self.users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v1 = val1.date_discovered
                _x = _v1
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v2 = val1.date
                _x = _v2
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v3 = val1.state
                buff.write(_struct_I.pack(_v3.value))
                _v4 = val1.skeleton
                for val3 in _v4.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v5 = val3.position
                    _x = _v5
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v6 = _v4.unused
                buff.write(_struct_I.pack(_v6.value))
            for val1 in self.filtered_users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v7 = val1.date_discovered
                _x = _v7
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v8 = val1.date
                _x = _v8
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v9 = val1.state
                buff.write(_struct_I.pack(_v9.value))
                _v10 = val1.skeleton
                for val3 in _v10.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v11 = val3.position
                    _x = _v11
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v12 = _v10.unused
                buff.write(_struct_I.pack(_v12.value))
        except struct.error as se:
            self._check_types(se)
        except TypeError as te:
            self._check_types(te)

    def deserialize(self, str):
        """
    unpack serialized message in str into this message instance
    :param str: byte array of serialized message, ``str``
    """
        try:
            if self.users is None:
                self.users = None
            if self.filtered_users is None:
                self.filtered_users = None
            end = 0
            _x = self
            start = end
            end += 8
            _x.watch_dog, _x.num = _struct_2i.unpack(str[start:end])
            self.users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v13 = val1.date_discovered
                _x = _v13
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v14 = val1.date
                _x = _v14
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v15 = val1.state
                start = end
                end += 4
                _v15.value, = _struct_I.unpack(str[start:end])
                _v16 = val1.skeleton
                _v16.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v17 = val3.position
                    _x = _v17
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v16.joint.append(val3)
                _v18 = _v16.unused
                start = end
                end += 4
                _v18.value, = _struct_I.unpack(str[start:end])
                self.users.append(val1)
            self.filtered_users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v19 = val1.date_discovered
                _x = _v19
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v20 = val1.date
                _x = _v20
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v21 = val1.state
                start = end
                end += 4
                _v21.value, = _struct_I.unpack(str[start:end])
                _v22 = val1.skeleton
                _v22.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v23 = val3.position
                    _x = _v23
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v22.joint.append(val3)
                _v24 = _v22.unused
                start = end
                end += 4
                _v24.value, = _struct_I.unpack(str[start:end])
                self.filtered_users.append(val1)
            return self
        except struct.error as e:
            raise genpy.DeserializationError(e)

    def serialize_numpy(self, buff, numpy):
        """
    serialize message with numpy array types into buffer
    :param buff: buffer, ``StringIO``
    :param numpy: numpy python module
    """
        try:
            _x = self
            buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
            for val1 in self.users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v25 = val1.date_discovered
                _x = _v25
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v26 = val1.date
                _x = _v26
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v27 = val1.state
                buff.write(_struct_I.pack(_v27.value))
                _v28 = val1.skeleton
                for val3 in _v28.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v29 = val3.position
                    _x = _v29
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v30 = _v28.unused
                buff.write(_struct_I.pack(_v30.value))
            for val1 in self.filtered_users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v31 = val1.date_discovered
                _x = _v31
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v32 = val1.date
                _x = _v32
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v33 = val1.state
                buff.write(_struct_I.pack(_v33.value))
                _v34 = val1.skeleton
                for val3 in _v34.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v35 = val3.position
                    _x = _v35
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v36 = _v34.unused
                buff.write(_struct_I.pack(_v36.value))
        except struct.error as se:
            self._check_types(se)
        except TypeError as te:
            self._check_types(te)

    def deserialize_numpy(self, str, numpy):
        """
    unpack serialized message in str into this message instance using numpy for array types
    :param str: byte array of serialized message, ``str``
    :param numpy: numpy python module
    """
        try:
            if self.users is None:
                self.users = None
            if self.filtered_users is None:
                self.filtered_users = None
            end = 0
            _x = self
            start = end
            end += 8
            _x.watch_dog, _x.num = _struct_2i.unpack(str[start:end])
            self.users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v37 = val1.date_discovered
                _x = _v37
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v38 = val1.date
                _x = _v38
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v39 = val1.state
                start = end
                end += 4
                _v39.value, = _struct_I.unpack(str[start:end])
                _v40 = val1.skeleton
                _v40.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v41 = val3.position
                    _x = _v41
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v40.joint.append(val3)
                _v42 = _v40.unused
                start = end
                end += 4
                _v42.value, = _struct_I.unpack(str[start:end])
                self.users.append(val1)
            self.filtered_users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v43 = val1.date_discovered
                _x = _v43
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v44 = val1.date
                _x = _v44
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v45 = val1.state
                start = end
                end += 4
                _v45.value, = _struct_I.unpack(str[start:end])
                _v46 = val1.skeleton
                _v46.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v47 = val3.position
                    _x = _v47
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v46.joint.append(val3)
                _v48 = _v46.unused
                start = end
                end += 4
                _v48.value, = _struct_I.unpack(str[start:end])
                self.filtered_users.append(val1)
            return self
        except struct.error as e:
            raise genpy.DeserializationError(e)


<mask token>

<mask token>


class niut_HUMAN_LIST(genpy.Message):
    _md5sum = '9442f7b60b19634aa64749beaf671cc9'
    _type = 'humanMonitor/niut_HUMAN_LIST'
    _has_header = False
    _full_text = """# IDL struct ::niut::HUMAN_LIST
int32 watch_dog
int32 num
niut_USER_STR[16] users
niut_USER_STR[16] filtered_users

================================================================================
MSG: humanMonitor/niut_USER_STR
# IDL struct ::niut::USER_STR
int32 id
int32 trackedId
niut_TIME_STR date_discovered
niut_TIME_STR date
niut_TRACK_STATE state
niut_SKELETON_STR skeleton

================================================================================
MSG: humanMonitor/niut_TIME_STR
# IDL struct ::niut::TIME_STR
uint32 t_sec
uint32 t_usec

================================================================================
MSG: humanMonitor/niut_TRACK_STATE
# IDL enum ::niut::TRACK_STATE
uint32 niut_NO_TRACKING = 0
uint32 niut_POSE_SEARCH = 1
uint32 niut_CALIBRATE = 2
uint32 niut_TRACKING = 3

uint32 value

================================================================================
MSG: humanMonitor/niut_SKELETON_STR
# IDL struct ::niut::SKELETON_STR
niut_JOINT_STR[25] joint
niut_JOINT unused

================================================================================
MSG: humanMonitor/niut_JOINT_STR
# IDL struct ::niut::JOINT_STR
float64 confidence
niut_GEN_POINT_3D position

================================================================================
MSG: humanMonitor/niut_GEN_POINT_3D
# IDL struct ::niut::GEN_POINT_3D
float64 x
float64 y
float64 z

================================================================================
MSG: humanMonitor/niut_JOINT
# IDL enum ::niut::JOINT
uint32 niut_ZERO = 0
uint32 niut_HEAD = 1
uint32 niut_NECK = 2
uint32 niut_TORSO = 3
uint32 niut_WAIST = 4
uint32 niut_LEFT_COLLAR = 5
uint32 niut_LEFT_SHOULDER = 6
uint32 niut_LEFT_ELBOW = 7
uint32 niut_LEFT_WRIST = 8
uint32 niut_LEFT_HAND = 9
uint32 niut_LEFT_FINGERTIP = 10
uint32 niut_RIGHT_COLLAR = 11
uint32 niut_RIGHT_SHOULDER = 12
uint32 niut_RIGHT_ELBOW = 13
uint32 niut_RIGHT_WRIST = 14
uint32 niut_RIGHT_HAND = 15
uint32 niut_RIGHT_FINGERTIP = 16
uint32 niut_LEFT_HIP = 17
uint32 niut_LEFT_KNEE = 18
uint32 niut_LEFT_ANKLE = 19
uint32 niut_LEFT_FOOT = 20
uint32 niut_RIGHT_HIP = 21
uint32 niut_RIGHT_KNEE = 22
uint32 niut_RIGHT_ANKLE = 23
uint32 niut_RIGHT_FOOT = 24

uint32 value

"""
    __slots__ = ['watch_dog', 'num', 'users', 'filtered_users']
    _slot_types = ['int32', 'int32', 'humanMonitor/niut_USER_STR[16]',
        'humanMonitor/niut_USER_STR[16]']

    def __init__(self, *args, **kwds):
        """
    Constructor. Any message fields that are implicitly/explicitly
    set to None will be assigned a default value. The recommend
    use is keyword arguments as this is more robust to future message
    changes.  You cannot mix in-order arguments and keyword arguments.

    The available fields are:
       watch_dog,num,users,filtered_users

    :param args: complete set of field values, in .msg order
    :param kwds: use keyword arguments corresponding to message field names
    to set specific fields.
    """
        if args or kwds:
            super(niut_HUMAN_LIST, self).__init__(*args, **kwds)
            if self.watch_dog is None:
                self.watch_dog = 0
            if self.num is None:
                self.num = 0
            if self.users is None:
                self.users = [humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR()]
            if self.filtered_users is None:
                self.filtered_users = [humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR()]
        else:
            self.watch_dog = 0
            self.num = 0
            self.users = [humanMonitor.msg.niut_USER_STR(), humanMonitor.
                msg.niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR()]
            self.filtered_users = [humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR()]

    def _get_types(self):
        """
    internal API method
    """
        return self._slot_types

    def serialize(self, buff):
        """
    serialize message into buffer
    :param buff: buffer, ``StringIO``
    """
        try:
            _x = self
            buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
            for val1 in self.users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v1 = val1.date_discovered
                _x = _v1
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v2 = val1.date
                _x = _v2
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v3 = val1.state
                buff.write(_struct_I.pack(_v3.value))
                _v4 = val1.skeleton
                for val3 in _v4.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v5 = val3.position
                    _x = _v5
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v6 = _v4.unused
                buff.write(_struct_I.pack(_v6.value))
            for val1 in self.filtered_users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v7 = val1.date_discovered
                _x = _v7
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v8 = val1.date
                _x = _v8
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v9 = val1.state
                buff.write(_struct_I.pack(_v9.value))
                _v10 = val1.skeleton
                for val3 in _v10.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v11 = val3.position
                    _x = _v11
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v12 = _v10.unused
                buff.write(_struct_I.pack(_v12.value))
        except struct.error as se:
            self._check_types(se)
        except TypeError as te:
            self._check_types(te)

    def deserialize(self, str):
        """
    unpack serialized message in str into this message instance
    :param str: byte array of serialized message, ``str``
    """
        try:
            if self.users is None:
                self.users = None
            if self.filtered_users is None:
                self.filtered_users = None
            end = 0
            _x = self
            start = end
            end += 8
            _x.watch_dog, _x.num = _struct_2i.unpack(str[start:end])
            self.users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v13 = val1.date_discovered
                _x = _v13
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v14 = val1.date
                _x = _v14
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v15 = val1.state
                start = end
                end += 4
                _v15.value, = _struct_I.unpack(str[start:end])
                _v16 = val1.skeleton
                _v16.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v17 = val3.position
                    _x = _v17
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v16.joint.append(val3)
                _v18 = _v16.unused
                start = end
                end += 4
                _v18.value, = _struct_I.unpack(str[start:end])
                self.users.append(val1)
            self.filtered_users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v19 = val1.date_discovered
                _x = _v19
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v20 = val1.date
                _x = _v20
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v21 = val1.state
                start = end
                end += 4
                _v21.value, = _struct_I.unpack(str[start:end])
                _v22 = val1.skeleton
                _v22.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v23 = val3.position
                    _x = _v23
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v22.joint.append(val3)
                _v24 = _v22.unused
                start = end
                end += 4
                _v24.value, = _struct_I.unpack(str[start:end])
                self.filtered_users.append(val1)
            return self
        except struct.error as e:
            raise genpy.DeserializationError(e)

    def serialize_numpy(self, buff, numpy):
        """
    serialize message with numpy array types into buffer
    :param buff: buffer, ``StringIO``
    :param numpy: numpy python module
    """
        try:
            _x = self
            buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
            for val1 in self.users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v25 = val1.date_discovered
                _x = _v25
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v26 = val1.date
                _x = _v26
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v27 = val1.state
                buff.write(_struct_I.pack(_v27.value))
                _v28 = val1.skeleton
                for val3 in _v28.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v29 = val3.position
                    _x = _v29
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v30 = _v28.unused
                buff.write(_struct_I.pack(_v30.value))
            for val1 in self.filtered_users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v31 = val1.date_discovered
                _x = _v31
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v32 = val1.date
                _x = _v32
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v33 = val1.state
                buff.write(_struct_I.pack(_v33.value))
                _v34 = val1.skeleton
                for val3 in _v34.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v35 = val3.position
                    _x = _v35
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v36 = _v34.unused
                buff.write(_struct_I.pack(_v36.value))
        except struct.error as se:
            self._check_types(se)
        except TypeError as te:
            self._check_types(te)

    def deserialize_numpy(self, str, numpy):
        """
    unpack serialized message in str into this message instance using numpy for array types
    :param str: byte array of serialized message, ``str``
    :param numpy: numpy python module
    """
        try:
            if self.users is None:
                self.users = None
            if self.filtered_users is None:
                self.filtered_users = None
            end = 0
            _x = self
            start = end
            end += 8
            _x.watch_dog, _x.num = _struct_2i.unpack(str[start:end])
            self.users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v37 = val1.date_discovered
                _x = _v37
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v38 = val1.date
                _x = _v38
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v39 = val1.state
                start = end
                end += 4
                _v39.value, = _struct_I.unpack(str[start:end])
                _v40 = val1.skeleton
                _v40.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v41 = val3.position
                    _x = _v41
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v40.joint.append(val3)
                _v42 = _v40.unused
                start = end
                end += 4
                _v42.value, = _struct_I.unpack(str[start:end])
                self.users.append(val1)
            self.filtered_users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v43 = val1.date_discovered
                _x = _v43
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v44 = val1.date
                _x = _v44
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v45 = val1.state
                start = end
                end += 4
                _v45.value, = _struct_I.unpack(str[start:end])
                _v46 = val1.skeleton
                _v46.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v47 = val3.position
                    _x = _v47
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v46.joint.append(val3)
                _v48 = _v46.unused
                start = end
                end += 4
                _v48.value, = _struct_I.unpack(str[start:end])
                self.filtered_users.append(val1)
            return self
        except struct.error as e:
            raise genpy.DeserializationError(e)


<mask token>

<mask token>
python3 = True if sys.hexversion > 50331648 else False
<mask token>


class niut_HUMAN_LIST(genpy.Message):
    _md5sum = '9442f7b60b19634aa64749beaf671cc9'
    _type = 'humanMonitor/niut_HUMAN_LIST'
    _has_header = False
    _full_text = """# IDL struct ::niut::HUMAN_LIST
int32 watch_dog
int32 num
niut_USER_STR[16] users
niut_USER_STR[16] filtered_users

================================================================================
MSG: humanMonitor/niut_USER_STR
# IDL struct ::niut::USER_STR
int32 id
int32 trackedId
niut_TIME_STR date_discovered
niut_TIME_STR date
niut_TRACK_STATE state
niut_SKELETON_STR skeleton

================================================================================
MSG: humanMonitor/niut_TIME_STR
# IDL struct ::niut::TIME_STR
uint32 t_sec
uint32 t_usec

================================================================================
MSG: humanMonitor/niut_TRACK_STATE
# IDL enum ::niut::TRACK_STATE
uint32 niut_NO_TRACKING = 0
uint32 niut_POSE_SEARCH = 1
uint32 niut_CALIBRATE = 2
uint32 niut_TRACKING = 3

uint32 value

================================================================================
MSG: humanMonitor/niut_SKELETON_STR
# IDL struct ::niut::SKELETON_STR
niut_JOINT_STR[25] joint
niut_JOINT unused

================================================================================
MSG: humanMonitor/niut_JOINT_STR
# IDL struct ::niut::JOINT_STR
float64 confidence
niut_GEN_POINT_3D position

================================================================================
MSG: humanMonitor/niut_GEN_POINT_3D
# IDL struct ::niut::GEN_POINT_3D
float64 x
float64 y
float64 z

================================================================================
MSG: humanMonitor/niut_JOINT
# IDL enum ::niut::JOINT
uint32 niut_ZERO = 0
uint32 niut_HEAD = 1
uint32 niut_NECK = 2
uint32 niut_TORSO = 3
uint32 niut_WAIST = 4
uint32 niut_LEFT_COLLAR = 5
uint32 niut_LEFT_SHOULDER = 6
uint32 niut_LEFT_ELBOW = 7
uint32 niut_LEFT_WRIST = 8
uint32 niut_LEFT_HAND = 9
uint32 niut_LEFT_FINGERTIP = 10
uint32 niut_RIGHT_COLLAR = 11
uint32 niut_RIGHT_SHOULDER = 12
uint32 niut_RIGHT_ELBOW = 13
uint32 niut_RIGHT_WRIST = 14
uint32 niut_RIGHT_HAND = 15
uint32 niut_RIGHT_FINGERTIP = 16
uint32 niut_LEFT_HIP = 17
uint32 niut_LEFT_KNEE = 18
uint32 niut_LEFT_ANKLE = 19
uint32 niut_LEFT_FOOT = 20
uint32 niut_RIGHT_HIP = 21
uint32 niut_RIGHT_KNEE = 22
uint32 niut_RIGHT_ANKLE = 23
uint32 niut_RIGHT_FOOT = 24

uint32 value

"""
    __slots__ = ['watch_dog', 'num', 'users', 'filtered_users']
    _slot_types = ['int32', 'int32', 'humanMonitor/niut_USER_STR[16]',
        'humanMonitor/niut_USER_STR[16]']

    def __init__(self, *args, **kwds):
        """
    Constructor. Any message fields that are implicitly/explicitly
    set to None will be assigned a default value. The recommend
    use is keyword arguments as this is more robust to future message
    changes.  You cannot mix in-order arguments and keyword arguments.

    The available fields are:
       watch_dog,num,users,filtered_users

    :param args: complete set of field values, in .msg order
    :param kwds: use keyword arguments corresponding to message field names
    to set specific fields.
    """
        if args or kwds:
            super(niut_HUMAN_LIST, self).__init__(*args, **kwds)
            if self.watch_dog is None:
                self.watch_dog = 0
            if self.num is None:
                self.num = 0
            if self.users is None:
                self.users = [humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR()]
            if self.filtered_users is None:
                self.filtered_users = [humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                    humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                    niut_USER_STR(), humanMonitor.msg.niut_USER_STR()]
        else:
            self.watch_dog = 0
            self.num = 0
            self.users = [humanMonitor.msg.niut_USER_STR(), humanMonitor.
                msg.niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR()]
            self.filtered_users = [humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR(),
                humanMonitor.msg.niut_USER_STR(), humanMonitor.msg.
                niut_USER_STR(), humanMonitor.msg.niut_USER_STR()]

    def _get_types(self):
        """
    internal API method
    """
        return self._slot_types

    def serialize(self, buff):
        """
    serialize message into buffer
    :param buff: buffer, ``StringIO``
    """
        try:
            _x = self
            buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
            for val1 in self.users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v1 = val1.date_discovered
                _x = _v1
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v2 = val1.date
                _x = _v2
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v3 = val1.state
                buff.write(_struct_I.pack(_v3.value))
                _v4 = val1.skeleton
                for val3 in _v4.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v5 = val3.position
                    _x = _v5
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v6 = _v4.unused
                buff.write(_struct_I.pack(_v6.value))
            for val1 in self.filtered_users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v7 = val1.date_discovered
                _x = _v7
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v8 = val1.date
                _x = _v8
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v9 = val1.state
                buff.write(_struct_I.pack(_v9.value))
                _v10 = val1.skeleton
                for val3 in _v10.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v11 = val3.position
                    _x = _v11
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v12 = _v10.unused
                buff.write(_struct_I.pack(_v12.value))
        except struct.error as se:
            self._check_types(se)
        except TypeError as te:
            self._check_types(te)

    def deserialize(self, str):
        """
    unpack serialized message in str into this message instance
    :param str: byte array of serialized message, ``str``
    """
        try:
            if self.users is None:
                self.users = None
            if self.filtered_users is None:
                self.filtered_users = None
            end = 0
            _x = self
            start = end
            end += 8
            _x.watch_dog, _x.num = _struct_2i.unpack(str[start:end])
            self.users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v13 = val1.date_discovered
                _x = _v13
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v14 = val1.date
                _x = _v14
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v15 = val1.state
                start = end
                end += 4
                _v15.value, = _struct_I.unpack(str[start:end])
                _v16 = val1.skeleton
                _v16.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v17 = val3.position
                    _x = _v17
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v16.joint.append(val3)
                _v18 = _v16.unused
                start = end
                end += 4
                _v18.value, = _struct_I.unpack(str[start:end])
                self.users.append(val1)
            self.filtered_users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v19 = val1.date_discovered
                _x = _v19
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v20 = val1.date
                _x = _v20
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v21 = val1.state
                start = end
                end += 4
                _v21.value, = _struct_I.unpack(str[start:end])
                _v22 = val1.skeleton
                _v22.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v23 = val3.position
                    _x = _v23
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v22.joint.append(val3)
                _v24 = _v22.unused
                start = end
                end += 4
                _v24.value, = _struct_I.unpack(str[start:end])
                self.filtered_users.append(val1)
            return self
        except struct.error as e:
            raise genpy.DeserializationError(e)

    def serialize_numpy(self, buff, numpy):
        """
    serialize message with numpy array types into buffer
    :param buff: buffer, ``StringIO``
    :param numpy: numpy python module
    """
        try:
            _x = self
            buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
            for val1 in self.users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v25 = val1.date_discovered
                _x = _v25
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v26 = val1.date
                _x = _v26
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v27 = val1.state
                buff.write(_struct_I.pack(_v27.value))
                _v28 = val1.skeleton
                for val3 in _v28.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v29 = val3.position
                    _x = _v29
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v30 = _v28.unused
                buff.write(_struct_I.pack(_v30.value))
            for val1 in self.filtered_users:
                _x = val1
                buff.write(_struct_2i.pack(_x.id, _x.trackedId))
                _v31 = val1.date_discovered
                _x = _v31
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v32 = val1.date
                _x = _v32
                buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
                _v33 = val1.state
                buff.write(_struct_I.pack(_v33.value))
                _v34 = val1.skeleton
                for val3 in _v34.joint:
                    buff.write(_struct_d.pack(val3.confidence))
                    _v35 = val3.position
                    _x = _v35
                    buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
                _v36 = _v34.unused
                buff.write(_struct_I.pack(_v36.value))
        except struct.error as se:
            self._check_types(se)
        except TypeError as te:
            self._check_types(te)

    def deserialize_numpy(self, str, numpy):
        """
    unpack serialized message in str into this message instance using numpy for array types
    :param str: byte array of serialized message, ``str``
    :param numpy: numpy python module
    """
        try:
            if self.users is None:
                self.users = None
            if self.filtered_users is None:
                self.filtered_users = None
            end = 0
            _x = self
            start = end
            end += 8
            _x.watch_dog, _x.num = _struct_2i.unpack(str[start:end])
            self.users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v37 = val1.date_discovered
                _x = _v37
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v38 = val1.date
                _x = _v38
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v39 = val1.state
                start = end
                end += 4
                _v39.value, = _struct_I.unpack(str[start:end])
                _v40 = val1.skeleton
                _v40.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v41 = val3.position
                    _x = _v41
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v40.joint.append(val3)
                _v42 = _v40.unused
                start = end
                end += 4
                _v42.value, = _struct_I.unpack(str[start:end])
                self.users.append(val1)
            self.filtered_users = []
            for i in range(0, 16):
                val1 = humanMonitor.msg.niut_USER_STR()
                _x = val1
                start = end
                end += 8
                _x.id, _x.trackedId = _struct_2i.unpack(str[start:end])
                _v43 = val1.date_discovered
                _x = _v43
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v44 = val1.date
                _x = _v44
                start = end
                end += 8
                _x.t_sec, _x.t_usec = _struct_2I.unpack(str[start:end])
                _v45 = val1.state
                start = end
                end += 4
                _v45.value, = _struct_I.unpack(str[start:end])
                _v46 = val1.skeleton
                _v46.joint = []
                for i in range(0, 25):
                    val3 = humanMonitor.msg.niut_JOINT_STR()
                    start = end
                    end += 8
                    val3.confidence, = _struct_d.unpack(str[start:end])
                    _v47 = val3.position
                    _x = _v47
                    start = end
                    end += 24
                    _x.x, _x.y, _x.z = _struct_3d.unpack(str[start:end])
                    _v46.joint.append(val3)
                _v48 = _v46.unused
                start = end
                end += 4
                _v48.value, = _struct_I.unpack(str[start:end])
                self.filtered_users.append(val1)
            return self
        except struct.error as e:
            raise genpy.DeserializationError(e)


_struct_I = genpy.struct_I
_struct_d = struct.Struct('<d')
_struct_3d = struct.Struct('<3d')
_struct_2i = struct.Struct('<2i')
_struct_2I = struct.Struct('<2I')

"""autogenerated by genpy from humanMonitor/niut_HUMAN_LIST.msg. Do not edit."""
import sys
python3 = True if sys.hexversion > 0x03000000 else False
import genpy
import struct

import humanMonitor.msg

class niut_HUMAN_LIST(genpy.Message):
  _md5sum = "9442f7b60b19634aa64749beaf671cc9"
  _type = "humanMonitor/niut_HUMAN_LIST"
  _has_header = False #flag to mark the presence of a Header object
  _full_text = """# IDL struct ::niut::HUMAN_LIST
int32 watch_dog
int32 num
niut_USER_STR[16] users
niut_USER_STR[16] filtered_users

================================================================================
MSG: humanMonitor/niut_USER_STR
# IDL struct ::niut::USER_STR
int32 id
int32 trackedId
niut_TIME_STR date_discovered
niut_TIME_STR date
niut_TRACK_STATE state
niut_SKELETON_STR skeleton

================================================================================
MSG: humanMonitor/niut_TIME_STR
# IDL struct ::niut::TIME_STR
uint32 t_sec
uint32 t_usec

================================================================================
MSG: humanMonitor/niut_TRACK_STATE
# IDL enum ::niut::TRACK_STATE
uint32 niut_NO_TRACKING = 0
uint32 niut_POSE_SEARCH = 1
uint32 niut_CALIBRATE = 2
uint32 niut_TRACKING = 3

uint32 value

================================================================================
MSG: humanMonitor/niut_SKELETON_STR
# IDL struct ::niut::SKELETON_STR
niut_JOINT_STR[25] joint
niut_JOINT unused

================================================================================
MSG: humanMonitor/niut_JOINT_STR
# IDL struct ::niut::JOINT_STR
float64 confidence
niut_GEN_POINT_3D position

================================================================================
MSG: humanMonitor/niut_GEN_POINT_3D
# IDL struct ::niut::GEN_POINT_3D
float64 x
float64 y
float64 z

================================================================================
MSG: humanMonitor/niut_JOINT
# IDL enum ::niut::JOINT
uint32 niut_ZERO = 0
uint32 niut_HEAD = 1
uint32 niut_NECK = 2
uint32 niut_TORSO = 3
uint32 niut_WAIST = 4
uint32 niut_LEFT_COLLAR = 5
uint32 niut_LEFT_SHOULDER = 6
uint32 niut_LEFT_ELBOW = 7
uint32 niut_LEFT_WRIST = 8
uint32 niut_LEFT_HAND = 9
uint32 niut_LEFT_FINGERTIP = 10
uint32 niut_RIGHT_COLLAR = 11
uint32 niut_RIGHT_SHOULDER = 12
uint32 niut_RIGHT_ELBOW = 13
uint32 niut_RIGHT_WRIST = 14
uint32 niut_RIGHT_HAND = 15
uint32 niut_RIGHT_FINGERTIP = 16
uint32 niut_LEFT_HIP = 17
uint32 niut_LEFT_KNEE = 18
uint32 niut_LEFT_ANKLE = 19
uint32 niut_LEFT_FOOT = 20
uint32 niut_RIGHT_HIP = 21
uint32 niut_RIGHT_KNEE = 22
uint32 niut_RIGHT_ANKLE = 23
uint32 niut_RIGHT_FOOT = 24

uint32 value

"""
  __slots__ = ['watch_dog','num','users','filtered_users']
  _slot_types = ['int32','int32','humanMonitor/niut_USER_STR[16]','humanMonitor/niut_USER_STR[16]']

  def __init__(self, *args, **kwds):
    """
    Constructor. Any message fields that are implicitly/explicitly
    set to None will be assigned a default value. The recommend
    use is keyword arguments as this is more robust to future message
    changes.  You cannot mix in-order arguments and keyword arguments.

    The available fields are:
       watch_dog,num,users,filtered_users

    :param args: complete set of field values, in .msg order
    :param kwds: use keyword arguments corresponding to message field names
    to set specific fields.
    """
    if args or kwds:
      super(niut_HUMAN_LIST, self).__init__(*args, **kwds)
      #message fields cannot be None, assign default values for those that are
      if self.watch_dog is None:
        self.watch_dog = 0
      if self.num is None:
        self.num = 0
      if self.users is None:
        self.users = [humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR()]
      if self.filtered_users is None:
        self.filtered_users = [humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR()]
    else:
      self.watch_dog = 0
      self.num = 0
      self.users = [humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR()]
      self.filtered_users = [humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR(),humanMonitor.msg.niut_USER_STR()]

  def _get_types(self):
    """
    internal API method
    """
    return self._slot_types

  def serialize(self, buff):
    """
    serialize message into buffer
    :param buff: buffer, ``StringIO``
    """
    try:
      _x = self
      buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
      for val1 in self.users:
        _x = val1
        buff.write(_struct_2i.pack(_x.id, _x.trackedId))
        _v1 = val1.date_discovered
        _x = _v1
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v2 = val1.date
        _x = _v2
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v3 = val1.state
        buff.write(_struct_I.pack(_v3.value))
        _v4 = val1.skeleton
        for val3 in _v4.joint:
          buff.write(_struct_d.pack(val3.confidence))
          _v5 = val3.position
          _x = _v5
          buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
        _v6 = _v4.unused
        buff.write(_struct_I.pack(_v6.value))
      for val1 in self.filtered_users:
        _x = val1
        buff.write(_struct_2i.pack(_x.id, _x.trackedId))
        _v7 = val1.date_discovered
        _x = _v7
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v8 = val1.date
        _x = _v8
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v9 = val1.state
        buff.write(_struct_I.pack(_v9.value))
        _v10 = val1.skeleton
        for val3 in _v10.joint:
          buff.write(_struct_d.pack(val3.confidence))
          _v11 = val3.position
          _x = _v11
          buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
        _v12 = _v10.unused
        buff.write(_struct_I.pack(_v12.value))
    except struct.error as se: self._check_types(se)
    except TypeError as te: self._check_types(te)

  def deserialize(self, str):
    """
    unpack serialized message in str into this message instance
    :param str: byte array of serialized message, ``str``
    """
    try:
      if self.users is None:
        self.users = None
      if self.filtered_users is None:
        self.filtered_users = None
      end = 0
      _x = self
      start = end
      end += 8
      (_x.watch_dog, _x.num,) = _struct_2i.unpack(str[start:end])
      self.users = []
      for i in range(0, 16):
        val1 = humanMonitor.msg.niut_USER_STR()
        _x = val1
        start = end
        end += 8
        (_x.id, _x.trackedId,) = _struct_2i.unpack(str[start:end])
        _v13 = val1.date_discovered
        _x = _v13
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v14 = val1.date
        _x = _v14
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v15 = val1.state
        start = end
        end += 4
        (_v15.value,) = _struct_I.unpack(str[start:end])
        _v16 = val1.skeleton
        _v16.joint = []
        for i in range(0, 25):
          val3 = humanMonitor.msg.niut_JOINT_STR()
          start = end
          end += 8
          (val3.confidence,) = _struct_d.unpack(str[start:end])
          _v17 = val3.position
          _x = _v17
          start = end
          end += 24
          (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
          _v16.joint.append(val3)
        _v18 = _v16.unused
        start = end
        end += 4
        (_v18.value,) = _struct_I.unpack(str[start:end])
        self.users.append(val1)
      self.filtered_users = []
      for i in range(0, 16):
        val1 = humanMonitor.msg.niut_USER_STR()
        _x = val1
        start = end
        end += 8
        (_x.id, _x.trackedId,) = _struct_2i.unpack(str[start:end])
        _v19 = val1.date_discovered
        _x = _v19
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v20 = val1.date
        _x = _v20
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v21 = val1.state
        start = end
        end += 4
        (_v21.value,) = _struct_I.unpack(str[start:end])
        _v22 = val1.skeleton
        _v22.joint = []
        for i in range(0, 25):
          val3 = humanMonitor.msg.niut_JOINT_STR()
          start = end
          end += 8
          (val3.confidence,) = _struct_d.unpack(str[start:end])
          _v23 = val3.position
          _x = _v23
          start = end
          end += 24
          (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
          _v22.joint.append(val3)
        _v24 = _v22.unused
        start = end
        end += 4
        (_v24.value,) = _struct_I.unpack(str[start:end])
        self.filtered_users.append(val1)
      return self
    except struct.error as e:
      raise genpy.DeserializationError(e) #most likely buffer underfill


  def serialize_numpy(self, buff, numpy):
    """
    serialize message with numpy array types into buffer
    :param buff: buffer, ``StringIO``
    :param numpy: numpy python module
    """
    try:
      _x = self
      buff.write(_struct_2i.pack(_x.watch_dog, _x.num))
      for val1 in self.users:
        _x = val1
        buff.write(_struct_2i.pack(_x.id, _x.trackedId))
        _v25 = val1.date_discovered
        _x = _v25
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v26 = val1.date
        _x = _v26
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v27 = val1.state
        buff.write(_struct_I.pack(_v27.value))
        _v28 = val1.skeleton
        for val3 in _v28.joint:
          buff.write(_struct_d.pack(val3.confidence))
          _v29 = val3.position
          _x = _v29
          buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
        _v30 = _v28.unused
        buff.write(_struct_I.pack(_v30.value))
      for val1 in self.filtered_users:
        _x = val1
        buff.write(_struct_2i.pack(_x.id, _x.trackedId))
        _v31 = val1.date_discovered
        _x = _v31
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v32 = val1.date
        _x = _v32
        buff.write(_struct_2I.pack(_x.t_sec, _x.t_usec))
        _v33 = val1.state
        buff.write(_struct_I.pack(_v33.value))
        _v34 = val1.skeleton
        for val3 in _v34.joint:
          buff.write(_struct_d.pack(val3.confidence))
          _v35 = val3.position
          _x = _v35
          buff.write(_struct_3d.pack(_x.x, _x.y, _x.z))
        _v36 = _v34.unused
        buff.write(_struct_I.pack(_v36.value))
    except struct.error as se: self._check_types(se)
    except TypeError as te: self._check_types(te)

  def deserialize_numpy(self, str, numpy):
    """
    unpack serialized message in str into this message instance using numpy for array types
    :param str: byte array of serialized message, ``str``
    :param numpy: numpy python module
    """
    try:
      if self.users is None:
        self.users = None
      if self.filtered_users is None:
        self.filtered_users = None
      end = 0
      _x = self
      start = end
      end += 8
      (_x.watch_dog, _x.num,) = _struct_2i.unpack(str[start:end])
      self.users = []
      for i in range(0, 16):
        val1 = humanMonitor.msg.niut_USER_STR()
        _x = val1
        start = end
        end += 8
        (_x.id, _x.trackedId,) = _struct_2i.unpack(str[start:end])
        _v37 = val1.date_discovered
        _x = _v37
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v38 = val1.date
        _x = _v38
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v39 = val1.state
        start = end
        end += 4
        (_v39.value,) = _struct_I.unpack(str[start:end])
        _v40 = val1.skeleton
        _v40.joint = []
        for i in range(0, 25):
          val3 = humanMonitor.msg.niut_JOINT_STR()
          start = end
          end += 8
          (val3.confidence,) = _struct_d.unpack(str[start:end])
          _v41 = val3.position
          _x = _v41
          start = end
          end += 24
          (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
          _v40.joint.append(val3)
        _v42 = _v40.unused
        start = end
        end += 4
        (_v42.value,) = _struct_I.unpack(str[start:end])
        self.users.append(val1)
      self.filtered_users = []
      for i in range(0, 16):
        val1 = humanMonitor.msg.niut_USER_STR()
        _x = val1
        start = end
        end += 8
        (_x.id, _x.trackedId,) = _struct_2i.unpack(str[start:end])
        _v43 = val1.date_discovered
        _x = _v43
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v44 = val1.date
        _x = _v44
        start = end
        end += 8
        (_x.t_sec, _x.t_usec,) = _struct_2I.unpack(str[start:end])
        _v45 = val1.state
        start = end
        end += 4
        (_v45.value,) = _struct_I.unpack(str[start:end])
        _v46 = val1.skeleton
        _v46.joint = []
        for i in range(0, 25):
          val3 = humanMonitor.msg.niut_JOINT_STR()
          start = end
          end += 8
          (val3.confidence,) = _struct_d.unpack(str[start:end])
          _v47 = val3.position
          _x = _v47
          start = end
          end += 24
          (_x.x, _x.y, _x.z,) = _struct_3d.unpack(str[start:end])
          _v46.joint.append(val3)
        _v48 = _v46.unused
        start = end
        end += 4
        (_v48.value,) = _struct_I.unpack(str[start:end])
        self.filtered_users.append(val1)
      return self
    except struct.error as e:
      raise genpy.DeserializationError(e) #most likely buffer underfill

_struct_I = genpy.struct_I
_struct_d = struct.Struct("<d")
_struct_3d = struct.Struct("<3d")
_struct_2i = struct.Struct("<2i")
_struct_2I = struct.Struct("<2I")
