OTSEDSBase.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #pragma once
  2. #include "PosXray.h"
  3. #include "Element.h"
  4. #include "SEMCommonConst.h"
  5. #include "Bruker\OTSBrukerImpl_const.h"
  6. namespace OTSController
  7. {
  8. using namespace OTSDATA;
  9. #ifdef UNICODE
  10. #define isdigit_t iswdigit
  11. #else
  12. #define isdigit_t isdigit
  13. #endif
  14. class __declspec(dllexport) COTSEDSBase
  15. {
  16. public:
  17. COTSEDSBase(void);
  18. ~COTSEDSBase(void);
  19. // Get EDS type
  20. // virtual
  21. virtual EDSController::EDS_ID GetType() = 0;
  22. virtual BOOL Init() = 0;
  23. //-------- collect spectrum data,for testing
  24. virtual BOOL CollectSpectrum(DWORD a_nMilliseconds) = 0;
  25. virtual BOOL CollectSpectrum(DWORD a_nMilliseconds, const CPoint& a_oPoint) = 0;
  26. virtual BOOL CollectSpectrum(DWORD a_nMilliseconds, long* a_pCounts, DWORD a_nBufferSize) = 0;
  27. //---------------
  28. virtual BOOL StopXrayAcquistion() = 0;
  29. // quantify spectrum
  30. // Get x-Ray data
  31. // virtual
  32. virtual DWORD* GetXRayData() = 0;
  33. // get max points limit
  34. virtual long GetMaxPointLimit(void) = 0;
  35. // get live time
  36. // virtual
  37. virtual float GetLiveTime(void) = 0;
  38. virtual BOOL GetXRayByPoints(std::vector<CPosXrayPtr>& a_vXRayPoints, const DWORD a_nXRayAQTime) = 0;
  39. virtual BOOL QuantifyXrays(std::vector<CPosXrayPtr>& a_vXRayParts)=0;//in our system ,one particle has one CPosXray object.
  40. virtual BOOL QuantifyXray(CPosXrayPtr& a_vXRayPart)=0;
  41. virtual BOOL GetXRayByFeatures(std::vector<CPosXrayPtr>& a_listXRayPoints,
  42. std::vector<BrukerFeature>& a_listFeatures,
  43. const DWORD a_nXRayAQTime) = 0;
  44. // Quantification
  45. virtual void SetQuantification(BOOL a_bQuantification) = 0;
  46. virtual BOOL GetQuantification() = 0;
  47. virtual DWORD GetNumberOfChannels(void) = 0;
  48. virtual void SetExpectCount(int expectcount)=0 ;
  49. virtual int GetExpectCount() = 0;
  50. virtual void SetQuantificationParam(bool ifauto, CString knownelements)=0;
  51. protected:
  52. virtual BOOL GetQuantificationMethods(std::vector<CString>& a_vMethods) = 0;
  53. virtual BOOL QuantifyXrayPoint(CPosXray* a_pXRayPoint, LPCTSTR a_sMethodName) = 0;
  54. virtual BOOL QuantifySpectrumFile(LPCTSTR a_sFilePathName, LPCTSTR a_sMethodName, CElementChemistriesList& a_listElementChemistry) = 0;
  55. virtual BOOL QuantifySpectrumOut(DWORD a_nMilliseconds, long* a_pCounts, DWORD a_nBufferSize, CElementChemistriesList& a_listElementChemistry) = 0;
  56. // x-Ray data
  57. DWORD m_nRayData[(long)EDSConst::XANA_CHANNELS];
  58. //amplify time list
  59. float m_list_ampTime[(long)EDSConst::MAX_AMPTIME_CONSTANTS];
  60. //amplify times
  61. long m_nTimeCounts;
  62. // do quantification
  63. BOOL m_bDoQuantification;
  64. };
  65. typedef std::shared_ptr<COTSEDSBase> COTSEDSBasePtr;
  66. }