Big refactoring code

* Removal of unnecessary files
* Optimized multi-camera launch
* Explicitly list the parameters in the launch file
This commit is contained in:
默存
2023-02-06 17:26:10 +08:00
parent 04e4d4151e
commit 202719bd8c
59 changed files with 4931 additions and 806 deletions
@@ -444,6 +444,49 @@ void ob_device_set_structured_data(ob_device *device, ob_property_id property_id
*/
void ob_device_get_structured_data(ob_device *device, ob_property_id property_id, void *data, uint32_t *data_size, ob_error **error);
/**
* \if English
* @brief Set property struct data.
*
* @param[in] device Device object
* @param[in] property_id Id of the property
* @param[in] data_bundle Target data to set
* @param[in] Set data callback
* @param[in] user_data User-defined data will be returned in the callback
* @param[out] error Log error messages
* \else
* @brief 设置结构体类型的设备属性
* @param[in] device 设备对象
* @param[in] property_id 要设置的属性id
* @param[in] data_bundle
要设置的数据内容,注意data_bundle指针为OrbbecSDK外部构建,所以自行释放指针资源,禁止调用ob_delete_data_bundle释放资源,会造成不可预知的错误;
* @param[in] cb 设置进度回调
* @param[in] user_data 用户自定义数据,会在回调中返回
* @param[out] error 记录错误信息
* @return void 无返回值
* \endif
*/
void ob_device_set_structured_data_ext(ob_device *device, ob_property_id property_id, ob_data_bundle *data_bundle, ob_set_data_callback cb, void *user_data,
ob_error **error);
/**
* \if English
* @brief Get property struct data.
* @param[in] device Device object
* @param[in] property_id Id of the property
* @param[out] error Log error messages
* @return ob_data_dundle, NOTE: ob_data_dundle must free by ob_delete_data_bundle() because it come from OrbbecSDK's API
* \else
* @brief 获取结构体类型的设备属性
* @param[in] device 设备对象
* @param[in] property_id 要获取的属性id
* @param[out] error 记录错误信息
* @return 返回ob_data_dundle 结构体对象指针,返回的必须调用ob_delete_data_bundle()函数释放资源,否则会造成内存泄漏
* \endif
*/
ob_data_bundle *ob_device_get_structured_data_ext(ob_device *device, ob_property_id property_id, ob_error **error);
/**
* \if English
* @brief Set raw data type of device property
@@ -495,6 +538,44 @@ void ob_device_set_raw_data(ob_device *device, ob_property_id property_id, void
*/
void ob_device_get_raw_data(ob_device *device, ob_property_id property_id, ob_get_data_callback cb, bool async, void *user_data, ob_error **error);
/**
* \if English
* @brief Get the property protocol version
*
* @param[in] device Device object
* @param[out] error Log error messages
* @return ob_protocol_version
*
* \else
*
* @brief 获取设备的控制命令协议版本
*
* @param[in] device 设备对象
* @param[out] error 记录错误信息
* @return ob_protocol_version
* \endif
*/
ob_protocol_version ob_device_get_protocol_version(ob_device *device, ob_error **error);
/**
* \if English
* @brief Get cmdVersion of property
*
* @param[in] device Device object
* @param[in] propertyId Property id
* @param[out] error Log error messages
* @return ob_cmd_version
* \else
* @brief 获取控制命令的版本号
*
* @param[in] device 设备对象
* @param[in] propertyId 属性id
* @param[out] error 记录错误信息
* @return ob_cmd_version
* \endif
*/
ob_cmd_version ob_device_get_cmd_version(ob_device *device, ob_property_id property_id, ob_error **error);
/**
* \if English
* @brief Get supported device properties count
@@ -903,6 +984,72 @@ void ob_device_write_authorization_code(ob_device *device, const char *auth_code
*/
ob_camera_param_list *ob_device_get_calibration_camera_param_list(ob_device *device, ob_error **error);
/**
* \if English
* @brief Get current depth work mode
* @param[in] device Device object
* @param[out] error Log error messages
* @return ob_depth_work_mode Current depth work mode
* \else
* @brief 查询当前相机深度模式
* @param[in] device 设备对象
* @param[out] error 记录错误信息
* @return ob_depth_work_mode 当前深度工作模式
* \endif
*/
ob_depth_work_mode ob_device_get_current_depth_work_mode(ob_device *device, ob_error **error);
/**
* \if English
* @brief Switch depth work mode by ob_depth_work_mode. Prefer invoke ob_device_switch_depth_work_mode_by_name to switch depth mode
* when known the complete name of depth work mode.
* @param[in] device Device object
* @param[in] work_mode Depth work mode come from ob_depth_work_mode_list which return by ob_device_get_depth_work_mode_list
* @param[out] error Log error messages
* @return Return switch result. OB_STATUS_OK: success, other failed.
* \else
* @brief 切换相机深度模式(根据深度工作模式对象),如果知道设备支持的深度工作模式名称,那么推荐用ob_device_switch_depth_work_mode_by_name
* @param[in] device 设备对象
* @param[in] work_mode 深度工作模式,从深度工作模式列表ob_depth_work_mode_list获取的模式对象(ob_device_get_depth_work_mode_list返回的对象)
* @param[out] error 记录错误信息
* @return ob_status 设置设置结果,OB_STATUS_OK成功,其他:设置失败
* \endif
*/
ob_status ob_device_switch_depth_work_mode(ob_device *device, const ob_depth_work_mode *work_mode, ob_error **error);
/**
* \if English
* @brief Switch depth work mode by work mode name.
* @param[in] device Device object
* @param[in] mode name Depth work mode name which equals to ob_depth_work_mode.name
* @param[out] error Log error messages
*
* @return Return switch result. OB_STATUS_OK: success, other failed.
* \else
* @brief 切换相机深度模式(根据深度工作模式名称)
* @param[in] device 设备对象
* @param[in] mode_name 深度工作模式名称,模式名称必须与ob_depth_work_mode.name一致
* @param[out] error 记录错误信息
* @return ob_status 设置设置结果,OB_STATUS_OK成功,其他:设置失败
* \endif
*/
ob_status ob_device_switch_depth_work_mode_by_name(ob_device *device, const char *mode_name, ob_error **error);
/**
* \if English
* @brief Request support depth work mode list
* @param[in] device Device object
* @param[out] error Log error messages
* @return ob_depth_work_mode_list list of ob_depth_work_mode
* \else
* @brief 查询当前相机深度模式的列表
* @param[in] device 设备对象
* @param[out] error 记录错误信息
* @return ob_depth_work_mode_list 深度模式列表。注意:返回对象要用ob_delete_depth_work_mode_list()释放资源,否者会内存泄漏
* \endif
*/
ob_depth_work_mode_list *ob_device_get_depth_work_mode_list(ob_device *device, ob_error **error);
/**
* \if English
* @brief Device reboot
@@ -922,6 +1069,28 @@ ob_camera_param_list *ob_device_get_calibration_camera_param_list(ob_device *dev
*/
void ob_device_reboot(ob_device *device, ob_error **error);
/**
* @brief 获取当前设备同步配置
* @brief 设备同步:包括单机内的不同 Sensor 的曝光同步功能 和 多机同步功能
*
* @param[in] device 设备对象
* @param[out] error 记录错误信息
* @return ob_device_sync_config 返回设备同步配置
*/
ob_device_sync_config ob_device_get_sync_config(ob_device *device, ob_error **error);
/**
* @brief 设置设备同步配置
* @brief 用于配置 单机内的不同 Sensor 的曝光同步功能 和 多机同步功能
*
* @attention 调用本函数会直接将配置写入设备Flash,设备重启后依然会生效。为了避免影响Flash寿命,不要频繁更新配置。
*
* @param[in] device 设备对象
* @param[out] device_sync_config 设备同步配置
* @param[out] error 记录错误信息
*/
void ob_device_set_sync_config(ob_device *device, ob_device_sync_config device_sync_config, ob_error **error);
/**
* \if English
* @brief Get device name
@@ -1171,6 +1340,68 @@ ob_camera_param ob_camera_param_list_get_param(ob_camera_param_list *param_list,
*/
void ob_delete_camera_param_list(ob_camera_param_list *param_list, ob_error **error);
/**
* \if English
* @brief Get the depth work mode count that ob_depth_work_mode_list hold
* @param[in] work_mode_list data struct contain list of ob_depth_work_mode
* @param[out] error Log error messages
* @return The total number contain in ob_depth_work_mode_list
* \else
* @brief 获取深度工作模式列表的元素数量
* @param[in] work_mode_list 工作模式列表对象
* @param[in] index 下标,从0开始
* @return work_mode_list包含的深度模式总数
* \endif
*
*/
uint32_t ob_depth_work_mode_list_count(ob_depth_work_mode_list *work_mode_list, ob_error **error);
/**
* \if English
* @brief Get the index target of ob_depth_work_mode from work_mode_list
* @param[in] work_mode_list data struct contain list of ob_depth_work_mode
* @param[in] index index of target ob_depth_work_mode
* @param[out] error Log error messages
* @return ob_depth_work_mode
* \else
* @brief 从深度工作模式列表获取第N个对象
* @param[in] work_mode_list 工作模式列表对象
* @param[in] index 下标,从0开始
* @param[out] error 记录错误信息
* @return 深度工作模式对象
* \endif
*
*/
ob_depth_work_mode ob_depth_work_mode_list_get_item(ob_depth_work_mode_list *work_mode_list, uint32_t index, ob_error **error);
/**
* \if English
* @brief Free resource of ob_depth_work_mode_list
* @param[in] work_mode_list data struct contain list of ob_depth_work_mode
* @param[out] error Log error messages
* \else
* @brief 删除深度工作模式列表对象,释放资源
* @param[in] work_mode_list 工作模式列表对象
* @param[out] error 记录错误信息
* \endif
*
*/
void ob_delete_depth_work_mode_list(ob_depth_work_mode_list *work_mode_list, ob_error **error);
/**
* \if English
* @brief Free resource of data_bundle which come from OrbbecSDK's API
* @param data_bundle Data bundle
* @param[out] error Log error messages
* \else
* @brief 删除ob_data_bundle对象,释放资源;
* 注意:只能释放OrbbecSDK库返回的ob_data_bundle对象,非OrbbecSDK构建的对象不能调用该接口,否则会造成意想不到的错误
* @param[in] data_bundle 数据集
* @param[out] error 记录错误信息
* \endif
*/
void ob_delete_data_bundle(ob_data_bundle *data_bundle, ob_error **error);
#ifdef __cplusplus
}
#endif
@@ -84,12 +84,18 @@ void ob_pointcloud_filter_set_frame_align_state(ob_filter *filter, bool state, o
/**
* \if English
* @brief Set point cloud position data scale ratio
* @param[in] filter pointcloud_filter object
* @param[in] scale scale ratio
* @brief Set the point cloud data scaling factor
* @attention Calling this function to set the scale will change the point coordinate scaling factor of the output point cloud frame: posScale = posScale /
* scale.The point coordinate scaling factor for the output point cloud frame can be obtained via @ref ob_points_frame_get_position_value_scale function
* @param[in] filter object
* @param[in] scale Set the point cloud coordinate data zoom factor
* @param[out] error Log error messages
* \else
* @brief 设置点云数据缩放比例
*
* @attention 调用该函数设置缩放比例会改变输出点云帧的点坐标缩放系数:posScale = posScale / scale;
* 输出点云帧的点坐标缩放系数可通过 @ref ob_points_frame_get_position_value_scale 函数获取
*
* @param[in] filter pointcloud_filter对象
* @param[in] scale 设置点云坐标数据缩放比例
* @param[out] error 记录错误信息
@@ -100,8 +106,8 @@ void ob_pointcloud_filter_set_position_data_scale(ob_filter *filter, float scale
/**
* \if English
* @brief Set point cloud color data normalization
* @param[in] filter pointcloud_filter object
* @param[in] state Whether to normalize
* @param[in] filter object
* @param[in] state Sets whether the point cloud color data is normalized
* @param[out] error Log error messages
* \else
* @brief 设置点云颜色数据归一化
@@ -146,6 +152,60 @@ ob_filter *ob_create_format_convert_filter(ob_error **error);
*/
void ob_format_convert_filter_set_format(ob_filter *filter, ob_convert_format type, ob_error **error);
/**
* \if English
* @brief Create compression Filter
*
* @param[out] error Log error messages
*
* @return filter depth_filter object
* \else
* @brief 创建compression Filter
*
* @param[out] error 记录错误信息
*
* @return filter depth_filter 对象
* \endif
*/
ob_filter *ob_create_compression_filter(ob_error **error);
/**
* \if English
* @brief Set compression parameters
*
* @param[in] filter compression_filter object
* @param[in] mode Compression mode OB_COMPRESSION_LOSSLESS or OB_COMPRESSION_LOSSY
* @param[in] params Compression params, struct ob_compression_params, when mode is OB_COMPRESSION_LOSSLESS, params is NULL
* @param[out] error Log error messages
* \else
* @brief 设置压缩类型
*
* @param[in] filter compression_filter对象
* @param[in] mode 压缩模式 OB_COMPRESSION_LOSSLESS or OB_COMPRESSION_LOSSY
* @param[in] params 压缩参数,结构体 ob_compression_params,当mode为OB_COMPRESSION_LOSSLESS时,params为NULL
* @param[out] error 记录错误信息
* \endif
*/
void ob_compression_filter_set_compression_params(ob_filter *filter, ob_compression_mode mode, void *params, ob_error **error);
/**
* \if English
* @brief Create decompression Filter
*
* @param[out] error Log error messages
*
* @return filter decompression Filter object
* \else
* @brief 创建decompressionr Filter
*
* @param[out] error 记录错误信息
*
* @return filter decompression Filter 对象
* \endif
*/
ob_filter *ob_create_decompression_filter(ob_error **error);
/**
* \if English
* @brief Filter reset, cache clear, state reset. If the asynchronous interface is used, the processing thread will also be stopped and the pending cache
@@ -234,4 +294,4 @@ void ob_delete_filter(ob_filter *filter, ob_error **error);
#ifdef __cplusplus
}
#endif
#endif
@@ -241,27 +241,53 @@ uint32_t ob_video_frame_metadata_size(ob_frame *frame, ob_error **error);
*/
uint8_t ob_video_frame_pixel_available_bit_size(ob_frame *frame, ob_error **error);
/* @brief 查询IR frame的最原始数据来源(即使回放视频,其原始的数据源也是sensor)
* @param[in] frame 视频帧对象
* @param[out] error 记录错误信息
* @return uint8_t 返回
* \endif
*/
ob_sensor_type ob_ir_frame_get_source_sensor_type(ob_frame *frame, ob_error **ob_error);
/**
* \if English
* @brief Get the value scale of the depth frame, the unit is mm/step,
* such as valueScale=0.1, and a certain coordinate pixel value is pixelValue=10000,
* then the depth value = pixelValue*valueScale = 10000*0.1=1000mm。
* @brief Get the value scale of the depth frame. The pixel value of depth frame is multiplied by the scale to give a depth value in millimeter.
* such as valueScale=0.1, and a certain coordinate pixel value is pixelValue=10000, then the depth value = pixelValue*valueScale = 10000*0.1=1000mm。
*
* @param[in] frame Frame object
* @param[out] error Log error messages
* @return float value scale
* \else
* @brief 获取深度帧的值刻度,单位为 mm/step,
* 如valueScale=0.1, 某坐标像素值为pixelValue=10000,
* @brief 获取深度帧的值缩放系数,深度像素值乘以缩放系数后,可以得到单位为毫米的深度值; 如valueScale=0.1, 某坐标像素值为pixelValue=10000,
* 则表示深度值value = pixelValue*valueScale = 10000*0.1=1000mm。
*
* @param[in] frame 帧对象
* @param[out] error 记录错误信息
* @return float 值刻度
* @return float 缩放系数
* \endif
*/
float ob_depth_frame_get_value_scale(ob_frame *frame, ob_error **error);
/**
* \if English
* @brief Get the point position value scale of the points frame. the point position value of points frame is multiplied by the scale to give a position value
* in millimeter. such as scale=0.1, The x-coordinate value of a point is x = 10000, which means that the actual x-coordinate value = x*scale = 10000*0.1 =
* 1000mm.
*
* @param[in] frame Frame object
* @param[out] error Log error messages
* @return float position value scale
* \else
* @brief 获取点云帧的点坐标值缩放系数,点坐标值乘以缩放系数后,可以得到单位为毫米的坐标值; 如scale=0.1, 某个点的x坐标值为x=10000,
* 则表示实际x坐标value = x*scale = 10000*0.1=1000mm。
*
* @param[in] frame 点云帧对象
* @param[out] error 记录错误信息
* @return float 缩放系数
* \endif
*/
float ob_points_frame_get_position_value_scale(ob_frame *frame, ob_error **error);
/**
* \if English
* @brief Delete frame
@@ -362,6 +388,11 @@ ob_frame *ob_frameset_ir_frame(ob_frame *frameset, ob_error **error);
*/
ob_frame *ob_frameset_points_frame(ob_frame *frameset, ob_error **error);
/**
* 获取指定类型的frame
*/
ob_frame *ob_frameset_get_frame(ob_frame *frameset, ob_frame_type frame_type, ob_error **error);
/**
* \if English
* @brief Get accelerometer frame data
File diff suppressed because it is too large Load Diff
@@ -366,7 +366,7 @@ ob_rect ob_get_d2c_valid_area(ob_pipeline *pipeline, uint32_t distance, ob_error
* @return ob_rect 返回在工作距离下D2C后有效的区域信息
* \endif
*/
ob_rect ob_get_d2c_range_valid_area(ob_pipeline *pipeline, uint32_t minimum_distance,uint32_t maximum_distance, ob_error **error);
ob_rect ob_get_d2c_range_valid_area(ob_pipeline *pipeline, uint32_t minimum_distance, uint32_t maximum_distance, ob_error **error);
/**
* \if English
@@ -398,6 +398,7 @@ void ob_pipeline_start_record(ob_pipeline *pipeline, const char *file_name, ob_e
* @param[out] error 记录错误信息
* \endif
*/
void ob_pipeline_stop_record(ob_pipeline *pipeline, ob_error **error);
/**
@@ -511,13 +512,12 @@ void ob_config_disable_all_stream(ob_config *config, ob_error **error);
*/
void ob_config_set_align_mode(ob_config *config, ob_align_mode mode, ob_error **error);
/**
* \if English
* @brief Whether scale depth frame after D2C
* @brief Whether the depth needs to be scaled after setting D2C
*
* @param[in] config config object
* @param[in] enable Scale or not
* @param[in] enable Whether scaling is required
* @param[out] error Log error messages
* \else
* @brief 设置D2C后是否需要缩放深度
@@ -527,15 +527,17 @@ void ob_config_set_align_mode(ob_config *config, ob_align_mode mode, ob_error **
* @param[out] error 记录错误信息
* \endif
*/
void ob_config_set_depth_scale_require(ob_config *config,bool enable,ob_error **error);
void ob_config_set_depth_scale_require(ob_config *config, bool enable, ob_error **error);
/**
* \if English
* @brief
* @brief Set the D2C target resolution, which is applicable to cases where the Color stream is not enabled using the OrbbecSDK and the depth needs to be D2C
* Note: When you use OrbbecSDK to enable the Color stream, you also use this interface to set the D2C target resolution. The configuration of the enabled Color
* stream is preferred for D2C
*
* @param[in] config config object
* @param[in] d2c_target_width D2C target width
* @param[in] d2c_target_height D2C target height
* @param[in] d2c_target_width The D2C target has a wide resolution
* @param[in] d2c_target_height The D2C targets has a high resolution
* @param[out] error Log error messages
* \else
* @brief 设置D2C目标分辨率,适用于未使用OrbbecSDK开启Color流,且需要对深度进行D2C的情况
@@ -547,8 +549,8 @@ void ob_config_set_depth_scale_require(ob_config *config,bool enable,ob_error **
* @param[out] error 记录错误信息
* \endif
*/
void ob_config_set_d2c_target_resolution(ob_config *config,uint32_t d2c_target_width,uint32_t d2c_target_height,ob_error **error);
void ob_config_set_d2c_target_resolution(ob_config *config, uint32_t d2c_target_width, uint32_t d2c_target_height, ob_error **error);
#ifdef __cplusplus
}
#endif
#endif
@@ -11,6 +11,9 @@
* \endif
*/
#ifdef OB_SENSOR_SDK_DEVELOPER
#include "libobsensor/internal/InternalProperty.h"
#else // not define OB_SENSOR_SDK_DEVELOPER
#ifndef _OB_PROPERTY_H_
#define _OB_PROPERTY_H_
@@ -78,9 +81,26 @@ typedef enum {
91, /**< \if English D2C preprocessing switch (such as RGB cropping), 0: off, 1: on \else D2C前处理开关(如RGB裁剪),0:关闭,1:打开 \endif */
OB_PROP_RGB_CUSTOM_CROP_BOOL = 94, /**< \if English Custom RGB cropping switch, 0 is off, 1 is on custom cropping, and the ROI cropping area is issued \else
自定义RGB裁剪开关,0为关闭,1为开启自定义裁剪,下发ROI裁剪区域\endif */
OB_PROP_DEVICE_WORK_MODE_INT = 95, /**< \if English Device operating mode (power consumption) \else 设备工作模式(功耗) \endif */
OB_PROP_DEVICE_COMMUNICATION_TYPE_INT = 97, /**< 设备通信方式 0: USB; 1: Ethernet(RTSP)*/
OB_PROP_SWITCH_IR_MODE_INT = 98, /**< 切换IR模式,0为主动IR模式,1为被动IR模式*/
OB_PROP_DEVICE_WORK_MODE_INT = 95, /**< \if English Device operating mode (power consumption) \else 设备工作模式(功耗) \endif */
OB_PROP_DEVICE_COMMUNICATION_TYPE_INT = 97, /**< 设备通信方式 0: USB; 1: Ethernet(RTSP)*/
OB_PROP_SWITCH_IR_MODE_INT = 98, /**< 切换IR模式,0为主动IR模式,1为被动IR模式*/
OB_PROP_LASER_ENERGY_LEVEL_INT = 99, /**< 激光能量层级 */
OB_PROP_TIMER_RESET_SIGNAL_BOOL = 104, /**< 触发设备时间归零 */
OB_PROP_TIMER_RESET_TRIGGLE_OUT_ENABLE_BOOL = 105, /**< 向外发送时间归零信号开关, true:打开, false: 关闭; 默认为true */
OB_PROP_TIMER_RESET_DELAY_US_INT = 106, /**< 设置硬件时间归零延迟时间, 单位: 微妙 */
OB_PROP_CAPTURE_IMAGE_SIGNAL_BOOL = 107, /**< 软触发信号, 触发抓拍图片 */
OB_PROP_IR_RIGHT_MIRROR_BOOL = 112, /**< 右IR的镜像 */
OB_PROP_CAPTURE_IMAGE_FRAME_NUMBER_INT = 113, /** 单次软触发抓拍的帧数, 范围:[1, 255] */
OB_PROP_IR_RIGHT_FLIP_BOOL = 114, /**< 右IR的翻转, true:翻转,false:不翻转;默认为false */
OB_PROP_COLOR_ROTATE_INT = 115, /**< 彩色旋转, 翻转角度范围{0, 90, 180, 270}, 默认为0 */
OB_PROP_IR_ROTATE_INT = 116, /**< IR旋转, 翻转角度范围{0, 90, 180, 270}, 默认为0 */
OB_PROP_IR_RIGHT_ROTATE_INT = 117, /**< 右IR旋转, 翻转角度范围{0, 90, 180, 270}, 默认为0 */
OB_PROP_DEPTH_ROTATE_INT = 118, /**< 深度旋转, 翻转角度范围{0, 90, 180, 270}, 默认为0 */
OB_PROP_LASER_HW_ENERGY_LEVEL_INT =
119, /**< 查询激光硬件的实际能量层级, OB_PROP_LASER_ENERGY_LEVEL_INT(99)指令用于设置能级,该指令用于查询设置后硬件实际能级 */
OB_PROP_USB_POWER_STATE_INT = 121, /**< USB供电状态,状态值枚举: OBUSBPowerState */
OB_PROP_DC_POWER_STATE_INT = 122, /**< DC供电状态,状态值枚举: OBDCPowerState */
OB_STRUCT_BASELINE_CALIBRATION_PARAM = 1002, /**< \if English Baseline calibration parameters \else 基线标定参数 \endif */
OB_STRUCT_DEVICE_TEMPERATURE = 1003, /**< \if English Device temperature information \else 设备温度信息 \endif */
@@ -89,8 +109,10 @@ typedef enum {
OB_STRUCT_DEVICE_TIME = 1037, /**< \if English get/set device time \else 获取/设置设备时间 \endif */
OB_STRUCT_MULTI_DEVICE_SYNC_CONFIG =
1038, /**< \if English Multi-device synchronization mode and parameter configuration \else 多设备同步模式和参数配置 \endif */
OB_STRUCT_RGB_CROP_ROI = 1040, /**< \if English RGB cropping ROI \else RGB裁剪ROI \endif */
OB_STRUCT_DEVICE_IP_ADDR_CONFIG = 1041, /**< 设备ip地址配置 */
OB_STRUCT_RGB_CROP_ROI = 1040, /**< \if English RGB cropping ROI \else RGB裁剪ROI \endif */
OB_STRUCT_DEVICE_IP_ADDR_CONFIG = 1041, /**< 设备ip地址配置 */
OB_STRUCT_CURRENT_DEPTH_ALG_MODE = 1043, /**< 当前的相机深度模式 */
OB_STRUCT_DEPTH_PRECISION_SUPPORT_LIST = 1045, /**< 深度精度等级列表,返回uin16_t数组,对应精度等级的枚举定义 */
OB_PROP_COLOR_AUTO_EXPOSURE_BOOL = 2000, /**< \if English Color camera auto exposure \else 彩色相机自动曝光 \endif */
OB_PROP_COLOR_EXPOSURE_INT = 2001, /**< \if English Color camera exposure adjustment \else 彩色相机曝光调节 \endif */
@@ -119,17 +141,21 @@ typedef enum {
红外相机曝光调节(某些型号设备下会同步设置深度相机) \endif */
OB_PROP_IR_GAIN_INT = 2027, /**< \if English Infrared camera gain adjustment (the depth camera will be set synchronously under some models of devices) \else
红外相机增益调节(某些型号设备下会同步设置深度相机) \endif */
OB_PROP_IR_SWITCH_INT = 2028,
/**< 双目红外相机左右IR切换 */ // todo: id有冲突@千手修罗
OB_PROP_IR_CHANNEL_DATA_SOURCE_INT = 2028, /**< \if English Select Infrared camera data source channel. If not support throw exception. 0 : IR stream from IR Left sensor; 1 : IR stream from IR Left sensor; \else 读写IR通道的输出目标sensor,不支持时返回错误。0: 左侧IR sensor,1: 右侧IR sensor; \endif */
OB_PROP_DEPTH_RM_FILTER_BOOL = 2029, /**< 深度效果去畸变, true:打开,false:关闭, 与D2C功能互斥。软硬件D2C开启时,不能使用mask功能 */
OB_PROP_SDK_DISPARITY_TO_DEPTH_BOOL = 3004, /**< 视差转深度 */
OB_PROP_SDK_DEPTH_FRAME_UNPACK_BOOL = 3007, /**< Depth数据解包功能开关(每次开流都会默认打开,支持RLE/Y10/Y11/Y12/Y14格式) */
OB_PROP_SDK_IR_FRAME_UNPACK_BOOL = 3008, /**< Ir数据解包功能开关(每次开流都会默认打开,支持RLE/Y10/Y11/Y12/Y14格式) */
OB_RAW_DATA_CAMERA_CALIB_JSON_FILE = 4029, /**< 从设备端读取的标定Json文件(Femto Mega, read only)*/
OB_RAW_DATA_D2C_ROT_LUT_FILE = 4030, /**< D2C初始化表文件(Femto Mega)*/
OB_STRUCT_DEBUG_SENSOR_EXPOSURE_TIME = 5504, /**< \if English LDP status \else 曝光时间读写 \endif */
OB_PROP_SDK_DEPTH_FRAME_UNPACK_BOOL =
3007, /**< \if English Depth data unpacking function switch (each open stream will be turned on by default, support RLE/Y10/Y11/Y12/Y14 format) \else
Depth数据解包功能开关(每次开流都会默认打开,支持RLE/Y10/Y11/Y12/Y14格式) \endif */
OB_PROP_SDK_IR_FRAME_UNPACK_BOOL =
3008, /**< \if English IR data unpacking function switch (each current will be turned on by default, support RLE/Y10/Y11/Y12/Y14 format) \else
Ir数据解包功能开关(每次开流都会默认打开,支持RLE/Y10/Y11/Y12/Y14格式) \endif */
OB_PROP_SDK_ACCEL_FRAME_TRANSFORMED_BOOL = 3009, /**< Accel数据转换功能开关(默认打开) */
OB_PROP_SDK_GYRO_FRAME_TRANSFORMED_BOOL = 3010, /**< Gyro数据转换功能开关(默认打开) */
OB_PROP_SDK_IR_LEFT_FRAME_UNPACK_BOOL = 3011, /**< [左]Ir数据解包功能开关(每次开流都会默认打开,支持RLE/Y10/Y11/Y12/Y14格式) */
OB_PROP_SDK_IR_RIGHT_FRAME_UNPACK_BOOL = 3012, /**< [右]Ir数据解包功能开关(每次开流都会默认打开,支持RLE/Y10/Y11/Y12/Y14格式) */
OB_RAW_DATA_CAMERA_CALIB_JSON_FILE = 4029, /**< 从设备端读取的标定Json文件(Femto Mega, read only)*/
} OBPropertyID,
ob_property_id;
@@ -167,3 +193,4 @@ typedef struct OBPropertyItem {
#endif
#endif // _OB_PROPERTY_H_
#endif // OB_SENSOR_SDK_DEVELOPER