513 lines
42 KiB
C
513 lines
42 KiB
C
|
#ifndef _MV3D_RGBD_DEFINE_H_
|
|||
|
#define _MV3D_RGBD_DEFINE_H_
|
|||
|
|
|||
|
#ifndef MV3D_RGBD_API
|
|||
|
#if (defined (_WIN32) || defined(WIN64))
|
|||
|
#if defined(MV3D_RGBD_EXPORTS)
|
|||
|
#define MV3D_RGBD_API __declspec(dllexport)
|
|||
|
#else
|
|||
|
#define MV3D_RGBD_API __declspec(dllimport)
|
|||
|
#endif
|
|||
|
#else
|
|||
|
#ifndef __stdcall
|
|||
|
#define __stdcall
|
|||
|
#endif
|
|||
|
|
|||
|
#ifndef MV3D_RGBD_API
|
|||
|
#define MV3D_RGBD_API
|
|||
|
#endif
|
|||
|
#endif
|
|||
|
#endif
|
|||
|
|
|||
|
/****************************** ch: 摘要 | en: Instructions **********************************************/
|
|||
|
|
|||
|
/**
|
|||
|
* @~chinese
|
|||
|
* 该头文件主要包含6部分:
|
|||
|
* 1.跨平台定义
|
|||
|
* 2.状态码
|
|||
|
* 3.常量定义
|
|||
|
* 4.枚举
|
|||
|
* 5.数据结构体
|
|||
|
* 6.回调接口定义
|
|||
|
*
|
|||
|
* @~english
|
|||
|
* The document mainly consists of six parts:
|
|||
|
* 1.Cross Platform Definition
|
|||
|
* 2.Status Code
|
|||
|
* 3.Macro Definition
|
|||
|
* 4.Enumeration
|
|||
|
* 5.Data Structure
|
|||
|
* 6.Callback Interface Definition
|
|||
|
**/
|
|||
|
|
|||
|
|
|||
|
/***************************************** Part1 ch: 跨平台定义 | en: Cross Platform Definition **************************************************/
|
|||
|
|
|||
|
#ifdef WIN32
|
|||
|
typedef signed char int8_t;
|
|||
|
typedef short int16_t;
|
|||
|
typedef int int32_t;
|
|||
|
typedef long long int int64_t;
|
|||
|
typedef unsigned char uint8_t;
|
|||
|
typedef unsigned short uint16_t;
|
|||
|
typedef unsigned int uint32_t;
|
|||
|
typedef unsigned long long uint64_t;
|
|||
|
|
|||
|
#define MV3D_RGBD_UNDEFINED 0xFFFFFFFF
|
|||
|
#else
|
|||
|
#include <stdint.h>
|
|||
|
|
|||
|
#define MV3D_RGBD_UNDEFINED -1
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
/***************************************** Part2 ch: 状态码 | en: Status Code **************************************************/
|
|||
|
|
|||
|
/// \~chinese
|
|||
|
/// \name 正确码定义
|
|||
|
/// @{
|
|||
|
/// \~english
|
|||
|
/// \name Definition of correct code
|
|||
|
/// @{
|
|||
|
#define MV3D_RGBD_OK 0x00000000 ///< \~chinese 成功,无错误 \~english Successed, no error
|
|||
|
/// @}
|
|||
|
///
|
|||
|
/// \~chinese
|
|||
|
/// \name 通用错误码定义:范围0x80060000-0x800600FF
|
|||
|
/// @{
|
|||
|
/// \~english
|
|||
|
/// \name Definition of General Error Code (from 0x80060000 to 0x800600FF)
|
|||
|
/// @{
|
|||
|
#define MV3D_RGBD_E_HANDLE 0x80060000 ///< \~chinese 错误或无效的句柄 \~english Incorrect or invalid handle
|
|||
|
#define MV3D_RGBD_E_SUPPORT 0x80060001 ///< \~chinese 不支持的功能 \~english The function is not supported
|
|||
|
#define MV3D_RGBD_E_BUFOVER 0x80060002 ///< \~chinese 缓存已满 \~english The buffer is full
|
|||
|
#define MV3D_RGBD_E_CALLORDER 0x80060003 ///< \~chinese 函数调用顺序错误 \~english Incorrect calling sequence
|
|||
|
#define MV3D_RGBD_E_PARAMETER 0x80060004 ///< \~chinese 错误的参数 \~english Incorrect parameter
|
|||
|
#define MV3D_RGBD_E_RESOURCE 0x80060005 ///< \~chinese 资源申请失败 \~english Resource request failed
|
|||
|
#define MV3D_RGBD_E_NODATA 0x80060006 ///< \~chinese 无数据 \~english No data
|
|||
|
#define MV3D_RGBD_E_PRECONDITION 0x80060007 ///< \~chinese 前置条件有误,或运行环境已发生变化 \~english Incorrect precondition, or running environment has changed
|
|||
|
#define MV3D_RGBD_E_VERSION 0x80060008 ///< \~chinese 版本不匹配 \~english The version mismatched
|
|||
|
#define MV3D_RGBD_E_NOENOUGH_BUF 0x80060009 ///< \~chinese 传入的内存空间不足 \~english Insufficient memory
|
|||
|
#define MV3D_RGBD_E_ABNORMAL_IMAGE 0x8006000A ///< \~chinese 异常图像,可能是丢包导致图像不完整 \~english Abnormal image. Incomplete image caused by packet loss
|
|||
|
#define MV3D_RGBD_E_LOAD_LIBRARY 0x8006000B ///< \~chinese 动态导入DLL失败 \~english Failed to load the dynamic link library dynamically
|
|||
|
#define MV3D_RGBD_E_ALGORITHM 0x8006000C ///< \~chinese 算法错误 \~english Algorithm error
|
|||
|
#define MV3D_RGBD_E_DEVICE_OFFLINE 0x8006000D ///< \~chinese 设备离线 \~english The device is offline
|
|||
|
#define MV3D_RGBD_E_ACCESS_DENIED 0x8006000E ///< \~chinese 设备无访问权限 \~english No device access permission
|
|||
|
#define MV3D_RGBD_E_OUTOFRANGE 0x8006000F ///< \~chinese 值超出范围 \~english The value is out of range
|
|||
|
|
|||
|
#define MV3D_RGBD_E_UPG_FILE_MISMATCH 0x80060010 ///< \~chinese 升级固件不匹配 \~english The upgraded firmware does not match
|
|||
|
#define MV3D_RGBD_E_UPG_CONFLICT 0x80060012 ///< \~chinese 升级冲突 \~english The upgraded firmware conflict
|
|||
|
#define MV3D_RGBD_E_UPG_INNER_ERR 0x80060013 ///< \~chinese 升级时相机内部出现错误 \~english An error occurred inside the camera during the upgrade
|
|||
|
|
|||
|
#define MV3D_RGBD_E_INDUSTRY 0x80060020 ///< \~chinese 行业属性不匹配 \~english The industry attributes does not match
|
|||
|
#define MV3D_RGBD_E_NETWORK 0x80060021 ///< \~chinese 网络相关错误 \~english Network related error
|
|||
|
|
|||
|
#define MV3D_RGBD_E_UNKNOW 0x800600FF ///< \~chinese 未知的错误 \~english Unknown error
|
|||
|
/// @}
|
|||
|
|
|||
|
|
|||
|
/***************************************** Part3 ch: 常量定义 | en: Macro Definition **************************************************/
|
|||
|
|
|||
|
///< \~chinese 常量 \~english Constant
|
|||
|
#define MV3D_RGBD_MAX_IMAGE_COUNT 10 ///< \~chinese 最大图片个数 \~english The maximum number of images
|
|||
|
#define MV3D_RGBD_MAX_STRING_LENGTH 256 ///< \~chinese 最大字符串长度 \~english The maximum length of string
|
|||
|
#define MV3D_RGBD_MAX_PATH_LENGTH 256 ///< \~chinese 最大路径长度 \~english The maximum length of path
|
|||
|
#define MV3D_RGBD_MAX_ENUM_COUNT 16 ///< \~chinese 最大枚举数量 \~english The maximum number of enumerations
|
|||
|
|
|||
|
///< \~chinese 像素类型 \~english Pixel Type
|
|||
|
#define MV3D_RGBD_PIXEL_MONO 0x01000000 ///< \~chinese Mono像素格式 \~english Mono pixel format
|
|||
|
#define MV3D_RGBD_PIXEL_COLOR 0x02000000 ///< \~chinese Color像素格式 \~english Color pixel format
|
|||
|
#define MV3D_RGBD_PIXEL_CUSTOM 0x80000000 ///< \~chinese 自定义像素格式 \~english Custom pixel format
|
|||
|
#define MV3D_RGBD_PIXEL_BIT_COUNT(n) ((n) << 16) ///< \~chinese 像素格式 \~english Pixel format
|
|||
|
|
|||
|
///< \~chinese 属性常量定义 \~english Attribute Key Value Definition
|
|||
|
#define MV3D_RGBD_INT_WIDTH "Width" ///< \~chinese 图像宽 \~english Image width
|
|||
|
#define MV3D_RGBD_INT_HEIGHT "Height" ///< \~chinese 图像高 \~english Image height
|
|||
|
#define MV3D_RGBD_ENUM_WORKINGMODE "CameraWorkingMode" ///< \~chinese 工作模式 \~english The camera working mode
|
|||
|
#define MV3D_RGBD_ENUM_PIXELFORMAT "PixelFormat" ///< \~chinese 像素格式 \~english Pixel format
|
|||
|
#define MV3D_RGBD_ENUM_IMAGEMODE "ImageMode" ///< \~chinese 图像模式 \~english Image mode
|
|||
|
#define MV3D_RGBD_FLOAT_GAIN "Gain" ///< \~chinese 增益 \~english Gain
|
|||
|
#define MV3D_RGBD_FLOAT_EXPOSURETIME "ExposureTime" ///< \~chinese 曝光时间 \~english Exposure time
|
|||
|
#define MV3D_RGBD_FLOAT_FRAMERATE "AcquisitionFrameRate" ///< \~chinese 采集帧率 \~english Acquired frame rate
|
|||
|
#define MV3D_RGBD_ENUM_TRIGGERSELECTOR "TriggerSelector" ///< \~chinese 触发选择器 \~english Trigger selector
|
|||
|
#define MV3D_RGBD_ENUM_TRIGGERMODE "TriggerMode" ///< \~chinese 触发模式 \~english Trigger mode
|
|||
|
#define MV3D_RGBD_ENUM_TRIGGERSOURCE "TriggerSource" ///< \~chinese 触发源 \~english Trigger source
|
|||
|
#define MV3D_RGBD_FLOAT_TRIGGERDELAY "TriggerDelay" ///< \~chinese 触发延迟时间 \~english Trigger delay
|
|||
|
#define MV3D_RGBD_INT_IMAGEALIGN "ImageAlign" ///< \~chinese 深度图对齐到RGB坐标系(默认值1:对齐;0:不对齐),重启程序后恢复默认值
|
|||
|
///< \~english Whether to align the depth image with RGB image: 1 (align, default value), 0 (not align). The default value will be restored after rebooting
|
|||
|
#define MV3D_RGBD_BOOL_LASERENABLE "LaserEnable" ///< \~chinese 投射器使能 \~english Open or close laser control
|
|||
|
#define Mv3D_RGBD_FLOAT_BASEDISTANCE "BaseDistance" ///< \~chinese 左右目基线距 \~english Left and right eyes base distance
|
|||
|
#define MV3D_RGBD_ENUM_RESOLUTION "BinningSelector" ///< \~chinese 采集分辨率 \~english Acquisition resolution
|
|||
|
#define MV3D_RGBD_INT_OUTPUT_RGBD "OutputRgbd" ///< \~chinese RGBD图像输出(默认值0:不输出;1:输出),重启程序后恢复默认值
|
|||
|
///< \~english Whether to output rgbd image: 1 (not output, default value), 0 (output). The default value will be restored after rebooting
|
|||
|
#define MV3D_RGBD_INT_DEVICE_TIMEOUT "DeviceTimeout" ///< \~chinese 设备控制超时时间(ms) \~english Timeout period of device control (unit: ms)
|
|||
|
#define MV3D_RGBD_INT_IMAGE_NODE_NUM "ImageNodeNum" ///< \~chinese 图像缓存节点个数 \~english The number of image buffer node
|
|||
|
#define MV3D_RGBD_FLOAT_Z_UNIT "ZUnit" ///< \~chinese 深度图量纲(mm) \~english The dimension of depth image (unit: mm)
|
|||
|
|
|||
|
///< \~chinese 设备文件枚举常量定义 \~english File Constant Definition
|
|||
|
#define MV3D_RGBD_SENSOR_CALI "RGBDSensorCali" ///< \~chinese 相机传感器标定文件 \~english The calibration file of camera sensor
|
|||
|
#define MV3D_RGBD_HANDEYE_CALI "RGBDHandEyeCali" ///< \~chinese 相机手眼标定文件 \~english The camera hand-eye calibration file
|
|||
|
|
|||
|
///< \~chinese 类型定义 \~english Typedef Documentation
|
|||
|
typedef int32_t MV3D_RGBD_STATUS; ///< \~chinese 返回值类型 \~english Return value type
|
|||
|
typedef void* HANDLE; ///< \~chinese 句柄类型 \~english Handle type
|
|||
|
typedef int32_t BOOL; ///< \~chinese BOOL类型 \~english Boolean type
|
|||
|
|
|||
|
#ifndef TRUE
|
|||
|
#define TRUE 1
|
|||
|
#endif
|
|||
|
#ifndef FALSE
|
|||
|
#define FALSE 0
|
|||
|
#endif
|
|||
|
#ifndef NULL
|
|||
|
#define NULL 0
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
/***************************************** Part4 ch: 枚举 | en: Enumeration **************************************************/
|
|||
|
|
|||
|
///< \~chinese 设备类型 \~english Device Type
|
|||
|
typedef enum Mv3dRgbdDeviceType
|
|||
|
{
|
|||
|
DeviceType_Ethernet = 1 << 0, ///< \~chinese 网口设备 \~english Network type camera
|
|||
|
DeviceType_USB = 1 << 1, ///< \~chinese USB设备 \~english USB type camera
|
|||
|
DeviceType_Ethernet_Vir = 1 << 2, ///< \~chinese 虚拟网口设备 \~english Virtual network type camera
|
|||
|
DeviceType_USB_Vir = 1 << 3 ///< \~chinese 虚拟USB设备 \~english Virtual USB type camera
|
|||
|
} Mv3dRgbdDeviceType;
|
|||
|
|
|||
|
///< \~chinese ip类型 \~english IP Address Mode
|
|||
|
typedef enum Mv3dRgbdIpCfgMode
|
|||
|
{
|
|||
|
IpCfgMode_Static = 1, ///< \~chinese 静态IP \~english Static IP mode
|
|||
|
IpCfgMode_DHCP = 2, ///< \~chinese 自动分配IP(DHCP) \~english Automatically assigned IP address (DHCP)
|
|||
|
IpCfgMode_LLA = 4 ///< \~chinese 自动分配IP(LLA) \~english Automatically assigned IP address (LLA)
|
|||
|
} Mv3dRgbdIpCfgMode;
|
|||
|
|
|||
|
///< \~chinese USB协议类型 \~english Supported USB Protocol Type
|
|||
|
typedef enum Mv3dRgbdUsbProtocol
|
|||
|
{
|
|||
|
UsbProtocol_USB2 = 1, ///< \~chinese USB 2.0 \~english USB 2.0
|
|||
|
UsbProtocol_USB3 = 2 ///< \~chinese USB 3.0 \~english USB 3.0
|
|||
|
} Mv3dRgbdUsbProtocol;
|
|||
|
|
|||
|
///< \~chinese 图像格式 \~english Image Format
|
|||
|
typedef enum Mv3dRgbdImageType
|
|||
|
{
|
|||
|
ImageType_Undefined = MV3D_RGBD_UNDEFINED, ///< \~chinese 未定义的图像类型 \~english Undefined image type
|
|||
|
ImageType_Mono8 = (MV3D_RGBD_PIXEL_MONO | MV3D_RGBD_PIXEL_BIT_COUNT(8) | 0x0001), //0x01080001,(Mono8)
|
|||
|
ImageType_Mono16 = (MV3D_RGBD_PIXEL_MONO | MV3D_RGBD_PIXEL_BIT_COUNT(16) | 0x0007), //0x01100007,(Mono16)
|
|||
|
ImageType_Depth = (MV3D_RGBD_PIXEL_MONO | MV3D_RGBD_PIXEL_BIT_COUNT(16) | 0x00B8), //0x011000B8,(C16)
|
|||
|
ImageType_YUV422 = (MV3D_RGBD_PIXEL_COLOR | MV3D_RGBD_PIXEL_BIT_COUNT(16) | 0x0032), //0x02100032
|
|||
|
ImageType_YUV420SP_NV12 = (MV3D_RGBD_PIXEL_COLOR | MV3D_RGBD_PIXEL_BIT_COUNT(12) | 0x8001), //0x020C8001
|
|||
|
ImageType_YUV420SP_NV21 = (MV3D_RGBD_PIXEL_COLOR | MV3D_RGBD_PIXEL_BIT_COUNT(12) | 0x8002), //0x020C8002
|
|||
|
ImageType_RGB8_Planar = (MV3D_RGBD_PIXEL_COLOR | MV3D_RGBD_PIXEL_BIT_COUNT(24) | 0x0021), //0x02180021
|
|||
|
ImageType_PointCloud = (MV3D_RGBD_PIXEL_COLOR | MV3D_RGBD_PIXEL_BIT_COUNT(96) | 0x00C0), //0x026000C0,(ABC32f)
|
|||
|
ImageType_Jpeg = (MV3D_RGBD_PIXEL_CUSTOM| MV3D_RGBD_PIXEL_BIT_COUNT(24) | 0x0001), //0x80180001, ///< \~chinese 自定义的图片格式 \~english The custom image format
|
|||
|
ImageType_Rgbd = (MV3D_RGBD_PIXEL_CUSTOM| MV3D_RGBD_PIXEL_COLOR| MV3D_RGBD_PIXEL_BIT_COUNT(40) | 0x3007), //0x82283007
|
|||
|
} Mv3dRgbdImageType;
|
|||
|
|
|||
|
///< \~chinese 数据流类型 \~english Data Stream Type
|
|||
|
typedef enum Mv3dRgbdStreamType
|
|||
|
{
|
|||
|
StreamType_Undefined = 0,
|
|||
|
StreamType_Depth = 1, ///< \~chinese 深度图数据流 \~english Depth image data stream
|
|||
|
StreamType_Color = 2, ///< \~chinese 彩色图数据流 \~english Color image data stream
|
|||
|
StreamType_Ir_Left = 3, ///< \~chinese 矫正后的左目图数据流 \~english Corrected left-eye image data stream
|
|||
|
StreamType_Ir_Right = 4, ///< \~chinese 矫正后的右目图数据流 \~english Corrected right-eye image data stream
|
|||
|
StreamType_Imu = 5, ///< \~chinese IMU数据流 \~english IMU data stream
|
|||
|
StreamType_LeftMono = 6, ///< \~chinese 左目泛光图数据流 \~english Illuminated left-eye image data stream
|
|||
|
StreamType_Mask = 7, ///< \~chinese 掩膜图数据流 \~english Mask image data stream
|
|||
|
StreamType_Mono = 8, ///< \~chinese 未矫正的左右目融合图数据流 \~english Uncorrected left and right eyes fusion image data stream
|
|||
|
StreamType_Phase = 9, ///< \~chinese 相位图数据流 \~english Phase image data stream
|
|||
|
StreamType_Rgbd = 10 ///< \~chinese RGB-D图数据流 \~english RGB-D image data stream
|
|||
|
}Mv3dRgbdStreamType;
|
|||
|
|
|||
|
///< \~chinese 坐标系类型 \~english Coordinates Type
|
|||
|
typedef enum Mv3dRgbdCoordinateType
|
|||
|
{
|
|||
|
CoordinateType_Undefined = 0, ///< \~chinese 未定义的坐标系 \~english Undefined coordinates
|
|||
|
CoordinateType_Depth = 1, ///< \~chinese 深度图坐标系 \~english Depth image coordinates
|
|||
|
CoordinateType_RGB = 2 ///< \~chinese RGB图坐标系 \~english RGB image coordinates
|
|||
|
} Mv3dRgbdCoordinateType;
|
|||
|
|
|||
|
///< \~chinese 异常信息 \~english Exception Information
|
|||
|
typedef enum Mv3dRgbdDevException
|
|||
|
{
|
|||
|
DevException_Disconnect = 1 ///< \~chinese 设备断开连接 \~english The device is disconnected
|
|||
|
} Mv3dRgbdDevException;
|
|||
|
|
|||
|
///< \~chinese 参数类型 \~english Parameter Data Type
|
|||
|
typedef enum Mv3dRgbdParamType
|
|||
|
{
|
|||
|
ParamType_Bool = 1, ///< \~chinese Bool类型参数 \~english Boolean
|
|||
|
ParamType_Int = 2, ///< \~chinese Int类型参数 \~english Int
|
|||
|
ParamType_Float = 3, ///< \~chinese Float类型参数 \~english Float
|
|||
|
ParamType_Enum = 4, ///< \~chinese Enum类型参数 \~english Enumeration
|
|||
|
ParamType_String = 5 ///< \~chinese String类型参数 \~english String
|
|||
|
} Mv3dRgbdParamType;
|
|||
|
|
|||
|
///< \~chinese 深度图与rgb图存图格式 \~english Format of Saving Depth Images and RGB Images
|
|||
|
typedef enum Mv3dRgbdFileType
|
|||
|
{
|
|||
|
FileType_BMP = 1, ///< \~chinese BMP格式 \~english BMP
|
|||
|
FileType_JPG = 2, ///< \~chinese JPG格式 \~english JPG
|
|||
|
FileType_TIFF = 3 ///< \~chinese TIFF格式 \~english TIFF
|
|||
|
}Mv3dRgbdFileType;
|
|||
|
|
|||
|
///< \~chinese 点云图存图格式 \~english Formats of Saving Point Cloud Images
|
|||
|
typedef enum Mv3dRgbdPointCloudFileType
|
|||
|
{
|
|||
|
PointCloudFileType_PLY = 1, ///< \~chinese PLY_ASCII格式 \~english PLY(ascii)
|
|||
|
PointCloudFileType_CSV = 2, ///< \~chinese CSV格式 \~english CSV
|
|||
|
PointCloudFileType_OBJ = 3, ///< \~chinese OBJ格式 \~english OBJ
|
|||
|
PointCloudFileType_PLY_Binary = 4 ///< \~chinese PLY_BINARY格式 \~english PLY(binary)
|
|||
|
}Mv3dRgbdPointCloudFileType;
|
|||
|
|
|||
|
|
|||
|
/***************************************** Part5 ch: 数据结构体 | en: Data Structure **************************************************/
|
|||
|
|
|||
|
///< \~chinese 版本信息 \~english SDK Version Information
|
|||
|
typedef struct _MV3D_RGBD_VERSION_INFO_
|
|||
|
{
|
|||
|
uint32_t nMajor; ///< \~chinese 主版本 \~english The main version
|
|||
|
uint32_t nMinor; ///< \~chinese 次版本 \~english The minor version
|
|||
|
uint32_t nRevision; ///< \~chinese 修正版本 \~english The revision version
|
|||
|
} MV3D_RGBD_VERSION_INFO;
|
|||
|
|
|||
|
///< \~chinese 网口设备信息 \~english Network Type Device Information
|
|||
|
typedef struct _MV3D_RGBD_DEVICE_NET_INFO_
|
|||
|
{
|
|||
|
unsigned char chMacAddress[8]; ///< \~chinese Mac地址 \~english MAC address
|
|||
|
Mv3dRgbdIpCfgMode enIPCfgMode; ///< \~chinese 当前IP类型 \~english Current IP type
|
|||
|
char chCurrentIp[16]; ///< \~chinese 设备当前IP \~english Device‘s IP address
|
|||
|
char chCurrentSubNetMask[16]; ///< \~chinese 设备当前子网掩码 \~english Device’s subnet mask
|
|||
|
char chDefultGateWay[16]; ///< \~chinese 设备默认网关 \~english Device‘s default gateway
|
|||
|
char chNetExport[16]; ///< \~chinese 网口IP地址 \~english Network interface IP address
|
|||
|
|
|||
|
uint8_t nReserved[16]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
} MV3D_RGBD_DEVICE_NET_INFO;
|
|||
|
|
|||
|
///< \~chinese USB设备信息 \~english USB Type Device Information
|
|||
|
typedef struct _MV3D_RGBD_DEVICE_USB_INFO_
|
|||
|
{
|
|||
|
uint32_t nVendorId; ///< \~chinese 供应商ID号 \~english Manufacturer/vendor ID
|
|||
|
uint32_t nProductId; ///< \~chinese 产品ID号 \~english Product ID
|
|||
|
Mv3dRgbdUsbProtocol enUsbProtocol; ///< \~chinese 支持的USB协议 \~english Supported USB protocol types
|
|||
|
char chDeviceGUID[64]; ///< \~chinese 设备GUID号 \~english Device GUID
|
|||
|
|
|||
|
uint8_t nReserved[16]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
} MV3D_RGBD_DEVICE_USB_INFO;
|
|||
|
|
|||
|
///< \~chinese 枚举相关设备信息 \~english Device Information
|
|||
|
typedef struct _MV3D_RGBD_DEVICE_INFO_
|
|||
|
{
|
|||
|
char chManufacturerName[32]; ///< \~chinese 设备厂商 \~english Manufacturer
|
|||
|
char chModelName[32]; ///< \~chinese 设备型号 \~english Device model
|
|||
|
char chDeviceVersion[32]; ///< \~chinese 设备版本 \~english Device version
|
|||
|
char chManufacturerSpecificInfo[44]; ///< \~chinese 设备厂商特殊信息 \~english The specific information about manufacturer
|
|||
|
uint32_t nDevTypeInfo; ///< \~chinese 设备类型信息 \~english Device type info
|
|||
|
char chSerialNumber[16]; ///< \~chinese 设备序列号 \~english Device serial number
|
|||
|
char chUserDefinedName[16]; ///< \~chinese 设备用户自定义名称 \~english User-defined name of device
|
|||
|
Mv3dRgbdDeviceType enDeviceType; ///< \~chinese 设备类型:网口、USB、虚拟网口设备、虚拟USB设备
|
|||
|
///< \~english Device type(network / USB / virtual network / virtual USB)
|
|||
|
union
|
|||
|
{
|
|||
|
MV3D_RGBD_DEVICE_NET_INFO stNetInfo; ///< \~chinese 网口设备特有 \~english Network type device
|
|||
|
MV3D_RGBD_DEVICE_USB_INFO stUsbInfo; ///< \~chinese USB设备特有 \~english USB type device information
|
|||
|
} SpecialInfo; ///< \~chinese 不同设备特有信息 \~english Particular information of different types devices
|
|||
|
|
|||
|
} MV3D_RGBD_DEVICE_INFO;
|
|||
|
|
|||
|
///< \~chinese IP配置 \~english IP Configuration Parameters
|
|||
|
typedef struct _MV3D_RGBD_IP_CONFIG_
|
|||
|
{
|
|||
|
Mv3dRgbdIpCfgMode enIPCfgMode; ///< \~chinese IP配置模式 \~english IP configuration mode
|
|||
|
char chDestIp[16]; ///< \~chinese 设置的目标IP,仅静态IP模式下有效 \~english The IP address which is to be attributed to the target device. It is valid in the static IP mode only
|
|||
|
char chDestNetMask[16]; ///< \~chinese 设置的目标子网掩码,仅静态IP模式下有效 \~english The subnet mask of target device. It is valid in the static IP mode only
|
|||
|
char chDestGateWay[16]; ///< \~chinese 设置的目标网关,仅静态IP模式下有效 \~english The gateway of target device. It is valid in the static IP mode only
|
|||
|
|
|||
|
|
|||
|
uint8_t nReserved[16]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
} MV3D_RGBD_IP_CONFIG;
|
|||
|
|
|||
|
///< \~chinese 相机图像 \~english Camera Image Parameters
|
|||
|
typedef struct _MV3D_RGBD_IMAGE_DATA_
|
|||
|
{
|
|||
|
Mv3dRgbdImageType enImageType; ///< \~chinese 图像格式 \~english Image format
|
|||
|
uint32_t nWidth; ///< \~chinese 图像宽 \~english Image width
|
|||
|
uint32_t nHeight; ///< \~chinese 图像高 \~english Image height
|
|||
|
uint8_t* pData; ///< \~chinese 相机输出的图像数据 \~english Image data, which is outputted by the camera
|
|||
|
uint32_t nDataLen; ///< \~chinese 图像数据长度(字节) \~english Image data length (bytes)
|
|||
|
uint32_t nFrameNum; ///< \~chinese 帧号,代表第几帧图像 \~english Frame number, which indicates the frame sequence
|
|||
|
int64_t nTimeStamp; ///< \~chinese 设备上报的时间戳 (设备上电从0开始,规则详见设备手册)
|
|||
|
///< \~english Timestamp uploaded by the device. It starts from 0 when the device is powered on. Refer to the device user manual for detailed rules
|
|||
|
BOOL bIsRectified; ///< \~chinese 是否校正 \~english Correction flag
|
|||
|
Mv3dRgbdStreamType enStreamType; ///< \~chinese 流类型,用于区分图像(图像格式相同时) \~english Data stream type, used to distinguish data in the same image format
|
|||
|
Mv3dRgbdCoordinateType enCoordinateType; ///< \~chinese 坐标系类型 \~english Coordinates type
|
|||
|
|
|||
|
uint8_t nReserved[4]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
} MV3D_RGBD_IMAGE_DATA;
|
|||
|
|
|||
|
///< \~chinese 图像帧数据 \~english Frame Data
|
|||
|
typedef struct _MV3D_RGBD_FRAME_DATA_
|
|||
|
{
|
|||
|
uint32_t nImageCount; ///< \~chinese 图像个数,表示stImage数组的有效个数 \~english The number of images. It indicates the number of valid stImage arrays
|
|||
|
MV3D_RGBD_IMAGE_DATA stImageData[MV3D_RGBD_MAX_IMAGE_COUNT]; ///< \~chinese 图像数组,每一个代表一种类型的图像 \~english Image array, each one represents one type of images
|
|||
|
uint32_t nValidInfo; ///< \~chinese 帧有效信息:0(帧有效),1 << 0(丢包),1 << 1(触发标识符无效)
|
|||
|
///< \~english Frame valid info: 0 (Frame is valid), 1 << 0 (lost package), 1 << 1 (trigger is not valid)
|
|||
|
uint8_t nReserved[12]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
} MV3D_RGBD_FRAME_DATA;
|
|||
|
|
|||
|
///< \~chinese 固件输出的图像附加信息 \~english Image Additional Information Output by Firmware
|
|||
|
typedef struct _MV3D_RGBD_STREAM_CFG_
|
|||
|
{
|
|||
|
Mv3dRgbdImageType enImageType; ///< \~chinese 图像格式 \~english Image format
|
|||
|
uint32_t nWidth; ///< \~chinese 图像宽 \~english Image width
|
|||
|
uint32_t nHeight; ///< \~chinese 图像高 \~english Image height
|
|||
|
|
|||
|
uint8_t nReserved[32]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
}MV3D_RGBD_STREAM_CFG;
|
|||
|
|
|||
|
///< \~chinese 固件输出的图像帧附加信息 \~english Frame Additional Information Output by Firmware
|
|||
|
typedef struct _MV3D_RGBD_STREAM_CFG_LIST_
|
|||
|
{
|
|||
|
uint32_t nStreamCfgCount; ///< \~chinese 图像信息数量 \~english The number of image information
|
|||
|
MV3D_RGBD_STREAM_CFG stStreamCfg[MV3D_RGBD_MAX_IMAGE_COUNT]; ///< \~chinese 图像附加信息 \~english Image additional information
|
|||
|
|
|||
|
uint8_t nReserved[16]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
}MV3D_RGBD_STREAM_CFG_LIST;
|
|||
|
|
|||
|
///< \~chinese 相机内参 \~english Camera Internal Parameters
|
|||
|
///< | fx| 0| cx|
|
|||
|
///< | 0| fy| cy|
|
|||
|
///< | 0| 0| 1|
|
|||
|
typedef struct _MV3D_RGBD_CAMERA_INTRINSIC_
|
|||
|
{
|
|||
|
float fData[3*3]; ///< \~chinese 内参参数:fx,0,cx,0,fy,cy,0,0,1 \~english Internal parameters: fx,0,cx,0,fy,cy,0,0,1
|
|||
|
} MV3D_RGBD_CAMERA_INTRINSIC;
|
|||
|
|
|||
|
///< \~chinese 相机畸变系数 \~english Camera Distortion Coefficient
|
|||
|
typedef struct _MV3D_RGBD_CAMERA_DISTORTION_
|
|||
|
{
|
|||
|
float fData[12]; ///< \~chinese 畸变系数:k1,k2,p1,p2,k3,k4,k5,k6,s1,s2,s3,s4 \~english Distortion coefficient: k1,k2,p1,p2,k3,k4,k5,k6,s1,s2,s3,s4
|
|||
|
|
|||
|
} MV3D_RGBD_CAMERA_DISTORTION;
|
|||
|
|
|||
|
///< \~chinese 相机的内参,畸变系数,分辨率信息 \~english Structure About Camera Internal Parameters, Distortion Coefficient and Resolution Information
|
|||
|
typedef struct _MV3D_RGBD_CALIB_INFO_
|
|||
|
{
|
|||
|
MV3D_RGBD_CAMERA_INTRINSIC stIntrinsic; ///< \~chinese 相机内参 \~english Camera internal parameters
|
|||
|
MV3D_RGBD_CAMERA_DISTORTION stDistortion; ///< \~chinese 畸变系数 \~english Camera distortion coefficient
|
|||
|
uint32_t nWidth; ///< \~chinese 图像宽 \~english Image width
|
|||
|
uint32_t nHeight; ///< \~chinese 图像高 \~english Image height
|
|||
|
|
|||
|
uint8_t nReserved[8]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
} MV3D_RGBD_CALIB_INFO;
|
|||
|
|
|||
|
///< \~chinese 相机深度图转Rgb的外参 \~english Camera Extrinsic Parameters of Depth Image to Rgb Image
|
|||
|
///< | r00| r01| r02| t0|
|
|||
|
///< | r10| r11| r12| t1|
|
|||
|
///< | r20| r21| r22| t2|
|
|||
|
///< | 0| 0| 0| 1|
|
|||
|
typedef struct _MV3D_RGBD_CAMERA_EXTRINSIC_
|
|||
|
{
|
|||
|
float fData[4*4]; ///< \~chinese 深度图转Rgb外参参数:r00,r01,r02,t0,r10,r11,r12,t1,r20,r21,r22,t2,0,0,0,1
|
|||
|
///< \~english Extrinsic parameters of depth image to rgb image: r00,r01,r02,t0,r10,r11,r12,t1,r20,r21,r22,t2,0,0,0,1
|
|||
|
}MV3D_RGBD_CAMERA_EXTRINSIC;
|
|||
|
|
|||
|
///< \~chinese 相机参数信息 \~english Camera Parameters Information
|
|||
|
typedef struct _MV3D_RGBD_CAMERA_PARAM_
|
|||
|
{
|
|||
|
MV3D_RGBD_CALIB_INFO stDepthCalibInfo; ///< \~chinese 深度图内参和畸变矩阵信息 \~english Depth image intrinsic information and distortion coefficient
|
|||
|
MV3D_RGBD_CALIB_INFO stRgbCalibInfo; ///< \~chinese rgb内参和畸变矩阵信息 \~english Rgb image intrinsic information and distortion coefficient
|
|||
|
MV3D_RGBD_CAMERA_EXTRINSIC stDepth2RgbExtrinsic; ///< \~chinese 相机深度图转RGB的外参 \~english Camera extrinsic parameters of depth image to rgb image
|
|||
|
|
|||
|
uint8_t nReserved[32]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
}MV3D_RGBD_CAMERA_PARAM;
|
|||
|
|
|||
|
///< \~chinese Int类型值 \~english Int Type Value
|
|||
|
typedef struct _MV3D_RGBD_INTPARAM_
|
|||
|
{
|
|||
|
int64_t nCurValue; ///< \~chinese 当前值 \~english Current value
|
|||
|
int64_t nMax; ///< \~chinese 最大值 \~english The maximum value
|
|||
|
int64_t nMin; ///< \~chinese 最小值 \~english The minimum value
|
|||
|
int64_t nInc; ///< \~chinese 增量值 \~english The increment value
|
|||
|
} MV3D_RGBD_INTPARAM;
|
|||
|
|
|||
|
///< \~chinese Enum类型值 \~english Enumeration Type Value
|
|||
|
typedef struct _MV3D_RGBD_ENUMPARAM_
|
|||
|
{
|
|||
|
uint32_t nCurValue; ///< \~chinese 当前值 \~english Current value
|
|||
|
uint32_t nSupportedNum; ///< \~chinese 有效数据个数 \~english The number of valid data
|
|||
|
uint32_t nSupportValue[MV3D_RGBD_MAX_ENUM_COUNT]; ///< \~chinese 支持的枚举类型 \~english The type of supported enumerations
|
|||
|
} MV3D_RGBD_ENUMPARAM;
|
|||
|
|
|||
|
///< \~chinese Float类型值 \~english Float Type Value
|
|||
|
typedef struct _MV3D_RGBD_FLOATPARAM_
|
|||
|
{
|
|||
|
float fCurValue; ///< \~chinese 当前值 \~english Current value
|
|||
|
float fMax; ///< \~chinese 最大值 \~english The maximum value
|
|||
|
float fMin; ///< \~chinese 最小值 \~english The minimum value
|
|||
|
} MV3D_RGBD_FLOATPARAM;
|
|||
|
|
|||
|
///< \~chinese String类型值 \~english String Type Value
|
|||
|
typedef struct _MV3D_RGBD_STRINGPARAM_
|
|||
|
{
|
|||
|
char chCurValue[MV3D_RGBD_MAX_STRING_LENGTH]; ///< \~chinese 当前值 \~english Current value
|
|||
|
uint32_t nMaxLength; ///< \~chinese 属性节点能设置字符的最大长度 \~english The maximum length of string
|
|||
|
} MV3D_RGBD_STRINGPARAM;
|
|||
|
|
|||
|
///< \~chinese 设备参数 \~english Device Parameters
|
|||
|
typedef struct _MV3D_RGBD_PARAM_
|
|||
|
{
|
|||
|
Mv3dRgbdParamType enParamType; ///< \~chinese 设置属性值类型 \~english Parameter data type
|
|||
|
union
|
|||
|
{
|
|||
|
BOOL bBoolParam; ///< \~chinese Bool类型参数 \~english Boolean type parameter
|
|||
|
MV3D_RGBD_INTPARAM stIntParam; ///< \~chinese Int类型参数 \~english Int type parameter
|
|||
|
MV3D_RGBD_FLOATPARAM stFloatParam; ///< \~chinese Float类型参数 \~english Float type parameter
|
|||
|
MV3D_RGBD_ENUMPARAM stEnumParam; ///< \~chinese Enum类型参数 \~english Enum type parameter
|
|||
|
MV3D_RGBD_STRINGPARAM stStringParam; ///< \~chinese String类型参数 \~english String type parameter
|
|||
|
} ParamInfo;
|
|||
|
|
|||
|
uint8_t nReserved[16]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
} MV3D_RGBD_PARAM;
|
|||
|
|
|||
|
///< \~chinese 异常信息 \~english Exception Information
|
|||
|
typedef struct _MV3D_RGBD_EXCEPTION_INFO_
|
|||
|
{
|
|||
|
Mv3dRgbdDevException enExceptionId; ///< \~chinese 异常ID \~english Exception ID
|
|||
|
char chExceptionDes[MV3D_RGBD_MAX_STRING_LENGTH]; ///< \~chinese 异常描述 \~english Exception description
|
|||
|
|
|||
|
uint8_t nReserved[4]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
} MV3D_RGBD_EXCEPTION_INFO;
|
|||
|
|
|||
|
///< \~chinese 文件存取 \~english File Access
|
|||
|
typedef struct _MV3D_RGBD_FILE_ACCESS_
|
|||
|
{
|
|||
|
const char* pUserFileName; ///< \~chinese 用户文件名 \~english User file name
|
|||
|
const char* pDevFileName; ///< \~chinese 设备文件名 \~english Device file name
|
|||
|
|
|||
|
uint8_t nReserved[32]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
}MV3D_RGBD_FILE_ACCESS;
|
|||
|
|
|||
|
///< \~chinese 文件存取进度 \~english File Access Progress
|
|||
|
typedef struct _MV3D_RGBD_FILE_ACCESS_PROGRESS_
|
|||
|
{
|
|||
|
int64_t nCompleted; ///< \~chinese 已完成的长度 \~english Completed length
|
|||
|
int64_t nTotal; ///< \~chinese 总长度 \~english Total length
|
|||
|
|
|||
|
uint8_t nReserved[32]; ///< \~chinese 保留字节 \~english Reserved
|
|||
|
}MV3D_RGBD_FILE_ACCESS_PROGRESS;
|
|||
|
|
|||
|
|
|||
|
/***************************************** Part6 ch: 回调接口定义 | en: Callback Interface Definition **************************************************/
|
|||
|
|
|||
|
///< \~chinese 帧数据回调 \~english Frame Data Callback
|
|||
|
typedef void(__stdcall* MV3D_RGBD_FrameDataCallBack) (MV3D_RGBD_FRAME_DATA* pstFrameData, void* pUser);
|
|||
|
///< \~chinese 异常回调 \~english Exception Callback
|
|||
|
typedef void(__stdcall* MV3D_RGBD_ExceptionCallBack) (MV3D_RGBD_EXCEPTION_INFO* pstExceptInfo, void* pUser);
|
|||
|
|
|||
|
#endif // _MV3D_RGBD_DEFINE_H_
|