123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473 |
- 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<OTSSampleHoleInfo>();
- }
- //绘制样品台形状信息
- //样品台名称
- 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<OTSSampleHoleInfo> 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<string> m_FileList = new List<string>();
- // 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<string> m_LibList = new List<string>();
- // 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<string> m_ValList = new List<string>();
- // 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<string> m_ValList1 = new List<string>();
- // 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<string> m_ValList2 = new List<string>();
- // 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<string> m_ValList3 = new List<string>();
- // 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<string> m_ValList4 = new List<string>();
- // 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<string> m_ValList5 = new List<string>();
- // 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<string> m_ValList6 = new List<string>();
- // 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;
- // }
- //}
- }
|