1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 海康SDK 通过java接口设置和获取摄像机参数

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

时间:2019-08-20 13:44:02

相关推荐

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

以下功能实现需要完成设备初始化,注册,监听和布防的操作,详见CSDN/mp_blog/creation/editor/121543529

海康设备登录

//设备登录_V40public void Login_V40() {//注册_DVR_USER_LOGIN_INFO m_strLoginInfo = new _DVR_USER_LOGIN_INFO();//设备登录信息_DVR_DEVICEINFO_V40 m_strDeviceInfo = new _DVR_DEVICEINFO_V40();//设备信息String m_sDeviceIP = "10.17.36.27";//设备ip地址m_strLoginInfo.sDeviceAddress = new byte[_DVR_DEV_ADDRESS_MAX_LEN];System.arraycopy(m_sDeviceIP.getBytes(), 0, m_strLoginInfo.sDeviceAddress, 0, m_sDeviceIP.length());String m_sUsername = "admin";//设备用户名m_strLoginInfo.sUserName = new byte[_DVR_LOGIN_USERNAME_MAX_LEN];System.arraycopy(m_sUsername.getBytes(), 0, m_strLoginInfo.sUserName, 0, m_sUsername.length());String m_sPassword = "hik12345";//设备密码m_strLoginInfo.sPassword = new byte[_DVR_LOGIN_PASSWD_MAX_LEN];System.arraycopy(m_sPassword.getBytes(), 0, m_strLoginInfo.sPassword, 0, m_sPassword.length());m_strLoginInfo.wPort = 8000;m_strLoginInfo.bUseAsynLogin = false; //是否异步登录:0- 否,1- 是m_strLoginInfo.write();lUserID = _DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);if (lUserID == -1) {System.out.println("登录失败,错误码为" + _DVR_GetLastError());return;} else {System.out.println("登录成功!");}}

海康端口绑定

public void BindPort() {_DVR_LOCAL_TCP_PORT_BIND_CFG strLocalTcpBind = new _DVR_LOCAL_TCP_PORT_BIND_CFG();strLocalTcpBind.read();strLocalTcpBind.wLocalBindTcpMinPort = 30000;strLocalTcpBind.wLocalBindTcpMaxPort = 30200;strLocalTcpBind.write();Pointer pStrLocalTcoBind = strLocalTcpBind.getPointer();if (_DVR_SetSDKLocalCfg(0, pStrLocalTcoBind) == false) {System.out.println("绑定失败,错误码为" + _DVR_GetLastError());}System.out.println("绑定成功");}

海康获取设备的基本参数

//获取设备的基本参数public void GetCfg() {_DVR_DEVICECFG_V40 m_strDeviceCfg = new _DVR_DEVICECFG_V40();m_strDeviceCfg.dwSize = m_strDeviceCfg.size();m_strDeviceCfg.write();Pointer pStrDeviceCfg = m_strDeviceCfg.getPointer();IntByReference pInt = new IntByReference(0);boolean b_GetCfg = _DVR_GetDVRConfig(lUserID, _DVR_GET_DEVICECFG_V40,0Xffffffff, pStrDeviceCfg, m_strDeviceCfg.dwSize, pInt);if (b_GetCfg == false) {System.out.println("获取参数失败 错误码:" + _DVR_GetLastError());}System.out.println("获取参数成功");m_strDeviceCfg.read();System.out.println("设备名称:" + new String(m_strDeviceCfg.sDVRName).trim() + "设备序列号:" + new String(m_strDeviceCfg.sSerialNumber));System.out.println("模拟通道个数" + m_strDeviceCfg.byChanNum);}

海康球机PTZ参数获取设置

