From 4e8a1c02b45f72f6377603778e8c8746ed82f374 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Tue, 06 Jan 2026 10:04:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 ard-device/src/main/java/com/ard/device/component/sdk/dh/service/impl/DaHuaSDK.java |   66 ++++++++++-----------------------
 1 files changed, 20 insertions(+), 46 deletions(-)

diff --git a/ard-device/src/main/java/com/ard/device/component/sdk/dh/service/impl/DaHuaSDK.java b/ard-device/src/main/java/com/ard/device/component/sdk/dh/service/impl/DaHuaSDK.java
index 4481c35..84468ce 100644
--- a/ard-device/src/main/java/com/ard/device/component/sdk/dh/service/impl/DaHuaSDK.java
+++ b/ard-device/src/main/java/com/ard/device/component/sdk/dh/service/impl/DaHuaSDK.java
@@ -1,13 +1,10 @@
 package com.ard.device.component.sdk.dh.service.impl;
 
-import com.ard.common.core.domain.AjaxResult;
 import com.ard.common.utils.StringUtils;
 import com.ard.device.camera.domain.ArdCamera;
 import com.ard.device.camera.domain.CameraCmd;
-import com.ard.device.camera.service.IArdCameraService;
 import com.ard.device.channel.domain.ArdChannel;
 import com.ard.device.channel.domain.VideoCompressionCfg;
-import com.ard.device.channel.service.IArdChannelService;
 import com.ard.device.component.sdk.common.GlobalVariable;
 import com.ard.device.component.sdk.common.osSelect;
 import com.ard.device.component.sdk.dh.module.ConfigModule;
