Mech-Eye API 2.3.3
API reference documentation for Mech-Eye 3D Laser Profiler
Loading...
Searching...
No Matches
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 = "CallbackRetrievalTimeout";
176
177 static constexpr const char* description =
178 "Set the timeout for retrieving profile data when using callback.\n If inputted value is "
179 "0 or -1, the timeout for retrieving profile data will be infinity";
180
181 static constexpr Parameter::Type type = Parameter::Type::_Int;
182
183 static constexpr const char* unit = "ms";
184};
185
186} // namespace scan_settings
187
188namespace point_cloud_resolutions {
190{
191public:
192 static constexpr const char* name = "XAxisResolution";
193
194 static constexpr const char* description =
195 "Displays the resolution in the X direction, which is the distance between two neighboring "
196 "points along the direction of the laser line.";
197
198 static constexpr Parameter::Type type = Parameter::Type::_Float;
199
200 static constexpr const char* unit = "um";
201};
202
204{
205public:
206 static constexpr const char* name = "YResolution";
207
208 static constexpr const char* description =
209 "The resolution in the Y direction, which is the distance between two neighboring points "
210 "along the travel direction of the target object.";
211
212 static constexpr Parameter::Type type = Parameter::Type::_Float;
213
214 static constexpr const char* unit = "um";
215};
216} // namespace point_cloud_resolutions
217
218namespace correction {
219
221{
222public:
223 static constexpr const char* name = "TiltCorrectionAngle";
224
225 static constexpr const char* description = "Correct the tilt of the profile around the Y-axis.";
226
227 static constexpr Parameter::Type type = Parameter::Type::_Float;
228
229 static constexpr const char* unit = "degree";
230};
231
233{
234public:
235 static constexpr const char* name = "HeightCorrectionRatio";
236
237 static constexpr const char* description = "Correct the Z values of the profile.";
238
239 static constexpr Parameter::Type type = Parameter::Type::_Float;
240};
241} // namespace correction
242
243} // namespace eye
244} // 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