#pragma once #include "OTSSemBase.h" #include "OTSBrukerImpl.h" namespace OTSController { class __declspec(dllexport) COTSSEMBruker : public COTSSemBase { public: COTSSEMBruker(); ~COTSSEMBruker(); public: virtual OTSSEMController::SEM_ID GetType() override { return OTSSEMController::SEM_ID::BRUKER; } virtual BOOL IsConnected(void) override; virtual BOOL Connect(void) override; virtual BOOL Disconnect(void) override; virtual BOOL GetBrightness(double& a_dBrightness) override; virtual BOOL SetBrightness(double a_dBrightness) override; virtual BOOL GetContrast(double& a_dContrast) override; virtual BOOL SetContrast(double a_dContrast) override; virtual BOOL GetWorkingDistance(double& a_dWorkingDistance) override; virtual BOOL SetWorkingDistance(double a_dWorkingDistance) override; virtual BOOL GetHighTension(double& a_dKV) override; virtual BOOL SetHighTension(double a_dKV) override; virtual BOOL GetMagnification(double& a_dMagnification) override; virtual BOOL SetMagnification(double a_dMagnification) override; virtual BOOL GetScanFieldSize(double& a_dScanFieldSizeX, double& a_dScanFieldSizeY) override; virtual BOOL SetScanFieldSizeX(double a_dScanFieldSizeX) override; virtual BOOL GetHTOnOff(BOOL& a_bHTValue) override { return TRUE; } virtual BOOL SetHTOnOff(BOOL a_bHTValue) override; // note: a_bHTValue is FALSE will turn HT off virtual BOOL GetBeamBlank(long& a_nBeamBlank) override { return TRUE; } virtual BOOL SetBeamBlank(long a_nBeamBlank) override; virtual BOOL SetBeamCurrent(BOOL a_nBeamBlank) override; virtual BOOL GetPositionXY(double& a_dPositionX, double& a_dPositionY, double& a_dPositionR) override; virtual BOOL SetPositionXY(double a_dPositionX, double a_dPositionY, double a_dPositionR) override; virtual BOOL SetPositionXY(double a_dPositionX, double a_dPositionY) override; virtual BOOL GetSpotSize(double& a_dSpotSize) override; virtual BOOL SetSpotSize(double a_dSpotSize) override; virtual BOOL SetScanExternal(BOOL external) override; virtual int GetExternalMode() override; private: std::shared_ptr m_pBrukerImplPtr; BOOL m_bConnected; double dPositionX=0, dPositionY=0, dPositionZ=0, dTilt=0, dRotation=0; }; }