海康设备通过SDK获取和设置设备网络参数

目录

1、获取网络相关参数

2、设置网络相关参数


1、获取网络相关参数

//获取设备的网络参数
    private void getNetCfg(int iUserID) {
        HCNetSDK.NET_DVR_NETCFG_V30 m_strNetCfg = new HCNetSDK.NET_DVR_NETCFG_V30();
        m_strNetCfg.dwSize = m_strNetCfg.size();
        m_strNetCfg.write();
        Pointer pStrDeviceCfg = m_strNetCfg.getPointer();
        IntByReference pInt = new IntByReference(0);
        boolean b_GetCfg = hcNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_NETCFG_V30,
                0Xffffffff, pStrDeviceCfg, m_strNetCfg.dwSize, pInt);
        if (b_GetCfg == false) {
            logger.error("获取参数失败  错误码:" + hcNetSDK.NET_DVR_GetLastError());
        }
        m_strNetCfg.read();
        byte[] byMACAddr = netCfg.struEtherNet[0].byMACAddr;
            List<String> macEles = new ArrayList<>();
            for (byte macEle : byMACAddr) {
                macEles.add(String.format("%02x", macEle));
            }
            String mac = StringUtils.join(macEles, "-");
            String subnetMask = new String(netCfg.struEtherNet[0].struDVRIPMask.sIpV4).trim();
            String gateway = new String(netCfg.struGatewayIpAddr.sIpV4).trim();
            logger.info("查询到到海康设备sn:{}, mac:{}, 子网掩码:{}, 网关:{}", sn, mac, subnetMask, gateway);
    }

2、设置网络相关参数

 private void setNetCfg(int iUserID, ControllerInfo controllerInfo) {
        HCNetSDK.NET_DVR_NETCFG_V30 m_strNetCfg = new HCNetSDK.NET_DVR_NETCFG_V30();
        m_strNetCfg.dwSize = m_strNetCfg.size();
        m_strNetCfg.write();
        Pointer pStrDeviceCfg = m_strNetCfg.getPointer();
        IntByReference pInt = new IntByReference(0);
        boolean b_GetCfg = hcNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_NETCFG_V30,
                0Xffffffff, pStrDeviceCfg, m_strNetCfg.dwSize, pInt);
        if (b_GetCfg == false) {
            logger.error("获取参数失败  错误码:" + hcNetSDK.NET_DVR_GetLastError());
        }
        m_strNetCfg.read();

        m_strNetCfg.struEtherNet[0].struDVRIP.sIpV4 = controllerInfo.getIp().getBytes(); // ip
        m_strNetCfg.struEtherNet[0].wDVRPort = controllerInfo.getPort().shortValue(); // port
        m_strNetCfg.struEtherNet[0].struDVRIPMask.sIpV4 = controllerInfo.getSubnetMask().getBytes(); // 子网掩码
        m_strNetCfg.struGatewayIpAddr.sIpV4 = controllerInfo.getGateway().getBytes(); // 网关

        m_strNetCfg.write();
        boolean b_SetCameraParam = hcNetSDK.NET_DVR_SetDVRConfig(iUserID, HCNetSDK.NET_DVR_SET_NETCFG_V30, 1, pStrDeviceCfg, m_strNetCfg.size());
        if (!b_SetCameraParam) {
            logger.error("设置前端参数失败,错误码:" + hcNetSDK.NET_DVR_GetLastError());
        }
        m_strNetCfg.read();
        logger.info("成功设置海康设备ip:[{}]", controllerInfo.getIp());
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值