门锁接口系统是一种用于连接和控制智能门锁与外部设备或系统的软件平台。它支持多种通讯协议,并提供统一的应用程序编程接口(API),方便开发者集成到智能家居控制系统中,实现远程开门、密码管理等功能。
### 门锁系统接口知识点详解
#### 一、概述
门锁系统接口主要涉及一系列用于控制和管理电子门锁的动态链接库(DLL),这些库提供了多种功能,包括但不限于初始化系统、发行卡片、读取卡片信息以及注销卡片等操作。本段落将详细介绍几个关键函数及其应用场景。
#### 二、适用范围
- **门锁接口**: 包括`Lock3200.DLL`、`Lock3200K.DLL`、`Lock4200.DLL`、`Lock4200D.DLL`、 `Lock5200.DLL` 、 `Lock6200.DLL` 、 `Lock7200.DLL` 、 `Lock7200D.DLL` 、 `Lock9200.DLL` 和 `Lock9200T.DLL`
- **门锁系统版本**: V5.1及以上,V6.5以下版本。
#### 三、关键函数及说明
##### 1. `Init`
**功能**: 初始化门锁系统。
**函数原型**:
```c
int Init(char* server, int port, int Encoder, int TMEncoder);
```
**参数**
- `server`: 指定门锁系统数据库所在的服务器名称;
- `port`: 串口号,通常用于连接门锁设备;
- `Encoder`: 发行机类型,0表示手动发行机,1表示自动发行机;
- `TMEncoder`: TM发行机类型,1表示DS9097E,5 表示 DS9097U。
**返回值**: 初始化结果代码。
##### 2. `EndSession`
**功能**: 结束当前工作会话。
**函数原型**
```c
int EndSession(void);
```
**参数**:无
**返回值**: 返回结束会话的结果代码。
##### 3. `IssueCard`
**功能**: 发行客人卡。
**函数原型**
```c
int IssueCard(char* room, char* gate, char* stime, char* guestname, char* guestid, int overflag,long *cardno,char *track1 ,char *track2);
```
**参数**
- `room`: 房号,6字节字符串;
- `gate`: 公共通道授权信息,字符串类型;
- `stime`: 起止时间,格式为`yyyymmddhhnnyyyymmddhhnn`, 24 字符串。
- `guestname`: 客人姓名, 最大30字节;
- `guestid`: 客人ID,最大30字节;
- `overflag`: 是否覆盖当前卡上的内容,1表示覆盖,0表示不覆盖;
- `cardno`: 卡号输出指针。
- `track1` : 磁卡第一轨道数据指针。
- `track2` : 磁卡第二轨道数据指针。
**返回值**: 发行卡的结果代码。
##### 4. `ReadCard`
**功能**: 读取卡片信息
**函数原型**
```c
int ReadCard(char* room, char *gate ,char* stime,char* guestname ,char* guestid , char* track1 ,char *track2,long *cardno,int *st);
```
**参数**
- `room`: 房号输出指针;
- `gate`: 授权公共通道输出指针;
- `stime` : 起止时间输出指针。
- `guestname` : 客人姓名输出指针。
- `guestid` : 客人ID 输出指针;
- `track1` : 磁卡第一轨道数据输出指针;
- `track2`:磁卡第二轨道数据输出指针;
- `cardno`: 卡号输出指针。
- `st`: 卡状态输出指针,值为 1 表示正常使用,3表示正常注销,4表示遗失注销 ,5表示损毁注销 ,6表示自动注销。
**返回值**:读取卡片信息的结果代码。
##### 5. `EraseCard`
**功能**: 注销卡片,并更新数据库。
**函数原型**
```c
int EraseCard(long cardno);
```
**参数**
- `cardno`: 卡号
**返回值**: 注销卡结果代码。
##### 6. `CheckOut`
**功能**: 退房操作,仅更新数据库信息不注销卡片。
**函数原型**
```c
int CheckOut(char* room, long cardno);
```
**参数**
- `room`: 房号;
- `cardno`: 卡号。
**返回值**: 结果代码。