海康抓拍机VB6

时间:2024.5.9

海康抓拍机VB6

'============================================================================================================================================================常量

Public Const SERIALNO_LEN = 48 '序列号长度

Public Const NAME_LEN = 32 '用户名长度

Public Const MACADDR_LEN = 6 'mac地址长度

Public Const MAX_LICENSE_LEN = 16 '车牌号最大长度

Public Const NET_DVR_SET_TIMECFG = 119 '//设置DVR时间

'============================================================================================================================================================类型

'NET_DVR_Login_V30()参数结构

Public Type NET_DVR_DEVICEINFO_V30

sSerialNumber(1 To SERIALNO_LEN) As Byte '序列号

byAlarmInPortNum As Byte '报警输入个数

byAlarmOutPortNum As Byte '报警输出个数

byDiskNum As Byte '硬盘个数

byDVRType As Byte '设备类型, 1:DVR 2:ATM DVR 3:DVS ......

byChanNum As Byte '模拟通道个数

byStartChan As Byte '起始通道号,例如DVS-1,DVR - 1 byAudioChanNum As Byte '语音通道数

byIPChanNum As Byte '最大数字通道个数,低位 byZeroChanNum As Byte '零通道编码个数 '2010-01-16 byMainProto As Byte '主码流传输协议类型 0-private, 1-rtsp,2-同时支持private和rtsp

bySubProto As Byte '子码流传输协议类型0-private, 1-rtsp,2-同时支持private和rtsp

bySupport As Byte '能力,位与结果为0表示不支持,1表示支持,

'bySupport And &H1, 表示是否支持智能搜索

'bySupport And &H2, 表示是否支持备份

'bySupport And &H4, 表示是否支持压缩参数能力获取

'bySupport And &H8, 表示是否支持多网卡

'bySupport And &H10, 表示支持远程SADP

'bySupport And &H20, 表示支持Raid卡功能

'bySupport And &H40, 表示支持IPSAN 目录查找

'bySupport And &H80, 表示支持rtp over rtsp

bySupport1 As Byte '能力集扩充,位与结果为0表示不支持,1表示支持

'bySupport1 And &H1, 表示是否支持snmp v30

'bySupport1 And &H2, 支持区分回放和下载

'bySupport1 And &H4, 是否支持布防优先级

'bySupport1 And &H8, 智能设备是否支持布防时间段扩展

'bySupport1 And &H10, 表示是否支持多磁盘数(超过33个)

'bySupport1 And &H20, 表示是否支持rtsp over http

'bySupport1 And &H80, 表示是否支持车牌新报警信息2012-9-28, 且还表示是否支持NET_DVR_IPPARACFG_V40结构体 bySupport2 As Byte '能力,位与结果为0表示不支持,非0表示支持

'bySupport2 And &H1, 表示解码器是否支持通过URL取流解码

'bySupport2 And &H2, 表示支持FTPV40

'bySupport2 And &H4, 表示支持ANR

'bySupport2 And &H8, 表示支持CCD的通道参数配置

'bySupport2 And &H10, 表示支持布防报警回传信息(仅支持抓拍机报警 新老报警结构)

'bySupport2 And &H20, 表示是否支持单独获取设备状态子项

'bySupport2 And &H40, 表示是否是码流加密设备

wDevType As Integer '设备型号

bySupport3 As Byte '能力集扩展,位与结果为0表示不支持,1表示支持

'bySupport3 And &H1, 表示是否多码流

'bySupport3 And &H4 表示支持

按组配置, 具体包含 通道图像参数、报警输入参数、IP报警输入、输出接入参数、用户参数、设备工作状态、JPEG抓图、定时和时间抓图、硬盘盘组管理

'bySupport3 And &H8为1 表示支持使用TCP预览、UDP预览、多播预览中的"延时预览"字段来请求延时预览(后续都将使用这种方式请求延时预览)。而当bySupport3 And &H8为0时,将使用 "私有延时预览"协议。

'bySupport3 And &H10 表示支持"获取报警主机主要状态(V40)"。

