酒店门锁管理系统接口说明.docx
《酒店门锁管理系统接口说明.docx》由会员分享,可在线阅读,更多相关《酒店门锁管理系统接口说明.docx(26页珍藏版)》请在冰点文库上搜索。
![酒店门锁管理系统接口说明.docx](https://file1.bingdoc.com/fileroot1/2023-7/12/faab4752-aaf8-40d3-94bb-6183a0d6ecbb/faab4752-aaf8-40d3-94bb-6183a0d6ecbb1.gif)
酒店门锁管理系统接口说明
深圳市同创新佳科技有限公司技术文件
LS-PMS酒店门锁管理系统
集成发卡接口说明书
HotelLocksManagementSystem
PMSIntegrateKeycardsEncode
SDKUserGuide
版本号:
3.6
版本号
发布日期
制定
审核
批准
V1.0
2009-03-31
V2.0
2010-06-26
V3.0
2011-05-12
V3.6
2011-06-28
目录
1目的和范围4
2系统组成4
WindowsAPI接口与TCP/IP接口.4
系统结构4
3WindowsAPI接口4
接口特点以及接口使用条件4
WindowsAPI接口文件说明5
WindowsAPI接口函数库说明5
4WindowsAPI接口函数说明5
Init–接口初始化5
IssueCard–发行客人卡6
ReadCard–读取客人卡7
CancelCard–注销客人卡7
OpenPort–初始化USB7
ClosePort–关闭USB7
GetDLLInfo–获取版本信息7
WindowsAPI接口示例使用说明8
5WindowsAPI接口返回值说明11
6.TCP/IP接口11
6.1接口特点以及接口使用条件11
6.2TCP/IP接口文件如下表:
11
7TCP/IP数据通讯协议12
7.2信息格式12
7.3命令详解14
前言
本说明书由深圳市同创新佳科技有限公司提出。
本说明书主要起草单位:
深圳市同创新佳科技有限公司技术部。
本说明书主要起草人:
颜炜东、凌彬。
本说明书于2009年3月25日首次制定。
修订记录
版本号
修订内容
日期
批准
1.0
首次制定
2009-3-25
2.0
新增示例应用说明,接口适用版本
2010-06-26
3.0
修改初始化的成功失败判断,新增rf是否兼容以前版本,增加获取动态库版本信息,改善usb发卡机的动态库读写卡效率.
2011-05-12
3.6
修改将数据连结改成只在初始化设备的时候建立
新增MF获取卡号函数
新增了读写卡是否与数据库同步操作
(默认为同步,不需要同步的在card.ini文件中[sys]添加isdatabase=0)
2011-06-28
LS-PMS酒店门锁管理系统集成发卡接口说明书
HotelLocksManagementSystemPMSIntegrationKeycardsEncodeSDKUserGuide
1目的和范围
该接口主要为酒店管理软件与我公司的读写卡设备提供标准的接口,以便酒店管理软件可以通过该接口对我公司设备进行操作。
2系统组成
WindowsAPI接口与TCP/IP接口.
系统结构
WindowsAPI接口系统结构:
TCP/IP接口系统结构:
:
3WindowsAPI接口
接口特点以及接口使用条件
该接口具有单机与网络2种接口,其特点是不管是单机还是网络接口,每个接口都必须安装一台发卡机,只能在安装了发卡机的电脑上调用ICDLL动态库完成制卡操作。
正常使用该接口必须满足如下要求:
3.1.1首先安装创佳门锁公司提供的门锁软件,正常运行软件,发行各种设置卡(包括:
授权卡、时钟卡、房号卡),使用设置卡完成门锁设置(如果有多台电脑发卡,则每台电脑都必须安装我们门锁软件并注册,然后用主电脑上的授权卡恢复授权,详细操作请参考门锁设置说明)。
3.1.2使用前先调用初始化函数初始化软件使用环境即调用init函数
3.1.3使用windows98/2000/XP操作系统.
3.1.4动态库ICDLL.dll
3.1.5读写卡不需要与数据库同步的在card.ini文件中[sys]添加isdatabase=0
WindowsAPI接口文件说明
WindowsAPI接口文件如表(使用前先将相应的动态库复制到示例当中替换掉示例中的ICDLL.dll动态库):
文件名
文件说明
Demo.exe
接口示例可执行文件
..\ICDLL\Ver4.2\ICDLL.dll
接口函数库文件,IC门锁,适用门锁管理软件IC-NK2.0以上,发卡机型号RW-IC-32C。
..\RFDLL\USB接口\ICDLL.dll
接口函数库文件,RF门锁,适用门锁管理软件LS-RF-CN-ALL-ALLVer8.0以上,发卡机型号RW-RF-34U
..\RFDLL\ver8.1\ICDLL.dll
接口函数库文件,RF门锁,适用门锁管理软件LS-RF-CN-ALL-ALLVer8.0以上,发卡机型号RW-RF-32C,.
..\MFDLL\Ver3.3\ICDLL.dll
接口函数库文件,MF门锁,适用门锁管理软件LS-MF-CN-U-WLVer3.0以上,发卡机型号RW-M1-32C
附加说明:
..\表示Demo.exe所在目录
WindowsAPI接口函数库说明
ICDLL.dll接口函数库包括4个函数,用于控制发卡机发行客人卡及读取客人卡。
函数调用采用stdcall方式,PMS集成应遵循该WindowsAPI标准。
函数名
函数说明
Init
接口初始化
IssueCard
发行客人卡
ReadCard
读取客人卡
CancelCard
注销客人卡(功能卡无法用该函数注销)
OpenPort
初始化发卡设备并建立数据连接,酒店管理软件在登陆其主程序时调用,如没有调用此函数则不能进行读写注销等操作,此函数无需重复调用,调用一次后就可以多次进行读写卡错作,但读写卡前必须调用一次。
ClosePort
释放设备并断开数据连接,酒店管理软件在退出其主程序时调用。
GetDLLInfo
获取动态库版本信息
beep
发卡机响声
Get_CardNum
MF获取卡号函数,只有MF卡片有效
注意事项,如果PMS有做换房功能,换房时入住时间应该改为当前时间传入,否则将会出现房门打不开情况,如果是6.33以前版本软件做接口则如果同一个房间有2个客人同时入住则,两张客人卡的发卡的开始时间必须一致.客人卡如不能开门则请注意门锁上的响声,2声代表时间不正确,5声代表房号不正确。
4WindowsAPI接口函数说明
Init–接口初始化
函数说明
用于初始化环境变量。
根据安装的门锁管理软件使用数据库设定版本类型;设定门锁软件的安装目录。
PMS每次运行后,调用其它接口函数前须调用一次,若门锁管理软件安装目录和类型没有发生变化则只需调用一次。
语法–Delphi
functionInit(SoftType:
integer;SoftPath:
PChar):
Boolean;
语法–C#
publicstaticexternBooleaninit(intSoftType,stringSoftPath);
语法-PB
Functionbooleaninit(integerSoftType,refstringSoftPath)
语法-VB
FunctioninitLib"ICDLL.dll"(ByValSoftTypeAsInteger,ByValSoftPathAsString)AsBoolean
参数
[in]整型数,安装的门锁管理软件类型版本。
=0;ACESS数据库类型版本;
=1;SQL2000数据库类型版本。
[in]字符指针,指向门锁管理软件安装路径字符串。
返回值
布尔值TrueorFalse
示例delphi
init(0,pchar(’C:
\ProgramFiles\RFsystem\RFsystem’))
示例c#
init(0,@”C:
\ProgramFiles\RFsystem\RFsystem”)
示例pb
init(0,”C:
\ProgramFiles\RFsystem\RFsystem”)
示例vb
init(0,”C:
\ProgramFiles\RFsystem\RFsystem”)
附加说明
此路径为锁管软件的安装路径
OpenPort-初始化发卡设备(初始化完之后调用)
函数说明
初始化发卡设备,酒店管理软件在登陆其主程序时调用,如没有调用此函数则不能进行读写注销等操作,此函数无需重复调用,调用一次后就可以多次进行读写卡错作,但读写卡前必须调用一次。
语法–Delphi
functionOpenPort():
Integer;
语法–C#
publicstaticexternintOpenPort();
语法–PB
functionintOpenPort()library“icdll.dll”
语法–VB
PublicDeclareFunctionOpenPortLib“ICDLL.dll”()AsInteger
参数
返回值
=0,成功,非0失败
示例delphi
OpenPort()
示例c#
OpenPort()
示例pb
OpenPort()
示例vb
OpenPort()
IssueCard–发行客人卡
函数说明
用于发行客人卡。
发行成功后,更新数据库,记录相应客人信息、发卡操作员信息。
返回发行结果。
语法–Delphi
functionIssueCard(RoomNo,GuestInfo:
ShortString,OpInfo:
pchar,Loss:
Integer;CheckIn,CheckOut:
pchar):
Integer;
语法–c#
publicstaticexternintIssueCard(stringRoomNo,stringGuestInfo,stringOpInfo,intLoss,DateTimeCheckIn,DateTimeCheckOut);
语法–PB
functionlongIssueCard(refstringRoomNo,refstringGuestInfo,refstringOpInfo,intLoss,refstringCheckIn,refstringCheckOut)Library"icdll.dll"
语法–VB
PublicDeclareFunctionIssueCardLib"ICDLL.dll"(ByValRoomNoAsString,ByValGuestInfoAsString,ByValOpInfoAsString,ByValLossAsInteger,ByValCheckInAsString,ByValCheckOutAsString)AsInteger
参数
[in]字符指,房间号,长度不大于20。
注意须与门锁管理软件设定房间号码一致,且不能为空。
[in]字符指,客人信息,可以为空。
[in]字符指,操作员信息,可以为空。
[in]整数型,指示是否需要设定挂失。
设定挂失,该卡首次开门后之前发行的客人卡即失效。
一般新客人入住发行首张客人卡须设定挂失;复制发行已入住客人卡不得设定挂失,除非已入住客人主动挂失后重发客人卡。
=0;不设定挂失;
=1;设定挂失。
[in]字符指针,入住时间。
格式yymmddhhmm
[in]字符指针,退房时间。
格式yymmddhhmm
返回值
=0,1,2,3,4,9,10,11,15,85,86,87,89
示例delphi
IssueCard(pchar(’8101’),pchar(’张三’),pchar(’李四’),0,pchar(‘0904011011’),pchar(‘0904021011’))
示例c#
IssueCard(”8101”,”张三”,”李四”,0,2009-1-18:
00:
00,2009-1-212:
00)
示例pb
IssueCard(”8101”,”张三”,”李四”,0,“0901010800”,“0901021200”)
示例vb
IssueCard(”8101”,”张三”,”李四”,0,“0901010800”,“0901021200”)
附加说明
1、房号为锁管软件中房号设置中设置的房号,可在主界面中或者房号设置界面中找到。
2、酒店第一个入住的客人发行的是新卡
3、酒店发行同住的客人时发行的是加卡(复制卡)
4、酒店发行新卡时,传入的入住时间为第一个客人的入住时间,挂失标志位必须为1。
5、酒店发行加卡(复制卡)时,传入的入住时间为在住的上一个客人的新卡的入住时间,挂失标志必须为0。
6、当酒店有客人在住,但是客人把卡片弄丢了,要补卡,此时酒店必须发行的是新卡。
7、补卡完成后再次发行同住卡片则必须发行加卡(复制卡)。
8、卡片要被挂失2张卡之间的入住时间必须相差大于1分钟,而且时间较晚的卡必须带有挂失标志。
9、如果酒店使用退房卡,则锁管软件中的系统设置中的提前发卡必须设置为不提前(具体设置请参考使用手册中的系统设置部分)。
ReadCard–读取客人卡
函数说明
用于读取客人卡信息。
读取成功后,读取卡片上信息并查询数据库对应卡片发卡时记录的客人信息、发卡操作员信息。
返回读取结果。
语法–Delphi
functionReadCard(RoomNo,GuestInfo,OpInfo,CheckIn,CheckOut,CardNo:
pchar):
Integer;
语法–C#
publicstaticexternintReadCard(StringBuilderRoomNo,StringBuilderGuestInfo,StringBuilderOpInfo,StringBuilderCheckIn,StringBuilderCheckOut,StringBuilderCardNo);
语法–PB
FunctionlongReadCard(refstringRoomNo,refstringGuestInfo,refstringOpInfo,refstringCheckIn,refstringCheckOut,refstringCardNo)Library"ICDLL.dll"
语法–VB
PublicDeclareFunctionReadCardLib"ICDLL.dll"(ByValRoomNoAsString,ByValGuestInfoAsString,ByValOpInfoAsString,ByValCheckInAsString,ByValCheckOutAsString,ByValCardNoAsString)AsInteger
参数
[Out]字符指针,房间号。
[Out]字符指针,客人信息。
[Out]字符指针,操作员信息。
[Out]字符指针,入住时间。
[Out]字符指针,退房时间。
[Out]字符指针,卡号(MF为物理卡号,,RF为流水号,IC为我厂出厂时的一个固定的序号)
返回值
=0,1,2,3,4,7,9,10,15,85,86,87,89
示例delphi
ReadCard(RoomNo,GuestInfo,OpInfo,CheckIn,CheckOut,CardNo)
示例c#
ReadCard(RoomNo,GuestInfo,OpInfo,CheckIn,CheckOut,CardNo)
示例pb
ReadCard(RoomNo,GuestInfo,OpInfo,CheckIn,CheckOut,CardNo)
示例vb
ReadCard(RoomNo,GuestInfo,OpInfo,CheckIn,CheckOut,CardNo)
CancelCard–注销客人卡
函数说明
注销客人卡,使卡片回复新卡状态,并更新数据库。
该函数不能注销功能卡
语法–Delphi
functionCancelCard(OpInfo:
pchar):
Integer;
语法–C#
publicstaticexternintCancelCard(stringOpInfo);
语法–PB
functionintCancelCard(refstringOpInfo)library“icdll.dll”
语法–VB
PublicDeclareFunctionCancelCardLib“ICDLL.dll”(ByValOpInfoAsString)AsInteger
参数
[in]字符指针,操作员信息。
返回值
=0,1,2,3,4,7,9,10,15,85,86,87,88,89
示例delphi
CancelCard(pchar(’张三’))
示例c#
CancelCard(“张三”)
示例pb
CancelCard(“张三”)
示例vb
CancelCard(“张三”)
ClosePort-释放发卡设备
函数说明
释放发卡设备,酒店管理软件在退出其主程序时调用。
语法–Delphi
functionClosePort():
Integer;
语法–C#
publicstaticexternintClosePort();
语法–PB
functionintClosePort()library“icdll.dll”
语法–VB
PublicDeclareFunctionClosePortLib“ICDLL.dll”()AsInteger
参数
返回值
=0,成功,非0失败
示例delphi
ClosePort()
示例c#
ClosePort()
示例pb
ClosePort()
示例vb
ClosePort()
beep–发卡机响声
函数说明
发卡机响声。
语法–Delphi
procedurebeep;
语法–C#
publicstaticexternbeep();
语法–PB
procedurebeep()library“icdll.dll”
语法–VB
PublicDeclareprocedurebeepLib“ICDLL.dll”()
示例delphi
beep()
示例c#
beep()
示例pb
beep()
示例vb
beep()
GetDLLInfo–获取动态库版本信息
函数说明
获取动态库版本信息
语法–Delphi
functionGetDLLInfo(DLLINFO:
pchar):
Integer;
语法–C#
publicstaticexternintGetDLLInfo(StringBuilderDLLINFO);
语法–PB
functionintGetDLLInfo(refstringDLLINFO)library“icdll.dll”
语法–VB
PublicDeclareFunctionGetDLLInfoLib“ICDLL.dll”(ByValDLLINFOAsString)AsInteger
参数
[OUT]字符指针,版本信息。
返回值
=0,1
示例delphi
GetDLLInfo(DLLINFO)
示例c#
GetDLLInfo(DLLINFO)
示例pb
CancelCard(DLLINFO)
示例vb
CancelCard(DLLINFO)
Get_CardNumMF获取卡号函数
函数说明
MF获取卡号函数
语法–Delphi
functionGet_CardNum(cardnum:
pchar):
byte;
语法–C#
publicstaticexternintGet_CardNum(StringBuildercardnum);
语法–PB
functionintGet_CardNum(refstringcardnum)library“icdll.dll”
语法–VB
PublicDeclareFunctionGet_CardNumLib“ICDLL.dll”(ByValcardnumAsstring)AsInteger
参数
[OUT]字符指针型,卡号。
返回值
=0,1,4
示例delphi
Get_CardNum(cardnum)
示例c#
Get_CardNum(cardnum)
示例pb
Get_CardNum(cardnum)
示例vb
Get_CardNum(cardnum)
WindowsAPI接口示例使用说明
打开软件接口说明示例文件,
根据安装的锁管软件找到相应的动态库文件,选择软件类型,如果锁管软件为单机版则软件类型选择ACESS,如果为网络类型则选择SQL2000:
在桌面的锁管软件快捷方式上右键-属性单击查找目标按钮。
将地址栏中的地址复制到示例当中的软件安装路径:
然后单击初始化按钮进行初始化,初始化完成之后即可对卡片进行读写注销等操作
5WindowsAPI接口返回值说明
返回值
返回值说明及故障原因
排错方法
0
操作成功
1
无卡。
查看卡片位置是否放好
2
非法卡。
人工注销后,重新发行使用。
3
授权错误。
必须返回厂或代理商处重新初始化
4
串口通信错误。
发卡机串口连接中断;串口被其它程序占用;连续多次调用函数时未插入延时。
检查发卡机连接;更改门锁管理软件串口或其它程序串口设置;连续调用函数时插入500毫秒以上延时。
7
新卡。
读卡或注销时返回的一个值,表示该卡无须注销
9
非客人卡。
使用门锁管理软件进行注销卡操作。
(接口只提供客人卡操作,非客人卡则会提示此信息)
10
调用错误。
检查调用函数