添加项目文件。

This commit is contained in:
CaiXiang
2025-06-09 09:09:25 +08:00
parent 75b909652e
commit 88acb23465
1054 changed files with 615623 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,118 @@
#ifndef _MV_CODEREADER_ERROR_DEFINE_H_
#define _MV_CODEREADER_ERROR_DEFINE_H_
// ch:正确码定义
#define MV_CODEREADER_OK 0x00000000 ///< 成功,无错误
//通用错误码定义:范围0x80020000-0x800200FF
#define MV_CODEREADER_E_HANDLE 0x80020000 ///< 错误或无效的句柄
#define MV_CODEREADER_E_SUPPORT 0x80020001 ///< 不支持的功能
#define MV_CODEREADER_E_BUFOVER 0x80020002 ///< 缓存已满
#define MV_CODEREADER_E_CALLORDER 0x80020003 ///< 函数调用顺序错误
#define MV_CODEREADER_E_PARAMETER 0x80020004 ///< 错误的参数
#define MV_CODEREADER_E_RESOURCE 0x80020005 ///< 资源申请失败
#define MV_CODEREADER_E_NODATA 0x80020006 ///< 无数据
#define MV_CODEREADER_E_PRECONDITION 0x80020007 ///< 前置条件有误,或运行环境已发生变化
#define MV_CODEREADER_E_VERSION 0x80020008 ///< 版本不匹配
#define MV_CODEREADER_E_NOENOUGH_BUF 0x80020009 ///< 传入的内存空间不足
#define MV_CODEREADER_E_ABNORMAL_IMAGE 0x8002000A ///< 异常图像,可能是丢包导致图像不完整
#define MV_CODEREADER_E_LOAD_LIBRARY 0x8002000B ///< 动态导入DLL失败
#define MV_CODEREADER_E_NOOUTBUF 0x8002000C ///< 没有可输出的缓存
#define MV_CODEREADER_E_FILE_PATH 0x8002000F ///< 文件路径错误
#define MV_CODEREADER_E_UNKNOW 0x800200FF ///< 未知的错误
// GenICam系列错误:范围0x80020100-0x800201FF
#define MV_CODEREADER_E_GC_GENERIC 0x80020100 ///< 通用错误
#define MV_CODEREADER_E_GC_ARGUMENT 0x80020101 ///< 参数非法
#define MV_CODEREADER_E_GC_RANGE 0x80020102 ///< 值超出范围
#define MV_CODEREADER_E_GC_PROPERTY 0x80020103 ///< 属性错误
#define MV_CODEREADER_E_GC_RUNTIME 0x80020104 ///< 运行环境有问题
#define MV_CODEREADER_E_GC_LOGICAL 0x80020105 ///< 逻辑错误
#define MV_CODEREADER_E_GC_ACCESS 0x80020106 ///< 节点访问条件有误
#define MV_CODEREADER_E_GC_TIMEOUT 0x80020107 ///< 超时
#define MV_CODEREADER_E_GC_DYNAMICCAST 0x80020108 ///< 转换异常
#define MV_CODEREADER_E_GC_UNKNOW 0x800201FF ///< GenICam未知错误
//GigE_STATUS对应的错误码:范围0x80000200-0x800002FF
#define MV_CODEREADER_E_NOT_IMPLEMENTED 0x80020200 ///< 命令不被设备支持
#define MV_CODEREADER_E_INVALID_ADDRESS 0x80020201 ///< 访问的目标地址不存在
#define MV_CODEREADER_E_WRITE_PROTECT 0x80020202 ///< 目标地址不可写
#define MV_CODEREADER_E_ACCESS_DENIED 0x80020203 ///< 设备无访问权限
#define MV_CODEREADER_E_BUSY 0x80020204 ///< 设备忙,或网络断开
#define MV_CODEREADER_E_PACKET 0x80020205 ///< 网络包数据错误
#define MV_CODEREADER_E_NETER 0x80020206 ///< 网络相关错误
// GigE相机特有的错误码
#define MV_CODEREADER_E_IP_CONFLICT 0x80020221 ///< 设备IP冲突
//USB_STATUS对应的错误码:范围0x80000300-0x800003FF
#define MV_CODEREADER_E_USB_READ 0x80020300 ///< 读usb出错
#define MV_CODEREADER_E_USB_WRITE 0x80020301 ///< 写usb出错
#define MV_CODEREADER_E_USB_DEVICE 0x80020302 ///< 设备异常
#define MV_CODEREADER_E_USB_GENICAM 0x80020303 ///< GenICam相关错误
#define MV_CODEREADER_E_USB_BANDWIDTH 0x80020304 ///< 带宽不足
#define MV_CODEREADER_E_USB_DRIVER 0x80020305 ///< 驱动不匹配或者未装驱动
#define MV_CODEREADER_E_USB_UNKNOW 0x800203FF ///< USB未知的错误
//升级时对应的错误码:范围0x80020400-0x800204FF
#define MV_CODEREADER_E_UPG_MIN_ERRCODE 0x80020400 ///< 升级模块错误码最小值
#define MV_CODEREADER_E_UPG_FILE_MISMATCH 0x80020400 ///< 升级固件不匹配
#define MV_CODEREADER_E_UPG_LANGUSGE_MISMATCH 0x80020401 ///< 升级固件语言不匹配
#define MV_CODEREADER_E_UPG_CONFLICT 0x80020402 ///< 升级冲突
#define MV_CODEREADER_E_UPG_INNER_ERR 0x80020403 ///< 升级时相机内部出现错误
#define MV_CODEREADER_E_UPG_REGRESH_TYPE_ERR 0x80020404 ///< 获取相机型号失败
#define MV_CODEREADER_E_UPG_COPY_FPGABIN_ERR 0x80020405 ///< 复制FPGA文件失败
#define MV_CODEREADER_E_UPG_ZIPEXTRACT_ERR 0x80020406 ///< ZIP文件解压失败
#define MV_CODEREADER_E_UPG_DAVEXTRACT_ERR 0x80020407 ///< DAV文件解压失败
#define MV_CODEREADER_E_UPG_DAVCOMPRESS_ERR 0x80020408 ///< DAV文件压缩失败
#define MV_CODEREADER_E_UPG_ZIPCOMPRESS_ERR 0x80020409 ///< ZIP文件压缩失败
#define MV_CODEREADER_E_UPG_GET_PROGRESS_TIMEOUT_ERR 0x80020410 ///< 获取升级进度超时
#define MV_CODEREADER_E_UPG_SEND_QUERY_PROGRESS_ERR 0x80020411 ///< 发送进度查询指令失败
#define MV_CODEREADER_E_UPG_RECV_QUERY_PROGRESS_ERR 0x80020412 ///< 接收进度查询指令失败
#define MV_CODEREADER_E_UPG_GET_QUERY_PROGRESS_ERR 0x80020413 ///< 获取查询进度失败
#define MV_CODEREADER_E_UPG_GET_MAX_QUERY_PROGRESS_ERR 0x80020414 ///< 获得最大进度失败
#define MV_CODEREADER_E_UPG_CHECKT_PACKET_FAILED 0x80020465 ///< 文件验证失败
#define MV_CODEREADER_E_UPG_FPGA_PROGRAM_FAILED 0x80020466 ///< FPGA程序升级失败
#define MV_CODEREADER_E_UPG_WATCHDOG_FAILED 0x80020467 ///< 看门狗升级失败
#define MV_CODEREADER_E_UPG_CAMERA_AND_BARE_FAILED 0x80020468 ///< 裸相机升级失败
#define MV_CODEREADER_E_UPG_RETAIN_CONFIG_FAILED 0x80020469 ///< 保留配置文件失败
#define MV_CODEREADER_E_UPG_FPGA_DRIVER_FAILED 0x8002046A ///< FPGA驱动升级失败
#define MV_CODEREADER_E_UPG_SPI_DRIVER_FAILED 0x8002046B ///< SPI驱动升级失败
#define MV_CODEREADER_E_UPG_REBOOT_SYSTEM_FAILED 0x8002046C ///< 重新启动失败
#define MV_CODEREADER_E_UPG_UPSELF_FAILED 0x8002046D ///< 升级服务升级失败
#define MV_CODEREADER_E_UPG_STOP_RELATION_PROGRAM_FAILED 0x8002046E ///< 停止相关服务失败
#define MV_CODEREADER_E_UPG_DEVCIE_TYPE_INCONSISTENT 0x8002046F ///< 设备类型不一致
#define MV_CODEREADER_E_UPG_READ_ENCRYPT_INFO_FAILED 0x80020470 ///< 读取加密信息失败
#define MV_CODEREADER_E_UPG_PLAT_TYPE_INCONSISTENT 0x80020471 ///< 设备平台错误
#define MV_CODEREADER_E_UPG_CAMERA_TYPE_INCONSISTENT 0x80020472 ///< 相机型号错误
#define MV_CODEREADER_E_UPG_DEVICE_UPGRADING 0x80020473 ///< 相机正在升级
#define MV_CODEREADER_E_UPG_UNZIP_FAILED 0x80020474 ///< 升级包解压失败
#define MV_CODEREADER_E_UPG_BLE_DISCONNECT 0x80020475 ///< 巴枪蓝牙未连接
#define MV_CODEREADER_E_UPG_BATTERY_NOTENOUGH 0x80020476 ///< 电量不足
#define MV_CODEREADER_E_UPG_RTC_NOT_PRESENT 0x80020477 ///< 巴枪未放在底座上
#define MV_CODEREADER_E_UPG_APP_ERR 0x80020478 ///< APP升级失败
#define MV_CODEREADER_E_UPG_L3_ERR 0x80020479 ///< L3升级失败
#define MV_CODEREADER_E_UPG_MCU_ERR 0x8002047A ///< MCU升级失败
#define MV_CODEREADER_E_UPG_PLATFORM_DISMATCH 0x8002047B ///< 平台不匹配
#define MV_CODEREADER_E_UPG_TYPE_DISMATCH 0x8002047C ///< 型号不匹配
#define MV_CODEREADER_E_UPG_SPACE_DISMATCH 0x8002047D ///< 空间不匹配
#define MV_CODEREADER_E_UPG_MEM_DISMATCH 0x8002047E ///< 内存不匹配
#define MV_CODEREADER_E_UPG_NET_TRANS_ERROR 0x8002047F ///< 网络传输异常,请重新升级
#define MV_CODEREADER_E_UPG_UNKNOW 0x800204FF ///< 升级时未知错误
//网络组件对应的错误码:范围0x80020500-0x800205FF
#define MV_CODEREADER_E_CREAT_SOCKET 0x80020500 ///< 创建Socket错误
#define MV_CODEREADER_E_BIND_SOCKET 0x80020501 ///< 绑定错误
#define MV_CODEREADER_E_CONNECT_SOCKET 0x80020502 ///< 连接错误
#define MV_CODEREADER_E_GET_HOSTNAME 0x80020503 ///< 获取主机名错误
#define MV_CODEREADER_E_NET_WRITE 0x80020504 ///< 写入数据错误
#define MV_CODEREADER_E_NET_READ 0x80020505 ///< 读取数据错误
#define MV_CODEREADER_E_NET_SELECT 0x80020506 ///< Select错误
#define MV_CODEREADER_E_NET_TIMEOUT 0x80020507 ///< 超时
#define MV_CODEREADER_E_NET_ACCEPT 0x80020508 ///< 接收错误
#define MV_CODEREADER_E_NET_UNKNOW 0x800205FF ///< 网络未知错误
#endif //_MVCODEREADER_ERROR_DEFINE_H_

