OTSScanOxford.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #pragma once
  2. #include "../OTSControl/OTSScanBase.h"
  3. #include "OTSOxfordImpl.h"
  4. namespace OTSController
  5. {
  6. const long RESOLUTION_OXFORD_ID_MIN = 0;
  7. const long RESOLUTION_OXFORD_ID_MAX = 6;
  8. // DWELL_TIME of OXFORD
  9. const long DWELLTIME_OXFORD_ID_MIN = 0;
  10. const long DWELLTIME_OXFORD_ID_MAX = 10;
  11. const long DWELLTIME_OXFORD_ID_DEFAULT = 4;
  12. const long DWELLTIME_OXFORD_VALUES[DWELLTIME_OXFORD_ID_MAX + 1] = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 };
  13. const CString DWELLTIME_OXFORD_STRINGS[DWELLTIME_OXFORD_ID_MAX + 1] = { _T("1¦Ìs"), _T("2¦Ìs"), _T("4¦Ìs"), _T("8¦Ìs"), _T("16¦Ìs"),
  14. _T("32¦Ìs"), _T("64¦Ìs"), _T("128¦Ìs"), _T("256¦Ìs"), _T("512¦Ìs"), _T("1024¦Ìs") };
  15. class COTSScanOxford :public COTSScanBase
  16. {
  17. public:
  18. /// <summary>
  19. /// Creates a new IADOxford instance.
  20. /// </summary>
  21. COTSScanOxford();
  22. virtual ~COTSScanOxford();
  23. // initialization
  24. virtual BOOL Init() override;
  25. virtual ScanController::SCANNER_ID GetType() override { return ScanController::SCANNER_ID::OXFORD; }
  26. // Get matrix Size
  27. virtual CSize GetMatrixSize(int a_nMatrixIndex) override;
  28. // move beam to point
  29. virtual BOOL MoveBeamTo(CPoint& a_beamPos) override;
  30. // Set point Scan
  31. virtual BOOL SetPointScan(int /*a_nMatrixIndex*/) override { return true; }
  32. // Start Scan Table
  33. virtual BOOL StartScanTable(int a_nMatrixIndex, unsigned int nP, int* pnx, int* pny) override;
  34. // set Image Size
  35. virtual BOOL SetImageSize(long nImageSize,long nHeight) override;
  36. /// set dwell time
  37. virtual BOOL SetDwellTime(long nDwellTime) override;
  38. virtual CBSEImgPtr AcquireBSEImage(int a_nMatrixIndex, int nReads, int nDwell) override;
  39. virtual long GetDwellTimeByIndex(const long a_nIndex) override;
  40. virtual BOOL SetDwellTimeByIndex(const long a_nIndex) override;
  41. virtual BOOL SetScanFieldSize(const int a_nWidth, const int a_nHeight) override;
  42. virtual BOOL SetEMPosition(const int a_nPosX, const int a_nPosY) override;
  43. private:
  44. std::shared_ptr<OxfordImpl> m_oxfordImpl;
  45. };
  46. }