public void run()
 {
   while (!stopRequested)
   {
    if (obj.search_mode==obj.VISUAL_SEARCH) 
      {
       
       obj.tickVisual(this); 
       HV.cv.refreshDisplay();
      } else
      if (obj.search_mode==obj.SILENT_SEARCH)
      {
        obj.tickSilent(this); 
      } else
      if (obj.search_mode==obj.EXECUTE)
      {
        obj.tickReachGesture(this,tr);
       HV.cv.refreshDisplay();
       } else
	   if (obj.search_mode==obj.BABBLE) {
	       obj.tickBabble();
	       //HV.cv.refreshDisplay();
	   }
	   else
	       if (obj.search_mode==obj.PDFGRASP) {
		   obj.tickPDFgrasp();
		   //HV.cv.refreshDisplay();
	   }
    try{sleep(SLP);} catch(InterruptedException e) {}
   }
   System.out.println("Reach "+name+" stopped.");
   HV.cv.refreshDisplay();
   obj.enablePanels();
   HV.self.setTrace(false);
   obj.finalizeReach(com);
   stop();
  }