#pragma once //#include "../Bruker/OTSBrukerImpl.h" #include "../OTSEDSBase.h" #include "../SEMCommonConst.h" namespace OTSController { class COTSEDSSim: public COTSEDSBase { public: COTSEDSSim(); virtual ~COTSEDSSim(); // Get eds type virtual EDSController::EDS_ID GetType() override { return EDSController::EDS_ID::OFFLINE; } /// instance termination //virtual void FinishedInstance() override; // 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; } virtual BOOL StopXrayAcquistion() override; // 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_vFeatures, const DWORD a_nXRayAQTime) override; // Quatification virtual void SetQuantification(BOOL a_bQuantification) override; virtual BOOL GetQuantification() override; virtual bool GetLiveRealTime(float& a_dLiveTime, float& a_dRealTime) { a_dLiveTime = GetLiveTime(); a_dRealTime = 0.0; return true; }; // Get number of channels virtual DWORD GetNumberOfChannels(void) override; // Get the x-Ray data virtual DWORD* GetXRayData() override; float* GetAmpTimeList(long& nAmpTime) { nAmpTime = m_nTimeCounts; return m_list_ampTime; } protected: }; }