COTSXRayParam.cs 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Xml;
  7. using static OTSDataType.otsdataconst;
  8. namespace OTSDataType
  9. {
  10. public class COTSXRayParam : ISlo
  11. {
  12. // x-ray scan mode
  13. const OTS_X_RAY_SCAN_MODE DEFAULE_XRAY_SCAN_MODE = OTS_X_RAY_SCAN_MODE.PointMode;
  14. // search x-ray low counts cut off
  15. const int DEFAULE_XRAY_LOW_COUNT = 800;
  16. // search x-ray speed
  17. //const OTS_IMAGE_SCANSPEED_OPTIONS DEFAULE_SEARCH_XRAY_SPEED = OTS_IMAGE_SCANSPEED_OPTIONS.meddium;
  18. // analysis x-ray speed
  19. //const OTS_IMAGE_SCANSPEED_OPTIONS DEFAULE_ANALYSIS_XRAY_SPEED = OTS_IMAGE_SCANSPEED_OPTIONS.meddium;
  20. // x-ray expect counts
  21. //const int DEFAULE_XRAY_EXP_COUNT = 4500;
  22. // x-ray speed search
  23. //const int DEFAULE_XRAY_SEARCH_MID_TIME = 20;
  24. // x-ray speed analysis
  25. const int DEFAULE_XRAY_ANALY_MID_TIME = 1000;
  26. //const double DEFAULE_XRAY_QUANTIFY_MINSIZE = 50;
  27. //const int DEFAULE_FASTXRAYTIME = 100;
  28. const int Default_Xray_Limit = 50;
  29. private OTS_X_RAY_SCAN_MODE m_nScanMode;
  30. private int m_nAnalyLowestCount;
  31. //private int m_nMidSearchAQTime;
  32. private int m_nMidAnalyAQTime;
  33. //private double m_nQutantifyMinSize;
  34. //private int m_nFastXrayTime;
  35. private bool m_nUsingXray;
  36. private bool m_UseFilter;
  37. bool m_ZeroElementProcess;
  38. private int m_XrayLimit;
  39. //private double m_xrayStep;
  40. //public double XrayStep { get => m_xrayStep; set => m_xrayStep = value; }
  41. void Init()
  42. {
  43. m_nScanMode = DEFAULE_XRAY_SCAN_MODE;
  44. m_nAnalyLowestCount = DEFAULE_XRAY_LOW_COUNT;
  45. //m_nMidSearchAQTime = DEFAULE_XRAY_SEARCH_MID_TIME;
  46. m_nMidAnalyAQTime = DEFAULE_XRAY_ANALY_MID_TIME;
  47. //m_nQutantifyMinSize = DEFAULE_XRAY_QUANTIFY_MINSIZE;
  48. //m_nFastXrayTime = DEFAULE_FASTXRAYTIME;
  49. m_XrayLimit = Default_Xray_Limit;
  50. //m_xrayStep = 0;
  51. }
  52. public COTSXRayParam()
  53. {
  54. Init();
  55. }
  56. // duplication
  57. void Duplicate(COTSXRayParam a_oSource)
  58. {
  59. // copy data over
  60. m_nScanMode = a_oSource.m_nScanMode;
  61. //m_nAnalySpeed = a_oSource.m_nAnalySpeed;
  62. m_nAnalyLowestCount = a_oSource.m_nAnalyLowestCount;
  63. //m_nMidSearchAQTime = a_oSource.m_nMidSearchAQTime;
  64. m_nMidAnalyAQTime = a_oSource.m_nMidAnalyAQTime;
  65. //m_nQutantifyMinSize = a_oSource.m_nQutantifyMinSize;
  66. //m_nFastXrayTime = a_oSource.m_nFastXrayTime;
  67. m_nUsingXray = a_oSource.m_nUsingXray;
  68. m_UseFilter = a_oSource.m_UseFilter;
  69. m_ZeroElementProcess = a_oSource.m_ZeroElementProcess;
  70. m_XrayLimit = a_oSource.m_XrayLimit;
  71. //m_xrayStep = a_oSource.m_xrayStep;
  72. }
  73. // copy constructor
  74. public COTSXRayParam(COTSXRayParam a_oSource)
  75. { // copy data over
  76. Duplicate(a_oSource);
  77. }
  78. // ==operator
  79. public bool Equals(COTSXRayParam a_oSource)
  80. {
  81. // return test result
  82. return m_nScanMode == a_oSource.m_nScanMode &&
  83. //m_nAnalySpeed == a_oSource.m_nAnalySpeed &&
  84. m_nAnalyLowestCount == a_oSource.m_nAnalyLowestCount &&
  85. //m_nMidSearchAQTime == a_oSource.m_nMidSearchAQTime &&
  86. m_nMidAnalyAQTime == a_oSource.m_nMidAnalyAQTime &&
  87. //m_nQutantifyMinSize == a_oSource.m_nQutantifyMinSize &&
  88. //m_nFastXrayTime == a_oSource.m_nFastXrayTime &&
  89. m_nUsingXray == a_oSource.m_nUsingXray &&
  90. m_UseFilter == a_oSource.m_UseFilter&&
  91. m_ZeroElementProcess == a_oSource.m_ZeroElementProcess;
  92. }
  93. public OTS_X_RAY_SCAN_MODE GetScanMode() { return m_nScanMode; }
  94. public void SetScanMode(OTS_X_RAY_SCAN_MODE a_nVal) { m_nScanMode = a_nVal; }
  95. public int GetAnalyExpCount() { return m_nAnalyLowestCount; }
  96. public void SetAnalyExpCount(int a_nVal) { m_nAnalyLowestCount = a_nVal; }
  97. //public int GetMidSearchAQTime() { return m_nMidSearchAQTime; }
  98. //public void SetMidSearchAQTime(int a_nMidSearchAQTime) { m_nMidSearchAQTime = a_nMidSearchAQTime; }
  99. public int GetMidAnalyAQTime() { return m_nMidAnalyAQTime; }
  100. public void SetMidAnalyAQTime(int a_nMidAnalyAQTime) { m_nMidAnalyAQTime = a_nMidAnalyAQTime; }
  101. //public double GetFeatureModeMinSize() { return m_nQutantifyMinSize; }
  102. //public void SetQuantifyMinSize(double a_nQuantifyMinSize)
  103. //{
  104. // m_nQutantifyMinSize = a_nQuantifyMinSize;
  105. //}
  106. //public int GetFastXrayTime() { return m_nFastXrayTime; }
  107. //public void SetFastXrayTime(int a_nFastXrayTime)
  108. //{
  109. // m_nFastXrayTime = a_nFastXrayTime;
  110. //}
  111. public int GetXrayLimit() { return m_XrayLimit; }
  112. public void SetXrayLimit(int a_xrayLimit)
  113. {
  114. m_XrayLimit = a_xrayLimit;
  115. }
  116. public bool GetUsingXray() { return m_nUsingXray; }
  117. public void SetUsingXray(bool a_nUsingXray)
  118. {
  119. m_nUsingXray = a_nUsingXray;
  120. }
  121. public bool GetUseFilter() { return m_UseFilter; }
  122. public void SetUseFilter(bool a_UseFilter)
  123. {
  124. m_UseFilter = a_UseFilter;
  125. }
  126. public bool GetZeroelementprocess() { return m_ZeroElementProcess; }
  127. public void SetZeroelementprocess(bool a_Zeroelementprocess)
  128. {
  129. m_ZeroElementProcess = a_Zeroelementprocess;
  130. }
  131. public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
  132. {
  133. xString xnScanMode = new xString();
  134. xInt xnAnalyExpCount = new xInt();
  135. xInt xnMidAnalyAQTime = new xInt();
  136. xInt xSmallPartAQTime = new xInt();
  137. xDouble xQuantifyMinSize = new xDouble();
  138. xBool xnUsingXray = new xBool();
  139. xBool xnUseFilter = new xBool();
  140. xInt xXrayLimit = new xInt();
  141. //xDouble xXrayStep = new xDouble();
  142. xBool xZeroElementProcess = new xBool();
  143. Slo slo = new Slo();
  144. slo.Register("ScanMode", xnScanMode);
  145. slo.Register("AnalyExpCount", xnAnalyExpCount);
  146. slo.Register("MidAnalyAQTime", xnMidAnalyAQTime);
  147. slo.Register("SmallPartAQTime", xSmallPartAQTime);
  148. slo.Register("QuantifyMinSize", xQuantifyMinSize);
  149. slo.Register("UsingXray", xnUsingXray);
  150. slo.Register("UseFilter", xnUseFilter);
  151. slo.Register("XrayLimit", xXrayLimit);
  152. //slo.Register("XrayStep", xXrayStep);
  153. slo.Register("ZeroElementProcess", xZeroElementProcess);
  154. if (isStoring)
  155. {
  156. xnScanMode.AssignValue((int)m_nScanMode+":"+m_nScanMode.ToString());
  157. xnAnalyExpCount.AssignValue(m_nAnalyLowestCount);
  158. xnMidAnalyAQTime.AssignValue(m_nMidAnalyAQTime);
  159. //xSmallPartAQTime.AssignValue(m_nFastXrayTime);
  160. //xQuantifyMinSize.AssignValue(m_nQutantifyMinSize);
  161. xnUsingXray.AssignValue(m_nUsingXray);
  162. xnUseFilter.AssignValue(m_UseFilter);
  163. xXrayLimit.AssignValue(m_XrayLimit);
  164. xZeroElementProcess.AssignValue(m_ZeroElementProcess);
  165. //xXrayStep.AssignValue(m_xrayStep);
  166. slo.Serialize(true, classDoc, rootNode);
  167. }
  168. else
  169. {
  170. slo.Serialize(false, classDoc, rootNode);
  171. m_nScanMode = (OTS_X_RAY_SCAN_MODE)Convert.ToInt32( xnScanMode.value().Split(':')[0]);
  172. m_nAnalyLowestCount = xnAnalyExpCount.value();
  173. m_nMidAnalyAQTime = xnMidAnalyAQTime.value();
  174. //m_nFastXrayTime = xSmallPartAQTime.value();
  175. //m_nQutantifyMinSize = xQuantifyMinSize.value();
  176. m_nUsingXray = xnUsingXray.value();
  177. m_UseFilter = xnUseFilter.value();
  178. m_XrayLimit = xXrayLimit.value();
  179. m_ZeroElementProcess = xZeroElementProcess.value();
  180. //m_xrayStep = xXrayStep.value();
  181. }
  182. }
  183. }
  184. }