'bySupport3 And &H20 表示是否支持通过DDNS域名解析取流

byMultiStreamProto As Byte '是否支持多码流,按位表示,0-不支持,1-支持,bit1-码流3,bit2-码流4,bit7-主码流,bit-8子码流

byStartDChan As Byte '起始数字通道号,0表示无效

byStartDTalkChan As Byte '起始数字对讲通道号,区别于模拟对讲通道号,0表示无效

byHighDChanNum As Byte '数字通道个数,高位

bySupport4 As Byte '能力集扩展,位与结果为0表示不支持,1表示支持

'bySupport4 And &H4表示是否支持拼控统一接口

'bySupport4 And &H80 支持设备上传中心报警使能。表示判断调用接口是 NET_DVR_PDC_RULE_CFG_V42还是 NET_DVR_PDC_RULE_CFG_V41

byLanguageType As Byte '支持语种能力,按位表示,每一位0-不支持,1-支持

'byLanguageType 等于0 表示 老设备

'byLanguageType And &H1表示支持中文

'byLanguageType And &H2表示支持英文

byRes2(1 To 9) As Byte '保留

End Type

'布防类型

Public Type NET_DVR_SETUPALARM_PARAM

dwSize As Long

byLevel As Byte '布防优先级,0-一等级(高),1-二等级(中),2-三等级(低)

byAlarmInfoType As Byte '上传报警信息类型(抓拍机支持),0-老报警信息(NET_DVR_PLATE_RESULT),1-新报警信息(NET_ITS_PLATE_RESULT)2012-9-28

byRetAlarmTypeV40 As Byte '0--返回NET_DVR_ALARMINFO_V30或NET_DVR_ALARMINFO, 1--设备支持

NET_DVR_ALARMINFO_V40则返回NET_DVR_ALARMINFO_V40,不支持则返回NET_DVR_ALARMINFO_V30或NET_DVR_ALARMINFO

byRetDevInfoVersion As Byte 'CVR上传报警信息回调结构体版本号 0-COMM_ALARM_DEVICE, 1-COMM_ALARM_DEVICE_V40

byRetVQDAlarmType As Byte 'VQD报警上传类型,0-上传报报警NET_DVR_VQD_DIAGNOSE_INFO,1-上传报警NET_DVR_VQD_ALARM

byRes(1 To 11) As Byte

End Type

'预览V40接口

Public Type NET_DVR_PREVIEWINFO

lChannel As Long '通道号

dwStreamType As Long '码流类型,0-主码流,1-子码流,2-码流3,3-码流4 等以此类推

dwLinkMode As Long '0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-RTP/RTSP,5-RSTP/HTTP

hPlayWnd As Long '播放窗口的句柄,为NULL表示不播放图象

bBlocked As Long '0-非阻塞取流, 1-阻塞取流, 如果阻塞SDK内部connect失败将会有5s的超时才能够返回,不适合于轮询取流操作.

bPassbackRecord As Long '0-不启用录像回传,1启用录像回传 byPreviewMode As Byte '预览模式,0-正常预览,1-延迟预览 byStreamID(1 To 32) As Byte '流ID,lChannel为&Hffffffff时启用此参数

byProtoType As Byte '应用层取流协议,0-私有协议,1-RTSP协议

byRes1(1 To 2) As Byte

dwDisplayBufNum As Long '播放库播放缓冲区最大缓冲帧数,范围1-50,置0时默认为1

byRes(1 To 216) As Byte

End Type

'区域框结构

Public Type NET_VCA_RECT

fX As Single '边界框左上角点的X轴坐标, 0.001~1 fY As Single '边界框左上角点的Y轴坐标, 0.001~1 fWidth As Single '边界框的宽度, 0.001~1

fHeight As Single '边界框的高度, 0.001~1

End Type

' 车牌识别结果子结构

Public Type NET_DVR_PLATE_INFO

byPlateType As Byte '车牌类型

byColor As Byte '车牌颜色

