123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- 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);
- }
- }
- }
- }
|