You are on page 1of 4

门锁 DLL 接口说明

门锁系统接口函数(SDK)说明
( LockDLL.DLL 函数说明)
特别说明: 此接口函数用于在酒店软件中二次开发后直接发行客人卡使用 ,门锁的管理

一些管理卡都在门锁软件中处理和发行,接口函数在调用过程中需要从门锁软
件的数据库中提取信息,同时要将发卡信息同步至门锁软件中,所以需与门锁软
件的数据库连接.如果您使用的是单机版的门锁软件,则酒店软件必须与门锁软
件在同一台电脑上使用。需要多台电脑使用的,请使用网络版的门锁软件。具
体使用区别请参照函数说明(StartSession)

一、函数说明

1、StartSession
函数功能:初始化,连接门锁软件数据库。在进行别的函数调用前,必须先执行此函数。
函数原形:
DWORD StartSession (LONG LockCard,LPSTR DBServer,LPSTR LogUser,
LONG DBFlag);
函数参数:
LockCard [in]:指定门锁软件,参见注 2。
DBFlag [in]:门锁软件数据库类型,0-单机版(ACCESS) 1-网络版(MSSQL)
DBServer [in]:指定门锁系统数据库安装的位置。
ACCESS : 门 锁 软 件 安 装 目 录 , 如 ‘ C:\Program Files\XXX\MHA
V8.0’。
MSSQL:SQL Server 所在服务器名。
LogUser [in]:用户名,用于门锁系统记录操作人员。
返回值:见注 1。

2、 EndSession
函数功能:结束工作期。
函数原形:
DWORD EndSession (void);
函数参数:无
返回值:见注 1。

3、 ChangeLogUser
函数功能:更改操作员。
函数原形:
void ChangeLogUser (LPSTR LogUser);
函数参数:
LogUser [in]:用户名,用于门锁系统记录操作人员。
返回值:无。

1
2011 年 7 月
门锁 DLL 接口说明

4、 NewKey
函数功能:发行新客人卡,此功能注销当前在用的客人卡,新发行的客人卡开门后原来
的客人卡将不能使用。
函数原形:
int NewKey(LONG Port ,LPSTR RoomNo,LPSTR CommonDoor,LPSTR LiftFloor,
LPSTR TimeStr,LPSTR Holder,LPSTR IDNo, LONG breakfast, LONG overflag,
LONG *CardNo);
函数参数:
Port [in]:发行机端口,参见注 4。
RoomNo [in]:房号,必须是门锁系统设置的房号。
CommonDoor [in]:通道,指定通道代码,授权多个通道是用逗号分割。
例如:“001,002,003”表示授权 001、002、003 三个通道。可以为 NULL。
LiftFloor [in]:电梯楼层,指定楼层代码,授权多个楼层是用逗号分割。
例如:“0001,0002,0003”表示授权 0001、0002、0003 三个楼层。可以为
NULL。
TimeStr [in]:起止时间,格式 yyyymmddhhnnyyyymmddhhnn,
例 如: “ 200801011230200801051230”表 示 2008 年 1 月 1 日 12 时 30 分到
2008
年 1 月 5 日 12 时 30 分。
Holder [in]:持卡人姓名,可以为 NULL。
IDNo [in]:持卡人证件号码,可以为 NULL。
breakfast [in]: 整形, 早餐标志. 1 – 有, 0 – 无.
Overfla [in]:整形,是否覆盖当前卡上的内容。
1-覆盖,当前卡不是新卡则自动注销(必须是客人卡)。
0-不覆盖,不是新卡则返回。
Cardno [out]:长整形指针,接收卡号(发卡后分配的唯一卡代码)。可以为
NULL。

返回值:见注 1。

5、 DupKey
函数功能: “复制”客人卡,新发行的客人卡与原来的客人卡可同时使用,且起始时

相同。
函数原形:
int DupKey(LONG Port ,LPSTR RoomNo,LPSTR CommonDoor,LPSTR LiftFloor,
LPSTR TimeStr,LPSTR Holder,LPSTR IDNo, LONG breakfast, LONG overflag,
LONG *CardNo);
函数参数:
参见 NewKey 函数说明。
返回值:见注 1。

6、ReadKeyCard
函数功能:读卡。
2
2011 年 7 月
门锁 DLL 接口说明

