using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using static OTSDataType.otsdataconst; namespace OTSDataType { public class COTSXRayParam : ISlo { // x-ray scan mode const OTS_X_RAY_SCAN_MODE DEFAULE_XRAY_SCAN_MODE = OTS_X_RAY_SCAN_MODE.PointMode; // search x-ray low counts cut off const int DEFAULE_XRAY_LOW_COUNT = 800; // search x-ray speed const OTS_THREE_TIES_OPTIONS DEFAULE_SEARCH_XRAY_SPEED = OTS_THREE_TIES_OPTIONS.meddium; // analysis x-ray speed const OTS_THREE_TIES_OPTIONS DEFAULE_ANALYSIS_XRAY_SPEED = OTS_THREE_TIES_OPTIONS.meddium; // x-ray expect counts const int DEFAULE_XRAY_EXP_COUNT = 4500; // x-ray speed search const int DEFAULE_XRAY_SEARCH_MID_TIME = 20; // x-ray speed analysis const int DEFAULE_XRAY_ANALY_MID_TIME = 1000; const int DEFAULE_XRAY_QUANTIFY_MINSIZE = 50; const int DEFAULE_FASTXRAYTIME = 100; private OTS_X_RAY_SCAN_MODE m_nScanMode; private OTS_THREE_TIES_OPTIONS m_nSearchSpeed; private int m_nXRaySearchCount; private OTS_THREE_TIES_OPTIONS m_nAnalySpeed; private int m_nAnalyExpCount; private int m_nMidSearchAQTime; private int m_nMidAnalyAQTime; private int m_nQutantifyMinSize; private int m_nFastXrayTime; private bool m_nShowScanMode = true; private bool m_nShowSpeed = true; private bool m_nShowExpCount = true; private int m_nUsingXray; void Init() { m_nScanMode = DEFAULE_XRAY_SCAN_MODE; m_nSearchSpeed = DEFAULE_SEARCH_XRAY_SPEED; m_nXRaySearchCount = DEFAULE_XRAY_LOW_COUNT; m_nAnalySpeed = DEFAULE_ANALYSIS_XRAY_SPEED; m_nAnalyExpCount = DEFAULE_XRAY_EXP_COUNT; m_nMidSearchAQTime = DEFAULE_XRAY_SEARCH_MID_TIME; m_nMidAnalyAQTime = DEFAULE_XRAY_ANALY_MID_TIME; m_nQutantifyMinSize = DEFAULE_XRAY_QUANTIFY_MINSIZE; m_nFastXrayTime = DEFAULE_FASTXRAYTIME; } public COTSXRayParam() { Init(); } // duplication void Duplicate(COTSXRayParam a_oSource) { // copy data over m_nScanMode = a_oSource.m_nScanMode; m_nSearchSpeed = a_oSource.m_nSearchSpeed; m_nXRaySearchCount = a_oSource.m_nXRaySearchCount; m_nAnalySpeed = a_oSource.m_nAnalySpeed; m_nAnalyExpCount = a_oSource.m_nAnalyExpCount; m_nMidSearchAQTime = a_oSource.m_nMidSearchAQTime; m_nMidAnalyAQTime = a_oSource.m_nMidAnalyAQTime; m_nQutantifyMinSize = a_oSource.m_nQutantifyMinSize; m_nFastXrayTime = a_oSource.m_nFastXrayTime; m_nShowScanMode = a_oSource.m_nShowScanMode; m_nShowSpeed = a_oSource.m_nShowSpeed; m_nShowExpCount = a_oSource.m_nShowExpCount; m_nUsingXray = a_oSource.m_nUsingXray>0?0:1; } // copy constructor public COTSXRayParam(COTSXRayParam a_oSource) { // copy data over Duplicate(a_oSource); } // ==operator public bool Equals(COTSXRayParam a_oSource) { // return test result return m_nScanMode == a_oSource.m_nScanMode && m_nSearchSpeed == a_oSource.m_nSearchSpeed && m_nXRaySearchCount == a_oSource.m_nXRaySearchCount && m_nAnalySpeed == a_oSource.m_nAnalySpeed && m_nAnalyExpCount == a_oSource.m_nAnalyExpCount && m_nMidSearchAQTime == a_oSource.m_nMidSearchAQTime && m_nMidAnalyAQTime == a_oSource.m_nMidAnalyAQTime && m_nQutantifyMinSize == a_oSource.m_nQutantifyMinSize && m_nFastXrayTime == a_oSource.m_nFastXrayTime && m_nShowScanMode == a_oSource.m_nShowScanMode && m_nShowSpeed == a_oSource.m_nShowSpeed && m_nShowExpCount == a_oSource.m_nShowExpCount && m_nUsingXray == a_oSource.m_nUsingXray; } public OTS_X_RAY_SCAN_MODE GetScanMode() { return m_nScanMode; } public void SetScanMode(OTS_X_RAY_SCAN_MODE a_nVal) { m_nScanMode = a_nVal; } public OTS_THREE_TIES_OPTIONS GetSearchSpeed() { return m_nSearchSpeed; } public void SetSearchSpeed(OTS_THREE_TIES_OPTIONS a_nVal) { m_nSearchSpeed = a_nVal; } // low count public int GetXRaySearchCount() { return m_nXRaySearchCount; } public void SetXRaySearchCount(int a_nVal) { m_nXRaySearchCount = a_nVal; } public OTS_THREE_TIES_OPTIONS GetAnalySpeed() { return m_nAnalySpeed; } public void SetAnalySpeed(OTS_THREE_TIES_OPTIONS a_nVal) { m_nAnalySpeed = a_nVal; } public int GetAnalyExpCount() { return m_nAnalyExpCount; } public void SetAnalyExpCount(int a_nVal) { m_nAnalyExpCount = a_nVal; } public int GetMidSearchAQTime() { return m_nMidSearchAQTime; } public void SetMidSearchAQTime(int a_nMidSearchAQTime) { m_nMidSearchAQTime = a_nMidSearchAQTime; } public int GetLowSearchAQTime() { return m_nMidSearchAQTime * 3 / 4; } public int GetHighSearchAQTime() { return m_nMidSearchAQTime * 5 / 4; } public int GetMidAnalyAQTime() { return m_nMidAnalyAQTime; } public void SetMidAnalyAQTime(int a_nMidAnalyAQTime) { m_nMidAnalyAQTime = a_nMidAnalyAQTime; } public int GetLowAnalyAQTime() { return (int)m_nMidAnalyAQTime * 3 / 4; } public int GetHighAnalyAQTime() { return (int)m_nMidAnalyAQTime * 5 / 4; } public int GetQuantifyMinSize() { return m_nQutantifyMinSize; } public void SetQuantifyMinSize(int a_nQuantifyMinSize) { m_nQutantifyMinSize = a_nQuantifyMinSize; } public int GetFastXrayTime() { return m_nFastXrayTime; } public void SetFastXrayTime(int a_nFastXrayTime) { m_nFastXrayTime = a_nFastXrayTime; } public void SetLowSearchAQTime(int a_nLowSearchAQTime) { m_nMidSearchAQTime = (int)(a_nLowSearchAQTime * 4 / 3 + 0.5); } public void SetHightSearchAQTime(int a_nHighSearchAQTime) { m_nMidSearchAQTime = (int)(a_nHighSearchAQTime * 4 / 5 + 0.5); } public void SetLowAnalyAQTime(int a_nLowAnalyAQTime) { m_nMidSearchAQTime = (int)(a_nLowAnalyAQTime * 4 / 3 + 0.5); } public void SetHighAnalyAQTime(int a_nHighAnalyAQTime) { m_nMidSearchAQTime = (int)(a_nHighAnalyAQTime * 4 / 5 + 0.5); } public bool GetShowScanMode() { return m_nShowScanMode; } public void SetShowScanMode(bool a_nShowScanMode) { m_nShowScanMode = a_nShowScanMode; } public bool GetShowSpeed() { return m_nShowSpeed; } public void SetShowSpeed(bool a_nShowSpeed) { m_nShowSpeed = a_nShowSpeed; } public bool GetShowExpCount() { return m_nShowExpCount; } public void SetShowExpCount(bool a_nShowExpCount) { m_nShowExpCount = a_nShowExpCount; } public int GetUsingXray() { return m_nUsingXray; } public void SetUsingXray(int a_nUsingXray) { m_nUsingXray = a_nUsingXray; } public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode) { xInt xnScanMode = new xInt(); xInt xnSearchSpeed = new xInt(); xInt xnXRaySearchCount = new xInt(); xInt xnAnalySpeed = new xInt(); xInt xnAnalyExpCount = new xInt(); xInt xnMidSearchAQTime = new xInt(); xInt xnMidAnalyAQTime = new xInt(); xInt xnUsingXray = new xInt(); xBool xbShowScanMode = new xBool(); xBool xbShowSpeed = new xBool(); xBool xbShowExpCount = new xBool(); Slo slo = new Slo(); slo.Register("ScanMode", xnScanMode); slo.Register("SearchSpeed", xnSearchSpeed); slo.Register("XRaySearchCount", xnXRaySearchCount); slo.Register("AnalySpeed", xnAnalySpeed); slo.Register("AnalyExpCount", xnAnalyExpCount); slo.Register("MidSearchAQTime", xnMidSearchAQTime); slo.Register("MidAnalyAQTime", xnMidAnalyAQTime); slo.Register("ShowScanMode", xbShowScanMode); slo.Register("ShowSpeed", xbShowSpeed); slo.Register("ShowExpCount", xbShowExpCount); slo.Register("UsingXray", xnUsingXray); if (isStoring) { xnScanMode.AssignValue((int)m_nScanMode); xnSearchSpeed.AssignValue((int)m_nSearchSpeed); xnXRaySearchCount.AssignValue(m_nXRaySearchCount); xnMidAnalyAQTime.AssignValue((int)m_nAnalySpeed); xnAnalyExpCount.AssignValue(m_nAnalyExpCount); xnMidSearchAQTime.AssignValue(m_nMidSearchAQTime); xnMidAnalyAQTime.AssignValue(m_nMidAnalyAQTime); xbShowScanMode.AssignValue(m_nShowScanMode); xbShowSpeed.AssignValue(m_nShowSpeed); xbShowExpCount.AssignValue(m_nShowExpCount); xnUsingXray.AssignValue(m_nUsingXray); slo.Serialize(true, classDoc, rootNode); } else { slo.Serialize(false, classDoc, rootNode); m_nScanMode = (OTS_X_RAY_SCAN_MODE)xnScanMode.value(); m_nSearchSpeed = (OTS_THREE_TIES_OPTIONS)xnSearchSpeed.value(); m_nAnalySpeed = (OTS_THREE_TIES_OPTIONS)xnAnalySpeed.value(); m_nXRaySearchCount = xnXRaySearchCount.value(); m_nAnalyExpCount = xnAnalyExpCount.value(); m_nMidSearchAQTime = xnMidSearchAQTime.value(); m_nMidAnalyAQTime = xnMidAnalyAQTime.value(); m_nShowScanMode = xbShowScanMode.value(); m_nShowSpeed = xbShowSpeed.value(); m_nShowExpCount = xbShowExpCount.value(); m_nUsingXray = xnUsingXray.value(); } } } }