| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 | using System;using System.Collections.Generic;namespace OTSCommon.Model{    /// <summary>    /// 样品台X轴方向    /// </summary>   public enum OTS_X_AXIS_DIRECTION    {        LEFT_TOWARD = 0,        RIGHT_TOWARD = 1    }    /// <summary>    /// 样品台Y轴方向    /// </summary>public    enum OTS_Y_AXIS_DIRECTION    {        UP_TOWARD = 0,        DOWN_TOWARD = 1    }    [Serializable]    public class ResultFile    {        /// <summary>        /// FileId        /// </summary>              ///  //全局对象,为了能够快速的获取到xray数据,而做为一个临时变量进行保存,使用前应该判断是否为空        private List<Field> list_OTSField = null;          public int GetTotalFields()        {            int all_FiledCount = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"])["SEMDataMsr"])["TotalFields"]);            return all_FiledCount;        }        public float GetScanFieldSizeX()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];            //Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            float ScanFieldSizeX = float.Parse(SEMDataMsr["ScanFieldSize"].ToString());            return ScanFieldSizeX;        }        public float GetScanFieldSizeX100()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];            //Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            float ScanFieldSizeX100 = float.Parse(SEMDataMsr["ScanFieldSize100"].ToString());            return ScanFieldSizeX100;        }        public float GetMeasurementMagnification()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];            //Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            float ScanMagnification = 0;            try            {                ScanMagnification = float.Parse(SEMDataMsr["Magnification"].ToString());            }            catch            {                ScanMagnification = GetScanFieldSizeX100() * 100 / GetScanFieldSizeX();            }            return ScanMagnification;        }        public float GetScanFieldSizeY()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];            float ScanFieldSizeX = float.Parse(SEMDataMsr["ScanFieldSize"].ToString());            Dictionary<string, object> imageScanParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageScanParam"];            string ImageResolution = imageScanParam["ImageResolution"].ToString();            int width = int.Parse(ImageResolution.Split('_')[1]);            int height = int.Parse(ImageResolution.Split('_')[2]);            float ScanFieldSizeY = ScanFieldSizeX * height / width;            return ScanFieldSizeY;        }        public string GetXAxisDir()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];                  string leftOrRight = SEMStageData["xAxisDir"].ToString().Split(':')[1];            return leftOrRight;        }        public OTS_X_AXIS_DIRECTION GetXAxisDirEnum()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            int leftOrRight = Convert.ToInt32(SEMStageData["xAxisDir"].ToString().Split(':')[0]);            return (OTS_X_AXIS_DIRECTION)leftOrRight;        }        public OTS_Y_AXIS_DIRECTION GetYAxisDirEnum()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            int dir = Convert.ToInt32(SEMStageData["yAxisDir"].ToString().Split(':')[0]);            return (OTS_Y_AXIS_DIRECTION)dir;        }        public string GetYAxisDir()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            string downOrUp = SEMStageData["yAxisDir"].ToString().Split(':')[1];            return downOrUp;        }        public int GetXAxisStart()        {            Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            int xStart = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["SEMStageData"])["Members"])["XAxis"])["start"]);            int xEnd = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["SEMStageData"])["Members"])["XAxis"])["end"]);            return xStart;        }        public int GetXAxisEnd()        {            Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            int xEnd = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["SEMStageData"])["Members"])["XAxis"])["end"]);            return xEnd;        }        public int GetYAxisStart()        {            Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            int yStart = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["SEMStageData"])["Members"])["YAxis"])["start"]);            return yStart;        }        public int GetYAxisEnd()        {            Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            int yEnd = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["SEMStageData"])["Members"])["YAxis"])["end"]);            return yEnd;        }        public string GetImageResolution()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> imageScanParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageScanParam"];            string ImageResolution = imageScanParam["ImageResolution"].ToString();            return ImageResolution;        }        public int GetImageWidth()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> imageScanParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageScanParam"];            Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];            Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];                       string ImageResolution = imageScanParam["ImageResolution"].ToString();            int width = int.Parse(ImageResolution.Split('_')[1]);            return width;            //int height = int.Parse(ImageResolution.Split('_')[2]);        }        public int GetImageHeight()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> imageScanParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageScanParam"];                   string ImageResolution = imageScanParam["ImageResolution"].ToString();                                int height = int.Parse(ImageResolution.Split('_')[2]);            return height;        }        public float GetPixelSize()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> imageScanParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageScanParam"];            Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];            Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];            float ScanFieldSizeX = float.Parse(SEMDataMsr["ScanFieldSize"].ToString());                       string ImageResolution = imageScanParam["ImageResolution"].ToString();            int width = int.Parse(ImageResolution.Split('_')[1]);            int height = int.Parse(ImageResolution.Split('_')[2]);                       float m_pixelSize = ScanFieldSizeX / width;            return m_pixelSize;        }              public string GetSTDName()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            string STDName = ((Dictionary<string, object>)sampleMembers["MsrParams"])["STDName"].ToString();            return STDName;        }        public bool GetUseSysSTD()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            string UseSysSTD = ((Dictionary<string, object>)sampleMembers["MsrParams"])["UseSysSTD"].ToString();            return Convert.ToBoolean(UseSysSTD);        }        public int GetOverlapParam()        {            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            Dictionary<string, object> imageProcParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageProcessParam"];            try            {                string overlap = imageProcParam["OverlapParam"].ToString();                return Convert.ToInt32(overlap);            }            catch             {                return 0;            }                               }        public int GetIncASteeltech()        {            //--------the int number  meaning----------            //GeneralProcessMode = 0,            //CaProcessMode = 1,            //MgProcessMode = 2,            //RareEarthMode = 3            //------------------            Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);            int steeltech = Convert.ToInt32(((Dictionary<string, object>)sampleMembers["MsrParams"])["SteelTech"]);            return steeltech;        }        public string GetResultDBPath()        {            string ResultDbPath = FilePath + "\\FIELD_FILES\\Inclusion.db";            return ResultDbPath;        }        public string FileId        {            get;            set;        }        /// <summary>        /// FileName        /// </summary>               public string anotherFileName        {            get;            set;        }        /// <summary>        /// FileName        /// </summary>               public string FileName_real        {            get;            set;        }        /// <summary>        /// FilePath        /// </summary>               public string FilePath        {            get;            set;        }        /// <summary>        /// ResuitInfo        /// </summary>               public Dictionary<string, object> ResultInfo        {            get;            set;        }        public void SetResultInfoDic(Dictionary<string, object> info)        {            ResultInfo = info;        }        public List<Field> List_OTSField { get => list_OTSField; set => list_OTSField = value; }        //public OTS_SysType_ID GetResultSystype()        //{        //    var Systype = ((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)(Dictionary<string, object>)this.ResultInfo["Sample"])["Members"])["MsrParams"])["SysType"];        //    return (OTS_SysType_ID)(Convert.ToInt32( Systype.ToString().Split(':')[0]));        //}    }}
 |