Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
Loading...
Searching...
No Matches
ds-private.h
Go to the documentation of this file.
1// License: Apache 2.0. See LICENSE file in root directory.
2// Copyright(c) 2016 Intel Corporation. All Rights Reserved.
3
4#pragma once
5#ifndef LIBREALSENSE_DS_PRIVATE_H
6#define LIBREALSENSE_DS_PRIVATE_H
7
8#include "uvc.h"
9#include <algorithm>
10#include <ctime>
11#include <cmath>
12
13namespace rsimpl
14{
15 namespace ds
16 {
17 const uvc::extension_unit lr_xu = {0, 2, 1, {0x18682d34, 0xdd2c, 0x4073, {0xad, 0x23, 0x72, 0x14, 0x73, 0x9a, 0x07, 0x4c}}};
18
19 const int STATUS_BIT_Z_STREAMING = 1 << 0;
20 const int STATUS_BIT_LR_STREAMING = 1 << 1;
21 const int STATUS_BIT_WEB_STREAMING = 1 << 2;
22
24 {
26 uint32_t serial_number;
30 float Rthird[9], T[3], B;
31 };
32
33 enum ds_lens_type : uint32_t
34 {
50 DS_LENS_COUNT = 15
51 };
52
53
54 inline std::ostream & operator<<(std::ostream & out, ds_lens_type type)
55 {
56 switch (type)
57 {
58 case DS_LENS_UNKNOWN: return out << "Unknown lens type";
59 case DS_LENS_DSL103: return out << "Sunex DSL103: Internal standard";
60 case DS_LENS_DSL821C: return out << "Sunex DSL 821C";
61 case DS_LENS_DSL202A: return out << "Sunex DSL 202A";
62 case DS_LENS_DSL203: return out << "Sunex DSL 203";
63 case DS_LENS_PENTAX2514: return out << "Pentax cmount lens 25mm";
64 case DS_LENS_DSL924A: return out << "Sunex DSL 924a";
65 case DS_LENS_AZW58: return out << "58 degree lenses on the AZureWave boards (DS-526)";
66 case DS_LENS_Largan9386: return out << "50 HFOV 38 VFOV (60DFOV): CTM2/6 Module L&R";
67 case DS_LENS_DS6100: return out << "Newmax 67.8 x 41.4 degs in 1080p";
68 case DS_LENS_DS6177: return out << "Newmax 71.7 x 44.2 degs in 1080p";
69 case DS_LENS_DS6237: return out << "Newmax 58.9 x 45.9 degs in VGA";
70 case DS_LENS_AEOT_1LS0901L: return out << "AEOT";
71 default: return out << "Other lens type (" << (int)type << "), application needs update";
72 }
73 }
74
75 enum ds_lens_coating_type : uint32_t
76 {
83 };
84
85
86 inline std::ostream & operator<<(std::ostream & out, ds_lens_coating_type type)
87 {
88 switch (type)
89 {
90 case DS_LENS_COATING_UNKNOWN: return out << "Unknown lens coating type";
91 case DS_LENS_COATING_IR_CUT: return out << "IR coating";
92 case DS_LENS_COATING_ALL_PASS: return out << "No IR coating";
93 case DS_LENS_COATING_IR_PASS: return out << "Visible-light block / IR pass";
94 case DS_LENS_COATING_IR_PASS_859_43: return out << "Visible-light block / IR pass 43 nm width";
95 default: return out << "Other lens coating type (" << (int)type << "), application needs update";
96 }
97 }
98
99 enum ds_emitter_type : uint32_t
100 {
106 };
107
108 inline std::ostream & operator<<(std::ostream & out, ds_emitter_type type)
109 {
110 switch (type)
111 {
112 case DS_EMITTER_NONE: return out << "No emitter";
113 case DS_EMITTER_LD2: return out << "Laser Driver 2, NO PWM Controls";
114 case DS_EMITTER_LD3: return out << "Laser Driver 3";
115 case DS_EMITTER_LD4_1: return out << "Laser Driver 4.1";
116 default:
117 return out << "Other emitter type (" << (int)type << "), application needs update";
118 }
119 }
120
121 enum ds_oem_id : uint32_t
122 {
123 DS_OEM_NONE = 0
124 };
125
126 inline std::ostream & operator<<(std::ostream & out, ds_oem_id type)
127 {
128 switch (type)
129 {
130 case DS_OEM_NONE: return out << "OEM None";
131 default:
132 return out << "Unercognized OEM type (" << (int)type << "), application needs update";
133 }
134 }
135
136 enum ds_prq_type : uint8_t
137 {
138 DS_PRQ_READY= 1
139 };
140
141 inline std::ostream & operator<<(std::ostream & out, ds_prq_type type)
142 {
143 switch (type)
144 {
145 case DS_PRQ_READY: return out << "PRQ-Ready";
146 default:
147 return out << "Non-PRQ type (" << (int)type << ")";
148 }
149 }
150
151 inline std::string time_to_string(double val)
152 {
153 std::string date("Undefined value");
154
155 // rigorous validation is required due to improper handling of NAN by gcc
156 if (std::isnormal(val) && std::isfinite(val) && (!std::isnan(val)) )
157 {
158 auto time = time_t(val);
159 std::vector<char> outstr;
160 outstr.resize(200);
161 strftime(outstr.data(),outstr.size(),"%Y-%m-%d %H:%M:%S",std::gmtime(&time));
162 date = to_string()<< outstr.data() << " UTC";
163 }
164 return date;
165 }
166
167#pragma pack(push,1)
170 {
171 enum { DS_HEADER_VERSION_NUMBER = 12 }; // required camera header version number for DS devices
175 uint8_t model_data[64]; // TODO requires additional info
189 uint8_t reserved1[2];
191 uint8_t reserved2[4];
193 uint32_t platform_camera_focus; // This is the value during calibration
200 double cx_qres;
201 double cy_qres;
202 double cz_qres;
203 double kx_qres;
204 double ky_qres;
207 double cx_big;
208 double cy_big;
209 double cz_big;
210 double kx_big;
211 double ky_big;
223 double dx;
224 double dy;
225 double dz;
226 double theta_x;
227 double theta_y;
228 double theta_z;
235 int32_t nominal_baseline_platform[3]; // NOTE: Signed, since platform camera can be mounted anywhere
239 uint8_t reserved3[37];
240 };
241
242#pragma pack(pop)
243
244 struct ds_info
245 {
248 };
249
250
251 ds_info read_camera_info(uvc::device & device);
252 std::string read_firmware_version(uvc::device & device);
253 std::string read_isp_firmware_version(uvc::device & device);
254
258
259 enum class control // UVC extension control codes
260 {
263 iffley = 2,
265 stream_intent = 3,
267 depth_units = 4,
268 min_max = 5,
269 disparity = 6,
270 rectification = 7,
271 emitter = 8,
272 temperature = 9,
273 depth_params = 10,
274 last_error = 12,
275 embedded_count = 13,
276 lr_exposure = 14,
278 sw_reset = 16,
279 lr_gain = 17,
280 lr_exposure_mode = 18,
281 disparity_shift = 19,
282 status = 20,
285 hw_timestamp = 23,
286 };
287
288 void xu_read(const uvc::device & device, uvc::extension_unit xu, control xu_ctrl, void * buffer, uint32_t length);
289 void xu_write(uvc::device & device, uvc::extension_unit xu, control xu_ctrl, void * buffer, uint32_t length);
290
291 template<class T> T xu_read(const uvc::device & dev, uvc::extension_unit xu, control ctrl) { T val; xu_read(dev, xu, ctrl, &val, sizeof(val)); return val; }
292 template<class T> void xu_write(uvc::device & dev, uvc::extension_unit xu, control ctrl, const T & value) { T val = value; xu_write(dev, xu, ctrl, &val, sizeof(val)); }
293
294 #pragma pack(push, 1)
295 struct ae_params // Auto-exposure algorithm parameters
296 {
299 float kp_gain;
306 };
307
308 struct dc_params // Depth control algorithm parameters
309 {
319 uint32_t lr_thresh;
320
321 enum { MAX_PRESETS = 6 };
323 };
324
326 {
327 std::chrono::high_resolution_clock::duration _duration;
328 std::chrono::high_resolution_clock::time_point _start_time;
329
330 public:
331 time_pad(std::chrono::high_resolution_clock::duration duration) : _duration(duration) {}
332 void start()
333 {
334 _start_time = std::chrono::high_resolution_clock::now();
335 }
336
337 void stop()
338 {
339 auto elapsed = std::chrono::high_resolution_clock::now() - _start_time;
340 if (elapsed < _duration)
341 {
342 auto left = _duration - elapsed;
343 std::this_thread::sleep_for(left);
344 }
345 }
346 };
347
348 struct range { uint16_t min, max; };
350 struct rate_value { uint32_t rate, value; }; // Framerate dependent value, such as exposure or gain
351 struct temperature { int8_t current, min, max, min_fault; };
352 struct discovery { uint32_t fps, min, max, default_value, resolution; }; // Fields other than fps are in same units as field (exposure in tenths of a millisecond, gain as percent)
353 #pragma pack(pop)
354
355 void set_stream_intent(uvc::device & device, uint8_t & intent);
356 void get_stream_status(const uvc::device & device, uint32_t & status);
357 void force_firmware_reset(uvc::device & device);
358 bool get_emitter_state(const uvc::device & device, bool is_streaming, bool is_depth_enabled);
359 void set_emitter_state(uvc::device & device, bool state);
360
361 void get_register_value(uvc::device & device, uint32_t reg, uint32_t & value);
362 void set_register_value(uvc::device & device, uint32_t reg, uint32_t value);
363
364
365 inline uint32_t get_depth_units (const uvc::device & device) { return xu_read<uint32_t >(device, lr_xu, control::depth_units); }
366 inline range get_min_max_depth (const uvc::device & device) { return xu_read<range >(device, lr_xu, control::min_max); }
367 inline disp_mode get_disparity_mode (const uvc::device & device) { return xu_read<disp_mode >(device, lr_xu, control::disparity); }
368 inline temperature get_temperature (const uvc::device & device) { return xu_read<temperature>(device, lr_xu, control::temperature); }
369 inline dc_params get_depth_params (const uvc::device & device) { return xu_read<dc_params >(device, lr_xu, control::depth_params); }
370 inline uint8_t get_last_error (const uvc::device & device) { return xu_read<uint8_t >(device, lr_xu, control::last_error); }
371 inline rate_value get_lr_exposure (const uvc::device & device) { return xu_read<rate_value >(device, lr_xu, control::lr_exposure); }
372 inline ae_params get_lr_auto_exposure_params(const uvc::device & device, std::vector<supported_option> ae_vec) {
373 auto ret_val = xu_read<ae_params >(device, lr_xu, control::lr_autoexposure_parameters);
374
375 for (auto& elem : ae_vec)
376 {
377 switch (elem.option)
378 {
380 ret_val.exposure_top_edge = std::min((uint16_t)elem.max, ret_val.exposure_top_edge);
381 break;
382
384 ret_val.exposure_bottom_edge = std::min((uint16_t)elem.max, ret_val.exposure_bottom_edge);
385 break;
386
388 ret_val.exposure_left_edge = std::min((uint16_t)elem.max, ret_val.exposure_left_edge);
389 break;
390
392 ret_val.exposure_right_edge = std::min((uint16_t)elem.max, ret_val.exposure_right_edge);
393 break;
394 default :
395 break;
396 }
397 }
398 return ret_val;
399 }
400 inline rate_value get_lr_gain (const uvc::device & device) { return xu_read<rate_value >(device, lr_xu, control::lr_gain); }
401 inline uint8_t get_lr_exposure_mode (const uvc::device & device) { return xu_read<uint8_t >(device, lr_xu, control::lr_exposure_mode); }
402 inline uint32_t get_disparity_shift (const uvc::device & device) { return xu_read<uint32_t >(device, lr_xu, control::disparity_shift); }
403 inline discovery get_lr_exposure_discovery (const uvc::device & device) { return xu_read<discovery >(device, lr_xu, control::lr_exposure_discovery); }
404 inline discovery get_lr_gain_discovery (const uvc::device & device) { return xu_read<discovery >(device, lr_xu, control::lr_gain_discovery); }
405
406 inline void set_depth_units (uvc::device & device, uint32_t units) { xu_write(device, lr_xu, control::depth_units, units); }
407 inline void set_min_max_depth (uvc::device & device, range min_max) { xu_write(device, lr_xu, control::min_max, min_max); }
408 inline void set_disparity_mode (uvc::device & device, disp_mode mode) { xu_write(device, lr_xu, control::disparity, mode); }
409 inline void set_temperature (uvc::device & device, temperature temp) { xu_write(device, lr_xu, control::temperature, temp); }
410 inline void set_depth_params (uvc::device & device, dc_params params) { xu_write(device, lr_xu, control::depth_params, params); }
411 inline void set_lr_auto_exposure_params (uvc::device & device, ae_params params) {
412 if (params.exposure_top_edge >= params.exposure_bottom_edge || params.exposure_left_edge >= params.exposure_right_edge)
413 throw std::logic_error("set_lr_auto_exposure_params failed.");
415 inline void set_lr_exposure_mode (uvc::device & device, uint8_t mode) { xu_write(device, lr_xu, control::lr_exposure_mode, mode); }
416 inline void set_disparity_shift (uvc::device & device, uint32_t shift) { xu_write(device, lr_xu, control::disparity_shift, shift); }
417 inline void set_lr_exposure_discovery (uvc::device & device, discovery disc) { xu_write(device, lr_xu, control::lr_exposure_discovery, disc); }
418 inline void set_lr_gain_discovery (uvc::device & device, discovery disc) { xu_write(device, lr_xu, control::lr_gain_discovery, disc); }
419 inline void set_lr_exposure (uvc::device & device, rate_value exposure) { if (get_lr_exposure_mode(device)) set_lr_exposure_mode(device,0); xu_write(device, lr_xu, control::lr_exposure, exposure);}
420 inline void set_lr_gain (uvc::device & device, rate_value gain) { if (get_lr_exposure_mode(device)) set_lr_exposure_mode(device,0); xu_write(device, lr_xu, control::lr_gain, gain);}
421
422
423 #pragma pack(push, 1)
424 struct dinghy
425 {
426 uint32_t magicNumber;
427 uint32_t frameCount;
428 uint32_t frameStatus;
436 uint32_t pad0;
437 uint32_t pad1;
438 uint32_t pad2;
439 uint32_t pad3;
441 uint32_t pad4;
442 };
443 #pragma pack(pop)
444 }
445
446 namespace zr300
447 {
448 const uvc::extension_unit fisheye_xu = { 3, 3, 2,{ 0xf6c3c3d1, 0x5cde, 0x4477,{ 0xad, 0xf0, 0x41, 0x33, 0xf5, 0x8d, 0xa6, 0xf4 } } };
449
450 // Claim USB interface used for motion module device
451 void claim_motion_module_interface(uvc::device & device);
452
453 uint8_t get_fisheye_strobe(const uvc::device & device);
454 void set_fisheye_strobe(uvc::device & device, uint8_t strobe);
455 uint8_t get_fisheye_external_trigger(const uvc::device & device);
456 void set_fisheye_external_trigger(uvc::device & device, uint8_t ext_trig);
457 uint16_t get_fisheye_exposure(const uvc::device & device);
458 void set_fisheye_exposure(uvc::device & device, uint16_t exposure);
459
460 }
461}
462
463#endif // DS_PRIVATE_H
Definition ds-private.h:326
void stop()
Definition ds-private.h:337
time_pad(std::chrono::high_resolution_clock::duration duration)
Definition ds-private.h:331
void start()
Definition ds-private.h:332
void set_lr_exposure_discovery(uvc::device &device, discovery disc)
Definition ds-private.h:417
void set_temperature(uvc::device &device, temperature temp)
Definition ds-private.h:409
std::ostream & operator<<(std::ostream &out, ds_lens_type type)
Definition ds-private.h:54
ds_emitter_type
Definition ds-private.h:100
@ DS_EMITTER_LD2
Laser Driver 2, NO PWM Controls.
Definition ds-private.h:102
@ DS_EMITTER_LD4_1
Laser Driver 4.1.
Definition ds-private.h:104
@ DS_EMITTER_LD3
Laser Driver 3.
Definition ds-private.h:103
@ DS_EMITTER_NONE
Definition ds-private.h:101
@ DS_EMITTER_COUNT
Just count.
Definition ds-private.h:105
void set_lr_auto_exposure_params(uvc::device &device, ae_params params)
Definition ds-private.h:411
uint32_t get_depth_units(const uvc::device &device)
Definition ds-private.h:365
ds_oem_id
Definition ds-private.h:122
@ DS_OEM_NONE
Definition ds-private.h:123
void get_stream_status(const uvc::device &device, uint32_t &status)
void force_firmware_reset(uvc::device &device)
uint32_t get_disparity_shift(const uvc::device &device)
Definition ds-private.h:402
ds_lens_type
Definition ds-private.h:34
@ DS_LENS_AZW58
58 degree lenses on the AZureWave boards (DS-526)
Definition ds-private.h:42
@ DS_LENS_DS6237
Newmax 58.9 x 45.9 degs in VGA.
Definition ds-private.h:46
@ DS_LENS_DS6100
Newmax 67.8 x 41.4 degs in 1080p.
Definition ds-private.h:44
@ DS_LENS_COUNT
AEOT lens.
Definition ds-private.h:50
@ DS_LENS_AEOT_1LS0901L
Definition ds-private.h:49
@ DS_LENS_DSL821C
Sunex DSL 821C.
Definition ds-private.h:37
@ DS_LENS_DSL924A
Sunex DSL 924a.
Definition ds-private.h:41
@ DS_LENS_DSL202A
Sunex DSL 202A.
Definition ds-private.h:38
@ DS_LENS_DSL203
Sunex DSL 203.
Definition ds-private.h:39
@ DS_LENS_DSL103
Sunex DSL103: Internal standard.
Definition ds-private.h:36
@ DS_LENS_DS917
RGB lens.
Definition ds-private.h:48
@ DS_LENS_UNKNOWN
Lens either unknown or not needing special treatment.
Definition ds-private.h:35
@ DS_LENS_DS6233
IR lens.
Definition ds-private.h:47
@ DS_LENS_PENTAX2514
Pentax cmount lens 25mm.
Definition ds-private.h:40
@ DS_LENS_DS6177
Newmax 71.7 x 44.2 degs in 1080p.
Definition ds-private.h:45
@ DS_LENS_Largan9386
50 HFOV 38 VFOV (60DFOV): CTM2/6 Module L&R
Definition ds-private.h:43
void set_depth_units(uvc::device &device, uint32_t units)
Definition ds-private.h:406
uint8_t get_last_error(const uvc::device &device)
Definition ds-private.h:370
bool get_emitter_state(const uvc::device &device, bool is_streaming, bool is_depth_enabled)
void set_disparity_shift(uvc::device &device, uint32_t shift)
Definition ds-private.h:416
rate_value get_lr_exposure(const uvc::device &device)
Definition ds-private.h:371
disp_mode get_disparity_mode(const uvc::device &device)
Definition ds-private.h:367
const uvc::extension_unit lr_xu
Definition ds-private.h:17
void set_lr_exposure_mode(uvc::device &device, uint8_t mode)
Definition ds-private.h:415
discovery get_lr_gain_discovery(const uvc::device &device)
Definition ds-private.h:404
void set_emitter_state(uvc::device &device, bool state)
void set_lr_exposure(uvc::device &device, rate_value exposure)
Definition ds-private.h:419
void set_lr_gain(uvc::device &device, rate_value gain)
Definition ds-private.h:420
const int STATUS_BIT_LR_STREAMING
Definition ds-private.h:20
ds_prq_type
Definition ds-private.h:137
@ DS_PRQ_READY
Definition ds-private.h:138
const int STATUS_BIT_Z_STREAMING
Definition ds-private.h:19
void set_lr_gain_discovery(uvc::device &device, discovery disc)
Definition ds-private.h:418
void set_disparity_mode(uvc::device &device, disp_mode mode)
Definition ds-private.h:408
std::string time_to_string(double val)
Definition ds-private.h:151
ds_lens_coating_type
Definition ds-private.h:76
@ DS_LENS_COATING_UNKNOWN
Definition ds-private.h:77
@ DS_LENS_COATING_ALL_PASS
No IR coating.
Definition ds-private.h:79
@ DS_LENS_COATING_COUNT
Definition ds-private.h:82
@ DS_LENS_COATING_IR_PASS
Visible-light block / IR pass: center 860, width 25nm.
Definition ds-private.h:80
@ DS_LENS_COATING_IR_PASS_859_43
Visible-light block / IR pass center 859, width 43nm.
Definition ds-private.h:81
@ DS_LENS_COATING_IR_CUT
IR coating DS4: Innowave 670 cut off.
Definition ds-private.h:78
void get_register_value(uvc::device &device, uint32_t reg, uint32_t &value)
control
Definition ds-private.h:260
void xu_read(const uvc::device &device, uvc::extension_unit xu, control xu_ctrl, void *buffer, uint32_t length)
void set_register_value(uvc::device &device, uint32_t reg, uint32_t value)
const int STATUS_BIT_WEB_STREAMING
Definition ds-private.h:21
void xu_write(uvc::device &device, uvc::extension_unit xu, control xu_ctrl, void *buffer, uint32_t length)
void set_depth_params(uvc::device &device, dc_params params)
Definition ds-private.h:410
std::string read_isp_firmware_version(uvc::device &device)
discovery get_lr_exposure_discovery(const uvc::device &device)
Definition ds-private.h:403
ds_info read_camera_info(uvc::device &device)
uint8_t get_lr_exposure_mode(const uvc::device &device)
Definition ds-private.h:401
ae_params get_lr_auto_exposure_params(const uvc::device &device, std::vector< supported_option > ae_vec)
Definition ds-private.h:372
void set_min_max_depth(uvc::device &device, range min_max)
Definition ds-private.h:407
rate_value get_lr_gain(const uvc::device &device)
Definition ds-private.h:400
std::string read_firmware_version(uvc::device &device)
void set_stream_intent(uvc::device &device, uint8_t &intent)
temperature get_temperature(const uvc::device &device)
Definition ds-private.h:368
range get_min_max_depth(const uvc::device &device)
Definition ds-private.h:366
dc_params get_depth_params(const uvc::device &device)
Definition ds-private.h:369
void claim_motion_module_interface(uvc::device &device)
const uvc::extension_unit fisheye_xu
Definition ds-private.h:448
uint8_t get_fisheye_strobe(const uvc::device &device)
uint16_t get_fisheye_exposure(const uvc::device &device)
uint8_t get_fisheye_external_trigger(const uvc::device &device)
void set_fisheye_exposure(uvc::device &device, uint16_t exposure)
void set_fisheye_strobe(uvc::device &device, uint8_t strobe)
void set_fisheye_external_trigger(uvc::device &device, uint8_t ext_trig)
Definition archive.h:13
@ RS_OPTION_R200_AUTO_EXPOSURE_RIGHT_EDGE
Definition rs.h:175
@ RS_OPTION_R200_AUTO_EXPOSURE_TOP_EDGE
Definition rs.h:172
@ RS_OPTION_R200_AUTO_EXPOSURE_BOTTOM_EDGE
Definition rs.h:173
@ RS_OPTION_R200_AUTO_EXPOSURE_LEFT_EDGE
Definition rs.h:174
Video stream intrinsics.
Definition rs.h:301
Definition ds-private.h:296
float kp_dark_threshold
Definition ds-private.h:301
float mean_intensity_set_point
Definition ds-private.h:297
float kp_exposure
Definition ds-private.h:300
uint16_t exposure_left_edge
Definition ds-private.h:304
float bright_ratio_set_point
Definition ds-private.h:298
uint16_t exposure_right_edge
Definition ds-private.h:305
uint16_t exposure_bottom_edge
Definition ds-private.h:303
uint16_t exposure_top_edge
Definition ds-private.h:302
float kp_gain
Definition ds-private.h:299
Definition ds-private.h:309
uint32_t robbins_munroe_plus_inc
Definition ds-private.h:311
@ MAX_PRESETS
Definition ds-private.h:321
uint32_t lr_thresh
Definition ds-private.h:319
uint32_t texture_count_thresh
Definition ds-private.h:315
uint32_t texture_diff_thresh
Definition ds-private.h:316
uint32_t median_thresh
Definition ds-private.h:312
uint32_t score_max_thresh
Definition ds-private.h:314
uint32_t neighbor_thresh
Definition ds-private.h:318
static const dc_params presets[MAX_PRESETS]
Definition ds-private.h:322
uint32_t robbins_munroe_minus_inc
Definition ds-private.h:310
uint32_t second_peak_thresh
Definition ds-private.h:317
uint32_t score_min_thresh
Definition ds-private.h:313
Definition ds-private.h:425
uint32_t pad0
Definition ds-private.h:436
uint32_t exposureLeftBrightCount
Definition ds-private.h:431
uint32_t exposureLeftDarkCount
Definition ds-private.h:430
uint32_t frameStatus
Definition ds-private.h:428
uint32_t magicNumber
Definition ds-private.h:426
uint32_t exposureRightBrightCount
Definition ds-private.h:434
uint32_t exposureRightSum
Definition ds-private.h:432
uint32_t VDFerrorStatus
Definition ds-private.h:440
uint32_t exposureRightDarkCount
Definition ds-private.h:433
uint32_t pad2
Definition ds-private.h:438
uint32_t pad4
Definition ds-private.h:441
uint32_t pad3
Definition ds-private.h:439
uint32_t CAMmoduleStatus
Definition ds-private.h:435
uint32_t pad1
Definition ds-private.h:437
uint32_t frameCount
Definition ds-private.h:427
uint32_t exposureLeftSum
Definition ds-private.h:429
Definition ds-private.h:352
uint32_t fps
Definition ds-private.h:352
uint32_t default_value
Definition ds-private.h:352
uint32_t min
Definition ds-private.h:352
uint32_t max
Definition ds-private.h:352
uint32_t resolution
Definition ds-private.h:352
Definition ds-private.h:349
uint32_t is_disparity_enabled
Definition ds-private.h:349
double disparity_multiplier
Definition ds-private.h:349
Definition ds-private.h:24
float T[3]
Definition ds-private.h:30
rs_intrinsics intrinsicsThird[2]
Definition ds-private.h:28
rs_intrinsics modesThird[2][2]
Definition ds-private.h:29
int version
Definition ds-private.h:25
float B
Definition ds-private.h:30
rs_intrinsics modesLR[3]
Definition ds-private.h:27
float Rthird[9]
Definition ds-private.h:30
uint32_t serial_number
Definition ds-private.h:26
The struct is aligned with the data layout in device.
Definition ds-private.h:170
uint32_t nominal_baseline
Definition ds-private.h:232
double cx_qres
Definition ds-private.h:200
uint8_t module_version
Definition ds-private.h:180
uint32_t module_revision_number
Definition ds-private.h:174
uint32_t calibration_type
Definition ds-private.h:195
double ky_special
Definition ds-private.h:216
uint32_t platform_camera_focus
Definition ds-private.h:193
uint8_t camera_options_2
Definition ds-private.h:221
double cz_special
Definition ds-private.h:214
uint8_t model_data[64]
Definition ds-private.h:175
ds_lens_coating_type lens_coating_type_third_imager
Definition ds-private.h:186
uint8_t reserved3[37]
Definition ds-private.h:239
double kx_big
Definition ds-private.h:210
ds_prq_type prq_type
Definition ds-private.h:188
double theta_z
Definition ds-private.h:228
uint8_t platform_camera_support
Definition ds-private.h:187
double rectification_data_padding[26]
Definition ds-private.h:199
double calibration_date
Definition ds-private.h:194
double ky_qres
Definition ds-private.h:204
double cy_special
Definition ds-private.h:213
double cz_qres
Definition ds-private.h:202
uint32_t the_last_word
Definition ds-private.h:238
uint32_t serial_number
Definition ds-private.h:172
double ky_big
Definition ds-private.h:211
double first_program_date
Definition ds-private.h:177
double cx_big
Definition ds-private.h:207
ds_lens_type lens_type
Definition ds-private.h:233
double rectification_data_qres[54]
Definition ds-private.h:198
double cy_big
Definition ds-private.h:208
double kx_special
Definition ds-private.h:215
double registration_translation[3]
Definition ds-private.h:231
double kx_qres
Definition ds-private.h:203
double theta_x
Definition ds-private.h:226
double dz
Definition ds-private.h:225
uint32_t camera_head_contents_version
Definition ds-private.h:205
uint32_t imager_model_number
Definition ds-private.h:173
double dx
Definition ds-private.h:223
uint8_t camera_head_data_little_endian
Definition ds-private.h:217
double calibration_y_error
Definition ds-private.h:197
ds_lens_type lens_type_third_imager
Definition ds-private.h:184
ds_oem_id oem_id
Definition ds-private.h:185
uint8_t reserved1[2]
Definition ds-private.h:189
uint8_t module_skew_version
Definition ds-private.h:183
uint8_t camera_options_1
Definition ds-private.h:220
uint32_t camera_head_contents_size_bytes
Definition ds-private.h:206
double dy
Definition ds-private.h:224
double cx_special
Definition ds-private.h:212
double registration_date
Definition ds-private.h:229
double cy_qres
Definition ds-private.h:201
@ DS_HEADER_VERSION_NUMBER
Definition ds-private.h:171
uint32_t camera_fpga_version
Definition ds-private.h:192
int32_t nominal_baseline_third_imager
Definition ds-private.h:179
uint8_t reserved2[4]
Definition ds-private.h:191
double registration_rotation[9]
Definition ds-private.h:230
double calibration_x_error
Definition ds-private.h:196
uint8_t module_minor_version
Definition ds-private.h:182
double theta_y
Definition ds-private.h:227
double rectification_data_big[54]
Definition ds-private.h:218
uint8_t body_serial_number[20]
Definition ds-private.h:222
ds_lens_coating_type lens_coating_type
Definition ds-private.h:234
double cz_big
Definition ds-private.h:209
uint32_t lens_type_platform
Definition ds-private.h:236
double focus_alignment_date
Definition ds-private.h:178
uint8_t module_major_version
Definition ds-private.h:181
double build_date
Definition ds-private.h:176
uint32_t imager_type_platform
Definition ds-private.h:237
double rectification_data_special[54]
Definition ds-private.h:219
ds_emitter_type emitter_type
Definition ds-private.h:190
int32_t nominal_baseline_platform[3]
Definition ds-private.h:235
Definition ds-private.h:245
ds_head_content head_content
Definition ds-private.h:246
ds_calibration calibration
Definition ds-private.h:247
Definition ds-private.h:348
uint16_t min
Definition ds-private.h:348
uint16_t max
Definition ds-private.h:348
Definition ds-private.h:350
uint32_t rate
Definition ds-private.h:350
uint32_t value
Definition ds-private.h:350
Definition ds-private.h:351
int8_t current
Definition ds-private.h:351
int8_t min
Definition ds-private.h:351
int8_t max
Definition ds-private.h:351
int8_t min_fault
Definition ds-private.h:351
Definition types.h:45
Definition uvc.h:23