From 3ed3f6c299eabbda1c161408732d71ecb60b8959 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 24 十月 2023 16:34:39 +0800
Subject: [PATCH] 暂时取消异步登录 初始化清空流媒体重新加载

---
 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java |  137 +++++++++++++++++++++++----------------------
 1 files changed, 70 insertions(+), 67 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
index a052a0f..97191e6 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -117,71 +117,72 @@
                 camera.setState("0");
                 return;
             }
-            synchronized (lock) {
-                log.debug("Login Success [ " + camera.getIp() + ":" + camera.getPort() + " ]");
-                if (fExceptionCallBack == null) {
-                    fExceptionCallBack = new ExceptionCallBack();//寮傚父鍥炶皟
-                    //璁剧疆寮傚父鍥炶皟鍑芥暟(鍙湪鍥炶皟鍑芥暟涓幏鍙栬澶囦笂涓嬬嚎鐘舵�佺瓑)
-                    if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, null)) {
-                        log.debug("Set fExceptionCallBack function fail");
-                        return;
-                    } else {
-                        log.debug("Set fExceptionCallBack function successfully!");
-                    }
+
+            log.debug("Login Success [ " + camera.getIp() + ":" + camera.getPort() + " ]");
+            if (fExceptionCallBack == null) {
+                fExceptionCallBack = new ExceptionCallBack();//寮傚父鍥炶皟
+                //璁剧疆寮傚父鍥炶皟鍑芥暟(鍙湪鍥炶皟鍑芥暟涓幏鍙栬澶囦笂涓嬬嚎鐘舵�佺瓑)
+                if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, null)) {
+                    log.debug("Set fExceptionCallBack function fail");
+                    return;
+                } else {
+                    log.debug("Set fExceptionCallBack function successfully!");
                 }
+            }
 
