海康威视综合安防平台视频摄像头接入Java

1、原型设计

2、寻找接口

官网接口链接

返回参数

参数名称数据类型是否必须参数描述
codestringFalse返回码,0:接口业务处理成功,其它参考附录E.other.1
msgstringFalse接口执行情况说明信息
dataobjectFalse区域信息结构体
+totalnumberFalse查询数据记录总数
+pageNonumberFalse当前页码
+pageSizenumberFalse每页记录总数
+listobject[]False监控点列表
++altitudestringFalse海拔
++cameraIndexCodestringFalse监控点唯一标识
++cameraNamestringFalse监控点名称
++cameraTypenumberFalse监控点类型,参考附录A.4
++cameraTypeNamestringFalse监控点类型说明
++capabilitySetstringFalse设备能力集,参考附录A.22
++capabilitySetNamestringFalse能力集说明
++intelligentSetstringFalse智能分析能力集,扩展字段,暂不使用
++intelligentSetNamestringFalse智能分析能力集说明,扩展字段,暂不使用
++channelNostringFalse通道编号
++channelTypestringFalse通道类型,附录A.5
++channelTypeNamestringFalse通道类型说明
++createTimestringFalse创建时间,采用ISO8601标准,如2018-07-26T21:30:08+08:00 表示北京时间2018年7月26日21时30分08秒
++encodeDevIndexCodestringFalse所属编码设备唯一标识
++encodeDevResourceTypestringFalse所属设备类型,扩展字段,暂不使用
++encodeDevResourceTypeNamestringFalse所属设备类型说明,扩展字段,暂不使用
++gbIndexCodestringFalse监控点国标编号,即外码编号externalIndexCode
++installLocationstringFalse安装位置,详见附录附录A.81 安装位置
++keyBoardCodestringFalse键盘控制码
++latitudestringFalse纬度
++longitudestringFalse经度
++pixelstringFalse摄像机像素(1-普通像素,2-130万高清,3-200万高清,4-300万高清),扩展字段,暂不使用
++ptzstringFalse云镜类型(1-全方位云台(带转动和变焦),2-只有变焦,不带转动,3-只有转动,不带变焦,4-无云台,无变焦),扩展字段,暂不使用
++ptzNamestringFalse云镜类型说明,扩展字段,暂不使用
++ptzControllerstringFalse云台控制(1-DVR,2-模拟矩阵,3-MU4000,4-NC600),扩展字段,暂不使用
++ptzControllerNamestringFalse云台控制说明,扩展字段,暂不使用
++recordLocationstringFalse录像存储位置
++recordLocationNamestringFalse录像存储位置说明
++regionIndexCodestringFalse所属区域唯一标识
++statusstringFalse在线状态(0-未知,1-在线,2-离线),扩展字段,暂不使用
++statusNamestringFalse状态说明
++transTypenumberFalse传输协议,参考附录A.40
++transTypeNamestringFalse传输协议类型说明
++treatyTypestringFalse接入协议,参考附录A.6
++treatyTypeNamestringFalse接入协议类型说明
++viewshedstringFalse可视域相关(JSON格式),扩展字段,暂不使用
++updateTimestringFalse更新时间
采用ISO8601标准,如2018-07-26T21:30:08+08:00
表示北京时间2017年7月26日21时30分08秒

变来这边直接有一个status状态字段返回,以为可以用,结果都是null

问了海康

在调一个

 

注意,这边indexCodes即为cameraIndexCode

以online区分

3、编写测试demo

核心class

