9 #define RS400_ADVANCED_MODE_HPP 11 #include "../../include/librealsense2/h/rs_advanced_mode_command.h" 12 #undef RS400_ADVANCED_MODE_HPP 40 #define MAP_ADVANCED_MODE(T, E) template<> struct advanced_mode_traits<T> { static const EtAdvancedModeRegGroup group = E; } 63 virtual void apply_preset(
const std::vector<platform::stream_profile>& configuration,
67 virtual void get_rsm(
STRsm* ptr,
int mode = 0)
const = 0;
93 virtual void load_json(
const std::string& json_content) = 0;
108 void create_snapshot(std::shared_ptr<ds5_advanced_mode_interface>& snapshot)
const override {};
115 void apply_preset(
const std::vector<platform::stream_profile>& configuration,
145 void load_json(
const std::string& json_content);
195 std::shared_ptr<hw_monitor> _hw_monitor;
199 std::shared_ptr<advanced_mode_preset_option> _preset_opt;
201 static const uint16_t HW_MONITOR_COMMAND_SIZE = 1000;
202 static const uint16_t HW_MONITOR_BUFFER_SIZE = 1024;
205 void set_all(
const preset& p);
207 std::vector<uint8_t> send_receive(
const std::vector<uint8_t>& input)
const;
212 auto ptr = (uint8_t*)(&strct);
213 std::vector<uint8_t> data(ptr, ptr +
sizeof(T));
216 send_receive(encode_command(
ds::fw_cmd::SET_ADV, static_cast<uint32_t>(cmd), 0, 0, 0, data)));
217 std::this_thread::sleep_for(std::chrono::milliseconds(20));
226 static_cast<uint32_t>(cmd), mode)));
227 if (data.size() <
sizeof(T))
229 throw std::runtime_error(
"The camera returned invalid sized result!");
231 res = *
reinterpret_cast<T*
>(data.data());
235 static uint32_t pack(uint8_t c0, uint8_t c1, uint8_t c2, uint8_t c3);
237 static std::vector<uint8_t> assert_no_error(
ds::fw_cmd opcode,
const std::vector<uint8_t>& results);
239 std::vector<uint8_t> encode_command(
ds::fw_cmd opcode,
244 std::vector<uint8_t> data = std::vector<uint8_t>())
const;
255 void set(
float value)
override;
256 float query()
const override;
262 uint16_t get_device_pid(
const uvc_sensor& sensor)
const;
void get_depth_table_control(STDepthTableControl *ptr, int mode=0) const override
virtual void get_hdad(STHdad *ptr, int mode=0) const =0
virtual void load_json(const std::string &json_content)=0
Definition: advanced_mode.h:25
void load_json(const std::string &json_content)
virtual void set_color_control(const STColorControl &val)=0
virtual void set_rau_support_vector_control(const STRauSupportVectorControl &val)=0
void set_depth_table_control(const STDepthTableControl &val) override
void set_color_correction(const STColorCorrection &val) override
virtual void set_color_correction(const STColorCorrection &val)=0
rs2_option
Defines general configuration controls. These can generally be mapped to camera UVC controls...
Definition: rs_option.h:22
Definition: rs_advanced_mode_command.h:48
virtual void set_depth_control_group(const STDepthControlGroup &val)=0
void get_slo_penalty_control(STSloPenaltyControl *ptr, int mode=0) const override
const char * get_description() const override
virtual void get_rau_support_vector_control(STRauSupportVectorControl *ptr, int mode=0) const =0
virtual ~ds5_advanced_mode_base()=default
Definition: advanced_mode.h:21
virtual void set_hdad(const STHdad &val)=0
Definition: rs_advanced_mode_command.h:14
void get_depth_control_group(STDepthControlGroup *ptr, int mode=0) const override
virtual void set_depth_table_control(const STDepthTableControl &val)=0
virtual void get_ae_control(STAEControl *ptr, int mode=0) const =0
Definition: advanced_mode.h:23
Definition: advanced_mode.h:18
bool is_enabled() const override
Definition: advanced_mode.h:24
MAP_ADVANCED_MODE(STDepthControlGroup, etDepthControl)
std::vector< uint8_t > serialize_json() const
virtual void set_slo_color_thresholds_control(const STSloColorThresholdsControl &val)=0
const char * get_value_description(float val) const override
Definition: rs_types.h:108
void set_census_radius(const STCensusRadius &val) override
Definition: rs_advanced_mode_command.h:71
virtual void apply_preset(const std::vector< platform::stream_profile > &configuration, rs2_rs400_visual_preset preset, uint16_t device_pid)=0
void set_color_control(const STColorControl &val) override
Definition: rs_advanced_mode_command.h:28
void get_ae_control(STAEControl *ptr, int mode=0) const override
virtual void get_color_correction(STColorCorrection *ptr, int mode=0) const =0
Definition: advanced_mode.h:17
void set_slo_penalty_control(const STSloPenaltyControl &val) override
virtual void set_census_radius(const STCensusRadius &val)=0
virtual void get_rsm(STRsm *ptr, int mode=0) const =0
static rs2_rs400_visual_preset to_preset(float x)
void set_hdad(const STHdad &val) override
Definition: advanced_mode.h:29
Definition: advanced_mode.h:102
Definition: advanced_mode.h:28
virtual void get_color_control(STColorControl *ptr, int mode=0) const =0
Definition: rs_advanced_mode_command.h:64
Definition: advanced_mode.h:26
void enable_recording(std::function< void(const ds5_advanced_mode_interface &)> recording_function) override
Definition: advanced_mode.h:109
Definition: advanced_mode.h:248
virtual void get_depth_control_group(STDepthControlGroup *ptr, int mode=0) const =0
virtual void get_census_radius(STCensusRadius *ptr, int mode=0) const =0
Definition: rs_advanced_mode_command.h:89
Definition: rs_advanced_mode_command.h:105
Definition: rs_advanced_mode_command.h:119
Definition: advanced_mode.h:56
ds5_advanced_mode_base(std::shared_ptr< hw_monitor > hwm, uvc_sensor &depth_sensor)
void set_rau_support_vector_control(const STRauSupportVectorControl &val) override
virtual void get_slo_penalty_control(STSloPenaltyControl *ptr, int mode=0) const =0
virtual void get_depth_table_control(STDepthTableControl *ptr, int mode=0) const =0
float query() const override
void set_ae_control(const STAEControl &val) override
advanced_mode_preset_option(ds5_advanced_mode_base &advanced, uvc_sensor &ep, const option_range &opt_range)
Definition: advanced_mode.h:22
void get_rau_support_vector_control(STRauSupportVectorControl *ptr, int mode=0) const override
Definition: ds5-private.h:95
void get_color_correction(STColorCorrection *ptr, int mode=0) const override
virtual void set_ae_control(const STAEControl &val)=0
Definition: advanced_mode.h:19
void set_depth_control_group(const STDepthControlGroup &val) override
void get_census_radius(STCensusRadius *ptr, int mode=0) const override
Definition: advanced_mode.h:27
virtual std::vector< uint8_t > serialize_json() const =0
void set_rsm(const STRsm &val) override
virtual bool is_enabled() const =0
Definition: advanced_mode.h:20
Definition: rs_advanced_mode_command.h:82
void toggle_advanced_mode(bool enable) override
virtual void set_rsm(const STRsm &val)=0
rs2_rs400_visual_preset
For RS400 devices: provides optimized settings (presets) for specific types of usage.
Definition: rs_option.h:88
void get_hdad(STHdad *ptr, int mode=0) const override
Definition: ds5-color.h:33
virtual void toggle_advanced_mode(bool enable)=0
Definition: extension.h:46
Definition: ds5-private.h:96
Definition: advanced_mode.h:38
virtual void get_slo_color_thresholds_control(STSloColorThresholdsControl *ptr, int mode=0) const =0
Definition: rs_advanced_mode_command.h:57
bool is_enabled() const override
Definition: streaming.h:158
virtual void set_slo_penalty_control(const STSloPenaltyControl &val)=0
void get_rsm(STRsm *ptr, int mode=0) const override
void get_slo_color_thresholds_control(STSloColorThresholdsControl *ptr, int mode=0) const override
virtual void set_rau_color_thresholds_control(const STRauColorThresholdsControl &val)=0
Definition: rs_advanced_mode_command.h:110
void set_rau_color_thresholds_control(const STRauColorThresholdsControl &val) override
void get_color_control(STColorControl *ptr, int mode=0) const override
void set_slo_color_thresholds_control(const STSloColorThresholdsControl &val) override
Definition: rs_advanced_mode_command.h:36
MAP_EXTENSION(RS2_EXTENSION_POINTS, librealsense::points)
virtual void get_rau_color_thresholds_control(STRauColorThresholdsControl *ptr, int mode=0) const =0
void create_snapshot(std::shared_ptr< ds5_advanced_mode_interface > &snapshot) const override
Definition: advanced_mode.h:108
virtual ~ds5_advanced_mode_interface()=default
void apply_preset(const std::vector< platform::stream_profile > &configuration, rs2_rs400_visual_preset preset, uint16_t device_pid) override
EtAdvancedModeRegGroup
Definition: advanced_mode.h:15
void get_rau_color_thresholds_control(STRauColorThresholdsControl *ptr, int mode=0) const override
fw_cmd
Definition: ds5-private.h:88