void HandleCalibrateRequest()
 {
     Core.CalibrationPattern pattern = _pattern;
     if (_calibrate_request)
     {
         _icp = _ic.Calibrate();
         _ec  = new Parsley.Core.ExtrinsicCalibration(pattern.ObjectPoints, _icp);
         this.Logger.Info("Calibration succeeded");
         this.Invoke((MethodInvoker) delegate {
             _btn_calibrate.Enabled  = false;
             _btn_take_image.Enabled = true;
             _cb_auto_take.Enabled   = true;
             _cb_auto_take.Checked   = false;
         });
     }
     _calibrate_request = false;
 }
 void HandleCalibrateRequest() 
 {
   Core.CalibrationPattern pattern = _pattern;
   if (_calibrate_request) 
   {
     _icp = _ic.Calibrate(); //proses kalibrasi internal
     
     _ec = new Parsley.Core.ExtrinsicCalibration(pattern.ObjectPoints, _icp); //tambahan koordinat virtual
     this.Logger.Info("Calibration succeeded");
     this.Invoke((MethodInvoker)delegate {
       _btn_calibrate.Enabled = false;
       _btn_take_image.Enabled = true;
       _cb_auto_take.Enabled = true;
       _cb_auto_take.Checked = false;
     });
   }
   _calibrate_request = false;
 }