#pragma once
#include "OTSScanBase.h"
#include "OTSBrukerImpl.h"
namespace OTSController {
// Bruker Image Acquisition Device
class COTSScanBrucker :public COTSScanBase
{
public:
///
/// Creates a new IADBruker instance.
///
COTSScanBrucker();
virtual ~COTSScanBrucker();
// initialization
virtual BOOL Init() override;
virtual ScanController::SCANNER_ID GetType() override { return ScanController::SCANNER_ID::BRUKER; }
public:
// Get matrix Size
virtual CSize GetMatrixSize(int a_nMatrixIndex) override;
// move beam to point
virtual BOOL MoveBeamTo(CPoint& a_beamPos) override;
// Set point Scan
virtual BOOL SetPointScan(int /*a_nMatrixIndex*/) override { return true; }
// Start Scan Table
virtual BOOL StartScanTable(int a_nMatrixIndex, unsigned int nP, int* pnx, int* pny) override;
// set Image Size
virtual BOOL SetImageSize(long nImageSize,long nHeight) override;
/// set dwell time
virtual BOOL SetDwellTime(long nDwellTime) override;
// acquire BSE image
virtual CBSEImgPtr AcquireBSEImage(/*int a_nMatrixIndex, int nReads, int nDwell*/) override;
virtual long GetDwellTimeByIndex(const long a_nIndex) override;
virtual BOOL SetDwellTimeByIndex(const long a_nIndex) override;
virtual BOOL SetScanFieldSize(const int a_nWidth, const int a_nHeight) override;
virtual BOOL SetEMPosition(const int a_nPosX, const int a_nPosY) override;
private:
std::shared_ptr m_pBrukerImpl;
};
}