update OrbbecSDK version to 2.7.7

This commit is contained in:
ob-yalian
2026-03-16 15:33:56 +08:00
parent e2ae1540b9
commit ae3480c2a2
20 changed files with 174 additions and 13 deletions
@@ -81,6 +81,29 @@ OB_EXPORT void ob_enable_net_device_enumeration(ob_context *context, bool enable
*/
OB_EXPORT bool ob_force_ip_config(const char *macAddress, ob_net_ip_config config, ob_error **error);
/**
* @brief Set the GVCP port scheme used for network device discovery and control.
*
* @param[in] context Pointer to the context object.
* @param[in] scheme Target GVCP port scheme.
* Return error if the specified scheme is invalid or unsupported.
* @param[out] error Pointer to an error object that will be populated if an error occurs.
*
* @note This change affects only the current session and is not persisted.
* @note Switching to a different scheme will force disconnection of all currently connected network devices.
*/
OB_EXPORT void ob_set_gvcp_port_scheme(ob_context *context, ob_gvcp_port_scheme scheme, ob_error **error);
/**
* @brief Get the current GVCP port scheme.
*
* @param[in] context Pointer to the context object
* @param[out] error Pointer to an error object that will be populated if an error occurs.
*
* @return Current GVCP port scheme.
*/
OB_EXPORT ob_gvcp_port_scheme ob_get_gvcp_port_scheme(ob_context *context, ob_error **error);
/**
* @brief Create a network device object
*
@@ -110,7 +133,7 @@ OB_EXPORT ob_device *ob_create_net_device_ex(ob_context *context, const char *ad
/**
* @brief Set a device plug-in callback function
*
*
* @deprecated This function is deprecated. Please use ob_register_device_changed_callback() instead.
*
* @attention The added and removed device lists returned through the callback interface need to be released manually
@@ -701,6 +701,34 @@ OB_EXPORT uint8_t ob_device_list_get_device_local_subnet_length(const ob_device_
*/
OB_EXPORT const char *ob_device_list_get_device_local_gateway(const ob_device_list *list, uint32_t index, ob_error **error);
/**
* @brief Get the name of the host network interface corresponding to the device.
*
* @attention Primarily for network devices. Returns "unknown" for USB or other non-network devices.
*
* @param[in] list Device list object.
* @param[in] index Device index.
* @param[out] error Pointer to an error object that will be set if an error occurs.
*
* @return const char* The host network interface name (e.g., "eth0", "en0"). Returns "unknown" for non-network devices.
*/
OB_EXPORT const char *ob_device_list_get_device_local_net_if_name(const ob_device_list *list, uint32_t index, ob_error **error);
/**
* @brief Get the current GVCP IP configuration status of the device at the specified index.
*
* @attention This function is valid primarily for Ethernet Vision devices.
* For non-Ethernet devices (e.g., USB), it will return OB_IP_SOURCE_NONE.
*
* @param[in] list The device list object.
* @param[in] index The index of the device in the list.
* @param[out] error Pointer to an error object that will be set if an error occurs.
*
* @return The active IP configuration mode (e.g., DHCP, LLA, Persistent IP).
* Returns OB_IP_SOURCE_NONE if the device is not a Ethernet device.
*/
OB_EXPORT ob_ip_source_type ob_device_list_get_device_ip_source_type(const ob_device_list *list, uint32_t index, ob_error **error);
/**
* @brief Create a device.
*
@@ -124,6 +124,15 @@ typedef struct ob_error {
ob_exception_type exception_type; ///< The description is the specific error type of the SDK
} ob_error;
/**
* @brief GVCP port scheme
*/
typedef enum {
OB_GVCP_PORT_SCHEME_STANDARD = 0, /**< Standard GVCP port (3956) */
OB_GVCP_PORT_SCHEME_B = 1, /**< Vendor-defined GVCP port scheme */
} OBGvcpPortScheme,
ob_gvcp_port_scheme;
/**
* @brief Enumeration value describing the sensor type
*/
@@ -1861,6 +1870,14 @@ typedef enum {
} ob_device_access_mode,
OBDeviceAccessMode;
typedef enum {
OB_IP_SOURCE_NONE = 0, ///< No IP configuration active (e.g. USB device).
OB_IP_SOURCE_LLA = 1, ///< LLA (Link-Local Address / Auto IP).
OB_IP_SOURCE_DHCP = 2, ///< DHCP (Dynamic Host Configuration Protocol).
OB_IP_SOURCE_PERSISTENT = 3, ///< Persistent IP (Static IP stored in memory).
} ob_ip_source_type,
OBIpSourceType;
/**
* @brief Callback for file transfer
*
@@ -130,6 +130,33 @@ public:
return res;
}
/**
* @brief Set the GVCP port scheme used for network device discovery and control.
*
* @param[in] scheme Target GVCP port scheme.
* Thrown exception if the specified scheme is invalid or unsupported.
*
* @note This change affects only the current session and is not persisted.
* @note Switching to a different scheme will force disconnection of all currently connected network devices.
*/
void setGvcpPortScheme(OBGvcpPortScheme scheme) {
ob_error *error = nullptr;
ob_set_gvcp_port_scheme(impl_, scheme, &error);
Error::handle(&error);
}
/**
* @brief Get the current GVCP port scheme.
*
* @return Current GVCP port scheme.
*/
OBGvcpPortScheme getGvcpPortScheme() const {
ob_error *error = nullptr;
auto scheme = ob_get_gvcp_port_scheme(impl_, &error);
Error::handle(&error);
return scheme;
}
/**
* @brief Creates a network device with the specified IP address and port.
*
@@ -1351,6 +1351,38 @@ public:
return gateway;
}
/**
* @brief Get the name of the host network interface corresponding to the device at the specified index.
*
* @attention Returns "unknown" for USB devices or non-network devices.
*
* @param[in] index The index of the device.
*
* @return const char* The host network interface name (e.g., "eth0", "en0").
*/
const char* getLocalNetInterfaceName(uint32_t index) const {
ob_error *error = nullptr;
auto netItfName = ob_device_list_get_device_local_net_if_name(impl_, index, &error);
Error::handle(&error);
return netItfName;
}
/**
* @brief Get the current IP configuration mode of the device at the specified index.
*
* @attention Only valid for Ethernet devices, otherwise it will return OB_IP_SOURCE_NONE.
*
* @param[in] index The index of the device.
*
* @return OBCurIpConfig The active IP configuration mode (e.g. DHCP, LLA, or Persistent IP).
*/
OBIpSourceType getIpSourceType(uint32_t index) const {
ob_error *error = nullptr;
auto ipSrcType = ob_device_list_get_device_ip_source_type(impl_, index, &error);
Error::handle(&error);
return ipSrcType;
}
/**
* @brief Get the device object at the specified index
*
@@ -8,12 +8,12 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
# Import target "ob::OrbbecSDK" for configuration "Release"
set_property(TARGET ob::OrbbecSDK APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(ob::OrbbecSDK PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.7.6"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.7.7"
IMPORTED_SONAME_RELEASE "libOrbbecSDK.so.2"
)
list(APPEND _cmake_import_check_targets ob::OrbbecSDK )
list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.7.6" )
list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.7.7" )
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
@@ -9,19 +9,19 @@
# The variable CVF_VERSION must be set before calling configure_file().
set(PACKAGE_VERSION "2.7.6")
set(PACKAGE_VERSION "2.7.7")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
if("2.7.6" MATCHES "^([0-9]+)\\.")
if("2.7.7" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
endif()
else()
set(CVF_VERSION_MAJOR "2.7.6")
set(CVF_VERSION_MAJOR "2.7.7")
endif()
if(PACKAGE_FIND_VERSION_RANGE)
@@ -1 +1 @@
libOrbbecSDK.so.2.7.6
libOrbbecSDK.so.2.7.7
@@ -8,12 +8,12 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
# Import target "ob::OrbbecSDK" for configuration "Release"
set_property(TARGET ob::OrbbecSDK APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(ob::OrbbecSDK PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.7.6"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.7.7"
IMPORTED_SONAME_RELEASE "libOrbbecSDK.so.2"
)
list(APPEND _cmake_import_check_targets ob::OrbbecSDK )
list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.7.6" )
list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.7.7" )
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
@@ -9,19 +9,19 @@
# The variable CVF_VERSION must be set before calling configure_file().
set(PACKAGE_VERSION "2.7.6")
set(PACKAGE_VERSION "2.7.7")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
if("2.7.6" MATCHES "^([0-9]+)\\.")
if("2.7.7" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
endif()
else()
set(CVF_VERSION_MAJOR "2.7.6")
set(CVF_VERSION_MAJOR "2.7.7")
endif()
if(PACKAGE_FIND_VERSION_RANGE)
+1 -1
View File
@@ -1 +1 @@
libOrbbecSDK.so.2.7.6
libOrbbecSDK.so.2.7.7
@@ -223,6 +223,40 @@
<FPS>30</FPS>
<Format>YUYV</Format>
</Color>
<LeftColor>
<!-- Number of retries for open stream failures, 0 means no retries -->
<StreamFailedRetry>1</StreamFailedRetry>
<!-- Open flow waits for the timeout period of the first frame of data, after which
the open flow will fail -->
<MaxStartStreamDelayMs>3000</MaxStartStreamDelayMs>
<!-- The maximum frame interval time, if this value is exceeded, it will be judged
that the stream is interrupted -->
<MaxFrameIntervalMs>3000</MaxFrameIntervalMs>
<!-- The resolution width is enabled by default, int type -->
<Width>1280</Width>
<!-- High resolution is enabled by default, int type -->
<Height>800</Height>
<!-- The frame rate of the resolution enabled by default, int type -->
<FPS>30</FPS>
<Format>YUYV</Format>
</LeftColor>
<RightColor>
<!-- Number of retries for open stream failures, 0 means no retries -->
<StreamFailedRetry>1</StreamFailedRetry>
<!-- Open flow waits for the timeout period of the first frame of data, after which
the open flow will fail -->
<MaxStartStreamDelayMs>3000</MaxStartStreamDelayMs>
<!-- The maximum frame interval time, if this value is exceeded, it will be judged
that the stream is interrupted -->
<MaxFrameIntervalMs>3000</MaxFrameIntervalMs>
<!-- The resolution width is enabled by default, int type -->
<Width>1280</Width>
<!-- High resolution is enabled by default, int type -->
<Height>800</Height>
<!-- The frame rate of the resolution enabled by default, int type -->
<FPS>30</FPS>
<Format>YUYV</Format>
</RightColor>
<LeftIR>
<!-- The resolution width is enabled by default, int type -->
<Width>848</Width>