Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
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 
13 namespace 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  {
25  int version;
26  uint32_t serial_number;
30  float Rthird[9], T[3], B;
31  };
32 
33  enum ds_lens_type : uint32_t
34  {
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  {
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  {
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)
168  struct ds_head_content
170  {
171  enum { DS_HEADER_VERSION_NUMBER = 12 }; // required camera header version number for DS devices
172  uint32_t serial_number;
175  uint8_t model_data[64]; // TODO requires additional info
176  double build_date;
180  uint8_t module_version;
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;
212  double cx_special;
213  double cy_special;
214  double cz_special;
215  double kx_special;
216  double ky_special;
222  uint8_t body_serial_number[20];
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
238  uint32_t the_last_word;
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  {
261  command_response = 1,
262  fisheye_xu_strobe = 1,
263  iffley = 2,
265  stream_intent = 3,
266  fisheye_exposure = 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,
284  lr_gain_discovery = 22,
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;
300  float kp_exposure;
306  };
307 
308  struct dc_params // Depth control algorithm parameters
309  {
312  uint32_t median_thresh;
318  uint32_t neighbor_thresh;
319  uint32_t lr_thresh;
320 
321  enum { MAX_PRESETS = 6 };
323  };
324 
325  class time_pad
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;
429  uint32_t exposureLeftSum;
435  uint32_t CAMmoduleStatus;
436  uint32_t pad0;
437  uint32_t pad1;
438  uint32_t pad2;
439  uint32_t pad3;
440  uint32_t VDFerrorStatus;
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
rsimpl::ds::control::depth_units
@ depth_units
rsimpl::ds::ds_head_content::nominal_baseline_third_imager
int32_t nominal_baseline_third_imager
Definition: ds-private.h:179
rsimpl::ds::get_lr_exposure
rate_value get_lr_exposure(const uvc::device &device)
Definition: ds-private.h:371
rsimpl::ds::control::disparity
@ disparity
rsimpl::ds::disp_mode
Definition: ds-private.h:349
rsimpl::ds::set_temperature
void set_temperature(uvc::device &device, temperature temp)
Definition: ds-private.h:409
rsimpl::ds::ds_head_content::ky_special
double ky_special
Definition: ds-private.h:216
rsimpl::ds::ae_params::exposure_right_edge
uint16_t exposure_right_edge
Definition: ds-private.h:305
rsimpl::ds::DS_LENS_COATING_ALL_PASS
@ DS_LENS_COATING_ALL_PASS
No IR coating.
Definition: ds-private.h:79
rsimpl::ds::DS_LENS_DS917
@ DS_LENS_DS917
RGB lens.
Definition: ds-private.h:48
rsimpl::ds::dinghy::frameCount
uint32_t frameCount
Definition: ds-private.h:427
rsimpl::ds::ds_head_content::camera_fpga_version
uint32_t camera_fpga_version
Definition: ds-private.h:192
rsimpl::ds::dc_params::neighbor_thresh
uint32_t neighbor_thresh
Definition: ds-private.h:318
rsimpl::ds::ae_params::mean_intensity_set_point
float mean_intensity_set_point
Definition: ds-private.h:297
rsimpl::ds::get_temperature
temperature get_temperature(const uvc::device &device)
Definition: ds-private.h:368
rsimpl::ds::ds_head_content::theta_z
double theta_z
Definition: ds-private.h:228
rsimpl::ds::get_register_value
void get_register_value(uvc::device &device, uint32_t reg, uint32_t &value)
rsimpl::ds::STATUS_BIT_LR_STREAMING
const int STATUS_BIT_LR_STREAMING
Definition: ds-private.h:20
rsimpl::ds::dc_params::texture_count_thresh
uint32_t texture_count_thresh
Definition: ds-private.h:315
rsimpl::zr300::get_fisheye_external_trigger
uint8_t get_fisheye_external_trigger(const uvc::device &device)
rsimpl::ds::ds_head_content::cz_big
double cz_big
Definition: ds-private.h:209
rsimpl::ds::dinghy
Definition: ds-private.h:424
rsimpl::ds::set_lr_gain
void set_lr_gain(uvc::device &device, rate_value gain)
Definition: ds-private.h:420
rsimpl::ds::ds_head_content::calibration_date
double calibration_date
Definition: ds-private.h:194
rsimpl::ds::temperature::min
int8_t min
Definition: ds-private.h:351
rsimpl::ds::set_depth_params
void set_depth_params(uvc::device &device, dc_params params)
Definition: ds-private.h:410
rsimpl::ds::control::rectification
@ rectification
rsimpl::ds::disp_mode::disparity_multiplier
double disparity_multiplier
Definition: ds-private.h:349
rsimpl::zr300::claim_motion_module_interface
void claim_motion_module_interface(uvc::device &device)
rsimpl::ds::ds_calibration::B
float B
Definition: ds-private.h:30
rsimpl::ds::get_lr_exposure_discovery
discovery get_lr_exposure_discovery(const uvc::device &device)
Definition: ds-private.h:403
rsimpl::ds::dinghy::exposureRightSum
uint32_t exposureRightSum
Definition: ds-private.h:432
rsimpl::ds::DS_LENS_DS6237
@ DS_LENS_DS6237
Newmax 58.9 x 45.9 degs in VGA.
Definition: ds-private.h:46
rsimpl::ds::discovery::resolution
uint32_t resolution
Definition: ds-private.h:352
rsimpl::ds::dc_params::median_thresh
uint32_t median_thresh
Definition: ds-private.h:312
rsimpl::ds::dinghy::pad4
uint32_t pad4
Definition: ds-private.h:441
rsimpl::ds::set_lr_gain_discovery
void set_lr_gain_discovery(uvc::device &device, discovery disc)
Definition: ds-private.h:418
rsimpl::ds::DS_OEM_NONE
@ DS_OEM_NONE
Definition: ds-private.h:123
rsimpl::zr300::set_fisheye_strobe
void set_fisheye_strobe(uvc::device &device, uint8_t strobe)
rsimpl::ds::set_stream_intent
void set_stream_intent(uvc::device &device, uint8_t &intent)
rsimpl::ds::ds_head_content::theta_y
double theta_y
Definition: ds-private.h:227
rsimpl::zr300::set_fisheye_external_trigger
void set_fisheye_external_trigger(uvc::device &device, uint8_t ext_trig)
rsimpl::ds::ds_head_content::platform_camera_focus
uint32_t platform_camera_focus
Definition: ds-private.h:193
rsimpl::ds::ds_head_content::camera_head_contents_size_bytes
uint32_t camera_head_contents_size_bytes
Definition: ds-private.h:206
rsimpl::ds::DS_LENS_COATING_IR_CUT
@ DS_LENS_COATING_IR_CUT
IR coating DS4: Innowave 670 cut off.
Definition: ds-private.h:78
rsimpl::ds::ds_head_content::rectification_data_padding
double rectification_data_padding[26]
Definition: ds-private.h:199
rsimpl::ds::ds_head_content::dz
double dz
Definition: ds-private.h:225
rsimpl::ds::ds_head_content::cz_special
double cz_special
Definition: ds-private.h:214
rsimpl::ds::ds_head_content::platform_camera_support
uint8_t platform_camera_support
Definition: ds-private.h:187
rsimpl::ds::ds_head_content::cy_qres
double cy_qres
Definition: ds-private.h:201
rsimpl::ds::temperature::current
int8_t current
Definition: ds-private.h:351
rsimpl::ds::ds_head_content::calibration_y_error
double calibration_y_error
Definition: ds-private.h:197
rsimpl::ds::DS_LENS_DSL103
@ DS_LENS_DSL103
Sunex DSL103: Internal standard.
Definition: ds-private.h:36
rsimpl::ds::dinghy::exposureRightDarkCount
uint32_t exposureRightDarkCount
Definition: ds-private.h:433
rsimpl::ds::ae_params::exposure_left_edge
uint16_t exposure_left_edge
Definition: ds-private.h:304
rsimpl::ds::dinghy::VDFerrorStatus
uint32_t VDFerrorStatus
Definition: ds-private.h:440
rsimpl::ds::dinghy::pad1
uint32_t pad1
Definition: ds-private.h:437
rsimpl::ds::DS_EMITTER_LD3
@ DS_EMITTER_LD3
Laser Driver 3.
Definition: ds-private.h:103
rsimpl::ds::ds_head_content::reserved1
uint8_t reserved1[2]
Definition: ds-private.h:189
rsimpl::ds::ds_head_content::first_program_date
double first_program_date
Definition: ds-private.h:177
rsimpl::zr300::get_fisheye_exposure
uint16_t get_fisheye_exposure(const uvc::device &device)
rsimpl::ds::set_lr_exposure
void set_lr_exposure(uvc::device &device, rate_value exposure)
Definition: ds-private.h:419
rsimpl::ds::ds_head_content
The struct is aligned with the data layout in device.
Definition: ds-private.h:169
rsimpl::ds::ds_head_content::lens_coating_type
ds_lens_coating_type lens_coating_type
Definition: ds-private.h:234
rsimpl::ds::ds_head_content::oem_id
ds_oem_id oem_id
Definition: ds-private.h:185
rsimpl::ds::dc_params::MAX_PRESETS
@ MAX_PRESETS
Definition: ds-private.h:321
rsimpl::ds::ds_head_content::module_skew_version
uint8_t module_skew_version
Definition: ds-private.h:183
rsimpl::ds::ds_head_content::registration_date
double registration_date
Definition: ds-private.h:229
rsimpl::ds::DS_LENS_COUNT
@ DS_LENS_COUNT
AEOT lens.
Definition: ds-private.h:50
rsimpl::ds::control::lr_gain
@ lr_gain
rsimpl::ds::DS_LENS_DSL924A
@ DS_LENS_DSL924A
Sunex DSL 924a.
Definition: ds-private.h:41
rsimpl::ds::ds_head_content::kx_qres
double kx_qres
Definition: ds-private.h:203
rsimpl::zr300::set_fisheye_exposure
void set_fisheye_exposure(uvc::device &device, uint16_t exposure)
rsimpl::ds::time_pad::time_pad
time_pad(std::chrono::high_resolution_clock::duration duration)
Definition: ds-private.h:331
rsimpl::ds::get_depth_params
dc_params get_depth_params(const uvc::device &device)
Definition: ds-private.h:369
rsimpl::ds::disp_mode::is_disparity_enabled
uint32_t is_disparity_enabled
Definition: ds-private.h:349
rsimpl::ds::discovery::default_value
uint32_t default_value
Definition: ds-private.h:352
rsimpl::ds::ds_head_content::cy_big
double cy_big
Definition: ds-private.h:208
rsimpl::ds::ds_head_content::emitter_type
ds_emitter_type emitter_type
Definition: ds-private.h:190
rsimpl::ds::xu_write
void xu_write(uvc::device &device, uvc::extension_unit xu, control xu_ctrl, void *buffer, uint32_t length)
rsimpl::ds::ds_head_content::cz_qres
double cz_qres
Definition: ds-private.h:202
rsimpl::ds::set_lr_exposure_mode
void set_lr_exposure_mode(uvc::device &device, uint8_t mode)
Definition: ds-private.h:415
rsimpl::ds::ds_head_content::rectification_data_special
double rectification_data_special[54]
Definition: ds-private.h:219
rsimpl::ds::ds_calibration::intrinsicsThird
rs_intrinsics intrinsicsThird[2]
Definition: ds-private.h:28
rsimpl::ds::range::max
uint16_t max
Definition: ds-private.h:348
rsimpl::ds::get_last_error
uint8_t get_last_error(const uvc::device &device)
Definition: ds-private.h:370
rsimpl::ds::set_disparity_shift
void set_disparity_shift(uvc::device &device, uint32_t shift)
Definition: ds-private.h:416
rsimpl::ds::ds_lens_coating_type
ds_lens_coating_type
Definition: ds-private.h:75
uvc.h
rsimpl::ds::ds_head_content::camera_head_data_little_endian
uint8_t camera_head_data_little_endian
Definition: ds-private.h:217
rsimpl::ds::dinghy::exposureLeftSum
uint32_t exposureLeftSum
Definition: ds-private.h:429
rsimpl::ds::ds_head_content::kx_special
double kx_special
Definition: ds-private.h:215
rsimpl::ds::dinghy::exposureLeftDarkCount
uint32_t exposureLeftDarkCount
Definition: ds-private.h:430
rsimpl::ds::ds_head_content::registration_rotation
double registration_rotation[9]
Definition: ds-private.h:230
rsimpl::ds::ds_calibration::version
int version
Definition: ds-private.h:25
rsimpl::ds::ds_head_content::reserved3
uint8_t reserved3[37]
Definition: ds-private.h:239
rsimpl::ds::temperature::max
int8_t max
Definition: ds-private.h:351
rsimpl::ds::rate_value::value
uint32_t value
Definition: ds-private.h:350
rsimpl::ds::ds_info::head_content
ds_head_content head_content
Definition: ds-private.h:246
rsimpl::ds::control::disparity_shift
@ disparity_shift
rsimpl::ds::ds_head_content::module_major_version
uint8_t module_major_version
Definition: ds-private.h:181
rsimpl::ds::ds_head_content::ky_big
double ky_big
Definition: ds-private.h:211
rsimpl::ds::time_pad::stop
void stop()
Definition: ds-private.h:337
rsimpl::ds::control::emitter
@ emitter
rsimpl::ds::ds_head_content::serial_number
uint32_t serial_number
Definition: ds-private.h:172
rsimpl::ds::dinghy::exposureLeftBrightCount
uint32_t exposureLeftBrightCount
Definition: ds-private.h:431
rsimpl::ds::control::lr_exposure_mode
@ lr_exposure_mode
rsimpl::ds::read_isp_firmware_version
std::string read_isp_firmware_version(uvc::device &device)
rsimpl::to_string
Definition: types.h:44
rsimpl::ds::get_min_max_depth
range get_min_max_depth(const uvc::device &device)
Definition: ds-private.h:366
rsimpl::ds::ds_head_content::registration_translation
double registration_translation[3]
Definition: ds-private.h:231
rsimpl::ds::set_min_max_depth
void set_min_max_depth(uvc::device &device, range min_max)
Definition: ds-private.h:407
rsimpl::ds::control::lr_autoexposure_parameters
@ lr_autoexposure_parameters
rsimpl::ds::ds_head_content::prq_type
ds_prq_type prq_type
Definition: ds-private.h:188
rsimpl::ds::dc_params::presets
static const dc_params presets[MAX_PRESETS]
Definition: ds-private.h:322
rsimpl::ds::DS_LENS_DS6233
@ DS_LENS_DS6233
IR lens.
Definition: ds-private.h:47
rsimpl::ds::range::min
uint16_t min
Definition: ds-private.h:348
rsimpl::ds::ds_head_content::cx_big
double cx_big
Definition: ds-private.h:207
rsimpl::ds::control::last_error
@ last_error
rsimpl::ds::set_disparity_mode
void set_disparity_mode(uvc::device &device, disp_mode mode)
Definition: ds-private.h:408
rsimpl::ds::dinghy::pad2
uint32_t pad2
Definition: ds-private.h:438
rsimpl::ds::control::fisheye_xu_ext_trig
@ fisheye_xu_ext_trig
rsimpl::ds::ds_head_content::kx_big
double kx_big
Definition: ds-private.h:210
rsimpl::ds::discovery::min
uint32_t min
Definition: ds-private.h:352
rsimpl
Definition: archive.h:12
rsimpl::ds::ds_prq_type
ds_prq_type
Definition: ds-private.h:136
rsimpl::ds::ds_head_content::imager_type_platform
uint32_t imager_type_platform
Definition: ds-private.h:237
rsimpl::ds::dinghy::pad0
uint32_t pad0
Definition: ds-private.h:436
rsimpl::ds::control::temperature
@ temperature
rsimpl::ds::DS_LENS_COATING_COUNT
@ DS_LENS_COATING_COUNT
Definition: ds-private.h:82
rsimpl::ds::ds_head_content::ky_qres
double ky_qres
Definition: ds-private.h:204
rsimpl::ds::get_stream_status
void get_stream_status(const uvc::device &device, uint32_t &status)
rsimpl::ds::rate_value
Definition: ds-private.h:350
rsimpl::ds::ds_head_content::module_version
uint8_t module_version
Definition: ds-private.h:180
rsimpl::ds::ae_params::exposure_bottom_edge
uint16_t exposure_bottom_edge
Definition: ds-private.h:303
rsimpl::ds::operator<<
std::ostream & operator<<(std::ostream &out, ds_lens_type type)
Definition: ds-private.h:54
rsimpl::ds::ds_emitter_type
ds_emitter_type
Definition: ds-private.h:99
rsimpl::ds::time_to_string
std::string time_to_string(double val)
Definition: ds-private.h:151
rsimpl::zr300::get_fisheye_strobe
uint8_t get_fisheye_strobe(const uvc::device &device)
rsimpl::ds::control::iffley
@ iffley
rsimpl::ds::ds_lens_type
ds_lens_type
Definition: ds-private.h:33
rsimpl::ds::control::stream_intent
@ stream_intent
rsimpl::ds::DS_LENS_Largan9386
@ DS_LENS_Largan9386
50 HFOV 38 VFOV (60DFOV): CTM2/6 Module L&R
Definition: ds-private.h:43
rsimpl::ds::ds_head_content::the_last_word
uint32_t the_last_word
Definition: ds-private.h:238
rsimpl::ds::read_firmware_version
std::string read_firmware_version(uvc::device &device)
rsimpl::ds::ds_head_content::lens_type_third_imager
ds_lens_type lens_type_third_imager
Definition: ds-private.h:184
rsimpl::ds::DS_EMITTER_COUNT
@ DS_EMITTER_COUNT
Just count.
Definition: ds-private.h:105
rsimpl::ds::control::depth_params
@ depth_params
rsimpl::ds::DS_EMITTER_LD2
@ DS_EMITTER_LD2
Laser Driver 2, NO PWM Controls.
Definition: ds-private.h:102
rsimpl::ds::ds_calibration::Rthird
float Rthird[9]
Definition: ds-private.h:30
rsimpl::ds::control::command_response
@ command_response
rsimpl::ds::ds_head_content::focus_alignment_date
double focus_alignment_date
Definition: ds-private.h:178
rsimpl::ds::control::fisheye_exposure
@ fisheye_exposure
rsimpl::ds::time_pad
Definition: ds-private.h:325
rsimpl::ds::rate_value::rate
uint32_t rate
Definition: ds-private.h:350
RS_OPTION_R200_AUTO_EXPOSURE_LEFT_EDGE
@ RS_OPTION_R200_AUTO_EXPOSURE_LEFT_EDGE
Definition: rs.h:174
rsimpl::ds::DS_EMITTER_LD4_1
@ DS_EMITTER_LD4_1
Laser Driver 4.1.
Definition: ds-private.h:104
rsimpl::ds::ds_head_content::reserved2
uint8_t reserved2[4]
Definition: ds-private.h:191
RS_OPTION_R200_AUTO_EXPOSURE_BOTTOM_EDGE
@ RS_OPTION_R200_AUTO_EXPOSURE_BOTTOM_EDGE
Definition: rs.h:173
rsimpl::ds::temperature::min_fault
int8_t min_fault
Definition: ds-private.h:351
rsimpl::ds::discovery::max
uint32_t max
Definition: ds-private.h:352
rsimpl::ds::ds_head_content::camera_options_1
uint8_t camera_options_1
Definition: ds-private.h:220
rsimpl::ds::ds_head_content::camera_head_contents_version
uint32_t camera_head_contents_version
Definition: ds-private.h:205
rsimpl::ds::control::lr_gain_discovery
@ lr_gain_discovery
rsimpl::ds::ds_head_content::body_serial_number
uint8_t body_serial_number[20]
Definition: ds-private.h:222
rsimpl::ds::ds_oem_id
ds_oem_id
Definition: ds-private.h:121
rsimpl::ds::DS_LENS_AZW58
@ DS_LENS_AZW58
58 degree lenses on the AZureWave boards (DS-526)
Definition: ds-private.h:42
rsimpl::ds::STATUS_BIT_WEB_STREAMING
const int STATUS_BIT_WEB_STREAMING
Definition: ds-private.h:21
rsimpl::ds::ds_head_content::dx
double dx
Definition: ds-private.h:223
rsimpl::ds::ds_head_content::camera_options_2
uint8_t camera_options_2
Definition: ds-private.h:221
rsimpl::ds::ae_params::kp_gain
float kp_gain
Definition: ds-private.h:299
rsimpl::ds::ds_calibration::serial_number
uint32_t serial_number
Definition: ds-private.h:26
rsimpl::ds::DS_LENS_AEOT_1LS0901L
@ DS_LENS_AEOT_1LS0901L
Definition: ds-private.h:49
rsimpl::ds::DS_LENS_DSL203
@ DS_LENS_DSL203
Sunex DSL 203.
Definition: ds-private.h:39
rsimpl::ds::ds_head_content::cx_special
double cx_special
Definition: ds-private.h:212
rsimpl::ds::DS_LENS_DS6177
@ DS_LENS_DS6177
Newmax 71.7 x 44.2 degs in 1080p.
Definition: ds-private.h:45
rsimpl::ds::DS_LENS_PENTAX2514
@ DS_LENS_PENTAX2514
Pentax cmount lens 25mm.
Definition: ds-private.h:40
rsimpl::ds::discovery
Definition: ds-private.h:352
rsimpl::ds::ae_params::kp_exposure
float kp_exposure
Definition: ds-private.h:300
rsimpl::ds::DS_LENS_COATING_UNKNOWN
@ DS_LENS_COATING_UNKNOWN
Definition: ds-private.h:77
rsimpl::ds::ds_head_content::rectification_data_qres
double rectification_data_qres[54]
Definition: ds-private.h:198
rsimpl::ds::ds_head_content::dy
double dy
Definition: ds-private.h:224
rsimpl::ds::range
Definition: ds-private.h:348
rsimpl::ds::DS_LENS_DS6100
@ DS_LENS_DS6100
Newmax 67.8 x 41.4 degs in 1080p.
Definition: ds-private.h:44
rsimpl::ds::dinghy::exposureRightBrightCount
uint32_t exposureRightBrightCount
Definition: ds-private.h:434
rsimpl::ds::ds_head_content::build_date
double build_date
Definition: ds-private.h:176
rsimpl::ds::DS_LENS_DSL821C
@ DS_LENS_DSL821C
Sunex DSL 821C.
Definition: ds-private.h:37
rs_intrinsics
Video stream intrinsics.
Definition: rs.h:300
rsimpl::ds::ds_head_content::model_data
uint8_t model_data[64]
Definition: ds-private.h:175
rsimpl::ds::ds_head_content::lens_coating_type_third_imager
ds_lens_coating_type lens_coating_type_third_imager
Definition: ds-private.h:186
rsimpl::ds::control::lr_exposure
@ lr_exposure
rsimpl::ds::ds_head_content::cy_special
double cy_special
Definition: ds-private.h:213
rsimpl::ds::time_pad::start
void start()
Definition: ds-private.h:332
rsimpl::ds::DS_LENS_COATING_IR_PASS
@ DS_LENS_COATING_IR_PASS
Visible-light block / IR pass: center 860, width 25nm.
Definition: ds-private.h:80
RS_OPTION_R200_AUTO_EXPOSURE_RIGHT_EDGE
@ RS_OPTION_R200_AUTO_EXPOSURE_RIGHT_EDGE
Definition: rs.h:175
rsimpl::ds::temperature
Definition: ds-private.h:351
rsimpl::uvc::extension_unit
Definition: uvc.h:23
rsimpl::ds::ds_calibration::T
float T[3]
Definition: ds-private.h:30
rsimpl::ds::get_lr_exposure_mode
uint8_t get_lr_exposure_mode(const uvc::device &device)
Definition: ds-private.h:401
rsimpl::ds::ds_calibration::modesThird
rs_intrinsics modesThird[2][2]
Definition: ds-private.h:29
rsimpl::ds::ds_head_content::calibration_x_error
double calibration_x_error
Definition: ds-private.h:196
rsimpl::ds::control::embedded_count
@ embedded_count
rsimpl::ds::ae_params::exposure_top_edge
uint16_t exposure_top_edge
Definition: ds-private.h:302
rsimpl::ds::dc_params::robbins_munroe_minus_inc
uint32_t robbins_munroe_minus_inc
Definition: ds-private.h:310
rsimpl::ds::dc_params::texture_diff_thresh
uint32_t texture_diff_thresh
Definition: ds-private.h:316
rsimpl::ds::STATUS_BIT_Z_STREAMING
const int STATUS_BIT_Z_STREAMING
Definition: ds-private.h:19
rsimpl::ds::set_lr_auto_exposure_params
void set_lr_auto_exposure_params(uvc::device &device, ae_params params)
Definition: ds-private.h:411
rsimpl::ds::DS_LENS_UNKNOWN
@ DS_LENS_UNKNOWN
Lens either unknown or not needing special treatment.
Definition: ds-private.h:35
rsimpl::ds::dinghy::frameStatus
uint32_t frameStatus
Definition: ds-private.h:428
rsimpl::ds::get_lr_auto_exposure_params
ae_params get_lr_auto_exposure_params(const uvc::device &device, std::vector< supported_option > ae_vec)
Definition: ds-private.h:372
rsimpl::ds::discovery::fps
uint32_t fps
Definition: ds-private.h:352
rsimpl::ds::DS_PRQ_READY
@ DS_PRQ_READY
Definition: ds-private.h:138
rsimpl::ds::dc_params::second_peak_thresh
uint32_t second_peak_thresh
Definition: ds-private.h:317
rsimpl::ds::get_disparity_mode
disp_mode get_disparity_mode(const uvc::device &device)
Definition: ds-private.h:367
rsimpl::ds::force_firmware_reset
void force_firmware_reset(uvc::device &device)
rsimpl::ds::ae_params
Definition: ds-private.h:295
rsimpl::ds::get_depth_units
uint32_t get_depth_units(const uvc::device &device)
Definition: ds-private.h:365
rsimpl::ds::get_lr_gain
rate_value get_lr_gain(const uvc::device &device)
Definition: ds-private.h:400
rsimpl::ds::dc_params::lr_thresh
uint32_t lr_thresh
Definition: ds-private.h:319
rsimpl::ds::get_emitter_state
bool get_emitter_state(const uvc::device &device, bool is_streaming, bool is_depth_enabled)
rsimpl::ds::set_lr_exposure_discovery
void set_lr_exposure_discovery(uvc::device &device, discovery disc)
Definition: ds-private.h:417
rsimpl::ds::get_disparity_shift
uint32_t get_disparity_shift(const uvc::device &device)
Definition: ds-private.h:402
rsimpl::ds::ae_params::bright_ratio_set_point
float bright_ratio_set_point
Definition: ds-private.h:298
rsimpl::ds::ae_params::kp_dark_threshold
float kp_dark_threshold
Definition: ds-private.h:301
rsimpl::ds::control::sw_reset
@ sw_reset
rsimpl::ds::control::hw_timestamp
@ hw_timestamp
rsimpl::ds::control
control
Definition: ds-private.h:259
rsimpl::zr300::fisheye_xu
const uvc::extension_unit fisheye_xu
Definition: ds-private.h:448
rsimpl::ds::xu_read
void xu_read(const uvc::device &device, uvc::extension_unit xu, control xu_ctrl, void *buffer, uint32_t length)
rsimpl::ds::dinghy::magicNumber
uint32_t magicNumber
Definition: ds-private.h:426
rsimpl::ds::set_emitter_state
void set_emitter_state(uvc::device &device, bool state)
rsimpl::ds::ds_head_content::calibration_type
uint32_t calibration_type
Definition: ds-private.h:195
rsimpl::ds::dinghy::CAMmoduleStatus
uint32_t CAMmoduleStatus
Definition: ds-private.h:435
rsimpl::ds::control::status
@ status
RS_OPTION_R200_AUTO_EXPOSURE_TOP_EDGE
@ RS_OPTION_R200_AUTO_EXPOSURE_TOP_EDGE
Definition: rs.h:172
rsimpl::ds::ds_head_content::imager_model_number
uint32_t imager_model_number
Definition: ds-private.h:173
rsimpl::ds::ds_calibration
Definition: ds-private.h:23
rsimpl::ds::ds_head_content::lens_type_platform
uint32_t lens_type_platform
Definition: ds-private.h:236
rsimpl::ds::dc_params
Definition: ds-private.h:308
rsimpl::ds::ds_head_content::module_revision_number
uint32_t module_revision_number
Definition: ds-private.h:174
rsimpl::ds::DS_LENS_DSL202A
@ DS_LENS_DSL202A
Sunex DSL 202A.
Definition: ds-private.h:38
rsimpl::ds::set_depth_units
void set_depth_units(uvc::device &device, uint32_t units)
Definition: ds-private.h:406
rsimpl::ds::ds_head_content::DS_HEADER_VERSION_NUMBER
@ DS_HEADER_VERSION_NUMBER
Definition: ds-private.h:171
rsimpl::ds::set_register_value
void set_register_value(uvc::device &device, uint32_t reg, uint32_t value)
rsimpl::ds::ds_head_content::lens_type
ds_lens_type lens_type
Definition: ds-private.h:233
rsimpl::ds::ds_head_content::rectification_data_big
double rectification_data_big[54]
Definition: ds-private.h:218
rsimpl::ds::ds_calibration::modesLR
rs_intrinsics modesLR[3]
Definition: ds-private.h:27
rsimpl::ds::ds_head_content::nominal_baseline_platform
int32_t nominal_baseline_platform[3]
Definition: ds-private.h:235
rsimpl::ds::control::min_max
@ min_max
rsimpl::ds::dinghy::pad3
uint32_t pad3
Definition: ds-private.h:439
rsimpl::ds::ds_info::calibration
ds_calibration calibration
Definition: ds-private.h:247
rsimpl::ds::ds_info
Definition: ds-private.h:244
rsimpl::ds::ds_head_content::theta_x
double theta_x
Definition: ds-private.h:226
rsimpl::ds::lr_xu
const uvc::extension_unit lr_xu
Definition: ds-private.h:17
rsimpl::ds::ds_head_content::nominal_baseline
uint32_t nominal_baseline
Definition: ds-private.h:232
rsimpl::ds::dc_params::robbins_munroe_plus_inc
uint32_t robbins_munroe_plus_inc
Definition: ds-private.h:311
rsimpl::ds::control::fisheye_xu_strobe
@ fisheye_xu_strobe
rsimpl::ds::ds_head_content::cx_qres
double cx_qres
Definition: ds-private.h:200
rsimpl::ds::ds_head_content::module_minor_version
uint8_t module_minor_version
Definition: ds-private.h:182
rsimpl::ds::DS_LENS_COATING_IR_PASS_859_43
@ DS_LENS_COATING_IR_PASS_859_43
Visible-light block / IR pass center 859, width 43nm.
Definition: ds-private.h:81
rsimpl::ds::dc_params::score_max_thresh
uint32_t score_max_thresh
Definition: ds-private.h:314
rsimpl::ds::read_camera_info
ds_info read_camera_info(uvc::device &device)
rsimpl::ds::dc_params::score_min_thresh
uint32_t score_min_thresh
Definition: ds-private.h:313
rsimpl::ds::DS_EMITTER_NONE
@ DS_EMITTER_NONE
Definition: ds-private.h:101
rsimpl::ds::control::lr_exposure_discovery
@ lr_exposure_discovery
rsimpl::ds::get_lr_gain_discovery
discovery get_lr_gain_discovery(const uvc::device &device)
Definition: ds-private.h:404