You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2402 lines
90 KiB

3 years ago
using System;
using System.Runtime.InteropServices;
namespace EC.AutoWeightServer.SDK
{
internal class VzClientSDK
{
public VzClientSDK()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/**可过滤的车牌识别触发类型*/
public const int VZ_LPRC_TRIG_ENABLE_STABLE = 0x1; /**<允许触发稳定结果*/
public const int VZ_LPRC_TRIG_ENABLE_VLOOP = 0x2; /**<允许触发虚拟线圈结果*/
public const int VZ_LPRC_TRIG_ENABLE_IO_IN1 = 0x10; /**<允许外部IO_IN_1触发*/
public const int VZ_LPRC_TRIG_ENABLE_IO_IN2 = 0x20; /**<允许外部IO_IN_2触发*/
public const int VZ_LPRC_TRIG_ENABLE_IO_IN3 = 0x40; /**<允许外部IO_IN_3触发*/
//车牌类型
public const int LT_UNKNOWN = 0; //未知车牌
public const int LT_BLUE = 1; //蓝牌小汽车
public const int LT_BLACK = 2; //黑牌小汽车
public const int LT_YELLOW = 3; //单排黄牌
public const int LT_YELLOW2 = 4; //双排黄牌(大车尾牌,农用车)
public const int LT_POLICE = 5; //警车车牌
public const int LT_ARMPOL = 6; //武警车牌
public const int LT_INDIVI = 7; //个性化车牌
public const int LT_ARMY = 8; //单排军车牌
public const int LT_ARMY2 = 9; //双排军车牌
public const int LT_EMBASSY = 10; //使馆车牌
public const int LT_HONGKONG = 11; //香港进出中国大陆车牌
public const int LT_TRACTOR = 12; //农用车牌
public const int LT_COACH = 13; //教练车牌
public const int LT_MACAO = 14; //澳门进出中国大陆车牌
public const int LT_ARMPOL2 = 15; //双层武警车牌
public const int LT_ARMPOL_ZONGDUI = 16; // 武警总队车牌
public const int LT_ARMPOL2_ZONGDUI = 17; // 双层武警总队车牌
public const int LI_AVIATION = 18; //民航
public const int LI_ENERGY = 19; //新能源小型车
public const int LI_NO_PLATE = 20; //无车牌
/**可配置的识别类型*/
public const int VZ_LPRC_REC_BLUE = 1 << LT_BLUE; /**<蓝牌车*/
public const int VZ_LPRC_REC_YELLOW = 1 << LT_YELLOW | 1 << LT_YELLOW2; /**<黄牌车*/
public const int VZ_LPRC_REC_BLACK = 1 << LT_BLACK; /**<黑牌车*/
public const int VZ_LPRC_REC_COACH = 1 << LT_COACH; /**<教练车*/
public const int VZ_LPRC_REC_POLICE = 1 << LT_POLICE; /**<警车*/
public const int VZ_LPRC_REC_AMPOL = 1 << LT_ARMPOL; /**<武警车*/
public const int VZ_LPRC_REC_ARMY = 1 << LT_ARMY | 1 << LT_ARMY2; /**<军车*/
public const int VZ_LPRC_REC_GANGAO = 1 << LT_HONGKONG | 1 << LT_MACAO; /**<港澳进出大陆车*/
public const int VZ_LPRC_REC_EMBASSY = 1 << LT_EMBASSY; /**<使馆车*/
public const int VZ_LPRC_REC_AVIATION = 1 << LT_EMBASSY; /**<民航*/
public const int VZ_LPRC_REC_ENERGY = 1 << LI_ENERGY; /**<新能源*/
public const int VZ_LPRC_REC_NO_PLATE = 1 << LI_NO_PLATE; /**<无车牌*/
//触发输入的类型
public enum VZ_InputType : uint
{
nWhiteList = 0, //通过
nNotWhiteList, //不通过
nNoLicence, //无车牌
nBlackList, //黑名单
nExtIoctl1, //开关量/电平输入 1
nExtIoctl2, //开关量/电平输入 2
nExtIoctl3 //开关量/电平输入 3
};
//输出配置
public struct VZ_LPRC_OutputConfig
{
public int switchout1; //开关量输出 1
public int switchout2; //开关量输出 2
public int switchout3; //开关量输出 3
public int switchout4; //开关量输出 4
public int levelout1; //电平输出 1
public int levelout2; //电平输出 2
public int rs485out1; //RS485-1
public int rs485out2; //RS485-2
private VZ_InputType eInputType; //触发输入的类型
};
public const int MAX_OutputConfig_Len = 7;
//输出配置信息
public struct VZ_OutputConfigInfo
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_OutputConfig_Len, ArraySubType = UnmanagedType.I1)]
public VZ_LPRC_OutputConfig[] oConfigInfo; //多个输出配置输出的消息
};
///**加密类型**/
public const int ENCRYPT_NAME_LENGTH = 32;
public struct VZ_EMS_INFO
{
public uint uId; //加密ID
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = ENCRYPT_NAME_LENGTH)]
public string sName; //加密名
}
public const int ENCRYPT_LENGTH = 16;
public const int SIGNATURE_LENGTH = 32;
/**当前识别结果加密类型**/
public struct VZ_LPRC_ACTIVE_ENCRYPT
{
public uint uActiveID;//当前加密类型ID
[MarshalAs(UnmanagedType.ByValArray, SizeConst = ENCRYPT_LENGTH)]
public VZ_EMS_INFO[] oEncrpty;//系统加密类型
public uint uSize;//系统加密类型长度
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = SIGNATURE_LENGTH)]
public string signature;//SIGNATURE
}
/**串口参数*/
public struct VZ_SERIAL_PARAMETER
{
public uint uBaudRate; // <波特率 300,600,1200,2400,4800,9600,19200,34800,57600,115200
public uint uParity; // <校验位 其值为0-2=no,odd,even
public uint uDataBits; // <数据位 其值为7,8 位数据位
public uint uStopBit; // <停止位 其值为1,2位停止位
};
//设置回调函数时需要制定的类型
public enum VZ_LPRC_CALLBACK_TYPE : uint
{
VZ_LPRC_CALLBACK_COMMON_NOTIFY = 0, //SDK通用信息反馈
VZ_LPRC_CALLBACK_PLATE_STR, //车牌号码字符
VZ_LRPC_CALLBACK_FULL_IMAGE, //完整图像
VZ_LPRC_CALLBACK_CLIP_IMAGE, //截取图像
VZ_LPRC_CALLBACK_PLATE_RESULT, //实时识别结果
VZ_LPRC_CALLBACK_PLATE_RESULT_STABLE, //稳定识别结果
VZ_LPRC_CALLBACK_PLATE_RESULT_TRIGGER, //触发的识别结果,包括API(软件)和IO(硬件)方式的
VZ_LPRC_CALLBACK_VIDEO, //视频帧回调
}
//通用信息反馈类型
public enum VZ_LPRC_COMMON_NOTIFY : uint
{
VZ_LPRC_NO_ERR = 0,
VZ_LPRC_ACCESS_DENIED, //用户名密码错误
VZ_LPRC_NETWORK_ERR, //网络连接故障
}
//识别结果的类型
public enum VZ_LPRC_RESULT_TYPE : uint
{
VZ_LPRC_RESULT_REALTIME, /*<实时识别结果*/
VZ_LPRC_RESULT_STABLE, /*<稳定识别结果*/
VZ_LPRC_RESULT_FORCE_TRIGGER, /*<调用“VzLPRClient_ForceTrigger”触发的识别结果*/
VZ_LPRC_RESULT_IO_TRIGGER, /*<外部IO信号触发的识别结果*/
VZ_LPRC_RESULT_VLOOP_TRIGGER, /*<虚拟线圈触发的识别结果*/
VZ_LPRC_RESULT_MULTI_TRIGGER, /*<由_FORCE_\_IO_\_VLOOP_中的一种或多种同时触发,具体需要根据每个识别结果的TH_PlateResult::uBitsTrigType来判断*/
VZ_LPRC_RESULT_TYPE_NUM /*<结果种类个数*/
}
//顶点定义
//X_1000和Y_1000的取值范围为[0, 1000];
//即位置信息为实际图像位置在整体图像位置的相对尺寸;
//例如X_1000 = x*1000/win_width,其中x为点在图像中的水平像素位置,win_width为图像宽度
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_VERTEX
{
public uint X_1000;
public uint Y_1000;
}
public const int VZ_LPRC_ROI_VERTEX_NUM_EX = 12;
//识别区域信息定义
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_ROI_EX
{
public byte byRes1; //预留
public byte byEnable; //是否有效
public byte byDraw; //是否绘制
public byte byRes2; //预留
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.I1)]
public byte[] byRes3; //预留
private uint uNumVertex; //顶点实际个数
[MarshalAs(UnmanagedType.ByValArray, SizeConst = VZ_LPRC_ROI_VERTEX_NUM_EX)]
public VZ_LPRC_VERTEX[] struVertex; //顶点数组
}
public const int VZ_LPRC_VIRTUAL_LOOP_NAME_LEN = 32;
public const int VZ_LPRC_VIRTUAL_LOOP_VERTEX_NUM = 4;
//虚拟线圈信息定义
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_VIRTUAL_LOOP
{
public byte byID; //序号
public byte byEnable; //是否有效
public byte byDraw; //是否绘制
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1, ArraySubType = UnmanagedType.I1)]
public byte[] byRes; //预留
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = VZ_LPRC_VIRTUAL_LOOP_NAME_LEN)]
public string strName;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = VZ_LPRC_VIRTUAL_LOOP_VERTEX_NUM)]
public VZ_LPRC_VERTEX[] struVertex; //顶点数组
public uint eCrossDir; // 穿越方向限制
public uint uTriggerTimeGap; // 对相同车牌的触发时间间隔的限制,单位为秒
public uint uMaxLPWidth; // 最大车牌尺寸限制
public uint uMinLPWidth; // 最小车牌尺寸限制
}
public const int VZ_LPRC_VIRTUAL_LOOP_MAX_NUM = 8;
//虚拟线圈序列
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_VIRTUAL_LOOPS
{
public uint uNumVirtualLoop; //实际个数
[MarshalAs(UnmanagedType.ByValArray, SizeConst = VZ_LPRC_VIRTUAL_LOOP_MAX_NUM)]
public VZ_LPRC_VIRTUAL_LOOP[] struLoop;
}
public const int VZ_LPRC_PROVINCE_STR_LEN = 128;
//预设省份信息
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_PROVINCE_INFO
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = VZ_LPRC_PROVINCE_STR_LEN, ArraySubType = UnmanagedType.I1)]
public char[] strProvinces; //所有支持的省份简称构成的字符串
public int nCurrIndex; //当前的预设省份的序号,在strProvinces中的,-1为未设置
}
[StructLayout(LayoutKind.Sequential)]
public struct TH_RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
/**分解时间*/
[StructLayout(LayoutKind.Sequential)]
public struct VzBDTime
{
public byte bdt_sec; /*<秒,取值范围[0,59]*/
public byte bdt_min; /*<分,取值范围[0,59]*/
public byte bdt_hour; /*<时,取值范围[0,23]*/
public byte bdt_mday; /*<一个月中的日期,取值范围[1,31]*/
public byte bdt_mon; /*<月份,取值范围[1,12]*/
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
public byte[] res1; /*<预留*/
public uint bdt_year; /*<年份*/
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I1)]
public byte[] res2; /*<预留*/
} //broken-down time
[StructLayout(LayoutKind.Sequential)]
public struct VZ_TIMEVAL
{
public uint uTVSec;
public uint uTVUSec;
}
[StructLayout(LayoutKind.Sequential)]
public struct TH_PlateResult
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.I1)]
public char[] license; // 车牌号码
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
public char[] color; // 车牌颜色
public int nColor; // 车牌颜色序号
public int nType; // 车牌类型
public int nConfidence; // 车牌可信度
public int nBright; // 亮度评价
public int nDirection; // 运动方向,0 unknown, 1 left, 2 right, 3 up , 4 down
public TH_RECT rcLocation; //车牌位置
public int nTime; //识别所用时间
public VZ_TIMEVAL tvPTS; //识别时间点
public uint uBitsTrigType; //强制触发结果的类型,见TH_TRIGGER_TYPE_BIT
public byte nCarBright; //车的亮度
public byte nCarColor; //车的颜色
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
public char[] reserved0; //为了对齐
public uint uId; //记录的编号
public VzBDTime struBDTime; //分解时间
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 84, ArraySubType = UnmanagedType.I1)]
public char[] reserved; // 保留
}
[StructLayout(LayoutKind.Sequential)]
public struct VzYUV420P
{
public IntPtr pY;
public IntPtr pU;
public IntPtr pV;
private int widthStepY;
private int widthStepU;
private int widthStepV;
private int width;
private int height;
}
//图像信息
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_IMAGE_INFO
{
public uint uWidth;
public uint uHeight;
public uint uPitch;
public uint uPixFmt;
public IntPtr pBuffer;
}
//智能视频
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_DRAWMODE
{
public byte byDspAddTarget; //dsp叠加报警目标
public byte byDspAddRule; //dsp叠加设置规则
public byte byDspAddTrajectory; //dsp叠加轨迹
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.I1)]
public byte[] dwRes;
};
//设备序列号
[StructLayout(LayoutKind.Sequential)]
public struct VZ_DEV_SERIAL_NUM
{
public uint uHi;
public uint uLo;
}
//********白名单********//
[StructLayout(LayoutKind.Sequential)]
public struct VZ_TM
{
/// short
public short nYear;
/// short
public short nMonth;
/// short
public short nMDay;
/// short
public short nHour;
/// short
public short nMin;
/// short
public short nSec;
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_TM_WEEK_DAY
{
/// char
public byte bSun;
/// char
public byte bMon;
/// char
public byte bTue;
/// char
public byte bWed;
/// char
public byte bThur;
/// char
public byte bFri;
/// char
public byte bSat;
/// char
public byte reserved;
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_OSD_Param
{
public byte dstampenable; // 0 off 1 on
public int dateFormat; // 0:YYYY/MM/DD;1:MM/DD/YYYY;2:DD/MM/YYYY
public int datePosX;
public int datePosY;
public byte tstampenable; // 0 off 1 on
public int timeFormat; // 0:12Hrs;1:24Hrs
public int timePosX;
public int timePosY;
public byte nLogoEnable; // 0 off 1 on
public int nLogoPositionX; //< logo position
public int nLogoPositionY; //< logo position
public byte nTextEnable; //0 off 1 on
public int nTextPositionX; //< text position
public int nTextPositionY; //< text position
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]
public string overlaytext; //user define text //user define text
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_TM_DAY
{
/// short
public short nHour;
/// short
public short nMin;
/// short
public short nSec;
/// short
public short reserved;
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_TM_WEEK_SEGMENT
{
/// unsigned int
public uint uEnable;
/// VZ_TM_WEEK_DAY->Anonymous_a54d933b_d2e6_4eba_97b3_61ea9b47dd3b
public VZ_TM_WEEK_DAY struDaySelect;
/// VZ_TM_DAY->Anonymous_2bafa8b8_e11f_4cdc_a109_eb09791f91d6
public VZ_TM_DAY struDayTimeStart;
/// VZ_TM_DAY->Anonymous_2bafa8b8_e11f_4cdc_a109_eb09791f91d6
public VZ_TM_DAY struDayTimeEnd;
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_TM_RANGE
{
/// VZ_TM->Anonymous_40d76b6c_816a_4821_a5db_3480cee2a116
public VZ_TM struTimeStart;
/// VZ_TM->Anonymous_40d76b6c_816a_4821_a5db_3480cee2a116
public VZ_TM struTimeEnd;
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_TM_PERIOD_OR_RANGE
{
/// unsigned int
public uint uEnable;
/// VZ_TM_WEEK_SEGMENT[8]
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.Struct)]
public VZ_TM_WEEK_SEGMENT[] struWeekSeg;
}
/**设备日期时间参数*/
public struct VZ_DATE_TIME_INFO
{
public uint uYear; /*<年*/
public uint uMonth; /*<月 [1, 12]*/
public uint uMDay; /*<月中的天数 [1, 31]*/
public uint uHour; /*<时*/
public uint uMin; /*<分*/
public uint uSec; /*<秒*/
}
public enum VZ_LPR_WLIST_ERROR
{
/// VZ_LPR_WLIST_ERROR_NO_ERROR -> 0
VZ_LPR_WLIST_ERROR_NO_ERROR = 0,
VZ_LPR_WLIST_ERROR_PLATEID_EXISTS,
VZ_LPR_WLIST_ERROR_INSERT_CUSTOMERINFO_FAILED,
VZ_LPR_WLIST_ERROR_INSERT_VEHICLEINFO_FAILED,
VZ_LPR_WLIST_ERROR_UPDATE_CUSTOMERINFO_FAILED,
VZ_LPR_WLIST_ERROR_UPDATE_VEHICLEINFO_FAILED,
VZ_LPR_WLIST_ERROR_PLATEID_EMPTY,
VZ_LPR_WLIST_ERROR_ROW_NOT_CHANGED,
VZ_LPR_WLIST_ERROR_CUSTOMERINFO_NOT_CHANGED,
VZ_LPR_WLIST_ERROR_VEHICLEINFO_NOT_CHANGED,
VZ_LPR_WLIST_ERROR_CUSTOMER_VEHICLE_NOT_MATCH,
VZ_LPR_WLIST_ERROR_SERVER_GONE,
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct VZ_LPR_WLIST_VEHICLE
{
/// unsigned int
public uint uVehicleID; //车辆在数据库的ID
/// char[32]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string strPlateID; //车牌字符串
/// unsigned int
public uint uCustomerID; //客户在数据库的ID
/// unsigned int
public uint bEnable; //该记录有效标记(是否启用)
/// unsigned int
public uint bEnableTMEnable; //是否开启生效时间
/// unsigned int
public uint bEnableTMOverdule; //是否开启过期时间
/// VZ_TM*
public VZ_TM struTMEnable; //该记录生效时间
public VZ_TM struTMOverdule; //该记录过期时间
/// unsigned int
public uint bUsingTimeSeg; //是否使用周期时间段
/// VZ_TM_PERIOD_OR_RANGE->Anonymous_6f46bf7e_03f5_450b_84da_e56739a41561
public VZ_TM_PERIOD_OR_RANGE struTimeSegOrRange;//周期时间段信息
/// unsigned int
public uint bAlarm; //是否触发报警(黑名单记录)
public uint iColor; //车辆颜色
public uint iPlateType; //车牌类型
// 车辆代码
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string strCode; //车辆编码
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
public string strComment; //车辆编码
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct VZ_LPR_WLIST_CUSTOMER
{
/// unsigned int
public uint uCustomerID;
/// char[32]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string strName;
/// char[32]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string strCode;
/// char[256]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string reserved;
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPR_WLIST_ROW
{
/// VZ_LPR_WLIST_CUSTOMER*
public IntPtr pCustomer;
/// VZ_LPR_WLIST_VEHICLE*
public IntPtr pVehicle;
}
//查找数据条件
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct VZ_LPR_WLIST_SEARCH_CONSTRAINT
{
/// char[32]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string key; //查找的字段
/// char[128]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
public string search_string; //查找的字符串
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct VZ_LPR_MSG_PLATE_INFO
{
/// char[32]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string plate;
/// char[128]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string img_path;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct VZ_LPR_DEVICE_INFO
{
/// char[32]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string device_ip;
/// char[64]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
public string serial_no;
}
public enum VZ_LPR_WLIST_LIMIT_TYPE
{
VZ_LPR_WLIST_LIMIT_TYPE_ONE, //查找一条
VZ_LPR_WLIST_LIMIT_TYPE_ALL, //查找所有
VZ_LPR_WLIST_LIMIT_TYPE_RANGE, //查找一段
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPR_WLIST_RANGE_LIMIT
{
public int startIndex; //查找起始位置
public int count; //查找条数
}
//查找条数限制
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPR_WLIST_LIMIT
{
/// VZ_LPR_WLIST_LIMIT_TYPE->Anonymous_988ed792_488c_49e0_9b97_4fef91401704
public VZ_LPR_WLIST_LIMIT_TYPE limitType; //查找条数限制
/// VZ_LPR_WLIST_RANGE_LIMIT*
public IntPtr pRangeLimit; //查找哪一段数据
}
public enum VZ_LPR_WLIST_SORT_DIRECTION
{
/// VZ_LPR_WLIST_SORT_DIRECTION_DESC -> 0
VZ_LPR_WLIST_SORT_DIRECTION_DESC = 0,
/// VZ_LPR_WLIST_SORT_DIRECTION_ASC -> 1
VZ_LPR_WLIST_SORT_DIRECTION_ASC = 1,
}
//结果的排列方式
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct VZ_LPR_WLIST_SORT_TYPE
{
/// char[32]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string key; //排序的字段
/// VZ_LPR_WLIST_SORT_DIRECTION->Anonymous_dde74036_93c7_4601_966c_0439d47c4836
public VZ_LPR_WLIST_SORT_DIRECTION direction; //排序的方式
}
//查找的方式
public enum VZ_LPR_WLIST_SEARCH_TYPE
{
VZ_LPR_WLIST_SEARCH_TYPE_LIKE, //包含字符
VZ_LPR_WLIST_SEARCH_TYPE_EQUAL, //完全匹配
}
//查找条件
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPR_WLIST_SEARCH_WHERE
{
/// VZ_LPR_WLIST_SEARCH_TYPE->Anonymous_e3b38339_d7de_4d6d_998f_8f03f1a82e9c
public VZ_LPR_WLIST_SEARCH_TYPE searchType;//查找的方式,如果是完全匹配,每个条件之间为与;是包含字符时,每个条件之间为或
/// unsigned int
public uint searchConstraintCount; //查找条件个数,为0表示没有搜索条件
/// VZ_LPR_WLIST_SEARCH_CONSTRAINT*
public IntPtr pSearchConstraints; //查找条件数组指针
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPR_WLIST_LOAD_CONDITIONS
{
/// VZ_LPR_WLIST_SEARCH_WHERE*
public IntPtr pSearchWhere; //查找条件
/// VZ_LPR_WLIST_LIMIT*
public IntPtr pLimit; //查找条数限制
/// VZ_LPR_WLIST_SORT_TYPE*
public IntPtr pSortType; //结果的排序方式,为空表示按默认排序
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct VZ_LPR_WLIST_KEY_DEFINE
{
/// char[32]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string key;
/// char[32]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string name;
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPR_WLIST_IMPORT_RESULT
{
/// int
public int ret;
/// int
public int error_code;
}
public enum VZLPRC_WLIST_CB_TYPE
{
/// VZLPRC_WLIST_CB_TYPE_ROW -> 0
VZLPRC_WLIST_CB_TYPE_ROW = 0,
VZLPRC_WLIST_CB_TYPE_CUSTOMER,
VZLPRC_WLIST_CB_TYPE_VEHICLE,
}
/**LED补光灯命令*/
public enum VZ_LED_CTRL
{
VZ_LED_AUTO, /*<自动控制LED的开和关*/
VZ_LED_MANUAL_ON, /*<手动控制LED开启*/
VZ_LED_MANUAL_OFF, /*<手动控制LED关闭*/
}
/**************************************中心服务器***********************************************/
//中心服务器网络
public const int LPRC_CENTER_IPLEN = 200;
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_CENTER_SERVER_NET
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = LPRC_CENTER_IPLEN)]
public string centerServerIp; //中心服务器地址
public ushort port; //中心服务器端口
public byte enableSsl; //是否使用ssl协议
public ushort sslPort; //ssl协议端口
public ushort timeout; //超时时间设置错误, 范围【1~30】
}
public const int URLLENGTH = 1000;
//中心服务器网络设备注册
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_CENTER_SERVER_DEVICE_REG
{
public byte type; //中心服务器设备注册类型 0:取消心跳 1:普通心跳 2:comet轮询
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = URLLENGTH)]
public string url; //中心服务器设备注册地址
}
//中心服务器网络车牌
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_CENTER_SERVER_PLATE
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = URLLENGTH)]
public string url; //中心服务器车牌地址
public byte enable; //中心服务器车牌推送使能
public byte contentLevel; //中心服务器车牌内容详细等级 0:全部 1:较详细 2:较简略 3:简略
public byte sendLargeImage; //中心服务器车牌是否发送大图片
public byte sendSmallImage; //中心服务器车牌是否发送小图片
}
//中心服务器网络设备端口触发
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_CENTER_SERVER_GIONIN
{
public byte enable; //中心服务器网络设备端口触发使能
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = URLLENGTH)]
public string url; //中心服务器网络设备端口触发地址
}
//中心服务器网络设备串口
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_CENTER_SERVER_SERIAL
{
public byte enable; //中心服务器网络设备串口使能
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = URLLENGTH)]
public string url; //中心服务器网络设备串口地址
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_R_ENCODE_PARAM
{
public int default_stream; /* 当前选择的码流 */
public int stream_id; /* 码流类型 */
public int resolution; /* 分辨率; */
public int frame_rate; /* [0, 25],帧率; */
public int encode_type; /* h264; */
public int rate_type; /* 码流类型,对应码流控制; */
public int data_rate; /* 码流上限; */
public int video_quality; /* 视频质量; */
}
public int VZ_LPRC_MAX_RESOLUTION = 12;
public int VZ_LPRC_MAX_RATE = 5;
public int VZ_LPRC_MAX_VIDEO_QUALITY = 12;
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_R_RESOLUTION
{
public int resolution_type; /* 码流类型 */
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string resolution_content; //码流类型
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_R_RATE_TYPE
{
public int rate_type_value;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string rate_type_content;
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_R_VIDEO_QUALITY
{
private int video_quality_type;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string video_quality_content;
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_R_ENCODE_PARAM_PROPERTY
{
public int encode_stream; /* 当前选择的码流 */
public int resolution_cur; /* 分辨率 */
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.Struct)]
public VZ_LPRC_R_RESOLUTION[] resolution; /* 分辨率 */
public int frame_rate_cur; /* 当前帧率; */
public int frame_rate_min; /* 最小帧率; */
public int frame_rate_max; /* 最大帧率; */
public int rate_type_cur; /* 码率控制 */
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.Struct)]
public VZ_LPRC_R_RATE_TYPE[] rate_type;
public int data_rate_cur; /* 码流上限; */
public int data_rate_min;
public int data_rate_max;
public int video_quality_cur; /* 视频质量; */
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.Struct)]
public VZ_LPRC_R_VIDEO_QUALITY[] video_quality;
}
[StructLayout(LayoutKind.Sequential)]
public struct VZ_LPRC_R_VIDEO_PARAM
{
public int brightness;
public int contrast;
public int saturation;
public int sharpness;
public int hue;
public int exposure;
public int max_exposure;
public int gain;
public int max_gain;
public int denoise;
public int flip;
public int frquency;
public int night_mode;
}
//API
/**
* @brief
* @return 0-1
*/
[DllImport("kernel32.dll")]
public static extern void CopyMemory(IntPtr Destination, IntPtr Source, int Length);
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_Setup();
/**
* @brief
*/
[DllImport("VzLPRSDK.dll")]
public static extern void VzLPRClient_Cleanup();
public delegate void VZLPRC_COMMON_NOTIFY_CALLBACK(int handle, IntPtr pUserData,
VZ_LPRC_COMMON_NOTIFY eNotify, string pStrDetail);
/**
* @brief
* @param [IN] func
* @param [IN] pUserData
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VZLPRClient_SetCommonNotifyCallBack(VZLPRC_COMMON_NOTIFY_CALLBACK func, IntPtr pUserData);
/**
* @brief
* @param [IN] pStrIP IP地址
* @param [IN] wPort
* @param [IN] pStrUserName 访
* @param [IN] pStrPassword 访
* @return -1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_Open(string pStrIP, ushort wPort, string pStrUserName, string pStrPassword);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_Close(int handle);
/**
* @brief IP地址关闭一个设备
* @param [IN] pStrIP IP地址
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_CloseByIP(string pStrIP);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param[IN/OUT] pStatus 10
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_IsConnected(int handle, ref byte pStatus);
/**
* @brief IP
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] ip IP
* @param [IN] max_count IP传入长度
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetDeviceIP(int handle, ref byte ip, int max_count);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] hWnd
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_StartRealPlay(int handle, IntPtr hWnd);
/**
* @brief
* @param [IN] hWnd
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_StopRealPlay(int hRealHandle);
public delegate int VZLPRC_PLATE_INFO_CALLBACK(int handle, IntPtr pUserData,
IntPtr pResult, uint uNumPlates,
VZ_LPRC_RESULT_TYPE eResultType,
IntPtr pImgFull,
IntPtr pImgPlateClip);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] func
* @param [IN] pUserData
* @param [IN] bEnableImage 10
* @return 0-1
*/
[DllImport("VzLPRSDK.dll", CallingConvention = CallingConvention.StdCall)]
public static extern int VzLPRClient_SetPlateInfoCallBack(int handle, VZLPRC_PLATE_INFO_CALLBACK func, IntPtr pUserData, int bEnableImage);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pUserData
* @param [IN] pFrame VzYUV420P
* @return 0-1
* @ingroup group_callback
*/
public delegate void VZLPRC_VIDEO_FRAME_CALLBACK(int handle, IntPtr pUserData, ref VzYUV420P pFrame);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] func
* @param [IN] pUserData
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll", CallingConvention = CallingConvention.StdCall)]
public static extern int VzLPRClient_SetVideoFrameCallBack(int handle, VZLPRC_VIDEO_FRAME_CALLBACK pFunc, IntPtr pUserData);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_ForceTrigger(int handle);
/**
* @brief 线
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pVirtualLoops 线
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetVirtualLoop(int handle, ref VZ_LPRC_VIRTUAL_LOOPS pVirtualLoops);
/**
* @brief 线
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pVirtualLoops 线
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetVirtualLoop(int handle, ref VZ_LPRC_VIRTUAL_LOOPS pVirtualLoops);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pROI
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetRegionOfInterestEx(int handle, ref VZ_LPRC_ROI_EX pROI);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pProvInfo
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetSupportedProvinces(int handle, ref VZ_LPRC_PROVINCE_INFO pProvInfo);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] nIndex VZ_LPRC_PROVINCE_INFO::strProvinces中的顺序00
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_PresetProvinceIndex(int handle, int nIndex);
/**
* @brief JPEG到指定路径
* @param [IN] pImgInfo ImageFormatRGB
* @param [IN] pFullPathName JPG后缀名的文件名字符串
* @param [IN] nQuality JPEG压缩的质量1~100
* @return 0-1
* @note
* @ingroup group_global
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_ImageSaveToJpeg(IntPtr pImgInfo, string pFullPathName, int nQuality);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN/OUT] pSN VZ_DEV_SERIAL_NUM
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetSerialNumber(int handle, ref VZ_DEV_SERIAL_NUM pSN);
/**
* @brief
* @param [IN] nPlayHandle
* @param [IN] pFullPathName JPG后缀名的文件名字符串
* @param [IN] nQuality JPEG压缩的质量1~100
* @return 0-1
* @note 使
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetSnapShootToJpeg2(int nPlayHandle, string pFullPathName, int nQuality);
/**
* @brief
* @param [IN] nSerialHandle VzLPRClient_SerialStart返回的句柄
* @param [IN] pStrIPAddr IP地址
* @param [IN] usPort1
* @param [IN] usPort2
* @param [IN] pUserData
* @ingroup group_global
*/
public delegate int VZDEV_SERIAL_RECV_DATA_CALLBACK(int nSerialHandle, IntPtr pRecvData, int uRecvSize, IntPtr pUserData);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] nSerialPort 使01
* @param [IN] func
* @param [IN] pUserData
* @return 0
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SerialStart(int handle, int nSerialPort, VZDEV_SERIAL_RECV_DATA_CALLBACK func, IntPtr pUserData);
/**
* @brief
* @param [IN] nSerialHandle VzLPRClient_SerialStart函数获得的句柄
* @param [IN] pData
* @param [IN] uSizeData
* @return 0
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SerialSend(int nSerialHandle, IntPtr pData, int uSizeData);
/**
* @brief
* @param [IN] nSerialHandle VzLPRClient_SerialStart函数获得的句柄
* @return 0
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SerialStop(int nSerialHandle);
/**
* @brief IO输出的状态
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] uChnId IO输出的通道号0
* @param [OUT] nOutput IO输出的状态01
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetIOOutput(int handle, int uChnId, int nOutput);
/**
* @brief IO输出的状态
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] uChnId IO输出的通道号0
* @param [OUT] pOutput IO输出的状态01
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetIOOutput(int handle, int uChnId, ref int pOutput);
/**
* @brief GPIO的状态
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] gpioIn 01
* @param [OUT] value 01
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetGPIOValue(int handle, int gpioIn, IntPtr value);
/**
* @brief ID获取车牌图片
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] id ID
* @param [IN] pdata
* @param [IN][OUT] size jpg图片内存的大小
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_LoadImageById(int handle, int id, IntPtr pdata, IntPtr size);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] rowcount
* @param [IN] pRowDatas
* @param [OUT] results
* @return 0-1
* @ingroup group_database
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_WhiteListImportRows(int handle,
uint rowcount,
ref VZ_LPR_WLIST_ROW pRowDatas,
ref VZ_LPR_WLIST_IMPORT_RESULT pResults);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] strPlateID
* @return 0-1
* @ingroup group_database
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_WhiteListDeleteVehicle(int handle, string strPlateID);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @return 0-1
* @ingroup group_database
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_WhiteListClearCustomersAndVehicles(int handle);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @return >=0-1
* @ingroup group_database
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_WhiteListGetVehicleCount(int handle, ref uint pCount,
ref VZ_LPR_WLIST_SEARCH_WHERE pSearchWhere);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pLoadCondition
* @return 0-1
* @ingroup group_database
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_WhiteListLoadVehicle(int handle,
ref VZ_LPR_WLIST_LOAD_CONDITIONS pLoadCondition);
public delegate void VZLPRC_WLIST_QUERY_CALLBACK(VZLPRC_WLIST_CB_TYPE type, IntPtr pLP,
IntPtr pCustomer,
IntPtr pUserData);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] func
* @param [IN] pUserData
* @return 0-1
* @ingroup group_database
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_WhiteListSetQueryCallBack(int handle, VZLPRC_WLIST_QUERY_CALLBACK func, IntPtr pUserData);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pVehicle VZ_LPR_WLIST_VEHICLE
* @return 0-1
* @ingroup group_database
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_WhiteListUpdateVehicleByID(int handle, ref VZ_LPR_WLIST_VEHICLE pVehicle);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] pCount
* @param [IN] search_constraints
* @return 0-1
* @ingroup group_database
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_WhiteListGetRowCount(int handle, ref int count, ref VZ_LPR_WLIST_SEARCH_WHERE pSearchWhere);
/**
* @brief LED控制模式
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] eCtrl LED开关模式 VZ_LED_CTRL
* @return 0
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetLEDLightControlMode(int handle, VZ_LED_CTRL eCtrl);
/**
* @brief LED当前亮度等级和最大亮度等级
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] pLevelNow
* @param [OUT] pLevelMax
* @return 0
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetLEDLightStatus(int handle, ref int pLevelNow, ref int pLevelMax);
/**
* @brief LED亮度等级
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] nLevelLED亮度等级
* @return 0
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetLEDLightLevel(int handle, int nLevel);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] sFileName
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SaveRealData(int handle, string sFileName);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_StopSaveRealData(int handle);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pUserData
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetOfflineCheck(int handle);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pUserData
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_CancelOfflineCheck(int handle);
/**
* @brief
* @param [IN] nSerialHandle VzLPRClient_SerialStart返回的句柄
* @param [IN] pRecvData
* @param [IN] uRecvSize
* @param [IN] pUserData
* @ingroup group_callback
*/
/**
* @brief
* @param [IN] nSerialHandle VzLPRClient_SerialStart函数获得的句柄
* @param [IN] pData
* @param [IN] uSizeData
* @return 0
* @ingroup group_device
*/
//[DllImport("VzLPRSDK.dll")]
//public static extern int VzLPRClient_SerialSend(int nSerialHandle,string pData, uint uSizeData);
/**
* @brief
* @param [IN] pStrDevName
* @param [IN] pStrIPAddr IP地址
* @param [IN] usPort1
* @param [IN] usPort2
* @param [IN] pUserData
* @ingroup group_callback
*/
public delegate void VZLPRC_FIND_DEVICE_CALLBACK_EX(string pStrDevName, string pStrIPAddr, ushort usPort1, ushort usPort2, uint SL, uint SH, string netmask, string gateway, IntPtr pUserData);
/**
* @brief
* @param [IN] func
* @param [IN] pUserData
* @return 0-1
* @ingroup group_global
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VZLPRClient_StartFindDeviceEx(VZLPRC_FIND_DEVICE_CALLBACK_EX func, IntPtr pUserData);
/**
* @brief
* @ingroup group_global
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VZLPRClient_StopFindDevice();
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pStartTime "2015-01-02 12:20:30"
* @param [IN] pEndTime "2015-01-02 19:20:30"
* @param [IN] keyword , "川"
* @return 0-1
* @ 100
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_QueryRecordByTimeAndPlate(int handle, string pStartTime, string pEndTime, string keyword);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pStartTime "2015-01-02 12:20:30"
* @param [IN] pEndTime "2015-01-02 19:20:30"
* @param [IN] keyword , "川"
* @return 00
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_QueryCountByTimeAndPlate(int handle, string pStartTime, string pEndTime, string keyword);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pStartTime "2015-01-02 12:20:30"
* @param [IN] pEndTime "2015-01-02 19:20:30"
* @param [IN] keyword , "川"
* @param [IN] start 0,
* @param [IN] end 0,100
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_QueryPageRecordByTimeAndPlate(int handle, string pStartTime, string pEndTime, string keyword, int start, int end);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] func NULL
* @param [IN] pUserData
* @param [IN] bEnableImage 10
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetQueryPlateCallBack(int handle, VZLPRC_PLATE_INFO_CALLBACK func, IntPtr pUserData);
/**
* @brief OSD参数
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetOsdParam(int handle, IntPtr pParam);
/**
* @brief OSD参数
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetOsdParam(int handle, IntPtr pParam);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pDTInfo VZ_DATE_TIME_INFO
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetDateTime(int handle, ref VZ_DATE_TIME_INFO info);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pDTInfo VZ_DATE_TIME_INFO
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetDateTime(int handle, ref VZ_DATE_TIME_INFO info);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN/OUT] pBuffer
* @param [IN] uSizeBuf 128
* @return -1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_ReadUserData(int handle, IntPtr pBuffer, uint uSizeBuf);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pUserData
* @param [IN] uSizeData 128
* @return 0
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_WriteUserData(int handle, IntPtr pUserData, uint uSizeData);
/**
* @brief JPEG
* @param [IN] pImgInfo ImageFormatRGB
* @param [IN/OUT] pDstBuf JPEG数据的目的存储首地址
* @param [IN] uSizeBuf JPEG数据地址的内存的最大尺寸
* @param [IN] nQuality JPEG压缩的质量1~100
* @return >0-1-2
* @ingroup group_global
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_ImageEncodeToJpeg(IntPtr pImgInfo, IntPtr pDstBuf, int uSizeBuf, int nQuality);
/**
* @brief IO输出
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] uChnId IO输出的通道号0
* @param [IN] nDuration [500, 5000]
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetIOOutputAuto(int handle, int uChnId, int nDuration);
public delegate void VZLPRC_VIDEO_FRAME_CALLBACK_EX(int handle, IntPtr pUserData, ref VZ_LPRC_IMAGE_INFO pFrame);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] hWnd
* @param [IN] func
* @param [IN] pUserData
* @return -1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll", CallingConvention = CallingConvention.StdCall)]
public static extern int VzLPRClient_StartRealPlayFrameCallBack(int handle, IntPtr hWnd, VZLPRC_VIDEO_FRAME_CALLBACK_EX func, IntPtr pUserData);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] pBitsTrigType VZ_LPRC_TRIG_ENABLE_XXX
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetPlateTrigType(int handle, ref int pBitsTrigType);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] uBitsTrigType VZ_LPRC_TRIG_ENABLE_XXX
* @return 0
* @note SD卡中
* @note 线
* @note IO输入触发
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetPlateTrigType(int handle, uint uBitsTrigType);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] pDrawMode VZ_LPRC_DRAWMODE
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetDrawMode(int handle, ref VZ_LPRC_DRAWMODE pDrawMode);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pDrawMode VZ_LPRC_DRAWMODE
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetDrawMode(int handle, ref VZ_LPRC_DRAWMODE pDrawMode);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] pBitsRecType VZ_LPRC_REC_XXX
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetPlateRecType(int handle, ref int pBitsRecType);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] uBitsRecType VZ_LPRC_REC_XXX
* @return 0
* @note
* @note 使
* @note
* @note uBitsRecType = VZ_LPRC_REC_BLUE|VZ_LPRC_REC_YELLOW|VZ_LPRC_REC_POLICE
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetPlateRecType(int handle, uint uBitsRecType);
/**
* @brief 0
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pOutputConfig
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetOutputConfig(int handle, ref VZ_OutputConfigInfo pOutputConfigInfo);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pOutputConfig
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetOutputConfig(int handle, ref VZ_OutputConfigInfo pOutputConfigInfo);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] nDelay ,[0, 10000)
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetTriggerDelay(int handle, int nDelay);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] nDelay ,[0, 10000)
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetTriggerDelay(int handle, ref int nDelay);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] nType 0 ;1 ;2
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetWLCheckMethod(int handle, int nType);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] nType 0 ;1 ;2
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetWLCheckMethod(int handle, ref int nType);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] nFuzzyType 0 ;1 ;2
* @param [IN] nFuzzyLen
* @param [IN] nFuzzyType
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetWLFuzzy(int handle, int nFuzzyType, int nFuzzyLen, bool bFuzzyCC);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] nFuzzyType 0 ;1 ;2
* @param [IN] nFuzzyLen
* @param [IN] nFuzzyType
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetWLFuzzy(int handle, ref int nFuzzyType, ref int nFuzzyLen, ref bool bFuzzyCC);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] nSerialPort 使01
* @param [IN] pParameter VZ_SERIAL_PARAMETER
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetSerialParameter(int handle, int nSerialPort,
ref VZ_SERIAL_PARAMETER pParameter);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] nSerialPort 使01
* @param [OUT] pParameter VZ_SERIAL_PARAMETER
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetSerialParameter(int handle, int nSerialPort,
ref VZ_SERIAL_PARAMETER pParameter);
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetVideoFrameSizeIndex(int handle, ref int sizeval);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] sizeval VZDEV_FRAMESIZE_宏定义
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetVideoFrameSizeIndex(int handle, int sizeval);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] sizeval
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetVideoFrameSizeIndexEx(int handle, ref int sizeval);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] sizeval
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetVideoFrameSizeIndexEx(int handle, int sizeval);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] Rateval 1-25
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetVideoFrameRate(int handle, ref int Rateval);//1-25
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] Rateval 1-25
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetVideoFrameRate(int handle, int Rateval);//1-25
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] modeval VZDEV_VIDEO_COMPRESS_宏定义
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetVideoCompressMode(int handle, ref int modeval);//VZDEV_VIDEO_COMPRESS_XXX
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] modeval VZDEV_VIDEO_COMPRESS_宏定义
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetVideoCompressMode(int handle, int modeval);//VZDEV_VIDEO_COMPRESS_XXX
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] rateval
* @param [OUT] ratelist
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetVideoCBR(int handle, ref int rateval/*Kbps*/, ref int ratelist);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] rateval
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetVideoCBR(int handle, int rateval/*Kbps*/);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] brt
* @param [OUT] cst
* @param [OUT] sat
* @param [OUT] hue
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetVideoPara(int handle, ref int brt, ref int cst, ref int sat, ref int hue);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] brt
* @param [IN] cst
* @param [IN] sat
* @param [IN] hue
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetVideoPara(int handle, int brt, int cst, int sat, int hue);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] cmd , 0->H264 1->MPEG4 2->JPEG ->
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetVideoEncodeType(int handle, int cmd);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] pEncType , 0:H264 1:MPEG4 2:JPEG :
* @return 0-1
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetVideoEncodeType(int handle, ref int pEncType);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] levelval //0~6,6最好
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetVideoVBR(int handle, ref int levelval);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] levelval //0~6,6最好
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetVideoVBR(int handle, int levelval);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] frequency 0:MaxOrZero, 1: 50Hz, 2:60Hz
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetFrequency(int handle, ref int frequency);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] frequency 0:MaxOrZero, 1: 50Hz, 2:60Hz
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetFrequency(int handle, int frequency);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] shutter 2:>0~8ms , 3: 0~4ms, 4:0~2ms
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetShutter(int handle, ref int shutter);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] shutter 2:>0~8ms , 3: 0~4ms, 4:0~2ms
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetShutter(int handle, int shutter);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] flip, 0: , 1:, 2:, 3:
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetFlip(int handle, ref int flip);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] flip, 0: , 1:, 2:, 3:
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetFlip(int handle, int flip);
/**
* @brief
* @param [IN] SL
* @param [IN] SH
* @param [IN] strNewIP IP "192.168.3.109"
* @param [IN] strGateway "192.168.3.1"
* @param [IN] strNetmask "255.255.255.0"
* @note IP的功能
* @ingroup group_global
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_UpdateNetworkParam(uint SL, uint SH, string strNewIP, string strGateway, string strNetmask);
/**
* @brief
* @param [IN] ip ip统一使用字符串的形式传入
* @param [IN] port 使
* @param [OUT] SerHi
* @param [OUT] SerLo
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetSerialNo(string ip, short port, ref int SerHi, ref int SerLo);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @return 0
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_StartRealPlayDecData(int handle);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @return 0
* @ingroup group_device
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_StopRealPlayDecData(int handle);
/**
* @brief JPEG图像
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN/OUT] pDstBuf JPEG数据的目的存储首地址
* @param [IN] uSizeBuf JPEG数据地址的内存的最大尺寸
* @param [IN] nQuality JPEG压缩的质量1~100
* @return >0-1-2
* @ingroup group_global
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetJpegStreamFromRealPlayDec(int handle, IntPtr pDstBuf, uint uSizeBuf, int nQuality);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] bOutput
* @return 0-1
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetIsOutputRealTimeResult(int handle, bool bOutput);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pData
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetEMS(int handle, ref VZ_LPRC_ACTIVE_ENCRYPT pData);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCurrentKey
* @param [IN] nEncyptId ID
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetEncrypt(int handle, IntPtr pCurrentKey, uint nEncyptId);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCurrentKey
* @param [IN] pNewKey
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_ChangeEncryptKey(int handle, IntPtr pCurrentKey, IntPtr pNewKey);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pPrimeKey
* @param [IN] pNewKey
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_ResetEncryptKey(int handle, IntPtr pPrimeKey, IntPtr pNewKey);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] voice
* @param [IN] interval (0-5000)
* @param [IN] volume (0-100)
* @param [IN] male (01)
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_PlayVoice(int handle, string voice, int interval, int volume, int male);
//**************************************************************
// 中心服务器配置
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerNet
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetCenterServerNet(int handle, ref VZ_LPRC_CENTER_SERVER_NET pCenterServerNet);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerNet
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetCenterServerNet(int handle, ref VZ_LPRC_CENTER_SERVER_NET pCenterServerNet);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerDeviceReg
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetCenterServerDeviceReg(int handle, ref VZ_LPRC_CENTER_SERVER_DEVICE_REG pCenterServerDeviceReg);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerDeviceReg
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetCenterServerDeviceReg(int handle, ref VZ_LPRC_CENTER_SERVER_DEVICE_REG pCenterServerDeviceReg);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerPlate
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetCenterServerPlate(int handle, ref VZ_LPRC_CENTER_SERVER_PLATE pCenterServerPlate);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerPlate
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetCenterServerPlate(int handle, ref VZ_LPRC_CENTER_SERVER_PLATE pCenterServerPlate);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerNet
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetCenterServerGionin(int handle, ref VZ_LPRC_CENTER_SERVER_GIONIN pCenterServerGionin);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerGionin
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetCenterServerGionin(int handle, ref VZ_LPRC_CENTER_SERVER_GIONIN pCenterServerGionin);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerSerial
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetCenterServerSerial(int handle, ref VZ_LPRC_CENTER_SERVER_SERIAL pCenterServerSerial);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerSerial
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetCenterServerSerial(int handle, ref VZ_LPRC_CENTER_SERVER_SERIAL pCenterServerSerial);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerHostBak :"192.168.3.5;192.168.3.6"
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetCenterServerHostBak(int handle, string pCenterServerHostBak);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] pCenterServerHostBak :"192.168.3.5;192.168.3.6"
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetCenterServerHostBak(int handle, ref string pCenterServerHostBak);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] board_version
* @param [OUT] exdataSize
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetHwBoardVersion(int handle, ref int board_version, ref long exdataSize);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] board_type (0:3730,1:6446,2:8127)
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetHwBoardType(int handle, ref int board_type);
/**
* @brief
* @param [IN] iUserID VZC_Login函数返回的用户ID
* @param [OUT] reco_dis安装距离 0:2-4, 2: 4-6, 1: 6-8
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetAlgResultParam(int handle, ref int reco_dis);
/**
* @brief
* @param [IN] iUserID VZC_Login函数返回的用户ID
* @param [OUT] reco_dis安装距离 0:2-4, 2: 4-6, 1: 6-8
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetAlgResultParam(int handle, int reco_dis);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] mode
* @param [OUT] strength
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_GetDenoise(int handle, ref int mode, ref int strength);
/**
* @brief
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] mode
* @param [OUT] strength
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_SetDenoise(int handle, int mode, int strength);
/**
* @brief R相机的编码参数
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] iChannel
* @param [IN] stream 0 1
* @param [OUT] param
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_RGet_Encode_Param(int handle, int stream, ref VZ_LPRC_R_ENCODE_PARAM param);
/**
* @brief R相机的编码参数
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] iChannel
* @param [IN] stream 0 1
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_RSet_Encode_Param(int handle, int stream, ref VZ_LPRC_R_ENCODE_PARAM param);
/**
* @brief R相机支持的编码参数
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] iChannel
* @param [IN] stream 0 1
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_RGet_Encode_Param_Property(int handle, ref VZ_LPRC_R_ENCODE_PARAM_PROPERTY param);
/**
* @brief R相机的视频参数
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [OUT] param
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_RGet_Video_Param(int handle, ref VZ_LPRC_R_VIDEO_PARAM param);
/**
* @brief R相机的视频参数
* @param [IN] handle VzLPRClient_Open函数获得的句柄
* @param [IN] iChannel
* @return 0
*/
[DllImport("VzLPRSDK.dll")]
public static extern int VzLPRClient_RSet_Video_Param(int handle, ref VZ_LPRC_R_VIDEO_PARAM param);
}
}