rm_vision/io/hikrobot/include/CameraParams.h
2025-12-15 02:33:20 +08:00

1342 lines
69 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 _MV_CAMERA_PARAMS_H_
#define _MV_CAMERA_PARAMS_H_
#include "PixelType.h"
#ifndef __cplusplus
typedef char bool;
#define true 1
#define false 0
#endif
/// \~chinese 排序方式 \~english The Method of Sorting
typedef enum _MV_SORT_METHOD_
{
SortMethod_SerialNumber =
0, ///< \~chinese 按序列号排序 \~english Sorting by SerialNumber
SortMethod_UserID =
1, ///< \~chinese 按用户自定义名字排序 \~english Sorting by UserID
SortMethod_CurrentIP_ASC =
2, ///< \~chinese 按当前IP地址排序升序 \~english Sorting by current IPAscending
SortMethod_CurrentIP_DESC =
3, ///< \~chinese 按当前IP地址排序降序 \~english Sorting by current IPDescending
} MV_SORT_METHOD;
/// \~chinese GigE设备信息 \~english GigE device info
typedef struct _MV_GIGE_DEVICE_INFO_
{
unsigned int
nIpCfgOption; ///< [OUT] \~chinese IP配置选项 \~english IP Configuration Options
unsigned int
nIpCfgCurrent; ///< [OUT] \~chinese 当前IP配置 \~english IP Configuration
unsigned int nCurrentIp; ///< [OUT] \~chinese 当前IP地址 \~english Current Ip
unsigned int
nCurrentSubNetMask; ///< [OUT] \~chinese 当前子网掩码 \~english Curtent Subnet Mask
unsigned int
nDefultGateWay; ///< [OUT] \~chinese 当前网关 \~english Current Gateway
unsigned char
chManufacturerName[32]; ///< [OUT] \~chinese 制造商名称 \~english Manufacturer Name
unsigned char chModelName[32]; ///< [OUT] \~chinese 型号名称 \~english Model Name
unsigned char
chDeviceVersion[32]; ///< [OUT] \~chinese 设备版本 \~english Device Version
unsigned char chManufacturerSpecificInfo
[48]; ///< [OUT] \~chinese 制造商的具体信息 \~english Manufacturer Specific Information
unsigned char
chSerialNumber[16]; ///< [OUT] \~chinese 序列号 \~english Serial Number
unsigned char
chUserDefinedName[16]; ///< [OUT] \~chinese 用户自定义名称 \~english User Defined Name
unsigned int nNetExport; ///< [OUT] \~chinese 网口IP地址 \~english NetWork IP Address
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MV_GIGE_DEVICE_INFO;
///< \~chinese 最大的数据信息大小 \~english Maximum data information size
#define INFO_MAX_BUFFER_SIZE 64
/// \~chinese USB设备信息 \~english USB device info
typedef struct _MV_USB3_DEVICE_INFO_
{
unsigned char
CrtlInEndPoint; ///< [OUT] \~chinese 控制输入端点 \~english Control input endpoint
unsigned char
CrtlOutEndPoint; ///< [OUT] \~chinese 控制输出端点 \~english Control output endpoint
unsigned char StreamEndPoint; ///< [OUT] \~chinese 流端点 \~english Flow endpoint
unsigned char EventEndPoint; ///< [OUT] \~chinese 事件端点 \~english Event endpoint
unsigned short idVendor; ///< [OUT] \~chinese 供应商ID号 \~english Vendor ID Number
unsigned short idProduct; ///< [OUT] \~chinese 产品ID号 \~english Device ID Number
unsigned int nDeviceNumber; ///< [OUT] \~chinese 设备索引号 \~english Device Number
unsigned char chDeviceGUID
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备GUID号 \~english Device GUID Number
unsigned char chVendorName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 供应商名字 \~english Vendor Name
unsigned char chModelName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 型号名字 \~english Model Name
unsigned char chFamilyName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 家族名字 \~english Family Name
unsigned char chDeviceVersion
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备版本 \~english Device Version
unsigned char chManufacturerName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 制造商名字 \~english Manufacturer Name
unsigned char chSerialNumber
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 序列号 \~english Serial Number
unsigned char chUserDefinedName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 用户自定义名字 \~english User Defined Name
unsigned int nbcdUSB; ///< [OUT] \~chinese 支持的USB协议 \~english Support USB Protocol
unsigned int nDeviceAddress; ///< [OUT] \~chinese 设备地址 \~english Device Address
unsigned int nReserved[2]; ///< \~chinese 预留 \~english Reserved
} MV_USB3_DEVICE_INFO;
/// \~chinese CameraLink设备信息 \~english CameraLink device info
typedef struct _MV_CamL_DEV_INFO_
{
unsigned char
chPortID[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 端口号 \~english Port ID
unsigned char chModelName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 型号名字 \~english Model Name
unsigned char chFamilyName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 名称 \~english Family Name
unsigned char chDeviceVersion
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备版本 \~english Device Version
unsigned char chManufacturerName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 制造商名字 \~english Manufacturer Name
unsigned char chSerialNumber
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 序列号 \~english Serial Number
unsigned int nReserved[38]; ///< \~chinese 预留 \~english Reserved
} MV_CamL_DEV_INFO;
///< \~chinese 设备传输层协议类型 \~english Device Transport Layer Protocol Type
#define MV_UNKNOW_DEVICE \
0x00000000 ///< \~chinese 未知设备类型,保留意义 \~english Unknown Device Type, Reserved
#define MV_GIGE_DEVICE 0x00000001 ///< \~chinese GigE设备 \~english GigE Device
#define MV_1394_DEVICE \
0x00000002 ///< \~chinese 1394-a/b 设备 \~english 1394-a/b Device
#define MV_USB_DEVICE 0x00000004 ///< \~chinese USB 设备 \~english USB Device
#define MV_CAMERALINK_DEVICE \
0x00000008 ///< \~chinese CameraLink设备 \~english CameraLink Device
#define MV_VIR_GIGE_DEVICE \
0x00000010 ///< \~chinese 虚拟GigE设备 \~english Virtual GigE Device
#define MV_VIR_USB_DEVICE \
0x00000020 ///< \~chinese 虚拟USB设备 \~english Virtual USB Device
#define MV_GENTL_GIGE_DEVICE \
0x00000040 ///< \~chinese 自研网卡下GigE设备 \~english GenTL GigE Device
/// \~chinese 设备信息 \~english Device info
typedef struct _MV_CC_DEVICE_INFO_
{
unsigned short nMajorVer; ///< [OUT] \~chinese 主要版本 \~english Major Version
unsigned short nMinorVer; ///< [OUT] \~chinese 次要版本 \~english Minor Version
unsigned int nMacAddrHigh; ///< [OUT] \~chinese 高MAC地址 \~english High MAC Address
unsigned int nMacAddrLow; ///< [OUT] \~chinese 低MAC地址 \~english Low MAC Address
unsigned int
nTLayerType; ///< [OUT] \~chinese 设备传输层协议类型 \~english Device Transport Layer Protocol Type
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
union {
MV_GIGE_DEVICE_INFO
stGigEInfo; ///< [OUT] \~chinese GigE设备信息 \~english GigE Device Info
MV_USB3_DEVICE_INFO
stUsb3VInfo; ///< [OUT] \~chinese USB设备信息 \~english USB Device Info
MV_CamL_DEV_INFO
stCamLInfo; ///< [OUT] \~chinese CameraLink设备信息 \~english CameraLink Device Info
// more ...
} SpecialInfo;
} MV_CC_DEVICE_INFO;
///< \~chinese 最多支持的传输层实例个数 \~english The maximum number of supported transport layer instances
#define MV_MAX_TLS_NUM 8
///< \~chinese 最大支持的设备个数 \~english The maximum number of supported devices
#define MV_MAX_DEVICE_NUM 256
/// \~chinese 设备信息列表 \~english Device Information List
typedef struct _MV_CC_DEVICE_INFO_LIST_
{
unsigned int
nDeviceNum; ///< [OUT] \~chinese 在线设备数量 \~english Online Device Number
MV_CC_DEVICE_INFO * pDeviceInfo
[MV_MAX_DEVICE_NUM]; ///< [OUT] \~chinese 支持最多256个设备 \~english Support up to 256 devices
} MV_CC_DEVICE_INFO_LIST;
/// \~chinese 通过GenTL枚举到的接口信息 \~english Interface Information with GenTL
typedef struct _MV_GENTL_IF_INFO_
{
unsigned char chInterfaceID
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese GenTL接口ID \~english Interface ID
unsigned char chTLType
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 传输层类型 \~english GenTL Type
unsigned char chDisplayName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese Interface显示名称 \~english Display Name
unsigned int
nCtiIndex; ///< [OUT] \~chinese GenTL的cti文件索引 \~english The Index of Cti Files
unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved
} MV_GENTL_IF_INFO;
///< \~chinese 最大支持的GenTL接口数量 \~english The maximum number of GenTL interface supported
#define MV_MAX_GENTL_IF_NUM 256
/// \~chinese 通过GenTL枚举到的接口信息列表 \~english Inferface Information List with GenTL
typedef struct _MV_GENTL_IF_INFO_LIST_
{
unsigned int
nInterfaceNum; ///< [OUT] \~chinese 在线接口数量 \~english Online Inferface Number
MV_GENTL_IF_INFO * pIFInfo
[MV_MAX_GENTL_IF_NUM]; ///< [OUT] \~chinese 支持最多256个接口 \~english Support up to 256 inferfaces
} MV_GENTL_IF_INFO_LIST;
/// \~chinese 通过GenTL枚举到的设备信息 \~english Device Information with GenTL
typedef struct _MV_GENTL_DEV_INFO_
{
unsigned char chInterfaceID
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese GenTL接口ID \~english Interface ID
unsigned char chDeviceID
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备ID \~english Device ID
unsigned char chVendorName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 供应商名字 \~english Vendor Name
unsigned char chModelName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 型号名字 \~english Model Name
unsigned char chTLType
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 传输层类型 \~english GenTL Type
unsigned char chDisplayName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备显示名称 \~english Display Name
unsigned char chUserDefinedName
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 用户自定义名字 \~english User Defined Name
unsigned char chSerialNumber
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 序列号 \~english Serial Number
unsigned char chDeviceVersion
[INFO_MAX_BUFFER_SIZE]; ///< [OUT] \~chinese 设备版本号 \~english Device Version
unsigned int
nCtiIndex; ///< [OUT] \~chinese GenTL的cti文件索引 \~english The Index of Cti Files
unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved
} MV_GENTL_DEV_INFO;
///< \~chinese 最大支持的GenTL设备数量 \~english The maximum number of GenTL devices supported
#define MV_MAX_GENTL_DEV_NUM 256
/// \~chinese 通过GenTL枚举到的设备信息列表 \~english Device Information List with GenTL
typedef struct _MV_GENTL_DEV_INFO_LIST_
{
unsigned int
nDeviceNum; ///< [OUT] \~chinese 在线设备数量 \~english Online Device Number
MV_GENTL_DEV_INFO * pDeviceInfo
[MV_MAX_GENTL_DEV_NUM]; ///< [OUT] \~chinese 支持最多256个设备 \~english Support up to 256 devices
} MV_GENTL_DEV_INFO_LIST;
/// \~chinese 设备的访问模式 \~english Device Access Mode
#define MV_ACCESS_Exclusive \
1 /// \~chinese 独占权限其他APP只允许读CCP寄存器 \~english Exclusive authority, other APP is only allowed to read the CCP register
#define MV_ACCESS_ExclusiveWithSwitch \
2 /// \~chinese 可以从5模式下抢占权限然后以独占权限打开 \~english You can seize the authority from the 5 mode, and then open with exclusive authority
#define MV_ACCESS_Control \
3 /// \~chinese 控制权限其他APP允许读所有寄存器 \~english Control authority, allows other APP reading all registers
#define MV_ACCESS_ControlWithSwitch \
4 /// \~chinese 可以从5的模式下抢占权限然后以控制权限打开 \~english You can seize the authority from the 5 mode, and then open with control authority
#define MV_ACCESS_ControlSwitchEnable \
5 /// \~chinese 以可被抢占的控制权限打开 \~english Open with seized control authority
#define MV_ACCESS_ControlSwitchEnableWithKey \
6 /// \~chinese 可以从5的模式下抢占权限然后以可被抢占的控制权限打开 \~english You can seize the authority from the 5 mode, and then open with seized control authority
#define MV_ACCESS_Monitor \
7 /// \~chinese 读模式打开设备,适用于控制权限下 \~english Open with read mode and is available under control authority
/// \~chinese Chunk内容 \~english The content of ChunkData
typedef struct _MV_CHUNK_DATA_CONTENT_
{
unsigned char * pChunkData; ///< [OUT] \~chinese Chunk数据 \~english Chunk Data
unsigned int nChunkID; ///< [OUT] \~chinese Chunk ID \~english Chunk ID
unsigned int nChunkLen; ///< [OUT] \~chinese Chunk的长度 \~english Chunk Length
unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved
} MV_CHUNK_DATA_CONTENT;
/// \~chinese 输出帧的信息 \~english Output Frame Information
typedef struct _MV_FRAME_OUT_INFO_EX_
{
unsigned short
nWidth; ///< [OUT] \~chinese 图像宽(最大65535超出请用nExtendWidth) \~english Image Width (over 65535, use nExtendWidth)
unsigned short
nHeight; ///< [OUT] \~chinese 图像高(最大65535超出请用nExtendHeight) \~english Image Height(over 65535, use nExtendHeight)
enum MvGvspPixelType
enPixelType; ///< [OUT] \~chinese 像素格式 \~english Pixel Type
unsigned int nFrameNum; ///< [OUT] \~chinese 帧号 \~english Frame Number
unsigned int
nDevTimeStampHigh; ///< [OUT] \~chinese 时间戳高32位 \~english Timestamp high 32 bits
unsigned int
nDevTimeStampLow; ///< [OUT] \~chinese 时间戳低32位 \~english Timestamp low 32 bits
unsigned int
nReserved0; ///< [OUT] \~chinese 保留8字节对齐 \~english Reserved, 8-byte aligned
int64_t
nHostTimeStamp; ///< [OUT] \~chinese 主机生成的时间戳 \~english Host-generated timestamp
unsigned int nFrameLen; ///< [OUT] \~chinese 帧的长度 \~english The Length of Frame
/// \~chinese 设备水印时标 \~english Device frame-specific time scale
unsigned int nSecondCount; ///< [OUT] \~chinese 秒数 \~english The Seconds
unsigned int
nCycleCount; ///< [OUT] \~chinese 周期数 \~english The Count of Cycle
unsigned int
nCycleOffset; ///< [OUT] \~chinese 周期偏移量 \~english The Offset of Cycle
float fGain; ///< [OUT] \~chinese 增益 \~english Gain
float fExposureTime; ///< [OUT] \~chinese 曝光时间 \~english Exposure Time
unsigned int
nAverageBrightness; ///< [OUT] \~chinese 平均亮度 \~english Average brightness
/// \~chinese 白平衡相关 \~english White balance
unsigned int nRed; ///< [OUT] \~chinese 红色 \~english Red
unsigned int nGreen; ///< [OUT] \~chinese 绿色 \~english Green
unsigned int nBlue; ///< [OUT] \~chinese 蓝色 \~english Blue
unsigned int nFrameCounter; ///< [OUT] \~chinese 总帧数 \~english Frame Counter
unsigned int
nTriggerIndex; ///< [OUT] \~chinese 触发计数 \~english Trigger Counting
unsigned int nInput; ///< [OUT] \~chinese 输入 \~english Input
unsigned int nOutput; ///< [OUT] \~chinese 输出 \~english Output
/// \~chinese ROI区域 \~english ROI Region
unsigned short nOffsetX; ///< [OUT] \~chinese 水平偏移量 \~english OffsetX
unsigned short nOffsetY; ///< [OUT] \~chinese 垂直偏移量 \~english OffsetY
unsigned short
nChunkWidth; ///< [OUT] \~chinese Chunk宽 \~english The Width of Chunk
unsigned short
nChunkHeight; ///< [OUT] \~chinese Chunk高 \~english The Height of Chunk
unsigned int
nLostPacket; ///< [OUT] \~chinese 本帧丢包数 \~english Lost Packet Number In This Frame
unsigned int
nUnparsedChunkNum; ///< [OUT] \~chinese 未解析的Chunkdata个数 \~english Unparsed Chunk Number
union {
MV_CHUNK_DATA_CONTENT *
pUnparsedChunkContent; ///< [OUT] \~chinese 未解析的Chunk \~english Unparsed Chunk Content
int64_t nAligning; ///< [OUT] \~chinese 校准 \~english Aligning
} UnparsedChunkList;
unsigned int nExtendWidth; ///< [OUT] \~chinese 图像宽(扩展变量) \~english Image Width
unsigned int nExtendHeight; ///< [OUT] \~chinese 图像高(扩展变量) \~english Image Height
unsigned int nReserved[34]; ///< \~chinese 预留 \~english Reserved
} MV_FRAME_OUT_INFO_EX;
/// \~chinese 图像结构体,输出图像地址及图像信息 \~english Image Struct, output the pointer of Image and the information of the specific image
typedef struct _MV_FRAME_OUT_
{
unsigned char * pBufAddr; ///< [OUT] \~chinese 图像指针地址 \~english pointer of image
MV_FRAME_OUT_INFO_EX
stFrameInfo; ///< [OUT] \~chinese 图像信息 \~english information of the specific image
unsigned int nRes[16]; ///< \~chinese 预留 \~english Reserved
} MV_FRAME_OUT;
/// \~chinese 取流策略 \~english The strategy of Grabbing
typedef enum _MV_GRAB_STRATEGY_
{
MV_GrabStrategy_OneByOne =
0, ///< \~chinese 从旧到新一帧一帧的获取图像 \~english Grab One By One
MV_GrabStrategy_LatestImagesOnly =
1, ///< \~chinese 获取列表中最新的一帧图像 \~english Grab The Latest Image
MV_GrabStrategy_LatestImages =
2, ///< \~chinese 获取列表中最新的图像 \~english Grab The Latest Images
MV_GrabStrategy_UpcomingImage =
3, ///< \~chinese 等待下一帧图像 \~english Grab The Upcoming Image
} MV_GRAB_STRATEGY;
/// \~chinese 网络传输的相关信息 \~english Network transmission information
typedef struct _MV_NETTRANS_INFO_
{
int64_t
nReceiveDataSize; ///< [OUT] \~chinese 已接收数据大小[Start和Stop之间] \~english Received Data Size
int
nThrowFrameCount; ///< [OUT] \~chinese 丢帧数量 \~english Throw frame number
unsigned int
nNetRecvFrameCount; ///< [OUT] \~chinese 已接收的帧数 \~english Received Frame Count
int64_t
nRequestResendPacketCount; ///< [OUT] \~chinese 请求重发包数 \~english Request Resend Packet Count
int64_t
nResendPacketCount; ///< [OUT] \~chinese 重发包数 \~english Resend Packet Count
} MV_NETTRANS_INFO;
/// \~chinese 信息类型 \~english Information Type
#define MV_MATCH_TYPE_NET_DETECT \
0x00000001 ///< \~chinese 网络流量和丢包信息 \~english Network traffic and packet loss information
#define MV_MATCH_TYPE_USB_DETECT \
0x00000002 ///< \~chinese host接收到来自U3V设备的字节总数 \~english The total number of bytes host received from U3V device
/// \~chinese 全匹配的一种信息结构体 \~english A fully matched information structure
typedef struct _MV_ALL_MATCH_INFO_
{
unsigned int
nType; ///< [IN] \~chinese 需要输出的信息类型e.g. MV_MATCH_TYPE_NET_DETECT \~english Information type need to output ,e.g. MV_MATCH_TYPE_NET_DETECT
void *
pInfo; ///< [OUT] \~chinese 输出的信息缓存,由调用者分配 \~english Output information cache, which is allocated by the caller
unsigned int
nInfoSize; ///< [IN] \~chinese 信息缓存的大小 \~english Information cache size
} MV_ALL_MATCH_INFO;
/// \~chinese 网络流量和丢包信息反馈结构体,对应类型为 MV_MATCH_TYPE_NET_DETECT \~english Network traffic and packet loss feedback structure, the corresponding type is MV_MATCH_TYPE_NET_DETECT
typedef struct _MV_MATCH_INFO_NET_DETECT_
{
int64_t
nReceiveDataSize; ///< [OUT] \~chinese 已接收数据大小[Start和Stop之间] \~english Received data size
int64_t
nLostPacketCount; ///< [OUT] \~chinese 丢失的包数量 \~english Number of packets lost
unsigned int
nLostFrameCount; ///< [OUT] \~chinese 丢帧数量 \~english Number of frames lost
unsigned int
nNetRecvFrameCount; ///< [OUT] \~chinese 保留 \~english Received Frame Count
int64_t
nRequestResendPacketCount; ///< [OUT] \~chinese 请求重发包数 \~english Request Resend Packet Count
int64_t
nResendPacketCount; ///< [OUT] \~chinese 重发包数 \~english Resend Packet Count
} MV_MATCH_INFO_NET_DETECT;
/// \~chinese host收到从u3v设备端的总字节数对应类型为 MV_MATCH_TYPE_USB_DETECT \~english The total number of bytes host received from the u3v device side, the corresponding type is MV_MATCH_TYPE_USB_DETECT
typedef struct _MV_MATCH_INFO_USB_DETECT_
{
int64_t
nReceiveDataSize; ///< [OUT] \~chinese 已接收数据大小 [Open和Close之间] \~english Received data size
unsigned int
nReceivedFrameCount; ///< [OUT] \~chinese 已收到的帧数 \~english Number of frames received
unsigned int
nErrorFrameCount; ///< [OUT] \~chinese 错误帧数 \~english Number of error frames
unsigned int
nReserved[2]; ///< \~chinese 保留 \~english Reserved
} MV_MATCH_INFO_USB_DETECT;
/// \~chinese 显示帧信息 \~english Display frame information
typedef struct _MV_DISPLAY_FRAME_INFO_
{
void * hWnd; ///< [IN] \~chinese 窗口句柄 \~english HWND
unsigned char * pData; ///< [IN] \~chinese 显示的数据 \~english Data Buffer
unsigned int nDataLen; ///< [IN] \~chinese 数据长度 \~english Data Size
unsigned short nWidth; ///< [IN] \~chinese 图像宽 \~english Width
unsigned short nHeight; ///< [IN] \~chinese 图像高 \~english Height
enum MvGvspPixelType
enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel format
unsigned int nRes[4]; ///< \~chinese 保留 \~english Reserved
} MV_DISPLAY_FRAME_INFO;
typedef struct _MV_DISPLAY_FRAME_INFO_EX_
{
unsigned int nWidth; ///< [IN] \~chinese 图像宽 \~english Width
unsigned int nHeight; ///< [IN] \~chinese 图像高 \~english Height
enum MvGvspPixelType
enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel type
unsigned char *
pImageBuf; ///< [IN] \~chinese 输入图像缓存 \~english Input image buffer
unsigned int
nImageBufLen; ///< [IN] \~chinese 输入图像长度 \~english Input image length
unsigned int nRes[4]; ///< \~chinese 保留 \~english Reserved
} MV_DISPLAY_FRAME_INFO_EX;
/// \~chinese 保存的3D数据格式 \~english The saved format for 3D data
enum MV_SAVE_POINT_CLOUD_FILE_TYPE
{
MV_PointCloudFile_Undefined =
0, ///< \~chinese 未定义的点云格式 \~english Undefined point cloud format
MV_PointCloudFile_PLY =
1, ///< \~chinese PLY点云格式 \~english The point cloud format named PLY
MV_PointCloudFile_CSV =
2, ///< \~chinese CSV点云格式 \~english The point cloud format named CSV
MV_PointCloudFile_OBJ =
3, ///< \~chinese OBJ点云格式 \~english The point cloud format named OBJ
};
/// \~chinese 保存3D数据到缓存 \~english Save 3D data to buffer
typedef struct _MV_SAVE_POINT_CLOUD_PARAM_
{
unsigned int
nLinePntNum; ///< [IN] \~chinese 行点数,即图像宽 \~english The number of points in each row,which is the width of the image
unsigned int
nLineNum; ///< [IN] \~chinese 行数,即图像高 \~english The number of rows,which is the height of the image
enum MvGvspPixelType
enSrcPixelType; ///< [IN] \~chinese 输入数据的像素格式 \~english The pixel format of the input data
unsigned char * pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length
unsigned char *
pDstBuf; ///< [OUT] \~chinese 输出像素数据缓存 \~english Output pixel data buffer
unsigned int
nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小(nLinePntNum * nLineNum * (16*3 + 4) + 2048) \~english Output buffer size provided(nLinePntNum * nLineNum * (16*3 + 4) + 2048)
unsigned int
nDstBufLen; ///< [OUT] \~chinese 输出像素数据缓存长度 \~english Output pixel data buffer size
MV_SAVE_POINT_CLOUD_FILE_TYPE
enPointCloudFileType; ///< [IN] \~chinese 提供输出的点云文件类型 \~english Output point data file type provided
unsigned int nReserved[8]; ///< \~chinese 保留字段 \~english Reserved
} MV_SAVE_POINT_CLOUD_PARAM;
/// \~chinese 保存图片格式 \~english Save image type
enum MV_SAVE_IAMGE_TYPE
{
MV_Image_Undefined =
0, ///< \~chinese 未定义的图像格式 \~english Undefined Image Type
MV_Image_Bmp = 1, ///< \~chinese BMP图像格式 \~english BMP Image Type
MV_Image_Jpeg = 2, ///< \~chinese JPEG图像格式 \~english Jpeg Image Type
MV_Image_Png = 3, ///< \~chinese PNG图像格式 \~english Png Image Type
MV_Image_Tif = 4, ///< \~chinese TIFF图像格式 \~english TIFF Image Type
};
/// \~chinese 图片保存参数 \~english Save Image Parameters
typedef struct _MV_SAVE_IMAGE_PARAM_EX3_
{
unsigned char * pData; ///< [IN] \~chinese 输入数据缓存 \~english Input Data Buffer
unsigned int nDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input Data length
enum MvGvspPixelType
enPixelType; ///< [IN] \~chinese 输入数据的像素格式 \~english Input Data Pixel Format
unsigned int nWidth; ///< [IN] \~chinese 图像宽 \~english Image Width
unsigned int nHeight; ///< [IN] \~chinese 图像高 \~english Image Height
unsigned char *
pImageBuffer; ///< [OUT] \~chinese 输出图片缓存 \~english Output Image Buffer
unsigned int nImageLen; ///< [OUT] \~chinese 输出图片长度 \~english Output Image length
unsigned int
nBufferSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Output buffer size provided
enum MV_SAVE_IAMGE_TYPE
enImageType; ///< [IN] \~chinese 输出图片格式 \~english Output Image Format
unsigned int
nJpgQuality; ///< [IN] \~chinese JPG编码质量(50-99],其它格式无效 \~english Encoding quality(50-99]Other formats are invalid
unsigned int
iMethodValue; ///< [IN] \~chinese 插值方法 0-快速 1-均衡 2-最优(其它值默认为最优) \~english Bayer interpolation method 0-Fast 1-Equilibrium 2-Optimal
unsigned int nReserved[3]; ///< \~chinese 预留 \~english Reserved
} MV_SAVE_IMAGE_PARAM_EX3;
// 保存图片到文件参数
typedef struct _MV_SAVE_IMAGE_TO_FILE_PARAM_EX_
{
unsigned int nWidth; // [IN] 图像宽
unsigned int nHeight; // [IN] 图像高
MvGvspPixelType enPixelType; // [IN] 输入数据的像素格式
unsigned char * pData; // [IN] 输入数据缓存
unsigned int nDataLen; // [IN] 输入数据大小
MV_SAVE_IAMGE_TYPE enImageType; // [IN] 输入图片格式
char * pcImagePath; // [IN] 输入文件路径
unsigned int nQuality; // [IN] JPG编码质量(50-99]PNG编码质量[0-9]
int iMethodValue; // [IN] 插值方法 0-快速 1-均衡 2-最优(其它值默认为最优)
unsigned int nReserved[8];
} MV_SAVE_IMAGE_TO_FILE_PARAM_EX;
/// \~chinese 旋转角度 \~english Rotation angle
typedef enum _MV_IMG_ROTATION_ANGLE_
{
MV_IMAGE_ROTATE_90 = 1,
MV_IMAGE_ROTATE_180 = 2,
MV_IMAGE_ROTATE_270 = 3,
} MV_IMG_ROTATION_ANGLE;
/// \~chinese 图像旋转结构体 \~english Rotate image structure
typedef struct _MV_CC_ROTATE_IMAGE_PARAM_T_
{
enum MvGvspPixelType
enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel format
unsigned int nWidth; ///< [IN][OUT] \~chinese 图像宽 \~english Width
unsigned int nHeight; ///< [IN][OUT] \~chinese 图像高 \~english Height
unsigned char * pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length
unsigned char * pDstBuf; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer
unsigned int nDstBufLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length
unsigned int
nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size
MV_IMG_ROTATION_ANGLE
enRotationAngle; ///< [IN] \~chinese 旋转角度 \~english Rotation angle
unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
} MV_CC_ROTATE_IMAGE_PARAM;
/// \~chinese 翻转类型 \~english Flip type
typedef enum _MV_IMG_FLIP_TYPE_
{
MV_FLIP_VERTICAL = 1,
MV_FLIP_HORIZONTAL = 2,
} MV_IMG_FLIP_TYPE;
/// \~chinese 图像翻转结构体 \~english Flip image structure
typedef struct _MV_CC_FLIP_IMAGE_PARAM_T_
{
enum MvGvspPixelType
enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel format
unsigned int nWidth; ///< [IN] \~chinese 图像宽 \~english Width
unsigned int nHeight; ///< [IN] \~chinese 图像高 \~english Height
unsigned char * pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length
unsigned char * pDstBuf; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer
unsigned int nDstBufLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length
unsigned int
nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size
MV_IMG_FLIP_TYPE enFlipType; ///< [IN] \~chinese 翻转类型 \~english Flip type
unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
} MV_CC_FLIP_IMAGE_PARAM;
/// \~chinese 像素转换结构体 \~english Pixel convert structure
typedef struct _MV_CC_PIXEL_CONVERT_PARAM_EX_
{
unsigned int nWidth; ///< [IN] \~chinese 图像宽 \~english Width
unsigned int nHeight; ///< [IN] \~chinese 图像高 \~english Height
enum MvGvspPixelType
enSrcPixelType; ///< [IN] \~chinese 源像素格式 \~english Source pixel format
unsigned char * pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length
enum MvGvspPixelType
enDstPixelType; ///< [IN] \~chinese 目标像素格式 \~english Destination pixel format
unsigned char *
pDstBuffer; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer
unsigned int nDstLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length
unsigned int
nDstBufferSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size
unsigned int nRes[4]; ///< \~chinese 预留 \~english Reserved
} MV_CC_PIXEL_CONVERT_PARAM_EX;
/// \~chinese Gamma类型 \~english Gamma type
typedef enum _MV_CC_GAMMA_TYPE_
{
MV_CC_GAMMA_TYPE_NONE = 0, ///< \~chinese 不启用 \~english Disable
MV_CC_GAMMA_TYPE_VALUE = 1, ///< \~chinese Gamma值 \~english Gamma value
MV_CC_GAMMA_TYPE_USER_CURVE =
2, ///< \~chinese Gamma曲线 \~english Gamma curve
///< \~chinese 8位,长度256*sizeof(unsigned char) \~english 8bit,length:256*sizeof(unsigned char)
///< \~chinese 10位,长度1024*sizeof(unsigned short) \~english 10bit,length:1024*sizeof(unsigned short)
///< \~chinese 12位,长度4096*sizeof(unsigned short) \~english 12bit,length:4096*sizeof(unsigned short)
///< \~chinese 16位,长度65536*sizeof(unsigned short) \~english 16bit,length:65536*sizeof(unsigned short)
MV_CC_GAMMA_TYPE_LRGB2SRGB =
3, ///< \~chinese linear RGB to sRGB \~english linear RGB to sRGB
MV_CC_GAMMA_TYPE_SRGB2LRGB =
4, ///< \~chinese sRGB to linear RGB(仅色彩插值时支持,色彩校正时无效) \~english sRGB to linear RGB
} MV_CC_GAMMA_TYPE;
// Gamma信息
/// \~chinese Gamma信息结构体 \~english Gamma info structure
typedef struct _MV_CC_GAMMA_PARAM_T_
{
MV_CC_GAMMA_TYPE enGammaType; ///< [IN] \~chinese Gamma类型 \~english Gamma type
float fGammaValue; ///< [IN] \~chinese Gamma值:0.1 ~ 4.0 \~english Gamma value:0.1 ~ 4.0
unsigned char *
pGammaCurveBuf; ///< [IN] \~chinese Gamma曲线缓存 \~english Gamma curve buffer
unsigned int
nGammaCurveBufLen; ///< [IN] \~chinese Gamma曲线长度 \~english Gamma curve buffer size
unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
} MV_CC_GAMMA_PARAM;
/// \~chinese CCM参数 \~english CCM param
typedef struct _MV_CC_CCM_PARAM_T_
{
bool bCCMEnable; ///< [IN] \~chinese 是否启用CCM \~english CCM enable
int nCCMat
[9]; ///< [IN] \~chinese CCM矩阵(-8192~8192) \~english Color correction matrix(-8192~8192)
unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
} MV_CC_CCM_PARAM;
/// \~chinese CCM参数 \~english CCM param
typedef struct _MV_CC_CCM_PARAM_EX_T_
{
bool bCCMEnable; ///< [IN] \~chinese 是否启用CCM \~english CCM enable
int nCCMat
[9]; ///< [IN] \~chinese CCM矩阵(-65536~65536) \~english Color correction matrix(-65536~65536)
unsigned int
nCCMScale; ///< [IN] \~chinese 量化系数2的整数幂,最大65536 \~english Quantitative scale(Integer power of 2, <= 65536)
unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
} MV_CC_CCM_PARAM_EX;
/// \~chinese 对比度调节结构体 \~english Contrast structure
typedef struct _MV_CC_CONTRAST_PARAM_T_
{
unsigned int nWidth; ///< [IN] \~chinese 图像宽度(最小8) \~english Image Width
unsigned int nHeight; ///< [IN] \~chinese 图像高度(最小8) \~english Image Height
unsigned char * pSrcBuf; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
unsigned int nSrcBufLen; ///< [IN] \~chinese 输入数据大小 \~english Input data length
enum MvGvspPixelType
enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel format
unsigned char * pDstBuf; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer
unsigned int
nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size
unsigned int nDstBufLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length
unsigned int
nContrastFactor; ///< [IN] \~chinese 对比度值,[1,10000] \~english Contrast factor,[1,10000]
unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
} MV_CC_CONTRAST_PARAM;
/// \~chinese 水印信息 \~english Frame-specific information
typedef struct _MV_CC_FRAME_SPEC_INFO_
{
/// \~chinese 设备水印时标 \~english Device frame-specific time scale
unsigned int nSecondCount; ///< [OUT] \~chinese 秒数 \~english The Seconds
unsigned int
nCycleCount; ///< [OUT] \~chinese 周期数 \~english The Count of Cycle
unsigned int
nCycleOffset; ///< [OUT] \~chinese 周期偏移量 \~english The Offset of Cycle
float fGain; ///< [OUT] \~chinese 增益 \~english Gain
float fExposureTime; ///< [OUT] \~chinese 曝光时间 \~english Exposure Time
unsigned int
nAverageBrightness; ///< [OUT] \~chinese 平均亮度 \~english Average brightness
/// \~chinese 白平衡相关 \~english White balance
unsigned int nRed; ///< [OUT] \~chinese 红色 \~english Red
unsigned int nGreen; ///< [OUT] \~chinese 绿色 \~english Green
unsigned int nBlue; ///< [OUT] \~chinese 蓝色 \~english Blue
unsigned int nFrameCounter; ///< [OUT] \~chinese 总帧数 \~english Frame Counter
unsigned int
nTriggerIndex; ///< [OUT] \~chinese 触发计数 \~english Trigger Counting
unsigned int nInput; ///< [OUT] \~chinese 输入 \~english Input
unsigned int nOutput; ///< [OUT] \~chinese 输出 \~english Output
/// \~chinese ROI区域 \~english ROI Region
unsigned short nOffsetX; ///< [OUT] \~chinese 水平偏移量 \~english OffsetX
unsigned short nOffsetY; ///< [OUT] \~chinese 垂直偏移量 \~english OffsetY
unsigned short
nFrameWidth; ///< [OUT] \~chinese 水印宽 \~english The Width of Chunk
unsigned short
nFrameHeight; ///< [OUT] \~chinese 水印高 \~english The Height of Chunk
unsigned int nReserved[16]; ///< \~chinese 预留 \~english Reserved
} MV_CC_FRAME_SPEC_INFO;
/// \~chinese 无损解码参数 \~english High Bandwidth decode structure
typedef struct _MV_CC_HB_DECODE_PARAM_T_
{
unsigned char * pSrcBuf; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
unsigned int nSrcLen; ///< [IN] \~chinese 输入数据大小 \~english Input data size
unsigned int nWidth; ///< [OUT] \~chinese 图像宽 \~english Width
unsigned int nHeight; ///< [OUT] \~chinese 图像高 \~english Height
unsigned char * pDstBuf; ///< [OUT] \~chinese 输出数据缓存 \~english Output data buffer
unsigned int
nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size
unsigned int nDstBufLen; ///< [OUT] \~chinese 输出数据大小 \~english Output data size
enum MvGvspPixelType
enDstPixelType; ///< [OUT] \~chinese 输出的像素格式 \~english Output pixel format
MV_CC_FRAME_SPEC_INFO
stFrameSpecInfo; ///< [OUT] \~chinese 水印信息 \~english Frame Spec Info
unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
} MV_CC_HB_DECODE_PARAM;
/// \~chinese 录像格式定义 \~english Record Format Type
typedef enum _MV_RECORD_FORMAT_TYPE_
{
MV_FormatType_Undefined =
0, ///< \~chinese 未定义的录像格式 \~english Undefined Recode Format Type
MV_FormatType_AVI =
1, ///< \~chinese AVI录像格式 \~english AVI Recode Format Type
} MV_RECORD_FORMAT_TYPE;
/// \~chinese 录像参数 \~english Record Parameters
typedef struct _MV_CC_RECORD_PARAM_T_
{
enum MvGvspPixelType
enPixelType; ///< [IN] \~chinese 输入数据的像素格式 \~english Pixel Type
unsigned short nWidth; ///< [IN] \~chinese 图像宽(2的倍数) \~english Width
unsigned short nHeight; ///< [IN] \~chinese 图像高(2的倍数) \~english Height
float fFrameRate; ///< [IN] \~chinese 帧率fps(大于1/16) \~english The Rate of Frame
unsigned int nBitRate; ///< [IN] \~chinese 码率kbps(128-16*1024) \~english The Rate of Bitrate
MV_RECORD_FORMAT_TYPE
enRecordFmtType; ///< [IN] \~chinese 录像格式 \~english Recode Format Type
char *
strFilePath; ///< [IN] \~chinese 录像文件存放路径(如果路径中存在中文需转成utf-8) \~english File Path
unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
} MV_CC_RECORD_PARAM;
/// \~chinese 传入的图像数据 \~english Input Data
typedef struct _MV_CC_INPUT_FRAME_INFO_T_
{
unsigned char * pData; ///< [IN] \~chinese 图像数据指针 \~english Record Data
unsigned int
nDataLen; ///< [IN] \~chinese 图像大小 \~english The Length of Record Data
unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
} MV_CC_INPUT_FRAME_INFO;
/// \~chinese 采集模式 \~english Acquisition mode
typedef enum _MV_CAM_ACQUISITION_MODE_
{
MV_ACQ_MODE_SINGLE = 0, ///< \~chinese 单帧模式 \~english Single Mode
MV_ACQ_MODE_MUTLI = 1, ///< \~chinese 多帧模式 \~english Multi Mode
MV_ACQ_MODE_CONTINUOUS = 2, ///< \~chinese 持续采集模式 \~english Continuous Mode
} MV_CAM_ACQUISITION_MODE;
/// \~chinese 增益模式 \~english Gain Mode
typedef enum _MV_CAM_GAIN_MODE_
{
MV_GAIN_MODE_OFF = 0, ///< \~chinese 关闭 \~english Single Mode
MV_GAIN_MODE_ONCE = 1, ///< \~chinese 一次 \~english Multi Mode
MV_GAIN_MODE_CONTINUOUS =
2, ///< \~chinese 连续 \~english Continuous Mode
} MV_CAM_GAIN_MODE;
/// \~chinese 曝光模式 \~english Exposure Mode
typedef enum _MV_CAM_EXPOSURE_MODE_
{
MV_EXPOSURE_MODE_TIMED = 0, ///< \~chinese 时间 \~english Timed
MV_EXPOSURE_MODE_TRIGGER_WIDTH =
1, ///< \~chinese 触发脉冲宽度 \~english TriggerWidth
} MV_CAM_EXPOSURE_MODE;
/// \~chinese 自动曝光模式 \~english Auto Exposure Mode
typedef enum _MV_CAM_EXPOSURE_AUTO_MODE_
{
MV_EXPOSURE_AUTO_MODE_OFF = 0, ///< \~chinese 关闭 \~english Off
MV_EXPOSURE_AUTO_MODE_ONCE = 1, ///< \~chinese 一次 \~english Once
MV_EXPOSURE_AUTO_MODE_CONTINUOUS =
2, ///< \~chinese 连续 \~english Continuous
} MV_CAM_EXPOSURE_AUTO_MODE;
/// \~chinese 触发模式 \~english Trigger Mode
typedef enum _MV_CAM_TRIGGER_MODE_
{
MV_TRIGGER_MODE_OFF = 0, ///< \~chinese 关闭 \~english Off
MV_TRIGGER_MODE_ON = 1, ///< \~chinese 打开 \~english ON
} MV_CAM_TRIGGER_MODE;
/// \~chinese Gamma选择器 \~english Gamma Selector
typedef enum _MV_CAM_GAMMA_SELECTOR_
{
MV_GAMMA_SELECTOR_USER =
1, ///< \~chinese 用户 \~english Gamma Selector User
MV_GAMMA_SELECTOR_SRGB =
2, ///< \~chinese sRGB \~english Gamma Selector sRGB
} MV_CAM_GAMMA_SELECTOR;
/// \~chinese 白平衡 \~english White Balance
typedef enum _MV_CAM_BALANCEWHITE_AUTO_
{
MV_BALANCEWHITE_AUTO_OFF = 0, ///< \~chinese 关闭 \~english Off
MV_BALANCEWHITE_AUTO_ONCE = 2, ///< \~chinese 一次 \~english Once
MV_BALANCEWHITE_AUTO_CONTINUOUS =
1, ///< \~chinese 连续 \~english Continuous
} MV_CAM_BALANCEWHITE_AUTO;
/// \~chinese 触发源 \~english Trigger Source
typedef enum _MV_CAM_TRIGGER_SOURCE_
{
MV_TRIGGER_SOURCE_LINE0 = 0, ///< \~chinese Line0 \~english Line0
MV_TRIGGER_SOURCE_LINE1 = 1, ///< \~chinese Line1 \~english Line1
MV_TRIGGER_SOURCE_LINE2 = 2, ///< \~chinese Line2 \~english Line2
MV_TRIGGER_SOURCE_LINE3 = 3, ///< \~chinese Line3 \~english Line3
MV_TRIGGER_SOURCE_COUNTER0 = 4, ///< \~chinese Conuter0 \~english Conuter0
MV_TRIGGER_SOURCE_SOFTWARE = 7, ///< \~chinese 软触发 \~english Software
MV_TRIGGER_SOURCE_FrequencyConverter =
8, ///< \~chinese 变频器 \~english Frequency Converter
} MV_CAM_TRIGGER_SOURCE;
/// \~chinese GigEVision IP配置 \~english GigEVision IP Configuration
#define MV_IP_CFG_STATIC 0x05000000 ///< \~chinese 静态 \~english Static
#define MV_IP_CFG_DHCP 0x06000000 ///< \~chinese DHCP \~english DHCP
#define MV_IP_CFG_LLA 0x04000000 ///< \~chinese LLA \~english LLA
/// \~chinese GigEVision网络传输模式 \~english GigEVision Net Transfer Mode
#define MV_NET_TRANS_DRIVER 0x00000001 ///< \~chinese 驱动 \~english Driver
#define MV_NET_TRANS_SOCKET 0x00000002 ///< \~chinese Socket \~english Socket
/// \~chinese CameraLink波特率 \~english CameraLink Baud Rates (CLUINT32)
#define MV_CAML_BAUDRATE_9600 0x00000001 ///< \~chinese 9600 \~english 9600
#define MV_CAML_BAUDRATE_19200 \
0x00000002 ///< \~chinese 19200 \~english 19200
#define MV_CAML_BAUDRATE_38400 \
0x00000004 ///< \~chinese 38400 \~english 38400
#define MV_CAML_BAUDRATE_57600 \
0x00000008 ///< \~chinese 57600 \~english 57600
#define MV_CAML_BAUDRATE_115200 \
0x00000010 ///< \~chinese 115200 \~english 115200
#define MV_CAML_BAUDRATE_230400 \
0x00000020 ///< \~chinese 230400 \~english 230400
#define MV_CAML_BAUDRATE_460800 \
0x00000040 ///< \~chinese 460800 \~english 460800
#define MV_CAML_BAUDRATE_921600 \
0x00000080 ///< \~chinese 921600 \~english 921600
#define MV_CAML_BAUDRATE_AUTOMAX \
0x40000000 ///< \~chinese 最大值 \~english Auto Max
/// \~chinese 异常消息类型 \~english Exception message type
#define MV_EXCEPTION_DEV_DISCONNECT \
0x00008001 ///< \~chinese 设备断开连接 \~english The device is disconnected
#define MV_EXCEPTION_VERSION_CHECK \
0x00008002 ///< \~chinese SDK与驱动版本不匹配 \~english SDK does not match the driver version
/// \~chinese U3V流异常类型
typedef enum _MV_CC_STREAM_EXCEPTION_TYPE_
{
MV_CC_STREAM_EXCEPTION_ABNORMAL_IMAGE = 0x4001, ///< \~chinese 异常的图像,该帧被丢弃
MV_CC_STREAM_EXCEPTION_LIST_OVERFLOW = 0x4002, ///< \~chinese 缓存列表溢出,清除最旧的一帧
MV_CC_STREAM_EXCEPTION_LIST_EMPTY = 0x4003, ///< \~chinese 缓存列表为空,该帧被丢弃
MV_CC_STREAM_EXCEPTION_RECONNECTION = 0x4004, ///< \~chinese 断流恢复
MV_CC_STREAM_EXCEPTION_DISCONNECTED = 0x4005, ///< \~chinese 断流,恢复失败,取流被中止
MV_CC_STREAM_EXCEPTION_DEVICE = 0x4006, ///< \~chinese 设备异常,取流被中止
} MV_CC_STREAM_EXCEPTION_TYPE;
///< \~chinese 设备Event事件名称最大长度 \~english Max length of event name
#define MAX_EVENT_NAME_SIZE 128
/// \~chinese Event事件回调信息\ \~english Event callback infomation
typedef struct _MV_EVENT_OUT_INFO_
{
char EventName
[MAX_EVENT_NAME_SIZE]; ///< [OUT] \~chinese Event名称 \~english Event name
unsigned short nEventID; ///< [OUT] \~chinese Event号 \~english Event ID
unsigned short
nStreamChannel; ///< [OUT] \~chinese 流通道序号 \~english Circulation number
unsigned int nBlockIdHigh; ///< [OUT] \~chinese 帧号高位 \~english BlockId high
unsigned int nBlockIdLow; ///< [OUT] \~chinese 帧号低位 \~english BlockId low
unsigned int
nTimestampHigh; ///< [OUT] \~chinese 时间戳高位 \~english Timestramp high
unsigned int nTimestampLow; ///< [OUT] \~chinese 时间戳低位 \~english Timestramp low
void * pEventData; ///< [OUT] \~chinese Event数据 \~english Event data
unsigned int nEventDataSize; ///< [OUT] \~chinese Event数据长度 \~english Event data len
unsigned int nReserved[16]; ///< \~chinese 预留 \~english Reserved
} MV_EVENT_OUT_INFO;
/// \~chinese 文件存取 \~english File Access
typedef struct _MV_CC_FILE_ACCESS_T
{
const char * pUserFileName; ///< [IN] \~chinese 用户文件名 \~english User file name
const char * pDevFileName; ///< [IN] \~chinese 设备文件名 \~english Device file name
unsigned int nReserved[32]; ///< \~chinese 预留 \~english Reserved
} MV_CC_FILE_ACCESS;
/// \~chinese 文件存取 \~english File Access
typedef struct _MV_CC_FILE_ACCESS_E
{
char *
pUserFileBuf; ///< [IN] \~chinese 用户数据缓存 \~english User data Buffer
unsigned int
pFileBufSize; ///< [IN] \~chinese 用户数据缓存大小 \~english data buffer size
unsigned int
pFileBufLen; ///< [OUT][IN] \~chinese 文件数据缓存总长度(读取时输出文件数据总长度,写入时输入文件数据总长度) \~english data buffer len
const char *
pDevFileName; ///< [IN] \~chinese 设备文件名 \~english Device file name
unsigned int nReserved
[32]; ///< \~chinese 预留 \~english Reserved
} MV_CC_FILE_ACCESS_EX;
/// \~chinese 文件存取进度 \~english File Access Progress
typedef struct _MV_CC_FILE_ACCESS_PROGRESS_T
{
int64_t nCompleted; ///< [OUT] \~chinese 已完成的长度 \~english Completed Length
int64_t nTotal; ///< [OUT] \~chinese 总长度 \~english Total Length
unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved
} MV_CC_FILE_ACCESS_PROGRESS;
/// \~chinese Gige的传输类型 \~english The transmission type of Gige
typedef enum _MV_GIGE_TRANSMISSION_TYPE_
{
MV_GIGE_TRANSTYPE_UNICAST =
0x0, ///< \~chinese 表示单播(默认) \~english Unicast mode
MV_GIGE_TRANSTYPE_MULTICAST =
0x1, ///< \~chinese 表示组播(组播IP范围[224.*.*.*-239.*.*.*]) \~english Multicast mode
MV_GIGE_TRANSTYPE_LIMITEDBROADCAST =
0x2, ///< \~chinese 表示局域网内广播,暂不支持 \~english Limited broadcast mode,not support
MV_GIGE_TRANSTYPE_SUBNETBROADCAST =
0x3, ///< \~chinese 表示子网内广播,暂不支持 \~english Subnet broadcast mode,not support
MV_GIGE_TRANSTYPE_CAMERADEFINED =
0x4, ///< \~chinese 表示从设备获取,暂不支持 \~english Transtype from camera,not support
MV_GIGE_TRANSTYPE_UNICAST_DEFINED_PORT =
0x5, ///< \~chinese 表示用户自定义应用端接收图像数据Port号 \~english User Defined Receive Data Port
MV_GIGE_TRANSTYPE_UNICAST_WITHOUT_RECV =
0x00010000, ///< \~chinese 表示设置了单播,但本实例不接收图像数据 \~english Unicast without receive data
MV_GIGE_TRANSTYPE_MULTICAST_WITHOUT_RECV =
0x00010001, ///< \~chinese 表示组播模式,但本实例不接收图像数据 \~english Multicast without receive data
} MV_GIGE_TRANSMISSION_TYPE;
/// \~chinese 网络传输模式 \~english Transmission type
typedef struct _MV_TRANSMISSION_TYPE_T
{
MV_GIGE_TRANSMISSION_TYPE
enTransmissionType; ///< [IN] \~chinese 传输模式 \~english Transmission type
unsigned int nDestIp; ///< [IN] \~chinese 目标IP组播模式下有意义 \~english Destination IP
unsigned short
nDestPort; ///< [IN] \~chinese 目标Port组播模式下有意义 \~english Destination port
unsigned int nReserved[32]; ///< \~chinese 预留 \~english Reserved
} MV_TRANSMISSION_TYPE;
/// \~chinese 动作命令信息 \~english Action Command
typedef struct _MV_ACTION_CMD_INFO_T
{
unsigned int
nDeviceKey; ///< [IN] \~chinese 设备密钥 \~english Device Key;
unsigned int
nGroupKey; ///< [IN] \~chinese 组键 \~english Group Key
unsigned int
nGroupMask; ///< [IN] \~chinese 组掩码 \~english Group Mask
unsigned int
bActionTimeEnable; ///< [IN] \~chinese 只有设置成1时Action Time才有效非1时无效 \~english Action Time Enable
int64_t
nActionTime; ///< [IN] \~chinese 预定的时间,和主频有关 \~english Action Time
const char *
pBroadcastAddress; ///< [IN] \~chinese 广播包地址 \~english Broadcast Address
unsigned int
nTimeOut; ///< [IN] \~chinese 等待ACK的超时时间如果为0表示不需要ACK \~english TimeOut
unsigned int
bSpecialNetEnable; ///< [IN] \~chinese 只有设置成1时指定的网卡IP才有效非1时无效 \~english Special IP Enable
unsigned int
nSpecialNetIP; ///< [IN] \~chinese 指定的网卡IP \~english Special Net IP address
unsigned int nReserved
[14]; ///< \~chinese 预留 \~english Reserved
} MV_ACTION_CMD_INFO;
/// \~chinese 动作命令返回信息 \~english Action Command Result
typedef struct _MV_ACTION_CMD_RESULT_T
{
unsigned char strDeviceAddress
[12 + 3 + 1]; ///< [OUT] \~chinese 设备IP \~english IP address of the device
int
nStatus; ///< [OUT] \~chinese 状态码 \~english status code returned by the device
//1.0x0000:success.
//2.0x8001:Command is not supported by the device.
//3.0x8013:The device is not synchronized to a master clock to be used as time reference.
//4.0x8015:A device queue or packet data has overflowed.
//5.0x8016:The requested scheduled action command was requested at a time that is already past.
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MV_ACTION_CMD_RESULT;
/// \~chinese 动作命令返回信息列表 \~english Action Command Result List
typedef struct _MV_ACTION_CMD_RESULT_LIST_T
{
unsigned int
nNumResults; ///< [OUT] \~chinese 返回值个数 \~english Number of returned values
MV_ACTION_CMD_RESULT *
pResults; ///< [OUT] \~chinese 动作命令结果 \~english Reslut of action command
} MV_ACTION_CMD_RESULT_LIST;
/// \~chinese 每个节点对应的接口类型 \~english Interface type corresponds to each node
enum MV_XML_InterfaceType
{
IFT_IValue, ///< \~chinese Value \~english IValue interface
IFT_IBase, ///< \~chinese Base \~english IBase interface
IFT_IInteger, ///< \~chinese Integer \~english IInteger interface
IFT_IBoolean, ///< \~chinese Boolean \~english IBoolean interface
IFT_ICommand, ///< \~chinese Command \~english ICommand interface
IFT_IFloat, ///< \~chinese Float \~english IFloat interface
IFT_IString, ///< \~chinese String \~english IString interface
IFT_IRegister, ///< \~chinese Register \~english IRegister interface
IFT_ICategory, ///< \~chinese Category \~english ICategory interface
IFT_IEnumeration, ///< \~chinese Enumeration \~english IEnumeration interface
IFT_IEnumEntry, ///< \~chinese EnumEntry \~english IEnumEntry interface
IFT_IPort, ///< \~chinese Port \~english IPort interface
};
/// \~chinese 节点的访问模式 \~english Node Access Mode
enum MV_XML_AccessMode
{
AM_NI, ///< \~chinese 不可实现 \~english Not implemented
AM_NA, ///< \~chinese 不可用 \~english Not available
AM_WO, ///< \~chinese 只写 \~english Write Only
AM_RO, ///< \~chinese 只读 \~english Read Only
AM_RW, ///< \~chinese 读写 \~english Read and Write
AM_Undefined, ///< \~chinese 未定义 \~english Object is not yet initialized
AM_CycleDetect, ///< \~chinese 内部用于AccessMode循环检测 \~english used internally for AccessMode cycle detection
};
/// \~chinese 最大XML符号数 \~english Max XML Symbolic Number
#define MV_MAX_XML_SYMBOLIC_NUM 64
/// \~chinese 枚举类型值 \~english Enumeration Value
typedef struct _MVCC_ENUMVALUE_T
{
unsigned int nCurValue; ///< [OUT] \~chinese 当前值 \~english Current Value
unsigned int
nSupportedNum; ///< [OUT] \~chinese 数据的有效数据个数 \~english Number of valid data
unsigned int nSupportValue
[MV_MAX_XML_SYMBOLIC_NUM]; ///< [OUT] \~chinese 支持的枚举值 \~english Support Value
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MVCC_ENUMVALUE;
/// \~chinese 最大枚举条目对应的符号长度 \~english Max Enum Entry Symbolic Number
#define MV_MAX_SYMBOLIC_LEN 64
/// \~chinese 枚举类型条目 \~english Enumeration Entry
typedef struct _MVCC_ENUMENTRY_T
{
unsigned int nValue; ///< [IN] \~chinese 指定值 \~english Value
char
chSymbolic[MV_MAX_SYMBOLIC_LEN]; ///< [OUT] \~chinese 指定值对应的符号 \~english Symbolic
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MVCC_ENUMENTRY;
/// \~chinese Int类型值 \~english Int Value
typedef struct _MVCC_INTVALUE_T
{
unsigned int nCurValue; ///< [OUT] \~chinese 当前值 \~english Current Value
unsigned int nMax; ///< [OUT] \~chinese 最大值 \~english Max
unsigned int nMin; ///< [OUT] \~chinese 最小值 \~english Min
unsigned int nInc; ///< [OUT] \~chinese \~english Inc
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MVCC_INTVALUE;
/// \~chinese Int类型值Ex \~english Int Value Ex
typedef struct _MVCC_INTVALUE_EX_T
{
int64_t nCurValue; ///< [OUT] \~chinese 当前值 \~english Current Value
int64_t nMax; ///< [OUT] \~chinese 最大值 \~english Max
int64_t nMin; ///< [OUT] \~chinese 最小值 \~english Min
int64_t nInc; ///< [OUT] \~chinese Inc \~english Inc
unsigned int nReserved[16]; ///< \~chinese 预留 \~english Reserved
} MVCC_INTVALUE_EX;
/// \~chinese Float类型值 \~english Float Value
typedef struct _MVCC_FLOATVALUE_T
{
float fCurValue; ///< [OUT] \~chinese 当前值 \~english Current Value
float fMax; ///< [OUT] \~chinese 最大值 \~english Max
float fMin; ///< [OUT] \~chinese 最小值 \~english Min
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MVCC_FLOATVALUE;
/// \~chinese String类型值 \~english String Value
typedef struct _MVCC_STRINGVALUE_T
{
char chCurValue[256]; ///< [OUT] \~chinese 当前值 \~english Current Value
int64_t nMaxLength; ///< [OUT] \~chinese 最大长度 \~english MaxLength
unsigned int nReserved[2]; ///< \~chinese 预留 \~english Reserved
} MVCC_STRINGVALUE;
/// \~chinese 辅助线颜色 \~english Color of Auxiliary Line
typedef struct _MVCC_COLORF
{
float
fR; ///< [IN] \~chinese 红色,根据像素颜色的相对深度,范围为[0.0 , 1.0],代表着[0, 255]的颜色深度 \~english RedRange[0.0, 1.0]
float
fG; ///< [IN] \~chinese 绿色,根据像素颜色的相对深度,范围为[0.0 , 1.0],代表着[0, 255]的颜色深度 \~english GreenRange[0.0, 1.0]
float
fB; ///< [IN] \~chinese 蓝色,根据像素颜色的相对深度,范围为[0.0 , 1.0],代表着[0, 255]的颜色深度 \~english BlueRange[0.0, 1.0]
float
fAlpha; ///< [IN] \~chinese 透明度,根据像素颜色的相对透明度,范围为[0.0 , 1.0] (此参数功能暂不支持) \~english AlphaRange[0.0, 1.0](Not Support)
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MVCC_COLORF;
/// \~chinese 自定义点 \~english Point defined
typedef struct _MVCC_POINTF
{
float
fX; ///< [IN] \~chinese 该点距离图像左边缘距离,根据图像的相对位置,范围为[0.0 , 1.0] \~english Distance From LeftRange[0.0, 1.0]
float
fY; ///< [IN] \~chinese 该点距离图像上边缘距离,根据图像的相对位置,范围为[0.0 , 1.0] \~english Distance From TopRange[0.0, 1.0]
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MVCC_POINTF;
/// \~chinese 矩形框区域信息 \~english Rect Area Info
typedef struct _MVCC_RECT_INFO
{
float
fTop; ///< [IN] \~chinese 矩形上边缘距离图像上边缘的距离,根据图像的相对位置,范围为[0.0 , 1.0] \~english Distance From TopRange[0, 1.0]
float
fBottom; ///< [IN] \~chinese 矩形下边缘距离图像上边缘的距离,根据图像的相对位置,范围为[0.0 , 1.0] \~english Distance From TopRange[0, 1.0]
float
fLeft; ///< [IN] \~chinese 矩形左边缘距离图像左边缘的距离,根据图像的相对位置,范围为[0.0 , 1.0] \~english Distance From LeftRange[0, 1.0]
float
fRight; ///< [IN] \~chinese 矩形右边缘距离图像左边缘的距离,根据图像的相对位置,范围为[0.0 , 1.0] \~english Distance From LeftRange[0, 1.0]
MVCC_COLORF
stColor; ///< [IN] \~chinese 辅助线颜色 \~english Color of Auxiliary Line
unsigned int
nLineWidth; ///< [IN] \~chinese 辅助线宽度宽度只能是1或2 \~english Width of Auxiliary Line, width is 1 or 2
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MVCC_RECT_INFO;
/// \~chinese 圆形框区域信息 \~english Circle Area Info
typedef struct _MVCC_CIRCLE_INFO
{
MVCC_POINTF
stCenterPoint; ///< [IN] \~chinese 圆心信息 \~english Circle Point Info
float
fR1; ///< [IN] \~chinese 宽向半径,根据图像的相对位置[0, 1.0],半径与圆心的位置有关,需保证画出的圆在显示框范围之内,否则报错 \~english Windth Radius, Range[0, 1.0]
float
fR2; ///< [IN] \~chinese 高向半径,根据图像的相对位置[0, 1.0],半径与圆心的位置有关,需保证画出的圆在显示框范围之内,否则报错 \~english Height Radius, Range[0, 1.0]
MVCC_COLORF
stColor; ///< [IN] \~chinese 辅助线颜色信息 \~english Color of Auxiliary Line
unsigned int
nLineWidth; ///< [IN] \~chinese 辅助线宽度宽度只能是1或2 \~english Width of Auxiliary Line, width is 1 or 2
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MVCC_CIRCLE_INFO;
/// \~chinese 线条辅助线信息 \~english Linear Auxiliary Line Info
typedef struct _MVCC_LINES_INFO
{
MVCC_POINTF
stStartPoint; ///< [IN] \~chinese 线条辅助线的起始点坐标 \~english The Start Point of Auxiliary Line
MVCC_POINTF
stEndPoint; ///< [IN] \~chinese 线条辅助线的终点坐标 \~english The End Point of Auxiliary Line
MVCC_COLORF
stColor; ///< [IN] \~chinese 辅助线颜色信息 \~english Color of Auxiliary Line
unsigned int
nLineWidth; ///< [IN] \~chinese 辅助线宽度宽度只能是1或2 \~english Width of Auxiliary Line, width is 1 or 2
unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved
} MVCC_LINES_INFO;
///< \~chinese 分时曝光时最多将源图像拆分的个数 \~english The maximum number of source image to be split in time-division exposure
#define MV_MAX_SPLIT_NUM 8
/// \~chinese 图像重构的方式 \~english Image reconstruction method
typedef enum _MV_IMAGE_RECONSTRUCTION_METHOD_
{
MV_SPLIT_BY_LINE =
1, ///< \~chinese 源图像按行拆分成多张图像 \~english Source image split into multiple images by line
} MV_IMAGE_RECONSTRUCTION_METHOD;
/// \~chinese 图像重构后的图像列表 \~english List of images after image reconstruction
typedef struct _MV_OUTPUT_IMAGE_INFO_
{
unsigned int
nWidth; ///< [OUT] \~chinese 源图像宽 \~english Source Image Width
unsigned int
nHeight; ///< [OUT] \~chinese 源图像高 \~english Source Image Height
enum MvGvspPixelType
enPixelType; ///< [OUT] \~chinese 像素格式 \~english Pixel format
unsigned char *
pBuf; ///< [IN][OUT] \~chinese 输出数据缓存 \~english Output data buffer
unsigned int
nBufLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length
unsigned int
nBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size
unsigned int nRes[8]; ///< \~chinese 预留 \~english Reserved
} MV_OUTPUT_IMAGE_INFO;
/// \~chinese 重构图像参数信息 \~english Restructure image parameters
typedef struct _MV_RECONSTRUCT_IMAGE_PARAM_
{
unsigned int nWidth; ///< [IN] \~chinese 源图像宽 \~english Source Image Width
unsigned int nHeight; ///< [IN] \~chinese 源图像高 \~english Source Image Height
enum MvGvspPixelType enPixelType; ///< [IN] \~chinese 像素格式 \~english Pixel format
unsigned char * pSrcData; ///< [IN] \~chinese 输入数据缓存 \~english Input data buffer
unsigned int nSrcDataLen; ///< [IN] \~chinese 输入数据长度 \~english Input data length
unsigned int nExposureNum; ///< [IN] \~chinese 曝光个数(1-8] \~english Exposure number
MV_IMAGE_RECONSTRUCTION_METHOD
enReconstructMethod; ///< [IN] \~chinese 图像重构方式 \~english Image restructuring method
MV_OUTPUT_IMAGE_INFO stDstBufList
[MV_MAX_SPLIT_NUM]; ///< [OUT] \~chinese 输出数据缓存信息 \~english Output data info
unsigned int nRes[4];
} MV_RECONSTRUCT_IMAGE_PARAM;
#endif /* _MV_CAMERA_PARAMS_H_ */