最近要用到使用海康威视摄像头的SDK接口进行国标协议接入配置信息的获取和设置,特此记录。

参考文档

设备网络SDK使用手册。

具体的SDK手册海康威视官网可以免费下载。

java 海康sdk clientDemo 海康sdk协议接口_c#


java 海康sdk clientDemo 海康sdk协议接口_获取参数_02

使用SDK接口名

java 海康sdk clientDemo 海康sdk协议接口_c#_03

java 海康sdk clientDemo 海康sdk协议接口_Click_04

具体实现

/// <summary>
        /// 获取国标参数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GetCfg_Click(object sender, EventArgs e)
        { 
            //GBT28181协议接入配置结构体
            CHCNetSDK.NET_DVR_GBT28181_ACCESS_CFG cfg;
            uint dwReturn = 0;
            //获取结构体大小
            uint nSize = (uint)Marshal.SizeOf(cfg);
            //设置指针空间大小
            IntPtr ptrGbCfg = Marshal.AllocHGlobal((int)nSize);
            bool result = CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_GBT28181_ACCESS_CFG, channel, ptrGbCfg, nSize, ref dwReturn);
            if (result)
            {
                //指针转换为结构体
                cfg= (CHCNetSDK.NET_DVR_GBT28181_ACCESS_CFG)Marshal.PtrToStructure(ptrGbCfg, typeof(CHCNetSDK.NET_DVR_GBT28181_ACCESS_CFG));
            }
            else
            {
                uint iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                MessageBox.Show("获取参数失败!错误码为:" + iLastErr);
            }
            Marshal.FreeHGlobal(ptrGbCfg);//释放指针 
        }