COTSXRayParam.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  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_THREE_TIES_OPTIONS DEFAULE_SEARCH_XRAY_SPEED = OTS_THREE_TIES_OPTIONS.meddium;
  18. // analysis x-ray speed
  19. const OTS_THREE_TIES_OPTIONS DEFAULE_ANALYSIS_XRAY_SPEED = OTS_THREE_TIES_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 int DEFAULE_XRAY_QUANTIFY_MINSIZE = 50;
  27. const int DEFAULE_FASTXRAYTIME = 100;
  28. private OTS_X_RAY_SCAN_MODE m_nScanMode;
  29. private OTS_THREE_TIES_OPTIONS m_nSearchSpeed;
  30. private int m_nXRaySearchCount;
  31. private OTS_THREE_TIES_OPTIONS m_nAnalySpeed;
  32. private int m_nAnalyExpCount;
  33. private int m_nMidSearchAQTime;
  34. private int m_nMidAnalyAQTime;
  35. private int m_nQutantifyMinSize;
  36. private int m_nFastXrayTime;
  37. private bool m_nShowScanMode = true;
  38. private bool m_nShowSpeed = true;
  39. private bool m_nShowExpCount = true;
  40. private int m_nUsingXray;
  41. void Init()
  42. {
  43. m_nScanMode = DEFAULE_XRAY_SCAN_MODE;
  44. m_nSearchSpeed = DEFAULE_SEARCH_XRAY_SPEED;
  45. m_nXRaySearchCount = DEFAULE_XRAY_LOW_COUNT;
  46. m_nAnalySpeed = DEFAULE_ANALYSIS_XRAY_SPEED;
  47. m_nAnalyExpCount = DEFAULE_XRAY_EXP_COUNT;
  48. m_nMidSearchAQTime = DEFAULE_XRAY_SEARCH_MID_TIME;
  49. m_nMidAnalyAQTime = DEFAULE_XRAY_ANALY_MID_TIME;
  50. m_nQutantifyMinSize = DEFAULE_XRAY_QUANTIFY_MINSIZE;
  51. m_nFastXrayTime = DEFAULE_FASTXRAYTIME;
  52. }
  53. public COTSXRayParam()
  54. {
  55. Init();
  56. }
  57. // duplication
  58. void Duplicate(COTSXRayParam a_oSource)
  59. {
  60. // copy data over
  61. m_nScanMode = a_oSource.m_nScanMode;
  62. m_nSearchSpeed = a_oSource.m_nSearchSpeed;
  63. m_nXRaySearchCount = a_oSource.m_nXRaySearchCount;
  64. m_nAnalySpeed = a_oSource.m_nAnalySpeed;
  65. m_nAnalyExpCount = a_oSource.m_nAnalyExpCount;
  66. m_nMidSearchAQTime = a_oSource.m_nMidSearchAQTime;
  67. m_nMidAnalyAQTime = a_oSource.m_nMidAnalyAQTime;
  68. m_nQutantifyMinSize = a_oSource.m_nQutantifyMinSize;
  69. m_nFastXrayTime = a_oSource.m_nFastXrayTime;
  70. m_nShowScanMode = a_oSource.m_nShowScanMode;
  71. m_nShowSpeed = a_oSource.m_nShowSpeed;
  72. m_nShowExpCount = a_oSource.m_nShowExpCount;
  73. m_nUsingXray = a_oSource.m_nUsingXray>0?0:1;
  74. }
  75. // copy constructor
  76. public COTSXRayParam(COTSXRayParam a_oSource)
  77. { // copy data over
  78. Duplicate(a_oSource);
  79. }
  80. // ==operator
  81. public bool Equals(COTSXRayParam a_oSource)
  82. {
  83. // return test result
  84. return m_nScanMode == a_oSource.m_nScanMode &&
  85. m_nSearchSpeed == a_oSource.m_nSearchSpeed &&
  86. m_nXRaySearchCount == a_oSource.m_nXRaySearchCount &&
  87. m_nAnalySpeed == a_oSource.m_nAnalySpeed &&
  88. m_nAnalyExpCount == a_oSource.m_nAnalyExpCount &&
  89. m_nMidSearchAQTime == a_oSource.m_nMidSearchAQTime &&
  90. m_nMidAnalyAQTime == a_oSource.m_nMidAnalyAQTime &&
  91. m_nQutantifyMinSize == a_oSource.m_nQutantifyMinSize &&
  92. m_nFastXrayTime == a_oSource.m_nFastXrayTime &&
  93. m_nShowScanMode == a_oSource.m_nShowScanMode &&
  94. m_nShowSpeed == a_oSource.m_nShowSpeed &&
  95. m_nShowExpCount == a_oSource.m_nShowExpCount &&
  96. m_nUsingXray == a_oSource.m_nUsingXray;
  97. }
  98. public OTS_X_RAY_SCAN_MODE GetScanMode() { return m_nScanMode; }
  99. public void SetScanMode(OTS_X_RAY_SCAN_MODE a_nVal) { m_nScanMode = a_nVal; }
  100. public OTS_THREE_TIES_OPTIONS GetSearchSpeed() { return m_nSearchSpeed; }
  101. public void SetSearchSpeed(OTS_THREE_TIES_OPTIONS a_nVal) { m_nSearchSpeed = a_nVal; }
  102. // low count
  103. public int GetXRaySearchCount() { return m_nXRaySearchCount; }
  104. public void SetXRaySearchCount(int a_nVal) { m_nXRaySearchCount = a_nVal; }
  105. public OTS_THREE_TIES_OPTIONS GetAnalySpeed() { return m_nAnalySpeed; }
  106. public void SetAnalySpeed(OTS_THREE_TIES_OPTIONS a_nVal) { m_nAnalySpeed = a_nVal; }
  107. public int GetAnalyExpCount() { return m_nAnalyExpCount; }
  108. public void SetAnalyExpCount(int a_nVal) { m_nAnalyExpCount = a_nVal; }
  109. public int GetMidSearchAQTime() { return m_nMidSearchAQTime; }
  110. public void SetMidSearchAQTime(int a_nMidSearchAQTime) { m_nMidSearchAQTime = a_nMidSearchAQTime; }
  111. public int GetLowSearchAQTime() { return m_nMidSearchAQTime * 3 / 4; }
  112. public int GetHighSearchAQTime() { return m_nMidSearchAQTime * 5 / 4; }
  113. public int GetMidAnalyAQTime() { return m_nMidAnalyAQTime; }
  114. public void SetMidAnalyAQTime(int a_nMidAnalyAQTime) { m_nMidAnalyAQTime = a_nMidAnalyAQTime; }
  115. public int GetLowAnalyAQTime() { return (int)m_nMidAnalyAQTime * 3 / 4; }
  116. public int GetHighAnalyAQTime() { return (int)m_nMidAnalyAQTime * 5 / 4; }
  117. public int GetQuantifyMinSize() { return m_nQutantifyMinSize; }
  118. public void SetQuantifyMinSize(int a_nQuantifyMinSize)
  119. {
  120. m_nQutantifyMinSize = a_nQuantifyMinSize;
  121. }
  122. public int GetFastXrayTime() { return m_nFastXrayTime; }
  123. public void SetFastXrayTime(int a_nFastXrayTime)
  124. {
  125. m_nFastXrayTime = a_nFastXrayTime;
  126. }
  127. public void SetLowSearchAQTime(int a_nLowSearchAQTime)
  128. {
  129. m_nMidSearchAQTime = (int)(a_nLowSearchAQTime * 4 / 3 + 0.5);
  130. }
  131. public void SetHightSearchAQTime(int a_nHighSearchAQTime)
  132. {
  133. m_nMidSearchAQTime = (int)(a_nHighSearchAQTime * 4 / 5 + 0.5);
  134. }
  135. public void SetLowAnalyAQTime(int a_nLowAnalyAQTime)
  136. {
  137. m_nMidSearchAQTime = (int)(a_nLowAnalyAQTime * 4 / 3 + 0.5);
  138. }
  139. public void SetHighAnalyAQTime(int a_nHighAnalyAQTime)
  140. {
  141. m_nMidSearchAQTime = (int)(a_nHighAnalyAQTime * 4 / 5 + 0.5);
  142. }
  143. public bool GetShowScanMode() { return m_nShowScanMode; }
  144. public void SetShowScanMode(bool a_nShowScanMode)
  145. {
  146. m_nShowScanMode = a_nShowScanMode;
  147. }
  148. public bool GetShowSpeed() { return m_nShowSpeed; }
  149. public void SetShowSpeed(bool a_nShowSpeed)
  150. {
  151. m_nShowSpeed = a_nShowSpeed;
  152. }
  153. public bool GetShowExpCount() { return m_nShowExpCount; }
  154. public void SetShowExpCount(bool a_nShowExpCount)
  155. {
  156. m_nShowExpCount = a_nShowExpCount;
  157. }
  158. public int GetUsingXray() { return m_nUsingXray; }
  159. public void SetUsingXray(int a_nUsingXray)
  160. {
  161. m_nUsingXray = a_nUsingXray;
  162. }
  163. public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
  164. {
  165. xInt xnScanMode = new xInt();
  166. xInt xnSearchSpeed = new xInt();
  167. xInt xnXRaySearchCount = new xInt();
  168. xInt xnAnalySpeed = new xInt();
  169. xInt xnAnalyExpCount = new xInt();
  170. xInt xnMidSearchAQTime = new xInt();
  171. xInt xnMidAnalyAQTime = new xInt();
  172. xInt xnUsingXray = new xInt();
  173. xBool xbShowScanMode = new xBool();
  174. xBool xbShowSpeed = new xBool();
  175. xBool xbShowExpCount = new xBool();
  176. Slo slo = new Slo();
  177. slo.Register("ScanMode", xnScanMode);
  178. slo.Register("SearchSpeed", xnSearchSpeed);
  179. slo.Register("XRaySearchCount", xnXRaySearchCount);
  180. slo.Register("AnalySpeed", xnAnalySpeed);
  181. slo.Register("AnalyExpCount", xnAnalyExpCount);
  182. slo.Register("MidSearchAQTime", xnMidSearchAQTime);
  183. slo.Register("MidAnalyAQTime", xnMidAnalyAQTime);
  184. slo.Register("ShowScanMode", xbShowScanMode);
  185. slo.Register("ShowSpeed", xbShowSpeed);
  186. slo.Register("ShowExpCount", xbShowExpCount);
  187. slo.Register("UsingXray", xnUsingXray);
  188. if (isStoring)
  189. {
  190. xnScanMode.AssignValue((int)m_nScanMode);
  191. xnSearchSpeed.AssignValue((int)m_nSearchSpeed);
  192. xnXRaySearchCount.AssignValue(m_nXRaySearchCount);
  193. xnMidAnalyAQTime.AssignValue((int)m_nAnalySpeed);
  194. xnAnalyExpCount.AssignValue(m_nAnalyExpCount);
  195. xnMidSearchAQTime.AssignValue(m_nMidSearchAQTime);
  196. xnMidAnalyAQTime.AssignValue(m_nMidAnalyAQTime);
  197. xbShowScanMode.AssignValue(m_nShowScanMode);
  198. xbShowSpeed.AssignValue(m_nShowSpeed);
  199. xbShowExpCount.AssignValue(m_nShowExpCount);
  200. xnUsingXray.AssignValue(m_nUsingXray);
  201. slo.Serialize(true, classDoc, rootNode);
  202. }
  203. else
  204. {
  205. slo.Serialize(false, classDoc, rootNode);
  206. m_nScanMode = (OTS_X_RAY_SCAN_MODE)xnScanMode.value();
  207. m_nSearchSpeed = (OTS_THREE_TIES_OPTIONS)xnSearchSpeed.value();
  208. m_nAnalySpeed = (OTS_THREE_TIES_OPTIONS)xnAnalySpeed.value();
  209. m_nXRaySearchCount = xnXRaySearchCount.value();
  210. m_nAnalyExpCount = xnAnalyExpCount.value();
  211. m_nMidSearchAQTime = xnMidSearchAQTime.value();
  212. m_nMidAnalyAQTime = xnMidAnalyAQTime.value();
  213. m_nShowScanMode = xbShowScanMode.value();
  214. m_nShowSpeed = xbShowSpeed.value();
  215. m_nShowExpCount = xbShowExpCount.value();
  216. m_nUsingXray = xnUsingXray.value();
  217. }
  218. }
  219. }
  220. }