From 483f72f5540bdefb3ddd4726113b3c171eb7107d Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 06 七月 2023 17:20:41 +0800
Subject: [PATCH] 增加外联设备报警解析并上传mqtt

---
 src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java |   43 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java b/src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java
index 7ace4c1..62455b1 100644
--- a/src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java
+++ b/src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java
@@ -2,11 +2,13 @@
 
 import com.ard.alarm.camera.domain.ArdCameras;
 import com.ard.alarm.camera.domain.CameraCmd;
+import com.ard.utils.ByteUtils;
 import com.ard.utils.hiksdk.common.GlobalVariable;
 import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK;
 import com.ard.utils.hiksdk.util.minio.MinioUtils;
 import com.sun.jna.Native;
 import com.sun.jna.Platform;
+import com.sun.jna.Pointer;
 import com.sun.jna.ptr.IntByReference;
 import lombok.extern.slf4j.Slf4j;
 
@@ -124,7 +126,6 @@
      * @鍒涘缓鏃堕棿 2023/1/17 16:12
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
-
     public static void login(ArdCameras camera) {
         // 鍒濆鍖�
         if (!hCNetSDK.NET_DVR_Init()) {
@@ -186,7 +187,7 @@
                 Thread.sleep(100);
                 login(camera);
                 String ip = camera.getIp();
-                cameraMap.put(ip,camera);
+                cameraMap.put(ip, camera);
             }
         } catch (Exception ex) {
             log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage());
@@ -254,7 +255,7 @@
             HCNetSDK.NET_DVR_SETUPALARM_PARAM m_strAlarmInfo = new HCNetSDK.NET_DVR_SETUPALARM_PARAM();
             m_strAlarmInfo.dwSize = m_strAlarmInfo.size();
             // 鏅鸿兘浜ら�氬竷闃蹭紭鍏堢骇锛�0 - 涓�绛夌骇锛堥珮锛夛紝1 - 浜岀瓑绾э紙涓級锛�2 - 涓夌瓑绾э紙浣庯級
-            m_strAlarmInfo.byLevel = 1;
+            m_strAlarmInfo.byLevel = 2;
             // 鏅鸿兘浜ら�氭姤璀︿俊鎭笂浼犵被鍨嬶細0 - 鑰佹姤璀︿俊鎭紙NET_DVR_PLATE_RESULT锛�, 1 - 鏂版姤璀︿俊鎭�(NET_ITS_PLATE_RESULT)
             m_strAlarmInfo.byAlarmInfoType = 1;
             // 甯冮槻绫诲瀷(浠呴拡瀵归棬绂佷富鏈恒�佷汉璇佽澶�)锛�0 - 瀹㈡埛绔竷闃�(浼氭柇缃戠画浼�)锛�1 - 瀹炴椂甯冮槻(鍙笂浼犲疄鏃舵暟鎹�)
@@ -263,7 +264,6 @@
             // 甯冮槻鎴愬姛锛岃繑鍥炲竷闃叉垚鍔熺殑鏁版嵁浼犺緭閫氶亾鍙�
             lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo);
             if (lAlarmHandle == -1) {
-                log.error("璁惧甯冮槻澶辫触锛岄敊璇爜==========銆�" + hCNetSDK.NET_DVR_GetLastError());
                 log.error("璁惧甯冮槻澶辫触锛岄敊璇爜==========銆�" + hCNetSDK.NET_DVR_GetLastError());
                 // 娉ㄩ攢 閲婃斁sdk璧勬簮
                 logout(lUserID);
@@ -287,6 +287,7 @@
         // 閲婃斁sdk璧勬簮
         hCNetSDK.NET_DVR_Cleanup();
     }
+
     /**
      * 鎶撳浘
      *
@@ -344,4 +345,38 @@
             return "";
         }
     }
+
+    /**
+     * 鑾峰彇闃插尯鍚嶇О
+     * 閫氶亾鍙�==闃插尯鍙� 浠�0寮�濮�
+     * 鍒樿嫃涔�
+     * 2023/7/6 10:48
+     */
+    public static String getDefenseZoneName(CameraCmd cmd) {
+        String name="";
+        try {
+            String cameraId = cmd.getCameraId();
+            Integer channelNum = cmd.getWZoneIndex();//閫氶亾鍙�==闃插尯鍙�
+            if (!GlobalVariable.loginMap.containsKey(cameraId)) {
+                return name;
+            }
+            Integer userId = GlobalVariable.loginMap.get(cameraId);
+
+            HCNetSDK.NET_DVR_ALARMIN_PARAM netDvrAlarminParam = new HCNetSDK.NET_DVR_ALARMIN_PARAM();
+            Pointer point = netDvrAlarminParam.getPointer();
+            IntByReference ibrBytesReturned = new IntByReference();
+            netDvrAlarminParam.write();
+            boolean b = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_ALARMIN_PARAM, channelNum, point, netDvrAlarminParam.size(), ibrBytesReturned);
+            if (b) {
+                netDvrAlarminParam.read();
+                name = ByteUtils.bytesToStringZh(netDvrAlarminParam.byName);
+            } else {
+                int error = hCNetSDK.NET_DVR_GetLastError();
+                log.info("鑾峰彇闃插尯鍚嶇О澶辫触:" + error);
+            }
+        } catch (Exception ex) {
+            log.error("鑾峰彇闃插尯鍚嶇О寮傚父:" + ex.getMessage());
+        }
+        return name;
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3