From 9aa66699aaa610be66f5bd0c22e90cae114311f9 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 07 七月 2023 17:15:16 +0800
Subject: [PATCH] 优化外联设备报警解析并上传mqtt
---
src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java | 62 ++++++++++++++++++++++++-------
1 files changed, 48 insertions(+), 14 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 62455b1..5e9590d 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,8 +2,10 @@
import com.ard.alarm.camera.domain.ArdCameras;
import com.ard.alarm.camera.domain.CameraCmd;
+import com.ard.alarm.external.domain.ArdEquipExternal;
import com.ard.utils.ByteUtils;
import com.ard.utils.hiksdk.common.GlobalVariable;
+import com.ard.utils.hiksdk.domain.DeviceInfo;
import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK;
import com.ard.utils.hiksdk.util.minio.MinioUtils;
import com.sun.jna.Native;
@@ -11,12 +13,13 @@
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
import java.io.*;
import java.nio.ByteBuffer;
import java.util.*;
-import static com.ard.utils.hiksdk.common.GlobalVariable.cameraMap;
/**
@@ -126,7 +129,7 @@
* @鍒涘缓鏃堕棿 2023/1/17 16:12
* @淇敼浜哄拰鍏跺畠淇℃伅
*/
- public static void login(ArdCameras camera) {
+ public static void login(DeviceInfo deviceInfo) {
// 鍒濆鍖�
if (!hCNetSDK.NET_DVR_Init()) {
log.error("SDK鍒濆鍖栧け璐�");
@@ -138,10 +141,10 @@
} else {
hCNetSDK.NET_DVR_SetLogToFile(3, "/home/ardLog/hiklog", true);
}
- String m_sDeviceIP = camera.getIp();
- String m_sUsername = camera.getUsername();
- String m_sPassword = camera.getPassword();
- short m_sPort = camera.getPort().shortValue();
+ String m_sDeviceIP = deviceInfo.getIp();
+ String m_sUsername = deviceInfo.getUsername();
+ String m_sPassword = deviceInfo.getPassword();
+ short m_sPort = deviceInfo.getPort().shortValue();
//璁剧疆杩炴帴鏃堕棿涓庨噸杩炴椂闂�
hCNetSDK.NET_DVR_SetConnectTime(2000, 1);
hCNetSDK.NET_DVR_SetReconnect(100000, true);
@@ -162,7 +165,7 @@
//鏄惁寮傛鐧诲綍锛�0- 鍚︼紝1- 鏄� windowsSDK閲屾槸true鍜宖alse
m_strLoginInfo.bUseAsynLogin = true;
//寮傛鐧诲綍鍥炶皟
- m_strLoginInfo.cbLoginResult = new LoginResultCallBack(camera);
+ m_strLoginInfo.cbLoginResult = new LoginResultCallBack(deviceInfo);
m_strLoginInfo.write();
int i = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
if (i < 0) {
@@ -170,7 +173,6 @@
log.info("鐧诲綍寮傚父锛�" + errorCode);
}
}
-
/**
* @鎻忚堪 鐧诲綍鎵�鏈夌浉鏈�
* @鍙傛暟 []
@@ -179,18 +181,48 @@
* @鍒涘缓鏃堕棿 2023/2/3 10:10
* @淇敼浜哄拰鍏跺畠淇℃伅
*/
-
- public static void loginAll(List<ArdCameras> ardCameras) {
+ public static void loginAllCamera(List<ArdCameras> ardCameras) {
try {
- log.debug("鍔犺浇lib瀹屾垚锛�");
for (ArdCameras camera : ardCameras) {
Thread.sleep(100);
- login(camera);
+ DeviceInfo info=new DeviceInfo();
+ info.setDeviceId(camera.getId());
+ info.setIp(camera.getIp());
+ info.setPort(camera.getPort());
+ info.setUsername(camera.getUsername());
+ info.setPassword(camera.getPassword());
+ login(info);
String ip = camera.getIp();
- cameraMap.put(ip, camera);
+ GlobalVariable.cameraMap.put(ip, camera);
}
} catch (Exception ex) {
log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage());
+ }
+ }
+ /**
+ * @鎻忚堪 鐧诲綍鎵�鏈夋姤璀︿富鏈�
+ * @鍙傛暟 []
+ * @杩斿洖鍊� void
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/2/3 10:10
+ * @淇敼浜哄拰鍏跺畠淇℃伅
+ */
+ public static void loginAllAlarmHost(List<ArdEquipExternal> ardEquipExternals) {
+ try {
+ for (ArdEquipExternal alarmHost : ardEquipExternals) {
+ Thread.sleep(100);
+ DeviceInfo info=new DeviceInfo();
+ info.setDeviceId(alarmHost.getId());
+ info.setIp(alarmHost.getIp());
+ info.setPort(alarmHost.getPort());
+ info.setUsername(alarmHost.getUsername());
+ info.setPassword(alarmHost.getPassword());
+ login(info);
+ String ip = alarmHost.getIp();
+ GlobalVariable.alarmHostMap.put(ip, alarmHost);
+ }
+ } catch (Exception ex) {
+ log.error("鍒濆鍖栨姤璀︿富鏈哄紓甯革細" + ex.getMessage());
}
}
@@ -269,7 +301,7 @@
logout(lUserID);
return lAlarmHandle;
} else {
- log.info("鐩告満甯冮槻鎴愬姛");
+ log.info("璁惧甯冮槻鎴愬姛");
return lAlarmHandle;
}
}
@@ -379,4 +411,6 @@
}
return name;
}
+
+
}
\ No newline at end of file
--
Gitblit v1.9.3