700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Springboot集成海康威视门禁设备 车牌识别摄像头 人脸设备

Springboot集成海康威视门禁设备 车牌识别摄像头 人脸设备

时间:2018-08-15 20:43:47

相关推荐

Springboot集成海康威视门禁设备 车牌识别摄像头 人脸设备

海康设备集成springboot

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

海康设备集成springboot前言一、海康SDK包根据下载的SKD包中的DEMO示例连接设备创建一个springboot项目将库文件放入根目录lib文件下(lib自己创建)maven 加载一下连接设备海康设备下载网络设备搜索工具能找到设备后将参数写到AcsMain的main方法中 二、车牌识别三、单元门禁DEMO中Alarm进行监听

前言

公司要做一个智慧社区项目,之前是通过海康平台的接口简单好用,只不过现在收费啦,所有要换成SDK的方式来获取数据,现在来总结一下经验

提示:以下是本篇文章正文内容,下面案例可供参考

一、海康SDK包

海康SDK包下载

根据下载的SKD包中的DEMO示例连接设备

创建一个springboot项目将库文件放入根目录lib文件下(lib自己创建)maven 加载一下

连接设备

1.HCNetSDK.dll这个文件根据自己的来

代码如下(示例):

/*** 根据不同操作系统选择不同的库文件和库路径* @return*/private static boolean createSDKInstance(){if(hCNetSDK == null){synchronized (HCNetSDK.class){String strDllPath = "";try{//System.setProperty("jna.debug_load", "true");modulesif(osSelect.isWindows())//win系统加载库路径strDllPath = System.getProperty("user.dir") + "\\modules\\trafficrecord\\lib\\HCNetSDK.dll";else if(osSelect.isLinux())//Linux系统加载库路径//获取到的path是file:/home/trafficrecord-1.0-SNAPSHOT.jar!/BOOT-INF/classes!/lib/linux/libhcnetsdk.so格式的//strDllPath = AcsMain.class.getClassLoader().getResource("/lib/linux/libhcnetsdk.so").getPath().substring(5);strDllPath = "/usr/lib64/libhcnetsdk.so";System.out.println("===============================================");System.out.println("strDllPath==="+strDllPath);hCNetSDK = (HCNetSDK) Native.loadLibrary(strDllPath, HCNetSDK.class);}catch (Exception ex) {System.out.println("loadLibrary: " + strDllPath + " Error: " + ex.getMessage());return false;}}}return true;}

海康设备下载网络设备搜索工具能找到设备后将参数写到AcsMain的main方法中

main方法连接设备我这里将ip,端口,账号,密码设为参数啦

public static void init(String ip,String userName,String password,String port) {if(hCNetSDK == null){if(!createSDKInstance()){log.info(ip+" 初始化SDK失败");return;}}//linux系统建议调用以下接口加载组件库if (osSelect.isLinux()){HCNetSDK.BYTE_ARRAY ptrByteArray1 = new HCNetSDK.BYTE_ARRAY(256);HCNetSDK.BYTE_ARRAY ptrByteArray2 = new HCNetSDK.BYTE_ARRAY(256);//这里是库的绝对路径,请根据实际情况修改,注意改路径必须有访问权限String strPath1 = "/usr/lib64/libcrypto.so.1.1";String strPath2 = "/usr/lib64/libssl.so.1.1";//String strPath1 = AcsMain.class.getClassLoader().getResource("/lib/linux/libcrypto.so.1.1").getPath().substring(5);//String strPath2 = AcsMain.class.getClassLoader().getResource("/lib/linux/libssl.so.1.1").getPath().substring(5);System.out.println("===============================================");System.out.println("strPath1==="+strPath1);System.out.println("strPath2==="+strPath2);System.arraycopy(strPath1.getBytes(), 0, ptrByteArray1.byValue, 0, strPath1.length());ptrByteArray1.write();_DVR_SetSDKInitCfg(3, ptrByteArray1.getPointer());System.arraycopy(strPath2.getBytes(), 0, ptrByteArray2.byValue, 0, strPath2.length());ptrByteArray2.write();_DVR_SetSDKInitCfg(4, ptrByteArray2.getPointer());String strPathCom = "/usr/lib64/";_DVR_LOCAL_SDK_PATH struComPath = new _DVR_LOCAL_SDK_PATH();System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());struComPath.write();_DVR_SetSDKInitCfg(2, struComPath.getPointer());}_DVR_Init();//开启SDK日志打印boolean i= _DVR_SetLogToFile(3, "./sdklog", false);login_V40(ip,userName,password,Short.parseShort(StringUtils.isEmpty(port) ? "8000" : port));//登陆设备}

成功之后可以最设备上的人员进行增删改查,以及事件的查询,我是根据定时任务去拉取的

二、车牌识别

车牌识别案例

设备遍历多线程去监听车辆

三、单元门禁DEMO中Alarm进行监听

总结:多看官方文档

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。