Mech-Eye API 2.3.4
API reference documentation for Mech-Eye 3D Laser Profiler
All Classes Functions Variables Typedefs Enumerations Enumerator Pages
ScanParameters.h
1#pragma once
2#include "Parameter.h"
3
4namespace mmind {
5
6namespace eye {
7
8namespace trigger_settings {
9
11{
12public:
13 static constexpr const char* name = "DataAcquisitionTriggerSource";
14
15 static constexpr const char* description =
16 "Select the source of the signals that trigger the scan of a single frame.\nIf you use "
17 "external input signal to trigger scanning, select \"External\".\nIf you need to trigger "
18 "scanning with software, select \"Software\".";
19
20 static constexpr Parameter::Type type = Parameter::Type::_Enum;
21
22 enum struct Value {
23 Software,
24 External,
25 };
26};
27
29{
30public:
31 static constexpr const char* name = "LineScanTriggerSource";
32
33 static constexpr const char* description =
34 "Select the source of the signals that trigger the scan of a single line.\nIf you use "
35 "encoder to trigger scanning, select \"Encoder\".\nIf you need to trigger scanning at a "
36 "fixed rate, select \"FixedRate\" and adjust \"SoftwareTriggerRate\".";
37
38 static constexpr Parameter::Type type = Parameter::Type::_Enum;
39
40 enum struct Value {
41 FixedRate,
42 Encoder,
43 };
44};
45
47{
48public:
49 static constexpr const char* name = "SoftwareTriggerRate";
50
51 static constexpr const char* description =
52 "When \"LineScanTriggerSource\" is set to \"FixedRate\", set the fixed rate at which "
53 "the laser profiler is triggered to scan.\n\nThe maximum value of this parameter is the "
54 "current \"MaxScanRate\". \"SoftwareTriggerRate\" is unavailable when "
55 "\"LineScanTriggerSource\" is set to \"Encoder\".";
56
57 static constexpr Parameter::Type type = Parameter::Type::_Float;
58
59 static constexpr const char* unit = "Hz";
60};
61
63{
64public:
65 static constexpr const char* name = "MaxScanRate";
66
67 static constexpr const char* description =
68 "The maximum scan rate that the laser profiler can reach. The maximum scan rate is "
69 "affected by the following parameters: \"ExposureTime\", \"ZDirectionRoi\", and "
70 "\"ExposureDelay\"";
71
72 static constexpr Parameter::Type type = Parameter::Type::_Float;
73
74 static constexpr const char* unit = "Hz";
75};
76
78{
79public:
80 static constexpr const char* name = "EncoderTriggerDirection";
81
82 static constexpr const char* description =
83 "Select the encoder motion direction that triggers scanning.\nChannelALeading: Scanning "
84 "is triggered when channel A is leading.\nChannelBLeading: Scanning is triggered when "
85 "channel B is leading. \nBoth: Scanning is triggered when either channel A or channel B is "
86 "leading.";
87
88 static constexpr Parameter::Type type = Parameter::Type::_Enum;
89
90 enum struct Value {
91 ChannelALeading,
92 ChannelBLeading,
93 Both,
94 };
95};
96
98{
99public:
100 static constexpr const char* name = "EncoderTriggerSignalCountingMode";
101
102 static constexpr const char* description =
103 "Set the number of signals to be counted in an encoder cycle. Counted signals are used to "
104 "trigger scanning.\nNote: This parameter affects the adjustment of "
105 "\"EncoderTriggerInterval\".\n\nMultiple_1: counts 1 signal in an encoder "
106 "cycle.\nMULTIPLE_2: counts 2 signals in an encoder cycle.\nMULTIPLE_4: counts 3 signals "
107 "in an encoder cycle.";
108
109 static constexpr Parameter::Type type = Parameter::Type::_Enum;
110
111 enum struct Value {
112 Multiple_1,
113 Multiple_2,
114 Multiple_4,
115 };
116};
117
119{
120public:
121 static constexpr const char* name = "EncoderTriggerInterval";
122
123 static constexpr const char* description =
124 "Set the number of trigger signals needed for scanning one line.";
125
126 static constexpr Parameter::Type type = Parameter::Type::_Int;
127};
128} // namespace trigger_settings
129
130namespace scan_settings {
131
133{
134public:
135 static constexpr const char* name = "ScanLineCount";
136
137 static constexpr const char* description =
138 "Set the number of profiles needed to generate one intensity image/depth map.\nMake sure "
139 "that the set value can cover one target object completely.";
140
141 static constexpr Parameter::Type type = Parameter::Type::_Int;
142};
143
145{
146public:
147 static constexpr const char* name = "DataPointsPerProfile";
148
149 static constexpr const char* description = "The number of data points in a profile.";
150
151 static constexpr Parameter::Type type = Parameter::Type::_Int;
152
153 static constexpr const char* unit = "";
154};
155
157{
158public:
159 static constexpr const char* name = "ExposureDelay";
160
161 static constexpr const char* description =
162 "Set the delay time between laser emission and start of exposure.\n\nLarger exposure delay "
163 "results in more stable brightness of the laser lines in the raw image, thus more stable "
164 "quality of the intensity image and depth map. However, the \"MaxScanRate\" will be "
165 "reduced.";
166
167 static constexpr Parameter::Type type = Parameter::Type::_Int;
168
169 static constexpr const char* unit = "us";
170};
171
173{
174public:
175 static constexpr const char* name = "BatchRetrievalTimeout";
176
177 static constexpr const char* description =
178 "Set the timeout period for retrieving a batch of data. If no batches are available for "
179 "retrieval within the set timeout period, the current round of data acquisition is "
180 "automatically stopped.\nThis timeout period should be no shorter than the amount of time "
181 "needed for scanning 16 lines. If line scan is triggered at a slow rate, increase this "
182 "parameter.\nA value of 0 or -1 corresponds to an infinite timeout period.";
183
184 static constexpr Parameter::Type type = Parameter::Type::_Int;
185
186 static constexpr const char* unit = "ms";
187};
188
190{
191public:
192 static constexpr const char* name = "CallbackRetrievalTimeout";
193
194 static constexpr const char* description =
195 "Set the timeout period for retrieving data when using a callback function. If none or "
196 "only some of the data is retrieved within the set timeout period, the current round of "
197 "data acquisition is automatically stopped. The amount of data to be retrieved is "
198 "determined by the \"ScanLineCount\" parameter.\nA value of 0 or -1 corresponds to an "
199 "infinite timeout period.";
200
201 static constexpr Parameter::Type type = Parameter::Type::_Int;
202
203 static constexpr const char* unit = "ms";
204};
205
206} // namespace scan_settings
207
208namespace point_cloud_resolutions {
210{
211public:
212 static constexpr const char* name = "XAxisResolution";
213
214 static constexpr const char* description =
215 "Displays the resolution in the X direction, which is the distance between two neighboring "
216 "points along the direction of the laser line.";
217
218 static constexpr Parameter::Type type = Parameter::Type::_Float;
219
220 static constexpr const char* unit = "um";
221};
222
224{
225public:
226 static constexpr const char* name = "YResolution";
227
228 static constexpr const char* description =
229 "The resolution in the Y direction, which is the distance between two neighboring points "
230 "along the travel direction of the target object.";
231
232 static constexpr Parameter::Type type = Parameter::Type::_Float;
233
234 static constexpr const char* unit = "um";
235};
236} // namespace point_cloud_resolutions
237
238namespace correction {
239
241{
242public:
243 static constexpr const char* name = "TiltCorrectionAngle";
244
245 static constexpr const char* description = "Correct the tilt of the profile around the Y-axis.";
246
247 static constexpr Parameter::Type type = Parameter::Type::_Float;
248
249 static constexpr const char* unit = "degree";
250};
251
253{
254public:
255 static constexpr const char* name = "HeightCorrectionRatio";
256
257 static constexpr const char* description = "Correct the Z values of the profile.";
258
259 static constexpr Parameter::Type type = Parameter::Type::_Float;
260};
261} // namespace correction
262
263} // namespace eye
264} // namespace mmind
Type
Describes the device parameter data types.
Definition Parameter.h:30
@ _Int
Integer type.
Definition Parameter.h:31
@ _Enum
Enumeration type.
Definition Parameter.h:34
@ _Float
Double type.
Definition Parameter.h:32