COTSXRayParam.cs 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  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 int DEFAULE_XRAY_QUANTIFY_MINSIZE = 50;
  27. const int DEFAULE_FASTXRAYTIME = 100;
  28. private OTS_X_RAY_SCAN_MODE m_nScanMode;
  29. //private OTS_IMAGE_SCANSPEED_OPTIONS m_nSearchSpeed;
  30. private int m_nXRaySearchCount;
  31. private OTS_IMAGE_SCANSPEED_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 int m_nUsingXray;
  38. void Init()
  39. {
  40. m_nScanMode = DEFAULE_XRAY_SCAN_MODE;
  41. //m_nSearchSpeed = DEFAULE_SEARCH_XRAY_SPEED;
  42. //m_nXRaySearchCount = DEFAULE_XRAY_LOW_COUNT;
  43. m_nAnalySpeed = DEFAULE_ANALYSIS_XRAY_SPEED;
  44. m_nAnalyExpCount = DEFAULE_XRAY_EXP_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. }
  50. public COTSXRayParam()
  51. {
  52. Init();
  53. }
  54. // duplication
  55. void Duplicate(COTSXRayParam a_oSource)
  56. {
  57. // copy data over
  58. m_nScanMode = a_oSource.m_nScanMode;
  59. //m_nSearchSpeed = a_oSource.m_nSearchSpeed;
  60. //m_nXRaySearchCount = a_oSource.m_nXRaySearchCount;
  61. m_nAnalySpeed = a_oSource.m_nAnalySpeed;
  62. m_nAnalyExpCount = a_oSource.m_nAnalyExpCount;
  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>0?0:1;
  68. }
  69. // copy constructor
  70. public COTSXRayParam(COTSXRayParam a_oSource)
  71. { // copy data over
  72. Duplicate(a_oSource);
  73. }
  74. // ==operator
  75. public bool Equals(COTSXRayParam a_oSource)
  76. {
  77. // return test result
  78. return m_nScanMode == a_oSource.m_nScanMode &&
  79. //m_nSearchSpeed == a_oSource.m_nSearchSpeed &&
  80. //m_nXRaySearchCount == a_oSource.m_nXRaySearchCount &&
  81. m_nAnalySpeed == a_oSource.m_nAnalySpeed &&
  82. m_nAnalyExpCount == a_oSource.m_nAnalyExpCount &&
  83. m_nMidSearchAQTime == a_oSource.m_nMidSearchAQTime &&
  84. m_nMidAnalyAQTime == a_oSource.m_nMidAnalyAQTime &&
  85. m_nQutantifyMinSize == a_oSource.m_nQutantifyMinSize &&
  86. m_nFastXrayTime == a_oSource.m_nFastXrayTime &&
  87. m_nUsingXray == a_oSource.m_nUsingXray;
  88. }
  89. public OTS_X_RAY_SCAN_MODE GetScanMode() { return m_nScanMode; }
  90. public void SetScanMode(OTS_X_RAY_SCAN_MODE a_nVal) { m_nScanMode = a_nVal; }
  91. //public OTS_IMAGE_SCANSPEED_OPTIONS GetSearchSpeed() { return m_nSearchSpeed; }
  92. //public void SetSearchSpeed(OTS_IMAGE_SCANSPEED_OPTIONS a_nVal) { m_nSearchSpeed = a_nVal; }
  93. // low count
  94. //public int GetXRaySearchCount() { return m_nXRaySearchCount; }
  95. //public void SetXRaySearchCount(int a_nVal) { m_nXRaySearchCount = a_nVal; }
  96. public OTS_IMAGE_SCANSPEED_OPTIONS GetAnalySpeed() { return m_nAnalySpeed; }
  97. public void SetAnalySpeed(OTS_IMAGE_SCANSPEED_OPTIONS a_nVal) { m_nAnalySpeed = a_nVal; }
  98. public int GetAnalyExpCount() { return m_nAnalyExpCount; }
  99. public void SetAnalyExpCount(int a_nVal) { m_nAnalyExpCount = a_nVal; }
  100. public int GetMidSearchAQTime() { return m_nMidSearchAQTime; }
  101. public void SetMidSearchAQTime(int a_nMidSearchAQTime) { m_nMidSearchAQTime = a_nMidSearchAQTime; }
  102. public int GetLowSearchAQTime() { return m_nMidSearchAQTime * 3 / 4; }
  103. public int GetHighSearchAQTime() { return m_nMidSearchAQTime * 5 / 4; }
  104. public int GetMidAnalyAQTime() { return m_nMidAnalyAQTime; }
  105. public void SetMidAnalyAQTime(int a_nMidAnalyAQTime) { m_nMidAnalyAQTime = a_nMidAnalyAQTime; }
  106. public int GetLowAnalyAQTime() { return (int)m_nMidAnalyAQTime * 3 / 4; }
  107. public int GetHighAnalyAQTime() { return (int)m_nMidAnalyAQTime * 5 / 4; }
  108. public int GetQuantifyMinSize() { return m_nQutantifyMinSize; }
  109. public void SetQuantifyMinSize(int a_nQuantifyMinSize)
  110. {
  111. m_nQutantifyMinSize = a_nQuantifyMinSize;
  112. }
  113. public int GetFastXrayTime() { return m_nFastXrayTime; }
  114. public void SetFastXrayTime(int a_nFastXrayTime)
  115. {
  116. m_nFastXrayTime = a_nFastXrayTime;
  117. }
  118. public void SetLowSearchAQTime(int a_nLowSearchAQTime)
  119. {
  120. m_nMidSearchAQTime = (int)(a_nLowSearchAQTime * 4 / 3 + 0.5);
  121. }
  122. public void SetHightSearchAQTime(int a_nHighSearchAQTime)
  123. {
  124. m_nMidSearchAQTime = (int)(a_nHighSearchAQTime * 4 / 5 + 0.5);
  125. }
  126. public void SetLowAnalyAQTime(int a_nLowAnalyAQTime)
  127. {
  128. m_nMidSearchAQTime = (int)(a_nLowAnalyAQTime * 4 / 3 + 0.5);
  129. }
  130. public void SetHighAnalyAQTime(int a_nHighAnalyAQTime)
  131. {
  132. m_nMidSearchAQTime = (int)(a_nHighAnalyAQTime * 4 / 5 + 0.5);
  133. }
  134. public int GetUsingXray() { return m_nUsingXray; }
  135. public void SetUsingXray(int a_nUsingXray)
  136. {
  137. m_nUsingXray = a_nUsingXray;
  138. }
  139. public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
  140. {
  141. xString xnScanMode = new xString();
  142. //xInt xnSearchSpeed = new xInt();
  143. //xInt xnXRaySearchCount = new xInt();
  144. //xInt xnAnalySpeed = new xInt();
  145. xInt xnAnalyExpCount = new xInt();
  146. //xInt xnMidSearchAQTime = new xInt();
  147. xInt xnMidAnalyAQTime = new xInt();
  148. xInt xnUsingXray = new xInt();
  149. Slo slo = new Slo();
  150. slo.Register("ScanMode", xnScanMode);
  151. //slo.Register("SearchSpeed", xnSearchSpeed);
  152. //slo.Register("XRaySearchCount", xnXRaySearchCount);
  153. //slo.Register("AnalySpeed", xnAnalySpeed);
  154. slo.Register("AnalyExpCount", xnAnalyExpCount);
  155. //slo.Register("MidSearchAQTime", xnMidSearchAQTime);
  156. slo.Register("MidAnalyAQTime", xnMidAnalyAQTime);
  157. slo.Register("UsingXray", xnUsingXray);
  158. if (isStoring)
  159. {
  160. xnScanMode.AssignValue(m_nScanMode.ToString());
  161. //xnSearchSpeed.AssignValue((int)m_nSearchSpeed);
  162. //xnXRaySearchCount.AssignValue(m_nXRaySearchCount);
  163. //xnMidAnalyAQTime.AssignValue((int)m_nAnalySpeed);
  164. xnAnalyExpCount.AssignValue(m_nAnalyExpCount);
  165. //xnMidSearchAQTime.AssignValue(m_nMidSearchAQTime);
  166. xnMidAnalyAQTime.AssignValue(m_nMidAnalyAQTime);
  167. xnUsingXray.AssignValue(m_nUsingXray);
  168. slo.Serialize(true, classDoc, rootNode);
  169. }
  170. else
  171. {
  172. slo.Serialize(false, classDoc, rootNode);
  173. m_nScanMode = (OTS_X_RAY_SCAN_MODE)Enum.Parse(typeof(OTS_X_RAY_SCAN_MODE),xnScanMode.value());
  174. //m_nSearchSpeed = (OTS_IMAGE_SCANSPEED_OPTIONS)xnSearchSpeed.value();
  175. //m_nAnalySpeed = (OTS_IMAGE_SCANSPEED_OPTIONS)xnAnalySpeed.value();
  176. //m_nXRaySearchCount = xnXRaySearchCount.value();
  177. m_nAnalyExpCount = xnAnalyExpCount.value();
  178. //m_nMidSearchAQTime = xnMidSearchAQTime.value();
  179. m_nMidAnalyAQTime = xnMidAnalyAQTime.value();
  180. m_nUsingXray = xnUsingXray.value();
  181. }
  182. }
  183. }
  184. }