byBright As Byte '车牌亮度

byLicenseLen As Byte '车牌字符个数

byEntireBelieve As Byte '整个车牌的置信度,-100

byRes(1 To 35) As Byte '保留

struPlateRect As NET_VCA_RECT '车牌位置

sLicense(1 To MAX_LICENSE_LEN) As Byte '车牌号码

byBelieve(1 To MAX_LICENSE_LEN) As Byte '各个识别字符的置信度,如检测到车牌"浙A12345", 置信度为,20,30,40,50,60,70,则表示"浙"字正确的可能性只有%,"A"字的正确的可能性是%

End Type

'车辆信息

Public Type NET_DVR_VEHICLE_INFO

dwIndex As Long '车辆序号

byVehicleType As Byte '车辆类型

byColorDepth As Byte '车身颜色深浅

byColor As Byte '车身颜色,参考VCR_CLR_CLASS byRes1 As Byte '保留

wSpeed As Integer '单位km/h

wLength As Integer '前一辆车的车身长度

'违规类型,0-正常,1-低速,2-超速,3-逆行,4-闯红灯,5-压车道线,6-不按导向,7-路口滞留,

'8-机占非,9-违法变道,10-不按车道 11-违反禁令,12-路口停车,13-绿灯停车, 14-未礼让行人(违法代码1357),

'15-违章停车,16-违章掉头,17-占用应急车道

byIllegalType As Byte

byVehicleLogoRecog As Byte '参考枚举类型 VLR_VEHICLE_CLASS

byRes2(1 To 2) As Byte '保留

byCustomInfo(1 To 16) As Byte '自定义信息

byRes3(1 To 16) As Byte

End Type

'//校时结构参数

Public Type NET_DVR_TIME

dwYear As Long '//年

dwMonth As Long '//月

dwDay As Long '//日

dwHour As Long '//时

dwMinute As Long '//分

dwSecond As Long '//秒

End Type

'时间

Public Type NET_DVR_TIME_V30

wYear As Integer '年

byMonth As Byte '月

byDay As Byte

byHour As Byte

byMinute As Byte

bySecond As Byte

byRes As Byte

wMilliSec As Integer

byRes1(1 To 2) As Byte

End Type

' 图片信息(后续会加入码流)

Public Type NET_ITS_PICTURE_INFO

dwDataLen As Long '媒体数据长度

byType As Byte ' 0:车牌图 As Byte1:场景图 As Byte2:合成图 As Byte3:码流

'0-数据直接上传 1-云存储服务器URL(3.7Ver)原先的图片数据变成URL数据,图片长度变成URL长度

byDataType As Byte

byRes1(1 To 2) As Byte '保留

dwRedLightTime As Long '经过的红灯时间 (s)

byAbsTime(1 To 32) As Byte '绝对时间点,yyyymmddhhmmssxxx,e.g.20090810235959999 最后三位为毫秒数

struPlateRect As NET_VCA_RECT '车牌位置

struPlateRecgRect As NET_VCA_RECT '牌识区域坐标

pBuffer As Long ' 数据指针

byRes2(1 To 12) As Byte '保留

End Type

' 检测结果V41

Public Type NET_ITS_PLATE_RESULT

dwSize As Long '结构长度

dwMatchNo As Long '匹配序号,由(车辆序号,数Chan据类型,车道号)组成匹配码

byGroupNum As Byte '图片组数量(一辆过车相机多次抓拍的数量,代表一组图片的总数,用于延时匹配数据)

byPicNo As Byte '连拍的图片序号(接收到图片组数量后,表示接收完成 As Byte接收超时不足图片组数量时,根据需要保留或删除)

bySecondCam As Byte '是否第二相机抓拍(如远近景抓拍的远景相机,或前后抓拍的后相机,特殊项目中会用到)

byFeaturePicNo As Byte '闯红灯电警,取第几张图作为特写图,&Hff-表示不取

byDriveChan As Byte '触发车道号

byVehicleType As Byte '车辆类型,参考VTR_RESULT byRes1(1 To 2) As Byte '保留

