海康SDK集成,PTZ控制
@ApiOperation(value = "设置海康摄像头PTZ参数", notes = "设置海康摄像头PTZ参数")@Log(action = "设置海康摄像头PTZ参数", tag = "/setHKCameraPTZValue")@WebMapping("/setHKCameraPTZValue")public JSONObject setHKCameraPTZvalue(String ip,String username,String password,int iPort,Integer wTiltPos,Integer wPanPos,Integer wZoomPos,Integer direction){NativeLong lUserID = new NativeLong(-1);;//用户句柄boolean initSuc = hCNetSDK.NET_DVR_Init();//设备初始化lUserID = hCNetSDK.NET_DVR_Login_V30(ip, (short) iPort,username,password, null);//登陆HCNetSDK.NET_DVR_PTZPOS m_ptzPosCurrent = new HCNetSDK.NET_DVR_PTZPOS();IntByReference ibrBytesReturned = new IntByReference(0);Pointer pioint = m_ptzPosCurrent.getPointer();hCNetSDK.NET_DVR_GetDVRConfig(lUserID, HCNetSDK.NET_DVR_GET_PTZPOS,new NativeLong(0),pioint,m_ptzPosCurrent.size(),ibrBytesReturned);m_ptzPosCurrent.read();System.out.println("PTZ垂直参数为: "+m_ptzPosCurrent.wTiltPos);System.out.println("PTZ水平参数为: "+m_ptzPosCurrent.wPanPos);System.out.println("PTZ变倍参数为: "+m_ptzPosCurrent.wZoomPos);HCNetSDK.NET_DVR_PTZSCOPE poe = new HCNetSDK.NET_DVR_PTZSCOPE();IntByReference ibrBytesReturned1 = new IntByReference(0);hCNetSDK.NET_DVR_GetDVRConfig(lUserID, HCNetSDK.NET_DVR_GET_PTZSCOPE,new NativeLong(0),poe.getPointer(),poe.size(),ibrBytesReturned1);poe.read();if(direction == direction_up){//向上int wTiltPosNew = Integer.valueOf(Integer.toHexString(m_ptzPosCurrent.wTiltPos)) - (wTiltPos);wTiltPosNew = Integer.parseInt((String.valueOf(wTiltPosNew)),16);if(wTiltPosNew < 0){m_ptzPosCurrent.wTiltPos = 0;}else{m_ptzPosCurrent.wTiltPos = (short)wTiltPosNew;}}else if(direction == direction_down){//向下int wTiltPosNew = Integer.valueOf(Integer.toHexString(m_ptzPosCurrent.wTiltPos)) + (wTiltPos);wTiltPosNew = Integer.parseInt((String.valueOf(wTiltPosNew)),16);if(wTiltPosNew > poe.wTiltPosMin){m_ptzPosCurrent.wTiltPos = poe.wTiltPosMin;}else{m_ptzPosCurrent.wTiltPos = (short)wTiltPosNew;}}else if(direction == direction_left){//向左int wPanPosNew = Integer.valueOf(Integer.toHexString(m_ptzPosCurrent.wPanPos)) - (wPanPos);wPanPosNew = Integer.parseInt((String.valueOf(wPanPosNew)),16);if(wPanPosNew < poe.wPanPosMin){m_ptzPosCurrent.wPanPos = poe.wPanPosMin;}else{m_ptzPosCurrent.wPanPos=(short)wPanPosNew;}}else if(direction == direction_right){//向右int wPanPosNew = Integer.valueOf(Integer.toHexString(m_ptzPosCurrent.wPanPos)) + (wPanPos);wPanPosNew = Integer.parseInt((String.valueOf(wPanPosNew)),16);if(wPanPosNew > poe.wPanPosMax){m_ptzPosCurrent.wPanPos = poe.wPanPosMax;}else{m_ptzPosCurrent.wPanPos=(short)wPanPosNew;}}else if(direction == direction_enlarge){//放大int wZoomPosNew = Integer.valueOf(Integer.toHexString(m_ptzPosCurrent.wZoomPos)) + (wZoomPos);wZoomPosNew = Integer.parseInt((String.valueOf(wZoomPosNew)),16);if(wZoomPosNew > poe.wZoomPosMax){m_ptzPosCurrent.wZoomPos=poe.wZoomPosMax;}else{m_ptzPosCurrent.wZoomPos=(short)wZoomPosNew;}}else if(direction == direction_narrow){//缩小int wZoomPosNew = Integer.valueOf(Integer.toHexString(m_ptzPosCurrent.wZoomPos)) - (wZoomPos);wZoomPosNew = Integer.parseInt((String.valueOf(wZoomPosNew)),16);if(wZoomPosNew < poe.wZoomPosMin){m_ptzPosCurrent.wZoomPos=poe.wZoomPosMin;}else{m_ptzPosCurrent.wZoomPos=(short)wZoomPosNew;}}m_ptzPosCurrent.write();JSONObject current = new JSONObject();current.put("wZoomPos",Integer.toHexString(m_ptzPosCurrent.wZoomPos));current.put("wPanPos",Integer.toHexString(m_ptzPosCurrent.wPanPos));current.put("wTiltPos",Integer.toHexString(m_ptzPosCurrent.wTiltPos));hCNetSDK.NET_DVR_Init();hCNetSDK.NET_DVR_SetDVRConfig(lUserID, HCNetSDK.NET_DVR_SET_PTZPOS, new NativeLong(0), m_ptzPosCurrent.getPointer(),m_ptzPosCurrent.size());hCNetSDK.NET_DVR_GetLastError();JSONObject result = new JSONObject();;if(hCNetSDK.NET_DVR_GetLastError() == 0){result.put("result","设置成功");result.put("data",current);}else{result.put("result","设置失败");result.put("data","");}hCNetSDK.NET_DVR_Cleanup();return result;}
实际显示的PTZ值是获取到的十六进制值的十分之一,如获取的水平参数P的值是0x1750,实际显示的P值为175度;获取到的垂直参数T的值是0x0789,实际显示的T值为78.9度;获取到的变倍参数Z的值是0x1100,实际显示的Z值为110倍。
海康SDK集成,PTZ控制相关推荐
- Springboot集成海康SDK(以海康USB_SDK为例)
新建Springboot项目 Pom文件 <!--Spring boot 2.3.2--> <parent><groupId>org.springframework ...
- Android平台上集成海康SDK(二)
Android平台上集成海康SDK 以上是我之前写的一篇Android平台上集成海康SDK的文章,其中对于Android平台上集成海康SDK.基于海康SDK进行二次开发基本上进行了详细地介绍. 这篇文 ...
- 用FPC翻译海康SDK头文件,供Delphi和Lazarus使用
引言 多年前用delphi写一些小程序时,曾用到海康威视的视频产品(当时是MPEG4视频采集卡),但是海康当时没有提供pascal版的SDK(说是因为版权问题被发过律师函,所以不提供,现在FPC没版权 ...
- Linux环境中对海康威视工业相机SDK进行二次开发(QT+CMake+Opencv+海康SDK)
关于在Windows环境中对海康威视工业相机SDK进行二次开发的话,可以参考这两篇博客. 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一) 海康威视工业相机SDK二 ...
- 海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP)
海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP) 问题分析 转码推rtmp PS流转封装 码云(Gitee)主页:https://gitee.com/banmaj ...
- 基于Qt+海康sdk+MySql的远程录像下载程序
一.前言 距离上次完成的Linux下QT实时音频采集传输项目已经有一个月的时间.之后又在Linux上完成了许多大大小小的项目,多是与UI有关. 这次给实现的是Windows下的QT+Mysql+海康s ...
- C#使用WebService调用海康SDK实现抓图与录像实时下载
1.海康设备网络SDK下载 下载地址:https://www.hikvision.com/cn/download_more_401.html 下载完毕解压后的目录结构如下: 2.代码实现 通过参考&q ...
- 海康SDK 通过java接口设置和获取摄像机参数
以下功能实现需要完成设备初始化,注册,监听和布防的操作,详见CSDNhttps://mp.csdn.net/mp_blog/creation/editor/121543529 海康设备登录 //设备登 ...
- 海康摄像机3D PTZ功能,拍照功能
技术交流qq群933925017 海康摄像机3D PTZ功能 1.海康界面自带的框选自动居中缩小/放大功能 2.核心代码 /** 该结构体中的坐标值与当前预览显示框的大小有关,现假设预览显示框为352 ...
- 海康sdk docker虚拟化
海康sdk docker虚拟化 主要使用sdk 对接IPC,对外提供视频播放的功能.在容器内运行了海康的sdk对接程序和tcp server. sdk使用的标准码流回调函数,将视频码流拿到后,利用tc ...
最新文章
- Shiro学习记录(详细)
- 使用sklearn加载公共数据集、内存数据与CSV文件
- php @touch,touch - [ php中文手册 ] - 在线原生手册 - php中文网
- ROC曲线和AUC 原理与实现——Python实战
- Atitit.现在的常用gui技术与gui技术趋势评价总结
- presumably用法
- 手把手教你如何下载编译Spring源码
- getchar 使用
- excel表格打印每页都有表头_Excel打印时如何实现每一页纸上都有表头?
- 2:STM32CubeMX配置STM32F103C8T6驱动-TIM1配置
- 观点 | 银行业数据应用的瓶颈与打开思路
- 矩阵幂之和(矩阵乘法)
- Three.js加载简单纹理贴图并应用到网格(凹凸贴图、法向贴图、移位贴图)
- 教你50招 XP技巧
- 2017年9月25日--10月1日(5小时,剩2888小时)
- 计算机科学导论+刘艺+pdf,计算机科学导论(机械工业出版社)刘艺 瞿高峰 习题答案.doc...
- CCF CSP 201412-3 集合竞价 python
- 增加一块新硬盘,扩大原有分区
- iOS Smart App Banner 智能App广告条
- 2.windows安装mongodb企业版
热门文章
- Java并发编程之美
- chm转txt(chm转txt格式转换器安卓)
- ghost系统之优劣?
- Carrot2 聚类算法概要说明
- CopyBeanUtils坑,xxDto cannot be cast to xxxEntity 类型转化错误
- 数字图像处理应用领域
- 设置下载安装 桌面_电脑C盘快满了不要慌,别只知道清垃圾,这些设置也要改...
- 煤改气加剧雾霾”“石油焦是祸首”等谣言,你中招了吗?
- 编程猫海龟编辑器(python)_编程猫海龟编辑器(少儿编程软件)
- 遥感图像几何校正 matlab,利用多项式实现图像几何校正(Matlab实现)