code: def scanJoiner(self, xEUI='*', strPSKd='threadjpaketest'):
          
          print '%s call scanJoiner' % self.port
  
          # long timeout value to avoid automatic joiner removal (in seconds)
          timeout = 500
  
          if not isinstance(xEUI, str):
              eui64 = self.__convertLongToString(xEUI)
  
              # prepend 0 at the beginning
              if len(eui64) < 16:
                  eui64 = eui64.zfill(16)
                  print eui64
          else:
              eui64 = xEUI
  
          cmd = 'commissioner joiner add %s %s %s' % (eui64, strPSKd, str(timeout))
          print cmd
          if self.__sendCommand(cmd)[0] == 'Done':
              if self.logThreadStatus == self.logStatus['stop']:
                  self.logThread = ThreadRunner.run(target=self.__readCommissioningLogs, args=(120,))
              return True
          else:
              return False
docs: scan Joiner
  
          Args:
              xEUI: Joiner's EUI-64
              strPSKd: Joiner's PSKd for commissioning
  
          Returns:
              True: successful to add Joiner's steering data
              False: fail to add Joiner's steering data