View File

@@ -0,0 +1,878 @@
#ifndef _MV_CODEREADER_PARAMS_H_
#define _MV_CODEREADER_PARAMS_H_
#include "MvCodeReaderPixelType.h"
#ifndef __cplusplus
typedef char bool;
#define true 1
#define false 0
#endif
/********************************宏定义类型************************************************************/
// 设备类型定义
#define MV_CODEREADER_UNKNOW_DEVICE 0x00000000 // 未知设备类型
#define MV_CODEREADER_GIGE_DEVICE 0x00000001 // GigE设备
#define MV_CODEREADER_1394_DEVICE 0x00000002 // 1394-a/b 设备
#define MV_CODEREADER_USB_DEVICE 0x00000004 // USB3.0 设备
#define MV_CODEREADER_CAMERALINK_DEVICE 0x00000008 // CameraLink设备
#define MV_CODEREADER_ID_DEVICE 0x00000010
// 异常消息类型
#define MV_CODEREADER_EXCEPTION_DEV_DISCONNECT 0x00008001 // 设备断开连接
#define MV_CODEREADER_EXCEPTION_VERSION_CHECK 0x00008002 // SDK与驱动版本不匹配
// 设备的访问模式
// 独占权限其他APP只允许读CCP寄存器
#define MV_CODEREADER_ACCESS_Exclusive 1
// 可以从5模式下抢占权限然后以独占权限打开
#define MV_CODEREADER_ACCESS_ExclusiveWithSwitch 2
// 控制权限其他APP允许读所有寄存器
#define MV_CODEREADER_ACCESS_Control 3
// 可以从5的模式下抢占权限然后以控制权限打开
#define MV_CODEREADER_ACCESS_ControlWithSwitch 4
// 以可被抢占的控制权限打开
#define MV_CODEREADER_ACCESS_ControlSwitchEnable 5
// 可以从5的模式下抢占权限然后以可被抢占的控制权限打开
#define MV_CODEREADER_ACCESS_ControlSwitchEnableWithKey 6
// 读模式打开设备,适用于控制权限下
#define MV_CODEREADER_ACCESS_Monitor 7
// 设备信息最大长度
#define INFO_MAX_BUFFER_SIZE 64 // 最大信息长度
// 最大支持的设备个数
#define MV_CODEREADER_MAX_DEVICE_NUM 256
// 最大类型个数(适用于枚举类型)
#define MV_CODEREADER_MAX_XML_SYMBOLIC_NUM 64 // 支持最大枚举类型最大参数
// GigEVision IP配置方式
#define MV_CODEREADER_IP_CFG_STATIC 0x05000000 // 静态IP
#define MV_CODEREADER_IP_CFG_DHCP 0x06000000 // DHCP
#define MV_CODEREADER_IP_CFG_LLA 0x04000000 // LLA
// Event事件回调信息
#define MV_CODEREADER_MAX_EVENT_NAME_SIZE 128 // 相机Event事件名称最大长度
// 最大条码长度
#define MV_CODEREADER_MAX_BCR_CODE_LEN 256
// 最大条码长度扩展
#define MV_CODEREADER_MAX_BCR_CODE_LEN_EX 4096
// 最大OCR长度
#define MV_CODEREADER_MAX_OCR_LEN 128
// 一次最多输出条码个数
#define MAX_CODEREADER_BCR_COUNT 200
// 一次最多输出条码个数
#define MAX_CODEREADER_BCR_COUNT_EX 300
// 最大数据缓存
#define MV_CODEREADER_MAX_RESULT_SIZE (1024*64)
// 一次输出最大抠图个数
#define MAX_CODEREADER_WAYBILL_COUNT 50
// 一次输出最大OCR个数
#define MAX_CODEREADER_OCR_COUNT 100
// 输出协议类型
#define CommuPtlSmartSDK 1 // SamrtSDK协议
#define CommuPtlTcpIP 2 // TCPIP协议
#define CommuPtlSerial 3 // Serial协议
// 升级最大支持的设备个数
#define MV_CODEREADER_MAX_UPGARDEDEVICE_NUM 100
/************************************************************************/
/* 抠图参数,内部有默认值,可以不设置 */
/************************************************************************/
#define KEY_WAYBILL_ABILITY "WAYBILL_Ability" // 算法能力集,含面单提取[0x1],图像增强[0x2],码提取[0x4]Box拷贝模块[0x8],面单提取模块[0x10],模块最大编号[0x3F]
#define KEY_WAYBILL_MAX_WIDTH "WAYBILL_Max_Width" // 算法最大宽度默认5472范围[0,65535]
#define KEY_WAYBILL_MAX_HEIGHT "WAYBILL_Max_Height" // 算法最大高度默认3648范围[0,65535]
#define KEY_WAYBILL_OUTPUTIMAGETYPE "WAYBILL_OutputImageType" // 面单抠图输出的图片格式默认Jpg范围[1,3],1为Mono82为Jpg3为Bmp
#define KEY_WAYBILL_JPGQUALITY "WAYBILL_JpgQuality" // jpg编码质量默认80范围[1,100]
#define KEY_WAYBILL_ENHANCEENABLE "WAYBILL_EnhanceEnable" // 图像增强使能默认0范围[0,1]
#define KEY_WAYBILL_MINWIDTH "WAYBILL_MinWidth" // waybill最小宽, 宽是长边, 高是短边默认100范围[15,2592]
#define KEY_WAYBILL_MINHEIGHT "WAYBILL_MinHeight" // waybill最小高默认100范围[10,2048]
#define KEY_WAYBILL_MAXWIDTH "WAYBILL_MaxWidth" // waybill最大宽, 宽是长边, 高是短边默认3072最小值15
#define KEY_WAYBILL_MAXHEIGHT "WAYBILL_MaxHeight" // waybill最大高默认2048最小值10
#define KEY_WAYBILL_MORPHTIMES "WAYBILL_MorphTimes" // 膨胀次数默认0范围[0,10]
#define KEY_WAYBILL_GRAYLOW "WAYBILL_GrayLow" // 面单上条码和字符灰度最小值默认0范围[0,255]
#define KEY_WAYBILL_GRAYMID "WAYBILL_GrayMid" // 面单上灰度中间值用于区分条码和背景默认70范围[0,255]
#define KEY_WAYBILL_GRAYHIGH "WAYBILL_GrayHigh" // 面单上背景灰度最大值默认130范围[0,255]
#define KEY_WAYBILL_BINARYADAPTIVE "WAYBILL_BinaryAdaptive" // 自适应二值化默认1范围[0,1]
#define KEY_WAYBILL_BOUNDARYROW "WAYBILL_BoundaryRow" // 面单抠图行方向扩边默认0范围[0,2000]
#define KEY_WAYBILL_BOUNDARYCOL "WAYBILL_BoundaryCol" // 面单抠图列方向扩边默认0范围[0,2000]
#define KEY_WAYBILL_MAXBILLBARHEIGTHRATIO "WAYBILL_MaxBillBarHightRatio" // 最大面单和条码高度比例默认20范围[1,100]
#define KEY_WAYBILL_MAXBILLBARWIDTHRATIO "WAYBILL_MaxBillBarWidthRatio" // 最大面单和条码宽度比例默认5范围[1,100]
#define KEY_WAYBILL_MINBILLBARHEIGTHRATIO "WAYBILL_MinBillBarHightRatio" // 最小面单和条码高度比例默认5范围[1,100]
#define KEY_WAYBILL_MINBILLBARWIDTHRATIO "WAYBILL_MinBillBarWidthRatio" // 最小面单和条码宽度比例默认2范围[1,100]
#define KEY_WAYBILL_ENHANCEMETHOD "WAYBILL_EnhanceMethod" // 增强方法,最小值/默认值/不进行增强[0x1],线性拉伸[0x2],直方图拉伸[0x3],直方图均衡化[0x4],亮度校正/最大值[0x5]
#define KEY_WAYBILL_ENHANCECLIPRATIOLOW "WAYBILL_ClipRatioLow" // 增强拉伸低阈值比例默认1范围[0,100]
#define KEY_WAYBILL_ENHANCECLIPRATIOHIGH "WAYBILL_ClipRatioHigh" // 增强拉伸高阈值比例默认99范围[0,100]
#define KEY_WAYBILL_ENHANCECONTRASTFACTOR "WAYBILL_ContrastFactor" // 对比度系数默认100范围[1,10000]
#define KEY_WAYBILL_ENHANCESHARPENFACTOR "WAYBILL_SharpenFactor" // 锐化系数默认0范围[0,10000]
#define KEY_WAYBILL_SHARPENKERNELSIZE "WAYBILL_KernelSize" // 锐化滤波核大小默认3范围[3,15]
#define KEY_WAYBILL_CODEBOUNDARYROW "WAYBILL_CodeBoundaryRow" // 码单抠图行方向扩边默认0范围[0,2000]
#define KEY_WAYBILL_CODEBOUNDARYCOL "WAYBILL_CodeBoundaryCol" // 码单抠图列方向扩边默认0范围[0,2000]
/************************************************结构体类型**************************************************************/
// GigE设备信息
typedef struct _MV_CODEREADER_GIGE_DEVICE_INFO_
{
unsigned int nIpCfgOption; // 设备支持的IP类型
unsigned int nIpCfgCurrent; // 设备当前IP类型
unsigned int nCurrentIp; // 设备当前IP
unsigned int nCurrentSubNetMask; // 设备当前子网掩码
unsigned int nDefultGateWay; // 设备默认网关
unsigned char chManufacturerName[32]; // 设备厂商
unsigned char chModelName[32]; // 设备型号
unsigned char chDeviceVersion[32]; // 设备版本
unsigned char chManufacturerSpecificInfo[48]; // 设备厂商特殊信息
unsigned char chSerialNumber[16]; // 设备序列号
unsigned char chUserDefinedName[16]; // 设备用户自定义名称
unsigned int nNetExport; // 主机网口IP地址
unsigned int nCurUserIP; // 当前占用设备的用户IP
unsigned int nReserved[3]; // 保留字节
}MV_CODEREADER_GIGE_DEVICE_INFO;
// U3V设备信息
typedef struct _MV_CODEREADER_USB3_DEVICE_INFO_
{
unsigned char CrtlInEndPoint; // 控制输入端点
unsigned char CrtlOutEndPoint; // 控制输出端点
unsigned char StreamEndPoint; // 流端点
unsigned char EventEndPoint; // 事件端点
unsigned short idVendor; // 供应商ID号
unsigned short idProduct; // 产品ID号
unsigned int nDeviceNumber; // 设备序列号
unsigned char chDeviceGUID[INFO_MAX_BUFFER_SIZE]; // 设备GUID号
unsigned char chVendorName[INFO_MAX_BUFFER_SIZE]; // 供应商名称
unsigned char chModelName[INFO_MAX_BUFFER_SIZE]; // 设备型号
unsigned char chFamilyName[INFO_MAX_BUFFER_SIZE]; // 设备家族名称
unsigned char chDeviceVersion[INFO_MAX_BUFFER_SIZE]; // 设备版本
unsigned char chManufacturerName[INFO_MAX_BUFFER_SIZE]; // 设备厂商
unsigned char chSerialNumber[INFO_MAX_BUFFER_SIZE]; // 设备序列号
unsigned char chUserDefinedName[INFO_MAX_BUFFER_SIZE]; // 设备用户自定义名称
unsigned int nbcdUSB; // 设备支持的USB协议
unsigned int nReserved[3]; // 保留字节
}MV_CODEREADER_USB3_DEVICE_INFO;
// 设备信息
typedef struct _MV_CODEREADER_DEVICE_INFO_
{
unsigned short nMajorVer; // 设备主版本号
unsigned short nMinorVer; // 设备次版本号
unsigned int nMacAddrHigh; // 设备MAC地址高位
unsigned int nMacAddrLow; // 设备MAC地址低位
unsigned int nTLayerType; // 设备传输层协议类型
// 是否为指定系列型号相机
// true -指定系列型号相机 false- 非指定系列型号相机
bool bSelectDevice; // ch:选择设备 |en:Choose device
unsigned int nReserved[3]; // 保留字节
union
{
MV_CODEREADER_GIGE_DEVICE_INFO stGigEInfo; // GigE设备信息
MV_CODEREADER_USB3_DEVICE_INFO stUsb3VInfo; // U3V设备信息
// more ...
}SpecialInfo;
}MV_CODEREADER_DEVICE_INFO;
// 设备信息列表
typedef struct _MV_CODEREADER_DEVICE_INFO_LIST_
{
unsigned int nDeviceNum; // 在线设备数量
MV_CODEREADER_DEVICE_INFO* pDeviceInfo[MV_CODEREADER_MAX_DEVICE_NUM]; // 设备信息(支持最多256个设备)
}MV_CODEREADER_DEVICE_INFO_LIST;
// 输出帧信息
typedef struct _MV_CODEREADER_FRAME_OUT_INFO_
{
unsigned short nWidth; // 图像宽
unsigned short nHeight; // 图像高
enum MvCodeReaderGvspPixelType enPixelType; // 像素格式
unsigned int nFrameNum; // 帧号
unsigned int nDevTimeStampHigh; // 时间戳高32位
unsigned int nDevTimeStampLow; // 时间戳低32位
unsigned int nReserved0; // 保留8字节对齐
int64_t nHostTimeStamp; // 主机生成的时间戳
unsigned int nFrameLen; // 图像长度
unsigned int nLostPacket; // 本帧丢包数
unsigned int nReserved[2]; // 保留字节
}MV_CODEREADER_FRAME_OUT_INFO;
// ch:Chunk内容 | en:The content of ChunkData
typedef struct _MV_CODEREADER_CHUNK_DATA_CONTENT_
{
unsigned char* pChunkData;
unsigned int nChunkID;
unsigned int nChunkLen;
unsigned int nReserved[8]; // 保留
}MV_CODEREADER_CHUNK_DATA_CONTENT;
// 输出帧信息
typedef struct _MV_CODEREADER_FRAME_OUT_INFO_EX_
{
unsigned short nWidth; // 图像宽
unsigned short nHeight; // 图像高
enum MvCodeReaderGvspPixelType enPixelType; // 像素格式
unsigned int nFrameNum; // 帧号
unsigned int nDevTimeStampHigh; // 时间戳高32位
unsigned int nDevTimeStampLow; // 时间戳低32位
unsigned int nReserved0; // 保留8字节对齐
int64_t nHostTimeStamp; // 主机生成的时间戳
unsigned int nFrameLen; // 图像长度
// chunk新增水印信息
// 设备水印时标
unsigned int nSecondCount; // 秒数
unsigned int nCycleCount; // 循环计数
unsigned int nCycleOffset; // 循环计数偏移量
float fGain; // 增益
float fExposureTime; // 曝光时间
unsigned int nAverageBrightness; // 平均亮度
// 白平衡相关
unsigned int nRed; // 红色数据
unsigned int nGreen; // 绿色数据
unsigned int nBlue; // 蓝色数据
unsigned int nFrameCounter; // 图像数量计数
unsigned int nTriggerIndex; // 触发计数
// Line 输入/输出
unsigned int nInput; // 输入
unsigned int nOutput; // 输出
// ROI区域
unsigned short nOffsetX; // ROI X轴偏移
unsigned short nOffsetY; // ROI Y轴偏移
unsigned short nChunkWidth; // Chunk宽度
unsigned short nChunkHeight; // Chunk高度
unsigned int nLostPacket; // 本帧丢包数
unsigned int nUnparsedChunkNum; //未解析的Chunkdata个数
union
{
MV_CODEREADER_CHUNK_DATA_CONTENT* pUnparsedChunkContent;
int64_t nAligning;
}UnparsedChunkList;
unsigned int nReserved[36]; // 保留字节
}MV_CODEREADER_FRAME_OUT_INFO_EX;
// 图像显示信息
typedef struct _MV_CODEREADER_DISPLAY_FRAME_INFO_
{
void* hWnd; // 显示窗口句柄
unsigned char* pData; // 源图像数据
unsigned int nDataLen; // 源图像数据长度
unsigned short nWidth; // 源图像宽
unsigned short nHeight; // 源图像高
enum MvCodeReaderGvspPixelType enPixelType; // 源图像像素格式
unsigned int nRes[4]; // 保留字节
}MV_CODEREADER_DISPLAY_FRAME_INFO;
// 保存图片格式
enum MV_CODEREADER_IAMGE_TYPE
{
MV_CODEREADER_Image_Undefined = 0,
MV_CODEREADER_Image_Mono8 = 1,
MV_CODEREADER_Image_Jpeg = 2,
MV_CODEREADER_Image_Bmp = 3,
MV_CODEREADER_Image_RGB24 = 4,
MV_CODEREADER_Image_Png = 5, // Png图像(暂不支持)
MV_CODEREADER_Image_Tif = 6, // Tif图像(暂不支持)
};
// 保存图片参数
typedef struct _MV_CODEREADER_SAVE_IMAGE_PARAM_T_
{
unsigned char* pData; // 输入数据缓存
unsigned int nDataLen; // 输入数据大小
enum MvCodeReaderGvspPixelType enPixelType; // 输入数据的像素格式
unsigned short nWidth; // 图像宽
unsigned short nHeight; // 图像高
unsigned char* pImageBuffer; // 输出图片缓存
unsigned int nImageLen; // 输出图片大小
unsigned int nBufferSize; // 提供的输出缓冲区大小
enum MV_CODEREADER_IAMGE_TYPE enImageType; // 输出图片格式
}MV_CODEREADER_SAVE_IMAGE_PARAM;
// 图片保存参数
typedef struct _MV_CODEREADER_SAVE_IMAGE_PARAM_T_EX_
{
unsigned char* pData; // 输入数据缓存
unsigned int nDataLen; // 输入数据大小
enum MvCodeReaderGvspPixelType enPixelType; // 输入数据的像素格式
unsigned short nWidth; // 图像宽
unsigned short nHeight; // 图像高
unsigned char* pImageBuffer; // 输出图片缓存
unsigned int nImageLen; // 输出图片大小
unsigned int nBufferSize; // 提供的输出缓冲区大小
enum MV_CODEREADER_IAMGE_TYPE enImageType; // 输出图片格式
unsigned int nJpgQuality; // 编码质量, (50-99]
// 格式转为RGB24的插值方法 0-最近邻 1-双线性 2-Hamilton (如果传入其它值则默认为最近邻)
unsigned int iMethodValue; // 插值方式
unsigned int nReserved[3]; // 保留字节
}MV_CODEREADER_SAVE_IMAGE_PARAM_EX;
// 事件回调信息
typedef struct _MV_CODEREADER_EVENT_OUT_INFO_
{
char EventName[MV_CODEREADER_MAX_EVENT_NAME_SIZE]; // Event名称
unsigned short nEventID; // Event号
unsigned short nStreamChannel; // 流通道序号
unsigned int nBlockIdHigh; // 帧号高位
unsigned int nBlockIdLow; // 帧号低位
unsigned int nTimestampHigh; // 时间戳高位
unsigned int nTimestampLow; // 时间戳低位
void * pEventData; // Event数据
unsigned int nEventDataSize; // Event数据长度
unsigned int nReserved[16]; // 预留
}MV_CODEREADER_EVENT_OUT_INFO;
// 文件存取
typedef struct _MV_CODEREADER_FILE_ACCESS_T
{
const char * pUserFileName; // 用户文件名
const char * pDevFileName; // 设备文件名
unsigned int nReserved[32]; // 预留字节
}MV_CODEREADER_FILE_ACCESS;
// 文件存取进度
typedef struct _MV_CODEREADER_FILE_ACCESS_PROGRESS_T
{
int64_t nCompleted; // 已完成的长度
int64_t nTotal; // 总长度
unsigned int nReserved[8]; // 预留字节
}MV_CODEREADER_FILE_ACCESS_PROGRESS;
// Enum类型值
typedef struct _MV_CODEREADER_ENUMVALUE_T
{
unsigned int nCurValue; // 当前值
unsigned int nSupportedNum; // 有效数据个数
unsigned int nSupportValue[MV_CODEREADER_MAX_XML_SYMBOLIC_NUM]; // 支持的枚举类型
unsigned int nReserved[4]; // 保留字节
}MV_CODEREADER_ENUMVALUE;
// Int类型值
typedef struct _MV_CODEREADER_INTVALUE_T
{
unsigned int nCurValue; // 当前值
unsigned int nMax; // 最大值
unsigned int nMin; // 最小值
unsigned int nInc; // 增量值
unsigned int nReserved[4]; // 保留字节
}MV_CODEREADER_INTVALUE;
// Int类型值
typedef struct _MV_CODEREADER_INTVALUE_EX_T
{
int64_t nCurValue; // 当前值
int64_t nMax; // 最大值
int64_t nMin; // 最小值
int64_t nInc; // 增量值
unsigned int nReserved[16]; // 保留字节
}MV_CODEREADER_INTVALUE_EX;
// Float类型值
typedef struct _MV_CODEREADER_FLOATVALUE_T
{
float fCurValue; // 当前值
float fMax; // 最大值
float fMin; // 最小值
unsigned int nReserved[4]; // 保留字节
}MV_CODEREADER_FLOATVALUE;
// String类型值
typedef struct _MV_CODEREADER_STRINGVALUE_T
{
char chCurValue[256]; // 当前值
int64_t nMaxLength; // 最大长度
unsigned int nReserved[2]; // 保留字节
}MV_CODEREADER_STRINGVALUE;
// Int型坐标
typedef struct _MV_CODEREADER_POINT_I_
{
int x; // x坐标
int y; // y坐标
}MV_CODEREADER_POINT_I;
// Float型坐标
typedef struct _MV_CODEREADER_POINT_F_
{
float x; // x坐标
float y; // y坐标
}MV_CODEREADER_POINT_F;
// 输出帧信息
typedef struct _MV_CODEREADER_IMAGE_OUT_INFO_
{
unsigned short nWidth; // 图像宽
unsigned short nHeight; // 图像高
enum MvCodeReaderGvspPixelType enPixelType; // 像素或图片格式
unsigned int nTriggerIndex; // 触发序号
unsigned int nFrameNum; // 帧号
unsigned int nFrameLen; // 当前帧数据大小
unsigned int nTimeStampHigh; // 时间戳高32位
unsigned int nTimeStampLow; // 时间戳低32位
unsigned int nResultType; // 输出消息类型
unsigned char chResult[MV_CODEREADER_MAX_RESULT_SIZE]; // 根据消息类型对应不同结构体
bool bIsGetCode; // 是否读到条码
unsigned char* pImageWaybill; // 面单图像
unsigned int nImageWaybillLen; // 面单数据大小
enum MV_CODEREADER_IAMGE_TYPE enWaybillImageType; // 面单图像类型
unsigned int bFlaseTrigger; // 是否误触发
unsigned int nFocusScore; // 聚焦得分
unsigned int nChannelID; // 对应Stream通道序号
unsigned int nImageCost; // 帧图像在相机内部的处理耗时
unsigned int nReserved[6]; // 保留字节
}MV_CODEREADER_IMAGE_OUT_INFO;
// 条码信息
typedef struct _MV_CODEREADER_BCR_INFO_
{
unsigned int nID; // 条码ID
char chCode[MV_CODEREADER_MAX_BCR_CODE_LEN]; // 字符
unsigned int nLen; // 字符长度
unsigned int nBarType; // 条码类型
MV_CODEREADER_POINT_I pt[4]; // 条码位置
// 一维码以图像x正轴为基准顺时针0-3600度二维码以图像x正轴为基准逆时针0-3600度
int nAngle; // 条码角度(10倍)0~3600
unsigned int nMainPackageId; // 主包ID
unsigned int nSubPackageId; // 次包ID
unsigned short sAppearCount; // 条码被识别的次数
unsigned short sPPM; // PPM(10倍)
unsigned short sAlgoCost; // 算法耗时
unsigned short sSharpness; // 图像清晰度(10倍)
} MV_CODEREADER_BCR_INFO;
// 条码信息列表
typedef struct _MV_CODEREADER_RESULT_BCR_
{
unsigned int nCodeNum; // 条码数量
MV_CODEREADER_BCR_INFO stBcrInfo[MAX_CODEREADER_BCR_COUNT]; // 条码信息
unsigned int nReserved[4]; // 保留字节
}MV_CODEREADER_RESULT_BCR;
// 条码质量质量分5等[0,4], 越高等质量越好; 1D指一维码2D指二维码
typedef struct _MV_CODEREADER_CODE_INFO_
{
// 等级
int nOverQuality; // 总体质量评分1D/2D共用
int nDeCode; // 译码评分1D/2D共用
int nSCGrade; // Symbol Contrast对比度质量评分1D/2D共用
int nModGrade; // modulation模块均匀性评分1D/2D共用
// 2D等级
int nFPDGrade; // fixed_pattern_damage评分
int nANGrade; // axial_nonuniformity码轴规整性评分
int nGNGrade; // grid_nonuniformity基础grid均匀性质量评分
int nUECGrade; // unused_error_correction未使用纠错功能评分
int nPGHGrade; // Print Growth Horizontal 打印伸缩(水平)评分
int nPGVGrade; // Print Growth Veritical 打印伸缩(垂直)评分
// 分数
float fSCScore; // Symbol Contrast对比度质量分数1D/2D共用
float fModScore; // modulation模块均匀性分数1D/2D共用
// 2D分数
float fFPDScore; // fixed_pattern_damage分数
float fAnScore; // axial_nonuniformity码轴规整性分数
float fGNScore; // grid_nonuniformity基础grid均匀性质量分数
float fUECScore; // unused_error_correction未使用纠错功能分数
float fPGHScore; // Print Growth Horizontal 打印伸缩(水平)分数
float fPGVScore; // Print Growth Veritical 打印伸缩(垂直)分数
int nRMGrade; // reflectance margin反射率余量评分
float fRMScore; // reflectance margin反射率余量分数
// 1D等级
int n1DEdgeGrade; // edge determination 边缘确定度质量等级
int n1DMinRGrade; // minimum reflectance 最小反射率质量等级
int n1DMinEGrade; // minimum edge contrast 最小边缘对比度质量等级
int n1DDcdGrade; // decodability 可译码性质量等级
int n1DDefGrade; // defects 缺陷质量等级
int n1DQZGrade; // quiet zone 静区质量等级
// 1D分数
float f1DEdgeScore; // edge determination 边缘确定度分数
float f1DMinRScore; // minimum reflectance 最小反射率分数
float f1DMinEScore; // minimum edge contrast 最小边缘对比度分数
float f1DDcdScore; // decodability 可译码性分数
float f1DDefScore; // defects 缺陷分数
float f1DQZScore; // quiet zone 静区分数
int nReserved[18]; //预留
} MV_CODEREADER_CODE_INFO;
// 带质量信息的BCR信息
typedef struct _MV_CODEREADER_BCR_INFO_EX_
{
unsigned int nID; // 条码ID
char chCode[MV_CODEREADER_MAX_BCR_CODE_LEN]; // 字符识别长度为256
unsigned int nLen; // 字符长度
unsigned int nBarType; // 条码类型
MV_CODEREADER_POINT_I pt[4]; // 条码位置
MV_CODEREADER_CODE_INFO stCodeQuality; // 条码质量评价
// 一维码以图像x正轴为基准顺时针0-3600度二维码以图像x正轴为基准逆时针0-3600度
int nAngle; // 条码角度(10倍)0~3600
unsigned int nMainPackageId; // 主包ID
unsigned int nSubPackageId; // 次包ID
unsigned short sAppearCount; // 条码被识别的次数
unsigned short sPPM; // PPM(10倍)
unsigned short sAlgoCost; // 算法耗时(ms)
unsigned short sSharpness; // 清晰度
bool bIsGetQuality; // 是否支持二维码质量评级
unsigned int nIDRScore; // 读码评分
unsigned int n1DIsGetQuality; // 是否支持一维码质量评级(0-不支持 1-支持)
unsigned int nTotalProcCost; // 从触发开始到APP输出时间统计(ms)
unsigned int nTriggerTimeTvHigh; // 触发开始时间高32位(s)
unsigned int nTriggerTimeTvLow; // 触发开始时间低32位(s)
unsigned int nTriggerTimeUtvHigh; // 触发开始时间低32位(us)
unsigned int nTriggerTimeUtvLow; // 触发开始时间低32位(us)
unsigned int nReserved[24]; // 预留
} MV_CODEREADER_BCR_INFO_EX;
// 条码信息加条码质量列表
typedef struct _MV_CODEREADER_RESULT_BCR_EX_
{
unsigned int nCodeNum; // 条码数量
MV_CODEREADER_BCR_INFO_EX stBcrInfoEx[MAX_CODEREADER_BCR_COUNT]; // 条码信息
unsigned int nReserved[4]; // 保留字节
}MV_CODEREADER_RESULT_BCR_EX;
// 带质量信息且条码字符扩展的BCR信息
typedef struct _MV_CODEREADER_BCR_INFO_EX_2_
{
unsigned int nID; // 条码ID
char chCode[MV_CODEREADER_MAX_BCR_CODE_LEN_EX]; // 字符可识别长度扩展至4096
unsigned int nLen; // 字符实际真实长度
unsigned int nBarType; // 条码类型
MV_CODEREADER_POINT_I pt[4]; // 条码位置
MV_CODEREADER_CODE_INFO stCodeQuality; // 条码质量评价
// 一维码以图像x正轴为基准顺时针0-3600度二维码以图像x正轴为基准逆时针0-3600度
int nAngle; // 条码角度(10倍)0~3600
unsigned int nMainPackageId; // 主包ID
unsigned int nSubPackageId; // 次包ID
unsigned short sAppearCount; // 条码被识别的次数
unsigned short sPPM; // PPM(10倍)
unsigned short sAlgoCost; // 算法耗时(ms)
unsigned short sSharpness; // 清晰度
bool bIsGetQuality; // 是否支持二维码质量评级
unsigned int nIDRScore; // 读码评分
unsigned int n1DIsGetQuality; // 是否支持一维码质量评级(0-不支持 1-支持)
unsigned int nTotalProcCost; // 从触发开始到APP输出时间统计(ms)
unsigned int nTriggerTimeTvHigh; // 触发开始时间高32位(s)
unsigned int nTriggerTimeTvLow; // 触发开始时间低32位(s)
unsigned int nTriggerTimeUtvHigh; // 触发开始时间低32位(us)
unsigned int nTriggerTimeUtvLow; // 触发开始时间低32位(us)
int nReserved[59]; // 预留
} MV_CODEREADER_BCR_INFO_EX2;
// 条码信息字符扩展加条码质量列表
typedef struct _MV_CODEREADER_RESULT_BCR_EX_2_
{
unsigned int nCodeNum; // 条码数量(扩展)
MV_CODEREADER_BCR_INFO_EX2 stBcrInfoEx2[MAX_CODEREADER_BCR_COUNT_EX]; // 条码信息(条码字符扩展)
unsigned int nReserved[8]; // 保留字节
}MV_CODEREADER_RESULT_BCR_EX2;
// 抠图面单信息
typedef struct _MV_CODEREADER_WAYBILL_INFO_
{
// 面单坐标信息
float fCenterX; // 中心点列坐标
float fCenterY; // 中心点行坐标
float fWidth; // 矩形宽度,宽度为长半轴
float fHeight; // 矩形高度,高度为短半轴
float fAngle; // 矩形角度
float fConfidence; // 置信度
// 面单图片
unsigned char* pImageWaybill;
unsigned int nImageLen;
unsigned int nOcrRowNum; // 当前面单内的ocr行数
unsigned int nReserved[11];
}MV_CODEREADER_WAYBILL_INFO;
// 面单信息列表
typedef struct _MV_CODEREADER_WAYBILL_LIST_
{
unsigned int nWaybillNum; // 面单数量
enum MV_CODEREADER_IAMGE_TYPE enWaybillImageType; // 面单图像类型可选择bmp、raw、jpg输出
MV_CODEREADER_WAYBILL_INFO stWaybillInfo[MAX_CODEREADER_WAYBILL_COUNT]; // 面单信息
unsigned int nOcrAllNum; // 所有面单内的OCR总行数 面单1(ocr)+面单2(ocr)+...
unsigned int nReserved[3]; // 保留字节
}MV_CODEREADER_WAYBILL_LIST;
// OCR基础信息
typedef struct _MV_CODEREADER_OCR_ROW_INFO_
{
unsigned int nID; // OCR ID
unsigned int nOcrLen; // OCR字符实际真实长度
char chOcr[MV_CODEREADER_MAX_OCR_LEN]; // 识别到的OCR字符
float fCharConfidence; // 字符行整体置信度
unsigned int nOcrRowCenterX; // 单行OCR中心点列坐标
unsigned int nOcrRowCenterY; // 单行OCR中心点行坐标
unsigned int nOcrRowWidth; // 单行OCR矩形宽度宽度为长半轴
unsigned int nOcrRowHeight; // 单行OCR矩形高度高度为短半轴
float fOcrRowAngle; // 单行OCR矩形角度
float fDeteConfidence; // 单行OCR定位置信度
unsigned short sOcrAlgoCost; // OCR算法耗时 单位ms
unsigned short sReserved; // 预留
int nReserved[31];
}MV_CODEREADER_OCR_ROW_INFO;
// OCR信息列表
typedef struct _MV_CODEREADER_OCR_INFO_LIST_
{
unsigned int nOCRAllNum; // 所有面单内的OCR总行数
MV_CODEREADER_OCR_ROW_INFO stOcrRowInfo[MAX_CODEREADER_OCR_COUNT]; // OCR行基础信息
int nReserved[8]; // 保留字节
}MV_CODEREADER_OCR_INFO_LIST;
// 图像输出信息扩展(OCR信息)
typedef struct _MV_CODEREADER_IMAGE_OUT_INFO_EX_
{
unsigned short nWidth; // 图像宽
unsigned short nHeight; // 图像高
enum MvCodeReaderGvspPixelType enPixelType; // 像素或图片格式
unsigned int nTriggerIndex; // 触发序号
unsigned int nFrameNum; // 帧号
unsigned int nFrameLen; // 当前帧数据大小
unsigned int nTimeStampHigh; // 时间戳高32位
unsigned int nTimeStampLow; // 时间戳低32位
unsigned int bFlaseTrigger; // 是否误触发
unsigned int nFocusScore; // 聚焦得分
bool bIsGetCode; // 是否读到条码
MV_CODEREADER_RESULT_BCR* pstCodeList; // 条码信息列表
MV_CODEREADER_WAYBILL_LIST* pstWaybillList; // 面单信息
unsigned int nEventID; // 事件ID
unsigned int nChannelID; // 对应Stream通道序号
unsigned int nImageCost; // 帧图像在相机内部的处理耗时
union
{
MV_CODEREADER_OCR_INFO_LIST* pstOcrList; // OCR信息
int64_t nAligning;
}UnparsedOcrList;
unsigned int nReserved[4]; // 保留字节
}MV_CODEREADER_IMAGE_OUT_INFO_EX;
// 图像输出信息扩展(条码信息扩展条码最大个数条码字符长度扩展为4096)
typedef struct _MV_CODEREADER_IMAGE_OUT_INFO_EX_2_
{
unsigned short nWidth; // 图像宽
unsigned short nHeight; // 图像高
enum MvCodeReaderGvspPixelType enPixelType; // 像素或图片格式
unsigned int nTriggerIndex; // 触发序号
unsigned int nFrameNum; // 帧号
unsigned int nFrameLen; // 当前帧数据大小
unsigned int nTimeStampHigh; // 时间戳高32位
unsigned int nTimeStampLow; // 时间戳低32位
unsigned int bFlaseTrigger; // 是否误触发
unsigned int nFocusScore; // 聚焦得分
bool bIsGetCode; // 是否读到条码
MV_CODEREADER_RESULT_BCR_EX* pstCodeListEx; // 条码信息列表
MV_CODEREADER_WAYBILL_LIST* pstWaybillList; // 面单信息
unsigned int nEventID; // 事件ID
unsigned int nChannelID; // 对应Stream通道序号
unsigned int nImageCost; // 帧图像在相机内部的处理耗时
union
{
MV_CODEREADER_RESULT_BCR_EX2* pstCodeListEx2; // 条码信息(条码字符长度扩展)建议以该扩展条码字符的条码信息解析条码
int64_t nAligning;
}UnparsedBcrList;
union
{
MV_CODEREADER_OCR_INFO_LIST* pstOcrList; // OCR信息
int64_t nAligning;
}UnparsedOcrList;
unsigned int nReserved[26]; // 保留字节
}MV_CODEREADER_IMAGE_OUT_INFO_EX2;
// 触发信息
typedef struct _MV_CODEREADER_TRIGGER_INFO_DATA_
{
unsigned int nTriggerIndex; // 触发序号 即同步触发号
unsigned int nTriggerFlag; //触发状态 1开始 0结束
// 当前的触发状态对应的时间戳分高、低位传输各4个字节
unsigned int nTriggerTimeHigh; // 触发时间高4位
unsigned int nTriggerTimeLow; // 触发时间低4位
unsigned int nOriginalTrigger; // 原生触发号(相机自带的触发号)
unsigned short nIsForceOver; // 是否强制结束0--正常结束 1--强制结束 属于相机内部机制主动传输 上层无法设置生效)
unsigned short nIsMainCam; // 主从标记 1--主相机 0--从相机
int64_t nHostTimeStamp; // 主机生成的时间戳
unsigned int reserved[30]; // 预留
}MV_CODEREADER_TRIGGER_INFO_DATA;
// 触发模式
typedef enum _MV_CODEREADER_TRIGGER_MODE_
{
MV_CODEREADER_TRIGGER_MODE_OFF = 0, // 触发关闭
MV_CODEREADER_TRIGGER_MODE_ON = 1, // 触发打开
}MV_CODEREADER_TRIGGER_MODE;
// 触发源
typedef enum _MV_CODEREADER_TRIGGER_SOURCE_
{
MV_CODEREADER_TRIGGER_SOURCE_LINE0 = 0, // Line0
MV_CODEREADER_TRIGGER_SOURCE_LINE1 = 1, // Line1
MV_CODEREADER_TRIGGER_SOURCE_LINE2 = 2, // Line2
MV_CODEREADER_TRIGGER_SOURCE_LINE3 = 3, // Line3
MV_CODEREADER_TRIGGER_SOURCE_COUNTER0 = 4, // 计数器0触发
MV_CODEREADER_TRIGGER_SOURCE_TCPSERVERSTART = 5, // Tcp服务器触发
MV_CODEREADER_TRIGGER_SOURCE_UDPSTART = 6, // Udp触发
MV_CODEREADER_TRIGGER_SOURCE_SOFTWARE = 7, // 软触发
MV_CODEREADER_TRIGGER_SOURCE_SERIALSTART = 8, // 串口触发
MV_CODEREADER_TRIGGER_SOURCE_SELFTRIGGER = 9, // 自触发
MV_CODEREADER_TRIGGER_SOURCE_MAINSUB = 10, // 主从触发
MV_CODEREADER_TRIGGER_SOURCE_TCPCLIENTSTART = 12, // Tcp客户端触发
}MV_CODEREADER_TRIGGER_SOURCE;
// 条码类型
typedef enum _MV_CODEREADER_CODE_TYPE_
{
MV_CODEREADER_CODE_NONE = 0, // 无可识别条码
// 二维码
MV_CODEREADER_TDCR_DM = 1, // DM码
MV_CODEREADER_TDCR_QR = 2, // QR码
MV_CODEREADER_TDCR_MICROQR = 140, // MicroQR码
// 一维码
MV_CODEREADER_BCR_EAN8 = 8, // EAN8码
MV_CODEREADER_BCR_UPCE = 9, // UPCE码
MV_CODEREADER_BCR_UPCA = 12, // UPCA码
MV_CODEREADER_BCR_EAN13 = 13, // EAN13码
MV_CODEREADER_BCR_ISBN13 = 14, // ISBN13码
MV_CODEREADER_BCR_CODABAR = 20, // 库德巴码
MV_CODEREADER_BCR_ITF25 = 25, // 交叉25码
MV_CODEREADER_BCR_CODE39 = 39, // Code 39
MV_CODEREADER_BCR_CODE93 = 93, // Code 93
MV_CODEREADER_BCR_CODE128 = 128, // Code 128
MV_CODEREADER_TDCR_PDF417 = 131, // PDF417码
MV_CODEREADER_BCR_MATRIX25 = 26, // MATRIX25码
MV_CODEREADER_BCR_MSI = 30, // MSI码
MV_CODEREADER_BCR_CODE11 = 31, // code11
MV_CODEREADER_BCR_INDUSTRIAL25 = 32, // industrial25
MV_CODEREADER_BCR_CHINAPOST = 33, // 中国邮政码
MV_CODEREADER_BCR_ITF14 = 27, // 交叉14码
MV_CODEREADER_BCR_PHARMACODE = 36, // Pharmacode码
MV_CODEREADER_BCR_PHARMACODE2D = 37, // Pharmacode Two Track码
MV_CODEREADER_TDCR_ECC140 = 133, // ECC140码制
MV_CODEREADER_TDCR_AZTEC = 132, // AZTEC码
}MV_CODEREADER_CODE_TYPE;
// 节点访问模式
enum MV_CODEREADER_XML_AccessMode
{
MV_CODEREADER_AM_NI, // 节点未实现
MV_CODEREADER_AM_NA, // 节点不可达
MV_CODEREADER_AM_WO, // 节点只写
MV_CODEREADER_AM_RO, // 节点只读
MV_CODEREADER_AM_RW, // 节点可读可写
MV_CODEREADER_AM_Undefined, // 节点未定义
MV_CODEREADER_AM_CycleDetect, // 节点需周期检测
};
// 每个节点对应的接口类型
enum MV_CODEREADER_XML_InterfaceType
{
MV_CODEREADER_IFT_IValue, // Value类型值
MV_CODEREADER_IFT_IBase, // Base类型值
MV_CODEREADER_IFT_IInteger, // Integer类型值
MV_CODEREADER_IFT_IBoolean, // Boolean类型值
MV_CODEREADER_IFT_ICommand, // Command类型值
MV_CODEREADER_IFT_IFloat, // Float类型值
MV_CODEREADER_IFT_IString, // String类型值
MV_CODEREADER_IFT_IRegister, // Register类型值
MV_CODEREADER_IFT_ICategory, // Category类型值
MV_CODEREADER_IFT_IEnumeration, // Enumeration类型值
MV_CODEREADER_IFT_IEnumEntry, // EnumEntry类型值
MV_CODEREADER_IFT_IPort, // Port类型值
};
// 输出信息类型
enum MvCodeReaderType
{
CodeReader_ResType_NULL = 0, // 没有结果输出
CodeReader_ResType_BCR = 1, // 输出信息为BCR(对应结构体 MV_CODEREADER_RESULT_BCR)
};
/************************************************************************/
/* 升级相关高级参数 */
/************************************************************************/
// 设备运行状态
enum MV_CODEREADER_PROGRAM_STATE
{
MV_CODEREADER_PROGRAM_UNKNOWN, // 未知状态
MV_CODEREADER_PROGRAM_RUNNING, // 设备正在运行
MV_CODEREADER_PROGRAM_STOP // 设备停止运行
};
// 设备当前连接状态
typedef enum _MV_CODEREADER_DEVICE_CONNECT_STATUS_
{
MV_CODEREADER_DEVICE_STATUS_FREE = 1, // 空闲状态
MV_CODEREADER_DEVICE_STATUS_BASE = 2, // 第三方连接状态
}MV_CODEREADER_DEVICE_CONNECT_STATUS;
//明场/暗场矫正模式
typedef enum _MV_CODEREADER_FIELD_CORRECT_MODE_
{
MV_CODEREADER_DARK_FILED_CORRECT = 0, // 暗场校验
MV_CODEREADER_BRIGHT_FILED_CORRECT = 1, // 明场校验
MV_CODEREADER_INVAILED_FILED_CORRECT = 2, // 无效校验
}MV_CODEREADER_FIELD_CORRECT_MODE;
#endif /* _MV_CODEREADER_PARAMS_H_ */

