#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