ResultFile.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. using System;
  2. using System.Collections.Generic;
  3. namespace OTSCommon.Model
  4. {
  5. /// <summary>
  6. /// 样品台X轴方向
  7. /// </summary>
  8. public enum OTS_X_AXIS_DIRECTION
  9. {
  10. LEFT_TOWARD = 0,
  11. RIGHT_TOWARD = 1
  12. }
  13. /// <summary>
  14. /// 样品台Y轴方向
  15. /// </summary>
  16. public enum OTS_Y_AXIS_DIRECTION
  17. {
  18. UP_TOWARD = 0,
  19. DOWN_TOWARD = 1
  20. }
  21. [Serializable]
  22. public class ResultFile
  23. {
  24. /// <summary>
  25. /// FileId
  26. /// </summary>
  27. /// //全局对象,为了能够快速的获取到xray数据,而做为一个临时变量进行保存,使用前应该判断是否为空
  28. private List<Field> list_OTSField = null;
  29. public int GetTotalFields()
  30. {
  31. int all_FiledCount = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"])["SEMDataMsr"])["TotalFields"]);
  32. return all_FiledCount;
  33. }
  34. public float GetScanFieldSizeX()
  35. {
  36. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  37. Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];
  38. //Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  39. float ScanFieldSizeX = float.Parse(SEMDataMsr["ScanFieldSize"].ToString());
  40. return ScanFieldSizeX;
  41. }
  42. public float GetScanFieldSizeX100()
  43. {
  44. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  45. Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];
  46. //Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  47. float ScanFieldSizeX100 = float.Parse(SEMDataMsr["ScanFieldSize100"].ToString());
  48. return ScanFieldSizeX100;
  49. }
  50. public float GetScanFieldSizeY()
  51. {
  52. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  53. Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];
  54. float ScanFieldSizeX = float.Parse(SEMDataMsr["ScanFieldSize"].ToString());
  55. Dictionary<string, object> imageScanParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageScanParam"];
  56. string ImageResolution = imageScanParam["ImageResolution"].ToString();
  57. int width = int.Parse(ImageResolution.Split('_')[1]);
  58. int height = int.Parse(ImageResolution.Split('_')[2]);
  59. float ScanFieldSizeY = ScanFieldSizeX * height / width;
  60. return ScanFieldSizeY;
  61. }
  62. public string GetXAxisDir()
  63. {
  64. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  65. Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  66. string leftOrRight = SEMStageData["xAxisDir"].ToString().Split(':')[1];
  67. return leftOrRight;
  68. }
  69. public OTS_X_AXIS_DIRECTION GetXAxisDirEnum()
  70. {
  71. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  72. Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  73. int leftOrRight = Convert.ToInt32(SEMStageData["xAxisDir"].ToString().Split(':')[0]);
  74. return (OTS_X_AXIS_DIRECTION)leftOrRight;
  75. }
  76. public OTS_Y_AXIS_DIRECTION GetYAxisDirEnum()
  77. {
  78. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  79. Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  80. int dir = Convert.ToInt32(SEMStageData["yAxisDir"].ToString().Split(':')[0]);
  81. return (OTS_Y_AXIS_DIRECTION)dir;
  82. }
  83. public string GetYAxisDir()
  84. {
  85. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  86. Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  87. string downOrUp = SEMStageData["yAxisDir"].ToString().Split(':')[1];
  88. return downOrUp;
  89. }
  90. public int GetXAxisStart()
  91. {
  92. Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  93. int xStart = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["SEMStageData"])["Members"])["XAxis"])["start"]);
  94. int xEnd = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["SEMStageData"])["Members"])["XAxis"])["end"]);
  95. return xStart;
  96. }
  97. public int GetXAxisEnd()
  98. {
  99. Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  100. int xEnd = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["SEMStageData"])["Members"])["XAxis"])["end"]);
  101. return xEnd;
  102. }
  103. public int GetYAxisStart()
  104. {
  105. Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  106. int yStart = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["SEMStageData"])["Members"])["YAxis"])["start"]);
  107. return yStart;
  108. }
  109. public int GetYAxisEnd()
  110. {
  111. Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  112. int yEnd = Convert.ToInt32(((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["SEMStageData"])["Members"])["YAxis"])["end"]);
  113. return yEnd;
  114. }
  115. public string GetImageResolution()
  116. {
  117. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  118. Dictionary<string, object> imageScanParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageScanParam"];
  119. string ImageResolution = imageScanParam["ImageResolution"].ToString();
  120. return ImageResolution;
  121. }
  122. public int GetImageWidth()
  123. {
  124. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  125. Dictionary<string, object> imageScanParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageScanParam"];
  126. Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];
  127. Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  128. string ImageResolution = imageScanParam["ImageResolution"].ToString();
  129. int width = int.Parse(ImageResolution.Split('_')[1]);
  130. return width;
  131. //int height = int.Parse(ImageResolution.Split('_')[2]);
  132. }
  133. public int GetImageHeight()
  134. {
  135. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  136. Dictionary<string, object> imageScanParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageScanParam"];
  137. string ImageResolution = imageScanParam["ImageResolution"].ToString();
  138. int height = int.Parse(ImageResolution.Split('_')[2]);
  139. return height;
  140. }
  141. public float GetPixelSize()
  142. {
  143. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  144. Dictionary<string, object> imageScanParam = (Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)sampleMembers["MsrParams"])["Members"])["ImageScanParam"];
  145. Dictionary<string, object> SEMDataMsr = (Dictionary<string, object>)sampleMembers["SEMDataMsr"];
  146. Dictionary<string, object> SEMStageData = (Dictionary<string, object>)ResultInfo["SEMStageData"];
  147. float ScanFieldSizeX = float.Parse(SEMDataMsr["ScanFieldSize"].ToString());
  148. string ImageResolution = imageScanParam["ImageResolution"].ToString();
  149. int width = int.Parse(ImageResolution.Split('_')[1]);
  150. int height = int.Parse(ImageResolution.Split('_')[2]);
  151. float m_pixelSize = ScanFieldSizeX / width;
  152. return m_pixelSize;
  153. }
  154. public string GetSTDName()
  155. {
  156. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  157. string STDName = ((Dictionary<string, object>)sampleMembers["MsrParams"])["STDName"].ToString();
  158. return STDName;
  159. }
  160. public bool GetUseSysSTD()
  161. {
  162. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  163. string UseSysSTD = ((Dictionary<string, object>)sampleMembers["MsrParams"])["UseSysSTD"].ToString();
  164. return Convert.ToBoolean(UseSysSTD);
  165. }
  166. public int GetIncASteeltech()
  167. {
  168. //--------the int number meaning----------
  169. //GeneralProcessMode = 0,
  170. //CaProcessMode = 1,
  171. //MgProcessMode = 2,
  172. //RareEarthMode = 3
  173. //------------------
  174. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  175. int steeltech = Convert.ToInt32(((Dictionary<string, object>)sampleMembers["MsrParams"])["SteelTech"]);
  176. return steeltech;
  177. }
  178. public string GetResultDBPath()
  179. {
  180. string ResultDbPath = FilePath + "\\FIELD_FILES\\Inclusion.db";
  181. return ResultDbPath;
  182. }
  183. public string FileId
  184. {
  185. get;
  186. set;
  187. }
  188. /// <summary>
  189. /// FileName
  190. /// </summary>
  191. public string anotherFileName
  192. {
  193. get;
  194. set;
  195. }
  196. /// <summary>
  197. /// FileName
  198. /// </summary>
  199. public string FileName_real
  200. {
  201. get;
  202. set;
  203. }
  204. /// <summary>
  205. /// FilePath
  206. /// </summary>
  207. public string FilePath
  208. {
  209. get;
  210. set;
  211. }
  212. /// <summary>
  213. /// ResuitInfo
  214. /// </summary>
  215. private Dictionary<string, object> ResultInfo
  216. {
  217. get;
  218. set;
  219. }
  220. public void SetResultInfoDic(Dictionary<string, object> info)
  221. {
  222. ResultInfo = info;
  223. }
  224. public List<Field> List_OTSField { get => list_OTSField; set => list_OTSField = value; }
  225. //public OTS_SysType_ID GetResultSystype()
  226. //{
  227. // var Systype = ((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)(Dictionary<string, object>)this.ResultInfo["Sample"])["Members"])["MsrParams"])["SysType"];
  228. // return (OTS_SysType_ID)(Convert.ToInt32( Systype.ToString().Split(':')[0]));
  229. //}
  230. }
  231. }