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

本文介绍了如何在SpringBoot项目中集成海康设备SDK,包括下载SDK包,创建项目,加载库文件,连接设备,特别提到了在Linux环境下加载库文件的方法,以及车牌识别和单元门禁系统的监听操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

海康设备集成springboot


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


前言

公司要做一个智慧社区项目,之前是通过海康平台的接口简单好用,只不过现在收费啦,所有要换成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");modules
					if(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();
			hCNetSDK.NET_DVR_SetSDKInitCfg(3, ptrByteArray1.getPointer());

			System.arraycopy(strPath2.getBytes(), 0, ptrByteArray2.byValue, 0, strPath2.length());
			ptrByteArray2.write();
			hCNetSDK.NET_DVR_SetSDKInitCfg(4, ptrByteArray2.getPointer());

			String strPathCom = "/usr/lib64/";
			HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH();
			System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());
			struComPath.write();
			hCNetSDK.NET_DVR_SetSDKInitCfg(2, struComPath.getPointer());
		}

		hCNetSDK.NET_DVR_Init();
		//开启SDK日志打印
		boolean i= hCNetSDK.NET_DVR_SetLogToFile(3, "./sdklog", false);

		login_V40(ip,userName,password,Short.parseShort(StringUtils.isEmpty(port) ? "8000" : port));	//登陆设备
	}

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

在这里插入图片描述

二、车牌识别

车牌识别案例
设备遍历多线程去监听车辆

在这里插入图片描述

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

在这里插入图片描述


总结:多看官方文档

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值