Mech-Eye API
2.4.0
API reference documentation for Mech-Eye 3D Laser Profiler
Loading...
Searching...
No Matches
profiler
parameters
ScanParameters.h
1
#pragma once
2
#include "Parameter.h"
3
4
namespace
mmind {
5
6
namespace
eye {
7
8
namespace
trigger_settings {
9
10
class
DataAcquisitionTriggerSource
11
{
12
public
:
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
28
class
LineScanTriggerSource
29
{
30
public
:
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
46
class
SoftwareTriggerRate
47
{
48
public
:
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
62
class
MaxScanRate
63
{
64
public
:
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
"\"TriggerDelay\""
;
71
72
static
constexpr
Parameter::Type
type =
Parameter::Type::_Float
;
73
74
static
constexpr
const
char
* unit =
"Hz"
;
75
};
76
77
class
TriggerDelay
78
{
79
public
:
80
static
constexpr
const
char
* name =
"TriggerDelay"
;
81
82
static
constexpr
const
char
* description =
83
"This parameter is only effective for firmware 2.4.0 and above.\n"
84
"Set the delay time between receiving a line scan trigger signal and emitting laser "
85
"light.\n\n"
86
"Note:\n"
87
"* Only adjust this parameter in the following situation: Multiple laser profilers are "
88
"used to scan the same target object, and their FOVs overlap. The laser profilers will "
89
"interfere with each other if they emit laser light at the same time.\n"
90
"* Increasing this parameter will reduce the max scan rate.\n"
91
"* The laser profiler starts exposure 10 μs after emitting laser light to ensure stable "
92
"brightness of the laser lines in the raw image."
;
93
94
static
constexpr
Parameter::Type
type =
Parameter::Type::_Int
;
95
96
static
constexpr
const
char
* unit =
"us"
;
97
};
98
99
class
EncoderTriggerDirection
100
{
101
public
:
102
static
constexpr
const
char
* name =
"EncoderTriggerDirection"
;
103
104
static
constexpr
const
char
* description =
105
"Select the encoder motion direction that triggers scanning.\nChannelALeading: Scanning "
106
"is triggered when channel A is leading.\nChannelBLeading: Scanning is triggered when "
107
"channel B is leading. \nBoth: Scanning is triggered when either channel A or channel B is "
108
"leading."
;
109
110
static
constexpr
Parameter::Type
type =
Parameter::Type::_Enum
;
111
112
enum struct
Value {
113
ChannelALeading,
114
ChannelBLeading,
115
Both,
116
};
117
};
118
119
class
EncoderTriggerSignalCountingMode
120
{
121
public
:
122
static
constexpr
const
char
* name =
"EncoderTriggerSignalCountingMode"
;
123
124
static
constexpr
const
char
* description =
125
"Set the number of signals to be counted in an encoder cycle. Counted signals are used to "
126
"trigger scanning.\nNote: This parameter affects the adjustment of "
127
"\"EncoderTriggerInterval\".\n\nMultiple_1: counts 1 signal in an encoder "
128
"cycle.\nMULTIPLE_2: counts 2 signals in an encoder cycle.\nMULTIPLE_4: counts 3 signals "
129
"in an encoder cycle."
;
130
131
static
constexpr
Parameter::Type
type =
Parameter::Type::_Enum
;
132
133
enum struct
Value {
134
Multiple_1,
135
Multiple_2,
136
Multiple_4,
137
};
138
};
139
140
class
EncoderTriggerInterval
141
{
142
public
:
143
static
constexpr
const
char
* name =
"EncoderTriggerInterval"
;
144
145
static
constexpr
const
char
* description =
146
"Set the number of trigger signals needed for scanning one line."
;
147
148
static
constexpr
Parameter::Type
type =
Parameter::Type::_Int
;
149
};
150
}
// namespace trigger_settings
151
152
namespace
scan_settings {
153
154
class
ScanLineCount
155
{
156
public
:
157
static
constexpr
const
char
* name =
"ScanLineCount"
;
158
159
static
constexpr
const
char
* description =
160
"Set the number of profiles needed to generate one intensity image/depth map.\nMake sure "
161
"that the set value can cover one target object completely."
;
162
163
static
constexpr
Parameter::Type
type =
Parameter::Type::_Int
;
164
};
165
166
class
DataPointsPerProfile
167
{
168
public
:
169
static
constexpr
const
char
* name =
"DataPointsPerProfile"
;
170
171
static
constexpr
const
char
* description =
"The number of data points in a profile."
;
172
173
static
constexpr
Parameter::Type
type =
Parameter::Type::_Int
;
174
175
static
constexpr
const
char
* unit =
""
;
176
};
177
178
class
ExposureDelay
179
{
180
public
:
181
static
constexpr
const
char
* name =
"ExposureDelay"
;
182
183
static
constexpr
const
char
* description =
184
"This parameter is only effective for firmware 2.3.4 and below.\nSet the delay time "
185
"between laser emission and start of exposure.\n\nLarger exposure delay "
186
"results in more stable brightness of the laser lines in the raw image, thus more stable "
187
"quality of the intensity image and depth map. However, the \"MaxScanRate\" will be "
188
"reduced."
;
189
190
static
constexpr
Parameter::Type
type =
Parameter::Type::_Int
;
191
192
static
constexpr
const
char
* unit =
"us"
;
193
};
194
195
class
BatchRetrievalTimeout
196
{
197
public
:
198
static
constexpr
const
char
* name =
"BatchRetrievalTimeout"
;
199
200
static
constexpr
const
char
* description =
201
"Set the timeout period for retrieving a batch of data. If no batches are available for "
202
"retrieval within the set timeout period, the current round of data acquisition is "
203
"automatically stopped.\nThis timeout period should be no shorter than the amount of time "
204
"needed for scanning 16 lines. If line scan is triggered at a slow rate, increase this "
205
"parameter."
;
206
207
static
constexpr
Parameter::Type
type =
Parameter::Type::_Int
;
208
209
static
constexpr
const
char
* unit =
"ms"
;
210
};
211
212
class
CallbackRetrievalTimeout
213
{
214
public
:
215
static
constexpr
const
char
* name =
"CallbackRetrievalTimeout"
;
216
217
static
constexpr
const
char
* description =
218
"Set the timeout period for retrieving data when using a callback function. If none or "
219
"only some of the data is retrieved within the set timeout period, the current round of "
220
"data acquisition is automatically stopped. The amount of data to be retrieved is "
221
"determined by the \"ScanLineCount\" parameter.\nA value of 0 or -1 corresponds to an "
222
"infinite timeout period."
;
223
224
static
constexpr
Parameter::Type
type =
Parameter::Type::_Int
;
225
226
static
constexpr
const
char
* unit =
"ms"
;
227
};
228
229
}
// namespace scan_settings
230
231
namespace
point_cloud_resolutions {
232
class
XAxisResolution
233
{
234
public
:
235
static
constexpr
const
char
* name =
"XAxisResolution"
;
236
237
static
constexpr
const
char
* description =
238
"Sets the scan data resolution in the X direction, which is the distance between two "
239
"neighboring points along the direction of the laser line."
;
240
241
static
constexpr
Parameter::Type
type =
Parameter::Type::_Float
;
242
243
static
constexpr
const
char
* unit =
"um"
;
244
};
245
246
class
YResolution
247
{
248
public
:
249
static
constexpr
const
char
* name =
"YResolution"
;
250
251
static
constexpr
const
char
* description =
252
"Sets the point cloud resolution in the Y-axis direction, which is the distance between "
253
"two neighboring points along the travel direction of the target object."
;
254
255
static
constexpr
Parameter::Type
type =
Parameter::Type::_Float
;
256
257
static
constexpr
const
char
* unit =
"um"
;
258
};
259
}
// namespace point_cloud_resolutions
260
261
namespace
correction {
262
263
class
TiltCorrectionAngle
264
{
265
public
:
266
static
constexpr
const
char
* name =
"TiltCorrectionAngle"
;
267
268
static
constexpr
const
char
* description =
"Correct the tilt of the profile around the Y-axis."
;
269
270
static
constexpr
Parameter::Type
type =
Parameter::Type::_Float
;
271
272
static
constexpr
const
char
* unit =
"degree"
;
273
};
274
275
class
HeightCorrectionRatio
276
{
277
public
:
278
static
constexpr
const
char
* name =
"HeightCorrectionRatio"
;
279
280
static
constexpr
const
char
* description =
"Correct the Z values of the profile."
;
281
282
static
constexpr
Parameter::Type
type =
Parameter::Type::_Float
;
283
};
284
}
// namespace correction
285
286
namespace
transformation {
287
class
CoordinateTransformation
288
{
289
public
:
290
static
constexpr
const
char
* name =
"CoordinateTransformation"
;
291
292
static
constexpr
const
char
* description =
293
"The CoordinateTransformation, which represents the transformation matrix from the "
294
"camera coordinate system to a custom coordinate system. It can change the xyz values of "
295
"the point cloud."
;
296
297
static
constexpr
Parameter::Type
type =
Parameter::Type::_FloatArray
;
298
};
299
}
// namespace transformation
300
301
}
// namespace eye
302
}
// namespace mmind
mmind::eye::Parameter::Type
Type
Describes the device parameter data types.
Definition
Parameter.h:30
mmind::eye::Parameter::_Int
@ _Int
Integer type.
Definition
Parameter.h:31
mmind::eye::Parameter::_Enum
@ _Enum
Enumeration type.
Definition
Parameter.h:34
mmind::eye::Parameter::_Float
@ _Float
Double type.
Definition
Parameter.h:32
mmind::eye::Parameter::_FloatArray
@ _FloatArray
Vector of double types.
Definition
Parameter.h:37
mmind::eye::correction::HeightCorrectionRatio
Definition
ScanParameters.h:276
mmind::eye::correction::TiltCorrectionAngle
Definition
ScanParameters.h:264
mmind::eye::point_cloud_resolutions::XAxisResolution
Definition
ScanParameters.h:233
mmind::eye::point_cloud_resolutions::YResolution
Definition
ScanParameters.h:247
mmind::eye::scan_settings::BatchRetrievalTimeout
Definition
ScanParameters.h:196
mmind::eye::scan_settings::CallbackRetrievalTimeout
Definition
ScanParameters.h:213
mmind::eye::scan_settings::DataPointsPerProfile
Definition
ScanParameters.h:167
mmind::eye::scan_settings::ExposureDelay
Definition
ScanParameters.h:179
mmind::eye::scan_settings::ScanLineCount
Definition
ScanParameters.h:155
mmind::eye::transformation::CoordinateTransformation
Definition
ScanParameters.h:288
mmind::eye::trigger_settings::DataAcquisitionTriggerSource
Definition
ScanParameters.h:11
mmind::eye::trigger_settings::EncoderTriggerDirection
Definition
ScanParameters.h:100
mmind::eye::trigger_settings::EncoderTriggerInterval
Definition
ScanParameters.h:141
mmind::eye::trigger_settings::EncoderTriggerSignalCountingMode
Definition
ScanParameters.h:120
mmind::eye::trigger_settings::LineScanTriggerSource
Definition
ScanParameters.h:29
mmind::eye::trigger_settings::MaxScanRate
Definition
ScanParameters.h:63
mmind::eye::trigger_settings::SoftwareTriggerRate
Definition
ScanParameters.h:47
mmind::eye::trigger_settings::TriggerDelay
Definition
ScanParameters.h:78
Generated by
1.10.0