|
@@ -32,14 +32,14 @@ namespace MeasureThread
|
|
|
|
|
|
this.iSEM = iSEM ?? throw new ArgumentNullException(nameof(iSEM));
|
|
|
}
|
|
|
- public Locate( LocateParam prm, ISEMControl iSEM)
|
|
|
- {
|
|
|
- this.log = NLog.LogManager.GetCurrentClassLogger();
|
|
|
+ //public Locate( LocateParam prm, ISEMControl iSEM)
|
|
|
+ //{
|
|
|
+ // this.log = NLog.LogManager.GetCurrentClassLogger();
|
|
|
|
|
|
- this.log = log ?? throw new ArgumentNullException(nameof(log));
|
|
|
- this.prm = prm ?? throw new ArgumentNullException(nameof(prm));
|
|
|
- this.iSEM = iSEM ?? throw new ArgumentNullException(nameof(iSEM));
|
|
|
- }
|
|
|
+ // this.log = log ?? throw new ArgumentNullException(nameof(log));
|
|
|
+ // this.prm = prm ?? throw new ArgumentNullException(nameof(prm));
|
|
|
+ // this.iSEM = iSEM ?? throw new ArgumentNullException(nameof(iSEM));
|
|
|
+ //}
|
|
|
public void RecordCurrentBeamShiftAndStagePosition()
|
|
|
{
|
|
|
#region 记录初始设置的BeamShift的百分比和样品台XY位置
|
|
@@ -95,15 +95,6 @@ namespace MeasureThread
|
|
|
float cycle_time = iSEM.GetCycleTime();
|
|
|
Thread.Sleep(100 + Convert.ToInt32(cycle_time));
|
|
|
|
|
|
- //set = MParam.Photograph_Magnification;
|
|
|
- //current = iSEM.GetMagnification();
|
|
|
- //while (Math.Abs(current - set) > 1)
|
|
|
- //{
|
|
|
- // iSEM.SetMagnification(set);
|
|
|
- // Thread.Sleep(200);
|
|
|
- // current = iSEM.GetMagnification();
|
|
|
- //}
|
|
|
-
|
|
|
|
|
|
//恢复BeamShift的百分比值
|
|
|
iSEM.SetBeamShiftX(pr.xs);
|
|
@@ -147,7 +138,7 @@ namespace MeasureThread
|
|
|
|
|
|
while (true)
|
|
|
{
|
|
|
- Thread.Sleep(500);
|
|
|
+ Thread.Sleep(2000);
|
|
|
if (iSEM.GetStageIs() == 0)
|
|
|
{
|
|
|
break;
|
|
@@ -155,6 +146,24 @@ namespace MeasureThread
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
+ public bool MoveRAxis(float value)
|
|
|
+ {
|
|
|
+ if (!iSEM.SetStageGotoR(value))
|
|
|
+ {
|
|
|
+
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ Thread.Sleep(4000);
|
|
|
+ if (iSEM.GetStageIs() == 0)
|
|
|
+ {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
public bool MoveZAxisByAbs(float value)
|
|
|
{
|
|
@@ -185,8 +194,10 @@ namespace MeasureThread
|
|
|
}
|
|
|
|
|
|
//移动到像素位置,这里要靠移动样品台实现,当位移量小于3um时,不予移动
|
|
|
- bool MoveToPixByMoveStage(float xc, float yc)
|
|
|
+ private bool MoveToPixByMoveStage()
|
|
|
{
|
|
|
+ float xc = prm.PositionX;
|
|
|
+ float yc = prm.PositionY;
|
|
|
//单位是m/pix
|
|
|
float XpixSize = iSEM.GetPixelSize();
|
|
|
log.Info("X像素尺寸=" + XpixSize.ToString() + "m/pixel", true);
|
|
@@ -259,9 +270,10 @@ namespace MeasureThread
|
|
|
return true;
|
|
|
}
|
|
|
//移动到像素位置
|
|
|
- bool MoveToPix(float xc, float yc)
|
|
|
+ private bool MoveToPix()
|
|
|
{
|
|
|
-
|
|
|
+ float xc = prm.PositionX;
|
|
|
+ float yc = prm.PositionY;
|
|
|
//单位是m/pix
|
|
|
float XpixSize = iSEM.GetPixelSize();
|
|
|
|
|
@@ -396,14 +408,46 @@ namespace MeasureThread
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- public bool DoLocateByMoveStage()
|
|
|
+ public bool MoveToPixByMoveStage(float x, float y)
|
|
|
{
|
|
|
- return MoveToPixByMoveStage(prm.PositionX, prm.PositionY);
|
|
|
+ if (prm == null)
|
|
|
+ {
|
|
|
+ prm = new LocateParam();
|
|
|
+ }
|
|
|
+ this.prm.PositionX = x;
|
|
|
+ this.prm.PositionY = y;
|
|
|
+ //this.prm.PixelSize_Y_cur = pixelSize_Y_cur;
|
|
|
+ MoveToPixByMoveStage();
|
|
|
+ Thread.Sleep(1000);
|
|
|
+ iSEM.SetAutoVideoBrightnessAndContrast();
|
|
|
+ Thread.Sleep(3000);
|
|
|
+ return true;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- public bool DoLocateByShiftBeam()
|
|
|
+ public bool MoveToPix(float x,float y,float pixelSize_Y_cur)
|
|
|
{
|
|
|
- return MoveToPix(prm.PositionX, prm.PositionY);
|
|
|
+ if (prm == null)
|
|
|
+ {
|
|
|
+ prm = new LocateParam();
|
|
|
+ }
|
|
|
+ this.prm.PositionX = x;
|
|
|
+ this.prm.PositionY = y;
|
|
|
+ this.prm.PixelSize_Y_cur = pixelSize_Y_cur;
|
|
|
+ MoveToPix();
|
|
|
+ Thread.Sleep(1000);
|
|
|
+ iSEM.SetAutoVideoBrightnessAndContrast();
|
|
|
+ Thread.Sleep(3000);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ public LocateParam GetParam()
|
|
|
+ {
|
|
|
+ if (prm == null)
|
|
|
+ {
|
|
|
+
|
|
|
+ prm = new LocateParam();
|
|
|
+ }
|
|
|
+ return prm;
|
|
|
}
|
|
|
}
|
|
|
}
|