-                if (GlobalVariable.loginMap.containsKey(camera.getId())) {
-                    GlobalVariable.loginMap.remove(camera.getId());
+            if (GlobalVariable.loginMap.containsKey(camera.getId())) {
+                GlobalVariable.loginMap.remove(camera.getId());
+            }
+
+            //鍒犻櫎绠$悊閫氶亾
+            ardChannelService.deleteArdChannelByDeviceId(camera.getId());
+            GlobalVariable.loginMap.put(camera.getId(), lUserID);
+            GlobalVariable.loginCameraMap.put(lUserID, camera);
+
+            camera.setLoginId(lUserID);
+            camera.setState("1");
+            camera.setChanNum((int) m_strDeviceInfo.struDeviceV30.byChanNum);
+            camera.setStartDChan((int) m_strDeviceInfo.struDeviceV30.byStartDChan);
+
+            //鑾峰彇鏈�鏂伴�氶亾
+            List<ArdChannel> cameraChannelList = getCameraChannelList(camera);
+            if (cameraChannelList.size() > 0) {
+                for (ArdChannel channel : cameraChannelList) {
+                    channel.setId(IdUtils.simpleUUID());
+                    ardChannelService.insertArdChannel(channel);
                 }
-                //鍒犻櫎绠$悊閫氶亾
-                ardChannelService.deleteArdChannelByDeviceId(camera.getId());
-                GlobalVariable.loginMap.put(camera.getId(), lUserID);
-                GlobalVariable.loginCameraMap.put(lUserID, camera);
-
-
-                camera.setLoginId(lUserID);
-                camera.setState("1");
-                camera.setChanNum((int) m_strDeviceInfo.struDeviceV30.byChanNum);
-                camera.setStartDChan((int) m_strDeviceInfo.struDeviceV30.byStartDChan);
-                //鑾峰彇鏈�鏂伴�氶亾
-                List<ArdChannel> cameraChannelList = getCameraChannelList(camera);
-                if (cameraChannelList.size() > 0) {
-                    for (ArdChannel channel : cameraChannelList) {
-                        channel.setId(IdUtils.simpleUUID());
-                        ardChannelService.insertArdChannel(channel);
+                //娣诲姞鍒版祦濯掍綋
+                for (ArdChannel channel : cameraChannelList) {
+                    String name = camera.getId() + "_" + channel.getChanNo();
+                    String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/h264/ch" + channel.getChanNo() + "/main/av_stream";
+                    Vtdu vtdu = vtduService.selectVtduByName(name);
+                    if (vtdu != null) {
+                        vtduService.deleteVtduByName(name);
                     }
                     //娣诲姞鍒版祦濯掍綋
-                    for (ArdChannel channel : cameraChannelList) {
-                        String name = camera.getId() + "_" + channel.getChanNo();
-                        String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/h264/ch" + channel.getChanNo() + "/main/av_stream";
-                        Vtdu vtdu = vtduService.selectVtduByName(name);
-                        if (vtdu != null) {
-                            vtduService.deleteVtduByName(name);
-                        }
-                        //娣诲姞鍒版祦濯掍綋
-                        vtdu = new Vtdu();
-                        vtdu.setRtspSource(rtspSource);
-                        vtdu.setName(camera.getId() + "_" + channel.getChanNo());
-                        CameraCmd cmd = new CameraCmd(camera.getId(), channel.getChanNo());
-                        Map<String, Object> videoCompressionCfg = getVideoCompressionCfg(cmd);
-                        if (videoCompressionCfg.get("videoEncType").equals("鏍囧噯h264")) {
-                            vtdu.setIsCode("0");//榛樿涓嶈浆鐮�
-                        } else {
-                            vtdu.setIsCode("1");//榛樿杞爜
-                        }
-                        vtdu.setMode("1");//榛樿CPU杞В鐮�
-                        vtdu.setCameraId(camera.getId());
-                        vtduService.insertVtdu(vtdu);
+                    vtdu = new Vtdu();
+                    vtdu.setRtspSource(rtspSource);
+                    vtdu.setName(camera.getId() + "_" + channel.getChanNo());
+                    CameraCmd cmd = new CameraCmd(camera.getId(), channel.getChanNo());
+                    Map<String, Object> videoCompressionCfg = getVideoCompressionCfg(cmd);
+                    if (videoCompressionCfg.get("videoEncType").equals("鏍囧噯h264")) {
+                        vtdu.setIsCode("0");//榛樿涓嶈浆鐮�
+                    } else {
+                        vtdu.setIsCode("1");//榛樿杞爜
                     }
+                    vtdu.setMode("1");//榛樿CPU杞В鐮�
+                    vtdu.setCameraId(camera.getId());
+                    vtduService.insertVtdu(vtdu);
                 }
-                //鍒涘缓寮曞闃熷垪
-                if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) {
-                    Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
-                    PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator);
-                    GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue);
-                }
-                ardCamerasService.updateArdCameras(camera);
             }
+            //鍒涘缓寮曞闃熷垪
+            if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) {
+                Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
+                PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator);
+                GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue);
+            }
+            ardCamerasService.updateArdCameras(camera);
+
 
         } catch (Exception ex) {
             log.error("娉ㄥ唽璁惧寮傚父", ex);
@@ -502,19 +503,21 @@
      */
     @Override
     public Map<String, Object> getVideoCompressionCfg(CameraCmd cmd) {
-        String cameraId = cmd.getCameraId();
-        Integer chanNo = cmd.getChanNo();
-        if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return null;
-        }
-        Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
 
         Map<String, Object> map = new HashMap<>();
-        NET_DVR_COMPRESSIONCFG_V30 compressioncfg = new NET_DVR_COMPRESSIONCFG_V30();
-        compressioncfg.write();
-        Pointer pioint = compressioncfg.getPointer();
-        IntByReference ibrBytesReturned = new IntByReference(0);
         try {
+            String cameraId = cmd.getCameraId();
+            Integer chanNo = cmd.getChanNo();
+            if (!GlobalVariable.loginMap.containsKey(cameraId)) {
+                return null;
+            }
+            Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
+
+            NET_DVR_COMPRESSIONCFG_V30 compressioncfg = new NET_DVR_COMPRESSIONCFG_V30();
+            compressioncfg.write();
+            Pointer pioint = compressioncfg.getPointer();
+            IntByReference ibrBytesReturned = new IntByReference(0);
+
             boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_COMPRESSCFG_V30, chanNo, pioint, compressioncfg.size(), ibrBytesReturned);
             if (bool) {
                 compressioncfg.read();

--
Gitblit v1.9.3