View File

@@ -0,0 +1,139 @@
#ifndef _MV_CODEREADER_PIXEL_TYPE_H_
#define _MV_CODEREADER_PIXEL_TYPE_H_
/************************************************************************/
/* GigE Vision (2.0.03) PIXEL FORMATS */
/************************************************************************/
// Indicate if pixel is monochrome or RGB
#define MV_CODEREADER_GVSP_PIX_MONO 0x01000000
#define MV_CODEREADER_GVSP_PIX_RGB 0x02000000 // deprecated in version 1.1
#define MV_CODEREADER_GVSP_PIX_COLOR 0x02000000
#define MV_CODEREADER_GVSP_PIX_CUSTOM 0x80000000
#define MV_CODEREADER_GVSP_PIX_COLOR_MASK 0xFF000000
// Indicate effective number of bits occupied by the pixel (including padding).
// This can be used to compute amount of memory required to store an image.
#define MV_CODEREADER_PIXEL_BIT_COUNT(n) ((n) << 16)
#define MV_CODEREADER_GVSP_PIX_EFFECTIVE_PIXEL_SIZE_MASK 0x00FF0000
#define MV_CODEREADER_GVSP_PIX_EFFECTIVE_PIXEL_SIZE_SHIFT 16
// Pixel ID: lower 16-bit of the pixel formats
#define MV_CODEREADER_GVSP_PIX_ID_MASK 0x0000FFFF
#define MV_CODEREADER_GVSP_PIX_COUNT 0x46 // next Pixel ID available
enum MvCodeReaderGvspPixelType
{
// Undefined pixel type
#ifdef WIN32
PixelType_CodeReader_Gvsp_Undefined = 0xFFFFFFFF,
#else
PixelType_CodeReader_Gvsp_Undefined = -1,
#endif
// Mono buffer format defines
PixelType_CodeReader_Gvsp_Mono1p = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(1) | 0x0037),
PixelType_CodeReader_Gvsp_Mono2p = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(2) | 0x0038),
PixelType_CodeReader_Gvsp_Mono4p = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(4) | 0x0039),
PixelType_CodeReader_Gvsp_Mono8 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(8) | 0x0001),
PixelType_CodeReader_Gvsp_Mono8_Signed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(8) | 0x0002),
PixelType_CodeReader_Gvsp_Mono10 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0003),
PixelType_CodeReader_Gvsp_Mono10_Packed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x0004),
PixelType_CodeReader_Gvsp_Mono12 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0005),
PixelType_CodeReader_Gvsp_Mono12_Packed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x0006),
PixelType_CodeReader_Gvsp_Mono14 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0025),
PixelType_CodeReader_Gvsp_Mono16 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0007),
// Bayer buffer format defines
PixelType_CodeReader_Gvsp_BayerGR8 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(8) | 0x0008),
PixelType_CodeReader_Gvsp_BayerRG8 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(8) | 0x0009),
PixelType_CodeReader_Gvsp_BayerGB8 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(8) | 0x000A),
PixelType_CodeReader_Gvsp_BayerBG8 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(8) | 0x000B),
PixelType_CodeReader_Gvsp_BayerGR10 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x000C),
PixelType_CodeReader_Gvsp_BayerRG10 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x000D),
PixelType_CodeReader_Gvsp_BayerGB10 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x000E),
PixelType_CodeReader_Gvsp_BayerBG10 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x000F),
PixelType_CodeReader_Gvsp_BayerGR12 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0010),
PixelType_CodeReader_Gvsp_BayerRG12 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0011),
PixelType_CodeReader_Gvsp_BayerGB12 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0012),
PixelType_CodeReader_Gvsp_BayerBG12 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0013),
PixelType_CodeReader_Gvsp_BayerGR10_Packed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x0026),
PixelType_CodeReader_Gvsp_BayerRG10_Packed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x0027),
PixelType_CodeReader_Gvsp_BayerGB10_Packed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x0028),
PixelType_CodeReader_Gvsp_BayerBG10_Packed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x0029),
PixelType_CodeReader_Gvsp_BayerGR12_Packed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x002A),
PixelType_CodeReader_Gvsp_BayerRG12_Packed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x002B),
PixelType_CodeReader_Gvsp_BayerGB12_Packed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x002C),
PixelType_CodeReader_Gvsp_BayerBG12_Packed = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x002D),
PixelType_CodeReader_Gvsp_BayerGR16 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x002E),
PixelType_CodeReader_Gvsp_BayerRG16 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x002F),
PixelType_CodeReader_Gvsp_BayerGB16 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0030),
PixelType_CodeReader_Gvsp_BayerBG16 = (MV_CODEREADER_GVSP_PIX_MONO | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0031),
// RGB Packed buffer format defines
PixelType_CodeReader_Gvsp_RGB8_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(24) | 0x0014),
PixelType_CodeReader_Gvsp_BGR8_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(24) | 0x0015),
PixelType_CodeReader_Gvsp_RGBA8_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(32) | 0x0016),
PixelType_CodeReader_Gvsp_BGRA8_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(32) | 0x0017),
PixelType_CodeReader_Gvsp_RGB10_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(48) | 0x0018),
PixelType_CodeReader_Gvsp_BGR10_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(48) | 0x0019),
PixelType_CodeReader_Gvsp_RGB12_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(48) | 0x001A),
PixelType_CodeReader_Gvsp_BGR12_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(48) | 0x001B),
PixelType_CodeReader_Gvsp_RGB16_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(48) | 0x0033),
PixelType_CodeReader_Gvsp_RGB10V1_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(32) | 0x001C),
PixelType_CodeReader_Gvsp_RGB10V2_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(32) | 0x001D),
PixelType_CodeReader_Gvsp_RGB12V1_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(36) | 0X0034),
PixelType_CodeReader_Gvsp_RGB565_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0035),
PixelType_CodeReader_Gvsp_BGR565_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0X0036),
// YUV Packed buffer format defines
PixelType_CodeReader_Gvsp_YUV411_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x001E),
PixelType_CodeReader_Gvsp_YUV422_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x001F),
PixelType_CodeReader_Gvsp_YUV422_YUYV_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0032),
PixelType_CodeReader_Gvsp_YUV444_Packed = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(24) | 0x0020),
PixelType_CodeReader_Gvsp_YCBCR8_CBYCR = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(24) | 0x003A),
PixelType_CodeReader_Gvsp_YCBCR422_8 = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x003B),
PixelType_CodeReader_Gvsp_YCBCR422_8_CBYCRY = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0043),
PixelType_CodeReader_Gvsp_YCBCR411_8_CBYYCRYY = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x003C),
PixelType_CodeReader_Gvsp_YCBCR601_8_CBYCR = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(24) | 0x003D),
PixelType_CodeReader_Gvsp_YCBCR601_422_8 = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x003E),
PixelType_CodeReader_Gvsp_YCBCR601_422_8_CBYCRY = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0044),
PixelType_CodeReader_Gvsp_YCBCR601_411_8_CBYYCRYY = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x003F),
PixelType_CodeReader_Gvsp_YCBCR709_8_CBYCR = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(24) | 0x0040),
PixelType_CodeReader_Gvsp_YCBCR709_422_8 = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0041),
PixelType_CodeReader_Gvsp_YCBCR709_422_8_CBYCRY = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(16) | 0x0045),
PixelType_CodeReader_Gvsp_YCBCR709_411_8_CBYYCRYY = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(12) | 0x0042),
// RGB Planar buffer format defines
PixelType_CodeReader_Gvsp_RGB8_Planar = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(24) | 0x0021),
PixelType_CodeReader_Gvsp_RGB10_Planar = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(48) | 0x0022),
PixelType_CodeReader_Gvsp_RGB12_Planar = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(48) | 0x0023),
PixelType_CodeReader_Gvsp_RGB16_Planar = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(48) | 0x0024),
// 自定义的图片格式
PixelType_CodeReader_Gvsp_Jpeg = (MV_CODEREADER_GVSP_PIX_CUSTOM | MV_CODEREADER_PIXEL_BIT_COUNT(24) | 0x0001),
PixelType_CodeReader_Gvsp_Coord3D_ABC32f = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(96) | 0x00C0),
PixelType_CodeReader_Gvsp_Coord3D_ABC32f_Planar = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(96) | 0x00C1),
PixelType_CodeReader_Gvsp_Coord3D_AC32f = (MV_CODEREADER_GVSP_PIX_COLOR | MV_CODEREADER_PIXEL_BIT_COUNT(40) | 0x00C2),//0x024000C2, /* 3D coordinate A-C 32-bit floating point */
PixelType_CodeReader_Gvsp_COORD3D_DEPTH_PLUS_MASK = (0x82000000 | MV_CODEREADER_PIXEL_BIT_COUNT(28) | 0x0001),//0x82280001
};
//跨平台定义
//Cross Platform Definition
#ifdef WIN32
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#else
#include <stdint.h>
#endif
#endif /* _MV_CODEREADER_PIXEL_TYPE_H_ */

File diff suppressed because it is too large Load Diff