From 5addedcb92fcd56239825f301502aabbeaf5e325 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期二, 24 十月 2023 11:26:46 +0800 Subject: [PATCH] 异步登录成功后获取通道和配置流媒体增加线程同步 --- ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 18 +++++++++++------- 1 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java index bda9b3e..a052a0f 100644 --- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java @@ -3,6 +3,7 @@ import com.ruoyi.alarm.global.domain.GuidePriorityQueue; import com.ruoyi.alarm.global.domain.GuideTask; import com.ruoyi.common.annotation.SdkOperate; +import com.ruoyi.common.utils.Threads; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.common.utils.uuid.IdUtils; @@ -56,7 +57,7 @@ private IArdChannelService ardChannelService; @Resource private IVtduService vtduService; - + private final Object lock = new Object(); public static HCNetSDK hCNetSDK = HCNetSDK.hCNetSDK; private static FExceptionCallBack fExceptionCallBack;//寮傚父鍥炶皟 @@ -110,20 +111,22 @@ //鍚屾鐧诲綍 int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); if (lUserID < 0) { - int errorCode = hCNetSDK.NET_DVR_GetLastError(); - log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触,閿欒鐮侊細" + errorCode); + log.debug("Login Failed [ " + camera.getIp() + ":" + camera.getPort() + " ],閿欒鐮侊細" + hCNetSDK.NET_DVR_GetLastError()); camera.setChanNum(0); camera.setLoginId(-1); camera.setState("0"); - } else { + return; + } + synchronized (lock) { + log.debug("Login Success [ " + camera.getIp() + ":" + camera.getPort() + " ]"); if (fExceptionCallBack == null) { fExceptionCallBack = new ExceptionCallBack();//寮傚父鍥炶皟 //璁剧疆寮傚父鍥炶皟鍑芥暟(鍙湪鍥炶皟鍑芥暟涓幏鍙栬澶囦笂涓嬬嚎鐘舵�佺瓑) if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, null)) { - log.info("Set fExceptionCallBack function fail"); + log.debug("Set fExceptionCallBack function fail"); return; } else { - log.info("Set fExceptionCallBack function successfully!"); + log.debug("Set fExceptionCallBack function successfully!"); } } @@ -135,7 +138,7 @@ GlobalVariable.loginMap.put(camera.getId(), lUserID); GlobalVariable.loginCameraMap.put(lUserID, camera); - log.debug("Login Success [ " + camera.getIp() + ":" + camera.getPort() + " ]"); + camera.setLoginId(lUserID); camera.setState("1"); camera.setChanNum((int) m_strDeviceInfo.struDeviceV30.byChanNum); @@ -179,6 +182,7 @@ } ardCamerasService.updateArdCameras(camera); } + } catch (Exception ex) { log.error("娉ㄥ唽璁惧寮傚父", ex); } -- Gitblit v1.9.3