package com.ars.camera.main;import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;/*** @author cmy* @date 2022/8/4 11:14*/
public class Start {/*** STEP2:设置OpenAPI接口的上下文*/private static final String ARTEMIS_PATH = "/artemis";public static void main(String[] args) {ArtemisConfig.host = "XXX";ArtemisConfig.appKey = "26111111";ArtemisConfig.appSecret = "SECRET";final String camerasURLsApi = ARTEMIS_PATH + "/api/resource/v1/cameras";Map<String, String> camerasPath = new HashMap<String, String>(2) {{put("https://", camerasURLsApi);//根据现场环境部署确认是http还是https}};String contentType = "application/json";JSONObject jsonObject = JSONUtil.createObj().set("pageNo",1).set("pageSize",10);String result = ArtemisHttpUtil.doPostStringArtemis(camerasPath, jsonObject.toString(), null, null, contentType , null);System.out.println(result);JSONObject resultJson = new JSONObject(result);Integer total = resultJson.getInt("total");Integer pageNo = resultJson.getInt("pageNo");Integer pageSize = resultJson.getInt("pageSize");System.out.println(total);JSONObject dataJson = resultJson.getJSONObject("data");JSONArray list = dataJson.getJSONArray("list");JSONArray objects =JSONUtil.parseArray(list);List<Bean> camerasList = JSONUtil.toList(objects, Bean.class);for (Bean bean : camerasList) {System.out.println(bean.getCameraName()+"--------------"+bean.getCameraIndexCode());}final String onLineURLsApi = ARTEMIS_PATH + "/api/nms/v1/online/camera/get";Map<String, String> onlinePath = new HashMap<String, String>(2) {{put("https://", onLineURLsApi);//根据现场环境部署确认是http还是https}};JSONObject onLineParam = JSONUtil.createObj().set("pageNo",1).set("pageSize",10).set("indexCodes",camerasList.stream().map(Bean::getCameraIndexCode).collect(Collectors.toList()).toArray(new String[]{}));String result2 = ArtemisHttpUtil.doPostStringArtemis(onlinePath, onLineParam.toString(), null, null, contentType , null);System.out.println(result2);JSONObject result2Json = new JSONObject(result2);JSONObject data2Json = result2Json.getJSONObject("data");JSONArray list2 = data2Json.getJSONArray("list");JSONArray objects2 =JSONUtil.parseArray(list2);List<OnlineBean> onlineBeanList = JSONUtil.toList(objects2, OnlineBean.class);Map<String, Bean> mapCameras = camerasList.stream().collect(Collectors.toMap(Bean::getCameraIndexCode, t -> t));for (OnlineBean onlineBean : onlineBeanList) {mapCameras.get(onlineBean.getIndexCode()).setOnline(onlineBean.getOnline());}Iterator<String> iterator = mapCameras.keySet().iterator();while (iterator.hasNext()){String key = iterator.next();System.out.println(key + "---------"+mapCameras.get(key).getOnline());}}
}

上服务器测试

​​​​​​​

 

结果第二个接口懵了,服务不支持

需要安装

安装之后,重启api网管

