项目中需要能够查询门禁信号和控制门禁设备,因此需要基于大华门禁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
发送时间: 2017年9月27日 9:51
收件人: 大华SDK支持
主题: 项目名称-netsdk门禁-CLIENT_QueryDevState接口C#调用失败
大华大神你好,
我是项目名称平台开发人员,在进行门禁调试时遇到下面的问题,烦请帮忙诊断一下:
1、C#引入接口
[DllImport("dhnetsdk.dll")]
public static