海康人脸认证设备对接

海康人脸认证设备对接

1.配置服务 sdk服务启动监听
2.设备注册,返回存储服务地址/端口与报警服务地址/端口
3.设备上报数据处理
4.下发数据 调度/人脸/卡号
5.解决设备断点上报出现延迟的情况
更新时间: 2021-12-14
1.上传示例项目,下载运行即可使用
更新时间:2022-03-30
因为是空闲时间写的,可能更新比较慢  然后就是如果情况紧急 请给我发信息吧
地址类型: IP/IPV6
协议类型: EHOME

设备与sdk交互流程
交互流程

1.设备在保证网络正常的情况下,开机后会发起请求至注册服务
2.注册服务收到请求后,返回存储服务地址与端口和报警服务地址和端口,等(心跳时间,报警类型 tcp/udp,...) 至设备
3.在后续的对设备发起操作接口调用,需要从注册服务中进行调用

配置服务

  1. 注册服务 cms
if(!cms.NET_ECMS_Init()){
    // 初始化失败
}else{
	// window下 为 libeay32.dll luinx下为 libcrypto.so
	String libCryptoPath = ;
	HCISUPCMS.BYTE_ARRAY cmsArrayCrypto = new HCISUPCMS.BYTE_ARRAY(256);
	System.arraycopy(libCryptoPath.getBytes(), 0, cmsArrayCrypto.byValue, 0, libCryptoPath.length());
	cmsArrayCrypto.write();
	if(!cms.NET_ECMS_SetSDKInitCfg(0, cmsArrayCrypto.getPointer())){
		// 设置libCryptoPath失败
	}
	
	// window下 为 ssleay32.dll luinx下为 libssl.so
	String libSslPath = ;
	HCISUPCMS.BYTE_ARRAY cmsByteArraySsl = new HCISUPCMS.BYTE_ARRAY(256);
	System.arraycopy(libSslPath.getBytes(), 0, cmsByteArraySsl.byValue, 0, libSslPath.length());
	cmsByteArraySsl.write();
	if(!cms.NET_ECMS_SetSDKInitCfg(1, cmsByteArraySsl.getPointer())){
		// 设置libSslPath失败
	}
	
	if(!cms.NET_ECMS_SetLogToFile(3, cmsSdkLogPath, false)){
	    // 设置cms日志路径失败
	}
	
	HCISUPCMS.NET_EHOME_CMS_LISTEN_PARAM cmsParam = new HCISUPCMS.NET_EHOME_CMS_LISTEN_PARAM();
	// 监听IP地址
	cmsParam.struAddress.szIP = ;
	// 监听端口
	cmsParam.struAddress.wPort = ;
	// 设备请求后触发调用对象 需实现sdk接口
	cmsParam.fnCB = ;
	if(hcisupcms.NET_ECMS_StartListen(cmsParam).longValue() < 0){
	    // 启动注册监听服务器失败
	}else{
	    // 启动注册监听服务器成功
	}
}
  1. 存储服务
 if (!ss.NET_ESS_Init()){
	// 存储SDK初始化失败
}else {
	//	winsow下 为 libeay32.dll luinx下为 libcrypto.so
	String libCryptoPath = ;
	HCISUPCMS.BYTE_ARRAY ptrByteArrayCrypto = new HCISUPCMS.BYTE_ARRAY(256);
	System.arraycopy(libCryptoPath.getBytes(), 0, ptrByteArrayCrypto.byValue, 0, libCryptoPath.length());
	ptrByteArrayCrypto.write();
	if(!ss.NET_ESS_SetSDKInitCfg(0, ptrByteArrayCrypto.getPointer())){
			// 设置libCryptoPath失败
	}
	
	//	winsow下 为 ssleay32.dll luinx下为 libssl.so
	String libSslPath = ;
	HCISUPCMS.BYTE_ARRAY ptrByteArraySsl = new HCISUPCMS.BYTE_ARRAY(256);
	System.arraycopy(libSslPath.getBytes(), 0, ptrByteArraySsl.byValue, 0, libSslPath.length());
	ptrByteArraySsl.write();
	if(!ss.NET_ESS_SetSDKInitCfg(1, ptrByteArraySsl.getPointer())){
		//	设置libSslPath失败
	}
	
	if(!ss.NET_ESS_SetLogToFile(3, ssSdkLogPath, false)){
		//	设置ss日志路径失败
	}

	HCISUPSS.NET_EHOME_SS_LISTEN_PARAM pSSListenParam = new HCISUPSS.NET_EHOME_SS_LISTEN_PARAM();
	//	监听IP地址
	pSSListenParam.struAddress.szIP = ;
	//	监听端口
	pSSListenParam.struAddress.wPort = ;
	//	ssUserName
	pSSListenParam.szKMS_UserName = ;
	//	ssPassword
	pSSListenParam.szKMS_Password = ;
	//	是否启用HTTPs
	pSSListenParam.byHttps = 0;
	//	设备请求后触发调用对象 需实现sdk接口
	pSSListenParam.fnSStorageCb = ;
	pSSListenParam.bySecurityMode = 1;
	pSSListenParam.write();

	if(ss.NET_ESS_StartListen(pSSListenParam).longValue() < 0){
		// 启动ss监听服务器失败
	}
}
  1. 报警服务
