‘liusuyi’
2023-08-08 4920f3a1290f2061f7b81db78ce0dab7b6ae8fc2
src/main/java/com/ard/utils/hiksdk/service/impl/LoginResultCallBack.java
@@ -1,7 +1,9 @@
package com.ard.utils.hiksdk.service.impl;
import com.ard.alarm.camera.domain.ArdCameras;
import com.ard.alarm.camera.domain.CameraCmd;
import com.ard.utils.hiksdk.common.GlobalVariable;
import com.ard.utils.hiksdk.domain.DeviceInfo;
import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK;
import com.sun.jna.Pointer;
import lombok.extern.slf4j.Slf4j;
@@ -16,27 +18,22 @@
@Slf4j(topic = "hikSdk")
public class LoginResultCallBack implements HCNetSDK.FLoginResultCallBack {
    private ArdCameras camera;
    public LoginResultCallBack(ArdCameras camera) {
        this.camera = camera;
    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) {
        if (GlobalVariable.loginMap.containsKey(camera.getId())) {
            GlobalVariable.loginMap.remove(camera.getId());
        }
        String deviceIpPort = deviceInfo.getIp() + ":" + deviceInfo.getPort();
        if (dwResult == 1) {
            GlobalVariable.loginMap.put(camera.getId(), lUserID);
            log.info(camera.getIp() + ":" + camera.getPort() + "登录成功");
            camera.setLoginId(lUserID);
            camera.setChannel((int) lpDeviceinfo.byChanNum);
            GlobalVariable.loginMap.put(deviceInfo.getDeviceId(), lUserID);
            log.info("设备【" + deviceIpPort + "】登录成功");
            // 设置报警回调函数,建立报警上传通道(启用布防)
            HikClientUtil.setupAlarmChan(lUserID, -1);
            HikClientUtil.setupAlarmChan(deviceIpPort, lUserID, -1);
        } else {
            log.info(camera.getIp() + ":" + camera.getPort() + "登录失败");
            camera.setChannel(0);
            camera.setLoginId(-1);
            log.info("设备【" + deviceIpPort + "】登录失败");
        }
        return 1;
    }