OTSEDSBrucker.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #pragma once
  2. // FileName: OTSEDSBrucker.h
  3. // Brief: EDS Base Class , x-Ray acquisition system
  4. #include "OTSBrukerImpl.h"
  5. #include "OTSEDSBase.h"
  6. namespace OTSController {
  7. class __declspec(dllexport) COTSEDSBrucker : public COTSEDSBase
  8. {
  9. public:
  10. COTSEDSBrucker(void);
  11. virtual ~COTSEDSBrucker(void);
  12. // Get eds type
  13. virtual EDSController::EDS_ID GetType() override { return EDSController::EDS_ID::BRUKER; }
  14. // initialization method
  15. virtual BOOL Init() override;
  16. // To show whether the detector can collect a set of x-Ray one go
  17. virtual BOOL IsSupportSetCollection() override { return true; }
  18. // collect spectrum data
  19. virtual BOOL CollectSpectrum(DWORD a_nMilliseconds) override;
  20. virtual BOOL CollectSpectrum(DWORD a_nMilliseconds, const CPoint& a_oPoint) override;
  21. virtual BOOL CollectSpectrum(DWORD a_nMilliseconds, long* a_pCounts, DWORD a_nBufferSize) override;
  22. // Set Amp Time Index for all detectors
  23. virtual BOOL SetAmpTimeIndex(long) override { return TRUE; }
  24. // get live time
  25. virtual float GetLiveTime(void) override;
  26. // get x-ray point collection limit
  27. virtual long GetMaxPointLimit(void) override { return (long)EDSConst::MAX_XRAY_BATCH; }
  28. // quantification only works for bruker controller now
  29. virtual BOOL IsSupportQuantification() override;
  30. virtual BOOL GetQuantificationMethods(std::vector<CString>& a_vMethods) override;
  31. virtual BOOL QuantifyXrayPoint(CPosXray* a_pXRayPoint, LPCTSTR a_sMethodName) override;
  32. virtual BOOL QuantifySpectrumFile(LPCTSTR a_sFilePathName, LPCTSTR a_sMethodName, CElementChemistriesList& a_listElementChemistry) override;
  33. virtual BOOL QuantifySpectrumOut(DWORD a_nMilliseconds, long* a_pCounts, DWORD a_nBufferSize, CElementChemistriesList& a_listElementChemistry) override;
  34. virtual BOOL GetXRayByPoints(std::vector<CPosXrayPtr>& a_vXRayPoints, const DWORD a_nXRayAQTime)override;
  35. virtual BOOL QuantifyXrayByParts(std::vector<CPosXrayPtr>& a_vXRayParts)override;
  36. virtual BOOL QuantifyXrayByPart(CPosXrayPtr& a_vXRayPart)override;
  37. virtual BOOL GetXRayByFeatures(std::vector<CPosXrayPtr>& a_listXRayPoints,
  38. std::vector<BrukerFeature>& a_listFeatures,
  39. const DWORD a_nXRayAQTime) override;
  40. virtual BOOL COTSEDSBrucker::StopXrayAcquistion()override;
  41. /*virtual BOOL GetXRayByFeaturesFromMultiPoint(std::vector<CPosXrayPtr>& a_listXRayPoints,
  42. std::vector<std::vector<BrukerSegment>>& a_listFeatures,
  43. const DWORD a_nXRayAQTime) override;*/
  44. // Quatification
  45. virtual void SetQuantification(BOOL a_bQuantification) override;
  46. virtual BOOL GetQuantification() override;
  47. // Get number of channels
  48. virtual DWORD GetNumberOfChannels(void) override;
  49. // Get the x-Ray data
  50. virtual DWORD* GetXRayData() override;
  51. virtual void SetExpectCount(int expectcount) override;
  52. private:
  53. // bruker controller
  54. std::shared_ptr<COTSBrukerImpl> m_pBrukerImpl;
  55. // Inherited via COTSEDSBase
  56. virtual int GetExpectCount() override;
  57. };
  58. } // namespace Controller