From 4b085b357d5e3137a79b4618a15dcba1fc5adf7b Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 14 三月 2024 08:53:43 +0800
Subject: [PATCH] 优化
---
ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java | 67 +++++++++++++++++++++++++--------
1 files changed, 50 insertions(+), 17 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
index 306fb1c..31bd49f 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
@@ -3,6 +3,8 @@
import com.ruoyi.alarm.global.domain.GuidePriorityQueue;
import com.ruoyi.alarm.global.domain.GuideTask;
import com.ruoyi.alarm.global.service.impl.QueueHandler;
+import com.ruoyi.common.annotation.SdkOperate;
+import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.file.MimeTypeUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
@@ -18,6 +20,7 @@
import com.ruoyi.utils.gis.GisUtil;
import com.ruoyi.utils.minio.MinioUtil;
import com.ruoyi.utils.sdk.common.GlobalVariable;
+import com.ruoyi.utils.sdk.dhsdk.common.ErrorCode;
import com.ruoyi.utils.sdk.dhsdk.lib.NetSDKLib;
import com.ruoyi.utils.sdk.dhsdk.lib.enumeration.EM_NEW_CONFIG;
import com.ruoyi.utils.sdk.dhsdk.lib.enumeration.NET_EM_CFG_OPERATE_TYPE;
@@ -217,7 +220,14 @@
ardChannelService.insertArdChannel(channel);
}
//閰嶇疆鍒版祦濯掍綋
- for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) {
+ addVtdu(camera);
+ //鍒涘缓寮曞闃熷垪
+ createGuideQueue(camera);
+ }
+
+ //娣诲姞鍒版祦濯掍綋
+ private void addVtdu(ArdCameras camera) {
+ for (int i = 1; i < camera.getChanNum() + 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);
@@ -243,16 +253,20 @@
vtdu.setCameraId(camera.getId());
vtduService.insertVtdu(vtdu);
}
+ }
- //鍒涘缓寮曞闃熷垪
- if (camera.getCamAlarmGuideEnable() == 1) {
- if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) {
- Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
- PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator);
- GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue);
+ //鍒涘缓寮曞闃熷垪
+ private void createGuideQueue(ArdCameras camera) {
+ if (camera.getCamAlarmGuideEnable() != null) {
+ if (camera.getCamAlarmGuideEnable() == 1) {
+ if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) {
+ Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
+ PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator);
+ GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue);
+ //鍚姩闃熷垪澶勭悊鍣�
+ queueHandler.process(camera.getId());
+ }
}
- //鍚姩闃熷垪澶勭悊鍣�
- queueHandler.process(camera.getId());
}
}
@@ -304,14 +318,15 @@
* 2023/10/17 8:28:13
*/
@Override
- public boolean pTZControl(CameraCmd cmd) {
+ @SdkOperate
+ public AjaxResult pTZControl(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
boolean enable = cmd.isEnable();
Integer chanNo = cmd.getChanNo();
Integer speed = cmd.getSpeed();
Integer code = cmd.getCode();
if (!GlobalVariable.loginMap.containsKey(cameraId)) {
- return false;
+ return AjaxResult.error("璁惧鏈櫥褰�");
}
NetSDKLib.LLong loginId = (NetSDKLib.LLong) GlobalVariable.loginMap.get(cameraId);
int dwStop;
@@ -378,8 +393,9 @@
boolean bool = PtzControlModule.ptzControl(loginId, chanNo - 1, dwPTZCommand, speed, speed, 0, dwStop);
if (!bool) {
log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint());
+ return AjaxResult.error(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()));
}
- return bool;
+ return AjaxResult.success();
}
/**
@@ -415,6 +431,11 @@
return null;
}
+ @Override
+ public AjaxResult setPtz1(CameraCmd cmd) {
+ return setPtz(cmd) ;
+ }
+
/**
* @鎻忚堪 璁剧疆ptz淇℃伅
* @鍙傛暟 [userId, channelNum]
@@ -424,15 +445,20 @@
* @淇敼浜哄拰鍏跺畠淇℃伅 娉ㄦ剰淇话瑙掑害璐熷�奸渶瑕佸姞涓�360寰楀埌鐨勬鍊艰繘琛岃缃�
*/
@Override
- public boolean setPtz(CameraCmd cmd) {
+ @SdkOperate
+ public AjaxResult setPtz(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer chanNo = cmd.getChanNo();
Map<String, Double> ptz = cmd.getPtzMap();
if (!GlobalVariable.loginMap.containsKey(cameraId)) {
- return false;
+ return AjaxResult.error("璁惧鏈櫥褰�");
}
LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId);
try {
+ if(ptz.get("p")==null||ptz.get("t")==null||ptz.get("z")==null)
+ {
+ return AjaxResult.error("ptz鍙傛暟涓嶈兘涓虹┖");
+ }
int p = (int) (ptz.get("p") * 10);
int t = (int) (ptz.get("t") * 10);
t = t > 900 ? 3600 - t : t * -1;
@@ -441,11 +467,12 @@
boolean bool = netsdk.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_EXACTGOTO, p, t, z, 0);
if (!bool) {
log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint());
+ return AjaxResult.error(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()));
}
- return bool;
+ return AjaxResult.success();
} catch (Exception ex) {
log.error(ex.getMessage());
- return false;
+ return AjaxResult.error(ex.getMessage());
}
}
@@ -458,6 +485,7 @@
* @淇敼浜哄拰鍏跺畠淇℃伅 娉ㄦ剰淇话瑙掑害璐熷�奸渶瑕佸姞涓�360寰楀埌鐨勬鍊艰繘琛岃缃�
*/
@Override
+ @SdkOperate
public boolean setZeroPtz(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer chanNo = cmd.getChanNo();
@@ -499,6 +527,11 @@
}
return picUrl;
+ }
+
+ @Override
+ public Map<String, Object> getPtz1(CameraCmd cmd) {
+ return getPtz(cmd);
}
/**
@@ -1072,4 +1105,4 @@
}
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.3