From 1f7962d0545de446e96ccaa81b33bbf71a69b41b Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 06 九月 2023 12:29:26 +0800
Subject: [PATCH] 增加sdk接口getGisInfo 调整ptz的websocket上传增加视场角
---
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 48 insertions(+), 4 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 a051843..d03fb83 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
@@ -385,8 +385,8 @@
NET_DVR_FOCUSMODE_CFG focusmodeCfg = new NET_DVR_FOCUSMODE_CFG();
Pointer point = focusmodeCfg.getPointer();
IntByReference ibrBytesReturned = new IntByReference(0);
- focusmodeCfg.byFocusMode=1;
- focusmodeCfg.byAutoFocusMode=0;
+ focusmodeCfg.byFocusMode = 1;
+ focusmodeCfg.byAutoFocusMode = 0;
focusmodeCfg.write();
boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, focusmodeCfg.size(), ibrBytesReturned);
if (bool) {
@@ -975,6 +975,7 @@
log.debug("璁剧疆鑱氱劍妯″紡鎴愬姛");
return bool;
}
+
/**
* @鎻忚堪 鑾峰彇鑱氱劍妯″紡
* @鍙傛暟 [userId, channelNum]
@@ -1343,7 +1344,7 @@
log.debug("褰曞儚鍋滄");
//瀛樺叆minio
String BucketName = cmd.getRecordBucketName();
- String ObjectName = cmd.getRecordObjectName()+".mp4";
+ String ObjectName = cmd.getRecordObjectName() + ".mp4";
FileInputStream stream = new FileInputStream(path);
boolean b = MinioUtil.uploadObject(BucketName, ObjectName, stream, stream.available(), "video/MP4");
if (b) {
@@ -1409,7 +1410,7 @@
// 鑾峰彇閫氶亾鍙�
for (int iChannum = 0; iChannum < chanNum; iChannum++) {
ArdChannel ardChannel = new ArdChannel();
- int channum = iChannum + startDChan+1;
+ int channum = iChannum + startDChan + 1;
HCNetSDK.NET_DVR_PICCFG_V40 strPicCfg = new HCNetSDK.NET_DVR_PICCFG_V40();
strPicCfg.dwSize = strPicCfg.size();
strPicCfg.write();
@@ -1433,4 +1434,47 @@
}
return channelList;
}
+
+ /**
+ * @鎻忚堪 鑾峰彇GIS淇℃伅鏁版嵁
+ * @鍙傛暟 [userId, channelNum]
+ * @杩斿洖鍊� boolean
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/1/17 16:36
+ * @淇敼浜哄拰鍏跺畠淇℃伅 0-瑙i攣 1-閿佸畾
+ */
+ @Override
+ public Map<String, Object> getGisInfo(CameraCmd cmd) {
+ String cameraId = cmd.getCameraId();
+ Integer channelNum = cmd.getChannelNum();
+ if (!GlobalVariable.loginMap.containsKey(cameraId)) {
+ return new HashMap<>();
+ }
+ // 鑾峰彇鍙傛暟
+ Integer userId = GlobalVariable.loginMap.get(cameraId);
+ HCNetSDK.NET_DVR_STD_CONFIG struStdCfg = new HCNetSDK.NET_DVR_STD_CONFIG();
+ HCNetSDK.NET_DVR_GIS_INFO struGisInfo = new HCNetSDK.NET_DVR_GIS_INFO();
+ struStdCfg.read();
+ IntByReference lchannel = new IntByReference(channelNum);
+ struStdCfg.lpCondBuffer = lchannel.getPointer();
+ struStdCfg.dwCondSize = 4;
+ struStdCfg.lpOutBuffer = struGisInfo.getPointer();
+ struStdCfg.dwOutSize = struGisInfo.size();
+ struStdCfg.write();//璁剧疆鍓嶄箣鍓嶈write()
+ boolean bool = hCNetSDK.NET_DVR_GetSTDConfig(userId, NET_DVR_GET_GISINFO, struStdCfg);
+ if (!bool) {
+ int code = hCNetSDK.NET_DVR_GetLastError();
+ log.error("鑾峰彇GIS淇℃伅鏁版嵁澶辫触,璇风◢鍚庨噸璇�" + code);
+ return new HashMap<>();
+ } else {
+ struGisInfo.read();
+ Map<String, Object> map = new HashMap<>();
+ map.put("p", struGisInfo.struPtzPos.fPanPos);
+ map.put("t", struGisInfo.struPtzPos.fTiltPos<0?struGisInfo.struPtzPos.fTiltPos+360:struGisInfo.struPtzPos.fTiltPos);
+ map.put("z", struGisInfo.struPtzPos.fZoomPos);
+ map.put("fHorFieldAngle", struGisInfo.fHorizontalValue);// 姘村钩瑙嗗満瑙�
+ map.put("fVerFieldAngle", struGisInfo.fVerticalValue);// 鍨傜洿瑙嗗満瑙�
+ return map;
+ }
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3