text: #!/usr/bin/env python
  # Class autogenerated from /home/sam/Downloads/aldebaran_sw/nao/naoqi-sdk-2.1.4.13-linux64/include/alproxies/alpeopleperceptionproxy.h
  # by Sammy Pfeiffer's <Sammy.Pfeiffer at student.uts.edu.au> generator
  # You need an ALBroker running
  
  from naoqi import ALProxy
  
  
  
  class ALPeoplePerception(object):
      def __init__(self, session):
          self.proxy = None 
          self.session = session
  
      def force_connect(self):
          self.proxy = self.session.service("ALPeoplePerception")
  
      def getCurrentPeriod(self):
          """Gets the current period.
  
          :returns int: Refresh period (in milliseconds).
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getCurrentPeriod()
  
      def getCurrentPrecision(self):
          """Gets the current precision.
  
          :returns float: Precision of the extractor.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getCurrentPrecision()
  
      def getEventList(self):
          """Get the list of events updated in ALMemory.
  
          :returns std::vector<std::string>: Array of events updated by this extractor in ALMemory
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getEventList()
  
      def getMaximumBodyHeight(self):
          """Gets the current maximum body height used for human detection (3D mode only).
  
          :returns float: Maximum height in meters.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getMaximumBodyHeight()
  
      def getMaximumDetectionRange(self):
          """Gets the current maximum detection and tracking range.
  
          :returns float: Maximum range in meters.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getMaximumDetectionRange()
  
      def getMemoryKeyList(self):
          """Get the list of events updated in ALMemory.
  
          :returns std::vector<std::string>: Array of events updated by this extractor in ALMemory
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getMemoryKeyList()
  
      def getMinimumBodyHeight(self):
          """Gets the current minimum body height used for human detection (3D mode only).
  
          :returns float: Minimum height in meters.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getMinimumBodyHeight()
  
      def getMyPeriod(self, name):
          """Gets the period for a specific subscription.
  
          :param str name: Name of the module which has subscribed.
          :returns int: Refresh period (in milliseconds).
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getMyPeriod(name)
  
      def getMyPrecision(self, name):
          """Gets the precision for a specific subscription.
  
          :param str name: name of the module which has subscribed
          :returns float: precision of the extractor
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getMyPrecision(name)
  
      def getOutputNames(self):
          """Get the list of values updated in ALMemory.
  
          :returns std::vector<std::string>: Array of values updated by this extractor in ALMemory
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getOutputNames()
  
      def getSubscribersInfo(self):
          """Gets the parameters given by the module.
  
          :returns AL::ALValue: Array of names and parameters of all subscribers.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getSubscribersInfo()
  
      def getTimeBeforePersonDisappears(self):
          """Gets the time after which a person, supposed not to be in the field of view of the camera disappears if it has not been detected.
  
          :returns float: Time in seconds.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getTimeBeforePersonDisappears()
  
      def getTimeBeforeVisiblePersonDisappears(self):
          """Gets the time after which a person, supposed to be in the field of view of the camera disappears if it has not been detected.
  
          :returns float: Time in seconds.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.getTimeBeforeVisiblePersonDisappears()
  
      def isFaceDetectionEnabled(self):
          """Gets the current status of face detection.
  
          :returns bool: True if face detection is enabled, False otherwise.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.isFaceDetectionEnabled()
  
      def isFastModeEnabled(self):
          """Gets the current status of fast mode.
  
          :returns bool: True if fast mode is enabled, False otherwise.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.isFastModeEnabled()
  
      def isGraphicalDisplayEnabled(self):
          """Gets the current status of graphical display in Choregraphe.
  
          :returns bool: True if graphical display is enabled, False otherwise.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.isGraphicalDisplayEnabled()
  
      def isMovementDetectionEnabled(self):
          """Gets the current status of movement detection in Choregraphe.
  
          :returns bool: True if movement detection is enabled, False otherwise.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.isMovementDetectionEnabled()
  
      def isPaused(self):
          """Gets extractor pause status
  
          :returns bool: True if the extractor is paused, False if not
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.isPaused()
  
      def isProcessing(self):
          """Gets extractor running status
  
          :returns bool: True if the extractor is currently processing images, False if not
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.isProcessing()
  
      def pause(self, status):
          """Changes the pause status of the extractor
  
          :param bool status: New pause satus
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.pause(status)
  
      def ping(self):
          """Just a ping. Always returns true
  
          :returns bool: returns true
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.ping()
  
      def resetPopulation(self):
          """Empties the tracked population.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.resetPopulation()
  
      def setFaceDetectionEnabled(self, enable):
          """Turns face detection on or off.
  
          :param bool enable: True to turn it on, False to turn it off.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.setFaceDetectionEnabled(enable)
  
      def setFastModeEnabled(self, enable):
          """Turns fast mode on or off.
  
          :param bool enable: True to turn it on, False to turn it off.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.setFastModeEnabled(enable)
  
      def setGraphicalDisplayEnabled(self, enable):
          """Turns graphical display in Choregraphe on or off.
  
          :param bool enable: True to turn it on, False to turn it off.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.setGraphicalDisplayEnabled(enable)
  
      def setMaximumBodyHeight(self, height):
          """Sets the maximum human body height (3D mode only).
  
          :param float height: Maximum height in meters.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.setMaximumBodyHeight(height)
  
      def setMaximumDetectionRange(self, range):
          """Sets the maximum range for human detection and tracking.
  
          :param float range: Maximum range in meters.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.setMaximumDetectionRange(range)
  
      def setMinimumBodyHeight(self, height):
          """Sets the minimum human body height (3D mode only).
  
          :param float height: Minimum height in meters.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.setMinimumBodyHeight(height)
  
      def setMovementDetectionEnabled(self, enable):
          """Turns movement detection on or off.
  
          :param bool enable: True to turn it on, False to turn it off.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.setMovementDetectionEnabled(enable)
  
      def setTimeBeforePersonDisappears(self, seconds):
          """Sets the time after which a person, supposed not to be in the field of view of the camera disappears if it has not been detected.
  
          :param float seconds: Time in seconds.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.setTimeBeforePersonDisappears(seconds)
  
      def setTimeBeforeVisiblePersonDisappears(self, seconds):
          """Sets the time after which a person, supposed to be in the field of view of the camera disappears if it has not been detected.
  
          :param float seconds: Time in seconds.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.setTimeBeforeVisiblePersonDisappears(seconds)
  
      def subscribe(self, name, period, precision):
          """Subscribes to the extractor. This causes the extractor to start writing information to memory using the keys described by getOutputNames(). These can be accessed in memory using ALMemory.getData("keyName"). In many cases you can avoid calling subscribe on the extractor by just calling ALMemory.subscribeToEvent() supplying a callback method. This will automatically subscribe to the extractor for you.
  
          :param str name: Name of the module which subscribes.
          :param int period: Refresh period (in milliseconds) if relevant.
          :param float precision: Precision of the extractor if relevant.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.subscribe(name, period, precision)
  
      def subscribe2(self, name):
          """Subscribes to the extractor. This causes the extractor to start writing information to memory using the keys described by getOutputNames(). These can be accessed in memory using ALMemory.getData("keyName"). In many cases you can avoid calling subscribe on the extractor by just calling ALMemory.subscribeToEvent() supplying a callback method. This will automatically subscribe to the extractor for you.
  
          :param str name: Name of the module which subscribes.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.subscribe(name)
  
      def unsubscribe(self, name):
          """Unsubscribes from the extractor.
  
          :param str name: Name of the module which had subscribed.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.unsubscribe(name)
  
      def updatePeriod(self, name, period):
          """Updates the period if relevant.
  
          :param str name: Name of the module which has subscribed.
          :param int period: Refresh period (in milliseconds).
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.updatePeriod(name, period)
  
      def updatePrecision(self, name, precision):
          """Updates the precision if relevant.
  
          :param str name: Name of the module which has subscribed.
          :param float precision: Precision of the extractor.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.updatePrecision(name, precision)
  
      def version(self):
          """Returns the version of the module.
  
          :returns str: A string containing the version of the module.
          """
          if not self.proxy:
              self.proxy = self.session.service("ALPeoplePerception")
          return self.proxy.version()
  