From 0a93967d8028733169ef9bcad7207026d4dea74e Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期一, 11 三月 2024 16:07:57 +0800
Subject: [PATCH] 增加雷达报警引导优先ptz引导 修改海康红外开关接口命令值 优化坐标数组改为实体类
---
ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java | 58 ++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 36 insertions(+), 22 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 ff42951..27f62d1 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
@@ -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.common.SdkErrorCodeEnum;
import com.ruoyi.utils.sdk.hiksdk.lib.ExceptionCallBack;
import com.ruoyi.utils.sdk.hiksdk.lib.HCNetSDK;
import com.sun.jna.NativeLong;
@@ -219,7 +222,10 @@
//鍚屾鐧诲綍
int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
if (lUserID < 0) {
- log.debug("Login Failed 銆� " + camera.getIp() + ":" + camera.getPort() + " 銆�,Error Code锛�" + hCNetSDK.NET_DVR_GetLastError());
+ int errorCode = hCNetSDK.NET_DVR_GetLastError();
+ log.debug("Login Failed 銆� " + camera.getIp() + ":" + camera.getPort() + " 銆�," +
+ "Error Code:" + errorCode + " " +
+ "Error Info:" + SdkErrorCodeEnum.getDescByCode(errorCode));
camera.setChanNum(0);
camera.setLoginId(-1);
camera.setState("0");
@@ -374,14 +380,15 @@
* @淇敼浜哄拰鍏跺畠淇℃伅
*/
@Override
- public boolean pTZControl(CameraCmd cmd) {
+ @SdkOperate
+ public AjaxResult pTZControl(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
boolean enable = cmd.isEnable();
Integer channelNum = cmd.getChanNo();
Integer speed = cmd.getSpeed();
Integer code = cmd.getCode();
if (!GlobalVariable.loginMap.containsKey(cameraId)) {
- return false;
+ return AjaxResult.error("鐩告満鏈櫥褰�");
}
Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
int dwStop;
@@ -450,8 +457,9 @@
if (!bool) {
int errorCode = hCNetSDK.NET_DVR_GetLastError();
log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + errorCode);
+ return AjaxResult.error("errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
}
- return bool;
+ return AjaxResult.success();
}
/**
@@ -989,12 +997,13 @@
* @淇敼浜哄拰鍏跺畠淇℃伅 娉ㄦ剰淇话瑙掑害璐熷�奸渶瑕佸姞涓�360寰楀埌鐨勬鍊艰繘琛岃缃�
*/
@Override
- public boolean setPtz1(CameraCmd cmd) {
+ @SdkOperate
+ public AjaxResult setPtz1(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChanNo();
Map<String, Double> ptz = cmd.getPtzMap();
if (!GlobalVariable.loginMap.containsKey(cameraId)) {
- return false;
+ return AjaxResult.error("璁惧鏈櫥褰�");
}
Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS();
@@ -1010,13 +1019,14 @@
m_ptzPosCurrent.write();
boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size());
if (!bool) {
- int code = hCNetSDK.NET_DVR_GetLastError();
- log.error("璁剧疆PTZ鍙傛暟澶辫触,璇风◢鍚庨噸璇�:" + code);
+ int errorCode = hCNetSDK.NET_DVR_GetLastError();
+ log.error("璁剧疆PTZ鍙傛暟澶辫触,璇风◢鍚庨噸璇�:" + errorCode);
+ return AjaxResult.error("errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
}
- return bool;
+ return AjaxResult.success();
} catch (Exception ex) {
log.error(ex.getMessage());
- return false;
+ return AjaxResult.error("璁剧疆PTZ鍙傛暟寮傚父:" + ex.getMessage());
}
}
@@ -1029,13 +1039,14 @@
* @淇敼浜哄拰鍏跺畠淇℃伅 娉ㄦ剰淇话瑙掑害璐熷�煎悜涓嬭礋鍊�
*/
@Override
- public boolean setPtz(CameraCmd cmd) {
+ @SdkOperate
+ public AjaxResult setPtz(CameraCmd cmd) {
try {
String cameraId = cmd.getCameraId();
Integer chanNo = cmd.getChanNo();
Map<String, Double> ptz = cmd.getPtzMap();
if (!GlobalVariable.loginMap.containsKey(cameraId)) {
- return false;
+ return AjaxResult.error("璁惧鏈櫥褰�");
}
Integer lUserID = (Integer) GlobalVariable.loginMap.get(cameraId);
IntByReference pchannel = new IntByReference(chanNo);
@@ -1067,21 +1078,23 @@
lpConfigParam6697.write();
boolean bool = hCNetSDK.NET_DVR_SetSTDConfig(lUserID, NET_DVR_SET_PTZABSOLUTEEX, lpConfigParam6697);
if (!bool) {
- int code = hCNetSDK.NET_DVR_GetLastError();
- log.error("璁剧疆楂樼簿搴TZ鍙傛暟澶辫触,璇风◢鍚庨噸璇�:" + code);
+ int errorCode = hCNetSDK.NET_DVR_GetLastError();
+ log.error("璁剧疆楂樼簿搴TZ鍙傛暟澶辫触,璇风◢鍚庨噸璇�:" + errorCode);
+ return AjaxResult.error("errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
}
- return bool;
+ return AjaxResult.success();
} catch (Exception ex) {
log.error("璁剧疆楂樼簿搴TZ鍙傛暟寮傚父", ex);
- return false;
+ return AjaxResult.error("璁剧疆楂樼簿搴TZ鍙傛暟寮傚父:" + ex);
}
}
@Override
+ @SdkOperate
public boolean guideTargetPosition(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
- Integer channelNum = cmd.getChanNo();
+ Integer chanNo = cmd.getChanNo();
if (!GlobalVariable.loginMap.containsKey(cameraId)) {
return false;
}
@@ -1091,7 +1104,7 @@
try {
ArdCameras cameras = ardCamerasService.selectArdCamerasById(cameraId);
double[] cameraPositon = new double[]{cameras.getLongitude(), cameras.getLatitude(), cameras.getAltitude()};
- double[] targetPositions = cmd.getTargetPosition();
+ double[] targetPositions = new double[]{cmd.getTargetPosition().getLongitude(), cmd.getTargetPosition().getLatitude()};
double[] cameraPTZ = GisUtil.getCameraPTZ(cameraPositon, targetPositions, 20, 150);
String p = String.valueOf((int) (cameraPTZ[0] * 10));
String t = String.valueOf((int) (cameraPTZ[1] * 10));
@@ -1101,7 +1114,7 @@
m_ptzPosCurrent.wZoomPos = (short) (Integer.parseInt(z, 16));
Pointer point = m_ptzPosCurrent.getPointer();
m_ptzPosCurrent.write();
- boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size());
+ boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, chanNo, point, m_ptzPosCurrent.size());
if (!bool) {
int code = hCNetSDK.NET_DVR_GetLastError();
log.error("璁剧疆ptz澶辫触,璇风◢鍚庨噸璇�" + code);
@@ -1153,6 +1166,7 @@
* @淇敼浜哄拰鍏跺畠淇℃伅 娉ㄦ剰淇话瑙掑害璐熷�奸渶瑕佸姞涓�360寰楀埌鐨勬鍊艰繘琛岃缃�
*/
@Override
+ @SdkOperate
public boolean setZeroPtz(CameraCmd cmd) {
String cameraId = cmd.getCameraId();
Integer channelNum = cmd.getChanNo();
@@ -1288,7 +1302,7 @@
NET_DVR_CAMERAPARAMCFG_EX struDayNigh = new NET_DVR_CAMERAPARAMCFG_EX();
Pointer point = struDayNigh.getPointer();
IntByReference ibrBytesReturned = new IntByReference(0);
- boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_CCDPARAMCFG_EX, chanNo, point, struDayNigh.size(), ibrBytesReturned);
+ boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_CCDPARAMCFG, chanNo, point, struDayNigh.size(), ibrBytesReturned);
if (!b_GetCameraParam) {
log.error("鑾峰彇鍓嶇鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
}
@@ -1306,10 +1320,10 @@
daynight.byDayNightFilterTime = 60;
struDayNigh.struDayNight = daynight;
struDayNigh.write();
- boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, chanNo, point, struDayNigh.size());
+ boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG, chanNo, point, struDayNigh.size());
if (!bool) {
int code = hCNetSDK.NET_DVR_GetLastError();
- log.error("璁剧疆澶滆澶辫触,璇风◢鍚庨噸璇�" + code);
+ log.error("璁剧疆澶滆澶辫触 ErrorCode:{},ErrorInfo:{}",code, SdkErrorCodeEnum.getDescByCode(code));
} else {
log.debug("璁剧疆澶滆鎴愬姛");
}
--
Gitblit v1.9.3