From e8d53b7555595df35bd2fe03a5c5cf449c38859c Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期四, 14 十二月 2023 13:30:49 +0800 Subject: [PATCH] 增加PTZ引导优先; 井管理增加可见光和热红外ptz设置; 雷达报警引导只需要引导雷达塔上的光电,通道根据日夜切换自动选择; 引导优先按井配置的ptz进行引导,当未配置时按经纬度进行引导; 相机优先级队列排序取消报警次数num比对,仅由优先级和接收时间作为比较器条件; --- ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java | 33 ++++++++++++++++++++------------- 1 files changed, 20 insertions(+), 13 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java index d822c17..8bf60c2 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java +++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java @@ -57,6 +57,7 @@ @Resource private QueueHandler queueHandler; + public Object _lock=new Object(); public static HCNetSDK hCNetSDK = HCNetSDK.hCNetSDK; private static HCNetSDK.FExceptionCallBack fExceptionCallBack;//寮傚父鍥炶皟 @@ -180,7 +181,6 @@ @Async("loginExecutor") public void asyncLogin(ArdCameras camera) { try { - Thread.sleep(100); // 鍒濆鍖� if (!hCNetSDK.NET_DVR_Init()) { log.error("SDK鍒濆鍖栧け璐�"); @@ -230,17 +230,18 @@ } 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!"); + synchronized (_lock) { + 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()); } @@ -269,6 +270,15 @@ //娣诲姞鍒版祦濯掍綋 addVtdu(camera); //鍒涘缓寮曞闃熷垪 + createGuideQueue(camera); + } catch (Exception ex) { + log.error("娉ㄥ唽璁惧寮傚父", ex); + } + } + + //鍒涘缓寮曞闃熷垪 + private void createGuideQueue(ArdCameras camera) { + if(camera.getCamAlarmGuideEnable()!=null) { if (camera.getCamAlarmGuideEnable() == 1) { if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) { Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); @@ -278,11 +288,8 @@ queueHandler.process(camera.getId()); } } - } catch (Exception ex) { - log.error("娉ㄥ唽璁惧寮傚父", ex); } } - //娣诲姞鍒版祦濯掍綋 private void addVtdu(ArdCameras camera) { try { -- Gitblit v1.9.3