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