Mech-Eye API Reference 2.1.4-alpha
API reference documentation for Mech-Eye 3D Laser Profiler
All Classes Functions Variables 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 = "LineScanTriggerSource";
14
15 static constexpr const char* description =
16 "Select the source of the signals that trigger the scan of a single line.\nIf you use "
17 "encoder to trigger scanning, select \"Encoder\".\nIf you need to trigger scanning at a "
18 "fixed rate, select \"FixedRate\" and adjust \"SoftwareTriggerRate\".";
19
20 static constexpr Parameter::Type type = Parameter::Type::_Enum;
21
22 enum struct Value {
23 FixedRate,
24 Encoder,
25 };
26};
27
29{
30public:
31 static constexpr const char* name = "SoftwareTriggerRate";
32
33 static constexpr const char* description =
34 "When \"LineScanTriggerSource\" is set to \"FixedRate\", set the fixed rate at which "
35 "the laser profiler is triggered to scan.\n\nThe maximum value of this parameter is the "
36 "current \"MaxScanRate\".";
37
38 static constexpr Parameter::Type type = Parameter::Type::_Float;
39
40 static constexpr const char* unit = "Hz";
41};
42
44{
45public:
46 static constexpr const char* name = "MaxScanRate";
47
48 static constexpr const char* description =
49 "The maximum scan rate that the laser profiler can reach. The maximum scan rate is "
50 "affected by the following parameters: \"ExposureTime\", \"ZDirectionRoi\", and "
51 "\"ExposureDelay\"";
52
53 static constexpr Parameter::Type type = Parameter::Type::_Float;
54
55 static constexpr const char* unit = "Hz";
56};
57
59{
60public:
61 static constexpr const char* name = "EncoderTriggerDirection";
62
63 static constexpr const char* description =
64 "Select the encoder motion direction that triggers scanning.\nChannelALeading: Scanning "
65 "is triggered when channel A is leading.\nChannelBLeading: Scanning is triggered when "
66 "channel B is leading. \nBoth: Scanning is triggered when either channel A or channel B is "
67 "leading.";
68
69 static constexpr Parameter::Type type = Parameter::Type::_Enum;
70
71 enum struct Value {
72 ChannelALeading,
73 ChannelBLeading,
74 Both,
75 };
76};
77
79{
80public:
81 static constexpr const char* name = "EncoderTriggerSignalCountingMode";
82
83 static constexpr const char* description =
84 "Set the number of signals to be counted in an encoder cycle. Counted signals are used to "
85 "trigger scanning.\nNote: This parameter affects the adjustment of "
86 "\"EncoderTriggerInterval\".\n\nMultiple_1: counts 1 signal in an encoder "
87 "cycle.\nMULTIPLE_2: counts 2 signals in an encoder cycle.\nMULTIPLE_4: counts 3 signals "
88 "in an encoder cycle.";
89
90 static constexpr Parameter::Type type = Parameter::Type::_Enum;
91
92 enum struct Value {
93 Multiple_1,
94 Multiple_2,
95 Multiple_4,
96 };
97};
98
100{
101public:
102 static constexpr const char* name = "EncoderTriggerInterval";
103
104 static constexpr const char* description =
105 "Set the number of trigger signals needed for scanning one line.";
106
107 static constexpr Parameter::Type type = Parameter::Type::_Int;
108};
109} // namespace trigger_settings
110
111namespace scan_settings {
112
114{
115public:
116 static constexpr const char* name = "ScanLineCount";
117
118 static constexpr const char* description =
119 "Set the number of profiles needed to generate one intensity image/depth map.\nMake sure "
120 "that the set value can cover one target object completely.";
121
122 static constexpr Parameter::Type type = Parameter::Type::_Int;
123};
124
126{
127public:
128 static constexpr const char* name = "DataPointsPerProfile";
129
130 static constexpr const char* description = "The number of data points in a profile.";
131
132 static constexpr Parameter::Type type = Parameter::Type::_Int;
133
134 static constexpr const char* unit = "";
135};
136
138{
139public:
140 static constexpr const char* name = "ExposureDelay";
141
142 static constexpr const char* description =
143 "Set the delay time between laser emission and start of exposure.\n\nLarger exposure delay "
144 "results in more stable brightness of the laser lines in the raw image, thus more stable "
145 "quality of the intensity image and depth map. However, the \"MaxScanRate\" will be "
146 "reduced.";
147
148 static constexpr Parameter::Type type = Parameter::Type::_Int;
149
150 static constexpr const char* unit = "us";
151};
152
153} // namespace scan_settings
154
155namespace point_cloud_resolutions {
157{
158public:
159 static constexpr const char* name = "XAxisResolution";
160
161 static constexpr const char* description =
162 "Displays the resolution in the X direction, which is the distance between two neighboring "
163 "points along the direction of the laser line.";
164
165 static constexpr Parameter::Type type = Parameter::Type::_Float;
166
167 static constexpr const char* unit = "um";
168};
169} // namespace point_cloud_resolutions
170
171namespace correction {
172
174{
175public:
176 static constexpr const char* name = "TiltCorrectionAngle";
177
178 static constexpr const char* description = "Correct the tilt of the profile around the Y-axis.";
179
180 static constexpr Parameter::Type type = Parameter::Type::_Float;
181
182 static constexpr const char* unit = "degree";
183};
184
186{
187public:
188 static constexpr const char* name = "HeightCorrectionRatio";
189
190 static constexpr const char* description = "Correct the Z values of the profile.";
191
192 static constexpr Parameter::Type type = Parameter::Type::_Float;
193};
194} // namespace correction
195
196} // namespace eye
197} // namespace mmind
Type
The device parameter data types.
Definition Parameter.h:24
@ _Int
Integer type.
Definition Parameter.h:25
@ _Enum
Enumeration type.
Definition Parameter.h:28
@ _Float
Double type.
Definition Parameter.h:26