@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控制相关推荐

  1. Springboot集成海康SDK(以海康USB_SDK为例)

    新建Springboot项目 Pom文件 <!--Spring boot 2.3.2--> <parent><groupId>org.springframework ...

  2. Android平台上集成海康SDK(二)

    Android平台上集成海康SDK 以上是我之前写的一篇Android平台上集成海康SDK的文章,其中对于Android平台上集成海康SDK.基于海康SDK进行二次开发基本上进行了详细地介绍. 这篇文 ...

  3. 用FPC翻译海康SDK头文件,供Delphi和Lazarus使用

    引言 多年前用delphi写一些小程序时,曾用到海康威视的视频产品(当时是MPEG4视频采集卡),但是海康当时没有提供pascal版的SDK(说是因为版权问题被发过律师函,所以不提供,现在FPC没版权 ...

  4. Linux环境中对海康威视工业相机SDK进行二次开发(QT+CMake+Opencv+海康SDK)

    关于在Windows环境中对海康威视工业相机SDK进行二次开发的话,可以参考这两篇博客. 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一) 海康威视工业相机SDK二 ...

  5. 海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP)

    海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP) 问题分析 转码推rtmp PS流转封装 码云(Gitee)主页:https://gitee.com/banmaj ...

  6. 基于Qt+海康sdk+MySql的远程录像下载程序

    一.前言 距离上次完成的Linux下QT实时音频采集传输项目已经有一个月的时间.之后又在Linux上完成了许多大大小小的项目,多是与UI有关. 这次给实现的是Windows下的QT+Mysql+海康s ...

  7. C#使用WebService调用海康SDK实现抓图与录像实时下载

    1.海康设备网络SDK下载 下载地址:https://www.hikvision.com/cn/download_more_401.html 下载完毕解压后的目录结构如下: 2.代码实现 通过参考&q ...

  8. 海康SDK 通过java接口设置和获取摄像机参数

    以下功能实现需要完成设备初始化,注册,监听和布防的操作,详见CSDNhttps://mp.csdn.net/mp_blog/creation/editor/121543529 海康设备登录 //设备登 ...

  9. 海康摄像机3D PTZ功能,拍照功能

    技术交流qq群933925017 海康摄像机3D PTZ功能 1.海康界面自带的框选自动居中缩小/放大功能 2.核心代码 /** 该结构体中的坐标值与当前预览显示框的大小有关,现假设预览显示框为352 ...

  10. 海康sdk docker虚拟化

    海康sdk docker虚拟化 主要使用sdk 对接IPC,对外提供视频播放的功能.在容器内运行了海康的sdk对接程序和tcp server. sdk使用的标准码流回调函数,将视频码流拿到后,利用tc ...

最新文章

  1. Shiro学习记录(详细)
  2. 使用sklearn加载公共数据集、内存数据与CSV文件
  3. php @touch,touch - [ php中文手册 ] - 在线原生手册 - php中文网
  4. ROC曲线和AUC 原理与实现——Python实战
  5. Atitit.现在的常用gui技术与gui技术趋势评价总结
  6. presumably用法
  7. 手把手教你如何下载编译Spring源码
  8. getchar 使用
  9. excel表格打印每页都有表头_Excel打印时如何实现每一页纸上都有表头?
  10. 2:STM32CubeMX配置STM32F103C8T6驱动-TIM1配置
  11. 观点 | 银行业数据应用的瓶颈与打开思路
  12. 矩阵幂之和(矩阵乘法)
  13. Three.js加载简单纹理贴图并应用到网格(凹凸贴图、法向贴图、移位贴图)
  14. 教你50招 XP技巧
  15. 2017年9月25日--10月1日(5小时,剩2888小时)
  16. 计算机科学导论+刘艺+pdf,计算机科学导论(机械工业出版社)刘艺 瞿高峰 习题答案.doc...
  17. CCF CSP 201412-3 集合竞价 python
  18. 增加一块新硬盘,扩大原有分区
  19. iOS Smart App Banner 智能App广告条
  20. 2.windows安装mongodb企业版

热门文章

  1. Java并发编程之美
  2. chm转txt(chm转txt格式转换器安卓)
  3. ghost系统之优劣?
  4. Carrot2 聚类算法概要说明
  5. CopyBeanUtils坑,xxDto cannot be cast to xxxEntity 类型转化错误
  6. 数字图像处理应用领域
  7. 设置下载安装 桌面_电脑C盘快满了不要慌,别只知道清垃圾,这些设置也要改...
  8. 煤改气加剧雾霾”“石油焦是祸首”等谣言,你中招了吗?
  9. 编程猫海龟编辑器(python)_编程猫海龟编辑器(少儿编程软件)
  10. 遥感图像几何校正 matlab,利用多项式实现图像几何校正(Matlab实现)