调用海康DVR云台控制
(JAVA代码实现)
package com.ller;
import com.alibaba.fastjson.JSON;
import com.hikvision.sdkdvrmons.HCNetSDK;
import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
public class DvrController {
private Logger logger = Logger(DvrController.class);
HCNetSDK hCNetSDK = HCNetSDK.INSTANCE; //SDK库
int lUserID;//用户句柄
HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo;//设备信息
public static NativeLong g_lVoiceHandle;//全局的语音对讲句柄
HCNetSDK.NET_DVR_IPPARACFG m_strIpparaCfg;//IP参数
HCNetSDK.NET_DVR_CLIENTINFO m_strClientInfo;//用户参数
//从NVR取流测试:局域网可以,通过通道取流地址:rtsp://admin:x..3389..1@1192.168.126.66:554/h264/ch1/main/av_stream
//云台控制
@RequestMapping("/control")
@ResponseBody
public String PTZ( String data) { //let data{"name":"Anni"}
// Map map = (Map) JSON.parse(data);
int login = Login();
boolean ptz = hCNetSDK.NET_DVR_PTZControlWithSpeed_Other(login, 1, 23, 0, 5)
; // 控制操作
int e = hCNetSDK.NET_DVR_GetLastError();//错误号返回值
java jna logger.info("操作错误值:" + e );
boolean out = hCNetSDK.NET_DVR_Logout(login); //注销设备
boolean cleanup = hCNetSDK.NET_DVR_Cleanup(); //释放SDK资源
int error = hCNetSDK.NET_DVR_GetLastError();//错误号返回值
// logger.info("云台控制:" + ptz);
if (ptz == true) {
return "1";
}
return "0";
}
//注册登录
int Login() {
// 1.首先初始化设备
boolean initSuc = hCNetSDK.NET_DVR_Init();
// 2.然后注册设备
lUserID = hCNetSDK.NET_DVR_Login_V30(IP, (short) 8000, 用户名, 密码, m_strDeviceInfo);
//logger.info("登录返回值:" + lUserID);
return lUserID;
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论