Scope
Devices.h
1 #pragma once
2 
3 #include "ScopeDefines.h"
4 #include "ScopeDatatypes.h"
5 #include "helpers/ScopeNumber.h"
6 #include "helpers/ScopeString.h"
7 #include "helpers/helpers.h"
8 #include "Base.h"
9 
10 namespace scope {
11 
12 namespace parameters {
13 
14 using boost::property_tree::wptree;
15 
20  : public Base {
21 public:
22  XYZControl();
23 
26 
29 
32 
35 
36  void Load(const wptree& pt) override;
37  void Save(wptree& pt) const override;
38 };
39 
44  : public XYZControl {
45 public:
47 
50 
53 
56 
59 
60  void Load(const wptree& pt) override;
61  void Save(wptree& pt) const override;
62 };
63 
68  : public XYZControl {
69 public:
71 
74 
78 
79  void Load(const wptree& pt) override;
80  void Save(wptree& pt) const override;
81 };
82 
89  : public Base {
90 public:
91  FastZControl();
92 
94  std::map<double, double> calibration;
95 
98 
101 
104 
105 public:
110  virtual bool LoadCalibration(const std::wstring& _filepath);
111 
113  virtual double PositionToVoltage(const double& _positionum);
114 
115  void Load(const wptree& pt) override;
116  void Save(wptree& pt) const override;
117 };
118 
123  : public FastZControl {
124 public:
125  FastZControlETL();
126 
127  void Load(const wptree& pt) override;
128  void Save(wptree& pt) const override;
129 };
130 
135  : public Base {
136 public:
137  XYControl();
138 
141 
144 
147 
150 
153 
154  void Load(const wptree& pt) override;
155  void Save(wptree& pt) const override;
156 };
157 
162  : public XYControl {
163 public:
164  XYControlGalil();
165 
168 
171 
172  void Load(const wptree& pt) override;
173  void Save(wptree& pt) const override;
174 };
175 
180  : public XYControl {
181 public:
182  XYControlStanda();
183 
186 
189 
192 
195 
196  void Load(const wptree& pt) override;
197  void Save(wptree& pt) const override;
198 };
199 
200 
201 }
202 
203 }
ScopeNumber< double > minoutput
Minimum output voltage to fast z, for ETL usually 0V.
Definition: Devices.h:97
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Devices.cpp:67
ScopeNumber< double > zpos
position in micron of z axis
Definition: Devices.h:31
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Devices.cpp:175
Parameters for a Sutter XYZ stage.
Definition: Devices.h:67
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Devices.cpp:140
ScopeNumber< uint32_t > devicey
Standa device number for y axis.
Definition: Devices.h:188
virtual bool LoadCalibration(const std::wstring &_filepath)
Loads calibration data from a file, overwrites old calibration map.
Definition: Devices.cpp:80
ScopeNumber< double > speed
movement speed in steps/sec
Definition: Devices.h:191
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Devices.cpp:40
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Devices.cpp:61
Parameters for a general xy stage.
Definition: Devices.h:134
ScopeNumber< double > ypos
position in micron of y axis
Definition: Devices.h:28
All parameter classes derive from this.
Definition: Base.h:21
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Devices.cpp:163
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Devices.cpp:26
ScopeNumber< double > countspermicron
conversion factor between encoder counts and micrometers
Definition: Devices.h:170
Parameters for a Galil controller xy stage (e.g.
Definition: Devices.h:161
ScopeNumber< double > xpos
position in micron of x axis
Definition: Devices.h:25
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Devices.cpp:192
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Devices.cpp:48
ScopeNumber< double > xcountspermicron
conversion factor between encoder counts and micrometers for x axis
Definition: Devices.h:52
ScopeNumber< double > pollinterval
interval in milliseconds to poll device, be careful: long intervals slow quitting of Scope (since to ...
Definition: Devices.h:34
ScopeString calibrationfile
calibration file name
Definition: Devices.h:103
ScopeNumber< double > zcountspermicron
conversion factor between encoder counts and micrometers for z axis
Definition: Devices.h:58
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Devices.cpp:156
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Devices.cpp:180
Parameters for a Galil XYZ stage (e.g.
Definition: Devices.h:43
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Devices.cpp:19
virtual double PositionToVoltage(const double &_positionum)
Converts a position in micron to voltage.
Definition: Devices.cpp:98
In here all declarations for all kinds of datatypes Scope needs.
Parameters for a general XYZ stage.
Definition: Devices.h:19
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Devices.cpp:200
ScopeNumber< uint32_t > devicex
Standa device number for x axis.
Definition: Devices.h:185
ScopeNumber< double > buttonstepsize
size of the step for up/down/left/right buttons
Definition: Devices.h:149
ScopeString stageinfo
string to put information about the stage in (do no Load or Save this)
Definition: Devices.h:152
ScopeNumber< double > ycountspermicron
conversion factor between encoder counts and micrometers for y axis
Definition: Devices.h:55
ScopeString comstring
connection string for Galil controller
Definition: Devices.h:167
ScopeString comstring
connection string for Galil controller
Definition: Devices.h:49
ScopeNumber< double > xpos
x position of xy device
Definition: Devices.h:140
A templated class for a thread-safe std::wstring, with signals that are called on value changes...
Definition: ScopeString.h:8
ScopeNumber< double > pollinterval
interval in milliseconds to poll device, be careful: long intervals slow quitting of Scope (since to ...
Definition: Devices.h:146
Parameters for an ETL.
Definition: Devices.h:122
Parameters for a fast Z drive that is controlled by a voltage.
Definition: Devices.h:88
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Devices.cpp:122
Various helper functions and classes for Scope.
std::map< double, double > calibration
calibration map, key is absolute position in microns, value is corresponding output voltage ...
Definition: Devices.h:94
ScopeString comstring
connection string for Sutter controller
Definition: Devices.h:73
ScopeNumber< double > ypos
y position of xy device
Definition: Devices.h:143
ScopeNumber< double > microstepspermicron
number of microsteps (1/8 full step) per micrometer, 3.226 microsteps per micrometer from Standa 8MTF...
Definition: Devices.h:194
ScopeNumber< double > microstepspermicron
conversion factor between encoder counts (microsteps) and micrometers for x axis usually 0...
Definition: Devices.h:77
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Devices.cpp:130
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Devices.cpp:144
ScopeNumber< double > maxoutput
Maximum output voltage to fast z, for ETL usually 4V.
Definition: Devices.h:100
Parameters for a Standa xy stage.
Definition: Devices.h:179