wIllegalType As Integer '违章类型采用国标定义

byIllegalSubType(1 To 8) As Byte '违章子类型

byPostPicNo As Byte '违章时取第几张图片作为卡口图,&Hff-表示不取

byChanIndex As Byte '通道号(保留)

wSpeedLimit As Integer '限速上限(超速时有效)

byRes2(1 To 2) As Byte

struPlateInfo As NET_DVR_PLATE_INFO '车牌信息结构

struVehicleInfo As NET_DVR_VEHICLE_INFO '车辆信息

byMonitoringSiteID(1 To 48) As Byte '监测点编号

byDeviceID(1 To 48) As Byte '设备编号

byDir As Byte '监测方向,1-上行,2-下行,3-双向,4-由东向西,5-由南向北,6-由西向东,7-由北向南,8-其它

byDetectType As Byte '检测方式,1-地感触发,2-视频触发,3-多帧识别,4-雷达触发

byRes3(1 To 20) As Byte '保留

'0-开闸,1-未开闸 (专用于历史数据中相机根据黑白名单匹配后,是否开闸成功的标志)

byBarrierGateCtrlType As Byte

byAlarmDataType As Byte '0-实时数据,1-历史数据

struSnapFirstPicTime As NET_DVR_TIME_V30 '端点时间(ms)(抓拍第一张图片的时间)

dwIllegalTime As Long '违法持续时间(ms) = 抓拍最后一张图片的时间 - 抓拍第一张图片的时间

dwPicNum As Long '图片数量(与picGroupNum不同,代表本条信息附带的图片数量,图片信息由struVehicleInfoEx定义

struPicInfo(1 To 6) As NET_ITS_PICTURE_INFO '图片信息,单张回调,最多6张图,由序号区分

End Type

'报警设备信息

Public Type NET_DVR_ALARMER

byUserIDValid As Byte 'userid是否有效 0-无效,1-有效 bySerialValid As Byte '序列号是否有效 0-无效,1-有效 byVersionValid As Byte '版本号是否有效 0-无效,1-有效 byDeviceNameValid As Byte '设备名字是否有效 0-无效,1-有效 byMacAddrValid As Byte 'MAC地址是否有效 0-无效,1-有效 byLinkPortValid As Byte 'login端口是否有效 0-无效,1-有效 byDeviceIPValid As Byte '设备IP是否有效 0-无效,1-有效 bySocketIPValid As Byte 'socket ip是否有效 0-无效,1-有效 lUserID As Long 'NET_DVR_Login()返回值, 布防时有

sSerialNumber(1 To SERIALNO_LEN) As Byte '序列号

dwDeviceVersion As Long '版本信息 高16位表示主版本,低16位表示次版本

sDeviceName(1 To NAME_LEN) As Byte '设备名字

byMACAddr(1 To MACADDR_LEN) As Byte 'MAC地址

wLinkPort As Integer 'link port

sDeviceIP(1 To 128) As Byte 'IP地址

sSocketIP(1 To 128) As Byte '报警主动上传时的socket IP地址 byIpProtocol As Byte 'Ip协议 0-IPV4, 1-IPV6

byRes2(1 To 11) As Byte

End Type

'============================================================================================================================================================函数

'初始化SDK NET_DVR_API BOOL __stdcall NET_DVR_Init();

Public Declare Function NET_DVR_Init Lib "HCNetSDK.dll" () As Boolean

'释放SDK资源 NET_DVR_API BOOL __stdcall NET_DVR_Cleanup();

Public Declare Function NET_DVR_Cleanup Lib "HCNetSDK.dll" () As Boolean

'用户注册 NET_DVR_API LONG __stdcall NET_DVR_Login_V30(char *sDVRIP, WORD wDVRPort, char *sUserName, char *sPassword, NET_DVR_DEVICEINFO_V30 lpDeviceInfo);

