门禁获取门禁记录-公用部分说明

发布时间 2023-05-26 17:31:22作者: 摧残一生

公用部分

  1. NET_DVR_Init(初始化)

    bool CHCNetSDK.NET_DVR_Init() 初始化海康组件

    返回值:

    true:初始化成功

    false:失败,失败原因:

    1. 海康SDK分32位和64位,项目中目标平台一定要与SDK一致(项目右键->属性->生成->目标平台)
    2. DllImport的HCNetSDK.dll路径不对,如果使用绝对路径也不对时,路径不要带中文再试试。
  2. NET_DVR_Login_V40(获得登录句柄)

    1. 引用方法
    [DllImport(@"..\..\runtime\hk\HCNetSDK.dll")]
    public static extern int NET_DVR_Login_V40(ref NET_DVR_USER_LOGIN_INFO pLoginInfo, ref NET_DVR_DEVICEINFO_V40 lpDeviceInfo);
    
    1. 参数说明

      参数 说明
      pLoginInfo 登录时需要的信息:
      sDeviceAddress:设备地址
      wPort:端口号
      sUserName:用户名
      sPassword:密码
      lpDeviceInfo 声明即可,一般不用赋值,如果赋值请参看海康SDK说明
      返回值 登录句柄,当返回值不等于-1时即为登录成功,该句柄后期会一直使用
    2. 代码举例

      //声明两个需要的变量
      CHCNetSDK.NET_DVR_USER_LOGIN_INFO struLoginInfo = new CHCNetSDK.NET_DVR_USER_LOGIN_INFO();
      CHCNetSDK.NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = new CHCNetSDK.NET_DVR_DEVICEINFO_V40();
      // new一个byte数组,应该可以忽略
      struDeviceInfoV40.struDeviceV30.sSerialNumber = new byte[CHCNetSDK.SERIALNO_LEN];
      // 设置门禁的ip地址
      struLoginInfo.sDeviceAddress = System.Text.Encoding.Default.GetBytes("门禁ip地址".Trim().PadRight(129, '\0').ToCharArray());
      // 设置门禁的端口号,默认为8000
      ushort.TryParse(端口号, out struLoginInfo.wPort);
      // 设置门禁的用户名,默认为admin
      struLoginInfo.sUserName = System.Text.Encoding.Default.GetBytes("admin".Trim().PadRight(64, '\0').ToCharArray());
      // 设置门禁的密码
      struLoginInfo.sPassword = System.Text.Encoding.Default.GetBytes("密码".Trim().PadRight(64, '\0').ToCharArray());
      // 获得登录句柄
      int lUserID = CHCNetSDK.NET_DVR_Login_V40(ref struLoginInfo, ref struDeviceInfoV40);
      
  3. NET_DVR_Logout(注销)

    bool NET_DVR_Logout(int iUserID)注销当前账户,iUserId即为登录句柄

  4. NET_DVR_Cleanup(结束)

    bool NET_DVR_Cleanup()释放SDK资源