|
@@ -1,10 +1,12 @@
|
|
-using System;
|
|
|
|
|
|
+using SmartSEMControl;
|
|
|
|
+using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Text;
|
|
|
|
+using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.Windows.Forms;
|
|
|
|
|
|
@@ -12,14 +14,38 @@ namespace HOZProject
|
|
{
|
|
{
|
|
public partial class FormUCMain : Form
|
|
public partial class FormUCMain : Form
|
|
{
|
|
{
|
|
|
|
+ //全局只有一个fatorySEM
|
|
|
|
+ static FactoryHardware factorySEM = FactoryHardware.Instance;
|
|
|
|
+ ISEMControl iSEM = factorySEM.ISEM;
|
|
|
|
+ //电镜连接状态变量
|
|
|
|
+ bool m_SEMConnectState = false;
|
|
|
|
+ //电压状态变量
|
|
|
|
+ bool m_HTState = false;
|
|
|
|
+ //样品台状态变量
|
|
|
|
+ bool m_StageStage = false;
|
|
|
|
+ int ThreadTime = 1000;
|
|
public FormUCMain()
|
|
public FormUCMain()
|
|
{
|
|
{
|
|
InitializeComponent();
|
|
InitializeComponent();
|
|
}
|
|
}
|
|
|
|
|
|
- private void FormUCMain_LocationChanged(object sender, EventArgs e)
|
|
|
|
|
|
+ #region 窗体事件
|
|
|
|
+ private void FormUCMain_Load(object sender, EventArgs e)
|
|
{
|
|
{
|
|
|
|
+ //获取电镜状态
|
|
|
|
+ Thread thread = new Thread(new ThreadStart(GetSEMConnectState));
|
|
|
|
+ thread.Start();
|
|
}
|
|
}
|
|
|
|
+ #endregion
|
|
|
|
+ #region 获取初始参数
|
|
|
|
+ public void GetInitState()
|
|
|
|
+ {
|
|
|
|
+ if (iSEM != null)
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
|
|
#region 关闭与最小化按钮事件
|
|
#region 关闭与最小化按钮事件
|
|
private void pichide_MouseEnter(object sender, EventArgs e)
|
|
private void pichide_MouseEnter(object sender, EventArgs e)
|
|
@@ -81,5 +107,581 @@ namespace HOZProject
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
+
|
|
|
|
+ #region SEM功能按钮读写事件
|
|
|
|
+ #region 连接、关闭设备
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 初始化连接设备
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="sender"></param>
|
|
|
|
+ /// <param name="e"></param>
|
|
|
|
+ private void btnConnect_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ //1.判断当前连接状态
|
|
|
|
+ if (m_SEMConnectState)
|
|
|
|
+ {
|
|
|
|
+ if (iSEM != null)
|
|
|
|
+ {
|
|
|
|
+ iSEM.Dispose();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置缩放参数
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 获取缩放参数
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="sender"></param>
|
|
|
|
+ /// <param name="e"></param>
|
|
|
|
+ private void btnenlargeGet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetMagnification();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtenlarge.Enabled = false;
|
|
|
|
+ btnenlargeSet.Enabled = false;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtenlarge.Text = ret.ToString();
|
|
|
|
+ btnenlargeSet.Enabled = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 获取缩放参数
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="sender"></param>
|
|
|
|
+ /// <param name="e"></param>
|
|
|
|
+ private void btnenlargeSet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtenlarge.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetMagnification(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置亮度参数
|
|
|
|
+ private void btnBrightnessGet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetBrightness();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtBrightness.Enabled = false;
|
|
|
|
+ btnBrightnessSet.Enabled = false;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtBrightness.Text = ret.ToString();
|
|
|
|
+ btnBrightnessSet.Enabled = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnBrightnessSet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtBrightness.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetBrightness(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置焦距参数
|
|
|
|
+ private void btnWDGet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetWorkingDistance();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtWD.Enabled = false;
|
|
|
|
+ btnWDSet.Enabled = false;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtWD.Text = ret.ToString();
|
|
|
|
+ btnWDSet.Enabled = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnWDSet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtWD.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetWorkingDistance(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置对比度参数
|
|
|
|
+ private void btnContrastGet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetContrast();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtContrast.Enabled = false;
|
|
|
|
+ btnContrastSet.Enabled = false;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtContrast.Text = ret.ToString();
|
|
|
|
+ btnContrastSet.Enabled = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnContrastSet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtContrast.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetContrast(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置倾斜矫正参数
|
|
|
|
+ private void btnTiltAngleGet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetTiltAngle();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtTiltAngle.Enabled = false;
|
|
|
|
+ btnTiltAngleSet.Enabled = false;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtTiltAngle.Text = ret.ToString();
|
|
|
|
+ btnTiltAngleSet.Enabled = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnTiltAngleSet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtTiltAngle.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetTiltAngle(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置旋转角度参数
|
|
|
|
+ private void btnScanRotationGet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetScanRotation();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtScanRotation.Enabled = false;
|
|
|
|
+ btnScanRotationSet.Enabled = false;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtScanRotation.Text = ret.ToString();
|
|
|
|
+ btnScanRotationSet.Enabled = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnScanRotationSet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtScanRotation.Text, out set))
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ iSEM.SetScanRotation(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置像散Y参数
|
|
|
|
+ private void btnAstigmatismXGet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetAstigmatismX();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtAstigmatismX.Enabled = false;
|
|
|
|
+ btnAstigmatismXSet.Enabled = false;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtAstigmatismX.Text = ret.ToString();
|
|
|
|
+ btnAstigmatismXSet.Enabled = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnAstigmatismXSet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtAstigmatismX.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetAstigmatismX(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置像散Y参数
|
|
|
|
+ private void btnAstigmatismYGet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetAstigmatismY();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtAstigmatismY.Enabled = false;
|
|
|
|
+ btnAstigmatismYSet.Enabled = false;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtAstigmatismY.Text = ret.ToString();
|
|
|
|
+ btnAstigmatismYSet.Enabled = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnAstigmatismYSet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtAstigmatismY.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetAstigmatismY(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取像素尺寸
|
|
|
|
+ private void btnPixelSizeGet_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetPixelSize();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtPixelSize.Text = "NaN";
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtPixelSize.Text = ret.ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 切换电压状态
|
|
|
|
+ private void pbHT_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ if (!m_HTState)
|
|
|
|
+ {
|
|
|
|
+ //打开电压
|
|
|
|
+ iSEM.CmdOpenVoltage();
|
|
|
|
+ m_HTState = true;
|
|
|
|
+ pbHT.BackgroundImage = Properties.Resources.OFF;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ //关闭电压
|
|
|
|
+ iSEM.CmdCloseVoltage();
|
|
|
|
+ m_HTState = false;
|
|
|
|
+ pbHT.BackgroundImage = Properties.Resources.ON;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取样品台六轴位置信息
|
|
|
|
+ private void btnGetStagePosition_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ float[] pt = iSEM.GetStagePosition();
|
|
|
|
+ if (!float.IsNaN(pt[0]))
|
|
|
|
+ {
|
|
|
|
+ txtStageX.Text = pt[0].ToString();
|
|
|
|
+ }
|
|
|
|
+ if (!float.IsNaN(pt[1]))
|
|
|
|
+ {
|
|
|
|
+ txtStageY.Text = pt[1].ToString();
|
|
|
|
+ }
|
|
|
|
+ if (!float.IsNaN(pt[2]))
|
|
|
|
+ {
|
|
|
|
+ txtStageZ.Text = pt[2].ToString();
|
|
|
|
+ }
|
|
|
|
+ if (!float.IsNaN(pt[3]))
|
|
|
|
+ {
|
|
|
|
+ txtStageT.Text = pt[3].ToString();
|
|
|
|
+ }
|
|
|
|
+ if (!float.IsNaN(pt[4]))
|
|
|
|
+ {
|
|
|
|
+ txtStageR.Text = pt[4].ToString();
|
|
|
|
+ }
|
|
|
|
+ if (!float.IsNaN(pt[5]))
|
|
|
|
+ {
|
|
|
|
+ txtStageM.Text = pt[5].ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ throw ex;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置样品台X轴参数
|
|
|
|
+ private void btnStageGetX_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetStageAtX();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtStageX.Text = "NaN";
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtStageX.Text = ret.ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnStageSetX_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtStageX.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetStageGotoX(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置样品台T轴参数
|
|
|
|
+ private void btnStageGetT_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetStageAtT();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtStageT.Text = "NaN";
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtStageT.Text = ret.ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnStageSetT_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtStageT.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetStageGotoT(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置样品台Y轴参数
|
|
|
|
+ private void btnStageGetY_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetStageAtY();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtStageY.Text = "NaN";
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtStageY.Text = ret.ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnStageSetY_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtStageY.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetStageGotoY(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置样品台R轴参数
|
|
|
|
+ private void btnStageGetR_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetStageAtR();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtStageR.Text = "NaN";
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtStageR.Text = ret.ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnStageSetR_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtStageR.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetStageGotoR(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置样品台Z轴参数
|
|
|
|
+ private void btnStageGetZ_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetStageAtZ();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtStageZ.Text = "NaN";
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtStageZ.Text = ret.ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnStageSetZ_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtStageZ.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetStageGotoZ(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取与设置样品台M轴参数
|
|
|
|
+ private void btnStageGetM_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float ret = iSEM.GetStageAtM();
|
|
|
|
+ if (float.IsNaN(ret))
|
|
|
|
+ {
|
|
|
|
+ txtStageM.Text = "NaN";
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ txtStageM.Text = ret.ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnStageSetM_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ float set = 0;
|
|
|
|
+ if (float.TryParse(txtStageM.Text, out set))
|
|
|
|
+ {
|
|
|
|
+ iSEM.SetStageGotoM(set);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 获取状态(电镜连接状态、自动函数的状态、样品台状态)
|
|
|
|
+ public void GetSEMConnectState()
|
|
|
|
+ {
|
|
|
|
+ bool result = GetAllState(StateType.SEMConnectState);
|
|
|
|
+ if (result)
|
|
|
|
+ {
|
|
|
|
+ //已连接,设置按钮图像
|
|
|
|
+ btnConnect.BackgroundImage = Properties.Resources.CloseImg;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ btnConnect.BackgroundImage = Properties.Resources.ConnectImg;
|
|
|
|
+ }
|
|
|
|
+ //设置电镜连接状态:True
|
|
|
|
+ m_SEMConnectState = result;
|
|
|
|
+ }
|
|
|
|
+ public void GetAutoFUNCState()
|
|
|
|
+ {
|
|
|
|
+ bool result = GetAllState(StateType.AutoFUNCState);
|
|
|
|
+ if (result)
|
|
|
|
+ {
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ public void GetStageState()
|
|
|
|
+ {
|
|
|
|
+ bool result = GetAllState(StateType.StageState);
|
|
|
|
+ if (result)
|
|
|
|
+ {
|
|
|
|
+ btnConnect.BackgroundImage = Properties.Resources.CloseImg;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ btnConnect.BackgroundImage = Properties.Resources.ConnectImg;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ public bool GetAllState(StateType stateType)
|
|
|
|
+ {
|
|
|
|
+ bool bResult = false;
|
|
|
|
+ float fResult = 0;
|
|
|
|
+ switch (stateType)
|
|
|
|
+ {
|
|
|
|
+ case StateType.SEMConnectState:
|
|
|
|
+ while (true)
|
|
|
|
+ {
|
|
|
|
+ bResult = iSEM.ConnectStatus();
|
|
|
|
+ if (bResult)
|
|
|
|
+ {
|
|
|
|
+ return bResult;
|
|
|
|
+ }
|
|
|
|
+ Thread.Sleep(ThreadTime);
|
|
|
|
+ }
|
|
|
|
+ case StateType.AutoFUNCState:
|
|
|
|
+ while (true)
|
|
|
|
+ {
|
|
|
|
+ fResult = iSEM.GetAutoFunction();
|
|
|
|
+ if (fResult > 0)
|
|
|
|
+ {
|
|
|
|
+ bResult = true;
|
|
|
|
+ return bResult;
|
|
|
|
+ }
|
|
|
|
+ Thread.Sleep(ThreadTime);
|
|
|
|
+ }
|
|
|
|
+ case StateType.StageState:
|
|
|
|
+ while (true)
|
|
|
|
+ {
|
|
|
|
+ fResult = iSEM.GetStageIs();
|
|
|
|
+ if (fResult > 0)
|
|
|
|
+ {
|
|
|
|
+ bResult = true;
|
|
|
|
+ return bResult;
|
|
|
|
+ }
|
|
|
|
+ Thread.Sleep(ThreadTime);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return bResult;
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 状态枚举
|
|
|
|
+ /// </summary>
|
|
|
|
+ public enum StateType
|
|
|
|
+ {
|
|
|
|
+ SEMConnectState = 0,
|
|
|
|
+ AutoFUNCState = 1,
|
|
|
|
+ StageState = 2
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ private void btnMoveSEMCenter_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ //设置当前样品台状态
|
|
|
|
+ m_StageStage = false;
|
|
|
|
+ float setX = 0;
|
|
|
|
+ float setY = 0;
|
|
|
|
+ bool GotoResult = false;
|
|
|
|
+ //判断X、Y轴信息
|
|
|
|
+ if (float.TryParse(txtStageX.Text, out setX)&&float.TryParse(txtStageY.Text, out setY))
|
|
|
|
+ {
|
|
|
|
+ GotoResult = iSEM.MoveStageXY(setX,setY);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnStop_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ if (iSEM != null)
|
|
|
|
+ {
|
|
|
|
+ //即刻停止
|
|
|
|
+ iSEM.CmdStageAbort();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void btnGetImage_Click(object sender, EventArgs e)
|
|
|
|
+ {
|
|
|
|
+ FormShowImage fShowImage = new FormShowImage();
|
|
|
|
+ fShowImage.ShowDialog();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|