#pragma once #include "../OTSEDSBase.h" #include "../SEMCommonConst.h" namespace OTSController { class __declspec(dllexport) COTSEDSSim: public COTSEDSBase { public: COTSEDSSim(); virtual ~COTSEDSSim(); // Get eds type virtual EDSController::EDS_ID GetType() override { return EDSController::EDS_ID::OFFLINE; } // initialization method virtual BOOL Init() override; // 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; BOOL CollectASpectrumFromTxtFile(DWORD* a_pCounts, DWORD a_nBufferSize); virtual BOOL StopXrayAcquistion() override; // get live time virtual float GetLiveTime(void) 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 QuantifyXrays(std::vector& a_vXRayParts)override;//in our system ,one particle has one CPosXray object. 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; } virtual void SetExpectCount(int expectcount) override; virtual BOOL QuantifyXray(CPosXrayPtr& a_vXRayPart)override; virtual int GetExpectCount()override; virtual void SetQuantificationParam(bool ifauto, CString knownelements) override; protected: // get x-ray point collection limit virtual long GetMaxPointLimit(void) override { return (long)EDSConst::MAX_XRAY_BATCH; } 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; int m_expectcount; }; }