if(!alarm.NET_EALARM_Init()){
	// 报警SDK初始化失败
}else {
	// window下 为 libeay32.dll luinx下为 libcrypto.so
	String libCryptoPath = ;
	HCISUPCMS.BYTE_ARRAY ptrByteArrayCrypto = new HCISUPCMS.BYTE_ARRAY(256);
	System.arraycopy(libCryptoPath.getBytes(), 0, ptrByteArrayCrypto.byValue, 0, libCryptoPath.length());
	ptrByteArrayCrypto.write();
	if(!alarm.NET_EALARM_SetSDKInitCfg(0, ptrByteArrayCrypto.getPointer())){
		// 设置libCryptoPath失败
	}

	// window下 为 ssleay32.dll luinx下为 libssl.so
	String libSslPath = 
	HCISUPCMS.BYTE_ARRAY ptrByteArraySsl = new HCISUPCMS.BYTE_ARRAY(256);
	System.arraycopy(libSslPath.getBytes(), 0, ptrByteArraySsl.byValue, 0, libSslPath.length());
	ptrByteArraySsl.write();
	if(!alarm.NET_EALARM_SetSDKInitCfg(1, ptrByteArraySsl.getPointer())){
		// 设置libSslPath失败
	}
	
	// com SDK路径
	String sdkComPath = ;
	HCISUPCMS.BYTE_ARRAY ptrByteArrayCom = new HCISUPCMS.BYTE_ARRAY(256);
	System.arraycopy(sdkComPath.getBytes(), 0, ptrByteArrayCom.byValue, 0, sdkComPath.length());
	ptrByteArrayCom.write();
	if(!alarm.NET_EALARM_SetSDKLocalCfg(5, ptrByteArrayCom.getPointer())){
		// 设置sdkComPath失败
	}

	if(!alarm.NET_EALARM_SetLogToFile(3, amsSdkLogPath, false)){
		// 设置ams日志路径失败
	}

	HCISUPAlarm.NET_EHOME_ALARM_LISTEN_PARAM amsParam = new HCISUPAlarm.NET_EHOME_ALARM_LISTEN_PARAM();
	//	监听IP地址
	amsParam.struAddress.szIP = ;
	//	监听端口
	amsParam.struAddress.wPort = ;
	//	协议类型,0-TCP,1-UDP,2-MQTT
	amsParam.byProtocolType = ;
	//	设备请求后触发调用对象 需实现sdk接口
	amsParam.fnMsgCb = ;
	//	是否复用CMS端口:0 - 不复用,非0 - 复用
	amsParam.byUseCmsPort = ;
	if(alarm.NET_EALARM_StartListen(amsParam).intValue() < 0){
		// 启动报警监听服务器失败
	}
}

示例项目,下载运行既可使用

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值