From d873828ae4b9d4fc6ad510513c6c3f0c33118fd8 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Tue, 30 Dec 2025 11:32:06 +0800
Subject: [PATCH] 优化
---
ard-device/src/main/java/com/ard/device/component/sdk/hik/service/impl/HikVisionSDK.java | 41 ++++++++++++-----------------------------
1 files changed, 12 insertions(+), 29 deletions(-)
diff --git a/ard-device/src/main/java/com/ard/device/component/sdk/hik/service/impl/HikVisionSDK.java b/ard-device/src/main/java/com/ard/device/component/sdk/hik/service/impl/HikVisionSDK.java
index 4f000f6..728245a 100644
--- a/ard-device/src/main/java/com/ard/device/component/sdk/hik/service/impl/HikVisionSDK.java
+++ b/ard-device/src/main/java/com/ard/device/component/sdk/hik/service/impl/HikVisionSDK.java
@@ -9,6 +9,7 @@
import com.ard.device.component.sdk.common.ResolutionEnum;
import com.ard.device.component.sdk.common.SdkErrorCodeEnum;
import com.ard.device.component.sdk.common.osSelect;
+import com.ard.device.component.sdk.dh.lib.NetSDKLib;
import com.ard.device.component.sdk.event.LoginEvent;
import com.ard.device.component.sdk.hik.lib.ExceptionCallBack;
import com.ard.device.component.sdk.hik.lib.HCNetSDK;
@@ -106,10 +107,9 @@
eventPublisher.publishEvent(loginEvent);
log.warn("设备[{}:{}]登录失败: {}({})", camera.getIp(), camera.getPort(),
SdkErrorCodeEnum.getDescByCode(errorCode), errorCode);
+ return;
}
log.info("Login Success 【 {}:{} 】", camera.getIp(), camera.getPort());
-
- GlobalVariable.loginMap.put(camera.getId(), loginId);
GlobalVariable.hikLoginMap.put(loginId, camera);
camera.setLoginId((long) loginId);
camera.setState("1");
@@ -137,26 +137,15 @@
* 注销
*/
@Override
- public void logout(String cameraId) {
- if (!GlobalVariable.loginMap.containsKey(cameraId)) {
- return;
- }
- Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
- boolean b = hCNetSDK.NET_DVR_Logout(userId);
- if (b) {
- GlobalVariable.loginMap.remove(cameraId);
- }
+ public void logout(ArdCamera ardCamera) {
+
+ hCNetSDK.NET_DVR_Logout(ardCamera.getLoginId().intValue());
}
@Override
- public boolean isOnLine(CameraCmd cmd) {
+ public boolean isOnLine(ArdCamera ardCamera) {
try {
- String cameraId = cmd.getCameraId();
- if (!GlobalVariable.loginMap.containsKey(cameraId)) {
- return false;
- }
- Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
- return hCNetSDK.NET_DVR_RemoteControl(userId, NET_DVR_CHECK_USER_STATUS, null, 0);
+ return hCNetSDK.NET_DVR_RemoteControl(ardCamera.getLoginId().intValue(), NET_DVR_CHECK_USER_STATUS, null, 0);
} catch (Exception ex) {
log.error("检测在线异常:{}", ex.getMessage());
return false;
@@ -168,19 +157,13 @@
*
*/
@Override
- public VideoCompressionCfg getVideoCompressionCfg(CameraCmd cmd) {
- String cameraId = cmd.getCameraId();
- Integer chanNo = cmd.getChanNo();
- if (!GlobalVariable.loginMap.containsKey(cameraId)) {
- return null;
- }
- Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
-
+ public VideoCompressionCfg getVideoCompressionCfg(ArdCamera ardCamera) {
+ Integer chanNo = ardCamera.getChanNo();
+ int userId = ardCamera.getLoginId().intValue();
HCNetSDK.NET_DVR_COMPRESSIONCFG_V30 compressionCfg = new HCNetSDK.NET_DVR_COMPRESSIONCFG_V30();
compressionCfg.write();
Pointer point = compressionCfg.getPointer();
IntByReference ibrBytesReturned = new IntByReference(0);
-
boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_COMPRESSCFG_V30, chanNo, point,
compressionCfg.size(), ibrBytesReturned);
if (bool) {
@@ -431,8 +414,8 @@
channel.setName(channelName);
channel.setChanNo(chanNo);
//获取视频编码
- CameraCmd cameraCmd = new CameraCmd(camera.getId(), chanNo);
- VideoCompressionCfg videoCompressionCfg = getVideoCompressionCfg(cameraCmd);
+ camera.setChanNo(chanNo);
+ VideoCompressionCfg videoCompressionCfg = getVideoCompressionCfg(camera);
if (StringUtils.isNotNull(videoCompressionCfg)) {
channel.setVideoCode(videoCompressionCfg.getVideoEncType());
}
--
Gitblit v1.9.3