 4、前后端配合

后端做好关联,把cameraIndexCode 传给前端,还有加密的secret,前端引入安装插件,引入相关js,即可。

整个项目demo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45765.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

保姆级低代码实战教程——玩转PagePlug表格开发,增删改查分页如此简单

目录 1、背景介绍 2、连接数据源 2.1 新增数据源 2.2 填写数据源信息 3、表格数据的展示 3.1 新增查询&#xff0c;编写查询语句 3.2 使用表格组件 3.3 同步数据源与表格列名 4、表格的数据新增 4.1 新增查询&#xff0c;编写新增语句 4.2 表格配置新增一行&#xf…

chatgpt-web发布之docker打包流程

docker打包流程 1、使用docker前置准备&#xff1a; 电脑下载docker桌面版&#xff0c;以及开启虚拟机步骤&#xff1a;https://blog.csdn.net/qq_34905631/article/details/126573826下载docker桌面版 &#xff1a;https://docs.docker.com/desktop/install/windows-install…

(001)我们一起学Python;基本运算

&#xff08;一&#xff09;将 Python 当做计算器 ①除法 (/)永远返回一个浮点数。 floor 除法可以使用 // 运算符得到整数结果&#xff08;丢掉任何小数部分&#xff09;&#xff1b;要计算余数你可以使用 % PS:Python的命令行交互工具IDLE可以将文本打印&#xff0c;快捷键…

Day22——HTML

文章目录 HTML一、 关于 html 那些事1. 为什么要学 html&#xff1f;2. 什么是 html&#xff1f;3. 发展史4. 优势5. W3C 标准6. 学习 html 要达到的方法和目标7. 第一个 HTML 案例 二、HTML 的基础知识1. HTML 的基本结构1.1 HTML 头部元素1.1.1 title 标签1.1.2 base 标签1.1…

二流公司前端,月入账工资3万元「web前端薪资如何?」

一个好的 Web 前端年薪会有多少? 作为一名普通员工来说的话,比较好的公司会给什么待遇呢? 匿名用户 昨天发的工资,匿了,二流互联网公司前端。 2013年底的行情 拿了一年了。 update 2017年拿了半年了… 这次不算奖金了 每月到手的。 罗龙浩支付宝口碑前端负责人 2012…

(006)我们一起学Python;列表----超级结构体

if else d的匹配在C和Python上是完全不同的&#xff0c;Python依靠对其匹配&#xff0c;而C是就近匹配。所以Python有更好的可读性和代码更优美简洁。 条件表达式&#xff08;三元操作符&#xff09; 根据判断条件&#xff0c;来进行赋值操作 assert这个关键字 我们称之为断言…

java之JVM学习全过程学习记录

关注公众号&#xff1a;”奇叔码技术“ 回复&#xff1a;“java面试题大全”或者“java面试题” 即可免费领取资料 java之JVM学习记录其中有许多借鉴综合&#xff0c;感谢通哥也感谢大佬们&#xff0c;一起学习加油&#xff09; 关注公众号&#xff1a;”奇叔码技术“ 1、J…

linux 1060显卡,Steam最受欢迎显卡型号出炉,GTX 1060 依然是王道!

原标题&#xff1a;Steam最受欢迎显卡型号出炉&#xff0c;GTX 1060 依然是王道&#xff01; 2019年7月Steam 硬件和软件调查报告。 作为一名忠实游戏玩家 除了好玩的游戏作品外 基本还会关心硬件配置等 不知道大家的游戏配置 一般多久升级一次 通哥的1060倒是真的战斗蛮久了 近…

通过javasocket实现客户端与客户端的联系

首先建立两个文件夹Client_1跟Server_1的文件夹 CloseUtil.java是关闭流class&#xff0c;当我们的输入流跟输出流以及端口出问题以及不想要时&#xff0c;可以通哥这个class实现关闭&#xff0c;client跟server两个都是一样的 Server_1 首先是server.java 其次是Mychannel.j…

对话华为云专家,摆脱无意义“内卷”

本期推荐&#xff1a;【云享人物大咖面对面】华为云首席产品官方国伟独家专访&#xff1a;当下云发展有待突破的并不是技术问题&#xff1b;现在为什么是#华为云# 的最佳时机&#xff1b;以不变应万变&#xff0c;什么是云产品规划的三个关键出发点&#xff1b;生态对于云的意义…

Could not create connection to database server.

bug日记&#xff1a;Could not create connection to database server. 网上查了很多博客&#xff0c;指出了两个方向 yml(yaml)里面数据库的配置问题mysql-connector-java 的版本号问题 结合我的报错&#xff0c;项目一测试登录&#xff0c;就报错这个&#xff0c;而且错误…

eclipse 根据路径文件名定位文件

前言 以前用ctrlshiftr 根据文件名正则匹配文件&#xff0c;能够很快定位到具体的文件。 后来我遇到了恩 类似于如下图这样&#xff08;习惯起相同文件名的队友&#xff09; 解决办法 苦搜网上无果&#xff0c;本来心思开发个eclipse插件&#xff0c;后来插入一个项目要带领…

OAuth2 的授权流程

文章目录 &#x1f4d6; OAuth2 的授权流程&#x1f4d1; 参与的角色&#x1f4d1; 授权流程&#x1f4d1; 授权许可 Authorization Grant&#x1f4d1; 直白话 OAuth2 流程 &#x1f4d6; OAuth2 的授权流程 &#x1f4d1; 参与的角色 1️⃣ Resource Owner资源所有者&#…

k8s --> 19 k8s集群down机

文章目录 一、master节点1、在masster节点操作 二、故障排查1、查看6443&#xff08;api-server&#xff09;2、检查docker和kubelet服务3、查看日志4、登录master机器5、故障处理 一、master节点 1、在masster节点操作 kubectl get node kubectl get 报错&#xff1a;Unab…

CCS_3200编译错误汇总一(通)

CC3200编译错误汇总 1CC3200提示编译器版本不对 解决办法&#xff1a;官网去下载最新版本的编译器&#xff0c;官网的结构可能会改变&#xff0c;但是找到 Compiler下载相关的就能够找到&#xff0c;这个办法可能不是万能&#xff0c;多换几个编译器编译试 一下。 在Project-…

田渊栋:关于GPT-4的一些感想

点击上方“AI遇见机器学习”&#xff0c;选择“星标”公众号 重磅干货&#xff0c;第一时间送 来自&#xff1a;新智元 作者&#xff1a;田渊栋 编辑&#xff1a;桃子 【导读】对于研究者们而言&#xff0c;GPT-4的出现意味着什么呢&#xff1f; OpenAI昨天发布了GPT-4&#xf…

网络错误 请确保您已连接到网络并重试

windows2008从windows2003网络拷贝总提示:网络错误 请确保您已连接到网络并重试 处理办法&#xff1a; 运行 gpedit.msc&#xff0c;对组策略--计算机配置--windows设置--安全设置--本地策略--安全选项 中的 “网络安全&#xff1a;LAN管理器身份验证级别”项的值“没有定义”…

chrome连接已重置_如何重置(或调整)Chrome的下载设置

chrome连接已重置 By default, Chrome saves all downloaded files to the same location—a dedicated “Downloads” folder. The thing is, this isn’t always practical for all types of download files. The good news is you can easily tweak this setting. 默认情况下…

用友t1系统服务器连接失败,登录T1时服务器连接失败,请重新确认是怎么回事?...

可以重新再建一个新账套吗&#xff1f;&#xff1f;&#xff1f; 可以重新再建一个新账套吗&#xff1f;&#xff1f;&#xff1f;[] 您好&#xff0c;软件未限制账套的个数&#xff0c;您可以在建立账套的服务社区李珊:怎么建立&#xff1f;&#xff1f;铧霖钢材经营部:您打开…

LoadRunner提问求助 失败: “[10054] 对等端已重置连接” [MsgId: MERR-27780] 是什么

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…