package com.ard.utils.sdk.hiksdk.service.impl;
|
|
import com.ard.utils.sdk.hiksdk.common.GlobalVariable;
|
import com.ard.utils.sdk.hiksdk.domain.DeviceInfo;
|
import com.ard.utils.sdk.hiksdk.util.hikSdkUtil.HCNetSDK;
|
import com.sun.jna.Pointer;
|
import lombok.extern.slf4j.Slf4j;
|
|
/**
|
* @Description: 异步登录回调
|
* @ClassName: FLoginResultCallBack
|
* @Author: 刘苏义
|
* @Date: 2023年06月12日13:34
|
* @Version: 1.0
|
**/
|
@Slf4j(topic = "hikSdk")
|
public class LoginResultCallBack implements HCNetSDK.FLoginResultCallBack {
|
|
private DeviceInfo deviceInfo;
|
|
public LoginResultCallBack(DeviceInfo deviceInfo) {
|
this.deviceInfo = deviceInfo;
|
}
|
|
@Override
|
public int invoke(int lUserID, int dwResult, HCNetSDK.NET_DVR_DEVICEINFO_V30 lpDeviceinfo, Pointer pUser) {
|
String deviceIpPort = deviceInfo.getIp() + ":" + deviceInfo.getPort();
|
if (dwResult == 1) {
|
GlobalVariable.loginMap.put(deviceInfo.getDeviceId(), lUserID);
|
log.debug("设备【" + deviceIpPort + "】登录成功");
|
// 设置报警回调函数,建立报警上传通道(启用布防)
|
int lAlarmHandle = HikClientUtil.setupAlarmChan(deviceIpPort, lUserID, -1);
|
if (lAlarmHandle != -1) {
|
GlobalVariable.alarmMap.put(deviceInfo.getDeviceId(), lAlarmHandle);
|
}
|
} else {
|
log.debug("设备【" + deviceIpPort + "】登录失败");
|
}
|
return 1;
|
}
|
}
|