fast/3rdparty/hikvision/rgbd_camera/inc/Mv3dRgbdApi.h
2025-01-20 10:30:01 +08:00

489 lines
26 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _MV3D_RGBD_API_H_
#define _MV3D_RGBD_API_H_
#include "Mv3dRgbdDefine.h"
#ifdef __cplusplus
extern "C" {
#endif
/*************************************************************************
* @~chinese
* @brief 获取SDK版本号
* @param pstVersion [OUT] 版本信息
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief Get SDK Version
* @param pstVersion [OUT] version info
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetSDKVersion(MV3D_RGBD_VERSION_INFO* pstVersion);
/************************************************************************
* @~chinese
* @brief SDK运行环境初始化
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief SDK run environment initialization
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_Initialize();
/************************************************************************
* @~chinese
* @brief SDK运行环境释放
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief SDK run environment release
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_Release();
/************************************************************************
* @~chinese
* @brief 获取当前环境中设备数量
* @param nDeviceType [IN] 设备类型,见Mv3dRgbdDeviceType,可全部获取(DeviceType_Ethernet | DeviceType_USB | DeviceType_Ethernet_Vir | DeviceType_USB_Vir)
* @param pDeviceNumber [OUT] 设备数量
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief gets the number of devices in the current environment
* @param nDeviceType [IN] device typerefer to Mv3dRgbdDeviceTypeget all(DeviceType_Ethernet | DeviceType_USB | DeviceType_Ethernet_Vir | DeviceType_USB_Vir)
* @param pDeviceNumber [OUT] device number
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetDeviceNumber(uint32_t nDeviceType, uint32_t* pDeviceNumber);
/************************************************************************
* @~chinese
* @brief 获取设备列表
* @param nDeviceType [IN] 设备类型,见Mv3dRgbdDeviceType,可全部获取(DeviceType_Ethernet | DeviceType_USB | DeviceType_Ethernet_Vir | DeviceType_USB_Vir)
* @param pstDeviceInfos [IN OUT] 设备列表
* @param nMaxDeviceCount [IN] 设备列表缓存最大个数
* @param pDeviceCount [OUT] 填充列表中设备个数
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief gets 3D cameras list
* @param nDeviceType [IN] device typerefer to Mv3dRgbdDeviceTypeget all(DeviceType_Ethernet | DeviceType_USB | DeviceType_Ethernet_Vir | DeviceType_USB_Vir)
* @param pstDeviceInfos [IN OUT] devices list
* @param nMaxDeviceCount [IN] max number of device list caches
* @param pDeviceCount [OUT] number of devices in the fill list
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetDeviceList(uint32_t nDeviceType, MV3D_RGBD_DEVICE_INFO* pstDeviceInfos, uint32_t nMaxDeviceCount, uint32_t* pDeviceCount);
/************************************************************************
* @~chinese
* @brief 打开设备
* @param handle [IN OUT] 相机句柄
* @param pstDeviceInfo [IN] 枚举的设备信息,默认为空,打开第一个相机
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @remark 设置工作模式为深度图模式图片模式为深度图并打开RGB Chunk
* @~english
* @brief open device
* @param handle [IN OUT] camera handle
* @param pstDeviceInfo [IN] enum camera info. the default is null, open first camera
* @return Success, return MV3D_RGBD_OK. Failure, return error code
* @remark Set working mode to depth, image mode to depth, and open RGB Chunk
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_OpenDevice(HANDLE *handle, MV3D_RGBD_DEVICE_INFO* pstDeviceInfo = NULL);
/************************************************************************
* @~chinese
* @brief 通过设备自定义名称打开设备
* @param handle [IN OUT] 相机句柄
* @param chDeviceName [IN] 设备用户自定义名称
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @remark 设置工作模式为深度图模式图片模式为深度图并打开RGB Chunk
* @~english
* @brief open device by device user defined name
* @param handle [IN OUT] camera handle
* @param chDeviceName [IN] device user defined name
* @return Success, return MV3D_RGBD_OK. Failure, return error code
* @remark Set working mode to depth, image mode to depth, and open RGB Chunk
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_OpenDeviceByName(HANDLE *handle, const char* chDeviceName);
/************************************************************************
* @~chinese
* @brief 通过序列号打开设备
* @param handle [IN OUT] 相机句柄
* @param chSerialNumber [IN] 序列号
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @remark 设置工作模式为深度图模式图片模式为深度图并打开RGB Chunk
* @~english
* @brief open device by serial number
* @param handle [IN OUT] camera handle
* @param chSerialNumber [IN] serial number
* @return Success, return MV3D_RGBD_OK. Failure, return error code
* @remark Set working mode to depth, image mode to depth, and open RGB Chunk
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_OpenDeviceBySerialNumber(HANDLE *handle, const char* chSerialNumber);
/************************************************************************
* @~chinese
* @brief 通过IP打开设备,仅网口设备有效
* @param handle [IN OUT] 相机句柄
* @param chIP [IN] IP地址
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @remark 设置工作模式为深度图模式图片模式为深度图并打开RGB Chunk
* @~english
* @brief open device by iponly network device is valid
* @param handle [IN OUT] camera handle
* @param chIP [IN] IP
* @return Success, return MV3D_RGBD_OK. Failure, return error code
* @remark Set working mode to depth, image mode to depth, and open RGB Chunk
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_OpenDeviceByIp(HANDLE *handle, const char* chIP);
/************************************************************************
* @~chinese
* @brief 关闭设备
* @param handle [IN] 相机句柄
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief close Device
* @param handle [IN] camera handle
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_CloseDevice(HANDLE *handle);
/************************************************************************
* @~chinese
* @brief 获取当前设备的详细信息
* @param handle [IN] 相机句柄
* @param pstDevInfo [IN][OUT] 返回给调用者有关相机设备信息结构体指针
* @return 成功,MV3D_RGBD_OK,失败,返回错误码
* @~english
* @brief get current device information
* @param handle [IN] camera handle
* @param pstDevInfo [IN][OUT] structure pointer of device information
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetDeviceInfo(HANDLE handle, MV3D_RGBD_DEVICE_INFO* pstDevInfo);
/************************************************************************
* @~chinese
* @brief 配置IP,仅网口设备有效
* @param chSerialNumber [IN] 序列号
* @param pstIPConfig [IN] IP配置静态IPDHCP等
* @return 成功,MV3D_RGBD_OK,失败,返回错误码
* @~english
* @brief ip configurationonly network device is valid
* @param chSerialNumber [IN] serial number
* @param pstIPConfig [IN] IP Config, Static IPDHCP
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SetIpConfig(const char* chSerialNumber, MV3D_RGBD_IP_CONFIG* pstIPConfig);
/***********************************************************************
* @~chinese
* @brief 注册图像数据回调
* @param handle [IN] 相机句柄
* @param cbOutput [IN] 回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @remark 当传入的用户自定义变量为NULL时,取消回调注册
* @~english
* @brief register image data callback
* @param handle [IN] camera handle
* @param cbOutput [IN] callback function pointer
* @param pUser [IN] user defined variable
* @return Success, return MV3D_RGBD_OK. Failure, return error code
* @remark Cancel callback registration when pUser is NULL
***********************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_RegisterFrameCallBack(HANDLE handle, MV3D_RGBD_FrameDataCallBack cbOutput, void* pUser);
/************************************************************************
* @~chinese
* @brief 注册异常消息回调
* @param handle [IN] 相机句柄
* @param cbException [IN] 异常回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 见返回错误码
* @~english
* @brief register exception message callBack
* @param handle: [IN] camera handle
* @param cbException [IN] exception message callback function pointer
* @param pUser [IN] user defined variable
* @return Refer to error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_RegisterExceptionCallBack(HANDLE handle, MV3D_RGBD_ExceptionCallBack cbException, void* pUser);
/************************************************************************
* @~chinese
* @brief 开始取流前获取数据流配置列表
* @param handle [IN] 相机句柄
* @param pstStreamCfgList [IN][OUT] 返回给调用者数据流配置列表指针
* @return 成功,MV3D_RGBD_OK,失败,返回错误码
* @~english
* @brief get stream cfg list before start working
* @param handle [IN] camera handle
* @param pstStreamCfgList [IN][OUT] structure pointer of stream cfg list
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetStreamCfgList(HANDLE handle, MV3D_RGBD_STREAM_CFG_LIST* pstStreamCfgList);
/***********************************************************************
* @~chinese
* @brief 开始工作
* @param handle [IN] 相机句柄
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief start working
* @param handle [IN] camera handle
* @return Success, return MV3D_RGBD_OK. Failure, return error code
***********************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_Start(HANDLE handle);
/***********************************************************************
* @~chinese
* @brief 停止工作
* @param handle [IN] 相机句柄
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief stop working
* @param handle [IN] camera handle
* @return Success, return MV3D_RGBD_OK. Failure, return error code
***********************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_Stop(HANDLE handle);
/************************************************************************
* @~chinese
* @brief 轮询方式获取帧数据
* @param handle [IN] 相机句柄
* @param pstFrameData [IN][OUT] 数据指针
* @param nTimeOut [IN] 超时时间(ms)
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief fetch frame data
* @param handle [IN] camera handle
* @param pstFrameData [IN] data set pointer
* @param nTimeOut [IN] timevalue(ms)
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_FetchFrame(HANDLE handle, MV3D_RGBD_FRAME_DATA* pstFrameData, uint32_t nTimeOut);
/************************************************************************
* @~chinese
* @brief 执行设备软触发
* @param handle [IN] 相机句柄
* @return 成功,返回MV3D_RGBD_OK,失败,返回错误码
* @remark 设置触发模式为打开,设置触发源为软触发并执行
* @~english
* @brief execute camera soft trigger
* @param handle [IN] camera handle
* @return Success, return MV3D_RGBD_OK. Failure, return error code
* @remark Set trigger mode to open, trigger source to software, and excute soft trigger
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SoftTrigger(HANDLE handle);
/************************************************************************
* @~chinese
* @brief 执行设备Command命令
* @param handle [IN] 相机句柄
* @param strKey [IN] 属性键值
* @return 成功,返回MV3D_RGBD_OK,失败,返回错误码
* @~english
* @brief execute camera command
* @param handle [IN] camera handle
* @param strKey [IN] key value
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_Execute(HANDLE handle, const char* strKey);
/************************************************************************
* @~chinese
* @brief 获取相机当前标定信息
* @param handle [IN] 相机句柄
* @param nCoordinateType [IN] 坐标系类型见Mv3dRgbdCoordinateType
* @param pstCalibInfo [IN][OUT] 输出标定信息
* @return 成功,返回MV3D_RGBD_OK,失败,返回错误码
* @~english
* @brief get camera current calibration info
* @param handle [IN] camera handle
* @param nCoordinateType [IN] coordinate type, refer to Mv3dRgbdCoordinateType
* @param pstCalibInfo [IN][OUT] calibration info
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetCalibInfo(HANDLE handle, uint32_t nCoordinateType, MV3D_RGBD_CALIB_INFO* pstCalibInfo);
/************************************************************************
* @~chinese
* @brief 获取相机内外参信息
* @param handle [IN] 相机句柄
* @param pstCameraParam [IN][OUT] 输出相机内外参数信息
* @return 成功,返回MV3D_RGBD_OK,失败,返回错误码
* @~english
* @brief get camera intrinsic and extrinsic information
* @param handle [IN] camera handle
* @param pstCameraParam [IN][OUT] camera intrinsic and extrinsic Info
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetCameraParam(HANDLE handle, MV3D_RGBD_CAMERA_PARAM* pstCameraParam);
/************************************************************************
* @~chinese
* @brief 设备升级
* @param handle [IN] 相机句柄
* @param pFilePathName [IN] 文件名
* @return 成功,返回MV3D_RGBD_OK,失败,返回错误码
* @~english
* @brief device upgrade
* @param handle [IN] camera handle
* @param pFilePathName [IN] file name
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_LocalUpgrade(HANDLE handle, const char* pFilePathName);
/************************************************************************
* @~chinese
* @brief 获取升级进度
* @param handle [IN] 相机句柄
* @param pProcess [OUT] 进度接收地址
* @return 成功,返回MV3D_RGBD_OK,失败,返回错误码
* @~english
* @brief get upgrade progress
* @param handle [IN] camera handle
* @param pProcess [OUT] progress receiving address
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetUpgradeProcess(HANDLE handle, uint32_t* pProcess);
/************************************************************************
* @~chinese
* @brief 获取相机参数值
* @param handle [IN] 相机句柄
* @param strKey [IN] 属性键值
* @param pstParam [IN] 返回的相机参数结构体指针
* @return 成功,返回MV3D_RGBD_OK,失败,返回错误码
* @~english
* @brief get camera param value
* @param handle [IN] camera handle
* @param strKey [IN] key value
* @param pstParam [IN] structure pointer of camera param
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetParam(HANDLE handle, const char* strKey, MV3D_RGBD_PARAM* pstParam);
/************************************************************************
* @~chinese
* @brief 设置相机参数值
* @param handle [IN] 相机句柄
* @param strKey [IN] 属性键值
* @param pstParam [IN] 输入的相机参数结构体指针
* @return 成功,返回MV3D_RGBD_OK,失败,返回错误码
* @~english
* @brief set camera param value
* @param handle [IN] camera handle
* @param strKey [IN] key value
* @param pstParam [IN] structure pointer of camera param
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_SetParam(HANDLE handle, const char* strKey, MV3D_RGBD_PARAM* pstParam);
/************************************************************************
* @~chinese
* @brief 导出相机参数
* @param handle [IN] 相机句柄
* @param pOutFileName [IN] 导出文件名称
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief export camera param
* @param handle [IN] camera handle
* @param pOutFileName [IN] export file name
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_ExportAllParam(HANDLE handle, const char* pOutFileName);
/************************************************************************
* @~chinese
* @brief 导入相机参数
* @param handle [IN] 相机句柄
* @param pInFileName [IN] 导入文件名称
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief import camera param
* @param handle [IN] camera handle
* @param pInFileName [IN] import file name
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_ImportAllParam(HANDLE handle, const char* pInFileName);
/************************************************************************
* @~chinese
* @brief 从相机读取文件
* @param handle [IN] 句柄地址
* @param pstFileAccess [IN] 文件存取结构体
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief read the file from the camera
* @param handle [IN] camera handle
* @param pstFileAccess [IN] file access structure
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_FileAccessRead(void* handle, MV3D_RGBD_FILE_ACCESS* pstFileAccess);
/************************************************************************
* @~chinese
* @brief 将文件写入相机
* @param handle [IN] 句柄地址
* @param pstFileAccess [IN] 文件存取结构体
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief write the file to camera
* @param handle [IN] camera handle
* @param pstFileAccess [IN] file access structure
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_FileAccessWrite(void* handle, MV3D_RGBD_FILE_ACCESS* pstFileAccess);
/************************************************************************
* @~chinese
* @brief 获取文件存取的进度
* @param handle [IN] 句柄地址
* @param pstFileAccessProgress [IN] 文件存取进度结构体
* @return 成功返回MV3D_RGBD_OK错误返回错误码
* @~english
* @brief get file access progress
* @param handle [IN] camera handle
* @param pstFileAccessProgress [IN] file access progress structure
* @return Success, return MV3D_RGBD_OK. Failure, return error code
************************************************************************/
MV3D_RGBD_API MV3D_RGBD_STATUS MV3D_RGBD_GetFileAccessProgress(void* handle, MV3D_RGBD_FILE_ACCESS_PROGRESS* pstFileAccessProgress);
#ifdef __cplusplus
}
#endif
#endif // _MV3D_RGBD_API_H_