123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #pragma once
- #include "SEMCommonConst.h"
- #include "SEMDataMsr.h"
- #include "SEMDataGnr.h"
- namespace OTSController {
- using namespace OTSDATA;
- const long WAITING_INVERAL = 500;
- const int SCREEN_SIZE_DEFAULT_MAG100_X = 1142;
- const int SCREEN_SIZE_DEFAULT_MAG100_Y = 856; //SCREEN_SIZE_DEFAULT_MAG100_Y = SCREEN_SIZE_DEFAULT_MAG100_X * 0.75
- // Base of SEM Function
- class __declspec(dllexport) COTSSemBase
- {
- public:
- COTSSemBase();
- ~COTSSemBase();
- public:
- // move SEM to the given point
- virtual BOOL MoveSEMToPoint(const CPoint& a_poiPosition, const double& a_dRotation);
- // SEM data measure
- virtual BOOL GetSEMDataMsr(CSEMDataMsrPtr a_pSEMDataMsr);
- virtual BOOL SetSEMDataMsr(CSEMDataMsrPtr a_pSEMDataMsr);
- // SEM data general
- virtual BOOL GetSEMDataGnr(CSEMDataGnrPtr a_pSEMDataGnr);
- virtual BOOL SetSEMDataGnr(CSEMDataGnrPtr a_pSEMDataGnr);
- // SEM Controller type ID
- virtual OTSSEMController::SEM_ID GetType() = 0;
-
- // calls the SEM to create a connection
- virtual BOOL Connect(void) = 0;
- // disconnects from the SEM
- virtual BOOL Disconnect(void) = 0;
- // connect test
- virtual BOOL IsConnected(void) = 0;
- // beam blank
- virtual BOOL GetBeamBlank(long& a_nBeamBlank) = 0;
- virtual BOOL SetBeamBlank(long a_nBeamBlank) = 0;
- // brightness
- virtual BOOL GetBrightness(double& a_dBrightness) = 0;
- virtual BOOL SetBrightness(double a_dBrightness) = 0;
- // contrast
- virtual BOOL GetContrast(double& a_dContrast) = 0;
- virtual BOOL SetContrast(double a_dContrast) = 0;
- // working distance
- virtual BOOL GetWorkingDistance(double& a_dWorkingDistance) = 0;
- virtual BOOL SetWorkingDistance(double a_dWorkingDistance) = 0;
- //high tension
- virtual BOOL GetHighTension(double& a_dKV) = 0;
- virtual BOOL SetHighTension(double a_dKV) = 0;
- // magnification
- virtual BOOL GetMagnification(double& a_dMagnification) = 0;
- virtual BOOL SetMagnification(double a_dMagnification) = 0;
- // scan field size
- virtual BOOL GetScanFieldSize(double& a_dScanFieldSizeX, double& a_dScanFieldSizeY) = 0;
- virtual BOOL SetScanFieldSizeX(double a_dScanFieldSizeX) = 0;
- // HT
- virtual BOOL GetHTOnOff(BOOL& a_bHTValue) = 0;
- virtual BOOL SetHTOnOff(BOOL a_bHTValue) = 0;
- virtual BOOL SetBeamCurrent(BOOL a_bValue) = 0;//bvalue=true
-
- // spot size
- virtual BOOL GetSpotSize(double& a_dSpotSize) = 0;
- virtual BOOL SetSpotSize(double a_dSpotSize) = 0;
- // external mode
- virtual int GetExternalMode() = 0;
- virtual BOOL SetScanExternal(BOOL externalOn) = 0;
- // position
- virtual BOOL GetPositionXY(double& a_dPositionX, double& a_dPositionY, double& a_dRotation) = 0;
- virtual BOOL SetPositionXY(double a_dPositionX, double a_dPositionY, double a_dRotation) = 0;
- virtual BOOL SetPositionXY(double a_dPositionX, double a_dPositionY) = 0;
- // scan field100
- virtual CSize GetScanField100() { return m_oScanField100; }
- virtual void SetScanField100(const CSize& a_oScanField100) { m_oScanField100 = a_oScanField100; }
- // rotation flag
- BOOL GetRotationFlag() { return m_bAllowRotation; }
- void SetRotationFlag(BOOL a_bAllowRotation) { m_bAllowRotation = a_bAllowRotation; }
- protected:
- // convert scan field size to magnification
- BOOL ScanFieldSizeToMag(double& a_dMagnification, double a_dScanFieldSizeX);
- // convert magnification to scan field size.
- BOOL MagToScanFieldSize(double a_dMagnification, double& a_dScanFieldSizeX, double& a_dScanFieldSizeY);
- // The scan field at 100 mag
- CSize m_oScanField100;
- // rotation flag
- BOOL m_bAllowRotation;
- };
- typedef std::shared_ptr<COTSSemBase> __declspec(dllexport) CSemBasePtr;
- }
|