package com.ard.utils.hiksdk.service.impl; import com.ard.alarm.camera.domain.ArdCameras; import com.ard.utils.hiksdk.common.GlobalVariable; import com.ard.utils.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 ArdCameras camera; public LoginResultCallBack(ArdCameras camera) { this.camera = camera; } @Override public int invoke(int lUserID, int dwResult, HCNetSDK.NET_DVR_DEVICEINFO_V30 lpDeviceinfo, Pointer pUser) { if (GlobalVariable.loginMap.containsKey(camera.getId())) { GlobalVariable.loginMap.remove(camera.getId()); } if (dwResult == 1) { GlobalVariable.loginMap.put(camera.getId(), lUserID); log.info(camera.getIp() + ":" + camera.getPort() + "登录成功"); camera.setLoginId(lUserID); camera.setChannel((int) lpDeviceinfo.byChanNum); // 设置报警回调函数,建立报警上传通道(启用布防) HikClientUtil.setupAlarmChan(lUserID, -1); } else { log.info(camera.getIp() + ":" + camera.getPort() + "登录失败"); camera.setChannel(0); camera.setLoginId(-1); } return 1; } }