From 46319c55f34da2763a87b09519b902b9437654ba Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期二, 18 七月 2023 11:25:43 +0800 Subject: [PATCH] 修改管线泄露初始化方法 --- src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java | 103 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 82 insertions(+), 21 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..594b3c1 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,11 @@ import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.camera.domain.CameraCmd; +import com.ard.alarm.external.domain.ArdEquipExternal; +import com.ard.config.MinioClientSingleton; 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 +14,12 @@ 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) { @@ -179,21 +182,77 @@ * @鍒涘缓鏃堕棿 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()); + } + } + /** + * @鎻忚堪 鐧诲綍鎵�鏈夐棬绂佷富鏈� + * @鍙傛暟 [] + * @杩斿洖鍊� void + * @鍒涘缓浜� 鍒樿嫃涔� + * @鍒涘缓鏃堕棿 2023/2/3 10:10 + * @淇敼浜哄拰鍏跺畠淇℃伅 + */ + public static void loginAllAccessControlHost(List<ArdEquipExternal> ardEquipExternals) { + try { + for (ArdEquipExternal accessControlHost : ardEquipExternals) { + Thread.sleep(100); + DeviceInfo info = new DeviceInfo(); + info.setDeviceId(accessControlHost.getId()); + info.setIp(accessControlHost.getIp()); + info.setPort(accessControlHost.getPort()); + info.setUsername(accessControlHost.getUsername()); + info.setPassword(accessControlHost.getPassword()); + login(info); + String ip = accessControlHost.getIp(); + GlobalVariable.alarmHostMap.put(ip, accessControlHost); + } + } catch (Exception ex) { + log.error("鍒濆鍖栨姤璀︿富鏈哄紓甯革細" + ex.getMessage()); + } + } /** * @鎻忚堪 娉ㄩ攢鐧诲綍 * @鍙傛暟 [dvrLogin] @@ -237,7 +296,7 @@ * @param lUserID 鍞竴鏍囪瘑绗� * @param lAlarmHandle 鎶ヨ澶勭悊鍣� */ - public static int setupAlarmChan(int lUserID, int lAlarmHandle) { + public static int setupAlarmChan(String deviceIpPort, int lUserID, int lAlarmHandle) { // 鏍规嵁璁惧娉ㄥ唽鐢熸垚鐨刲UserID寤虹珛甯冮槻鐨勪笂浼犻�氶亾锛屽嵆鏁版嵁鐨勪笂浼犻�氶亾 if (lUserID == -1) { log.info("璇峰厛娉ㄥ唽"); @@ -264,12 +323,12 @@ // 甯冮槻鎴愬姛锛岃繑鍥炲竷闃叉垚鍔熺殑鏁版嵁浼犺緭閫氶亾鍙� lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo); if (lAlarmHandle == -1) { - log.error("璁惧甯冮槻澶辫触锛岄敊璇爜==========銆�" + hCNetSDK.NET_DVR_GetLastError()); + log.error("璁惧銆�" + deviceIpPort + "銆戝竷闃插け璐ワ紝閿欒鐮�==========銆�" + hCNetSDK.NET_DVR_GetLastError()); // 娉ㄩ攢 閲婃斁sdk璧勬簮 logout(lUserID); return lAlarmHandle; } else { - log.info("鐩告満甯冮槻鎴愬姛"); + log.info("璁惧銆�" + deviceIpPort + "銆戝竷闃叉垚鍔�"); return lAlarmHandle; } } @@ -329,13 +388,14 @@ InputStream input = new ByteArrayInputStream(array); String url = ""; try { - boolean b = MinioUtils.uploadObject(cmd.getBucketName(), cmd.getObjectName(), input, input.available(), ContentType); + boolean b = MinioUtils.uploadObject(cmd.getBucketName(), cmd.getObjectName(), input, ContentType); if (b) { - url = MinioUtils.getBucketObjectUrl(cmd.getBucketName(), cmd.getObjectName()); - url = url.indexOf('?') != -1 ? url.substring(0, url.indexOf('?')) : url; + // url = MinioUtils.getBucketObjectUrl(cmd.getBucketName(), cmd.getObjectName()); + // url = url.indexOf('?') != -1 ? url.substring(0, url.indexOf('?')) : url; + url = MinioClientSingleton.domainUrl + "/" + cmd.getBucketName() + "/" + cmd.getObjectName(); log.debug("涓婁紶鏂囦欢鎴愬姛!" + url); } - } catch (IOException ex) { + } catch (Exception ex) { log.error("涓婁紶鏂囦欢寮傚父锛�" + ex.getMessage()); } return url; @@ -353,7 +413,7 @@ * 2023/7/6 10:48 */ public static String getDefenseZoneName(CameraCmd cmd) { - String name=""; + String name = ""; try { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getWZoneIndex();//閫氶亾鍙�==闃插尯鍙� @@ -379,4 +439,5 @@ } return name; } + } \ No newline at end of file -- Gitblit v1.9.3