mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-04 12:07:46 +08:00
update OrbbecSDK version to 2.8.1
This commit is contained in:
@@ -74,10 +74,45 @@ typedef enum {
|
|||||||
* @brief error code
|
* @brief error code
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
OB_STATUS_OK = 0, /**< status ok */
|
OB_STATUS_OK = 0, /**< Status OK (success) */
|
||||||
OB_STATUS_ERROR = 1, /**< status error */
|
OB_STATUS_ERROR = 1, /**< Status error (legacy failure) */
|
||||||
|
OB_ERROR_UNKNOWN = 1, /**< Alias for OB_STATUS_ERROR */
|
||||||
|
|
||||||
|
// // 00001 ~ 0999: Common errors (reserved range)
|
||||||
|
OB_ERROR_INVALID_PARAMETER = 100, /**< One or more parameters are invalid */
|
||||||
|
OB_ERROR_INVALID_DATA = 101, /**< Data is invalid or corrupted */
|
||||||
|
OB_ERROR_INVALID_DATA_LEN = 102, /**< Data length is invalid */
|
||||||
|
OB_ERROR_BUFFER_TOO_SMALL = 103, /**< Target buffer is too small to hold data */
|
||||||
|
OB_ERROR_MEMORY = 104, /**< Memory allocation or access failure */
|
||||||
|
OB_ERROR_WAIT_TIMEOUT = 105, /**< Operation timed out */
|
||||||
|
OB_ERROR_NOT_IMPLEMENTED = 106, /**< Functionality not implemented in SDK */
|
||||||
|
OB_ERROR_UNSUPPORTED_OPERATION = 107, /**< Functionality not implemented in SDK */
|
||||||
|
OB_ERROR_WRONG_API_CALL_SEQUENCE = 108, /**< API called in an invalid order or state */
|
||||||
|
OB_ERROR_NO_DEVICE = 109, /**< No available device found */
|
||||||
|
OB_ERROR_DEVICE_CONNECT_FAILED = 110, /**< Failed to connect to device */
|
||||||
|
OB_ERROR_DEVICE_ACCESS_DENIED = 111, /**< Access to device denied */
|
||||||
|
OB_ERROR_DEVICE_DISCONNECTED = 112, /**< Device was disconnected */
|
||||||
|
OB_ERROR_DEVICE_UNAVAILABLE = 113, /**< Device was unavailable */
|
||||||
|
OB_ERROR_ITEM_NOT_FOUND = 114, /**< Specified item or component not found */
|
||||||
|
OB_ERROR_IO_FAILURE = 115, /**< I/O operation failed */
|
||||||
|
OB_ERROR_RESOURCE_BUSY = 116, /**< Resource is busy or locked by another operation */
|
||||||
|
|
||||||
|
// - Pipeline/Frame
|
||||||
|
OB_ERROR_FRAME_QUEUE_OVERFLOW = 200, /**< Frame queue overflow */
|
||||||
|
OB_ERROR_FRAME_DATA = 201, /**< Frame data is invalid or corrupted */
|
||||||
|
OB_ERROR_FRAME_DATA_LEN = 202, /**< Frame data length is invalid */
|
||||||
|
|
||||||
|
// 1000 ~ 1999: Device errors
|
||||||
|
OB_ERROR_DEVICE_UNKNOWN = 1000, /**< Unknown device error */
|
||||||
|
OB_ERROR_DEVICE_RESPONSE_BAD_MAGIC = 1001, /**< Device response has invalid magic number */
|
||||||
|
OB_ERROR_DEVICE_RESPONSE_WRONG_ID = 1002, /**< Device response contains incorrect ID */
|
||||||
|
OB_ERROR_DEVICE_RESPONSE_WRONG_OPCODE = 1003, /**< Device response contains incorrect opcode */
|
||||||
|
OB_ERROR_DEVICE_RESPONSE_WRONG_DATA_SIZE = 1004, /**< Device response has incorrect data size */
|
||||||
|
OB_ERROR_DEVICE_RESPONSE_ERROR = 1005, /**< Device response indicates an error */
|
||||||
|
OB_ERROR_DEVICE_RESPONSE_WARNING = 1006, /**< Device response indicates a warning */
|
||||||
|
|
||||||
} OBStatus,
|
} OBStatus,
|
||||||
ob_status;
|
OBErrorCode, ob_status, ob_error_code;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief log level, the higher the level, the stronger the log filter
|
* @brief log level, the higher the level, the stronger the log filter
|
||||||
@@ -98,18 +133,22 @@ typedef enum {
|
|||||||
* For detailed error API interface functions and error logs, please refer to the information of ob_error
|
* For detailed error API interface functions and error logs, please refer to the information of ob_error
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
OB_EXCEPTION_TYPE_UNKNOWN, /**< Unknown error, an error not clearly defined by the SDK */
|
OB_EXCEPTION_TYPE_UNKNOWN, /**< Unknown error, an error not clearly defined by the SDK */
|
||||||
OB_EXCEPTION_STD_EXCEPTION, /** < Standard exception, an error caused by the standard library */
|
OB_EXCEPTION_STD_EXCEPTION, /**< Standard exception, an error caused by the standard library */
|
||||||
OB_EXCEPTION_TYPE_CAMERA_DISCONNECTED, /**< Camera/Device has been disconnected, the camera/device is not available */
|
OB_EXCEPTION_TYPE_CAMERA_DISCONNECTED, /**< Camera/Device has been disconnected, the camera/device is not available */
|
||||||
OB_EXCEPTION_TYPE_PLATFORM, /**< An error in the SDK adaptation platform layer, which means an error in the implementation of a specific system
|
OB_EXCEPTION_TYPE_PLATFORM, /**< An error in the SDK adaptation platform layer, which means an error in the
|
||||||
platform */
|
implementation of a specific system platform */
|
||||||
OB_EXCEPTION_TYPE_INVALID_VALUE, /**< Invalid parameter type exception, need to check input parameter */
|
OB_EXCEPTION_TYPE_INVALID_VALUE, /**< Invalid parameter type exception, need to check input parameter */
|
||||||
OB_EXCEPTION_TYPE_WRONG_API_CALL_SEQUENCE, /**< Wrong API call sequence, the API is called in the wrong order or the wrong parameter is passed */
|
OB_EXCEPTION_TYPE_WRONG_API_CALL_SEQUENCE, /**< Wrong API call sequence, the API is called in the wrong order or the wrong parameter is passed */
|
||||||
OB_EXCEPTION_TYPE_NOT_IMPLEMENTED, /**< SDK and firmware have not yet implemented this function or feature */
|
OB_EXCEPTION_TYPE_NOT_IMPLEMENTED, /**< SDK and firmware have not yet implemented this function or feature */
|
||||||
OB_EXCEPTION_TYPE_IO, /**< SDK access IO exception error */
|
OB_EXCEPTION_TYPE_IO, /**< SDK access IO exception error */
|
||||||
OB_EXCEPTION_TYPE_MEMORY, /**< SDK access and use memory errors. For example, the frame fails to allocate memory */
|
OB_EXCEPTION_TYPE_MEMORY, /**< SDK access and use memory errors. For example, the frame fails to allocate memory */
|
||||||
OB_EXCEPTION_TYPE_UNSUPPORTED_OPERATION, /**< Unsupported operation type error by SDK or device */
|
OB_EXCEPTION_TYPE_UNSUPPORTED_OPERATION, /**< Unsupported operation type error by SDK or device */
|
||||||
OB_EXCEPTION_TYPE_ACCESS_DENIED, /**< Device access denied */
|
OB_EXCEPTION_TYPE_ACCESS_DENIED, /**< Device access denied */
|
||||||
|
OB_EXCEPTION_TYPE_DEVICE_UNAVAILABLE, /**< Camera or Device is not available */
|
||||||
|
OB_EXCEPTION_TYPE_INVALID_DATA, /**< Runtime data is invalid, check data content or size */
|
||||||
|
OB_EXCEPTION_TYPE_NOT_FOUND, /**< The requested item was not found */
|
||||||
|
OB_EXCEPTION_TYPE_RESOURCE_BUSY, /**< Resource is busy or locked by another operation */
|
||||||
} OBExceptionType,
|
} OBExceptionType,
|
||||||
ob_exception_type;
|
ob_exception_type;
|
||||||
|
|
||||||
@@ -688,6 +727,39 @@ typedef enum {
|
|||||||
*/
|
*/
|
||||||
typedef uint64_t OBDeviceState, ob_device_state;
|
typedef uint64_t OBDeviceState, ob_device_state;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Pipeline issue location flags observed during streaming.
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
OB_PIPELINE_ISSUE_NONE = 0x00, /**< No issue observed */
|
||||||
|
OB_PIPELINE_ISSUE_SDK = 0x01, /**< Issue observed in SDK */
|
||||||
|
OB_PIPELINE_ISSUE_DRIVER = 0x02, /**< Issue observed in driver */
|
||||||
|
OB_PIPELINE_ISSUE_FW = 0x04, /**< Issue observed in device firmware */
|
||||||
|
OB_PIPELINE_ISSUE_HW = 0x08, /**< Issue observed in device hardware */
|
||||||
|
} OBPipelineIssue,
|
||||||
|
ob_pipeline_issue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SDK-defined pipeline status bits observed during streaming.
|
||||||
|
*/
|
||||||
|
#define OB_SDK_STATUS_FRAME_DROP_DATA (1ULL << 0) /**< Frame dropped due to data error */
|
||||||
|
#define OB_SDK_STATUS_FRAME_DROP_TIMESTAMP (1ULL << 1) /**< Frame dropped due to timestamp error */
|
||||||
|
#define OB_SDK_STATUS_FRAME_DROP_MATCH (1ULL << 2) /**< Frame dropped due to aggregation match failure */
|
||||||
|
#define OB_SDK_STATUS_FRAME_QUEUE_OVERFLOW (1ULL << 3) /**< Frame dropped due to queue overflow */
|
||||||
|
#define OB_SDK_STATUS_FRAME_WAIT_TIMEOUT (1ULL << 4) /**< Wait for frame timeout */
|
||||||
|
#define OB_SDK_STATUS_STREAM_NO_FRAME (1ULL << 5) /**< A stream has not received any frame for a prolonged period */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Pipeline status observed during streaming.
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
OBPipelineIssue issue; /**< Issue location flags */
|
||||||
|
uint64_t sdkStatus; /**< SDK-defined bitmask composed of OB_SDK_STATUS_* macros */
|
||||||
|
uint64_t devStatus; /**< Device-specific diagnostic bits (not for application logic) */
|
||||||
|
uint64_t drvStatus; /**< Driver-specific diagnostic bits (not for application logic) */
|
||||||
|
uint64_t reserved[3]; /**< Reserved for future use */
|
||||||
|
} OBPipelineStatus, ob_pipeline_status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Temperature parameters of the device (unit: Celsius)
|
* @brief Temperature parameters of the device (unit: Celsius)
|
||||||
*/
|
*/
|
||||||
@@ -1193,7 +1265,27 @@ typedef enum {
|
|||||||
OBCmdVersion, ob_cmd_version;
|
OBCmdVersion, ob_cmd_version;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief IP address configuration for network devices (IPv4)
|
* @brief IP address configuration for network devices (IPv4), used with property OB_STRUCT_DEVICE_IP_ADDR_CONFIG.
|
||||||
|
*
|
||||||
|
* @note Device support:
|
||||||
|
* - Femto Mega / Femto Mega I: only this structure is supported.
|
||||||
|
* - Gemini 335Le / Gemini 435Le with older firmware: only this structure is supported.
|
||||||
|
* - Gemini 335Le / Gemini 435Le with newer firmware: both this structure and @ref OBNetIpConfigV2 are supported;
|
||||||
|
* it is recommended to use @ref OBNetIpConfigV2 (property OB_STRUCT_DEVICE_IP_ADDR_CONFIG_V2) instead.
|
||||||
|
*
|
||||||
|
* @note How to choose between OBNetIpConfig and OBNetIpConfigV2:
|
||||||
|
* First check whether OB_STRUCT_DEVICE_IP_ADDR_CONFIG_V2 is supported by the device. If yes, use @ref OBNetIpConfigV2;
|
||||||
|
* otherwise fall back to this structure.
|
||||||
|
* Example:
|
||||||
|
* @code
|
||||||
|
* bool v2Supported = ob_device_is_property_supported(dev, OB_STRUCT_DEVICE_IP_ADDR_CONFIG_V2,
|
||||||
|
* OB_PERMISSION_READ_WRITE, &error);
|
||||||
|
* if(v2Supported) {
|
||||||
|
* // Use OBNetIpConfigV2 with OB_STRUCT_DEVICE_IP_ADDR_CONFIG_V2
|
||||||
|
* } else {
|
||||||
|
* // Use OBNetIpConfig with OB_STRUCT_DEVICE_IP_ADDR_CONFIG
|
||||||
|
* }
|
||||||
|
* @endcode
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/**
|
/**
|
||||||
@@ -1222,6 +1314,38 @@ typedef struct {
|
|||||||
#define OBDeviceIpAddrConfig OBNetIpConfig
|
#define OBDeviceIpAddrConfig OBNetIpConfig
|
||||||
#define ob_device_ip_addr_config OBNetIpConfig
|
#define ob_device_ip_addr_config OBNetIpConfig
|
||||||
|
|
||||||
|
// IP bit masks
|
||||||
|
#define OB_NET_IP_FLAG_DHCP (0x01u)
|
||||||
|
#define OB_NET_IP_FLAG_PERSISTENT (0x02u)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief IP address configuration v2 for network devices (IPv4), used with property OB_STRUCT_DEVICE_IP_ADDR_CONFIG_V2.
|
||||||
|
*
|
||||||
|
* @note This is the recommended structure for Gemini 335Le / Gemini 435Le devices with newer firmware.
|
||||||
|
* It extends @ref OBNetIpConfig by replacing the single @c dhcp field with a @c flags bitmask that supports
|
||||||
|
* both DHCP mode and Persistent IP mode.
|
||||||
|
*
|
||||||
|
* @note Device support:
|
||||||
|
* - Femto Mega / Femto Mega I: NOT supported; use @ref OBNetIpConfig instead.
|
||||||
|
* - Gemini 335Le / Gemini 435Le with older firmware: NOT supported; use @ref OBNetIpConfig instead.
|
||||||
|
* - Gemini 335Le / Gemini 435Le with newer firmware: supported and recommended.
|
||||||
|
*
|
||||||
|
* @note Before using this structure, verify support at runtime:
|
||||||
|
* @code
|
||||||
|
* bool v2Supported = ob_device_is_property_supported(dev, OB_STRUCT_DEVICE_IP_ADDR_CONFIG_V2,
|
||||||
|
* OB_PERMISSION_READ_WRITE, &error);
|
||||||
|
* @endcode
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uint16_t flags; ///< IP configuration mode flags
|
||||||
|
///< bit0: DHCP enable (1=on, 0=off)
|
||||||
|
///< bit1: Persistent IP enable (1=on, 0=off)
|
||||||
|
///< bit[2:15]: reserved, must be 0
|
||||||
|
uint8_t address[4]; ///< IP address (IPv4, big-endian, e.g. 192.168.1.1 -> address[0]=192)
|
||||||
|
uint8_t mask[4]; ///< Subnet mask (big-endian)
|
||||||
|
uint8_t gateway[4]; ///< Gateway (big-endian)
|
||||||
|
} OBNetIpConfigV2, ob_net_ip_config_v2, DEVICE_IP_ADDR_CONFIG_V2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Device communication mode
|
* @brief Device communication mode
|
||||||
*/
|
*/
|
||||||
@@ -2007,8 +2131,22 @@ typedef void(ob_frame_destroy_callback)(uint8_t *buffer, void *user_data);
|
|||||||
*/
|
*/
|
||||||
typedef void(ob_log_callback)(ob_log_severity severity, const char *message, void *user_data);
|
typedef void(ob_log_callback)(ob_log_severity severity, const char *message, void *user_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Callback for playback status notification
|
||||||
|
*
|
||||||
|
* @param[in] status Playback status
|
||||||
|
* @param[in] user_data User-defined data
|
||||||
|
*/
|
||||||
typedef void (*ob_playback_status_changed_callback)(ob_playback_status status, void *user_data);
|
typedef void (*ob_playback_status_changed_callback)(ob_playback_status status, void *user_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Callback for pipeline status notification
|
||||||
|
*
|
||||||
|
* @param[in] status Pipeline status
|
||||||
|
* @param[in] user_data User-defined data
|
||||||
|
*/
|
||||||
|
typedef void (*ob_pipeline_status_callback)(ob_pipeline_status status, void *user_data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Callback Id
|
* @brief Callback Id
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -364,6 +364,45 @@ OB_EXPORT ob_camera_param ob_pipeline_get_camera_param_with_profile(ob_pipeline
|
|||||||
*/
|
*/
|
||||||
OB_EXPORT ob_calibration_param ob_pipeline_get_calibration_param(ob_pipeline *pipeline, ob_config *config, ob_error **error);
|
OB_EXPORT ob_calibration_param ob_pipeline_get_calibration_param(ob_pipeline *pipeline, ob_config *config, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the current pipeline status observed during streaming.
|
||||||
|
*
|
||||||
|
* @note This function returns the accumulated status since the last call or since the pipeline was (re)started.
|
||||||
|
* The status is reset after each call. It is recommended to call this when no frames have been received
|
||||||
|
* for a period of time. If the status indicates a data error or no-frame condition, the SDK will also
|
||||||
|
* attempt to fetch device and driver status (with throttling to avoid excessive device communication).
|
||||||
|
*
|
||||||
|
* @param[in] pipeline The pipeline object
|
||||||
|
* @param[out] error Pointer to an error object that will be set if an error occurs.
|
||||||
|
*
|
||||||
|
* @return ob_pipeline_status Pipeline status reflecting events observed since the previous call.
|
||||||
|
*/
|
||||||
|
OB_EXPORT ob_pipeline_status ob_pipeline_get_status(ob_pipeline *pipeline, ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Enable pipeline health monitor with periodic status polling.
|
||||||
|
*
|
||||||
|
* @note When enabled, an internal polling thread will periodically check the pipeline status (including SDK frame
|
||||||
|
* drops, device error state, and driver status). If any abnormal status is detected, the callback will be
|
||||||
|
* invoked. The callback is invoked from an internal thread; avoid blocking operations in the callback.
|
||||||
|
*
|
||||||
|
* @param[in] pipeline The pipeline object
|
||||||
|
* @param[in] callback The callback function to be invoked when abnormal status is detected
|
||||||
|
* @param[in] user_data User-defined data passed to the callback
|
||||||
|
* @param[in] interval_ms Polling interval in milliseconds (recommended: 3000-5000)
|
||||||
|
* @param[out] error Pointer to an error object that will be set if an error occurs.
|
||||||
|
*/
|
||||||
|
OB_EXPORT void ob_pipeline_enable_health_monitor(ob_pipeline *pipeline, ob_pipeline_status_callback callback, void *user_data, uint32_t interval_ms,
|
||||||
|
ob_error **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Disable pipeline health monitor.
|
||||||
|
*
|
||||||
|
* @param[in] pipeline The pipeline object
|
||||||
|
* @param[out] error Pointer to an error object that will be set if an error occurs.
|
||||||
|
*/
|
||||||
|
OB_EXPORT void ob_pipeline_disable_health_monitor(ob_pipeline *pipeline, ob_error **error);
|
||||||
|
|
||||||
// The following interfaces are deprecated and are retained here for compatibility purposes.
|
// The following interfaces are deprecated and are retained here for compatibility purposes.
|
||||||
#define ob_config_set_depth_scale_require ob_config_set_depth_scale_after_align_require
|
#define ob_config_set_depth_scale_require ob_config_set_depth_scale_after_align_require
|
||||||
|
|
||||||
|
|||||||
@@ -236,7 +236,7 @@ typedef enum {
|
|||||||
OB_PROP_DEVICE_COMMUNICATION_TYPE_INT = 97,
|
OB_PROP_DEVICE_COMMUNICATION_TYPE_INT = 97,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Switch infrared imaging mode, 0: active IR mode, 1: passive IR mode
|
* @brief Switch infrared imaging mode, 0: positive IR mode, 1: passive IR mode
|
||||||
*/
|
*/
|
||||||
OB_PROP_SWITCH_IR_MODE_INT = 98,
|
OB_PROP_SWITCH_IR_MODE_INT = 98,
|
||||||
|
|
||||||
@@ -612,6 +612,8 @@ typedef enum {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief LLA (Link Local Address) switch
|
* @brief LLA (Link Local Address) switch
|
||||||
|
*
|
||||||
|
* @deprecated The property is deprecated
|
||||||
*/
|
*/
|
||||||
OB_PROP_DEVICE_NETWORK_LLA_BOOL = 257,
|
OB_PROP_DEVICE_NETWORK_LLA_BOOL = 257,
|
||||||
|
|
||||||
@@ -620,6 +622,22 @@ typedef enum {
|
|||||||
*/
|
*/
|
||||||
OB_PROP_COLOR_ANTI_FLICKER_BOOL = 259,
|
OB_PROP_COLOR_ANTI_FLICKER_BOOL = 259,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Device IP mode
|
||||||
|
* @param value
|
||||||
|
* - 0: AMR Sensor Mode.
|
||||||
|
* Typically configured for ehternet interface sensors for AMRs.
|
||||||
|
* When DHCP is enabled and the device fails to obtain a valid IP address, it falls back to Persistent IP.
|
||||||
|
* If neither of Persistent IP and DHCP is specified, Persistent IP is enabled by default.
|
||||||
|
*
|
||||||
|
* - 1: Industrial Sensor Mode.
|
||||||
|
* Typically configured for ehternet interface sensors for industrial applications.
|
||||||
|
* When DHCP is enabled and the device fails to obtain a valid IP address, it falls back to LLA (Link-Local Address).
|
||||||
|
* If Persistent IP and DHCP are both enabled, the sensor starts with the attemp to used the specified persistent IP
|
||||||
|
* and falls back to DHCP if Persistent IP fails.
|
||||||
|
*/
|
||||||
|
OB_PROP_DEVICE_IP_MODE_INT = 260,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Baseline calibration parameters
|
* @brief Baseline calibration parameters
|
||||||
*/
|
*/
|
||||||
@@ -657,6 +675,7 @@ typedef enum {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Device IP address configuration
|
* @brief Device IP address configuration
|
||||||
|
* @see OBNetIpConfig
|
||||||
*/
|
*/
|
||||||
OB_STRUCT_DEVICE_IP_ADDR_CONFIG = 1041,
|
OB_STRUCT_DEVICE_IP_ADDR_CONFIG = 1041,
|
||||||
|
|
||||||
@@ -673,6 +692,7 @@ typedef enum {
|
|||||||
/**
|
/**
|
||||||
* @brief Device network static ip config record
|
* @brief Device network static ip config record
|
||||||
* @brief Using for get last static ip config, witch is record in device flash when user set static ip config
|
* @brief Using for get last static ip config, witch is record in device flash when user set static ip config
|
||||||
|
* @see OBNetIpConfig
|
||||||
*
|
*
|
||||||
* @attention read only
|
* @attention read only
|
||||||
*/
|
*/
|
||||||
@@ -719,6 +739,12 @@ typedef enum {
|
|||||||
*/
|
*/
|
||||||
OB_STRUCT_COLOR_SYNCED_EXPOSURE_PARAM = 1077,
|
OB_STRUCT_COLOR_SYNCED_EXPOSURE_PARAM = 1077,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Device IP address configuration v2
|
||||||
|
* @see OBNetIpConfigV2
|
||||||
|
*/
|
||||||
|
OB_STRUCT_DEVICE_IP_ADDR_CONFIG_V2 = 1088,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Color camera auto exposure
|
* @brief Color camera auto exposure
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ private:
|
|||||||
*/
|
*/
|
||||||
explicit Error(ob_error *error) : impl_(error) {};
|
explicit Error(ob_error *error) : impl_(error) {};
|
||||||
|
|
||||||
Error& operator=(const Error&) = default;
|
Error &operator=(const Error &) = default;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
@@ -106,6 +106,15 @@ public:
|
|||||||
return impl_->message;
|
return impl_->message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns the error status code of the exception.
|
||||||
|
*
|
||||||
|
* @return OBStatus The error status code.
|
||||||
|
*/
|
||||||
|
OBStatus getStatus() const noexcept {
|
||||||
|
return impl_->status;
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// The following interfaces are deprecated and are retained here for compatibility purposes.
|
// The following interfaces are deprecated and are retained here for compatibility purposes.
|
||||||
const char *getName() const noexcept {
|
const char *getName() const noexcept {
|
||||||
@@ -113,4 +122,3 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace ob
|
} // namespace ob
|
||||||
|
|
||||||
|
|||||||
@@ -289,8 +289,9 @@ public:
|
|||||||
typedef std::function<void(std::shared_ptr<FrameSet> frame)> FrameSetCallback;
|
typedef std::function<void(std::shared_ptr<FrameSet> frame)> FrameSetCallback;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ob_pipeline_t *impl_;
|
ob_pipeline_t *impl_;
|
||||||
FrameSetCallback callback_;
|
FrameSetCallback callback_;
|
||||||
|
std::function<void(OBPipelineStatus status)> statusCallback_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
@@ -354,6 +355,13 @@ public:
|
|||||||
pipeline->callback_(std::make_shared<FrameSet>(frameSet));
|
pipeline->callback_(std::make_shared<FrameSet>(frameSet));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void healthMonitorCallback(ob_pipeline_status status, void *userData) {
|
||||||
|
auto pipeline = static_cast<Pipeline *>(userData);
|
||||||
|
if(pipeline->statusCallback_) {
|
||||||
|
pipeline->statusCallback_(status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Stop the pipeline
|
* @brief Stop the pipeline
|
||||||
*/
|
*/
|
||||||
@@ -454,6 +462,40 @@ public:
|
|||||||
Error::handle(&error);
|
Error::handle(&error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the current pipeline status observed during streaming.
|
||||||
|
*
|
||||||
|
* @return OBPipelineStatus The accumulated status since the last call or pipeline start. Status is reset after each call.
|
||||||
|
*/
|
||||||
|
OBPipelineStatus getStatus() const {
|
||||||
|
ob_error *error = nullptr;
|
||||||
|
OBPipelineStatus status = ob_pipeline_get_status(impl_, &error);
|
||||||
|
Error::handle(&error);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Enable pipeline health monitor with periodic status polling.
|
||||||
|
*
|
||||||
|
* @param[in] callback The callback function invoked when abnormal status is detected (from internal thread, avoid blocking).
|
||||||
|
* @param[in] intervalMs Polling interval in milliseconds (recommended: 3000-5000, default: 3000).
|
||||||
|
*/
|
||||||
|
void enableHealthMonitor(std::function<void(OBPipelineStatus status)> callback, uint32_t intervalMs = 3000) {
|
||||||
|
statusCallback_ = callback;
|
||||||
|
ob_error *error = nullptr;
|
||||||
|
ob_pipeline_enable_health_monitor(impl_, &Pipeline::healthMonitorCallback, this, intervalMs, &error);
|
||||||
|
Error::handle(&error);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Disable pipeline health monitor.
|
||||||
|
*/
|
||||||
|
void disableHealthMonitor() const {
|
||||||
|
ob_error *error = nullptr;
|
||||||
|
ob_pipeline_disable_health_monitor(impl_, &error);
|
||||||
|
Error::handle(&error);
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// The following interfaces are deprecated and are retained here for compatibility purposes.
|
// The following interfaces are deprecated and are retained here for compatibility purposes.
|
||||||
|
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
|
|||||||
# Import target "ob::OrbbecSDK" for configuration "Release"
|
# Import target "ob::OrbbecSDK" for configuration "Release"
|
||||||
set_property(TARGET ob::OrbbecSDK APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
set_property(TARGET ob::OrbbecSDK APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
set_target_properties(ob::OrbbecSDK PROPERTIES
|
set_target_properties(ob::OrbbecSDK PROPERTIES
|
||||||
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.8.0"
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.8.1"
|
||||||
IMPORTED_SONAME_RELEASE "libOrbbecSDK.so.2"
|
IMPORTED_SONAME_RELEASE "libOrbbecSDK.so.2"
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND _cmake_import_check_targets ob::OrbbecSDK )
|
list(APPEND _cmake_import_check_targets ob::OrbbecSDK )
|
||||||
list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.8.0" )
|
list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.8.1" )
|
||||||
|
|
||||||
# Commands beyond this point should not need to know the version.
|
# Commands beyond this point should not need to know the version.
|
||||||
set(CMAKE_IMPORT_FILE_VERSION)
|
set(CMAKE_IMPORT_FILE_VERSION)
|
||||||
|
|||||||
@@ -9,19 +9,19 @@
|
|||||||
# The variable CVF_VERSION must be set before calling configure_file().
|
# The variable CVF_VERSION must be set before calling configure_file().
|
||||||
|
|
||||||
|
|
||||||
set(PACKAGE_VERSION "2.8.0")
|
set(PACKAGE_VERSION "2.8.1")
|
||||||
|
|
||||||
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
|
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
|
||||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||||
else()
|
else()
|
||||||
|
|
||||||
if("2.8.0" MATCHES "^([0-9]+)\\.")
|
if("2.8.1" MATCHES "^([0-9]+)\\.")
|
||||||
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
||||||
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
|
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
|
||||||
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
|
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
set(CVF_VERSION_MAJOR "2.8.0")
|
set(CVF_VERSION_MAJOR "2.8.1")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PACKAGE_FIND_VERSION_RANGE)
|
if(PACKAGE_FIND_VERSION_RANGE)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
libOrbbecSDK.so.2.8.0
|
libOrbbecSDK.so.2.8.1
|
||||||
BIN
Binary file not shown.
@@ -8,12 +8,12 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
|
|||||||
# Import target "ob::OrbbecSDK" for configuration "Release"
|
# Import target "ob::OrbbecSDK" for configuration "Release"
|
||||||
set_property(TARGET ob::OrbbecSDK APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
set_property(TARGET ob::OrbbecSDK APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
set_target_properties(ob::OrbbecSDK PROPERTIES
|
set_target_properties(ob::OrbbecSDK PROPERTIES
|
||||||
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.8.0"
|
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.8.1"
|
||||||
IMPORTED_SONAME_RELEASE "libOrbbecSDK.so.2"
|
IMPORTED_SONAME_RELEASE "libOrbbecSDK.so.2"
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND _cmake_import_check_targets ob::OrbbecSDK )
|
list(APPEND _cmake_import_check_targets ob::OrbbecSDK )
|
||||||
list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.8.0" )
|
list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.8.1" )
|
||||||
|
|
||||||
# Commands beyond this point should not need to know the version.
|
# Commands beyond this point should not need to know the version.
|
||||||
set(CMAKE_IMPORT_FILE_VERSION)
|
set(CMAKE_IMPORT_FILE_VERSION)
|
||||||
|
|||||||
@@ -9,19 +9,19 @@
|
|||||||
# The variable CVF_VERSION must be set before calling configure_file().
|
# The variable CVF_VERSION must be set before calling configure_file().
|
||||||
|
|
||||||
|
|
||||||
set(PACKAGE_VERSION "2.8.0")
|
set(PACKAGE_VERSION "2.8.1")
|
||||||
|
|
||||||
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
|
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
|
||||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||||
else()
|
else()
|
||||||
|
|
||||||
if("2.8.0" MATCHES "^([0-9]+)\\.")
|
if("2.8.1" MATCHES "^([0-9]+)\\.")
|
||||||
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
||||||
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
|
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
|
||||||
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
|
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
set(CVF_VERSION_MAJOR "2.8.0")
|
set(CVF_VERSION_MAJOR "2.8.1")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PACKAGE_FIND_VERSION_RANGE)
|
if(PACKAGE_FIND_VERSION_RANGE)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
libOrbbecSDK.so.2.8.0
|
libOrbbecSDK.so.2.8.1
|
||||||
BIN
Binary file not shown.
Reference in New Issue
Block a user