大华门禁SDK二次开发(一)

 项目中需要能够查询门禁信号和控制门禁设备,因此需要基于大华门禁SDK进行二次开发,开发语言C#。门禁开发中遇到了一些问题,经过与大华技术的邮件沟通也一一解决。做这个开发的时候,发现网上的资料比较少,想着把自己遇到的问题整理下来,让有需要的人尽量少走一些弯路。

1. 门禁状态查询/控制API

  • 门禁控制API
BOOL CLIENT_ControlDevice(   LLONG                                   lLoginID ,   CtrlType                                type ,   void                                    *param ,   int                                     waittime = 1000 );
  • 门禁查询API
BOOL CLIENT_QueryDevState(   LLONG  lLoginID,   int    nType,   char   *pBuf,   int    nBufLen,   int    *pRetLen,   int    waittime=1000  );   nType `NET_DOOR_STATUS_INFO`   //门禁状态信息 struct NET_DOOR_STATUS_INFO{ DWORD                         dwSize; int                           nChannel; EM_NET_DOOR_STATUS_TYPE       emStateType; };   //门禁状态类型 typedef enum __EM_NET_DOOR_STATUS_TYPE{    EM_NET_DOOR_STATUS_UNKNOWN,                     EM_NET_DOOR_STATUS_OPEN,                     // 打开   EM_NET_DOOR_STATUS_CLOSE,                    // 关闭   EM_NET_DOOR_STATUS_BREAK,                    // 门异常打开};

2. 邮件列表

2.1 基于官网SDK开发

从大华官网下载SDK开发包,找到上面的两个接口后,就开始操刀基于官方C# demo开发。设备登陆代码是官方demo提供的,但是门禁设备状态查询总是返回false。跟大华技术支持联系后,提供了新的门禁开发demo。

发件人: DK 发送时间: 20179279:51 收件人: 大华SDK支持 主题: 项目名称-netsdk门禁-CLIENT_QueryDevState接口C#调用失败     大华大神你好,  我是项目名称平台开发人员,在进行门禁调试时遇到下面的问题,烦请帮忙诊断一下:  1、C#引入接口  [DllImport("dhnetsdk.dll")] public static extern bool CLIENT_QueryDevState(IntPtr lLoginID,int nType,IntPtr pBuf,int nBufLen,ref int pRetLen,int waittime);  2、C#调用  public static bool QueryDevState(IntPtr lLoginID,ref NET_DOOR_STATUS_INFO statusInfo)         {             var pRetLen = 0;             var nBufLen = Marshal.SizeOf(typeof(NET_DOOR_STATUS_INFO));              IntPtr pBuf = IntPtr.Zero;             pBuf = Marshal.AllocHGlobal(nBufLen);             Marshal.StructureToPtr(statusInfo, pBuf, true);              var result = OriginalSDK.CLIENT_QueryDevState(lLoginID, 0x0159, pBuf, nBufLen, ref pRetLen,1000);             NetGetLastError(result);             return result;         }  3、调用结果:  result = false  error是一个不存在的错误编码,一个很大的负数     **科技集团股份有限公司              我打农村来        187********         2017-09-27  ============================================================================================                发件人: 大华SDK支持  发送时间: 2017927日(星期三) 上午10:12  收件人: DK  主题: 答复: 项目名称-netsdk门禁-CLIENT_QueryDevState接口C#调用失败     请参照附件Demo进行门禁开发、封装引用。  有问题反馈  设备上下文环境:设备型号、固件版本  问题描述:截图、操作步骤    
                    
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信