Public Declare Function NET_DVR_Login_V30 Lib "HCNetSDK.dll" ( _

ByVal sDVRIP As String, _

ByVal wDVRPort As Integer, _

ByVal sUserName As String, _

ByVal sPassword As String, _

ByRef lpDeviceInfo As NET_DVR_DEVICEINFO_V30) As Long

'注销用户 NET_DVR_API BOOL __stdcall NET_DVR_Logout(LONG lUserID); Public Declare Function NET_DVR_Logout Lib "HCNetSDK.dll" ( _

ByVal lUserID As Long) As Boolean

'参数配置 NET_DVR_API BOOL __stdcall NET_DVR_SetDVRConfig(LONG lUserID,LONG dwCommand,LONG lChannel, LPVOID lpInBuffer,dwInBufferSize) As Long

Public Declare Function NET_DVR_SetDVRConfig Lib "HCNetSDK.dll" ( _

ByVal lUserID As Long, _

ByVal dwCommand As Long, _

ByVal lChannel As Long, _

ByRef lpInBuffer As NET_DVR_TIME, _

ByVal dwInBufferSize As Long) As Boolean

'启动预览 NET_DVR_API LONG __stdcall NET_DVR_RealPlay_V40(LONG lUserID, NET_DVR_PREVIEWINFO lpPreviewInfo, REALDATACALLBACK fRealDataCallBack_V30

= NULL, void* pUser = NULL);

Public Declare Function NET_DVR_RealPlay_V40 Lib "HCNetSDK.dll" ( _

ByVal lUserID As Long, _

ByRef lpClientInfo As NET_DVR_PREVIEWINFO, _

ByVal fRealDataCallBack_V30 As Long, _

ByVal pUser As Long) As Long

'停止预览 NET_DVR_API BOOL __stdcall NET_DVR_StopRealPlay(LONG lRealHandle);

Public Declare Function NET_DVR_StopRealPlay Lib "HCNetSDK.dll" ( _

ByVal lRealHandle As Long) As Boolean

'设置报警回调 NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessageCallBack_V30(MSGCallBack fMessageCallBack, void* pUser); Public Declare Function NET_DVR_SetDVRMessageCallBack_V30 Lib "HCNetSDK.dll" ( _ ByVal fMessageCallBack As Long, _

ByVal pUser As Long) As Boolean

'报警布防 NET_DVR_API__stdcall NET_DVR_SetupAlarmChan_V41(LONG lUserID, NET_DVR_SETUPALARM_PARAM lpSetupParam) As Long

Public Declare Function NET_DVR_SetupAlarmChan_V41 Lib "HCNetSDK.dll" ( _

ByVal lUserID As Long, _

ByRef lpSetupParam As NET_DVR_SETUPALARM_PARAM) As Long

'报警撤防 NET_DVR_API BOOL __stdcall NET_DVR_CloseAlarmChan_V30(LONG lAlarmHandle);

Public Declare Function NET_DVR_CloseAlarmChan_V30 Lib "HCNetSDK.dll" ( _

ByVal lAlarmHandle As Long) As Boolean

Public Const GENERIC_WRITE = &H40000000 '写文件

Public Const FILE_SHARE_READ = &H1

Public Const CREATE_ALWAY = 2

Public Const FILE_ATTRIBUTE_NORMAL = &H80

Public Const INVALID_HANDLE_VALUE = -1

''内存拷贝

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long

Public Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, ByRef lpBuffer As Byte, ByVal nNumberOfBytesToWrite As Long, ByRef lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Long) As Long

Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

'========================================================================================================================================================回调函数

'消息回调函数

Public Sub MessageCallBack(ByVal lCommand As Long, ByRef pAlarmer As NET_DVR_ALARMER, ByRef pAlarmInfo As NET_ITS_PLATE_RESULT, ByVal dwBufLen As Long, ByVal pUser As Long)

End Sub

更多相关推荐:
把握机会的名言警句

把握机会的名言警句君子藏器于身待时而动佚名机会对于不能利用它的人又有什么用呢正如风只对于能利用它的人才是动力西蒙人生颇富机会和变化人最得意的时候有最大的不幸光临亚里士多德弱者坐失良机强者制造时机没有时机这是弱者...

