MsrResults.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. #pragma once
  2. #include "XMLSerialization.h"
  3. namespace OTSMODEL {
  4. __declspec(dllexport) const double DEFAULT_RADIO = 1.0;
  5. // CMsrResultItem command target
  6. class __declspec(dllexport) CMsrResultItem : public xmls::ISlo
  7. {
  8. public:
  9. CMsrResultItem(); // constructor
  10. CMsrResultItem(const CMsrResultItem&); // copy constructor
  11. CMsrResultItem(CMsrResultItem*); // copy constructor
  12. CMsrResultItem& operator=(const CMsrResultItem&); // =operator
  13. BOOL operator==(const CMsrResultItem&); // ==operator
  14. virtual ~CMsrResultItem(); // destructor
  15. // serialization
  16. //void Serialize(CArchive& ar);
  17. void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode);
  18. // Type ID
  19. int GetTypeId() { return m_nTypeId; }
  20. void SetTypeId(int a_nTypeId) { m_nTypeId = a_nTypeId; }
  21. // area (micros)
  22. double GetArea() { return m_nArea; }
  23. void SetArea(double a_nArea) { m_nArea = a_nArea; }
  24. // particle number
  25. DWORD GetNumber() { return m_nNumber; }
  26. void SetNumber(DWORD a_nNumber) { m_nNumber = a_nNumber; }
  27. std::string GetName() const { return m_sName; }
  28. void SetName(std::string val) { m_sName = val; }
  29. protected:
  30. // cleanup
  31. void Cleanup();
  32. // initialization
  33. void Init();
  34. // duplication
  35. void Duplicate(const CMsrResultItem& a_oSource);
  36. // Type ID
  37. int m_nTypeId;
  38. // area (micros)
  39. double m_nArea;
  40. // particle number
  41. DWORD m_nNumber;
  42. std::string m_sName;
  43. };
  44. typedef std::shared_ptr<CMsrResultItem> __declspec(dllexport) CMsrResultItemPtr;
  45. typedef std::vector<CMsrResultItemPtr> __declspec(dllexport) CMsrResultItemsList;
  46. // CMsrResults command target
  47. class __declspec(dllexport) CMsrResults : public xmls::ISlo
  48. {
  49. public:
  50. CMsrResults(); // constructor
  51. CMsrResults(const CMsrResults&); // copy constructor
  52. CMsrResults(CMsrResults*); // copy constructor
  53. CMsrResults& operator=(const CMsrResults&); // =operator
  54. BOOL operator==(const CMsrResults&); // ==operator
  55. virtual ~CMsrResults(); // destructor
  56. // serialization
  57. void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode);
  58. // radio
  59. double GetRadio() { return m_dRadio; }
  60. void SetRadio(double a_dRadio) { m_dRadio = a_dRadio; }
  61. // measured area (micros)
  62. DWORD GetMeasuredArea() { return m_nMeasuredArea; }
  63. void SetMeasuredArea(DWORD a_nMeasuredArea) { m_nMeasuredArea = a_nMeasuredArea; }
  64. void CumulateMeasuredArea(DWORD a_nMeasuredArea){ m_nMeasuredArea += a_nMeasuredArea; }
  65. // results items list
  66. CMsrResultItemsList& GetResultItems() { return m_listResultItems; }
  67. void SetResultItems(CMsrResultItemsList& a_listResultItems);
  68. DWORD GetTotalParticleArea();
  69. DWORD GetTotalparticleIdentifyArea();
  70. DWORD GetTotalParticleNumber();
  71. // calculate display ratio
  72. double CalDisplayRadio();
  73. // cumulate measure results
  74. void CumulateMeasureResults(CMsrResultItemPtr a_poResultItems);
  75. void CumulateMeasureResults(CMsrResultItemsList& a_listResultItems);
  76. protected:
  77. // cleanup
  78. void Cleanup();
  79. // initialization
  80. void Init();
  81. // duplication
  82. void Duplicate(const CMsrResults& a_oSource);
  83. // radio
  84. double m_dRadio;
  85. // measured area (micros)
  86. DWORD m_nMeasuredArea;
  87. // result items list
  88. CMsrResultItemsList m_listResultItems;
  89. };
  90. typedef std::shared_ptr<CMsrResults> __declspec(dllexport) CMsrResultsPtr;
  91. typedef std::vector<CMsrResultsPtr> __declspec(dllexport) CMsrResultsList;
  92. }