OTSEDSOxford.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #pragma once
  2. #include "OTSEDSBase.h"
  3. #include "OTSOxfordImpl.h"
  4. #include "../OTSControl/Bruker/OTSBrukerImpl.h"
  5. // DWORD m_xRayData[(unsigned int)EDSConst::XANA_CHANNELS];
  6. namespace OTSController
  7. {
  8. class COTSEDSOxford : public COTSEDSBase
  9. {
  10. public:
  11. COTSEDSOxford(void);
  12. virtual ~COTSEDSOxford(void);
  13. /// <summary>
  14. /// Get eds type
  15. /// </summary>
  16. /// <returns>
  17. /// Return the eds type
  18. /// </returns>
  19. virtual EDSController::EDS_ID GetType() override { return EDSController::EDS_ID::OXFORD; }
  20. // initialization method
  21. virtual BOOL Init() override;
  22. // To show whether the detector can collect a set of xray one go
  23. virtual BOOL IsSupportSetCollection() override { return true; }
  24. /// collect spectrum data
  25. virtual BOOL CollectSpectrum(DWORD a_nMilliseconds) override;
  26. virtual BOOL CollectSpectrum(DWORD a_nMilliseconds, const CPoint& a_oPoint) override;
  27. virtual BOOL CollectSpectrum(DWORD a_nMilliseconds, long* a_pCounts, DWORD a_nBufferSize) override;
  28. // Set Amp Time Index for all detectors
  29. virtual BOOL SetAmpTimeIndex(long /*a_nIndex*/) override { return true; }
  30. /// get live time
  31. virtual float GetLiveTime(void) override { return 0.0; }
  32. /// get max points limit
  33. virtual long GetMaxPointLimit(void) override { return 1024; }
  34. virtual BOOL GetXRayByPoints(std::vector<CPosXrayPtr>& a_vXRayPoints, const DWORD a_nXRayAQTime)override;
  35. virtual BOOL GetXRayByFeatures(std::vector<CPosXrayPtr>& a_listXRayPoints,
  36. std::vector<BrukerFeature>& a_listFeatures,
  37. const DWORD a_nXRayAQTime) override;
  38. virtual BOOL StopXrayAcquistion() override;
  39. /*virtual BOOL GetXRayByFeaturesFromMultiPoint(std::vector<CPosXrayPtr>& a_listXRayPoints,
  40. std::vector<std::vector<BrukerSegment>>& a_listFeatures,
  41. const DWORD a_nXRayAQTime) override;*/
  42. // Quatification
  43. virtual void SetQuantification(BOOL a_bQuantification) override;
  44. virtual BOOL GetQuantification() override;
  45. // Get number of channels
  46. virtual DWORD GetNumberOfChannels(void) override;
  47. // Get the x-Ray data
  48. virtual DWORD* GetXRayData() override;
  49. // quantification only works for bruker controller now
  50. virtual BOOL IsSupportQuantification() override;
  51. virtual BOOL GetQuantificationMethods(std::vector<CString>& a_vMethods) override;
  52. virtual BOOL QuantifyXrayPoint(CPosXray* a_pXRayPoint, LPCTSTR a_sMethodName) override;
  53. virtual BOOL QuantifySpectrumFile(LPCTSTR a_sFilePathName, LPCTSTR a_sMethodName, CElementChemistriesList& a_listElementChemistry) override;
  54. virtual BOOL QuantifySpectrumOut(DWORD a_nMilliseconds, long* a_pCounts, DWORD a_nBufferSize, CElementChemistriesList& a_listElementChemistry) override;
  55. protected:
  56. std::shared_ptr<OxfordImpl> m_oxfordImpl;
  57. };
  58. }
  59. // namespace Controller