1、动态库函数使用说明一、 动态库说明(1) 该动态库接口所适用的卡类型:MF1S50卡。(2) “btlock73L.dll”这个文件是调用读写卡函数的动态库。(3) “zymsr232.dll”这个文件是调用RW-21读卡器的驱动,“zymurusb.dll、EasyD12_500.dll”这两个文件是调用RW-33读卡器的驱动,“btmf1232.dll”这个文件是调用RW-26D读卡器的驱动,“acr120u.dll、AcsReader.dll”这两个文件是调用RW-41读卡器的驱动。(4) 酒店密码(HotelPwd)由酒店提供。(5) 房间号(DoorID)由酒店提供, 门锁软件有房间
2、号与房间名称的对应表。(6) 宾客流水号(1-4294967296)可按时间生成或者按累加1算法生成,具有顶替功能,即宾客流水卡号大的宾客卡顶替宾客流水号小的宾客卡。(7) 宾客序号(1-255),即表示同住宾客卡时同住宾客的流水号相同,序号不同。(8) 更改酒店密码时,密码一定要6位字符串。(9) 有效时间的值一定要10位,年、月、日、时、分。(10) MF1S50卡扇区默认值为0,当酒店所使用的扇区己作更改时,请填写相应的扇区号。(11) 每一个使用接口发卡点都必须配合一个“硬件狗”才可以运行,即是有多少个发卡点就需要多少个“硬件狗”。二、“btlock73L.dll”库函数说明(语言:D
3、elPhi7)(1) function Write_Guest_Card(Port, ReaderType, SectorNo: Byte; HotelPwd: PChar; ClientID: Longword; CardNo, GuestSN, GuestIdx: Integer; DoorID, SuitDoor, PubDoor, BeginTime, EndTime: PChar): Integer;说明:写宾客卡函数。参数说明: Port:通讯口号1、2、3、4分别代表串口COM1、COM2、COM3、COM4(范围 1-4);当使用的读卡器为USB设备时,通迅口号不生效。 Rea
4、derType:MF读卡器类型,1:RW-21;2:RW-33;3:RW-26B;4:RW-41 SectorNo:MF1S50卡使用扇区号(范围0-15) HotelPwd:酒店密码 (6位字符串,字符串内容为ASCII码字符) ClientID:客户对应的客户标识(范围0 -4,294,967,295)CardNo:宾客卡号(范围 1-4294967296)GuestSN:宾客流水号(范围 1-4294967296)GuestIdx:宾客序号(范围 1-255)DoorID:房间号 (6位字符串)SuitDoor:套房内门选号,即宾客卡能够开启的多个套房内门的代号串,长度为4,默认值为“0
5、000”。宾客卡最多能够同时开启16个套房内门及1个套房大门。如果门锁系统中存在两个或以上前6位门锁代号相同的房间,则该系统设置了套房。如果门锁系统没有设置套房或者不需要开启套房内门(宾客卡一定能开启套房外门),则可以填写默认值“0000”。算法:从右至左按位判断是否能够开启对应序号的套房内门,如果能够开启则置1,否则置0。最后再合并成十六进制的字符串。举例:宾客卡可以开启01、02、07、08号套房内门,则置位二进制字符串为:“0000 0000 1100 0011”,转化为十六进制字符串为:“00C3”。 PubDoor:公共门选号,即宾客卡能够开启的多种公共门的代号串,长度为8,默认值为
6、“00000000”。宾客卡最多能同时开启32种公共门。如果系统没有设置公共门或者不需要开启公共门,则可以填写默认值“00000000”。从右至左按位判断是否能够开启对应序号的公共门,如果能够开启则置1,否则置0。最后再合并成十六进制的字符串。宾客卡可以开启01、08、15号公共门,则置位二进制字符串为:“0000 0000 0000 0000 0100 0000 1000 0001”,转化为十六进制字符串为:“00004081”。 BeginTime:有效起始时间,长度为10,时间格式“年年月月日日时时分分”。 EndTime:有效终止时间,长度为10,时间格式“年年月月日日时时分分”。 (
7、2) function Read_Guest_Card(Port, ReaderType, SectorNo: Byte; HotelPwd: PChar; ClientID: Longword; var CardNo, GuestSN, GuestIdx: Integer; DoorID, SuitDoor, PubDoor, BeginTime, EndTime: PChar): Integer说明:读宾客卡函数。参数说明: Port:通讯口号1、2、3、4分别代表串口COM1、COM2、COM3、COM4(范围 1-4);当使用的读卡器为USB设备时,通迅口号不生效。 ReaderTyp
8、e:MF读卡器类型,1:RW-21;2:RW-33;3:RW-26B;4:RW-41SectorNo:MF1S50卡使用扇区号(范围0-15) HotelPwd:酒店密码 (6位字符串,字符串内容为ASCII码字符) ClientID:客户对应的客户标识(范围0 -4,294,967,295)CardNo:宾客卡号(范围 1-4294967296)GuestSN:宾客流水号(范围 1-4294967296)GuestIdx:宾客序号(范围 1-255)DoorID:房间号 (6位字符串)SuitDoor:套房内门选号,即宾客卡能够开启的多个套房内门的代号串,长度为4,默认值为“0000”。宾客
9、卡最多能够同时开启16个套房内门及1个套房大门。如果门锁系统中存在两个或以上前6位门锁代号相同的房间,则该系统设置了套房。如果门锁系统没有设置套房或者不需要开启套房内门(宾客卡一定能开启套房外门),则可以填写默认值“0000”。算法:从右至左按位判断是否能够开启对应序号的套房内门,如果能够开启则置1,否则置0。最后再合并成十六进制的字符串。举例:宾客卡可以开启01、02、07、08号套房内门,则置位二进制字符串为:“0000 0000 1100 0011”,转化为十六进制字符串为:“00C3”。 PubDoor:公共门选号,即宾客卡能够开启的多种公共门的代号串,长度为8,默认值为“000000
10、00”。宾客卡最多能同时开启32种公共门。如果系统没有设置公共门或者不需要开启公共门,则可以填写默认值“00000000”。从右至左按位判断是否能够开启对应序号的公共门,如果能够开启则置1,否则置0。最后再合并成十六进制的字符串。宾客卡可以开启01、08、15号公共门,则置位二进制字符串为:“0000 0000 0000 0000 0100 0000 1000 0001”,转化为十六进制字符串为:“00004081”。 BeginTime:有效起始时间,长度为10,时间格式“年年月月日日时时分分”。 EndTime:有效终止时间,长度为10,时间格式“年年月月日日时时分分”。 (3) func
11、tion Bin_Hex(Dest: PChar; Source: PChar; Len: Integer): Integer说明:二进制字符串转十六进制字符串。参数说明:Dest:目的十六进制字符串。Source:原二进制字符串。Len:原二进制字符串长度。参数返回:0为转换成功,-1为不转成功。 (4) function Hex_Bin(Dest: PChar; Source: PChar; Len: Integer): Integer说明:十六进制字符串转二进制字符串。参数说明:Dest:目的二进制字符串。Source:原十六进制字符串。Len:原十六进制字符串长度。参数返回:0为转换成
12、功,-1为不转成功。 (5) function SerialNo_FromNow():Integer;说明:通过本地电脑的时间换算出4个字节的整型流水号,可以用此作为宾客卡号和宾客流水号的值。参数返回: 0 当前电脑时间的整型流水号。(6) function Reader_Alarm (Port, ReaderType, AlarmCount: Byte):Integer;说明:读卡器蜂鸣函数。参数说明:Port:通讯口号1、2、3、4分别代表串口COM1、COM2、COM3、COM4(范围 1-4);当使用的读卡器为USB设备时,通迅口号不生效。 ReaderType:MF读卡器类型,1:R
13、W-21;2:RW-33;3:RW-26B;4:RW-41AlarmCount:读卡器蜂鸣次数(范围 1-255)(7) function Write_Guest_Lift(Port, ReaderType, SectorNo: Byte; HotelPwd: PChar; ClientID: Longword; CardNo, BeginAddr, EndAddr, MaxLiftAddr: Integer; BeginTime, EndTime, LiftData: PChar): Integer;说明:写电梯控制信息函数。参数说明: Port:通讯口号1、2、3、4分别代表串口COM1、
14、COM2、COM3、COM4(范围 1-4);当使用的读卡器为USB设备时,通迅口号不生效。 ReaderType:MF读卡器类型,1:RW-21;2:RW-33;3:RW-26B;4:RW-41 SectorNo:MF1S50卡使用扇区号,该扇区号为宾客卡所使用的扇区号(范围0-15) HotelPwd:酒店密码 (6位字符串,字符串内容为ASCII码字符) ClientID:客户对应的客户标识(范围0 -4,294,967,295)CardNo:卡号(范围 1-4294967296)BeginAddr:电梯所用的卡上起始地址,具体值请查看门锁软件EndAddr:电梯所用的卡上结束地址,具体
15、值请查看门锁软件MaxLiftAddr:所有电梯使用最大的结束地址,具体值请查看门锁软件 BeginTime:有效起始时间,长度为10,时间格式“年年月月日日时时分分”。 EndTime:有效终止时间,长度为10,时间格式“年年月月日日时时分分”。LiftData:电梯控制信息,即宾客卡可使用的电梯控制串码(只对一台电梯),长度为电梯可控制楼层数,算法:从左至右按位判断是否能够开启对应楼层号,如果能够开启则置1,否则置0。最后再合并成十六进制的字符串。举例:宾客卡可以开启01、02、07、08号楼层,该电梯可控制十六层,则置位二进制字符串为:“1100 0011 0000 0000”,转化为十
16、六进制字符串为:“C300”。(8) function Read_Guest_Lift(Port, ReaderType, SectorNo: Byte; HotelPwd: PChar; BeginAddr, EndAddr: Integer; ClientID: Longword; var CardNo: Integer; BeginTime, EndTime, LiftData: PChar): Integer;说明:读电梯控制信息函数。参数说明: Port:通讯口号1、2、3、4分别代表串口COM1、COM2、COM3、COM4(范围 1-4);当使用的读卡器为USB设备时,通迅口号不
17、生效。 ReaderType:MF读卡器类型,1:RW-21;2:RW-33;3:RW-26B;4:RW-41 SectorNo:MF1S50卡使用扇区号,该扇区号为宾客卡所使用的扇区号(范围0-15) HotelPwd:酒店密码 (6位字符串,字符串内容为ASCII码字符) BeginAddr:电梯所用的卡上起始地址,具体值请查看门锁软件EndAddr:电梯所用的卡上结束地址,具体值请查看门锁软件ClientID:客户对应的客户标识(范围0 -4,294,967,295)CardNo:卡号(范围 1-4294967296) BeginTime:有效起始时间,长度为10,时间格式“年年月月日日
18、时时分分”。 EndTime:有效终止时间,长度为10,时间格式“年年月月日日时时分分”。LiftData:电梯控制信息,即宾客卡可使用的电梯控制串码(只对一台电梯),长度为电梯可控制楼层数,算法:从左至右按位判断是否能够开启对应楼层号,如果能够开启则置1,否则置0。最后再合并成十六进制的字符串。举例:宾客卡可以开启01、02、07、08号楼层,该电梯可控制十六层,则置位二进制字符串为:“1100 0011 0000 0000”,转化为十六进制字符串为:“C300”。(9) function Write_Guest_PowerSwitch(Port, ReaderType, SectorNo:
19、 Byte; PowerSwitchPwd: PChar; CardNo, GuestSex: Integer; DoorID,GuestName, BeginTime, EndTime: PChar; PowerSwitchType: Byte): Integer;说明:写取电开关信息函数。参数说明: Port:通讯口号1、2、3、4分别代表串口COM1、COM2、COM3、COM4(范围 1-4);当使用的读卡器为USB设备时,通迅口号不生效。 ReaderType:MF读卡器类型,1:RW-21;2:RW-33;3:RW-26B;4:RW-41 SectorNo:MF1S50卡使用扇区号
20、(范围0-15) PowerSwitchPwd:取电开关密码 (12位字符串,字符串内容为十六进制码字符) CardNo:宾客卡号(范围 1-4294967296)GuestSex:宾客性别,0:男,1:女DoorID:房间号 (6位字符串)GuestName:宾客姓名(8位字符串) BeginTime:有效起始时间,长度为12,时间格式“年年月月日日时时分分秒秒”。 EndTime:有效终止时间,长度为12,时间格式“年年月月日日时时分分秒秒”。 PowerSwitchType:取电开关类型,1:8601-1M-57BA;2:8601-6M-57BA;(10) function Read_G
21、uest_PowerSwitch(Port, ReaderType, SectorNo: Byte; PowerSwitchPwd: PChar; var CardNo, GuestSex: Integer; DoorID, GuestName, BeginTime, EndTime: PChar; PowerSwitchType: Byte): Integer说明:读取电开关信息函数。参数说明: Port:通讯口号1、2、3、4分别代表串口COM1、COM2、COM3、COM4(范围 1-4);当使用的读卡器为USB设备时,通迅口号不生效。 ReaderType:MF读卡器类型,1:RW-2
22、1;2:RW-33;3:RW-26B;4:RW-41 SectorNo:MF1S50卡使用扇区号(范围0-15) PowerSwitchPwd:取电开关密码 (12位字符串,字符串内容为十六进制码字符) CardNo:宾客卡号(范围 1-4294967296)GuestSex:宾客性别,0:男,1:女DoorID:房间号 (6位字符串)GuestName:宾客姓名(8位字符串) BeginTime:有效起始时间,长度为12,时间格式“年年月月日日时时分分秒秒”。 EndTime:有效终止时间,长度为12,时间格式“年年月月日日时时分分秒秒”。PowerSwitchType:取电开关类型,1:8
23、601-1M-57BA;2:8601-6M-57BA;(11) function Write_Data(Port, ReaderType, SectorNo: Byte; SectorPwd: PChar;Data: PChar): Integer;说明:写其它扇区数据函数。参数说明: Port:通讯口号1、2、3、4分别代表串口COM1、COM2、COM3、COM4(范围 1-4);当使用的读卡器为USB设备时,通迅口号不生效。 ReaderType:MF读卡器类型,1:致远MF串口读卡器;2:致远MF USB读卡器;3:必达MF串口读卡器;4:ACS120USB读卡器 SectorNo:M
24、F1S50卡使用扇区号(范围1-15) SectorPwd:扇区密码 (12位字符串,字符串内容为16进制数字符串) Data:写入数据,长度为32,数据为16进制数字符串。(12) function Read_Data(Port, ReaderType, SectorNo: Byte; SectorPwd: PChar;Data: PChar): Integer;说明:读其它扇区数据函数。参数说明: Port:通讯口号1、2、3、4分别代表串口COM1、COM2、COM3、COM4(范围 1-4);当使用的读卡器为USB设备时,通迅口号不生效。 ReaderType:MF读卡器类型,1:致远
25、MF串口读卡器;2:致远MF USB读卡器;3:必达MF串口读卡器;4:ACS120USB读卡器SectorNo:MF1S50卡使用扇区号(范围1-15) SectorPwd:扇区密码 (12位字符串,字符串内容为16进制数字符串) Data:读出数据,长度为32,数据为16进制数字符串。三、函数错误类型代码0:表示成功。255:表示不成功。1:打开串口错误。2:无卡错误。3:卡类型错误。4:读卡错误。5:酒店密码错误。6:写卡错误。 7:客户标识非法。 8:注册过期。9:找不到加密狗。 四、其它说明1、酒店密码(HotelPwd)由酒店提供。2、房间号(DoorID)由酒店提供, 门锁软件有
26、房间号与房间名称的对应表。3、宾客流水号(1-4294967296)可按时间生成或者按累加1算法生成,具有顶替功能即宾客流水卡号大的宾客卡顶替宾客流水号小的宾客卡;如果宾客流水号是使用按时间生成算法时,可调用函数“SerialNo_FromNow”来自动将电脑当前时钟换算成出4个字节的整型流水号。 4、宾客序号(1-255),即表示同住宾客卡时同住宾客的流水号相同,序号不同。 5、更改酒店密码时,密码一定要6位字符串。 6、有效时间的值一定要10位,年、月、日、时、分。 7、MF1S50卡扇区默认值为0,当酒店所使用的扇区己作更改时,请填写相应的扇区号。8、写取电开关信息函数和读取电开关信息函
27、数中的取电开关类型包含两种,分别是:8601-1M-57BA、8601-6M-57BA;若取电开关为公司型号的取电开关,分别是:8602-1M-57BA、8602-1M-57BB,则无需调用以上两个函数,直接调用写宾客卡信息函数和读宾客卡信息函数即可。五、操作流程 1、写卡流程该步骤为写客人卡函数。Write_Guest_Card该步骤为写电梯信息,该步骤可选。Write_Guest_Lift该步骤为写取电开关信息,该步骤可选。Write_Guest_ PowerSwitch该步骤为写其它扇区数据信息,该步骤可选。Write_DataReader_Alarm该步骤为写完卡后读卡器蜂鸣。 2、读卡流程该步骤为读客人卡函数。Read_Guest_Card该步骤为读电梯信息,该步骤可选。Read_Guest_Lift该步骤为读取电开关信息,该步骤可选。Read _Guest_ PowerSwitchRead_Data该步骤为读其它扇区数据信息,该步骤可选。该步骤为读完卡后读卡器蜂鸣。Reader_Alarm