关于机会的名言警句大全

关于机会的名言警句大全txt这是一个禁忌相继崩溃的时代没人拦得着你只有你自己拦着自己你的禁忌越多成就就越少自卑有多种档次最高档次的自卑表现为吹嘘自己干什么都是天才关于机会的名言警句大全一个明智的人总是抓住机遇把...

关于把握机会的名人名言

关于把握机会的名人名言关于珍惜机会的名言20xx年12月08日星期五1219一个明智的人总是抓住机遇把它变成美好的未来托富勒君子藏器于身待时而动佚名愚蠢的行动能使人陷于贫困投合时机的行动却能令人致富克拉克机会对...

与机会有关的名言

与机会有关的名言1君子藏器于身待时而动2愚蠢的行动能使人陷于贫困投合时机的行动却能令人致富克拉克3机会对于不能利用它的人又有什么用呢正如风只对于能利用它的人才是动力西蒙4人生颇富机会和变化人最得意的时候有最大的...

关于机遇的名言(整理精校版)

关于机遇的名言作文辅导06162104一个明智的人总是抓住机遇把它变成美好的未来托富勒君子藏器于身待时而动佚名愚蠢的行动能使人陷于贫困投合时机的行动却能令人致富克拉克机会对于不能利用它的人又有什么用呢正如风只对...

关于机遇的名言与事例

机遇名言1机遇青睐有准备的人它不相信眼泪它与层懦懈惰无缘2机遇稍纵即逝目光敏锐勇敢果决者常常能获得它3机遇对任何人是平等的能不能抓住它主动权在每个人手里经典素材事例一诸葛亮待机而出诸葛亮字孔明三国时蜀汉著名政治...

善于抓住机遇的论据

抓住机遇机遇那就是极好的机会在人的一生中机遇不可能一次也不会降临人们的生活中间到处存在着机遇只要你留心它就会发现机遇抓住机遇然而当机遇发现你并不准备接待它的时候它就会从你的眼皮底下滑过人生充满了机遇善于抓住机遇...

关于机遇的名言

关于机遇的名言1谁若是有一刹那的胆怯也许就放走了幸运在这一刹那间对他伸出来的香饵大仲马2善于捕捉机会者为俊杰歌德3由于过分审慎人们对于时机就会重视不够就会坐失良机卢梭4乘着顺风就该扯篷塞万提斯5人若神经紧张说东...

与时机相关的名人名言

关于时机的名言1不等待机会所送礼物的人就是征服了命运阿诺德2乘着顺风就该扯篷塞万提斯3从容不迫地谈理论是一件事把思想付诸实行尤其在需要当机立断的时候又是一件事罗曼罗兰4当运气向你微笑时赶快拥抱她佚名5等待机会是...

把握机遇(名言警句、写作素材)

把握机遇机会作文素材关于珍惜思路提示我们每个人都拥有很多应学会珍惜珍惜你现在的拥有别为失去的东西徒劳伤心拥有时人们往往不知珍惜失去后才觉得可贵人类只拥有一个地球让我们共同珍惜名言儿童对教师的信任犹如玫瑰花上的一...

把握机遇(名言警句、写作素材)

把握机遇机会作文素材关于珍惜思路提示我们每个人都拥有很多应学会珍惜珍惜你现在的拥有别为失去的东西徒劳伤心拥有时人们往往不知珍惜失去后才觉得可贵人类只拥有一个地球让我们共同珍惜名言儿童对教师的信任犹如玫瑰花上的一...

名言警句系列素材:把握机遇

名言警句系列素材把握机遇名言警句系列素材把握机遇一个明智的人总是抓住机遇把它变成美好的未来托富勒君子藏器于身待时而动佚名愚蠢的行动能使人陷于贫困投合时机的行动却能令人致富克拉克机会对于不能利用它的人又有什么用呢...

抓住机会名言(4篇)