From 5addedcb92fcd56239825f301502aabbeaf5e325 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期二, 24 十月 2023 11:26:46 +0800 Subject: [PATCH] 异步登录成功后获取通道和配置流媒体增加线程同步 --- ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java | 33 +++++++++++++++++---------------- 1 files changed, 17 insertions(+), 16 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java index 1a41ec9..8da654f 100644 --- a/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.device.dhsdk.service.impl; import com.ruoyi.common.annotation.SdkOperate; +import com.ruoyi.common.utils.Threads; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.common.utils.uuid.IdUtils; @@ -58,7 +59,7 @@ private IVtduService vtduService; @Value("${minio.endpoint}") private String minioEndPoint; - + private final Object lock = new Object(); // 璁惧鏂嚎閫氱煡鍥炶皟 private static DisConnect disConnect = new DisConnect(); @@ -76,8 +77,14 @@ LoginModule.init(disConnect, haveReConnect); NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex(); LLong loginId = LoginModule.login(camera.getIp(), camera.getPort(), camera.getUsername(), camera.getPassword(), m_stDeviceInfo); - if (loginId.longValue() > 0) { - //log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛"); + if (loginId.longValue() <= 0) { + camera.setChanNum(0); + camera.setLoginId(-1); + camera.setState("0"); + ardCamerasService.updateArdCameras(camera); + return false; + } + synchronized (lock) { if (GlobalVariable.loginMap.containsKey(camera.getId())) { GlobalVariable.loginMap.remove(camera.getId()); } @@ -109,16 +116,17 @@ channel.setDeviceId(camera.getId()); channel.setChanNo(i); ardChannelService.insertArdChannel(channel); - - //閰嶇疆鍒版祦濯掍綋 - String name = camera.getId() + "_" + channel.getChanNo(); - String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/cam/realmonitor?channel=" + channel.getChanNo() + "&subtype=0"; + } + //閰嶇疆鍒版祦濯掍綋 + for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) { + String name = camera.getId() + "_" + i; + String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/cam/realmonitor?channel=" + i + "&subtype=0"; Vtdu vtdu = vtduService.selectVtduByName(name); if (vtdu != null) { vtduService.deleteVtduByName(name); } //娣诲姞鍒版祦濯掍綋 - CameraCmd cmd = new CameraCmd(camera.getId(), channel.getChanNo()); + CameraCmd cmd = new CameraCmd(camera.getId(), i); Map<String, Object> videoCompressionCfg = getVideoCompressionCfg(cmd); vtdu = new Vtdu(); if (videoCompressionCfg.get("videoEncType").equals("鏍囧噯h264")) { @@ -127,18 +135,11 @@ vtdu.setIsCode("1");//榛樿杞爜 } vtdu.setRtspSource(rtspSource); - vtdu.setName(camera.getId() + "_" + channel.getChanNo()); + vtdu.setName(camera.getId() + "_" + i); vtdu.setMode("1");//榛樿CPU杞В鐮� vtdu.setCameraId(camera.getId()); vtduService.insertVtdu(vtdu); } - } else { - //log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触"); - camera.setChanNum(0); - camera.setLoginId(-1); - camera.setState("0"); - ardCamerasService.updateArdCameras(camera); - return false; } return true; } -- Gitblit v1.9.3