Scope
XYZControlGalil.h
1 #pragma once
2 
3 #include "ScopeDefines.h"
4 
5 // Only use this code if we need it
6 #ifdef SCOPE_USE_GALIL_XYZSTAGE
7 
8 #include "XYZControl.h"
9 
10 // Forward declaration
11 namespace scope{
12  class GalilController;
13  namespace parameters {
14  class XYZControlGalil;
15  }
16 }
17 
18 namespace scope {
19 
22 class XYZControlGalil :
23  public XYZControl {
24 
25 protected:
27  std::unique_ptr<GalilController> gc;
28 
30  double xcountspermicron;
31 
33  double ycountspermicron;
34 
36  double zcountspermicron;
37 
38 public:
39  XYZControlGalil();
40  ~XYZControlGalil();
41 
43  void Initialize(parameters::XYZControlGalil& _params);
44 
45  void UpdatePositionValues() override;
46 
47  double CurrentXPosition() override;
48 
49  double CurrentYPosition() override;
50 
51  double CurrentZPosition() override;
52 
53  void SetZeroXAxis() override;
54 
55  void SetZeroYAxis() override;
56 
57  void SetZeroZAxis() override;
58 
59  void MoveRelative(const double& _xrel, const double& _yrel, const double& _zrel) override;
60 
61  void MoveAbsolute(const double& _xabs, const double& _yabs, const double& _zabs) override;
62 };
63 
64 }
65 
66 #endif