函数原形:
int ReadKeyCard (LONG Port ,LPSTR RoomNo, LPSTR CommonDoor,
LPSTR LiftFloor,LPSTR TimeStr, LPSTR Holder, LPSTR IDNo,LONG *CardNo,
LONG *Status, LONG *Breakfast);
函数参数:
Port [in]:发行机端口,参见注 4。
RoomNo [out]:接收返回的房号,可以为 NULL。
CommonDoor [out]:接收返回的授权公共通道,可以为 NULL。
LiftFloor [out]:接收返回的授权电梯楼层,可以为 NULL。
TimeStr[out]:接收卡有效期限,可以为 NULL。
Holder [out]:接收返回的持卡人姓名,可以为 NULL。
IDNo [out]:接收返回的持卡人证件号码,可以为 NULL。
CardNo [out]:长整形指针,接收返回的卡号,可以为 NULL。
Status [out]:整形指针,接收返回的卡状态,参见注 3。可以为 NULL。
breakfast [out]: 整形指针, 接收早餐标志. 可以为 NULL。
返回值:见注 1。

7、 EraseKeyCard
函数功能:注销卡,同时更新数据库数据。
函数原形:
int EraseKeyCard (LONG Port,LONG CardNo);
函数参数:
Port [in]:发行机端口,参见注 4。
CardNo [in]:卡号,可以为 0。当此参数为 0 时:自动读取卡号并注销。
返回值:见注 1。

8、 CheckOut
函数功能:退房,仅更新数据库数据,不注销卡。
函数原形:
int CheckOut (LPSTR RoomNo, LONG CardNo);
函数参数:
RoomNo [in]:房号。
CardNo [in]:卡号,可以为 0。当此参数为 0 时,将客房所有客人卡标记为退房。
返回值:见注 1。

9、 ReadCardID
函数功能:读取卡 ID。
函数原形:
int ReadCardID ((LONG Port, LONG *CardID);
函数参数:
Port [in]:发行机端口,参见注 4。
CardID [out]:长整形指针,接收返回的卡 ID 号,可以为 NULL。

返回值:见注 1。
3
2011 年 7 月
门锁 DLL 接口说明

注:一 、函数返回值:
0x00000000-操作成功

0x8010000C-没有检测到 IC 卡 0x80100069-卡被移去
0x81100002-卡已损坏 0x8010002E-找不到发卡机

0xFFFF0001-卡型错误 0xFFFF0002-卡被更换
0xFFFF0003-空白卡 0xFFFF0004-非法卡
0xFFFF0005-集团卡 0xFFFF0006-集团空白卡
0xFFFF0007-不是空白卡 0xFFFF0008-打开串口错误
0xFFFF0009-串口通信错误 0xFFFF0011-密码错误

0xFFFF1001-没有调用初始化函数 0xFFFF1002-指定的客人不存在
0xFFFF1003-卡信息不存在 0xFFFF1004-不是客人卡
0xFFFF1005-错误的房号 0xFFFF1006-错误的通道

0xFFFF3000-执行 SQL 错误 0xFFFF3001-连接 SQL 错误


0xFFFF3002-系统参数不存在 0xFFFF3003-错误的用户序列号

0xFFFF4000-接口授权码不存在 0xFFFF4001-错误的接口授权码

二、门锁系统常量:
Mifare 卡门锁系统-1 Temic 卡门锁系统-2

三、卡状态说明:
1-正常使用 3-正常注销
4-遗失注销 5-损毁注销
6-自动注销 7-发卡注销
8-退房注销 9-注销卡注销

四、端口说明: 0-USB, 1-COM1,2-COM2,3-COM3,4-COM4 等。注:通过 USB 虚拟串


口的以 COM 传入,请通过设备管理器查询所虚拟的串口号。

五、调用方式:遵循 Windows API 调用标准,即 stdcall。

六、参数说明:[in]为输入参数,[out]为输出参数。

七、示例说明:
开发时请参照接口函数示例,示例使用的前提是已经安装了门锁软件。
1、 DELPHI 示例:‘..\DelphiSample\DLLSample.dpr’
2、 C#示例:‘..\C#Sample\LockDllSample.csproj’

4
2011 年 7 月

You might also like