#pragma once #include "../OTSSemBase.h" namespace OTSController { const double g_dScanfieldSizeXDef = 1024; const double g_dScanfieldSizeYDef = 800; class __declspec(dllexport) COTSSemSim: public COTSSemBase { public: COTSSemSim(); ~COTSSemSim(); public: virtual OTSSEMController::SEM_ID GetType() { return OTSSEMController::SEM_ID::OFFLINE; } virtual BOOL Connect(void) override { m_bConnected = true; return TRUE; } virtual BOOL Disconnect(void) override { m_bConnected = false; return TRUE; } virtual BOOL IsConnected(void) override{ return m_bConnected; } virtual BOOL GetBeamBlank(long& a_nBeamBlank) override { a_nBeamBlank = m_nBeamBlank; return TRUE; } virtual BOOL SetBeamBlank(long a_nBeamBlank) override { m_nBeamBlank = a_nBeamBlank; return TRUE; } virtual BOOL SetBeamCurrent(BOOL a_nBeamCurrent) override { return TRUE; }; virtual BOOL GetBrightness(double& a_dBrightness) override { a_dBrightness = m_dBrightness; return TRUE; } virtual BOOL SetBrightness(double a_dBrightness) override { m_dBrightness = a_dBrightness; return TRUE; } virtual BOOL GetContrast(double& a_dContrast) override { a_dContrast = m_dContrast; return TRUE; } virtual BOOL SetContrast(double a_dContrast) override { m_dContrast = a_dContrast; return TRUE; } virtual BOOL GetWorkingDistance(double& a_dWorkingDistance) override { a_dWorkingDistance = m_dWorkingDistance; return TRUE; } virtual BOOL SetWorkingDistance(double a_dWorkingDistance) override { m_dWorkingDistance = a_dWorkingDistance; return TRUE; } virtual BOOL GetHighTension(double& a_dKV) override { a_dKV = m_dKV; return TRUE; } virtual BOOL SetHighTension(double a_dKV) override { m_dKV = a_dKV; return TRUE; } virtual BOOL GetMagnification(double& a_dMag) override { a_dMag = m_dMagnification; return TRUE; } virtual BOOL SetMagnification(double a_dMag) override { m_dMagnification = a_dMag; return TRUE; } virtual BOOL GetScanFieldSize(double& a_dX, double& a_dY) override { a_dX = m_dScanFieldSizeX; a_dY = m_dScanFieldSizeY; return TRUE; } virtual BOOL SetScanFieldSizeX(double a_dX) override { m_dScanFieldSizeX = a_dX; return TRUE; } virtual BOOL GetScreenMetrics(double& a_dX, double& a_dY) { a_dX = g_dScanfieldSizeXDef; a_dY = g_dScanfieldSizeYDef; return TRUE; } virtual BOOL GetHTOnOff(BOOL& a_bOnOff) override { a_bOnOff = m_bBeamOn; return TRUE; } virtual BOOL SetHTOnOff(BOOL a_bOnOff) override { m_bBeamOn = a_bOnOff; return TRUE; } virtual BOOL GetPositionXY(double& a_dPositionX, double& a_dPositionY, double& a_dRotation) override { a_dPositionX = m_dCurrentPositionX; a_dPositionY = m_dCurrentPositionY; a_dRotation = m_dCurrentPositionR; return TRUE; } virtual BOOL SetPositionXY(double a_dPositionX, double a_dPositionY, double a_dRotation) override { m_dCurrentPositionX = a_dPositionX; m_dCurrentPositionY = a_dPositionY; m_dCurrentPositionR = a_dRotation; return TRUE; } virtual BOOL SetPositionXY(double a_dPositionX, double a_dPositionY) override { m_dCurrentPositionX = a_dPositionX; m_dCurrentPositionY = a_dPositionY; return TRUE; } virtual BOOL GetSpotSize(double& a_dSpotSize) override { a_dSpotSize = m_dSpotSize; return TRUE; } virtual BOOL SetSpotSize(double a_dSpotSize) override { m_dSpotSize = a_dSpotSize; return TRUE; } virtual BOOL SetScanExternal(BOOL a_bExternal) override { m_nScanMode = (a_bExternal ? 1 : 0); return TRUE; } inline virtual int GetExternalMode() override { return 1; }; private: BOOL m_bConnected; BOOL m_bBeamOn; long m_nBeamBlank; double m_dBrightness; double m_dContrast; double m_dSpotSize; double m_dMagnification; double m_dWorkingDistance; double m_dKV; double m_dCurrentPositionX; double m_dCurrentPositionY; double m_dCurrentPositionR; double m_dScanFieldSizeX; double m_dScanFieldSizeY; long m_nScanMode; }; }