|
|
@@ -11,7 +11,9 @@ using System.Text;
|
|
|
using System.Threading;
|
|
|
using System.Windows.Forms;
|
|
|
using static OTSDataType.otsdataconst;
|
|
|
-using static OTSModelSharp.STMSampleResultData;
|
|
|
+
|
|
|
+using OTSMeasureApp._1_OTSMeasure.Measure._3_MeasureFlow;
|
|
|
+using static OTSMeasureApp._1_OTSMeasure.Measure._3_MeasureFlow.STMSampleResultData;
|
|
|
|
|
|
namespace OTSMeasureApp
|
|
|
{
|
|
|
@@ -39,11 +41,14 @@ namespace OTSMeasureApp
|
|
|
public OTSMeasureResultWindow m_OTSMeasureResultWindow = null;
|
|
|
//在窗体TAB测量状态中显示BSE图
|
|
|
public OTSMeasureStatusWindow m_OTSMeasureStatusWindow = null;
|
|
|
+
|
|
|
+ public OTSPropertyWindow m_SPropertyWindows = null;
|
|
|
+
|
|
|
public System.ComponentModel.BackgroundWorker m_bgWorker;
|
|
|
|
|
|
|
|
|
ST_MSTMsg MeasureResultMsrData;
|
|
|
- //已完成帧图的绘制 根据位置-判断相差范围 四舍五入返回的数值有偏差
|
|
|
+
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
@@ -56,9 +61,11 @@ namespace OTSMeasureApp
|
|
|
|
|
|
m_OTSSamplespaceWindow = m_MeasureApps.m_SamplepaceWindow;
|
|
|
m_OTSMeasureResultWindow = m_MeasureApp.m_MeasureResultWindow;
|
|
|
- m_OTSMeasureStatusWindow = new OTSMeasureStatusWindow(m_MeasureApp);
|
|
|
-
|
|
|
- Control.CheckForIllegalCrossThreadCalls = false;
|
|
|
+ m_SPropertyWindows = m_MeasureApp.m_SPropertyWindows;
|
|
|
+ //m_OTSMeasureStatusWindow = new OTSMeasureStatusWindow(m_MeasureApp);
|
|
|
+ m_OTSMeasureStatusWindow = m_MeasureApp.m_MessureStatuWindow;
|
|
|
+
|
|
|
+ Control.CheckForIllegalCrossThreadCalls = false;
|
|
|
|
|
|
//测量结束信息窗口对象
|
|
|
m_MeasureCheckReportInfoWindow = new MeasureCheckResultInfoWindow();
|
|
|
@@ -69,7 +76,7 @@ namespace OTSMeasureApp
|
|
|
m_bgWorker.WorkerSupportsCancellation = true;
|
|
|
|
|
|
m_bgWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged);
|
|
|
- m_bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);
|
|
|
+
|
|
|
|
|
|
|
|
|
}
|
|
|
@@ -106,8 +113,9 @@ namespace OTSMeasureApp
|
|
|
List<CMsrResultItem> cMsrResultItemClrList = MsrResults.GetResultItems();
|
|
|
|
|
|
//设置测量状态数据列表
|
|
|
- SetMeasureListInfo(cMsrResultItemClrList);
|
|
|
-
|
|
|
+
|
|
|
+ m_OTSMeasureResultWindow.SetMeasureListInfo(cMsrResultItemClrList);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -118,16 +126,6 @@ namespace OTSMeasureApp
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region 处理完成的响应事件_RunWorkerCompleted
|
|
|
- //这里是后台工作完成后的消息处理,可以在这里进行后续的处理工作。
|
|
|
- private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
|
|
- {
|
|
|
- //m_bgWorker.CancelAsync();
|
|
|
-
|
|
|
- //m_bgWorker = null;
|
|
|
- }
|
|
|
- #endregion
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
@@ -194,54 +192,11 @@ namespace OTSMeasureApp
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region 隐藏BSE图片
|
|
|
-
|
|
|
- #endregion
|
|
|
-
|
|
|
- #region 初始窗口对象
|
|
|
+
|
|
|
|
|
|
- int intFlag = 0;
|
|
|
- public void RunThreadLoadEvent()
|
|
|
- {
|
|
|
- if (intFlag == 0)
|
|
|
- {
|
|
|
- m_bgWorker.RunWorkerAsync();
|
|
|
- intFlag++;
|
|
|
- }
|
|
|
- }
|
|
|
- #endregion
|
|
|
- #region 设置测量状态列表数据
|
|
|
- /// <summary>
|
|
|
- /// 设置测量状态列表数据
|
|
|
- /// </summary>
|
|
|
- /// <param name="stratTime"></param>
|
|
|
- public void SetMeasureListInfo(IList list)
|
|
|
- {
|
|
|
- //设置开始时间
|
|
|
- if (list != null)
|
|
|
- {
|
|
|
- //获取测量状态Grid中的数据list
|
|
|
- m_OTSMeasureResultWindow.SetMeasureListInfo(list);
|
|
|
- }
|
|
|
- }
|
|
|
- #endregion
|
|
|
- #region 设置开始时间
|
|
|
- /// <summary>
|
|
|
- /// 设置开始时间
|
|
|
- /// </summary>
|
|
|
- /// <param name="stratTime"></param>
|
|
|
- public void SetStartTime(string stratTime)
|
|
|
- {
|
|
|
- //设置开始时间
|
|
|
- if (stratTime != null)
|
|
|
- {
|
|
|
- if (stratTime != "")
|
|
|
- {
|
|
|
- m_OTSMeasureResultWindow.SetStartTime(stratTime);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- #endregion
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
#region 设置测量结束窗体中信息内容
|
|
|
@@ -283,45 +238,146 @@ namespace OTSMeasureApp
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region 设置测量用时
|
|
|
- public void SetMeasureTime(TimeSpan tSpan)
|
|
|
+
|
|
|
+
|
|
|
+ public void MeasureComplete(ST_MSTMsg SMsrData)
|
|
|
{
|
|
|
- m_OTSMeasureResultWindow.SetMeasureTime(tSpan);
|
|
|
+
|
|
|
+
|
|
|
+ string inprocessEndTime = SMsrData.STMThreadStu.csMsrEndTime;
|
|
|
+ SetMeasureResultInfo(SMsrData);
|
|
|
+ MeasureResultMsrData = SMsrData;
|
|
|
+
|
|
|
+ m_bgWorker.ReportProgress((int)ProgressState.MeasureCheckReport, SMsrData);
|
|
|
+ //激活跳转至报告程序按钮
|
|
|
+ m_MeasureApp.rbPReport.Enabled = true;
|
|
|
+ m_MeasureApp.rbReport.Enabled = true;
|
|
|
+ //获取需显示的grid信息
|
|
|
+ var sample = m_MeasureApp.m_ProjParam.GetWorkSample();
|
|
|
+ var stype = m_MeasureApp.m_ProjParam.GetDefaultParam().GetSysType();
|
|
|
+ OTSSampleVisualPropertyInfo MeasureInfo = new OTSSampleVisualPropertyInfo(sample, stype);
|
|
|
+ m_MeasureApp.m_SPropertyWindows.DisplaySampleMeasureInfo(MeasureInfo);
|
|
|
}
|
|
|
- #endregion
|
|
|
|
|
|
- #region 设置样品名称
|
|
|
- /// <summary>
|
|
|
- /// 设置样品名称
|
|
|
- /// </summary>
|
|
|
- /// <param name="SetSampleName"></param>
|
|
|
- public void SetSampleName(string sampleName)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ #region 测量方法
|
|
|
+ //运行测量状态方法
|
|
|
+ //public void UpdateMeasureState_samplespace_propertyGrid(ST_MSTMsg SMsrData)
|
|
|
+ //{
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // //测量状态:开始状态、完成状态(测量停止、测量失败、测量完成)
|
|
|
+ // OTS_MSR_THREAD_STATUS msrStatus = SMsrData.STMThreadStu.iMsrStatu;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // switch (SMsrData.iMsgType)
|
|
|
+ // {
|
|
|
+ // //测量线程状态
|
|
|
+ // case ENUM_MSG_TYPE.MTHREADSTATUS:
|
|
|
+ // switch (msrStatus)
|
|
|
+ // {
|
|
|
+ // //测量状态在进行中-测量开始
|
|
|
+ // case OTS_MSR_THREAD_STATUS.INPROCESS:
|
|
|
+
|
|
|
+ // break;
|
|
|
+ // //测量状态已完成
|
|
|
+ // case OTS_MSR_THREAD_STATUS.COMPLETED:
|
|
|
+ // //当前线程执行类型 1:测量
|
|
|
+ // MeasureComplete(SMsrData);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // break;
|
|
|
+ // //测量状态已失败
|
|
|
+ // case OTS_MSR_THREAD_STATUS.FAILED:
|
|
|
+ // //当前线程执行类型 1:测量
|
|
|
+ // MeasureFailed(SMsrData);
|
|
|
+
|
|
|
+
|
|
|
+ // break;
|
|
|
+ // //测量状态已停止
|
|
|
+ // case OTS_MSR_THREAD_STATUS.STOPPED:
|
|
|
+ // //当前线程执行类型 1:测量
|
|
|
+ // MeasureStopped(SMsrData);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // break;
|
|
|
+ // //测量结果
|
|
|
+ // case ENUM_MSG_TYPE.MSAMPLESTATUS:
|
|
|
+ // //获取测量状态样品信息
|
|
|
+ // OTS_MSR_SAMPLE_STATUS msrSampleStatu = SMsrData.STMSampleStu.iMsrSampleStatu;
|
|
|
+ // switch (msrSampleStatu)
|
|
|
+ // {
|
|
|
+ // case OTS_MSR_SAMPLE_STATUS.INPROCESS:
|
|
|
+ // //当前线程执行类型 1:测量
|
|
|
+ // SampleStart(SMsrData);
|
|
|
+
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // break;
|
|
|
+ // case ENUM_MSG_TYPE.MSAMPLERESULT:
|
|
|
+ // //获取测量状态的Field与BSE信息
|
|
|
+ // MSAMPLE_RET retDataType = SMsrData.STMSampleRetData.iRetDataType;
|
|
|
+
|
|
|
+ // //判断测量状态提供Field与BSE信息
|
|
|
+ // switch (retDataType)
|
|
|
+ // {
|
|
|
+ // case MSAMPLE_RET.BSE_DATA:
|
|
|
+
|
|
|
+ // Field_BSE_DATA(SMsrData);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // break;
|
|
|
+ // case MSAMPLE_RET.FIELD_DATA:
|
|
|
+ // //当前线程执行类型 1:测量
|
|
|
+ // Field_DATA(SMsrData);
|
|
|
+ // //设置测量当前用时
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // break;
|
|
|
+ // case MSAMPLE_RET.START_MSR_FIELD:
|
|
|
+ // //当前线程执行类型 1:测量
|
|
|
+ // Field_START_MSR(SMsrData);
|
|
|
+
|
|
|
+
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+
|
|
|
+ //}
|
|
|
+
|
|
|
+ public void Field_START_MSR(ST_MSTMsg SMsrData)
|
|
|
{
|
|
|
- //设置开始时间
|
|
|
- if (sampleName != null)
|
|
|
- {
|
|
|
- if (sampleName != "")
|
|
|
- {
|
|
|
- m_MeasureApp.m_SamplepaceWindow.SetSampleOrder(sampleName);
|
|
|
- double iWDistance = 0;
|
|
|
- double dMagni = 0;
|
|
|
- m_MeasureApp.m_ProjParam.GetWorkingSampleSEMData(ref iWDistance, ref dMagni);
|
|
|
-
|
|
|
- if (m_MeasureApp.GetRunType() == MSR_RUN_TYPE.RUNMEASURE)
|
|
|
- {
|
|
|
- m_OTSMeasureResultWindow.SetSampleName(sampleName);
|
|
|
- }
|
|
|
- m_MeasureApp.m_SamplepaceWindow.Invalidate();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- #endregion
|
|
|
+ var sam1 = m_MeasureApp.m_SamplepaceWindow.GetWorkingVisualSample();
|
|
|
+ m_MeasureApp.m_SamplepaceWindow.ChangeDoneMeasureState(sam1, SMsrData.STMSampleRetData.SMsrField.FieldPos, Color.Yellow);
|
|
|
|
|
|
-
|
|
|
+ m_MeasureApp.m_SamplepaceWindow.Invalidate();
|
|
|
+ }
|
|
|
|
|
|
- #region 测量状态进度窗口
|
|
|
- public void MeasureStateProgressInfo(SAMPLEFIELDDATA FieldData)
|
|
|
+ public void Field_DATA(ST_MSTMsg SMsrData)
|
|
|
{
|
|
|
+
|
|
|
+
|
|
|
+ m_OTSMeasureResultWindow.SetMeasureTime(SMsrData.STMSampleRetData.SFieldData.TUsedTime);
|
|
|
+
|
|
|
+ //---------update the progress bar测量状态进度窗口
|
|
|
+ var FieldData =SMsrData.STMSampleRetData.SFieldData;
|
|
|
//样品测量中的总帧图数
|
|
|
int MeasureFieldTotalCount = FieldData.iMeasureFieldCount;
|
|
|
//样品测量中当前已测量的帧图数
|
|
|
@@ -333,243 +389,94 @@ namespace OTSMeasureApp
|
|
|
//设置当前进度信息(当前Field数量与Field总数)
|
|
|
m_OTSMeasureResultWindow.SetCurrentProgressInfo(CompleteFieldCount, MeasureFieldTotalCount, ParticleCount);
|
|
|
}
|
|
|
+ //-----------
|
|
|
+ var sam = m_MeasureApp.m_SamplepaceWindow.GetWorkingVisualSample();
|
|
|
+ m_MeasureApp.m_SamplepaceWindow.ChangeDoneMeasureState(sam, SMsrData.STMSampleRetData.SFieldData.FieldPos, Color.Green);
|
|
|
+ m_MeasureApp.m_SamplepaceWindow.Invalidate();
|
|
|
}
|
|
|
- #endregion
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- #region 测量方法
|
|
|
- //运行测量状态方法
|
|
|
- public void RunMeasureState(ST_MSTMsg SMsrData)
|
|
|
+ public void Field_BSE_DATA(ST_MSTMsg SMsrData)
|
|
|
{
|
|
|
- try
|
|
|
+ //获取显示BSE的图片数据
|
|
|
+ byte[] ImageData = SMsrData.STMSampleRetData.BSEData.lpBSEData;
|
|
|
+ //图片宽度
|
|
|
+ int width = SMsrData.STMSampleRetData.BSEData.iBSEDataWidth;
|
|
|
+ //图片高度
|
|
|
+ int height = SMsrData.STMSampleRetData.BSEData.iBSEDataHeight;
|
|
|
+ //显示状态中的BSE图像控件
|
|
|
+ if (!m_MeasureApp.m_MessureStatuWindow.picBox.Visible)
|
|
|
{
|
|
|
-
|
|
|
- //消息枚举 测量状态、测量结果
|
|
|
- ENUM_MSG_TYPE dataType = SMsrData.iMsgType;
|
|
|
- //测量状态:开始状态、完成状态(测量停止、测量失败、测量完成)
|
|
|
- OTS_MSR_THREAD_STATUS msrStatus = SMsrData.STMThreadStu.iMsrStatu;
|
|
|
- //获取当前线程执行类型 1:测量 2:获取样品孔图片
|
|
|
- var runThreadType = m_MeasureApp.GetRunType();
|
|
|
-
|
|
|
- //获取需显示的grid信息
|
|
|
- var sample = m_MeasureApp.m_ProjParam.GetWorkSample();
|
|
|
- var stype = m_MeasureApp.m_ProjParam.GetDefaultParam().GetSysType();
|
|
|
- OTSSampleVisualPropertyInfo MeasureInfo = new OTSSampleVisualPropertyInfo(sample,stype);
|
|
|
- //m_MeasureApp.m_ProjParam.GetWorkSamplePerameter(m_MeasureApp.m_ProjParam.GetWorkSample(), ref MeasureInfo);
|
|
|
-
|
|
|
- switch (dataType)
|
|
|
- {
|
|
|
- //测量线程状态
|
|
|
- case ENUM_MSG_TYPE.MTHREADSTATUS:
|
|
|
- switch (msrStatus)
|
|
|
- {
|
|
|
- //测量状态在进行中-测量开始
|
|
|
- case OTS_MSR_THREAD_STATUS.INPROCESS:
|
|
|
-
|
|
|
- if (runThreadType == MSR_RUN_TYPE.RUNMEASURE)
|
|
|
- {
|
|
|
-
|
|
|
- string startTime = SMsrData.STMThreadStu.csMsrStartTime;
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
- //测量状态已完成
|
|
|
- case OTS_MSR_THREAD_STATUS.COMPLETED:
|
|
|
- //当前线程执行类型 1:测量
|
|
|
- if (runThreadType == MSR_RUN_TYPE.RUNMEASURE)
|
|
|
- {
|
|
|
- string inprocessEndTime = SMsrData.STMThreadStu.csMsrEndTime;
|
|
|
- SetMeasureResultInfo(SMsrData);
|
|
|
- MeasureResultMsrData = SMsrData;
|
|
|
-
|
|
|
- m_bgWorker.ReportProgress((int)ProgressState.MeasureCheckReport, SMsrData);
|
|
|
- //激活跳转至报告程序按钮
|
|
|
- m_MeasureApp.rbPReport.Enabled = true;
|
|
|
- m_MeasureApp.rbReport.Enabled = true;
|
|
|
- m_MeasureApp.m_SPropertyWindows.DisplaySampleMeasureInfo(MeasureInfo);
|
|
|
- }
|
|
|
-
|
|
|
+ m_MeasureApp.m_MessureStatuWindow.picBox.Visible = true;
|
|
|
+ }
|
|
|
+ //调用测量状态TAB中窗体 显示BSE图片
|
|
|
+ OTSMeasureStatusWindowFun(width, height, ImageData, m_MeasureApp);
|
|
|
+ }
|
|
|
|
|
|
- //测量完成,更新Grid显示的测量信息
|
|
|
-
|
|
|
- break;
|
|
|
- //测量状态已失败
|
|
|
- case OTS_MSR_THREAD_STATUS.FAILED:
|
|
|
- //当前线程执行类型 1:测量
|
|
|
- if (runThreadType == MSR_RUN_TYPE.RUNMEASURE)
|
|
|
- {
|
|
|
- string failedEndTime = SMsrData.STMThreadStu.csMsrEndTime;
|
|
|
- SetMeasureResultInfo(SMsrData);
|
|
|
- MeasureResultMsrData = SMsrData;
|
|
|
- m_bgWorker.ReportProgress((int)ProgressState.MeasureCheckReport, SMsrData);
|
|
|
- }
|
|
|
-
|
|
|
+ public void SampleStart(ST_MSTMsg SMsrData)
|
|
|
+ {
|
|
|
+ //获取样品名称
|
|
|
+ string sampleName = SMsrData.STMSampleStu.cSampleName;
|
|
|
+ //样品测量开始时间
|
|
|
+ string csSampleMsrStartTime = SMsrData.STMSampleStu.csSampleMsrStartTime;
|
|
|
+ //设置样品名称
|
|
|
+
|
|
|
+ if (sampleName != "")
|
|
|
+ {
|
|
|
+
|
|
|
+ m_MeasureApp.m_SamplepaceWindow.SetSampleOrder(sampleName);
|
|
|
|
|
|
- //测量失败,更新Grid显示的测量信息
|
|
|
- m_MeasureApp.m_SPropertyWindows.DisplaySampleMeasureInfo(MeasureInfo);
|
|
|
- break;
|
|
|
- //测量状态已停止
|
|
|
- case OTS_MSR_THREAD_STATUS.STOPPED:
|
|
|
- //当前线程执行类型 1:测量
|
|
|
- if (runThreadType == MSR_RUN_TYPE.RUNMEASURE)
|
|
|
- {
|
|
|
- string stopEndTime = SMsrData.STMThreadStu.csMsrEndTime;
|
|
|
- //打开测量结果窗口
|
|
|
- SetMeasureResultInfo(SMsrData);
|
|
|
- MeasureResultMsrData = SMsrData;
|
|
|
- m_bgWorker.ReportProgress((int)ProgressState.MeasureCheckReport, SMsrData);
|
|
|
- //激活跳转至报告程序按钮
|
|
|
- m_MeasureApp.rbPReport.Enabled = true;
|
|
|
- m_MeasureApp.rbReport.Enabled = true;
|
|
|
- //测量停止,更新Grid显示的测量信息
|
|
|
- m_MeasureApp.m_SPropertyWindows.DisplaySampleMeasureInfo(MeasureInfo);
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- //测量结果
|
|
|
- case ENUM_MSG_TYPE.MSAMPLESTATUS:
|
|
|
- //获取测量状态样品信息
|
|
|
- OTS_MSR_SAMPLE_STATUS msrSampleStatu = SMsrData.STMSampleStu.iMsrSampleStatu;
|
|
|
- switch (msrSampleStatu)
|
|
|
+ if (m_MeasureApp.GetRunType() == MSR_RUN_TYPE.RUNMEASURE)
|
|
|
{
|
|
|
- case OTS_MSR_SAMPLE_STATUS.INPROCESS:
|
|
|
- //当前线程执行类型 1:测量
|
|
|
- if (runThreadType == MSR_RUN_TYPE.RUNMEASURE)
|
|
|
- {
|
|
|
- //获取样品名称
|
|
|
- string sampleName = SMsrData.STMSampleStu.cSampleName;
|
|
|
- //样品测量开始时间
|
|
|
- string csSampleMsrStartTime = SMsrData.STMSampleStu.csSampleMsrStartTime;
|
|
|
- //设置样品名称
|
|
|
- if (sampleName != null)
|
|
|
- {
|
|
|
- if (sampleName != "")
|
|
|
- {
|
|
|
- SetSampleName(sampleName);
|
|
|
- //设置开始时间
|
|
|
- SetStartTime(csSampleMsrStartTime);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- //切换样品
|
|
|
- m_MeasureApp.SwitchWSample(sampleName);
|
|
|
- //设置样品名称
|
|
|
- m_OTSMeasureResultWindow.SetSampleName(sampleName);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- else if (runThreadType == MSR_RUN_TYPE.RUNSampleHoleImage)
|
|
|
- {
|
|
|
- //获取样品名称
|
|
|
- string sampleName = SMsrData.STMSampleStu.cSampleName;
|
|
|
- //设置样品名称
|
|
|
- if (sampleName == null)
|
|
|
- {
|
|
|
- if (sampleName.Equals(""))
|
|
|
- {
|
|
|
- if (m_MeasureApp.m_ProjParam.GetWorkSample() != null)
|
|
|
- {
|
|
|
- sampleName = m_MeasureApp.m_ProjParam.GetWorkSample().GetName();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- SetSampleName(sampleName);
|
|
|
- }
|
|
|
- break;
|
|
|
+ m_OTSMeasureResultWindow.SetSampleName(sampleName);
|
|
|
}
|
|
|
- break;
|
|
|
- case ENUM_MSG_TYPE.MSAMPLERESULT:
|
|
|
- //获取测量状态的Field与BSE信息
|
|
|
- MSAMPLE_RET retDataType = SMsrData.STMSampleRetData.iRetDataType;
|
|
|
-
|
|
|
- //判断测量状态提供Field与BSE信息
|
|
|
- switch (retDataType)
|
|
|
- {
|
|
|
- case MSAMPLE_RET.BSE_DATA:
|
|
|
- //当前线程执行类型 1:测量
|
|
|
- if (runThreadType == MSR_RUN_TYPE.RUNMEASURE)
|
|
|
- {
|
|
|
- //获取显示BSE的图片数据
|
|
|
- byte[] ImageData = SMsrData.STMSampleRetData.BSEData.lpBSEData;
|
|
|
- //图片宽度
|
|
|
- int width = SMsrData.STMSampleRetData.BSEData.iBSEDataWidth;
|
|
|
- //图片高度
|
|
|
- int height = SMsrData.STMSampleRetData.BSEData.iBSEDataHeight;
|
|
|
- //显示状态中的BSE图像控件
|
|
|
- if (!m_MeasureApp.m_MessureStatuWindow.picBox.Visible)
|
|
|
- {
|
|
|
- m_MeasureApp.m_MessureStatuWindow.picBox.Visible = true;
|
|
|
- }
|
|
|
- //调用测量状态TAB中窗体 显示BSE图片
|
|
|
- OTSMeasureStatusWindowFun(width, height, ImageData, m_MeasureApp);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- else if (runThreadType == MSR_RUN_TYPE.RUNSampleHoleImage)
|
|
|
- {
|
|
|
- //获取显示BSE的图片数据
|
|
|
- byte[] ImageData = SMsrData.STMSampleRetData.BSEData.lpBSEData;
|
|
|
- //图片宽度
|
|
|
- int width = SMsrData.STMSampleRetData.BSEData.iBSEDataWidth;
|
|
|
- //图片高度
|
|
|
- int height = SMsrData.STMSampleRetData.BSEData.iBSEDataHeight;
|
|
|
- //Field位置
|
|
|
- Point fieldPos = SMsrData.STMSampleRetData.BSEData.pos;
|
|
|
- int fieldid= SMsrData.STMSampleRetData.BSEData.fieldId;
|
|
|
- //设置样品孔中BSE图像信息
|
|
|
- m_MeasureApp.m_SamplepaceWindow.AddHoleBSEImageData(ImageData, width, height, fieldPos,fieldid);
|
|
|
- }
|
|
|
- break;
|
|
|
- case MSAMPLE_RET.FIELD_DATA:
|
|
|
- //当前线程执行类型 1:测量
|
|
|
- if (runThreadType == MSR_RUN_TYPE.RUNMEASURE)
|
|
|
- {
|
|
|
- //设置测量当前用时
|
|
|
- if (SMsrData.STMSampleRetData.SFieldData.TUsedTime != null)
|
|
|
- {
|
|
|
- SetMeasureTime(SMsrData.STMSampleRetData.SFieldData.TUsedTime);
|
|
|
- }
|
|
|
-
|
|
|
- MeasureStateProgressInfo(SMsrData.STMSampleRetData.SFieldData);
|
|
|
- var sam = m_MeasureApp.m_SamplepaceWindow.GetWorkingVisualSample();
|
|
|
- m_MeasureApp.m_SamplepaceWindow. ChangeDoneMeasureState(sam,SMsrData.STMSampleRetData.SFieldData.FieldPos, Color.Green);
|
|
|
- m_MeasureApp.m_SamplepaceWindow.Invalidate();
|
|
|
-
|
|
|
- }
|
|
|
- break;
|
|
|
- case MSAMPLE_RET.START_MSR_FIELD:
|
|
|
- //当前线程执行类型 1:测量
|
|
|
- if (runThreadType == MSR_RUN_TYPE.RUNMEASURE)
|
|
|
- {
|
|
|
- var sam = m_MeasureApp.m_SamplepaceWindow.GetWorkingVisualSample();
|
|
|
- m_MeasureApp.m_SamplepaceWindow.ChangeDoneMeasureState(sam,SMsrData.STMSampleRetData.SMsrField.FieldPos, Color.Yellow);
|
|
|
-
|
|
|
- m_MeasureApp.m_SamplepaceWindow.Invalidate();
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- log.Error("RunMeasureState--The error message:" + ex.ToString());
|
|
|
+ m_MeasureApp.m_SamplepaceWindow.Invalidate();
|
|
|
+
|
|
|
+ //设置开始时间
|
|
|
+
|
|
|
+ m_OTSMeasureResultWindow.SetStartTime(csSampleMsrStartTime);
|
|
|
}
|
|
|
+
|
|
|
+ //切换样品
|
|
|
+ m_MeasureApp.SwitchWSample(sampleName);
|
|
|
+ //设置样品名称
|
|
|
+ m_OTSMeasureResultWindow.SetSampleName(sampleName);
|
|
|
}
|
|
|
|
|
|
+ public void MeasureStopped(ST_MSTMsg SMsrData)
|
|
|
+ {
|
|
|
+ string stopEndTime = SMsrData.STMThreadStu.csMsrEndTime;
|
|
|
+ //打开测量结果窗口
|
|
|
+ SetMeasureResultInfo(SMsrData);
|
|
|
+ MeasureResultMsrData = SMsrData;
|
|
|
+ m_bgWorker.ReportProgress((int)ProgressState.MeasureCheckReport, SMsrData);
|
|
|
+ //激活跳转至报告程序按钮
|
|
|
+ m_MeasureApp.rbPReport.Enabled = true;
|
|
|
+ m_MeasureApp.rbReport.Enabled = true;
|
|
|
+ //测量停止,更新Grid显示的测量信息
|
|
|
+ //获取需显示的grid信息
|
|
|
+ var sample = m_MeasureApp.m_ProjParam.GetWorkSample();
|
|
|
+ var stype = m_MeasureApp.m_ProjParam.GetDefaultParam().GetSysType();
|
|
|
+ OTSSampleVisualPropertyInfo MeasureInfo = new OTSSampleVisualPropertyInfo(sample, stype);
|
|
|
+ m_MeasureApp.m_SPropertyWindows.DisplaySampleMeasureInfo(MeasureInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void MeasureFailed(ST_MSTMsg SMsrData)
|
|
|
+ {
|
|
|
+ string failedEndTime = SMsrData.STMThreadStu.csMsrEndTime;
|
|
|
+ SetMeasureResultInfo(SMsrData);
|
|
|
+ MeasureResultMsrData = SMsrData;
|
|
|
+ m_bgWorker.ReportProgress((int)ProgressState.MeasureCheckReport, SMsrData);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //测量失败,更新Grid显示的测量信息
|
|
|
+ //获取需显示的grid信息
|
|
|
+ var sample = m_MeasureApp.m_ProjParam.GetWorkSample();
|
|
|
+ var stype = m_MeasureApp.m_ProjParam.GetDefaultParam().GetSysType();
|
|
|
+ OTSSampleVisualPropertyInfo MeasureInfo = new OTSSampleVisualPropertyInfo(sample, stype);
|
|
|
+ m_MeasureApp.m_SPropertyWindows.DisplaySampleMeasureInfo(MeasureInfo);
|
|
|
+ }
|
|
|
|
|
|
#endregion
|
|
|
|