#pragma once #include "OTSEDSBase.h" #include "OTSOxfordImpl.h" #include "../OTSControl/Bruker/OTSBrukerImpl.h" // DWORD m_xRayData[(unsigned int)EDSConst::XANA_CHANNELS]; namespace OTSController { class COTSEDSOxford : public COTSEDSBase { public: COTSEDSOxford(void); virtual ~COTSEDSOxford(void); /// /// Get eds type /// /// /// Return the eds type /// virtual EDSController::EDS_ID GetType() override { return EDSController::EDS_ID::OXFORD; } // initialization method virtual BOOL Init() override; // To show whether the detector can collect a set of xray one go virtual BOOL IsSupportSetCollection() override { return true; } /// collect spectrum data virtual BOOL CollectSpectrum(DWORD a_nMilliseconds) override; virtual BOOL CollectSpectrum(DWORD a_nMilliseconds, const CPoint& a_oPoint) override; virtual BOOL CollectSpectrum(DWORD a_nMilliseconds, long* a_pCounts, DWORD a_nBufferSize) override; // Set Amp Time Index for all detectors virtual BOOL SetAmpTimeIndex(long /*a_nIndex*/) override { return true; } /// get live time virtual float GetLiveTime(void) override { return 0.0; } /// get max points limit virtual long GetMaxPointLimit(void) override { return 1024; } virtual BOOL GetXRayByPoints(std::vector& a_vXRayPoints, const DWORD a_nXRayAQTime)override; virtual BOOL GetXRayByFeatures(std::vector& a_listXRayPoints, std::vector& a_listFeatures, const DWORD a_nXRayAQTime) override; virtual BOOL StopXrayAcquistion() override; /*virtual BOOL GetXRayByFeaturesFromMultiPoint(std::vector& a_listXRayPoints, std::vector>& a_listFeatures, const DWORD a_nXRayAQTime) override;*/ // Quatification virtual void SetQuantification(BOOL a_bQuantification) override; virtual BOOL GetQuantification() override; // Get number of channels virtual DWORD GetNumberOfChannels(void) override; // Get the x-Ray data virtual DWORD* GetXRayData() override; // quantification only works for bruker controller now virtual BOOL IsSupportQuantification() override; virtual BOOL GetQuantificationMethods(std::vector& a_vMethods) override; virtual BOOL QuantifyXrayPoint(CPosXray* a_pXRayPoint, LPCTSTR a_sMethodName) override; virtual BOOL QuantifySpectrumFile(LPCTSTR a_sFilePathName, LPCTSTR a_sMethodName, CElementChemistriesList& a_listElementChemistry) override; virtual BOOL QuantifySpectrumOut(DWORD a_nMilliseconds, long* a_pCounts, DWORD a_nBufferSize, CElementChemistriesList& a_listElementChemistry) override; protected: std::shared_ptr m_oxfordImpl; }; } // namespace Controller