From b63dccee424ee9dfb8944ead15ff084ff62d63fa Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 10 May 2024 18:22:37 +0800
Subject: [PATCH] 对接及事件查询订阅调整
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java | 297 ++++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 222 insertions(+), 75 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java
index e8ebc61..d2d286a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraUtils.java
@@ -2,19 +2,17 @@
import cn.gistack.sm.hk.constant.HkConstant;
import cn.gistack.sm.hk.constant.ProtocolConstant;
+import cn.gistack.sm.hk.vo.EventVO;
+import cn.gistack.sm.hk.vo.HkVO;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import static cn.gistack.sm.hk.constant.HkConstant.ARTEMIS_PATH;
-
public class GetCameraUtils {
/**
@@ -24,16 +22,33 @@
* @param body
* @return
*/
- public static String common(String url, String body) {
+ public static String common(Integer type,String url, String body) {
/**
* STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.
*/
// artemis网关服务器ip端口
- ArtemisConfig.host = HkConstant.HOST;
+ if (null==type){
+ ArtemisConfig.host = HkConstant.HOST;
+ }
+ if (type==1) {
+ ArtemisConfig.host = HkConstant.HOST;
+ }
+ if (type==2) {
+ ArtemisConfig.host = HkConstant.NEW_HOST;
+ }
// 秘钥appKey
ArtemisConfig.appKey = HkConstant.AppKey;
// 秘钥appSecret
ArtemisConfig.appSecret = HkConstant.AppSecret;
+
+ if (type==3) {
+ // 秘钥appKey
+ ArtemisConfig.appKey = HkConstant.EventAppKey;
+ // 秘钥appSecret
+ ArtemisConfig.appSecret = HkConstant.EventAppSecret;
+ // host
+ ArtemisConfig.host = HkConstant.Event_NEW_HOST;
+ }
/**
@@ -65,23 +80,35 @@
/**
* 获取视频预览数据
*
- * @param url 视频预览url
+ * @param type 类型,新/老
+ * @param url 视频预览url
* @param cameraIndexCode 监控点唯一标识
+ * @param protocol
+ * @param transmode
+ * @param expand
* @return
*/
- public static String GetCameraPreviewURL(String url, String cameraIndexCode, String protocol) {
+ public static String GetCameraPreviewURL(Integer type,
+ String url,
+ String cameraIndexCode,
+ String protocol,
+ Integer transmode,
+ String expand,
+ Integer streamType) {
/**
* 组装请求参数
*/
JSONObject jsonBody = new JSONObject();
jsonBody.put("cameraIndexCode", cameraIndexCode);
- jsonBody.put("streamType", 0);
+ jsonBody.put("streamType",streamType);
jsonBody.put("protocol", protocol);
- jsonBody.put("transmode", 1);
-// jsonBody.put("expand", "streamform=ps");
+ jsonBody.put("transmode", transmode);
+ if (null!= expand && !expand.equals("")) {
+ jsonBody.put("expand", expand);
+ }
String body = jsonBody.toJSONString();
// 调用公共方法
- return common(url,body);
+ return common(type,url,body);
}
/**
@@ -91,7 +118,8 @@
* @param cameraCode 监控点唯一标识
* @return
*/
- public static String QueryCameraPreviewURL(String url,
+ public static String QueryCameraPreviewURL(Integer type,
+ String url,
String cameraCode,
String resourceType,
String key) {
@@ -113,7 +141,7 @@
jsonBody.put("expressions", list);
String body = jsonBody.toJSONString();
System.out.println(jsonBody);
- return common(url,body);
+ return common(type,url,body);
}
@@ -124,7 +152,7 @@
* @param cameraIndexCode 监控点唯一标识
* @return
*/
- public static String GetTalkURLs(String url, String cameraIndexCode) {
+ public static String GetTalkURLs(Integer type, String url, String cameraIndexCode) {
/**
* 组装请求参数
*/
@@ -138,7 +166,7 @@
jsonBody.put("talkIndexCode", "ce744c4c67df464f92994185d825b6fa");
jsonBody.put("protocol", "wss");
String body = jsonBody.toJSONString();
- return common(url,body);
+ return common(type,url,body);
}
/**
@@ -150,7 +178,8 @@
* @param command 命令
* @return
*/
- public static String controlling(String url,
+ public static String controlling(Integer type,
+ String url,
String cameraIndexCode,
Integer action,
String command,
@@ -170,8 +199,29 @@
/**
* 调用接口
*/
- return common(url,body);
+ return common(type,url,body);
}
+
+ /**
+ * 查询监控点的预置点信息
+ *
+ * @param url 查询监控点的预置点信息URL
+ * @param cameraIndexCode 监控点唯一标识
+ * @return
+ */
+ public static String presetsSearches(Integer type,String url,String cameraIndexCode) {
+ /**
+ * 组装请求参数
+ */
+ JSONObject jsonBody = new JSONObject();
+ jsonBody.put("cameraIndexCode", cameraIndexCode);
+ String body = jsonBody.toJSONString();
+ /**
+ * 调用接口
+ */
+ return common(type,url,body);
+ }
+
/**
* 云台控制
@@ -184,7 +234,8 @@
* @param endY 命令
* @return
*/
- public static String selZoomURLs(String url,
+ public static String selZoomURLs(Integer type,
+ String url,
String cameraIndexCode,
Integer startX,
Integer startY,
@@ -204,17 +255,36 @@
/**
* 调用接口
*/
- return common(url,body);
+ return common(type,url,body);
}
-
/**
- * 获取监控点资源分页数据
+ * 抓图
*
* @param url 监控资源url
* @return
*/
- public static String GetCameraResourcePage(Integer pageNo, Integer pageSize, String url) {
+ public static String manualCaptureUrls(Integer type,String url,String cameraIndexCode) {
+ /**
+ * 组装请求参数
+ */
+ JSONObject jsonBody = new JSONObject();
+ jsonBody.put("cameraIndexCode", cameraIndexCode);
+ String body = jsonBody.toJSONString();
+
+ /**
+ * 调用接口并返回数据
+ * post请求application/json类型参数;
+ */
+ return common(type,url, body);
+ }
+
+ /**
+ * 获取监控点资源分页数据
+ * @param url 监控资源url
+ * @return
+ */
+ public static String GetCameraResourcePage(Integer type,Integer pageNo, Integer pageSize, String url) {
/**
* 组装请求参数
*/
@@ -227,32 +297,87 @@
* 调用接口并返回数据
* post请求application/json类型参数;
*/
- return common(url, body);
+ return common(type,url, body);
}
/**
- * 抓图
- *
- * @param url 监控资源url
+ * 海康视频事件订阅
+ * @param eventVO
+ * @param url
* @return
*/
- public static String manualCaptureUrls(String url,String cameraIndexCode) {
+ public static String addEventSubscriptionByEventTypes(EventVO eventVO, String url) {
/**
* 组装请求参数
*/
JSONObject jsonBody = new JSONObject();
- jsonBody.put("cameraIndexCode", cameraIndexCode);
+ jsonBody.put("eventTypes", Arrays.stream(eventVO.getEventTypes().split(",")).mapToLong(Long::parseLong).toArray());
+ jsonBody.put("eventDest", eventVO.getEventDest());
+ if (null!=eventVO.getSubType()){
+ jsonBody.put("subType", eventVO.getSubType());
+ }
+ if (null!=eventVO.getEventLvl()){
+ jsonBody.put("eventLvl", Arrays.stream(eventVO.getEventLvl().split(",")).mapToInt(Integer::parseInt).toArray());
+ }
String body = jsonBody.toJSONString();
/**
* 调用接口并返回数据
* post请求application/json类型参数;
*/
- return common(url, body);
+ return common(null==eventVO.getType()?1:eventVO.getType(),url, body);
+ }
+
+ /**
+ * 海康视频事件取消订阅
+ * @param eventVO
+ * @param url
+ * @return
+ */
+ public static String removeEventSubscriptionByEventTypes(EventVO eventVO, String url) {
+ long[] eventTypes = Arrays.stream(eventVO.getEventTypes().split(",")).mapToLong(Long::parseLong).toArray();
+ /**
+ * 组装请求参数
+ */
+ JSONObject jsonBody = new JSONObject();
+ jsonBody.put("eventTypes", eventTypes);
+ String body = jsonBody.toJSONString();
+
+ /**
+ * 调用接口并返回数据
+ * post请求application/json类型参数;
+ */
+ return common(null==eventVO.getType()?1:eventVO.getType(),url, body);
+ }
+
+ /**
+ * 查询事件订阅信息
+ * @param eventVO
+ * @param url
+ * @return
+ */
+ public static String getEventSubscriptionView(EventVO eventVO, String url) {
+ /**
+ * 组装请求参数
+ */
+ JSONObject jsonBody = new JSONObject();
+ String body = jsonBody.toJSONString();
+
+ /**
+ * 调用接口并返回数据
+ * post请求application/json类型参数;
+ */
+ return common(null==eventVO.getType()?1:eventVO.getType(),url, body);
}
// public static void main(String[] args) {
//
+// String previewURL = GetCameraPreviewURL(1, HkConstant.previewURLs,
+// "0c4f30948dde4998a676ec6983119cb5",
+// "rtsp",
+// "transcode=1&videotype=h264");
+// System.out.println("previewURL = " + previewURL);
+
// String result = GetCameraResourcePage(1, 10, HkConstant.cameras);
//
// JSONObject jsonObject1 = JSONObject.parseObject(result);
@@ -260,55 +385,77 @@
// JSONArray arr1 = JSON.parseArray(res1.getString("list"));
// JSONObject data1 = (JSONObject) arr1.get(1);
// String code1 = data1.get("cameraIndexCode").toString();
+
+ // 云台控制
+// String right = controlling(HkConstant.controllingURLs,
+// "ff1f050afd1c47829dec1ec14575c9e3",
+// 0,
+// "ZOOM_OUT",
+// null,
+// null
+// );
+// System.out.println("right = " + right);
+
+// // 放大
+// String big = selZoomURLs(HkConstant.selZoomURLs,
+// "ff1f050afd1c47829dec1ec14575c9e3",
+// 55,
+// 58,
+// 22,
+// 23
+// );
+// System.out.println("big = " + big);
+
+ // 抓图
+// String manualCapture = manualCaptureUrls(HkConstant.manualCaptureUrls,
+// "ff1f050afd1c47829dec1ec14575c9e3");
+// System.out.println("manualCapture = " + manualCapture);
+
+ //根据设备编号获取子节点编号
+// String result2 = QueryCameraPreviewURL(HkConstant.camerasID, code1, "camera", "parentIndexCode");
//
-// // 云台控制
-//// String right = controlling(HkConstant.controllingURLs,
-//// "ff1f050afd1c47829dec1ec14575c9e3",
-//// 0,
-//// "ZOOM_OUT",
-//// null,
-//// null
-//// );
-//// System.out.println("right = " + right);
-//
-//// // 放大
-//// String big = selZoomURLs(HkConstant.selZoomURLs,
-//// "ff1f050afd1c47829dec1ec14575c9e3",
-//// 55,
-//// 58,
-//// 22,
-//// 23
-//// );
-//// System.out.println("big = " + big);
-//
-// // 抓图
-//// String manualCapture = manualCaptureUrls(HkConstant.manualCaptureUrls,
-//// "ff1f050afd1c47829dec1ec14575c9e3");
-//// System.out.println("manualCapture = " + manualCapture);
-//
-// //根据设备编号获取子节点编号
-//// String result2 = QueryCameraPreviewURL(HkConstant.camerasID, code1, "camera", "parentIndexCode");
-////
-//// JSONObject jsonObject2 = JSONObject.parseObject(result2);
-//// JSONObject res2 = (JSONObject) jsonObject2.get("data");
-//// JSONArray arr2 = JSON.parseArray(res2.getString("list"));
-//// JSONObject data2 = (JSONObject) arr2.get(0);
-//// String code2 = data2.get("indexCode").toString();
-// //ff1f050afd1c47829dec1ec14575c9e3
-// //e2cb261e14144f53a300769839d54753
-// //根据子节点编号获取设备播放地址
+// JSONObject jsonObject2 = JSONObject.parseObject(result2);
+// JSONObject res2 = (JSONObject) jsonObject2.get("data");
+// JSONArray arr2 = JSON.parseArray(res2.getString("list"));
+// JSONObject data2 = (JSONObject) arr2.get(0);
+// String code2 = data2.get("indexCode").toString();
+ //ff1f050afd1c47829dec1ec14575c9e3
+ //e2cb261e14144f53a300769839d54753
+ //根据子节点编号获取设备播放地址
// String result3 = GetCameraPreviewURL(HkConstant.previewURLs,
// "0113d3498d2e41caaf9e5355d1575da3", ProtocolConstant.WS);
// JSONObject jsonObject = JSONObject.parseObject(result3);
// Map map = (Map) jsonObject.get("data");
-// //根据子节点编号获取音频对讲地址
-//// String result4 = GetTalkURLs(HkConstant.talkURLs, code1);
-//
-//// System.out.println("result结果示例: " + result);
-//// System.out.println("result1 = " + result1);
-//// System.out.println("result2 = " + result2);
-//// System.out.println("result3 = " + result3);
+ //根据子节点编号获取音频对讲地址
+// String result4 = GetTalkURLs(HkConstant.talkURLs, code1);
+
+// System.out.println("result结果示例: " + result);
+// System.out.println("result1 = " + result1);
+// System.out.println("result2 = " + result2);
+// System.out.println("result3 = " + result3);
// System.out.println("url = " + map.get("url"));
-//// System.out.println("result4 = " + result4);
+// System.out.println("result4 = " + result4);
+
+ // 查询回放url
+// HkVO hk = new HkVO();
+// hk.setCameraIndexCode("0c4f30948dde4998a676ec6983119cb5");
+// hk.setBeginTime("2023-05-08T11:52:16.000+08:00");
+// hk.setEndTime("2023-05-11T11:52:15.000+08:00");
+// hk.setProtocol("wss");
+//
+// /**
+// * 组装请求参数
+// */
+// JSONObject jsonBody = new JSONObject();
+// jsonBody.put("cameraIndexCode", hk.getCameraIndexCode());
+// jsonBody.put("protocol", hk.getProtocol());
+// jsonBody.put("recordLocation", "1");
+// jsonBody.put("beginTime", hk.getBeginTime());
+// jsonBody.put("endTime", hk.getEndTime());
+// String body = jsonBody.toJSONString();
+//
+// String common = common(HkConstant.playbackURLs, body);
+//
+// System.out.println("common = " + common);
// }
}
--
Gitblit v1.9.3