| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466 | 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 Rectangle HoleRect;          //样品孔大小    }    // 用于绘制样品台的数据   public class StageDrawingData    {        public StageDrawingData()        {            sSHoleInfoList = new List<OTSSampleHoleInfo>();        }        //绘制样品台形状信息        //样品台名称        public String sStageName;                //样品台名称        public int bStageShape;                 // 样品台形状。  1: 矩形;  0: 圆形                                                //    public Point PSStageStartPos;           //样品台起点坐标                                                //    public Point PSStageEndPos;            //样品台终点坐标        public Rectangle StageDomain;           //样品台的大小        public int bSampleShape;               //标样形状     1: 矩形;  0: 圆形                                               //    public Point PSSampleStartPos;          // 标样起点坐标                                               //    public Point PSSampleEndPos;            //         public Rectangle 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;        }    }}
 |