@@ -43,40 +43,33 @@ namespace librealsense
4343 bool d500_try_fetch_usb_device (std::vector<platform::usb_device_info>& devices,
4444 const platform::uvc_device_info& info, platform::usb_device_info& result);
4545
46- // Keep sorted
47- enum class d500_gvd_fields // gvd fields for Safety Camera
46+ namespace d500_gvd_offsets
4847 {
49- version_offset = 0 , // ES1
50- payload_size_offset = 0x2 , // ES1
51- crc32_offset = 0x4 , // ES1
52- optical_module_serial_offset = 0x54 , // ES1
53- mb_module_serial_offset = 0x7a , // ES2
54- fw_version_offset = 0xba , // ES2
55- safety_sw_suite_version_offset = 0x10F // ES2
56- // rgb_sensor = 0x17,
57- // imu_sensor = 0x19,
58- // active_projector = 0x1a,
59- // camera_fw_version_offset = 0x8c,
60- // is_camera_locked_offset = 0x9e,
61- };
48+ constexpr size_t version_offset = 0 ;
49+ constexpr size_t payload_size_offset = 0x2 ;
50+ constexpr size_t crc32_offset = 0x4 ;
51+ constexpr size_t optical_module_serial_offset = 0x54 ;
52+ constexpr size_t mb_module_serial_offset = 0x7a ;
53+ constexpr size_t fw_version_offset = 0xba ;
54+ }; // namespace d500_gvd_offsets
6255
6356 struct d500_gvd_parsed_fields
6457 {
65- uint16_t gvd_version;
58+ uint8_t gvd_version[ 2 ] ;
6659 uint16_t payload_size;
6760 uint32_t crc32;
6861 std::string optical_module_sn;
6962 std::string mb_module_sn;
7063 std::string fw_version;
71- std::string safety_sw_suite_version;
7264 };
7365
7466 enum class d500_calibration_table_id
7567 {
7668 depth_eeprom_toc_id = 0xb0 ,
77- module_info_id = 0xb1 ,
69+ module_info_id = 0x1b1 ,
7870 rgb_lens_shading_id = 0xb2 ,
79- str_lens_shading_id = 0xb3 ,
71+ left_lens_shading_id = 0x1b3 ,
72+ right_lens_shading_id = 0x2b3 ,
8073 depth_calibration_id = 0xb4 ,
8174 left_x_lut_id = 0xb5 ,
8275 left_y_lut_id = 0xb6 ,
@@ -91,9 +84,10 @@ namespace librealsense
9184 const std::map<ds::d500_calibration_table_id, uint32_t > d500_calibration_tables_size =
9285 {
9386 {d500_calibration_table_id::depth_eeprom_toc_id, 640 },
94- {d500_calibration_table_id::module_info_id, 320 },
87+ {d500_calibration_table_id::module_info_id, 512 },
9588 {d500_calibration_table_id::rgb_lens_shading_id, 1088 },
96- {d500_calibration_table_id::str_lens_shading_id, 1088 },
89+ {d500_calibration_table_id::left_lens_shading_id, 576 },
90+ {d500_calibration_table_id::right_lens_shading_id, 512 },
9791 {d500_calibration_table_id::depth_calibration_id, 512 },
9892 {d500_calibration_table_id::left_x_lut_id, 4160 },
9993 {d500_calibration_table_id::left_y_lut_id, 4160 },
@@ -146,7 +140,9 @@ namespace librealsense
146140 single_sensor_coef_table left_coefficients_table;
147141 single_sensor_coef_table right_coefficients_table;
148142 float baseline; // the baseline between the cameras in mm units
149- uint16_t translation_dir;
143+ uint8_t translation_dir;
144+ uint8_t realignement_essential; // 1/0 - indicates whether the vertical alignement
145+ // is required to avoiid overflow in the REC buffer
150146 int16_t vertical_shift; // in pixels
151147 mini_intrinsics rectified_intrinsics;
152148 uint8_t reserved[148 ];
0 commit comments