|
@@ -21,6 +21,10 @@ namespace SmartSEMControl
|
|
|
private String AP_BRIGHTNESS = "AP_BRIGHTNESS";
|
|
private String AP_BRIGHTNESS = "AP_BRIGHTNESS";
|
|
|
//对比度
|
|
//对比度
|
|
|
private String AP_CONTRAST = "AP_CONTRAST";
|
|
private String AP_CONTRAST = "AP_CONTRAST";
|
|
|
|
|
+ //亮度目标
|
|
|
|
|
+ private String AP_AUTO_BRIGHT = "AP_AUTO_BRIGHT";
|
|
|
|
|
+ //对比度目标
|
|
|
|
|
+ private String AP_AUTO_CONTRAST = "AP_AUTO_CONTRAST";
|
|
|
//消像散X轴
|
|
//消像散X轴
|
|
|
private String AP_STIG_X = "AP_STIG_X";
|
|
private String AP_STIG_X = "AP_STIG_X";
|
|
|
//消像散Y轴
|
|
//消像散Y轴
|
|
@@ -66,6 +70,14 @@ namespace SmartSEMControl
|
|
|
private String DP_SCAN_ROT = "DP_SCAN_ROT";
|
|
private String DP_SCAN_ROT = "DP_SCAN_ROT";
|
|
|
//取消电子束校正
|
|
//取消电子束校正
|
|
|
private String DP_TILT_CORRECTION = "DP_TILT_CORRECTION";
|
|
private String DP_TILT_CORRECTION = "DP_TILT_CORRECTION";
|
|
|
|
|
+ //自动亮度对比度
|
|
|
|
|
+ private String DP_AUTO_VIDEO = "DP_AUTO_VIDEO";
|
|
|
|
|
+ //图像解冻
|
|
|
|
|
+ private String DP_FROZEN = "DP_FROZEN";
|
|
|
|
|
+ //图像类型切换
|
|
|
|
|
+ private String DP_DETECTOR_TYPE = "DP_DETECTOR_TYPE";
|
|
|
|
|
+ //图像大小
|
|
|
|
|
+ private String DP_IMAGE_STORE = "DP_IMAGE_STORE";
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
#region 命令
|
|
#region 命令
|
|
@@ -73,6 +85,12 @@ namespace SmartSEMControl
|
|
|
private String CMD_BEAM_ON = "CMD_BEAM_ON";
|
|
private String CMD_BEAM_ON = "CMD_BEAM_ON";
|
|
|
//关闭电压
|
|
//关闭电压
|
|
|
private String CMD_EHT_OFF = "CMD_EHT_OFF";
|
|
private String CMD_EHT_OFF = "CMD_EHT_OFF";
|
|
|
|
|
+ //自动对焦1
|
|
|
|
|
+ private String CMD_AUTO_FOCUS_COARSE = "CMD_AUTO_FOCUS_COARSE";
|
|
|
|
|
+ //自动对焦2
|
|
|
|
|
+ private String CMD_AUTO_FOCUS_FINE = "CMD_AUTO_FOCUS_FINE";
|
|
|
|
|
+ //自动消像散
|
|
|
|
|
+ private String CMD_AUTO_STIG = "CMD_AUTO_STIG";
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
#region APILib
|
|
#region APILib
|
|
@@ -389,6 +407,93 @@ namespace SmartSEMControl
|
|
|
}
|
|
}
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
+ #region 自动亮度对比度
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 读取自动亮度对比度状态
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ /// <returns>true:float or false:NaN</returns>
|
|
|
|
|
+ public float GetAutoVideo()
|
|
|
|
|
+ {
|
|
|
|
|
+ float ret = 0;
|
|
|
|
|
+ if (ReadParams(DP_AUTO_VIDEO, ref ret))
|
|
|
|
|
+ {
|
|
|
|
|
+ return ret;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ return float.NaN;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 设置自动亮度对比度状态
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ /// <param name="set">0:off;1:B(亮度);2:C(对比度);3:BC</param>
|
|
|
|
|
+ /// <returns>true or false</returns>
|
|
|
|
|
+ public Boolean SetAutoVideo(float set)
|
|
|
|
|
+ {
|
|
|
|
|
+ return WriteDataParams(DP_AUTO_VIDEO, set);
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
|
|
+ #region 亮度目标
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 读取亮度目标
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ /// <returns>true:float or false:NaN</returns>
|
|
|
|
|
+ public float GetAutoBright()
|
|
|
|
|
+ {
|
|
|
|
|
+ float ret = 0;
|
|
|
|
|
+ if (ReadParams(AP_AUTO_BRIGHT, ref ret))
|
|
|
|
|
+ {
|
|
|
|
|
+ return ret;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ return float.NaN;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 设置亮度目标
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ /// <param name="set">亮度</param>
|
|
|
|
|
+ /// <returns>true or false</returns>
|
|
|
|
|
+ public Boolean SetAutoBright(float set)
|
|
|
|
|
+ {
|
|
|
|
|
+ return WriteParams(AP_AUTO_BRIGHT, set);
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
|
|
+ #region 对比度目标
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 读取对比度目标
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ /// <returns>true:float or false:NaN</returns>
|
|
|
|
|
+ public float GetAutoContrast()
|
|
|
|
|
+ {
|
|
|
|
|
+ float ret = 0;
|
|
|
|
|
+ if (ReadParams(AP_AUTO_CONTRAST, ref ret))
|
|
|
|
|
+ {
|
|
|
|
|
+ return ret;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ return float.NaN;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 设置对比度目标
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ /// <param name="set">对比度目标</param>
|
|
|
|
|
+ /// <returns>true or false</returns>
|
|
|
|
|
+ public Boolean SetAutoContrast(float set)
|
|
|
|
|
+ {
|
|
|
|
|
+ return WriteParams(AP_AUTO_CONTRAST, set);
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
#region 消像散
|
|
#region 消像散
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// 读取消像散X
|
|
/// 读取消像散X
|
|
@@ -470,7 +575,88 @@ namespace SmartSEMControl
|
|
|
/// <returns>true or false</returns>
|
|
/// <returns>true or false</returns>
|
|
|
public Boolean SetTiltAngle(float set)
|
|
public Boolean SetTiltAngle(float set)
|
|
|
{
|
|
{
|
|
|
- return WriteParams(AP_TILT_ANGLE, set);
|
|
|
|
|
|
|
+ Boolean ret = false;
|
|
|
|
|
+ ret = WriteDataParams(DP_TILT_CORRECTION, 1);
|
|
|
|
|
+ ret = WriteParams(AP_TILT_ANGLE, set);
|
|
|
|
|
+ ret = WriteDataParams(DP_TILT_CORRECTION, 0);
|
|
|
|
|
+ return ret;
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
|
|
+ #region 图像大小
|
|
|
|
|
+ public int[] GetImageStore()
|
|
|
|
|
+ {
|
|
|
|
|
+ int[] i_ret = new int[2];
|
|
|
|
|
+ float ret = 0;
|
|
|
|
|
+ if (ReadParams(DP_IMAGE_STORE, ref ret))
|
|
|
|
|
+ {
|
|
|
|
|
+ switch(ret)
|
|
|
|
|
+ {
|
|
|
|
|
+ case 0:
|
|
|
|
|
+ i_ret[0] = 1024;
|
|
|
|
|
+ i_ret[1] = 768;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 1:
|
|
|
|
|
+ i_ret[0] = 512;
|
|
|
|
|
+ i_ret[1] = 384;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 2:
|
|
|
|
|
+ i_ret[0] = 2048;
|
|
|
|
|
+ i_ret[1] = 1536;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 3:
|
|
|
|
|
+ i_ret[0] = 3072;
|
|
|
|
|
+ i_ret[1] = 2304;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 4:
|
|
|
|
|
+ i_ret[0] = 4096;
|
|
|
|
|
+ i_ret[1] = 3072;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 5:
|
|
|
|
|
+ i_ret[0] = 5120;
|
|
|
|
|
+ i_ret[1] = 3840;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 6:
|
|
|
|
|
+ i_ret[0] = 6144;
|
|
|
|
|
+ i_ret[1] = 4608;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 7:
|
|
|
|
|
+ i_ret[0] = 8192;
|
|
|
|
|
+ i_ret[1] = 6144;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 8:
|
|
|
|
|
+ i_ret[0] = 12288;
|
|
|
|
|
+ i_ret[1] = 9216;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 9:
|
|
|
|
|
+ i_ret[0] = 16384;
|
|
|
|
|
+ i_ret[1] = 12288;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 10:
|
|
|
|
|
+ i_ret[0] = 24576;
|
|
|
|
|
+ i_ret[1] = 18432;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 11:
|
|
|
|
|
+ i_ret[0] = 32768;
|
|
|
|
|
+ i_ret[1] = 24576;
|
|
|
|
|
+ break;
|
|
|
|
|
+ default:
|
|
|
|
|
+ i_ret[0] = 0;
|
|
|
|
|
+ i_ret[1] = 0;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ i_ret[0] = 0;
|
|
|
|
|
+ i_ret[1] = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ return i_ret;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public Boolean SetImageStore(float set)
|
|
|
|
|
+ {
|
|
|
|
|
+ return WriteDataParams("DP_IMAGE_STORE", set);
|
|
|
}
|
|
}
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
@@ -479,17 +665,18 @@ namespace SmartSEMControl
|
|
|
/// 抓取图像
|
|
/// 抓取图像
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <returns>true:float or false:NaN</returns>
|
|
/// <returns>true:float or false:NaN</returns>
|
|
|
- public Boolean GrabImage(String filename, short type)
|
|
|
|
|
|
|
+ public Boolean GrabImage(String filename, short xoff,short yoff, short width,short height,short type)
|
|
|
{
|
|
{
|
|
|
if (m_bInitialised)
|
|
if (m_bInitialised)
|
|
|
{
|
|
{
|
|
|
- lrt = CZEMApi.Grab(0, 0, 1024, 768, type, filename);
|
|
|
|
|
|
|
+ lrt = CZEMApi.Grab(xoff, yoff, width, height, type, filename);
|
|
|
if (lrt != 0)
|
|
if (lrt != 0)
|
|
|
{
|
|
{
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
|
|
+ Frozen(1);
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -500,9 +687,23 @@ namespace SmartSEMControl
|
|
|
}
|
|
}
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
- #region SEM移动接口
|
|
|
|
|
|
|
+ #region 图像解冻
|
|
|
|
|
+ public Boolean Frozen(float set)
|
|
|
|
|
+ {
|
|
|
|
|
+ return WriteDataParams(DP_FROZEN, set);
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
|
|
+ #region 图像类型切换
|
|
|
|
|
+ public Boolean DetectorType(float set)
|
|
|
|
|
+ {
|
|
|
|
|
+ return WriteDataParams(DP_DETECTOR_TYPE, set);
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
|
|
+ #region 电子束移动接口
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- /// 获取SEM移动接口X
|
|
|
|
|
|
|
+ /// 获取电子束移动接口X
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <returns>true:float or false:NaN</returns>
|
|
/// <returns>true:float or false:NaN</returns>
|
|
|
public float GetBeamShiftX()
|
|
public float GetBeamShiftX()
|
|
@@ -519,7 +720,7 @@ namespace SmartSEMControl
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- /// 获取SEM移动接口Y
|
|
|
|
|
|
|
+ /// 获取电子束移动接口Y
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <returns>true:float or false:NaN</returns>
|
|
/// <returns>true:float or false:NaN</returns>
|
|
|
public float GetBeamShiftY()
|
|
public float GetBeamShiftY()
|
|
@@ -536,7 +737,7 @@ namespace SmartSEMControl
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- /// 设置SEM移动接口X
|
|
|
|
|
|
|
+ /// 设置电子束移动接口X
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <param name="set">X坐标</param>
|
|
/// <param name="set">X坐标</param>
|
|
|
/// <returns>true or false</returns>
|
|
/// <returns>true or false</returns>
|
|
@@ -546,7 +747,7 @@ namespace SmartSEMControl
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- /// 设置SEM移动接口Y
|
|
|
|
|
|
|
+ /// 设置电子束移动接口Y
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <param name="set">X坐标</param>
|
|
/// <param name="set">X坐标</param>
|
|
|
/// <returns>true or false</returns>
|
|
/// <returns>true or false</returns>
|
|
@@ -755,6 +956,16 @@ namespace SmartSEMControl
|
|
|
}
|
|
}
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
+ #region 移动样品台XY轴
|
|
|
|
|
+ public Boolean MoveStageXY(float x,float y)
|
|
|
|
|
+ {
|
|
|
|
|
+ Boolean ret = false;
|
|
|
|
|
+ ret = SetStageGotoX(x);
|
|
|
|
|
+ ret = SetStageGotoY(y);
|
|
|
|
|
+ return ret;
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
#region Scan Rotate角度接口
|
|
#region Scan Rotate角度接口
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// 获取Scan Rotate角度接口
|
|
/// 获取Scan Rotate角度接口
|
|
@@ -850,5 +1061,27 @@ namespace SmartSEMControl
|
|
|
}
|
|
}
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
+ #region 自动对焦1
|
|
|
|
|
+ public Boolean CmdAutoFocusCoarse()
|
|
|
|
|
+ {
|
|
|
|
|
+ return ExecuteCmd(CMD_AUTO_FOCUS_COARSE);
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
|
|
+ #region 自动对焦2
|
|
|
|
|
+ public Boolean CmdAutoFocusFine()
|
|
|
|
|
+ {
|
|
|
|
|
+ return ExecuteCmd(CMD_AUTO_FOCUS_FINE);
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
|
|
+ #region 自动消像散
|
|
|
|
|
+ public Boolean CmdAutoStig()
|
|
|
|
|
+ {
|
|
|
|
|
+ return ExecuteCmd(CMD_AUTO_STIG);
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|