Go to the documentation of this file.
16 _color_sensor(nullptr)
21 return results[4] > 0;
25 _preset_opt = std::make_shared<advanced_mode_preset_option>(*
this,
34 for (
size_t i = 0;
i <
dev.get_sensors_count(); ++
i)
71 if (configuration.empty())
74 res =
get_res_type(configuration.front().width, configuration.front().height);
106 std::hex << device_pid <<
")");
123 std::hex << device_pid <<
")");
131 p.depth_table.depthUnits = 100;
147 fw_version <<
" ; required_fw_ver=" << remove_ir_pattern_fw_ver <<
")");
162 std::hex << device_pid <<
")");
241 return sensor.supports_option(opt);
747 if (
p.laser_state.was_set &&
p.laser_state.laser_state == 1)
751 if (
p.depth_auto_exposure.was_set &&
p.depth_auto_exposure.auto_exposure == 0)
758 if (
p.color_auto_exposure.was_set &&
p.color_auto_exposure.auto_exposure == 0)
773 if (
p.color_auto_white_balance.was_set &&
p.color_auto_white_balance.auto_white_balance == 0)
785 throw std::runtime_error(
"Advanced mode write failed!");
792 return (c0 << 24) | (c1 << 16) | (c2 << 8) | c3;
797 if (results.size() <
sizeof(
uint32_t))
throw std::runtime_error(
"Incomplete operation result!");
798 auto opCodeAsUint32 =
pack(results[3], results[2], results[1], results[0]);
799 if (opCodeAsUint32 !=
static_cast<uint32_t>(opcode))
801 std::stringstream ss;
802 ss <<
"Operation failed with error code=" <<
static_cast<int>(opCodeAsUint32);
803 throw std::runtime_error(ss.str());
805 std::vector<uint8_t> result;
806 result.resize(results.size() -
sizeof(
uint32_t));
808 results.data() + results.size(), result.data());
817 std::vector<uint8_t>
data)
const
819 std::vector<uint8_t> raw_data;
820 auto cmd_op_code =
static_cast<uint32_t>(opcode);
822 const uint16_t pre_header_data = 0xcdab;
824 auto write_ptr = raw_data.data();
825 auto header_size = 4;
827 size_t cur_index = 2;
828 *
reinterpret_cast<uint16_t *
>(write_ptr + cur_index) = pre_header_data;
830 *
reinterpret_cast<unsigned int *
>(write_ptr + cur_index) = cmd_op_code;
831 cur_index +=
sizeof(
unsigned int);
834 *
reinterpret_cast<unsigned*
>(write_ptr + cur_index) =
p1;
835 cur_index +=
sizeof(unsigned);
836 *
reinterpret_cast<unsigned*
>(write_ptr + cur_index) =
p2;
837 cur_index +=
sizeof(unsigned);
838 *
reinterpret_cast<unsigned*
>(write_ptr + cur_index) = p3;
839 cur_index +=
sizeof(unsigned);
840 *
reinterpret_cast<unsigned*
>(write_ptr + cur_index) = p4;
841 cur_index +=
sizeof(unsigned);
845 cur_index +=
data.size();
847 *
reinterpret_cast<uint16_t*
>(raw_data.data()) =
static_cast<uint16_t>(cur_index - header_size);
848 raw_data.resize(cur_index);
860 std::lock_guard<std::mutex>
lock(
_mtx);
874 std::lock_guard<std::mutex>
lock(
_mtx);
907 return "Advanced-Mode Preset";
915 catch (std::out_of_range)
925 std::stringstream ss;
926 ss << std::hex << str_pid;
bool supports_option(const synthetic_sensor &sensor, rs2_option opt) const
void set(const T &strct, EtAdvancedModeRegGroup cmd) const
void get_color_brightness(brightness_control *ptr) const
void get_exposure(synthetic_sensor &sensor, exposure_control *ptr) const
void get_depth_auto_exposure(auto_exposure_control *ptr) const
bool is_enabled() const override
int backlight_compensation
virtual const std::string & get_info(rs2_camera_info info) const =0
void set_color_auto_exposure(const auto_exposure_control &val)
void set_depth_auto_white_balance(const auto_white_balance_control &val)
device_interface & get_device() override
std::string to_string(T value)
@ RS2_OPTION_ENABLE_AUTO_EXPOSURE
void set_ae_control(const STAEControl &val) override
void get_laser_state(laser_state_control *ptr) const
@ RS2_RS400_VISUAL_PRESET_CUSTOM
void get_color_exposure(exposure_control *ptr) const
const char * get_description() const override
std::vector< uint8_t > encode_command(ds::fw_cmd opcode, uint32_t p1=0, uint32_t p2=0, uint32_t p3=0, uint32_t p4=0, std::vector< uint8_t > data=std::vector< uint8_t >()) const
@ RS2_RS400_VISUAL_PRESET_HIGH_DENSITY
void set_depth_auto_exposure(const auto_exposure_control &val)
std::function< void(const option &)> _recording_function
void high_density(preset &p)
static uint32_t pack(uint8_t c0, uint8_t c1, uint8_t c2, uint8_t c3)
void set_rsm(const STRsm &val) override
void default_400(preset &p)
void default_420(preset &p)
@ RS2_OPTION_BACKLIGHT_COMPENSATION
rs2_rs400_visual_preset _last_preset
void get_color_white_balance(white_balance_control *ptr) const
std::shared_ptr< advanced_mode_preset_option > _preset_opt
void toggle_advanced_mode(bool enable) override
void hand_gesture(preset &p)
void get_rau_support_vector_control(STRauSupportVectorControl *ptr, int mode=0) const override
void set_rau_support_vector_control(const STRauSupportVectorControl &val) override
static const uint16_t HW_MONITOR_BUFFER_SIZE
void get_depth_gain(gain_control *ptr) const
void get_color_gain(gain_control *ptr) const
void set_slo_color_thresholds_control(const STSloColorThresholdsControl &val) override
void set_color_gamma(const gamma_control &val)
void get_slo_color_thresholds_control(STSloColorThresholdsControl *ptr, int mode=0) const override
void set_color_contrast(const contrast_control &val)
void set_color_hue(const hue_control &val)
virtual void register_option(rs2_option id, std::shared_ptr< option > option)
@ RS2_OPTION_WHITE_BALANCE
void get_slo_penalty_control(STSloPenaltyControl *ptr, int mode=0) const override
lazy< bool > _amplitude_factor_support
@ RS2_CAMERA_INFO_PRODUCT_ID
void set_color_brightness(const brightness_control &val)
@ RS2_RS400_VISUAL_PRESET_REMOVE_IR_PATTERN
@ RS2_RS400_VISUAL_PRESET_MEDIUM_DENSITY
void set_color_sharpness(const sharpness_control &val)
ds5_advanced_mode_base & _advanced
void get_amp_factor(STAFactor *ptr, int mode=0) const override
void set_color_backlight_compensation(const backlight_compensation_control &val)
const char * get_value_description(float val) const override
void get_depth_table_control(STDepthTableControl *ptr, int mode=0) const override
void get_color_sharpness(sharpness_control *ptr) const
void set_color_exposure(const exposure_control &val)
void default_450_high_res(preset &p)
void get_census_radius(STCensusRadius *ptr, int mode=0) const override
void set_hdad(const STHdad &val) override
const char * rs2_rs400_visual_preset_to_string(rs2_rs400_visual_preset preset)
@ RS2_RS400_VISUAL_PRESET_HAND
void set_depth_gain(const gain_control &val)
void get_hdad(STHdad *ptr, int mode=0) const override
void get_rau_color_thresholds_control(STRauColorThresholdsControl *ptr, int mode=0) const override
void get_auto_exposure(synthetic_sensor &sensor, auto_exposure_control *ptr) const
bool is_valid(float value) const
@ RS2_CAMERA_INFO_FIRMWARE_VERSION
void set_color_correction(const STColorCorrection &val) override
void get_depth_control_group(STDepthControlGroup *ptr, int mode=0) const override
void set_amp_factor(const STAFactor &val) override
void set_census_radius(const STCensusRadius &val) override
void high_accuracy(preset &p)
void get_depth_auto_white_balance(auto_white_balance_control *ptr) const
void get_ae_control(STAEControl *ptr, int mode=0) const override
void get_laser_power(laser_power_control *ptr) const
ds5_advanced_mode_base(std::shared_ptr< hw_monitor > hwm, synthetic_sensor &depth_sensor)
const uint16_t RS435_RGB_PID
void set_color_auto_white_balance(const auto_white_balance_control &val)
uint16_t get_device_pid(const uvc_sensor &sensor) const
void register_on_open(on_open callback)
void set_all(const preset &p)
std::vector< uint8_t > generate_json(const device_interface &dev, const preset &in_preset)
void get_color_correction(STColorCorrection *ptr, int mode=0) const override
void default_405u(preset &p)
void load_json(const std::string &json_content) override
void default_405(preset &p)
void set_laser_state(const laser_state_control &val)
const uint16_t RS435I_PID
const uint16_t RS405U_PID
rs2_option
Defines general configuration controls. These can generally be mapped to camera UVC controls,...
void get_color_auto_exposure(auto_exposure_control *ptr) const
void get_color_saturation(saturation_control *ptr) const
void set_laser_power(const laser_power_control &val)
option & get_option(rs2_option id) override
void get_color_control(STColorControl *ptr, int mode=0) const override
void get_rsm(STRsm *ptr, int mode=0) const override
static rs2_rs400_visual_preset to_preset(float x)
void set_color_white_balance(const white_balance_control &val)
void set_color_gain(const gain_control &val)
void set(float value) override
advanced_mode_preset_option(ds5_advanced_mode_base &advanced, synthetic_sensor &ep, const option_range &opt_range)
void set_color_saturation(const saturation_control &val)
@ RS2_OPTION_POWER_LINE_FREQUENCY
void d460_remove_ir(preset &p)
bool is_enabled() const override
void get_color_hue(hue_control *ptr) const
void get_color_auto_white_balance(auto_white_balance_control *ptr) const
@ RS2_RS400_VISUAL_PRESET_DEFAULT
rs2_rs400_visual_preset
For RS400 devices: provides optimized settings (presets) for specific types of usage.
virtual void set(float value)=0
std::vector< uint8_t > serialize_json() const override
std::shared_ptr< hw_monitor > _hw_monitor
void apply_preset(const std::vector< platform::stream_profile > &configuration, rs2_rs400_visual_preset preset, uint16_t device_pid, const firmware_version &fw_version) override
void get_depth_exposure(exposure_control *ptr) const
@ RS2_OPTION_VISUAL_PRESET
void set_depth_exposure(const exposure_control &val)
void get_color_backlight_compensation(backlight_compensation_control *ptr) const
std::shared_ptr< sensor_base > get_raw_sensor() const
void set_color_control(const STColorControl &val) override
@ RS2_OPTION_EMITTER_ENABLED
void set_rau_color_thresholds_control(const STRauColorThresholdsControl &val) override
const std::string & get_info(rs2_camera_info info) const override
void get_color_contrast(contrast_control *ptr) const
void d415_remove_ir(preset &p)
lazy< bool > _rgb_exposure_gain_bind
lazy< ds5_color_sensor * > _color_sensor
void set_depth_control_group(const STDepthControlGroup &val) override
void copy(void *dst, void const *src, size_t size)
void default_450_mid_low_res(preset &p)
firmware_version get_firmware_version(const uvc_sensor &sensor) const
void set_depth_table_control(const STDepthTableControl &val) override
static const textual_icon lock
void set_exposure(synthetic_sensor &sensor, const exposure_control &val)
float query() const override
void default_430(preset &p)
void set_color_power_line_frequency(const power_line_frequency_control &val)
static std::vector< uint8_t > assert_no_error(ds::fw_cmd opcode, const std::vector< uint8_t > &results)
std::vector< uint8_t > send_receive(const std::vector< uint8_t > &input) const
virtual float query() const =0
@ RS2_RS400_VISUAL_PRESET_HIGH_ACCURACY
const uint16_t RS430I_PID
void get_color_gamma(gamma_control *ptr) const
void mid_density(preset &p)
res_type get_res_type(uint32_t width, uint32_t height)
void get_color_power_line_frequency(power_line_frequency_control *ptr) const
void set_slo_penalty_control(const STSloPenaltyControl &val) override
void default_410(preset &p)
void update_structs(const device_interface &dev, const std::string &content, preset &in_preset)
void set_auto_exposure(synthetic_sensor &sensor, const auto_exposure_control &val)
synthetic_sensor & _depth_sensor
@ RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE
librealsense2
Author(s): LibRealSense ROS Team
autogenerated on Thu Dec 22 2022 03:13:13