Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
ds5-private.h
Go to the documentation of this file.
1 // License: Apache 2.0. See LICENSE file in root directory.
2 // Copyright(c) 2015 Intel Corporation. All Rights Reserved.
3 
4 #pragma once
5 
6 //#include "metadata.h"
7 #include "backend.h"
8 #include "types.h"
9 
10 #include <map>
11 #include <iomanip>
12 
13 const double TIMESTAMP_USEC_TO_MSEC = 0.001;
14 
15 namespace librealsense
16 {
17  namespace ds
18  {
19  const uint16_t RS400_PID = 0x0ad1; // PSR
20  const uint16_t RS410_PID = 0x0ad2; // ASR
21  const uint16_t RS415_PID = 0x0ad3; // ASRC
22  const uint16_t RS430_PID = 0x0ad4; // AWG
23  const uint16_t RS430_MM_PID = 0x0ad5; // AWGT
24  const uint16_t RS_USB2_PID = 0x0ad6; // USB2
25  const uint16_t RS420_PID = 0x0af6; // PWG
26  const uint16_t RS420_MM_PID = 0x0afe; // PWGT
27  const uint16_t RS410_MM_PID = 0x0aff; // ASR
28  const uint16_t RS400_MM_PID = 0x0b00; // PSR
29  const uint16_t RS430_MM_RGB_PID = 0x0b01; // AWGCT
30  const uint16_t RS460_PID = 0x0b03; // DS5U
31  const uint16_t RS435_RGB_PID = 0x0b07; // AWGC
32  const uint16_t RS405_PID = 0x0b0c; // DS5U
33 
34  // DS5 depth XU identifiers
35  const uint8_t DS5_HWMONITOR = 1;
36  const uint8_t DS5_DEPTH_EMITTER_ENABLED = 2;
37  const uint8_t DS5_EXPOSURE = 3;
38  const uint8_t DS5_LASER_POWER = 4;
39  const uint8_t DS5_ERROR_REPORTING = 7;
40  const uint8_t DS5_EXT_TRIGGER = 8;
42  const uint8_t DS5_ENABLE_AUTO_WHITE_BALANCE = 0xA;
43  const uint8_t DS5_ENABLE_AUTO_EXPOSURE = 0xB;
44 
45  static const std::set<std::uint16_t> rs400_sku_pid = {
60  };
61 
62  static const std::map<std::uint16_t, std::string> rs400_sku_names = {
63  { RS400_PID, "Intel RealSense 400"},
64  { RS400_MM_PID, "Intel RealSense 400 with Tracking Module"},
65  { RS410_PID, "Intel RealSense 410"},
66  { RS410_MM_PID, "Intel RealSense 410 with Tracking Module"},
67  { RS415_PID, "Intel RealSense 415"},
68  { RS420_PID, "Intel RealSense 420"},
69  { RS420_MM_PID, "Intel RealSense 420 with Tracking Module"},
70  { RS430_PID, "Intel RealSense 430"},
71  { RS430_MM_PID, "Intel RealSense 430 with Tracking Module"},
72  { RS430_MM_PID, "Intel RealSense 430 with Tracking Module and RGB Module"},
73  { RS435_RGB_PID,"Intel RealSense 435"},
74  { RS460_PID, "Intel RealSense 460" },
75  { RS405_PID, "Intel RealSense 405" },
76  { RS_USB2_PID, "Intel RealSense USB2" }
77  };
78 
79  // DS5 fisheye XU identifiers
80  const uint8_t FISHEYE_EXPOSURE = 1;
81 
83  { 0xC9606CCB, 0x594C, 0x4D25,{ 0xaf, 0x47, 0xcc, 0xc4, 0x96, 0x43, 0x59, 0x95 } } };
84 
86  { 0xf6c3c3d1, 0x5cde, 0x4477,{ 0xad, 0xf0, 0x41, 0x33, 0xf5, 0x8d, 0xa6, 0xf4 } } };
87 
88  enum fw_cmd : uint8_t
89  {
90  GLD = 0x0f, // FW logs
91  GVD = 0x10, // camera details
92  GETINTCAL = 0x15, // Read calibration table
93  HWRST = 0x20, // hardware reset
94  OBW = 0x29, // OVT bypass write
95  SET_ADV = 0x2B, // set advanced mode control
96  GET_ADV = 0x2C, // get advanced mode control
97  EN_ADV = 0x2D, // enable advanced mode
98  UAMG = 0X30, // get advanced mode status
99  SETAEROI = 0x44, // set auto-exposure region of interest
100  GETAEROI = 0x45, // get auto-exposure region of interest
101  MMER = 0x4F, // MM EEPROM read ( from DS5 cache )
102  GET_EXTRINSICS = 0x53, // get extrinsics
103  };
104 
105  const int etDepthTableControl = 9; // Identifier of the depth table control
106 
108  {
109  GET_VAL = 0,
110  GET_MIN = 1,
111  GET_MAX = 2,
112  };
113 
114  const std::string DEPTH_STEREO = "Stereo Module";
115 
117  {
118  big_endian<uint16_t> version; // major.minor. Big-endian
119  uint16_t table_type; // ctCalibration
120  uint32_t table_size; // full size including: TOC header + TOC + actual tables
121  uint32_t param; // This field content is defined ny table type
122  uint32_t crc32; // crc of all the actual table data excluding header/CRC
123  };
124 
125  enum ds5_rect_resolutions : unsigned short
126  {
140  // Resolutions for DS5U
145  };
146 
148  {
150  float3x3 intrinsic_left; // left camera intrinsic data, normilized
151  float3x3 intrinsic_right; // right camera intrinsic data, normilized
152  float3x3 world2left_rot; // the inverse rotation of the left camera
153  float3x3 world2right_rot; // the inverse rotation of the right camera
154  float baseline; // the baseline between the cameras in mm units
155  uint32_t brown_model; // Distortion model: 0 - DS distorion model, 1 - Brown model
156  uint8_t reserved1[88];
158  uint8_t reserved2[64];
159  };
160 
161  template<class T>
162  const T* check_calib(const std::vector<uint8_t>& raw_data)
163  {
164  using namespace std;
165 
166  auto table = reinterpret_cast<const T*>(raw_data.data());
167  auto header = reinterpret_cast<const table_header*>(raw_data.data());
168  if(raw_data.size() < sizeof(table_header))
169  {
170  throw invalid_value_exception(to_string() << "Calibration data invald, buffer too small : expected " << sizeof(table_header) << " , actual: " << raw_data.size());
171  }
172  // verify the parsed table
173  if (table->header.crc32 != calc_crc32(raw_data.data() + sizeof(table_header), raw_data.size() - sizeof(table_header)))
174  {
175  throw invalid_value_exception("Calibration data CRC error, parsing aborted!");
176  }
177  LOG_DEBUG("Loaded Valid Table: version [mjr.mnr]: 0x" <<
178  hex << setfill('0') << setw(4) << header->version << dec
179  << ", type " << header->table_type << ", size " << header->table_size
180  << ", CRC: " << hex << header->crc32);
181  return table;
182  }
183 
184 #pragma pack(push, 1)
185 
187  {
189  int64_t serial_mm;
190  int64_t serial_depth;
191  float3x3 rotation; // the fisheye rotation matrix
192  float3 translation; // the fisheye translation vector
193  };
194 
196  {
199  };
200 
202  {
203  float bias[3];
204  float scale[3];
205  };
206 
208  {
210  float intrinsics_model; // 1 - Brown, 2 - FOV, 3 - Kannala Brandt
211  float3x3 intrinsic; // FishEye intrinsic matrix, normalize by [-1 1]
212  float distortion[5]; // FishEye forward distortion parameters, F-theta model
213  extrinsics_table fisheye_to_imu; // FishEye rotation matrix and translation vector in IMU CS
214  uint8_t reserved[28];
215  };
216 
218 
220  {
222  float rmax;
226  uint8_t reserved[64];
227  };
228 
230 
232  {
234  uint8_t serial_num[8]; // 2 bytes reserved + 6 data (0000xxxxxxxxxxxx)
235  uint8_t optic_module_mm[4];
236  uint8_t ta[10];
237  uint32_t board_num; // SKU id
238  uint32_t board_rev; // 0
239  uint8_t reserved[34]; // Align to 64 byte ???
240  };
241 
242  constexpr size_t tm1_module_info_size = sizeof(tm1_module_info);
243 
245  {
247  float calibration_model_flag; // 1 - Brown, 2 - FOV, 3 - Kannala Brandt ???????
249  float temperature;
250  uint8_t reserved[20];
251  };
252 
253  constexpr size_t tm1_calib_model_size = sizeof(tm1_calib_model);
254 
256  {
258  uint8_t serial_num[8]; // 2 bytes reserved + 6 data 12 digits in (0000xxxxxxxxxxxx) format
259  uint8_t reserved[8];
260  };
261 
263 
265  {
270  };
271 
273 
274  // TM1 ver 0.51
275  struct tm1_eeprom
276  {
280  };
281 
282  constexpr size_t tm1_eeprom_size = sizeof(tm1_eeprom);
283 
285  {
286  uint32_t depth_units;
291  };
292 
294  {
296  // RGB Intrinsic
297  float3x3 intrinsic; // normalized by [-1 1]
298  float distortion[5]; // RGB forward distortion coefficients, Brown model
299  // RGB Extrinsic
300  float3 rotation; // RGB rotation angles (Rodrigues)
301  float3 translation; // RGB translation vector, mm
302  // RGB Projection
303  float projection[12]; // Projection matrix from depth to RGB [3 X 4]
304  uint16_t width; // original calibrated resolution
305  uint16_t height;
306  // RGB Rectification Coefficients
307  float3x3 intrinsic_matrix_rect; // RGB intrinsic matrix after rectification
308  float3x3 rotation_matrix_rect; // Rotation matrix for rectification of RGB
309  float3 translation_rect; // Translation vector for rectification
310  float reserved[24];
311  };
312 
313 
315  {
317  memset(&result, 0, sizeof(result));
318  for (int i = 0; i < 3; i++)
319  {
320  result.data[i][3] = data.bias[i];
321  result.data[i][i] = data.scale[i];
322  }
323  return result;
324  }
325 
326 
327 
328 #pragma pack(pop)
329 
331  {
336  };
337 
339  {
347  max_id = -1
348  };
349 
351  {
352  uint16_t version; // major.minor
359  std::map<calibration_table_id, bool> data_present;
360 
363  {
364  for (auto i = 0; i < max_ds5_rect_resolutions; i++)
365  depth_intrinsic[i] = {};
366  data_present.emplace(coefficients_table_id, false);
367  data_present.emplace(depth_calibration_id, false);
368  data_present.emplace(rgb_calibration_id, false);
369  data_present.emplace(fisheye_calibration_id, false);
370  data_present.emplace(imu_calibration_id, false);
371  data_present.emplace(lens_shading_id, false);
372  data_present.emplace(projector_id, false);
373  };
374  };
375 
376  static std::map< ds5_rect_resolutions, int2> resolutions_list = {
377  { res_320_240,{ 320, 240 } },
378  { res_424_240,{ 424, 240 } },
379  { res_480_270,{ 480, 270 } },
380  { res_640_360,{ 640, 360 } },
381  { res_640_400,{ 640, 400 } },
382  { res_640_480,{ 640, 480 } },
383  { res_848_480,{ 848, 480 } },
384  { res_960_540,{ 960, 540 } },
385  { res_1280_720,{ 1280, 720 } },
386  { res_1280_800,{ 1280, 800 } },
387  { res_1920_1080,{ 1920, 1080 } },
388  //Resolutions for DS5U
389  { res_576_576,{ 576, 576 } },
390  { res_720_720,{ 720, 720 } },
391  { res_1152_1152,{ 1152, 1152 } },
392  };
393 
394 
395  ds5_rect_resolutions width_height_to_ds5_rect_resolutions(uint32_t width, uint32_t height);
396 
397  rs2_intrinsics get_intrinsic_by_resolution(const std::vector<uint8_t>& raw_data, calibration_table_id table_id, uint32_t width, uint32_t height);
398  rs2_intrinsics get_intrinsic_by_resolution_coefficients_table(const std::vector<uint8_t>& raw_data, uint32_t width, uint32_t height);
399  rs2_intrinsics get_intrinsic_fisheye_table(const std::vector<uint8_t>& raw_data, uint32_t width, uint32_t height);
400  pose get_fisheye_extrinsics_data(const std::vector<uint8_t>& raw_data);
401  pose get_color_stream_extrinsic(const std::vector<uint8_t>& raw_data);
402 
403  bool try_fetch_usb_device(std::vector<platform::usb_device_info>& devices,
404  const platform::uvc_device_info& info, platform::usb_device_info& result);
405 
406 
408  {
409  success = 0,
410  hot_laser_power_reduce = 1, // reported to error depth XU control
411  hot_laser_disable = 2, // reported to error depth XU control
412  flag_B_laser_disable = 3 // reported to error depth XU control
413  };
414 
415  } // librealsense::ds
416 } // namespace librealsense
rs2_intrinsics get_intrinsic_by_resolution_coefficients_table(const std::vector< uint8_t > &raw_data, uint32_t width, uint32_t height)
Definition: ds5-private.h:129
Definition: ds5-private.h:92
Definition: ds5-private.h:244
rs2_extrinsics right_imager_extrinsic
Definition: ds5-private.h:357
const std::string DEPTH_STEREO
Definition: ds5-private.h:114
const int etDepthTableControl
Definition: ds5-private.h:105
float bias[3]
Definition: ds5-private.h:203
rs2_extrinsics left_imager_extrinsic
Definition: ds5-private.h:356
constexpr size_t tm1_calibration_table_size
Definition: ds5-private.h:272
rs2_motion_device_intrinsic create_motion_intrinsics(imu_intrinsics data)
Definition: ds5-private.h:314
Definition: ds5-private.h:255
float rmax
Definition: ds5-private.h:222
float3x3 intrinsic_matrix_rect
Definition: ds5-private.h:307
uint8_t serial_num[8]
Definition: ds5-private.h:258
uint16_t table_type
Definition: ds5-private.h:119
Definition: ds5-private.h:97
float3x3 rotation
Definition: ds5-private.h:191
int64_t serial_mm
Definition: ds5-private.h:189
imu_calibration_table imu_calib_table
Definition: ds5-private.h:268
int32_t depth_clamp_min
Definition: ds5-private.h:287
uint8_t ta[10]
Definition: ds5-private.h:236
float distortion[5]
Definition: ds5-private.h:298
Definition: ds5-private.h:333
table_header header
Definition: ds5-private.h:188
Definition: ds5-private.h:110
uint16_t height
Definition: ds5-private.h:305
Definition: ds5-private.h:93
uint8_t reserved[28]
Definition: ds5-private.h:214
const uint8_t DS5_LASER_POWER
Definition: ds5-private.h:38
rs2_intrinsics get_intrinsic_fisheye_table(const std::vector< uint8_t > &raw_data, uint32_t width, uint32_t height)
constexpr size_t tm1_serial_num_table_size
Definition: ds5-private.h:262
constexpr size_t tm1_eeprom_size
Definition: ds5-private.h:282
const uint8_t DS5_EXT_TRIGGER
Definition: ds5-private.h:40
int32_t disparity_multiplier
Definition: ds5-private.h:289
const uint16_t RS415_PID
Definition: ds5-private.h:21
ds5_notifications_types
Definition: ds5-private.h:407
constexpr size_t imu_calibration_table_size
Definition: ds5-private.h:229
Definition: ds5-private.h:343
big_endian< uint16_t > version
Definition: ds5-private.h:118
Definition: ds5-private.h:340
uint32_t crc32
Definition: ds5-private.h:122
Definition: ds5-private.h:293
rs2_extrinsics depth_extrinsic
Definition: ds5-private.h:358
float calibration_model_flag
Definition: ds5-private.h:247
advanced_query_mode
Definition: ds5-private.h:107
Definition: ds5-private.h:410
const uint16_t RS460_PID
Definition: ds5-private.h:30
Definition: ds5-private.h:344
Definition: ds5-private.h:219
float scale[3]
Definition: ds5-private.h:204
extrinsics_table imu_to_imu
Definition: ds5-private.h:223
const uint16_t RS435_RGB_PID
Definition: ds5-private.h:31
uint16_t width
Definition: ds5-private.h:304
tm1_calib_model calib_model
Definition: ds5-private.h:267
const uint8_t DS5_HWMONITOR
Definition: ds5-private.h:35
float3x3 rotation
Definition: ds5-private.h:197
float data[3][4]
Definition: rs_types.h:74
Definition: ds5-private.h:133
Definition: ds5-private.h:99
const uint8_t DS5_ERROR_REPORTING
Definition: ds5-private.h:39
tm1_module_info module_info
Definition: ds5-private.h:278
rs2_intrinsics left_imager_intrinsic
Definition: ds5-private.h:353
Definition: ds5-private.h:137
Definition: ds5-private.h:134
Definition: stream.h:188
float distortion[5]
Definition: ds5-private.h:212
Definition: ds5-private.h:412
float baseline
Definition: ds5-private.h:154
Definition: ds5-private.h:136
imu_intrinsics gyro_intrinsics
Definition: ds5-private.h:225
Definition: ds5-private.h:142
Definition: ds5-private.h:409
float intrinsics_model
Definition: ds5-private.h:210
Definition: ds5-private.h:345
float4 rect_params[max_ds5_rect_resolutions]
Definition: ds5-private.h:157
float3x3 intrinsic_left
Definition: ds5-private.h:150
float3x3 world2right_rot
Definition: ds5-private.h:153
float3 translation_rect
Definition: ds5-private.h:309
uint8_t reserved[34]
Definition: ds5-private.h:239
ds5_rect_resolutions width_height_to_ds5_rect_resolutions(uint32_t width, uint32_t height)
Definition: ds5-private.h:128
Definition: ds5-private.h:102
Definition: ds5-private.h:100
ds5_calibration()
Definition: ds5-private.h:361
Definition: algo.h:16
Definition: ds5-private.h:201
Definition: ds5-private.h:341
uint8_t serial_num[8]
Definition: ds5-private.h:234
const uint16_t RS410_MM_PID
Definition: ds5-private.h:27
Definition: ds5-private.h:109
float3x3 intrinsic_right
Definition: ds5-private.h:151
Definition: ds5-private.h:131
table_header header
Definition: ds5-private.h:295
std::map< calibration_table_id, bool > data_present
Definition: ds5-private.h:359
Definition: ds5-private.h:143
const uint16_t RS410_PID
Definition: ds5-private.h:20
Definition: types.h:416
#define LOG_DEBUG(...)
Definition: types.h:107
table_header header
Definition: ds5-private.h:246
float3 rotation
Definition: ds5-private.h:300
bool try_fetch_usb_device(std::vector< platform::usb_device_info > &devices, const platform::uvc_device_info &info, platform::usb_device_info &result)
float3 translation
Definition: ds5-private.h:301
Definition: ds5-private.h:275
uint8_t reserved1[88]
Definition: ds5-private.h:156
fisheye_calibration_table fe_calibration
Definition: ds5-private.h:248
Definition: types.h:414
constexpr size_t fisheye_calibration_table_size
Definition: ds5-private.h:217
int32_t depth_clamp_max
Definition: ds5-private.h:288
float3 translation
Definition: ds5-private.h:198
Definition: ds5-private.h:195
const double TIMESTAMP_USEC_TO_MSEC
Definition: ds5-private.h:13
Definition: ds5-private.h:94
Definition: ds5-private.h:101
Definition: ds5-private.h:130
pose get_fisheye_extrinsics_data(const std::vector< uint8_t > &raw_data)
const uint8_t FISHEYE_EXPOSURE
Definition: ds5-private.h:80
uint32_t param
Definition: ds5-private.h:121
const uint16_t RS420_PID
Definition: ds5-private.h:25
const uint16_t RS_USB2_PID
Definition: ds5-private.h:24
float3x3 intrinsic
Definition: ds5-private.h:297
Definition: ds5-private.h:139
constexpr size_t tm1_calib_model_size
Definition: ds5-private.h:253
table_header header
Definition: ds5-private.h:233
float3x3 rotation_matrix_rect
Definition: ds5-private.h:308
Definition: ds5-private.h:127
const platform::extension_unit depth_xu
Definition: ds5-private.h:82
table_header header
Definition: ds5-private.h:257
const uint8_t DS5_ENABLE_AUTO_EXPOSURE
Definition: ds5-private.h:43
const uint8_t DS5_EXPOSURE
Definition: ds5-private.h:37
table_header header
Definition: ds5-private.h:149
const T * check_calib(const std::vector< uint8_t > &raw_data)
Definition: ds5-private.h:162
Definition: ds5-private.h:346
Definition: ds5-private.h:90
Definition: ds5-private.h:231
rs2_intrinsics depth_intrinsic[max_ds5_rect_resolutions]
Definition: ds5-private.h:355
constexpr size_t tm1_module_info_size
Definition: ds5-private.h:242
Definition: ds5-private.h:95
Definition: ds5-private.h:342
float temperature
Definition: ds5-private.h:249
Definition: types.h:54
rs2_intrinsics get_intrinsic_by_resolution(const std::vector< uint8_t > &raw_data, calibration_table_id table_id, uint32_t width, uint32_t height)
Cross-stream extrinsics: encode the topology describing how the different devices are connected...
Definition: rs_sensor.h:79
Definition: types.h:415
float3x3 world2left_rot
Definition: ds5-private.h:152
const uint16_t RS430_PID
Definition: ds5-private.h:22
const uint8_t DS5_ENABLE_AUTO_WHITE_BALANCE
Definition: ds5-private.h:42
float3 translation
Definition: ds5-private.h:192
Definition: ds5-private.h:207
const uint16_t RS420_MM_PID
Definition: ds5-private.h:26
uint8_t reserved[8]
Definition: ds5-private.h:259
table_header header
Definition: ds5-private.h:221
Definition: ds5-private.h:147
imu_intrinsics accel_intrinsics
Definition: ds5-private.h:224
float reserved[24]
Definition: ds5-private.h:310
Definition: ds5-private.h:264
Definition: ds5-private.h:411
uint32_t board_num
Definition: ds5-private.h:237
const platform::extension_unit fisheye_xu
Definition: ds5-private.h:85
Definition: ds5-private.h:347
uint16_t version
Definition: ds5-private.h:352
uint32_t table_size
Definition: ds5-private.h:120
int64_t serial_depth
Definition: ds5-private.h:190
Definition: ds5-private.h:332
const uint8_t DS5_DEPTH_EMITTER_ENABLED
Definition: ds5-private.h:36
Definition: ds5-private.h:335
table_header header
Definition: ds5-private.h:209
uint32_t depth_units
Definition: ds5-private.h:286
uint8_t reserved[64]
Definition: ds5-private.h:226
int32_t disparity_shift
Definition: ds5-private.h:290
Video stream intrinsics.
Definition: rs_types.h:55
uint32_t brown_model
Definition: ds5-private.h:155
rs2_intrinsics right_imager_intrinsic
Definition: ds5-private.h:354
const uint16_t RS430_MM_RGB_PID
Definition: ds5-private.h:29
Definition: ds5-private.h:186
Definition: ds5-private.h:96
Motion device intrinsics: scale, bias, and variances.
Definition: rs_types.h:68
ds5_rect_resolutions
Definition: ds5-private.h:125
calibration_table_id
Definition: ds5-private.h:338
Definition: ds5-private.h:350
Definition: ds5-private.h:141
uint8_t reserved2[64]
Definition: ds5-private.h:158
tm1_calibration_table calibration_table
Definition: ds5-private.h:279
Definition: ds5-private.h:111
float3x3 intrinsic
Definition: ds5-private.h:211
Definition: ds5-private.h:138
Definition: ds5-private.h:91
float projection[12]
Definition: ds5-private.h:303
uint8_t reserved[20]
Definition: ds5-private.h:250
gvd_fields
Definition: ds5-private.h:330
Definition: ds5-private.h:98
pose get_color_stream_extrinsic(const std::vector< uint8_t > &raw_data)
table_header header
Definition: ds5-private.h:277
tm1_serial_num_table serial_num_table
Definition: ds5-private.h:269
Definition: ds5-private.h:144
extrinsics_table fisheye_to_imu
Definition: ds5-private.h:213
uint8_t optic_module_mm[4]
Definition: ds5-private.h:235
Definition: ds5-private.h:135
const uint16_t RS400_PID
Definition: ds5-private.h:19
const uint16_t RS400_MM_PID
Definition: ds5-private.h:28
Definition: ds5-private.h:132
Definition: ds5-private.h:116
const uint8_t DS5_ASIC_AND_PROJECTOR_TEMPERATURES
Definition: ds5-private.h:41
uint32_t board_rev
Definition: ds5-private.h:238
const uint16_t RS430_MM_PID
Definition: ds5-private.h:23
uint32_t calc_crc32(const uint8_t *buf, size_t bufsize)
const uint16_t RS405_PID
Definition: ds5-private.h:32
Definition: ds5-private.h:284
fw_cmd
Definition: ds5-private.h:88
table_header header
Definition: ds5-private.h:266