public void SetPTZcfg(){_DVR_PTZPOS struPtTZPos=new _DVR_PTZPOS();IntByReference pUsers=new IntByReference(1);boolean b_GetPTZ=_DVR_GetDVRConfig(lUserID,_DVR_GET_PTZPOS,1,struPtTZPos.getPointer(),struPtTZPos.size(),pUsers);if (b_GetPTZ==false){System.out.println("获取PTZ坐标信息失败,错误码:" + _DVR_GetLastError());}else {struPtTZPos.read();String p=Integer.toHexString(struPtTZPos.wPanPos);String t=Integer.toHexString(struPtTZPos.wTiltPos);String z=Integer.toHexString(struPtTZPos.wZoomPos);System.out.println("P参数:"+p+"\n");System.out.println("T参数:"+t+"\n");System.out.println("Z参数:"+z+"\n");}

海康设置前端参数

public void CAMERAPARAMCFG(){_DVR_CAMERAPARAMCFG_EX struCameraParam=new _DVR_CAMERAPARAMCFG_EX();Pointer pstruCameraParam=struCameraParam.getPointer();IntByReference ibrBytesReturned = new IntByReference(0);boolean b_GetCameraParam=_DVR_GetDVRConfig(lUserID,3368,1,pstruCameraParam,struCameraParam.size(),ibrBytesReturned);if (!b_GetCameraParam) {System.out.println("获取前端参数失败,错误码:" + _DVR_GetLastError());}struCameraParam.read();System.out.println("是否开启旋转:"+struCameraParam.struCorridorMode.byEnableCorridorMode);struCameraParam.struCorridorMode.byEnableCorridorMode=1;struCameraParam.write();boolean b_SetCameraParam=_DVR_SetDVRConfig(lUserID,3369,1,pstruCameraParam,struCameraParam.size());if (!b_SetCameraParam) {System.out.println("设置前端参数失败,错误码:" + _DVR_GetLastError());}struCameraParam.read();System.out.println("设置成功");}

海康获取快球聚焦模式信息。

public void GetFocusMode(){_DVR_FOCUSMODE_CFG struFocusMode = new _DVR_FOCUSMODE_CFG();struFocusMode.read();struFocusMode.dwSize=struFocusMode.size();struFocusMode.write();Pointer pFocusMode=struFocusMode.getPointer();IntByReference ibrBytesReturned = new IntByReference(0);boolean b_GetCameraParam=_DVR_GetDVRConfig(lUserID,3305,1,pFocusMode,struFocusMode.size(),ibrBytesReturned);if (!b_GetCameraParam) {System.out.println("获取快球聚焦模式失败,错误码:" + _DVR_GetLastError());}struFocusMode.read();System.out.println("聚焦模式:"+struFocusMode.byFocusMode);struFocusMode.byFocusMode=0;struFocusMode.byFocusDefinitionDisplay=1;struFocusMode.byFocusSpeedLevel=3;struFocusMode.write();boolean b_SetCameraParam=_DVR_SetDVRConfig(lUserID,3306,1,pFocusMode,struFocusMode.size());if (!b_SetCameraParam) {System.out.println("设置快球聚焦模式失败,错误码:" + _DVR_GetLastError());}struFocusMode.read();System.out.println("设置成功");}

海康获取IP通道

public void GetIPPARACFG(){ IntByReference ibrBytesReturned = new IntByReference(0);//获取IP接入配置参数_DVR_IPPARACFG_V40 m_strIpparaCfg = new _DVR_IPPARACFG_V40();m_strIpparaCfg.write();//lpIpParaConfig 接收数据的缓冲指针Pointer lpIpParaConfig = m_strIpparaCfg.getPointer();boolean bRet = _DVR_GetDVRConfig(lUserID, _DVR_GET_IPPARACFG_V40, 0, lpIpParaConfig, m_strIpparaCfg.size(), ibrBytesReturned);m_strIpparaCfg.read();System.out.println("其实数字通道号:"+m_strIpparaCfg.dwStartDChan);}

人脸、车辆抓拍功能详见

海康威视设备 JAVA SDK SpringBoot实现人脸、车辆、门禁图片抓取_灵活的硕硕的博客-CSDN博客实现设备抓拍功能之前,需要完成设备初始化,注册,监听和布防的操作,详见CSDN/mp_blog/creation/editor/121543529创建类FMSGCallBack_V30 并实现FMSGCallBackpublic class FMSGCallBack_V30 implements HCNetSDK.FMSGCallBack {实现抽象方法 @Override public void invoke(int lComm./qq_24981615/article/details/123060744

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。