OTSSemBase.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #pragma once
  2. #include "SEMCommonConst.h"
  3. #include "SEMDataMsr.h"
  4. #include "SEMDataGnr.h"
  5. namespace OTSController {
  6. using namespace OTSDATA;
  7. const long WAITING_INVERAL = 500;
  8. const int SCREEN_SIZE_DEFAULT_MAG100_X = 1142;
  9. const int SCREEN_SIZE_DEFAULT_MAG100_Y = 856; //SCREEN_SIZE_DEFAULT_MAG100_Y = SCREEN_SIZE_DEFAULT_MAG100_X * 0.75
  10. // Base of SEM Function
  11. class __declspec(dllexport) COTSSemBase
  12. {
  13. public:
  14. COTSSemBase();
  15. ~COTSSemBase();
  16. public:
  17. // move SEM to the given point
  18. virtual BOOL MoveSEMToPoint(const CPoint& a_poiPosition, const double& a_dRotation);
  19. // SEM data measure
  20. virtual BOOL GetSEMDataMsr(CSEMDataMsrPtr a_pSEMDataMsr);
  21. virtual BOOL SetSEMDataMsr(CSEMDataMsrPtr a_pSEMDataMsr);
  22. // SEM data general
  23. virtual BOOL GetSEMDataGnr(CSEMDataGnrPtr a_pSEMDataGnr);
  24. virtual BOOL SetSEMDataGnr(CSEMDataGnrPtr a_pSEMDataGnr);
  25. // SEM Controller type ID
  26. virtual OTSSEMController::SEM_ID GetType() = 0;
  27. // calls the SEM to create a connection
  28. virtual BOOL Connect(void) = 0;
  29. // disconnects from the SEM
  30. virtual BOOL Disconnect(void) = 0;
  31. // connect test
  32. virtual BOOL IsConnected(void) = 0;
  33. // beam blank
  34. virtual BOOL GetBeamBlank(long& a_nBeamBlank) = 0;
  35. virtual BOOL SetBeamBlank(long a_nBeamBlank) = 0;
  36. // brightness
  37. virtual BOOL GetBrightness(double& a_dBrightness) = 0;
  38. virtual BOOL SetBrightness(double a_dBrightness) = 0;
  39. // contrast
  40. virtual BOOL GetContrast(double& a_dContrast) = 0;
  41. virtual BOOL SetContrast(double a_dContrast) = 0;
  42. // working distance
  43. virtual BOOL GetWorkingDistance(double& a_dWorkingDistance) = 0;
  44. virtual BOOL SetWorkingDistance(double a_dWorkingDistance) = 0;
  45. //high tension
  46. virtual BOOL GetHighTension(double& a_dKV) = 0;
  47. virtual BOOL SetHighTension(double a_dKV) = 0;
  48. // magnification
  49. virtual BOOL GetMagnification(double& a_dMagnification) = 0;
  50. virtual BOOL SetMagnification(double a_dMagnification) = 0;
  51. // scan field size
  52. virtual BOOL GetScanFieldSize(double& a_dScanFieldSizeX, double& a_dScanFieldSizeY) = 0;
  53. virtual BOOL SetScanFieldSizeX(double a_dScanFieldSizeX) = 0;
  54. // HT
  55. virtual BOOL GetHTOnOff(BOOL& a_bHTValue) = 0;
  56. virtual BOOL SetHTOnOff(BOOL a_bHTValue) = 0;
  57. virtual BOOL SetBeamCurrent(BOOL a_bValue) = 0;//bvalue=true
  58. // spot size
  59. virtual BOOL GetSpotSize(double& a_dSpotSize) = 0;
  60. virtual BOOL SetSpotSize(double a_dSpotSize) = 0;
  61. // external mode
  62. virtual int GetExternalMode() = 0;
  63. virtual BOOL SetScanExternal(BOOL externalOn) = 0;
  64. // position
  65. virtual BOOL GetPositionXY(double& a_dPositionX, double& a_dPositionY, double& a_dRotation) = 0;
  66. virtual BOOL SetPositionXY(double a_dPositionX, double a_dPositionY, double a_dRotation) = 0;
  67. virtual BOOL SetPositionXY(double a_dPositionX, double a_dPositionY) = 0;
  68. // scan field100
  69. virtual CSize GetScanField100() { return m_oScanField100; }
  70. virtual void SetScanField100(const CSize& a_oScanField100) { m_oScanField100 = a_oScanField100; }
  71. // rotation flag
  72. BOOL GetRotationFlag() { return m_bAllowRotation; }
  73. void SetRotationFlag(BOOL a_bAllowRotation) { m_bAllowRotation = a_bAllowRotation; }
  74. protected:
  75. // convert scan field size to magnification
  76. BOOL ScanFieldSizeToMag(double& a_dMagnification, double a_dScanFieldSizeX);
  77. // convert magnification to scan field size.
  78. BOOL MagToScanFieldSize(double a_dMagnification, double& a_dScanFieldSizeX, double& a_dScanFieldSizeY);
  79. // The scan field at 100 mag
  80. CSize m_oScanField100;
  81. // rotation flag
  82. BOOL m_bAllowRotation;
  83. };
  84. typedef std::shared_ptr<COTSSemBase> __declspec(dllexport) CSemBasePtr;
  85. }