code: def joinCommissioned(self, strPSKd='threadjpaketest', waitTime=20):
          
          print '%s call joinCommissioned' % self.port
          self.__sendCommand('ifconfig up')
          cmd = 'joiner start %s %s' %(strPSKd, self.provisioningUrl)
          print cmd
          if self.__sendCommand(cmd)[0] == "Done":
              maxDuration = 150 # seconds
              self.joinCommissionedStatus = self.joinStatus['ongoing']
  
              if self.logThreadStatus == self.logStatus['stop']:
                  self.logThread = ThreadRunner.run(target=self.__readCommissioningLogs, args=(maxDuration,))
  
              t_end = time.time() + maxDuration
              while time.time() < t_end:
                  if self.joinCommissionedStatus == self.joinStatus['succeed']:
                      break
                  elif self.joinCommissionedStatus == self.joinStatus['failed']:
                      return False
  
                  time.sleep(1)
  
              self.__sendCommand('thread start')
              time.sleep(30)
              return True
          else:
              return False
docs: start joiner
  
          Args:
              strPSKd: Joiner's PSKd
  
          Returns:
              True: successful to start joiner
              False: fail to start joiner