#pragma once #include "PosXray.h" #include "Element.h" #include "SEMCommonConst.h" #include "Bruker\OTSBrukerImpl_const.h" namespace OTSController { using namespace OTSDATA; #ifdef UNICODE #define isdigit_t iswdigit #else #define isdigit_t isdigit #endif class __declspec(dllexport) COTSEDSBase { public: COTSEDSBase(void); ~COTSEDSBase(void); // Get EDS type // virtual virtual EDSController::EDS_ID GetType() = 0; virtual BOOL Init() = 0; //-------- collect spectrum data,for testing virtual BOOL CollectSpectrum(DWORD a_nMilliseconds) = 0; virtual BOOL CollectSpectrum(DWORD a_nMilliseconds, const CPoint& a_oPoint) = 0; virtual BOOL CollectSpectrum(DWORD a_nMilliseconds, long* a_pCounts, DWORD a_nBufferSize) = 0; //--------------- virtual BOOL StopXrayAcquistion() = 0; // quantify spectrum // Get x-Ray data // virtual virtual DWORD* GetXRayData() = 0; // get max points limit virtual long GetMaxPointLimit(void) = 0; // get live time // virtual virtual float GetLiveTime(void) = 0; virtual BOOL GetXRayByPoints(std::vector& a_vXRayPoints, const DWORD a_nXRayAQTime) = 0; virtual BOOL QuantifyXrays(std::vector& a_vXRayParts)=0;//in our system ,one particle has one CPosXray object. virtual BOOL QuantifyXray(CPosXrayPtr& a_vXRayPart)=0; virtual BOOL GetXRayByFeatures(std::vector& a_listXRayPoints, std::vector& a_listFeatures, const DWORD a_nXRayAQTime) = 0; // Quantification virtual void SetQuantification(BOOL a_bQuantification) = 0; virtual BOOL GetQuantification() = 0; virtual DWORD GetNumberOfChannels(void) = 0; virtual void SetExpectCount(int expectcount)=0 ; virtual int GetExpectCount() = 0; virtual void SetQuantificationParam(bool ifauto, CString knownelements)=0; protected: virtual BOOL GetQuantificationMethods(std::vector& a_vMethods) = 0; virtual BOOL QuantifyXrayPoint(CPosXray* a_pXRayPoint, LPCTSTR a_sMethodName) = 0; virtual BOOL QuantifySpectrumFile(LPCTSTR a_sFilePathName, LPCTSTR a_sMethodName, CElementChemistriesList& a_listElementChemistry) = 0; virtual BOOL QuantifySpectrumOut(DWORD a_nMilliseconds, long* a_pCounts, DWORD a_nBufferSize, CElementChemistriesList& a_listElementChemistry) = 0; // x-Ray data DWORD m_nRayData[(long)EDSConst::XANA_CHANNELS]; //amplify time list float m_list_ampTime[(long)EDSConst::MAX_AMPTIME_CONSTANTS]; //amplify times long m_nTimeCounts; // do quantification BOOL m_bDoQuantification; }; typedef std::shared_ptr COTSEDSBasePtr; }