### 知识点详解 #### 一、爱迪尔门锁系统接口函数(SDK) 爱迪尔门锁系统的SDK提供了一系列API供开发者调用,以实现对门锁系统的控制和管理。该SDK适用于V6.51及以上版本的门锁系统。 #### 二、关键函数解析 ##### 1. 初始化 (Init) **函数原型:** ```c int Init(int software, char* server, char* username, int port, int Encoder, int TMEncoder); ``` **参数说明:** - `software` [in]: 指定门锁系统类型。 - `server` [in]: 字符指针,指定门锁系统数据库安装的服务器(SQL Server)名称。 - `username` [in]: 字符指针,用于记录操作人员的用户名。 - `port` [in]: 串口号,支持的串口号包括0(USB)、1(COM1)、2(COM2)、3(COM3)、4(COM4)等。 - `Encoder` [in]: 发行机类型,包括0(手动发行机)、1(自动发行机)、2(MSR206磁卡)。 - `TMEncoder` [in]: TM发行机类型,支持1(DS9097E)、5(DS9097U)。 **返回值:** 函数执行结果状态码,具体含义请参考注释1。 ##### 2. 结束工作期 (EndSession) **函数原型:** ```c int EndSession(void); ``` **参数:** 无 **返回值:** 函数执行结果状态码,具体含义请参考注释1。 ##### 3. 更改操作员 (ChangeUser) **函数原型:** ```c void ChangeUser(char* username); ``` **参数:** - `username` [in]: 字符指针,用于记录操作人员的用户名。 **返回值:** 无 ##### 4. 发行新客人卡 (NewKey) **函数原型:** ```c int NewKey(char* room, char* gate, char* stime, char* guestname, char* guestid, int overflag, long* cardno, char* track1, char* track2); ``` **参数说明:** - `room` [in]: 房号,6字节字符串,必须是门锁系统设置的房号。 - `gate` [in]: 公共通道,字符串参数。“00”表示按默认授权通道,“99”表示授权所有公共通道,其他为指定通道代码,例如“010203”表示授权01、02、03三个通道。 - `stime` [in]: 起止时间,24字节字符串,格式为yyyymmddhhnnyyyymmddhhnn,例如“200012311230200101011230”表示2000年12月31日12时30分到2001年1月1日12时30分。 - `guestname` [in]: 客人姓名,最大30字节,可以为NULL。 - `guestid` [in]: 客人ID,最大30字节,可以为NULL。 - `overflag` [in]: 整形,是否覆盖当前卡上的内容。1-覆盖,当前卡不是新卡则自动注销(必须是客人卡)。0-不覆盖,不是新卡则返回。磁卡(手动发行机)忽略此参数,直接覆盖,不自动注销。 - `cardno` [out]: 长整形指针,接收卡号(发卡后分配的唯一卡代码)。可以为NULL。 - `track1` [in]: 字符串指针,磁卡第1轨数据,如不写此轨可为NULL。 - `track2` [in]: 字符串指针,磁卡第2轨数据,如不写此轨可为NULL。 **返回值:** 函数执行结果状态码,具体含义请参考注释1。 **功能描述:** 该功能注销当前在用的客人卡,并发行新的客人卡。新发行的客人卡开门后原来的客人卡将不能使用。 ##### 5. “复制”客人卡 (DupKey) **函数原型:** ```c int DupKey(char* room, char* gate, char* stime, char* guestname, char* guestid, int overflag, long* cardno, char* track1, char* track2); ``` **参数说明:** - `room` [in]: 房号,6字节字符串,必须是门锁系统设置的房号。 - `gate` [in]: 公共通道,字符串参数。“00”表示按默认授权通道,“99”表示授权所有公共通道,其他为指定通道代码,例如“010203”表示授权01、02、03三个通道。 - `stime` [in]: 起止时间,24字节字符串,格式为yyyymmddhhnnyyyymmddhhnn,例如“200012311230200101011230”表示2000年12月31日12时30分到2001年1月1日12时30分。起始时间与在用客人卡相同。 - `guestname` [in]: 客人姓名,最大30字节,可以为NULL。 - `guestid` [in]: 客人ID,最大30字节,可以为NULL。 - `overflag` [in]: 整形,是否覆盖当前卡上的内容。1-覆盖,当前卡不是新卡则自动注销(必须是客人卡)。0-不覆盖,不是新卡则返回。磁卡(手动发行机)忽略此参数,直接覆盖,不自动注销。 - `cardno` [out]: 长整形指针,接收卡号(发卡后分配的唯一卡代码)。可以为NULL。 - `track1` [in]: 字符串指针,磁卡第1轨数据,如不写此轨可为NULL。 - `track2` [in]: 字符串指针,磁卡第2轨数据,如不写此轨可为NULL。 **返回值:** 函数执行结果状态码,具体含义请参考注释1。 **功能描述:** 新发行的客人卡与原来的客人卡可同时使用,且起始时间相同。 #### 三、总结 爱迪尔门锁系统的SDK提供了丰富的接口,用于实现门锁的初始化、结束工作期、更改操作员、发行新客人卡以及复制客人卡等功能。通过这些接口,开发人员可以根据实际需求定制门禁系统的行为,提高安全性及用户体验。例如,通过`Init`函数进行系统初始化配置,通过`NewKey`函数发行新客人卡并确保原有卡失效,而`DupKey`函数则允许同时使用多个客人卡。这些功能对于酒店、公寓、办公楼等场所的门禁管理具有重要意义。此外,通过对发行机类型、串口号、通道授权等参数的灵活配置,可以满足不同场景下的需求。
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助