Mech-Eye API 2.2.1
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\".";
55
56 static constexpr Parameter::Type type = Parameter::Type::_Float;
57
58 static constexpr const char* unit = "Hz";
59};
60
62{
63public:
64 static constexpr const char* name = "MaxScanRate";
65
66 static constexpr const char* description =
67 "The maximum scan rate that the laser profiler can reach. The maximum scan rate is "
68 "affected by the following parameters: \"ExposureTime\", \"ZDirectionRoi\", and "
69 "\"ExposureDelay\"";
70
71 static constexpr Parameter::Type type = Parameter::Type::_Float;
72
73 static constexpr const char* unit = "Hz";
74};
75
77{
78public:
79 static constexpr const char* name = "EncoderTriggerDirection";
80
81 static constexpr const char* description =
82 "Select the encoder motion direction that triggers scanning.\nChannelALeading: Scanning "
83 "is triggered when channel A is leading.\nChannelBLeading: Scanning is triggered when "
84 "channel B is leading. \nBoth: Scanning is triggered when either channel A or channel B is "
85 "leading.";
86
87 static constexpr Parameter::Type type = Parameter::Type::_Enum;
88
89 enum struct Value {
90 ChannelALeading,
91 ChannelBLeading,
92 Both,
93 };
94};
95
97{
98public:
99 static constexpr const char* name = "EncoderTriggerSignalCountingMode";
100
101 static constexpr const char* description =
102 "Set the number of signals to be counted in an encoder cycle. Counted signals are used to "
103 "trigger scanning.\nNote: This parameter affects the adjustment of "
104 "\"EncoderTriggerInterval\".\n\nMultiple_1: counts 1 signal in an encoder "
105 "cycle.\nMULTIPLE_2: counts 2 signals in an encoder cycle.\nMULTIPLE_4: counts 3 signals "
106 "in an encoder cycle.";
107
108 static constexpr Parameter::Type type = Parameter::Type::_Enum;
109
110 enum struct Value {
111 Multiple_1,
112 Multiple_2,
113 Multiple_4,
114 };
115};
116
118{
119public:
120 static constexpr const char* name = "EncoderTriggerInterval";
121
122 static constexpr const char* description =
123 "Set the number of trigger signals needed for scanning one line.";
124
125 static constexpr Parameter::Type type = Parameter::Type::_Int;
126};
127} // namespace trigger_settings
128
129namespace scan_settings {
130
132{
133public:
134 static constexpr const char* name = "ScanLineCount";
135
136 static constexpr const char* description =
137 "Set the number of profiles needed to generate one intensity image/depth map.\nMake sure "
138 "that the set value can cover one target object completely.";
139
140 static constexpr Parameter::Type type = Parameter::Type::_Int;
141};
142
144{
145public:
146 static constexpr const char* name = "DataPointsPerProfile";
147
148 static constexpr const char* description = "The number of data points in a profile.";
149
150 static constexpr Parameter::Type type = Parameter::Type::_Int;
151
152 static constexpr const char* unit = "";
153};
154
156{
157public:
158 static constexpr const char* name = "ExposureDelay";
159
160 static constexpr const char* description =
161 "Set the delay time between laser emission and start of exposure.\n\nLarger exposure delay "
162 "results in more stable brightness of the laser lines in the raw image, thus more stable "
163 "quality of the intensity image and depth map. However, the \"MaxScanRate\" will be "
164 "reduced.";
165
166 static constexpr Parameter::Type type = Parameter::Type::_Int;
167
168 static constexpr const char* unit = "us";
169};
170
172{
173public:
174 static constexpr const char* name = "CallbackRetrievalTimeout";
175
176 static constexpr const char* description =
177 "Set the timeout for retrieving profile data when using callback.\n If inputted value is "
178 "0 or -1, the timeout for retrieving profile data will be infinity";
179
180 static constexpr Parameter::Type type = Parameter::Type::_Int;
181
182 static constexpr const char* unit = "ms";
183};
184
185} // namespace scan_settings
186
187namespace point_cloud_resolutions {
189{
190public:
191 static constexpr const char* name = "XAxisResolution";
192
193 static constexpr const char* description =
194 "Displays the resolution in the X direction, which is the distance between two neighboring "
195 "points along the direction of the laser line.";
196
197 static constexpr Parameter::Type type = Parameter::Type::_Float;
198
199 static constexpr const char* unit = "um";
200};
201} // namespace point_cloud_resolutions
202
203namespace correction {
204
206{
207public:
208 static constexpr const char* name = "TiltCorrectionAngle";
209
210 static constexpr const char* description = "Correct the tilt of the profile around the Y-axis.";
211
212 static constexpr Parameter::Type type = Parameter::Type::_Float;
213
214 static constexpr const char* unit = "degree";
215};
216
218{
219public:
220 static constexpr const char* name = "HeightCorrectionRatio";
221
222 static constexpr const char* description = "Correct the Z values of the profile.";
223
224 static constexpr Parameter::Type type = Parameter::Type::_Float;
225};
226} // namespace correction
227
228} // namespace eye
229} // 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