@@ -20,6 +17,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
+
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 import java.io.*;
@@ -41,12 +39,7 @@
 public class DaHuaSDK implements CameraSDK {
 
     @Resource
-    private IArdCameraService ardCameraService;
-    @Resource
-    private IArdChannelService ardChannelService;
-    @Resource
     private ApplicationEventPublisher eventPublisher;
-
 
     public static NetSDKLib netsdk = null;
     public static NetSDKLib configsdk = null;
@@ -107,10 +100,11 @@
      * 登录
      */
     @Override
-    public AjaxResult login(ArdCamera camera) {
+    public void login(ArdCamera camera) {
         try {
             NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();
-            NetSDKLib.LLong loginId = LoginModule.login(camera.getIp(), camera.getPort(), camera.getUsername(), camera.getPassword(), m_stDeviceInfo);
+            NetSDKLib.LLong loginId = LoginModule.login(camera.getIp(), camera.getPort(), camera.getUsername(),
+                    camera.getPassword(), m_stDeviceInfo);
             if (loginId.longValue() <= 0) {
                 camera.setChanNum(0);
                 camera.setLoginId(-1L);
@@ -118,14 +112,13 @@
                 LoginEvent loginEvent = new LoginEvent(camera);
                 eventPublisher.publishEvent(loginEvent);
                 log.warn("设备[{}:{}]登录失败:{}", camera.getIp(), camera.getPort(), getErrorCodePrint());
-                return AjaxResult.warn(getErrorCodePrint());
             }
             log.debug("设备[{}:{}]登录成功:{}", camera.getIp(), camera.getPort(), loginId);
             camera.setState("1");
             camera.setChanNum(m_stDeviceInfo.byChanNum);
             camera.setStartChan(1);
             camera.setLoginId(loginId.longValue());
-            GlobalVariable.loginMap.put(camera.getId(), loginId);
+
             //获取最新通道
             List<ArdChannel> ardChannelList = getChannels(camera);
             if (!ardChannelList.isEmpty()) {
@@ -133,12 +126,8 @@
             }
             LoginEvent loginEvent = new LoginEvent(camera);
             eventPublisher.publishEvent(loginEvent);
-            //创建引导队列
-            //createGuideQueue(camera);
-            return AjaxResult.success("登录成功");
         } catch (Exception ex) {
             log.error("登录异常:{}", ex.getMessage());
-            return AjaxResult.error("登录异常:" + ex.getMessage());
         }
     }
 
@@ -146,16 +135,11 @@
      * 注销
      * 刘苏义
      * 2023/10/17 8:28:13
-     *
-     * @return
      */
     @Override
-    public boolean logout(String cameraId) {
-        if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
-        }
-        NetSDKLib.LLong loginId = (NetSDKLib.LLong) GlobalVariable.loginMap.get(cameraId);
-        return LoginModule.logout(loginId);
+    public void logout(ArdCamera ardCamera) {
+        NetSDKLib.LLong loginId = new NetSDKLib.LLong(ardCamera.getLoginId());
+        LoginModule.logout(loginId);
     }
 
     /**
@@ -164,13 +148,9 @@
      * 2023/10/17 8:28:13
      */
     @Override
-    public boolean isOnLine(CameraCmd cmd) {
+    public boolean isOnLine(ArdCamera ardCamera) {
         try {
-            String cameraId = cmd.getCameraId();
-            if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-                return false;
-            }
-            NetSDKLib.LLong loginId = (NetSDKLib.LLong) GlobalVariable.loginMap.get(cameraId);
+            NetSDKLib.LLong loginId = new NetSDKLib.LLong(ardCamera.getLoginId());
             NetSDKLib.NET_WORKSTATE dh_ptz_location_info = new NetSDKLib.NET_WORKSTATE();
             boolean b = ConfigModule.queryDevState(loginId, NET_DEVSTATE_ONLINE, dh_ptz_location_info);
             if (!b) {
@@ -186,7 +166,7 @@
     /**
      * 获取通道
      */
-
+    @Override
     public List<ArdChannel> getChannels(ArdCamera camera) {
         if (camera.getLoginId() < 0) {
             return new ArrayList<>();
@@ -200,8 +180,8 @@
             channel.setDeviceId(camera.getId());
             channel.setChanNo(i);
             //获取视频编码
-            CameraCmd cameraCmd = new CameraCmd(camera.getId(), channel.getChanNo());
-            VideoCompressionCfg videoCompressionCfg = getVideoCompressionCfg(cameraCmd);
+            camera.setChanNo(i);
+            VideoCompressionCfg videoCompressionCfg = getVideoCompressionCfg(camera);
             if (StringUtils.isNotNull(videoCompressionCfg)) {
                 channel.setVideoCode(videoCompressionCfg.getVideoEncType());
             }
@@ -216,18 +196,13 @@
         return ardChannelList;
     }
 
-
     @Override
-    public VideoCompressionCfg getVideoCompressionCfg(CameraCmd cmd) {
-        String cameraId = cmd.getCameraId();
-        Integer chanNo = cmd.getChanNo();
-        if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return null;
-        }
-        NetSDKLib.LLong loginId = (NetSDKLib.LLong) GlobalVariable.loginMap.get(cameraId);
+    public VideoCompressionCfg getVideoCompressionCfg(ArdCamera ardCamera) {
+
+        NetSDKLib.LLong loginId = new NetSDKLib.LLong(ardCamera.getLoginId());
         NetSDKLib.CFG_ENCODE_INFO cfg_encode_info = new NetSDKLib.CFG_ENCODE_INFO();
-        cfg_encode_info.nChannelID = chanNo - 1;
-        boolean b = ConfigModule.GetNewDevConfig(loginId, chanNo - 1, CFG_CMD_ENCODE, cfg_encode_info);
+        cfg_encode_info.nChannelID = ardCamera.getChanNo() - 1;
+        boolean b = ConfigModule.GetNewDevConfig(loginId, ardCamera.getChanNo() - 1, CFG_CMD_ENCODE, cfg_encode_info);
         if (b) {
             int emCompression = cfg_encode_info.stuMainStream[0].stuVideoFormat.emCompression;//视频格式
             String videoEncType;
@@ -283,7 +258,6 @@
         }
     }
 
-
     /**
      * 动态库加载 - 大华 NetSDK + ConfigSDK
      */
@@ -322,9 +296,9 @@
                         return false;
                     }
 
-                    System.out.println("✅ 正在加载 NetSDK: " + netSdkDllPath);
+                    System.out.println("⏳ 正在加载 NetSDK: " + netSdkDllPath);
                     netsdk = Native.loadLibrary(netSdkDllPath, NetSDKLib.class);
-                    System.out.println("✅ 正在加载 ConfigSDK: " + configSdkDllPath);
+                    System.out.println("⏳ 正在加载 ConfigSDK: " + configSdkDllPath);
                     configsdk = Native.loadLibrary(configSdkDllPath, NetSDKLib.class);
                     System.out.println("✅ SDK 加载完成");
                 } catch (Exception ex) {

--
Gitblit v1.9.3