Browse Source

add missing renamed file.

gsp 1 year ago
parent
commit
74d6c9f031
1 changed files with 242 additions and 0 deletions
  1. 242 0
      OTSIncAMeasureApp/0-OTSModel/Measure/3-MeasureFlow/CMsrResultItems.cs

+ 242 - 0
OTSIncAMeasureApp/0-OTSModel/Measure/3-MeasureFlow/CMsrResultItems.cs

@@ -0,0 +1,242 @@
+using OTSCLRINTERFACE;
+using OTSDataType;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+namespace OTSModelSharp
+{
+    //public double DEFAULT_RADIO = 1.0;
+    using CMsrResultItemsList = List<CMsrResultItem>;
+
+
+
+    public class CMsrResultItem
+    {   // Type ID
+        private int m_nTypeId;
+        // area (micros)
+        private double m_nArea;
+        // particle number
+        private System.UInt32 m_nNumber;
+        private string m_sName;
+        //---------------------public----------------------
+        public CMsrResultItem()//constructor
+        {            
+            Init();
+        }
+        public CMsrResultItem(CMsrResultItem a_oSource)
+        {
+ 
+            Duplicate(a_oSource);
+        }
+       
+        public bool Equals(CMsrResultItem a_oSource)
+        {
+            return m_nTypeId == a_oSource.m_nTypeId &&
+            m_nArea == a_oSource.m_nArea &&
+            m_nNumber == a_oSource.m_nNumber&&
+            m_sName == a_oSource.m_sName;
+        }
+        //serialization
+        // Type ID
+        public int GetTypeId()
+        {
+            return m_nTypeId;
+        }
+        public void SetTypeId(int a_nTypeId)
+        {
+            m_nTypeId = a_nTypeId;
+        }
+        // area (micros)
+        public double GetArea()
+        {
+            return m_nArea;
+        }
+        public void SetArea(double a_nArea)
+        {
+            m_nArea = a_nArea;
+        }
+        // particle number
+        public System.UInt32 GetNumber()
+        {
+            return m_nNumber;
+        }
+        public void SetNumber(System.UInt32 a_nNumber)
+        {
+            m_nNumber = a_nNumber;
+        }
+        public string GetName()
+        {
+            return m_sName;
+        }
+        public void SetName(string val)
+        {
+            m_sName = val;
+        }
+        //---------------------protected---------------------
+        // initialization
+        protected void Init()
+        {
+            m_nTypeId = -1;
+            m_nArea = 0;
+            m_nNumber = 0;
+            m_sName = "";
+        }
+        //duplication
+        protected void Duplicate(CMsrResultItem a_oSource)
+        {
+            // initialization
+            Init();
+            // copy data over
+            m_nTypeId = a_oSource.m_nTypeId;
+            m_nArea = a_oSource.m_nArea;
+            m_nNumber = a_oSource.m_nNumber;
+            m_sName = a_oSource.m_sName;
+        }
+    }
+    // CMsrResults command target
+   public class CMsrResultItems
+    {
+        public double DEFAULT_RADIO = 1.0;
+        // radio
+        double m_dRadio;
+        // measured area (micros)
+        double m_nMeasuredArea;
+        // result items list
+        List<CMsrResultItem> m_listResultItems;
+
+        //-----------------public-----------------
+        public   CMsrResultItems()
+        {
+            // initialization
+            Init();
+        }
+        public CMsrResultItems(CMsrResultItems a_oSource)
+        {
+            // copy data over
+            Duplicate(a_oSource);
+        }
+   
+        public double GetRatio()
+        {
+            return m_dRadio;
+        }
+        public void SetRatio(double a_dRadio)
+        {
+            m_dRadio = a_dRadio;
+        }
+        // measured area (micros)
+        public double GetMeasuredArea()
+        {
+            return m_nMeasuredArea;
+        }
+        public void SetMeasuredArea(double a_nMeasuredArea)
+        {
+            m_nMeasuredArea = a_nMeasuredArea;
+        }
+        public void CumulateMeasuredArea(double a_nMeasuredArea)
+        {
+            m_nMeasuredArea += a_nMeasuredArea;
+        }
+
+        public List<CMsrResultItem> GetResultItems()
+        {
+            return m_listResultItems;
+        }
+        public void SetResultItems(List<CMsrResultItem> a_listResultItems)
+        {
+            // set results item list
+            m_listResultItems.Clear();
+            foreach (CMsrResultItem poResultItem in a_listResultItems)
+            {
+                CMsrResultItem cMsrResultItem =  poResultItem;
+                m_listResultItems.Add(cMsrResultItem);
+            }
+        }
+        public double GetTotalParticleArea()
+        {
+            double nArea = 0;
+            foreach (CMsrResultItem poResultItem in m_listResultItems)
+            {
+                nArea += poResultItem.GetArea();
+            }
+            return nArea;
+        }
+
+        public System.UInt32 GetTotalParticleNumber()
+        {
+            System.UInt32 nParticleNum = 0;
+            foreach (CMsrResultItem poResultItem in m_listResultItems)
+            {
+                nParticleNum += poResultItem.GetNumber();
+            }
+            return nParticleNum;
+        }
+ 
+        // cumulate measure results
+        public void CumulateMeasureResult(COTSParticleClr a_poResultItem)
+        {
+
+           var itr= m_listResultItems.Find((item) => { return a_poResultItem.GetClassifyId() == item.GetTypeId(); });
+            if (itr != null)
+            {
+
+                itr.SetArea(a_poResultItem.GetActualArea() + itr.GetArea());
+                itr.SetNumber(itr.GetNumber() + 1);
+            }
+            else            
+            {
+                CMsrResultItem pMsrResultItem = new CMsrResultItem();
+                pMsrResultItem.SetTypeId(a_poResultItem.GetClassifyId());
+
+                pMsrResultItem.SetArea(a_poResultItem.GetActualArea() + 0.5);
+                pMsrResultItem.SetNumber(1);
+                pMsrResultItem.SetName(a_poResultItem.GetTypeName());
+                m_listResultItems.Add(pMsrResultItem);
+            }
+         
+        }
+  
+        //-----------------protected---------------
+        protected bool GetID (CMsrResultItem poResultItem ,int a_TypeId)
+        {
+            if (poResultItem.GetTypeId() == a_TypeId)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+        // initialization
+        protected void Init()
+        {
+            m_dRadio = DEFAULT_RADIO;
+            m_nMeasuredArea = 0;
+            if (m_listResultItems != null)
+            {
+                m_listResultItems.Clear();
+            }
+            else
+            {
+                m_listResultItems = new CMsrResultItemsList();
+            }
+        }
+        // duplication 
+        protected void Duplicate(CMsrResultItems a_oSource)
+        {
+            // initialization
+            Init();
+            // copy data over
+            m_dRadio = a_oSource.m_dRadio;
+            m_nMeasuredArea = a_oSource.m_nMeasuredArea;
+            foreach (CMsrResultItem poResultItem in a_oSource.m_listResultItems)
+            {
+                CMsrResultItem cMsrResultItem = poResultItem;
+                m_listResultItems.Add(cMsrResultItem);
+            }
+        }
+    }
+}