OTSScanBase.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #pragma once
  2. #include "BSEImg.h"
  3. #include "stdafx.h"
  4. #include "SEMCommonConst.h"
  5. namespace OTSController
  6. {
  7. using namespace OTSDATA;
  8. /// <summary>
  9. /// Interface of Image Acquisition Device
  10. /// </summary>
  11. class __declspec(dllexport) COTSScanBase
  12. {
  13. public:
  14. enum DEFAULT_SCAN_PARAMETER
  15. {
  16. SCAN_MAX_X = 4096,
  17. SCAN_MAX_Y = 3200,
  18. SCAN_STEP_SIZE = 4,
  19. SCAN_PIXEL_DWELL = 1,
  20. SCAN_INTER_PIXEL_DWELL = 1,
  21. SCAN_NUMBER_OF_READS = 1,
  22. SCAN_IMATRIX = 4
  23. };
  24. public:
  25. COTSScanBase();
  26. ~COTSScanBase();
  27. virtual ScanController::SCANNER_ID GetType() = 0;
  28. // initialization
  29. virtual BOOL Init() = 0;
  30. /// <summary>
  31. /// Capture a backscatter image, and apply any post processing.
  32. /// Note: The scanner interface seems to be heavily polluted by edax specific parameters
  33. /// passed to this and many other functions. The edax scanner collects a frame based
  34. /// on these parameters, other scanners (e.g. bruker,) rely on internal state set
  35. /// via SetImageSize, SetDwellTime etc.
  36. /// </summary>
  37. virtual CBSEImgPtr AcquireBSEImage() = 0;
  38. // move beam to point
  39. virtual BOOL MoveBeamTo(CPoint& a_beamPos) = 0;
  40. /// set dwell time
  41. virtual BOOL SetDwellTime(long a_nDwellTime) = 0;
  42. // set Image Size
  43. virtual BOOL SetImageSize(long a_nImageSize,long nHeight) = 0;
  44. };
  45. typedef std::shared_ptr<COTSScanBase> COTSScanBasePtr;
  46. }