ResultFile.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  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 int GetIncASteeltech()
  161. {
  162. //--------the int number meaning----------
  163. //GeneralProcessMode = 0,
  164. //CaProcessMode = 1,
  165. //MgProcessMode = 2,
  166. //RareEarthMode = 3
  167. //------------------
  168. Dictionary<string, object> sampleMembers = ((Dictionary<string, object>)((Dictionary<string, object>)ResultInfo["Sample"])["Members"]);
  169. int steeltech = Convert.ToInt32(((Dictionary<string, object>)sampleMembers["MsrParams"])["SteelTech"]);
  170. return steeltech;
  171. }
  172. public string GetResultDBPath()
  173. {
  174. string ResultDbPath = FilePath + "\\FIELD_FILES\\Inclusion.db";
  175. return ResultDbPath;
  176. }
  177. public string FileId
  178. {
  179. get;
  180. set;
  181. }
  182. /// <summary>
  183. /// FileName
  184. /// </summary>
  185. public string anotherFileName
  186. {
  187. get;
  188. set;
  189. }
  190. /// <summary>
  191. /// FileName
  192. /// </summary>
  193. public string FileName_real
  194. {
  195. get;
  196. set;
  197. }
  198. /// <summary>
  199. /// FilePath
  200. /// </summary>
  201. public string FilePath
  202. {
  203. get;
  204. set;
  205. }
  206. /// <summary>
  207. /// ResuitInfo
  208. /// </summary>
  209. private Dictionary<string, object> ResultInfo
  210. {
  211. get;
  212. set;
  213. }
  214. public void SetResultInfoDic(Dictionary<string, object> info)
  215. {
  216. ResultInfo = info;
  217. }
  218. public List<Field> List_OTSField { get => list_OTSField; set => list_OTSField = value; }
  219. //public OTS_SysType_ID GetResultSystype()
  220. //{
  221. // var Systype = ((Dictionary<string, object>)((Dictionary<string, object>)((Dictionary<string, object>)(Dictionary<string, object>)this.ResultInfo["Sample"])["Members"])["MsrParams"])["SysType"];
  222. // return (OTS_SysType_ID)(Convert.ToInt32( Systype.ToString().Split(':')[0]));
  223. //}
  224. }
  225. }