using OTSDataType; using OTSModelSharp.ResourceManage; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace OTSMeasureApp { enum OTS_X_AXIS_DIRECTION { LEFT_TOWARD = 0, RIGHT_TOWARD = 1 }; enum OTS_Y_AXIS_DIRECTION { UP_TOWARD = 0, DOWN_TOWARD = 1 }; //样品孔信息,包括样品孔名称,样品孔形状,样品口坐标 public class OTSSampleHoleInfo { public String sSHoleName; //样品孔名称 public int iSHoleShape; // 样品口形状 1: 矩形; 0: 圆形 // public Point sSHoleStartPoint; // 样品孔起点坐标 // public Point sSHoleEndPoint; //样品孔终点坐标 public RectangleF HoleRect; //样品孔大小 } //MeasureApp 给SampleWindow窗口发送添加样品的样品孔名信息 public struct SampleHolePara { public string sHoleName; public ShapeType iShape; //样品孔大小 public RectangleF SampleHoleRect; }; // 用于绘制样品台的数据 public class StageDrawingData { public StageDrawingData() { sSHoleInfoList = new List(); } //绘制样品台形状信息 //样品台名称 public String sStageName; //样品台名称 public ShapeType bStageShape; // 样品台形状。 1: 矩形; 0: 圆形 // public Point PSStageStartPos; //样品台起点坐标 // public Point PSStageEndPos; //样品台终点坐标 public RectangleF StageDomain; //样品台的大小 public ShapeType bSampleShape; //标样形状 1: 矩形; 0: 圆形 // public Point PSSampleStartPos; // 标样起点坐标 // public Point PSSampleEndPos; // public RectangleF SampleRect; //标样大小 public List sSHoleInfoList; //样品孔信息List //绘制样品台坐标信息 public int iScanFieldSize100; //放大倍数为100倍时的屏幕尺寸 public int iXAxisDir; // X轴方向 ,参看 enum OTS_X_AXIS_DIRECTION public int iXAxisStartVal; //X轴起点值 public int iXAxisEndVal; //X轴终点值 public int iYAxisDir; //Y轴方向,,参看enum OTS_Y_AXIS_DIRECTION public int iYAxisStartVal; //Y轴起点值 public int iYAxisEndVal; //Y轴终点值. } //public class TestSampleInfo //{ // OTSIncAMeasureAppForm m_MeasureApp = null; // public TestSampleInfo(OTSIncAMeasureAppForm Mapp) // { // m_MeasureApp = Mapp; // } // // 测试标题栏的显示 // public OTSSamplePropertyInfo TestShowGrid(String sSampleName,bool bFlag=false) // { // OTSSamplePropertyInfo m_SMInfo = new OTSSamplePropertyInfo(); // m_SMInfo.sSampleSoluName = "Project"; // //样品名 // SamplePropertyData sData = new SamplePropertyData(); // sData.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_NAME; // sData.iSampleValType = OTS_ITEM_TYPES.STRING; // sData.sSCaptionName = "样品名"; // sData.SampleVal = sSampleName; // sData.bReadOnly = true; // m_SMInfo.SampleDataList.Add(sData); // //样品孔名称 // SamplePropertyData sData1 = new SamplePropertyData(); // sData1.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SAMPLE_HOLE_NAME; // sData1.iSampleValType = OTS_ITEM_TYPES.STRING; // sData1.sSCaptionName = "样品孔名称"; // sData1.SampleVal = "样品孔1"; // sData1.bReadOnly = true; // m_SMInfo.SampleDataList.Add(sData1); // //Switch // SamplePropertyData sData2 = new SamplePropertyData(); // sData2.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH; // sData2.iSampleValType = OTS_ITEM_TYPES.BOOL; // sData2.sSCaptionName = "开关"; // if((string)sData.SampleVal == "Sample3" || (string)sData.SampleVal == "Sample4" || (string)sData.SampleVal == "Sample2") // { // sData2.SampleVal = true; // m_SMInfo.bSwitch = true; // } // else // { // sData2.SampleVal = bFlag; // m_SMInfo.bSwitch = false; // } // m_SMInfo.SampleDataList.Add(sData2); // //样品测量参数文件名 // SamplePropertyData sData3 = new SamplePropertyData(); // sData3.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_PARAM_FILE_NAME; // sData3.iSampleValType = OTS_ITEM_TYPES.COMBO; // sData3.sSCaptionName = "样品测量参数文件名"; // List m_FileList = new List(); // m_FileList.Add("文件1"); // m_FileList.Add("文件2"); // m_FileList.Add("文件3"); // m_FileList.Add("文件4"); // sData3.SampleVal = m_FileList; // m_SMInfo.SampleDataList.Add(sData3); // //颗粒分析标准库名 // SamplePropertyData sData4 = new SamplePropertyData(); // sData4.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.STD_FILE_NAME; // sData4.iSampleValType = OTS_ITEM_TYPES.COMBO; // sData4.sSCaptionName = "颗粒分析标准库名"; // // sData4.SampleVal = "\\Config\\SysData\\OTSStage.stg"; // List m_LibList = new List(); // m_LibList.Add("标准库1"); // m_LibList.Add("标准库2"); // m_LibList.Add("标准库3"); // m_LibList.Add("标准库4"); // sData4.SampleVal = m_LibList; // m_SMInfo.SampleDataList.Add(sData4); // //图像扫描参数组(Image) // //开始模式 // SamplePropertyData sData5 = new SamplePropertyData(); // sData5.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.START_MODE; // sData5.iSampleValType = OTS_ITEM_TYPES.COMBO; // sData5.sSCaptionName = "开始模式"; // List m_ValList = new List(); // m_ValList.Add("中心"); // m_ValList.Add("自上而下"); // m_ValList.Add("自下而上"); // m_ValList.Add("随机"); // sData5.SampleVal = m_ValList; // m_SMInfo.SampleDataList.Add(sData5); // //停止模式 // SamplePropertyData sData6 = new SamplePropertyData(); // sData6.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.STOP_MODE; // sData6.iSampleValType = OTS_ITEM_TYPES.COMBO; // sData6.sSCaptionName = "停止模式"; // List m_ValList1 = new List(); // m_ValList1.Add("覆盖测量区域"); // m_ValList1.Add("幁图数"); // m_ValList1.Add("颗粒数"); // m_ValList1.Add("时间"); // sData6.SampleVal = m_ValList1; // m_SMInfo.SampleDataList.Add(sData6); // //扫描速度 // SamplePropertyData sData7 = new SamplePropertyData(); // sData7.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_SPEED; // sData7.iSampleValType = OTS_ITEM_TYPES.COMBO; // sData7.sSCaptionName = "停止模式"; // List m_ValList2 = new List(); // m_ValList2.Add("高"); // m_ValList2.Add("中"); // m_ValList2.Add("低"); // sData7.SampleVal = m_ValList2; // m_SMInfo.SampleDataList.Add(sData7); // //扫描图尺寸 // SamplePropertyData sData8 = new SamplePropertyData(); // sData8.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.IMAGE_RESOLUTION; // sData8.iSampleValType = OTS_ITEM_TYPES.COMBO; // sData8.sSCaptionName = "扫描图尺寸"; // List m_ValList3 = new List(); // m_ValList3.Add("点扫描"); // m_ValList3.Add("面扫描"); // sData8.SampleVal = m_ValList3; // m_SMInfo.SampleDataList.Add(sData8); // // 图像处理参数(Image Process) // //颗粒面积最小范围 // SamplePropertyData sData9 = new SamplePropertyData(); // sData9.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MIN; // sData9.iSampleValType = OTS_ITEM_TYPES.INT; // sData9.sSCaptionName = "颗粒面积最小范围"; // sData9.SampleVal = 10; // m_SMInfo.SampleDataList.Add(sData9); // //颗粒面积最大范围 // SamplePropertyData sData10 = new SamplePropertyData(); // sData10.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.PARTICLE_AREA_MAX; // sData10.iSampleValType = OTS_ITEM_TYPES.INT; // sData10.sSCaptionName = "颗粒面积最大范围"; // sData10.SampleVal = 50; // m_SMInfo.SampleDataList.Add(sData10); // //背景灰度最小范围 // SamplePropertyData sData11 = new SamplePropertyData(); // sData11.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MIN; // sData11.iSampleValType = OTS_ITEM_TYPES.INT; // sData11.sSCaptionName = "背景灰度最小范围"; // sData11.SampleVal = 20; // m_SMInfo.SampleDataList.Add(sData11); // //背景灰度最大范围 // SamplePropertyData sData12 = new SamplePropertyData(); // sData12.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX; // sData12.iSampleValType = OTS_ITEM_TYPES.INT; // sData12.sSCaptionName = "背景灰度最大范围"; // sData12.SampleVal = 60; // m_SMInfo.SampleDataList.Add(sData12); // //颗粒灰度最小范围 // SamplePropertyData sData13 = new SamplePropertyData(); // sData13.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX; // sData13.iSampleValType = OTS_ITEM_TYPES.INT; // sData13.sSCaptionName = "颗粒灰度最小范围"; // sData13.SampleVal = 30; // m_SMInfo.SampleDataList.Add(sData13); // //颗粒灰度最大范围 // SamplePropertyData sData14 = new SamplePropertyData(); // sData14.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.BG_GRAY_MAX; // sData14.iSampleValType = OTS_ITEM_TYPES.INT; // sData14.sSCaptionName = "颗粒灰度最大范围"; // sData14.SampleVal = 70; // m_SMInfo.SampleDataList.Add(sData14); // //x-ray参数组(x-ray) // //搜索x-ray精度 // SamplePropertyData sData15 = new SamplePropertyData(); // sData15.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SEARCH_RESOLUTION; // sData15.iSampleValType = OTS_ITEM_TYPES.COMBO; // sData15.sSCaptionName = "搜索x-ray精度"; // List m_ValList4 = new List(); // m_ValList4.Add("低"); // m_ValList4.Add("中"); // m_ValList4.Add("高"); // // m_ValList3.Add("时间"); // sData15.SampleVal = m_ValList4; // m_SMInfo.SampleDataList.Add(sData15); // //x - ray最低计数 // SamplePropertyData sData16 = new SamplePropertyData(); // sData16.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.LOW_COUNTS; // sData16.iSampleValType = OTS_ITEM_TYPES.INT; // sData16.sSCaptionName = "XRay最低计数"; // sData16.SampleVal = 100; // m_SMInfo.SampleDataList.Add(sData16); // //分析x-ray精度 // SamplePropertyData sData17 = new SamplePropertyData(); // sData17.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_RESOLUTION; // sData17.iSampleValType = OTS_ITEM_TYPES.COMBO; // sData17.sSCaptionName = "分析XRay精度"; // List m_ValList5 = new List(); // m_ValList5.Add("低"); // m_ValList5.Add("中"); // m_ValList5.Add("高"); // // m_ValList3.Add("时间"); // sData17.SampleVal = m_ValList5; // m_SMInfo.SampleDataList.Add(sData17); // // x-ray扫描方式 // SamplePropertyData sData18 = new SamplePropertyData(); // sData18.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.SCAN_MODE; // sData18.iSampleValType = OTS_ITEM_TYPES.COMBO; // sData18.sSCaptionName = "XRay扫描方式"; // List m_ValList6 = new List(); // m_ValList6.Add("点扫描"); // m_ValList6.Add("面扫描"); // //m_ValList6.Add("高"); // // m_ValList3.Add("时间"); // sData18.SampleVal = m_ValList6; // m_SMInfo.SampleDataList.Add(sData18); // //分析x-ray计数期望值 // SamplePropertyData sData19 = new SamplePropertyData(); // sData19.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.ANALYSIS_COUNTS; // sData19.iSampleValType = OTS_ITEM_TYPES.INT; // sData19.sSCaptionName = "分析XRay计数期望值"; // sData19.SampleVal = 800; // m_SMInfo.SampleDataList.Add(sData19); // //SEM工作参数组(SEM Data) // //放大倍数 // SamplePropertyData sData20 = new SamplePropertyData(); // sData20.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.MAGNIFICATION; // sData20.iSampleValType = OTS_ITEM_TYPES.STRING; // sData20.sSCaptionName = "放大倍数"; // sData20.SampleVal = "100"; // m_SMInfo.SampleDataList.Add(sData20); // //测量精度 // SamplePropertyData sData21 = new SamplePropertyData(); // sData21.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.IMAGERESOLUTION_SIZE; // sData21.iSampleValType = OTS_ITEM_TYPES.STRING; // sData21.sSCaptionName = "测量精度"; // sData21.SampleVal = "高精度"; // m_SMInfo.SampleDataList.Add(sData21); // //工作距离 // SamplePropertyData sData22 = new SamplePropertyData(); // sData22.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.WORKING_DISTANCE; // sData22.iSampleValType = OTS_ITEM_TYPES.STRING; // sData22.sSCaptionName = "工作距离"; // sData22.SampleVal = "200"; // m_SMInfo.SampleDataList.Add(sData22); // //覆盖测量区域帧图数 // SamplePropertyData sData23 = new SamplePropertyData(); // sData23.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_FIELDS; // sData23.iSampleValType = OTS_ITEM_TYPES.STRING; // sData23.sSCaptionName = "覆盖测量区域帧图数"; // sData23.SampleVal = "4000"; // m_SMInfo.SampleDataList.Add(sData23); // //样品测量状态(Measure status) // //测量状态 // SamplePropertyData sData24 = new SamplePropertyData(); // sData24.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.MEASURE_STATAU; // sData24.iSampleValType = OTS_ITEM_TYPES.STRING; // sData24.sSCaptionName = "测量状态"; // sData24.SampleVal = "未测量"; // m_SMInfo.SampleDataList.Add(sData24); // //测量开始时间 // DateTime dt = DateTime.Now; // String sDate = dt.ToString(); // // MessageBox.Show(sDate); // SamplePropertyData sData25 = new SamplePropertyData(); // sData25.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.START_TIME; // sData25.iSampleValType = OTS_ITEM_TYPES.STRING; // sData25.sSCaptionName = "测量开始事件"; // sData25.SampleVal = sDate; // m_SMInfo.SampleDataList.Add(sData25); // //Thread.Sleep(1000); // //已经测量时间 // DateTime dt1 = DateTime.Now; // String sDate1 = this.DateDiff(dt1, dt); // // MessageBox.Show(sDate); // SamplePropertyData sData26 = new SamplePropertyData(); // sData26.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.USED_TIME; // sData26.iSampleValType = OTS_ITEM_TYPES.STRING; // sData26.sSCaptionName = "已经测量时间"; // sData26.SampleVal = sDate1; // m_SMInfo.SampleDataList.Add(sData26); // //完成时间 // SamplePropertyData sData27 = new SamplePropertyData(); // sData27.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.FINISH_TIME; // sData27.iSampleValType = OTS_ITEM_TYPES.STRING; // sData27.sSCaptionName = "完成时间"; // sData27.SampleVal = dt1.ToString(); // m_SMInfo.SampleDataList.Add(sData27); // //完成幁图数 // SamplePropertyData sData28 = new SamplePropertyData(); // sData28.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.COMPLETED_FIELDS; // sData28.iSampleValType = OTS_ITEM_TYPES.INT; // sData28.sSCaptionName = "完成帧图数"; // sData28.SampleVal = 1800; // m_SMInfo.SampleDataList.Add(sData28); // //样品测量结果(Measure Result) // //比率 // SamplePropertyData sData29 = new SamplePropertyData(); // sData29.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.RATIO; // sData29.iSampleValType = OTS_ITEM_TYPES.DOUBLE; // sData29.sSCaptionName = "比率"; // sData29.SampleVal = 3.14; // m_SMInfo.SampleDataList.Add(sData29); // //测量面积 // SamplePropertyData sData30 = new SamplePropertyData(); // sData30.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_AREA; // sData30.iSampleValType = OTS_ITEM_TYPES.DOUBLE; // sData30.sSCaptionName = "测量面积"; // sData30.SampleVal = 120; // m_SMInfo.SampleDataList.Add(sData30); // //颗粒数 // SamplePropertyData sData31 = new SamplePropertyData(); // sData31.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE; // sData31.iSampleValType = OTS_ITEM_TYPES.INT; // sData31.sSCaptionName = "颗粒数"; // sData31.SampleVal = 8000; // m_SMInfo.SampleDataList.Add(sData31); // //颗粒面积 // SamplePropertyData sData32 = new SamplePropertyData(); // sData32.iSampleId = OTS_SAMPLE_PROP_GRID_ITEMS.TOTAL_PARTICLE_AREA; // sData32.iSampleValType = OTS_ITEM_TYPES.DOUBLE; // sData32.sSCaptionName = "颗粒面积"; // sData32.SampleVal = 8000; // m_SMInfo.SampleDataList.Add(sData32); // return m_SMInfo; // } // //获取两个时间差 // private string DateDiff(DateTime DateTime1, DateTime DateTime2) // { // string dateDiff = null; // try // { // TimeSpan ts1 = new TimeSpan(DateTime1.Ticks); // TimeSpan ts2 = new TimeSpan(DateTime2.Ticks); // TimeSpan ts = ts1.Subtract(ts2).Duration(); // dateDiff = ts.Days.ToString() + "天" // + ts.Hours.ToString() + "小时" // + ts.Minutes.ToString() + "分钟" // + ts.Seconds.ToString() + "秒"; // } // catch // { // } // return dateDiff; // } //} }