Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
ds5-device.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 "ds5-private.h"
7 
8 #include "algo.h"
9 #include "error-handling.h"
10 #include "core/debug.h"
11 #include "core/advanced_mode.h"
12 #include "device.h"
13 
14 namespace librealsense
15 {
16  class ds5_device : public virtual device, public debug_interface
17  {
18  public:
19  std::shared_ptr<uvc_sensor> create_depth_device(std::shared_ptr<context> ctx,
20  const std::vector<platform::uvc_device_info>& all_device_infos);
21 
23  {
24  return dynamic_cast<uvc_sensor&>(get_sensor(_depth_device_idx));
25  }
26 
27  ds5_device(std::shared_ptr<context> ctx,
28  const platform::backend_device_group& group);
29 
30  std::vector<uint8_t> send_receive_raw_data(const std::vector<uint8_t>& input) override;
31 
32  void hardware_reset() override;
33  void create_snapshot(std::shared_ptr<debug_interface>& snapshot) const override;
34  void enable_recording(std::function<void(const debug_interface&)> record_action) override;
35 
36  protected:
37 
38  std::vector<uint8_t> get_raw_calibration_table(ds::calibration_table_id table_id) const;
39 
40  bool is_camera_in_advanced_mode() const;
41 
42  float get_stereo_baseline_mm() const;
43 
44  void init(std::shared_ptr<context> ctx,
45  const platform::backend_device_group& group);
46 
47  friend class ds5_depth_sensor;
48 
49  std::shared_ptr<hw_monitor> _hw_monitor;
51 
52  std::shared_ptr<stream_interface> _depth_stream;
53  std::shared_ptr<stream_interface> _left_ir_stream;
54  std::shared_ptr<stream_interface> _right_ir_stream;
55 
57 
59 
60  std::unique_ptr<polling_error_handler> _polling_error_handler;
61  std::shared_ptr<lazy<rs2_extrinsics>> _left_right_extrinsics;
62  };
63 
64  class ds5u_device : public ds5_device
65  {
66  public:
67  ds5u_device(std::shared_ptr<context> ctx,
68  const platform::backend_device_group& group);
69 
70  std::shared_ptr<uvc_sensor> create_ds5u_depth_device(std::shared_ptr<context> ctx,
71  const std::vector<platform::uvc_device_info>& all_device_infos);
72 
73  protected:
74  friend class ds5u_depth_sensor;
75  };
76 
78  {
79  public:
80  notification decode(int value) override;
81  };
82 }
float get_stereo_baseline_mm() const
uvc_sensor & get_depth_sensor()
Definition: ds5-device.h:22
friend class ds5_depth_sensor
Definition: ds5-device.h:47
firmware_version _fw_version
Definition: ds5-device.h:50
std::shared_ptr< hw_monitor > _hw_monitor
Definition: ds5-device.h:49
Definition: backend.h:378
std::vector< uint8_t > send_receive_raw_data(const std::vector< uint8_t > &input) override
void enable_recording(std::function< void(const debug_interface &)> record_action) override
std::vector< uint8_t > get_raw_calibration_table(ds::calibration_table_id table_id) const
sensor_interface & get_sensor(size_t subdevice) override
Definition: types.h:269
std::unique_ptr< polling_error_handler > _polling_error_handler
Definition: ds5-device.h:60
lazy< std::vector< uint8_t > > _coefficients_table_raw
Definition: ds5-device.h:58
Definition: ds5-device.h:77
void init(std::shared_ptr< context > ctx, const platform::backend_device_group &group)
ds5_device(std::shared_ptr< context > ctx, const platform::backend_device_group &group)
std::shared_ptr< lazy< rs2_extrinsics > > _left_right_extrinsics
Definition: ds5-device.h:61
Definition: types.h:914
Definition: ds5-device.h:16
Definition: algo.h:16
uint8_t _depth_device_idx
Definition: ds5-device.h:56
std::shared_ptr< stream_interface > _depth_stream
Definition: ds5-device.h:52
Definition: ds5-device.h:64
std::shared_ptr< uvc_sensor > create_depth_device(std::shared_ptr< context > ctx, const std::vector< platform::uvc_device_info > &all_device_infos)
Definition: debug.h:11
std::shared_ptr< stream_interface > _left_ir_stream
Definition: ds5-device.h:53
Definition: types.h:674
bool is_camera_in_advanced_mode() const
Definition: types.h:896
calibration_table_id
Definition: ds5-private.h:336
void create_snapshot(std::shared_ptr< debug_interface > &snapshot) const override
std::shared_ptr< stream_interface > _right_ir_stream
Definition: ds5-device.h:54
void hardware_reset() override
Definition: device.h:43
Definition: sensor.h:174