123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
- using System;
- using System.Collections.Generic;
- using OTSCommon.DBOperate.Model;
- using static OTSDataType.otsdataconst;
- namespace OTSIncAReportApp.OTSRstMgrFunction
- {
- [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"];
-
-
- string ImageResolution = imageScanParam["ImageResolution"].ToString();
- int width = int.Parse(ImageResolution.Split('_')[1]);
- return width;
-
- }
- 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"];
-
- 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 double GetTotalArea()
- {
- try
- {
- double dTotalArea = -1;
- Dictionary<string, object> valuePairs=(Dictionary<string, object>)ResultInfo["Sample"];
- if (valuePairs.ContainsKey("TotalArea"))
- {
- dTotalArea = Convert.ToDouble(valuePairs["TotalArea"]) /**1000000*/ ;
- return dTotalArea;
- }
- else
- {
- return -1;
- }
- }
- catch
- {
- return -1;
- }
- }
- 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]));
- //}
- }
- }
|