OTSXRayParam.cpp 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. #include "stdafx.h"
  2. #include "OTSXRayParam.h"
  3. namespace OTSDATA
  4. {
  5. // constructor
  6. COTSXRayParam::COTSXRayParam()
  7. {
  8. Init();
  9. }
  10. // copy constructor
  11. COTSXRayParam::COTSXRayParam(const COTSXRayParam& a_oSource)
  12. {
  13. // can't copy itself
  14. if (&a_oSource == this)
  15. {
  16. return;
  17. }
  18. // copy data over
  19. Duplicate(a_oSource);
  20. }
  21. // copy constructor
  22. COTSXRayParam::COTSXRayParam(COTSXRayParam* a_poSource)
  23. {
  24. // input check
  25. ASSERT(a_poSource);
  26. if (!a_poSource)
  27. {
  28. return;
  29. }
  30. // can't copy itself
  31. if (a_poSource == this)
  32. {
  33. return;
  34. }
  35. // copy data over
  36. Duplicate(*a_poSource);
  37. }
  38. // =operator
  39. COTSXRayParam& COTSXRayParam::operator=(const COTSXRayParam& a_oSource)
  40. {
  41. // cleanup
  42. Cleanup();
  43. // copy the class data over
  44. Duplicate(a_oSource);
  45. // return class
  46. return *this;
  47. }
  48. // ==operator
  49. BOOL COTSXRayParam::operator==(const COTSXRayParam& a_oSource)
  50. {
  51. // return test result
  52. return m_nScanMode == a_oSource.m_nScanMode &&
  53. m_nSearchSpeed == a_oSource.m_nSearchSpeed &&
  54. m_nXRaySearchCount == a_oSource.m_nXRaySearchCount &&
  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_bShowScanMode == a_oSource.m_bShowScanMode&&
  60. m_bShowSpeed == a_oSource.m_bShowSpeed&&
  61. m_bShowExpCount == a_oSource.m_bShowExpCount;
  62. }
  63. // detractor
  64. COTSXRayParam::~COTSXRayParam()
  65. {
  66. Cleanup();
  67. }
  68. // COTSStageData member functions
  69. // serialization
  70. void COTSXRayParam::Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode)
  71. {
  72. xmls::xInt xnScanMode;
  73. xmls::xInt xnSearchSpeed;
  74. xmls::xInt xnXRaySearchCount;
  75. xmls::xInt xnAnalySpeed;
  76. xmls::xInt xnAnalyExpCount;
  77. xmls::xInt xnMidSearchAQTime;
  78. xmls::xInt xnMidAnalyAQTime;
  79. /*xmls::xBool xbShowScanMode;
  80. xmls::xBool xbShowSpeed;
  81. xmls::xBool xbShowExpCount;*/
  82. xmls::Slo slo;
  83. slo.Register("ScanMode", &xnScanMode);
  84. slo.Register("SearchSpeed", &xnSearchSpeed);
  85. slo.Register("XRaySearchCount", &xnXRaySearchCount);
  86. slo.Register("AnalySpeed", &xnAnalySpeed);
  87. slo.Register("AnalyExpCount", &xnAnalyExpCount);
  88. slo.Register("MidSearchAQTime", &xnMidSearchAQTime);
  89. slo.Register("MidAnalyAQTime", &xnMidAnalyAQTime);
  90. slo.Register("ScanMode", &xnScanMode);
  91. slo.Register("SearchSpeed", &xnSearchSpeed);
  92. slo.Register("XRaySearchCount", &xnXRaySearchCount);
  93. slo.Register("AnalySpeed", &xnAnalySpeed);
  94. slo.Register("AnalyExpCount", &xnAnalyExpCount);
  95. slo.Register("MidSearchAQTime", &xnMidSearchAQTime);
  96. slo.Register("MidAnalyAQTime", &xnMidAnalyAQTime);
  97. /*slo.Register("ShowScanMode", &xbShowScanMode);
  98. slo.Register("ShowSpeed", &xbShowSpeed);
  99. slo.Register("ShowExpCount", &xbShowExpCount);*/
  100. if (isStoring)
  101. {
  102. xnScanMode = (int)m_nScanMode;
  103. xnSearchSpeed = (int)m_nSearchSpeed;
  104. xnXRaySearchCount = m_nXRaySearchCount;
  105. xnMidAnalyAQTime = (int)m_nAnalySpeed;
  106. xnAnalyExpCount = m_nAnalyExpCount;
  107. xnMidSearchAQTime = m_nMidSearchAQTime;
  108. xnMidAnalyAQTime = m_nMidAnalyAQTime;
  109. /*xbShowScanMode = m_bShowScanMode;
  110. xbShowSpeed = m_bShowSpeed;
  111. xbShowExpCount = m_bShowExpCount;*/
  112. slo.Serialize(true, classDoc, rootNode);
  113. }
  114. else
  115. {
  116. slo.Serialize(false, classDoc, rootNode);
  117. m_nScanMode = (OTS_X_RAY_SCAN_MODE)xnScanMode.value();
  118. m_nSearchSpeed = (OTS_THREE_TIES_OPTIONS)xnSearchSpeed.value();
  119. m_nAnalySpeed = (OTS_THREE_TIES_OPTIONS)xnAnalySpeed.value();
  120. m_nXRaySearchCount = xnXRaySearchCount.value();
  121. m_nAnalyExpCount = xnAnalyExpCount.value();
  122. m_nMidSearchAQTime = xnMidSearchAQTime.value();
  123. m_nMidAnalyAQTime = xnMidAnalyAQTime.value();
  124. /*m_bShowScanMode = xbShowScanMode.value();
  125. m_bShowSpeed = xbShowSpeed.value();
  126. m_bShowExpCount = xbShowExpCount.value();*/
  127. }
  128. }
  129. void COTSXRayParam::SetLowSearchAQTime(int a_nLowSearchAQTime)
  130. {
  131. m_nMidSearchAQTime = (int)(a_nLowSearchAQTime * 4 /3 + 0.5) ;
  132. }
  133. void COTSXRayParam::SetHightSearchAQTime(int a_nHighSearchAQTime)
  134. {
  135. m_nMidSearchAQTime = (int)(a_nHighSearchAQTime * 4 / 5 + 0.5);
  136. }
  137. void COTSXRayParam::SetLowAnalyAQTime(int a_nLowAnalyAQTime)
  138. {
  139. m_nMidSearchAQTime = (int)(a_nLowAnalyAQTime * 4 / 3 + 0.5);
  140. }
  141. void COTSXRayParam::SetHighAnalyAQTime(int a_nHighAnalyAQTime)
  142. {
  143. m_nMidSearchAQTime = (int)(a_nHighAnalyAQTime * 4 / 5 + 0.5);
  144. }
  145. // cleanup
  146. void COTSXRayParam::Cleanup()
  147. {
  148. // nothing needs to be done at the moment
  149. }
  150. // initialization
  151. void COTSXRayParam::Init()
  152. {
  153. m_nScanMode = DEFAULE_XRAY_SCAN_MODE;
  154. m_nSearchSpeed = DEFAULE_SEARCH_XRAY_SPEED;
  155. m_nXRaySearchCount = DEFAULE_XRAY_LOW_COUNT;
  156. m_nAnalySpeed = DEFAULE_ANALYSIS_XRAY_SPEED;
  157. m_nAnalyExpCount = DEFAULE_XRAY_EXP_COUNT;
  158. m_nMidSearchAQTime = DEFAULE_XRAY_SEARCH_MID_TIME;
  159. m_nMidAnalyAQTime = DEFAULE_XRAY_ANALY_MID_TIME;
  160. m_bShowScanMode = TRUE;
  161. m_bShowSpeed = TRUE;
  162. m_bShowExpCount = TRUE;
  163. }
  164. // duplication
  165. void COTSXRayParam::Duplicate(const COTSXRayParam& a_oSource)
  166. {
  167. // initialization
  168. Init();
  169. // copy data over
  170. m_nScanMode = a_oSource.m_nScanMode;
  171. m_nSearchSpeed = a_oSource.m_nSearchSpeed;
  172. m_nXRaySearchCount = a_oSource.m_nXRaySearchCount;
  173. m_nAnalySpeed = a_oSource.m_nAnalySpeed;
  174. m_nAnalyExpCount = a_oSource.m_nAnalyExpCount;
  175. m_nMidSearchAQTime = a_oSource.m_nMidSearchAQTime;
  176. m_nMidAnalyAQTime = a_oSource.m_nMidAnalyAQTime;
  177. m_bShowScanMode = a_oSource.m_bShowScanMode;
  178. m_bShowSpeed = a_oSource.m_bShowSpeed;
  179. m_bShowExpCount = a_oSource.m_bShowExpCount;
  180. }
  181. }