package com.ruoyi.utils.sdk.hiksdk.lib; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.utils.sdk.common.GlobalVariable; import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; import static com.ruoyi.utils.sdk.hiksdk.lib.HCNetSDK.*; /** * @Description: 注册接收异常、重连等消息的窗口句柄或回调函数 * @ClassName: ExceptionCallBack * @Author: 刘苏义 * @Date: 2023年10月23日15:37:40 **/ @Slf4j(topic = "hikSdk") public class ExceptionCallBack implements HCNetSDK.FExceptionCallBack { @Override public void invoke(int dwType, int lUserID, int lHandle, Pointer pUser) { ArdCameras camera = (ArdCameras) GlobalVariable.loginCameraMap.get(lUserID); if(camera!=null) { String ip = camera.getIp(); Integer port = camera.getPort(); switch (dwType) { case EXCEPTION_EXCHANGE: log.warn("Device[" + ip + "] Port[" + port + "]用户交互时异常"); break; case EXCEPTION_PREVIEW: log.warn("Device[" + ip + "] Port[" + port + "]网络预览异常"); break; case EXCEPTION_RECONNECT: log.warn("Device[" + ip + "] Port[" + port + "]预览时重连"); break; case RELOGIN_SUCCESS: log.warn("Device[" + ip + "] Port[" + port + "]用户重登陆成功"); break; case EXCEPTION_RELOGIN: log.warn("Device[" + ip + "] Port[" + port + "]用户重登陆"); break; } } } }