COTSXRayParam.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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_nAnalySpeed;
  30. private int m_nAnalyExpCount;
  31. private int m_nMidSearchAQTime;
  32. private int m_nMidAnalyAQTime;
  33. private int m_nQutantifyMinSize;
  34. private int m_nFastXrayTime;
  35. private bool m_nUsingXray;
  36. void Init()
  37. {
  38. m_nScanMode = DEFAULE_XRAY_SCAN_MODE;
  39. m_nAnalySpeed = DEFAULE_ANALYSIS_XRAY_SPEED;
  40. m_nAnalyExpCount = DEFAULE_XRAY_EXP_COUNT;
  41. m_nMidSearchAQTime = DEFAULE_XRAY_SEARCH_MID_TIME;
  42. m_nMidAnalyAQTime = DEFAULE_XRAY_ANALY_MID_TIME;
  43. m_nQutantifyMinSize = DEFAULE_XRAY_QUANTIFY_MINSIZE;
  44. m_nFastXrayTime = DEFAULE_FASTXRAYTIME;
  45. }
  46. public COTSXRayParam()
  47. {
  48. Init();
  49. }
  50. // duplication
  51. void Duplicate(COTSXRayParam a_oSource)
  52. {
  53. // copy data over
  54. m_nScanMode = a_oSource.m_nScanMode;
  55. m_nAnalySpeed = a_oSource.m_nAnalySpeed;
  56. m_nAnalyExpCount = a_oSource.m_nAnalyExpCount;
  57. m_nMidSearchAQTime = a_oSource.m_nMidSearchAQTime;
  58. m_nMidAnalyAQTime = a_oSource.m_nMidAnalyAQTime;
  59. m_nQutantifyMinSize = a_oSource.m_nQutantifyMinSize;
  60. m_nFastXrayTime = a_oSource.m_nFastXrayTime;
  61. m_nUsingXray = a_oSource.m_nUsingXray;
  62. }
  63. // copy constructor
  64. public COTSXRayParam(COTSXRayParam a_oSource)
  65. { // copy data over
  66. Duplicate(a_oSource);
  67. }
  68. // ==operator
  69. public bool Equals(COTSXRayParam a_oSource)
  70. {
  71. // return test result
  72. return m_nScanMode == a_oSource.m_nScanMode &&
  73. m_nAnalySpeed == a_oSource.m_nAnalySpeed &&
  74. m_nAnalyExpCount == a_oSource.m_nAnalyExpCount &&
  75. m_nMidSearchAQTime == a_oSource.m_nMidSearchAQTime &&
  76. m_nMidAnalyAQTime == a_oSource.m_nMidAnalyAQTime &&
  77. m_nQutantifyMinSize == a_oSource.m_nQutantifyMinSize &&
  78. m_nFastXrayTime == a_oSource.m_nFastXrayTime &&
  79. m_nUsingXray == a_oSource.m_nUsingXray;
  80. }
  81. public OTS_X_RAY_SCAN_MODE GetScanMode() { return m_nScanMode; }
  82. public void SetScanMode(OTS_X_RAY_SCAN_MODE a_nVal) { m_nScanMode = a_nVal; }
  83. public OTS_IMAGE_SCANSPEED_OPTIONS GetAnalySpeed() { return m_nAnalySpeed; }
  84. public void SetAnalySpeed(OTS_IMAGE_SCANSPEED_OPTIONS a_nVal) { m_nAnalySpeed = a_nVal; }
  85. public int GetAnalyExpCount() { return m_nAnalyExpCount; }
  86. public void SetAnalyExpCount(int a_nVal) { m_nAnalyExpCount = a_nVal; }
  87. public int GetMidSearchAQTime() { return m_nMidSearchAQTime; }
  88. public void SetMidSearchAQTime(int a_nMidSearchAQTime) { m_nMidSearchAQTime = a_nMidSearchAQTime; }
  89. public int GetMidAnalyAQTime() { return m_nMidAnalyAQTime; }
  90. public void SetMidAnalyAQTime(int a_nMidAnalyAQTime) { m_nMidAnalyAQTime = a_nMidAnalyAQTime; }
  91. public int GetLowAnalyAQTime() { return (int)m_nMidAnalyAQTime * 3 / 4; }
  92. public int GetHighAnalyAQTime() { return (int)m_nMidAnalyAQTime * 5 / 4; }
  93. public int GetQuantifyMinSize() { return m_nQutantifyMinSize; }
  94. public void SetQuantifyMinSize(int a_nQuantifyMinSize)
  95. {
  96. m_nQutantifyMinSize = a_nQuantifyMinSize;
  97. }
  98. public int GetFastXrayTime() { return m_nFastXrayTime; }
  99. public void SetFastXrayTime(int a_nFastXrayTime)
  100. {
  101. m_nFastXrayTime = a_nFastXrayTime;
  102. }
  103. public bool GetUsingXray() { return m_nUsingXray; }
  104. public void SetUsingXray(bool a_nUsingXray)
  105. {
  106. m_nUsingXray = a_nUsingXray;
  107. }
  108. public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
  109. {
  110. xString xnScanMode = new xString();
  111. xInt xnAnalyExpCount = new xInt();
  112. xInt xnMidAnalyAQTime = new xInt();
  113. xBool xnUsingXray = new xBool();
  114. Slo slo = new Slo();
  115. slo.Register("ScanMode", xnScanMode);
  116. slo.Register("AnalyExpCount", xnAnalyExpCount);
  117. slo.Register("MidAnalyAQTime", xnMidAnalyAQTime);
  118. slo.Register("UsingXray", xnUsingXray);
  119. if (isStoring)
  120. {
  121. xnScanMode.AssignValue(m_nScanMode.ToString());
  122. xnAnalyExpCount.AssignValue(m_nAnalyExpCount);
  123. xnMidAnalyAQTime.AssignValue(m_nMidAnalyAQTime);
  124. xnUsingXray.AssignValue(m_nUsingXray);
  125. slo.Serialize(true, classDoc, rootNode);
  126. }
  127. else
  128. {
  129. slo.Serialize(false, classDoc, rootNode);
  130. m_nScanMode = (OTS_X_RAY_SCAN_MODE)Enum.Parse(typeof(OTS_X_RAY_SCAN_MODE),xnScanMode.value());
  131. m_nAnalyExpCount = xnAnalyExpCount.value();
  132. m_nMidAnalyAQTime = xnMidAnalyAQTime.value();
  133. m_nUsingXray = xnUsingXray.value();
  134. }
  135. }
  136. }
  137. }