using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Runtime.InteropServices;
|
|
namespace IDViewer_2D
|
{
|
class IDViewerDefines
|
{
|
// 使用枚举表示回调消息ID
|
public enum CallbackMessageID
|
{
|
DeviceConnectionEstablished = 1,
|
DeviceConnectionClosed = 2
|
}
|
|
public enum ErrorCodes
|
{
|
ID_OK = 0, //成功
|
ID_ERROR_ALREADY_INIT = 146000010, //已经初始化
|
ID_ERROR_NOT_INIT = 146000011, //未初始化
|
ID_ERROR_CREATE_DEVICE_INFO_NOT_EXSIST = 146000012, //当前创建设备不存在
|
ID_ERROR_SET_IP_DEVICE_ALREADY_CREATED = 146000013, //当前设置IP设备已经创建
|
ID_ERROR_DEVICE_HAVE_OPENED = 146000014, //设备已经打开
|
ID_ERROR_OPEN_DEVICE_CONNECT_PARAMS_ERROR = 146000015, //打开设备连接参数错误
|
ID_ERROR_OPEN_DEVICE_CONNECT_IS_CREATE = 146000016, //打开设备连接已经创建
|
ID_ERROR_OPEN_DEVICE_CONNECT_SOCKET_FAILED = 146000017, //打开设备连接建立失败
|
ID_ERROR_OPEN_DEVICE_CONNECT_FAILED = 146000018, //打开设备连接失败
|
ID_ERROR_DEVICE_NOT_OPEN = 146000019, //设备未打开
|
ID_ERROR_DEVICE_IS_RUNNING = 146000020, //设备已经在运行模式
|
ID_ERROR_DEVICE_IS_DEBUGGING = 146000021, //设备已经在调试模式
|
ID_ERROR_DEVICE_QUERY_HARDWARE_INFO_FAILED = 146000022, //获取设备硬件信息失败
|
ID_ERROR_OPEN_DEVICE_CREATE_DATA_RECEIVED_FAILED = 146000023, //打开设备接收数据服务创建失败
|
ID_ERROR_OPEN_DEVICE_SOLUTION_MANAGER_CONNECTION_FAILED = 146000024, //打开设备时连接方案管理工具失败
|
ID_ERROR_SOLUTION_MANAGER_TIMEOUT = 146000025, //方案管理类超时
|
ID_ERROR_SOLUTION_MANAGER_CAN_NOT_DELETE_CURRENT_SOLUTION = 146000026, //不能删除当前方案
|
ID_ERROR_SOLUTION_MANAGER_CURRENT_SOLUTION_NOT_EXISTED = 146000027, //当前方案不存在
|
ID_ERROR_SET_IP_ADDRESS_INVALID = 146000028, //设置IP地址不合法
|
ID_ERROR_SET_IP_MASK_INVALID = 146000029, //设置子网掩码地址不合法
|
ID_ERROR_SET_IP_GATEWAY_INVALID = 146000030, //设置网关地址不合法
|
ID_ERROR_SET_IP_ADDRESS_GATEWAY_NOT_IN_SAME_SUBNET = 146000031, //设置的IP地址和网关不在同一网段
|
ID_ERROR_SET_IP_ADDRESS_ALREADY_EXISTED = 146000032, //设置的IP已经存在
|
ID_ERROR_SOLUTION_MANAGER_SOLUTION_NAME_INVALID = 46000033 //方案名称非法,不能包含<>:\"/\\|?*
|
|
}
|
|
public enum IDImageType
|
{
|
ID_IMAGE_8U_C = 0, // 8位无符号类型
|
ID_IMAGE_8S_C, // 8位有符号类型
|
ID_IMAGE_16U_C, // 16位无符号类型
|
ID_IMAGE_16S_C, // 16位有符号类型
|
ID_IMAGE_32S_C, // 32位有符号类型
|
ID_IMAGE_32F_C, // 32位浮点类型
|
ID_IMAGE_64F_C // 64位浮点类型
|
}
|
|
//条码类型枚举
|
public enum IDCodeType
|
{
|
ID_CODETYPE_UNKNOWN_C = 0x0,
|
ID_CODETYPE_CODE39_C = 0x1,
|
ID_CODETYPE_CODE128_C = 0x2,
|
ID_CODETYPE_EAN8_C = 0x4,
|
ID_CODETYPE_EAN13_C = 0x8,
|
ID_CODETYPE_UPC_A_C = 0x10,
|
ID_CODETYPE_UPC_E_C = 0x20,
|
ID_CODETYPE_CODE93_C = 0x40,
|
ID_CODETYPE_ITF_C = 0x80,
|
ID_CODETYPE_GS1_128_C = 0x100,
|
ID_CODETYPE_GS1_DATABAR_EXPANDED_C = 0x200,
|
ID_CODETYPE_GS1_DATABAR_C = 0x400,
|
ID_CODETYPE_GS1_DATABAR_STACKED_C = 0x600,
|
ID_CODETYPE_GS1_DATABAR_EXPANDED_STACKED_C = 0x800,
|
ID_CODETYPE_GS1_DATABAR_LINITED_C = 0x1000,
|
ID_CODETYPE_PHARMACODE_C = 0x2000,
|
ID_CODETYPE_MSI_C = 0x4000,
|
ID_CODETYPE_PLESSEY_C = 0x8000,
|
ID_CODETYPE_CODEBAR_C = 0x10000,
|
ID_CODETYPE_INT2OF5_C = 0x20000,
|
ID_CODETYPE_STD2OF5_C = 0x40000,
|
ID_CODETYPE_MTX2OF5_C = 0x80000,
|
ID_CODETYPE_DATAMATRIX_C = 0x04000000,
|
ID_CODETYPE_QRCODE_C = 0x08000000,
|
ID_CODETYPE_PDF417_C = 0x010000000,
|
ID_CODETYPE_MICROQR_C = 0x020000000,
|
ID_CODETYPE_AZTEC_C = 0x040000000,
|
//ID_CODETYPE_VERICODE_C = 0x080000000
|
}
|
|
|
public struct IDDeviceInfo
|
{
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
public char[] networkIP;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] networkMask;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] networkGateway;
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
public string networkAdapterFriendName;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] networkMac;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
|
public char[] cameraIP;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] cameraNetMask;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] cameraGateWay;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] cameraMac;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] cameraSN;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] cameraModel;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] cameraManufucturer;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] cameraSoftwareVersion;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] cameraFirmwareVersion;
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
public string cameraAlias;
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] cameraType;
|
}
|
|
//硬件信息通用节点结构体
|
public struct IDNodeParam
|
{
|
public float maxValue;
|
public float minValue;
|
public float value;
|
public int type;
|
}
|
|
public IDNodeParam createIDNodeParam_C() {
|
IDNodeParam param;
|
param.maxValue = 0;
|
param.minValue = 0;
|
param.value = 0;
|
param.type = 0;
|
return param;
|
}
|
|
|
//硬件信息结构体
|
public struct IDDeviceHarewareParams
|
{
|
public int imageWidth;
|
public int imageHight;
|
public IDNodeParam exposureStep;
|
public IDNodeParam exposure;
|
public IDNodeParam gamma;
|
public IDNodeParam gain;
|
public IDNodeParam illuminanatInerval;
|
|
public IDNodeParam focusingLocation;
|
public IDNodeParam DICount;
|
public IDNodeParam DOCount;
|
public IDNodeParam isOpenSightingDevice;
|
}
|
|
|
public IDDeviceHarewareParams createID_DEVICE_HARDWARE_PARAMS()
|
{
|
IDDeviceHarewareParams HarewareParams;
|
HarewareParams.imageWidth = 0;
|
HarewareParams.imageHight = 0;
|
HarewareParams.exposureStep = createIDNodeParam_C();
|
HarewareParams.exposure = createIDNodeParam_C();
|
HarewareParams.gamma = createIDNodeParam_C();
|
HarewareParams.gain = createIDNodeParam_C();
|
HarewareParams.illuminanatInerval = createIDNodeParam_C();
|
|
HarewareParams.focusingLocation = createIDNodeParam_C();
|
HarewareParams.DICount = createIDNodeParam_C();
|
HarewareParams.DOCount = createIDNodeParam_C();
|
HarewareParams.isOpenSightingDevice = createIDNodeParam_C();
|
|
return HarewareParams;
|
|
}
|
|
//点类型结构体
|
public struct IDPoint
|
{
|
public double x;
|
public double y;
|
}
|
|
//质量评估输出结果
|
//ISO IEC 15416-2016
|
public struct IDQuality15416
|
{
|
public float overallQuality;
|
public float decode;
|
public float edgeDetermination;
|
public float symbolContrast;
|
public float minReflectance;
|
public float minEdgeContrast;
|
public float modulation;
|
public float quietZone;
|
public float decodability;
|
public float defects;
|
}
|
|
//ISO_IEC15415-2011 QR
|
public struct IDQualityQR15415
|
{
|
public float overallQuality;
|
public float decode;
|
public float symbolContrast;
|
public float fixedPatternDamage;
|
public float modulation;
|
public float reflectanceMargin;
|
public float unusedErrCorrection;
|
public float axialNonuniformity;
|
public float gridNonuniformity;
|
public float formatInformation;
|
public float versionInformation;
|
public float contrastUniformity;
|
public float printGrowth;
|
public float aperture;
|
}
|
|
//DM 15415码质量
|
public struct IDQualityDM15415
|
{
|
public float overallQuality;
|
public float decode;
|
public float symbolContrast;
|
public float fixedPatternDamage;
|
public float modulation;
|
public float reflectanceMargin;
|
public float unusedErrCorrection;
|
public float axialNonuniformity;
|
public float gridNonuniformity;
|
public float contrastUniformity;
|
public float printGrowth;
|
public float aperture;
|
}
|
|
|
//ISO IEC TR 29158-2011(AIM-DPM-1-2006)
|
public struct IDQualityDM29518
|
{
|
public float overallQuality;
|
public float decode;
|
public float cellContrast;
|
public float cellModulation;
|
public float reflectanceMargin;
|
public float fixedPatternDamage;
|
public float axialNonuniformity;
|
public float gridNonuniformity;
|
public float unusedErrCorrection;
|
public float contrastUniformity;
|
public float meanLight;
|
public float printGrowth;
|
public float aperture;
|
}
|
|
//QR 29158结构体
|
public struct IDQualityQR29518
|
{
|
public float overallQuality;
|
public float decode;
|
public float cellContrast;
|
public float cellModulation;
|
public float fixedPatternDamage;
|
public float reflectanceMargin;
|
public float unusedErrCorrection;
|
public float axialNonuniformity;
|
public float gridNonuniformity;
|
public float formatInformation;
|
public float versionInformation;
|
public float contrastUniformity;
|
public float meanLight;
|
public float printGrowth;
|
public float aperture;
|
}
|
|
|
public struct IDQualityPDF417_15415
|
{
|
public float overallQuality;
|
public float decode;
|
public float symbolContrast;
|
public float fixPattern;
|
public float modulation;
|
public float unusedErrCorrection;
|
public float axialNonuniformity;
|
public float gridNonuniformity;
|
public float startStopPattern;
|
public float codewordYield;
|
public float defects;
|
public float aperture;
|
}
|
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 36)]
|
public struct IDDecodeInfo
|
{
|
[MarshalAs(UnmanagedType.I1)]
|
public bool decodeStatus; //解码结果状态OK/NG
|
public float runtime; //解码耗时
|
public uint hardParamIndex;
|
public uint successCount; //解码成功数
|
public uint failedCount; //解码失败数
|
public uint decodeCount; //总解码数
|
public double decodeRate; //解码率
|
public uint IDDecodeROIInfoLength; //ROI解码信息数组的长度
|
}
|
|
|
//当前ROI解码结果
|
public struct IDDecodeROIInfo
|
{
|
|
public int roiIndex; //ROI编号
|
public int decodeReusltLength;
|
}
|
|
|
//当前解码结果,当前版本每个解码结果中的集合,只有一个码制有结果,里面的长度代表的是当前码类型的解码个数
|
public struct IDDecodeResult {
|
public int conbination;
|
public int dmResultsLength;
|
public int qrResultsLength;
|
public int pdf417ResultsLength;
|
public int barcodeResultsLength;
|
}
|
|
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi,Pack = 1)]
|
public struct IDDMCodeResult
|
{
|
[MarshalAs(UnmanagedType.I1)]
|
public bool state; // 当前结果解码状态
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256 )]
|
public char[] subType; // 子类型
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] codeString; // 解码结果
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] polarity; // 极性
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] shape; // 样式
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] mirror; // 镜像
|
public int contrast; // 对比度
|
public float moduleSize;
|
public float orientation;
|
|
}
|
|
|
|
//QR解码结果
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
public struct IDQRCodeResult {
|
|
[MarshalAs(UnmanagedType.I1)]
|
public bool state; //当前结果解码状态
|
//IDCodeType codeType; //条码类型
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] codeString; //解码结果
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] subType;
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] polarity;
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] errorLevel;
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] mirror; //镜像
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] version; //版本信息
|
public int contrast;
|
public float moduleSize;
|
public float orientation; //角度
|
}
|
|
|
|
|
//PDF417解码结果
|
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
public struct IDPDF417CodeResult {
|
|
[MarshalAs(UnmanagedType.I1)]
|
public bool state; //当前结果解码状态
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] codeString; //解码结果
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] subType; //子类型
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] polarity; //极性
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] mirror; //镜像
|
public int symbolRows;
|
public int symbolCols;
|
public int errorLevel;
|
public int contrast;
|
public float moduleHeight;
|
public float pixelPerModule; //moduleWidth
|
public float moduleRatio;
|
public float orientation; //角度
|
|
//IDQualityPDF417_15415 quality15415;
|
}
|
|
|
//barcode解码结果
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
public struct IDBarCodeResult {
|
|
[MarshalAs(UnmanagedType.I1)]
|
public bool state; //当前结果解码状态
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
public char[] codeString; //解码结果
|
public float orientation; //角度
|
public float pixelPerModule;
|
|
}
|
|
public unsafe struct StringList
|
{
|
public char** items;
|
public int size;
|
public int capacity;
|
}
|
|
}
|
}
|