springboot集成大华人脸机
一、先去官网(support)下载对应的demo
二、将demo中全量文件复制到springboot新建的包下,然后全局替换 com.netsdk. 为 自己建的包名前缀
三、将res下文件复制到resources文件夹下,将libs复制到resources文件夹下
四、将jna.jar通过mvn安装到本地maven库中,然后通过pom引入项目
<dependency>
<groupId>com.dahua.netsdk</groupId>
<artifactId>dahua-netsdk-jna</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.4.0</version>
</dependency>
五、win+R输入 %temp%,将下图win64下文件复制到temp文件夹中
六、编写测试代码,默认连接地址:默认ip:192.168.1.108 port 37777
public class Test {
public static void main(String[] args) throws InterruptedException {
LoginModule.init(new NetSDKLib.fDisConnect() {
@Override
public void invoke(NetSDKLib.LLong lLoginID, String pchDVRIP, int nDVRPort, Pointer dwUser) {
System.out.println(1);
}
}, new NetSDKLib.fHaveReConnect() {
@Override
public void invoke(NetSDKLib.LLong lLoginID, String pchDVRIP, int nDVRPort, Pointer dwUser) {
System.out.println(2);
}
});
boolean login = LoginModule.login("192.168.1.108", 37777, "admin", "admin123");
System.out.println(login);
// AttendanceModule.UserData user = AttendanceModule.getUser("006");
// System.out.println(user.userName);
AttendanceModule.realLoadPicture(new fAnalyzerDataCB());
Thread.sleep(1*60*60*1000);
}
public static class fAnalyzerDataCB implements NetSDKLib.fAnalyzerDataCallBack {
public final EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue();
@Override
public int invoke(NetSDKLib.LLong lAnalyzerHandle, int dwAlarmType,
Pointer pAlarmInfo, Pointer pBuffer, int dwBufSize,
Pointer dwUser, int nSequence, Pointer reserved) {
if(pAlarmInfo == null) {
return 0;
}
System.out.println("门禁事件回调");
switch(dwAlarmType) {
case NetSDKLib.EVENT_IVS_ACCESS_CTL: // 门禁事件
NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO event = new NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO();
ToolKits.GetPointerData(pAlarmInfo, event);
System.out.println("门禁事件回调信息");
System.out.println("id:"+new String(event.szUserID).trim());
System.out.println("卡名:"+new String(event.szCardName).trim());
break;
default:
break;
}
return 0;
}
}
}