#pragma once // FileName: OTSEDSBrucker.h // Brief: EDS Base Class , x-Ray acquisition system #include "OTSBrukerImpl.h" #include "OTSEDSBase.h" namespace OTSController { class COTSEDSBrucker : public COTSEDSBase { public: COTSEDSBrucker(void); virtual ~COTSEDSBrucker(void); // Get eds type virtual EDSController::EDS_ID GetType() override { return EDSController::EDS_ID::BRUKER; } // initialization method virtual BOOL Init() override; // To show whether the detector can collect a set of x-Ray 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) override { return TRUE; } // get live time virtual float GetLiveTime(void) override; // get x-ray point collection limit virtual long GetMaxPointLimit(void) override { return (long)EDSConst::MAX_XRAY_BATCH; } // 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; 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 COTSEDSBrucker::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; private: // bruker controller std::shared_ptr m_pBrukerImpl; }; } // namespace Controller