OTSSample.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. #pragma once
  2. #include "stdafx.h" //prepare the base things that will be used. typically this header file will include a lot of base header file.
  3. #include "MsrParams.h"
  4. #include "Domain.h"
  5. #include "SEMDataMsr.h"
  6. #include "MsrSampleStatus.h"
  7. #include "MsrResults.h"
  8. #include "PropItem.h"
  9. #include "OTSFieldData.h"
  10. namespace OTSMODEL {
  11. const CString NOT_APPLIED = _T("N/A");
  12. class __declspec(dllexport) COTSSample : public xmls::ISlo
  13. {
  14. public:
  15. COTSSample(); // constructor
  16. COTSSample(const COTSSample&); // copy constructor
  17. COTSSample(COTSSample*); // copy constructor
  18. COTSSample& operator=(const COTSSample&); // =operator
  19. BOOL operator==(const COTSSample&); // ==operator
  20. virtual ~COTSSample(); // destructor
  21. // serialization
  22. //void Serialize(CArchive& ar);
  23. void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode);
  24. // name
  25. CString GetName() { return m_strName; }
  26. void SetName(CString a_strName) { m_strName = a_strName; }
  27. // sample hole
  28. CString GetSampleHoleName() { return m_strHoleName; }
  29. void SetSampleHoleName(CString a_strHoleName) { m_strHoleName = a_strHoleName; }
  30. // param modify lock
  31. BOOL GetParamLock() { return m_bParamLock; }
  32. void SetParamLock(BOOL a_bParamLock) { m_bParamLock = a_bParamLock; }
  33. // switch
  34. BOOL GetSwitch() { return m_bSwitch; }
  35. void SetSwitch(BOOL a_bSwitch) { m_bSwitch = a_bSwitch; }
  36. // measurement parameter
  37. CMsrParamsPtr GetMsrParams() { return m_poMsrParams; }
  38. void SetMsrParams(CMsrParamsPtr a_poMsrParams);
  39. // measurement area
  40. CDomainPtr GetMsrArea() { return m_poMsrArea; }
  41. void SetMsrArea(CDomainPtr a_poMsrArea);
  42. // SEM data (measurement)
  43. CSEMDataMsrPtr GetSEMDataMsr() { return m_poSEMDataMsr; }
  44. void SetSEMDataMsr(CSEMDataMsrPtr a_poSEMDataMsr);
  45. // measure status
  46. CMsrSampleStatusPtr GetMsrStatus() { return m_poMsrStatus; }
  47. void SetMsrStatus(CMsrSampleStatusPtr a_poMsrStatus);
  48. // fields
  49. COTSFieldDataList& GetFieldsData() { return m_listFieldData; }
  50. void SetFieldsData(COTSFieldDataList& a_listFieldData);
  51. // measure results
  52. CMsrResultsPtr GetMsrResults() { return m_poMsrResults; }
  53. void SetMsrResults(CMsrResultsPtr a_poMsrResults);
  54. // has measure results test
  55. BOOL HasMeasureResult();
  56. // property item groups list
  57. CPropItemGrpsList& GetPropItemGrps() { return m_listPropItemGrps; }
  58. void SetPropItemGrps();
  59. CPropItemGrpPtr GetPropItemGrpByIndex(int a_nIndex);
  60. CPropItemGrpPtr GetPropItemGrpById(OTS_SAMPLE_PROP_GRID_ITEM_GROUPS a_nId);
  61. CPropItemGrpPtr UpdatePropItemGrp(OTS_SAMPLE_PROP_GRID_ITEM_GROUPS a_nId);
  62. CPropItemPtr GetPropItemById(OTS_SAMPLE_PROP_GRID_ITEMS a_nId);
  63. CString GetItemValueStr(OTS_SAMPLE_PROP_GRID_ITEMS a_nId);
  64. std::vector<CString> GetItemComboDownList(OTS_SAMPLE_PROP_GRID_ITEMS ItemID);
  65. // BOOL data (1)
  66. BOOL GetPropBOOLData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, BOOL& a_bValue);
  67. BOOL SetPropBOOLData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, BOOL a_bValue);
  68. // int data (16)
  69. BOOL GetPropIntData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, int& a_nValue);
  70. BOOL SetPropIntData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, int a_nValue);
  71. // double data (4)
  72. BOOL GetPropDoubleData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, double& a_dValue);
  73. BOOL SetPropDoubleData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, double a_dValue);
  74. // string data (7)
  75. BOOL GetPropStringData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, CString& a_strValue);
  76. BOOL SetPropStringData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, CString a_strValue);
  77. // combo data (7)
  78. BOOL GetPropComboData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, int& a_nValue);
  79. BOOL SetPropComboData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, int a_nValue);
  80. BOOL GetPropComboStrings(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, std::vector<CString>& a_listComboStrings);
  81. // time data (2)
  82. BOOL GetPropTimeData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, COleDateTime& a_oValue);
  83. BOOL SetPropTimeData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, COleDateTime a_oValue);
  84. // time span data (1)
  85. BOOL GetPropTimeSpanData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, COleDateTimeSpan& a_oValue);
  86. BOOL SetPropTimeSpanData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, COleDateTimeSpan a_oValue);
  87. // file list data (2)
  88. BOOL GetPropFileListData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, CString& a_strFileName);
  89. BOOL SetPropFileListData(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, CString a_strFileName);
  90. // get related property item
  91. BOOL GetRelatedPropItem(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, OTS_SAMPLE_PROP_GRID_ITEMS& a_nRelatedPropId);
  92. // get related property item group
  93. BOOL GetRelatedPropItemGrp(OTS_SAMPLE_PROP_GRID_ITEMS a_nId, OTS_SAMPLE_PROP_GRID_ITEM_GROUPS& a_nRelatedPropGrpId);
  94. // calculate pixel size
  95. double CalculatePixelSize();
  96. // calculate field area
  97. double CalculateAFieldArea();
  98. BOOL GetBSESize(int& a_nWidth, int& a_nHeight);
  99. protected:
  100. // cleanup
  101. void Cleanup();
  102. // initialization
  103. void Init();
  104. // duplication
  105. void Duplicate(const COTSSample& a_oSource);
  106. // set a property items group
  107. CPropItemGrpPtr SetPropertyItemGrp(OTS_SAMPLE_PROP_GRID_ITEM_GROUPS a_nGrpId);
  108. // calculate scan field size
  109. int CalculateScanFileSize(double a_dPixelSize);
  110. // name
  111. CString m_strName;
  112. // sample hole name
  113. CString m_strHoleName;
  114. // param modify lock
  115. BOOL m_bParamLock;
  116. // switch
  117. BOOL m_bSwitch;
  118. // measurement parameter
  119. CMsrParamsPtr m_poMsrParams;
  120. // measurement area
  121. CDomainPtr m_poMsrArea;
  122. // SEM data (measurement)
  123. CSEMDataMsrPtr m_poSEMDataMsr;
  124. // measure status
  125. CMsrSampleStatusPtr m_poMsrStatus;
  126. // measure results
  127. CMsrResultsPtr m_poMsrResults;
  128. // fields
  129. COTSFieldDataList m_listFieldData;
  130. // property item groups list
  131. CPropItemGrpsList m_listPropItemGrps;
  132. };
  133. typedef std::shared_ptr<COTSSample> __declspec(dllexport) COTSSamplePtr;
  134. typedef std::vector<COTSSamplePtr> __declspec(dllexport) COTSSamplesList;
  135. }