-
天固门锁接口适用于Delphi7.0
资源介绍
*******************************************************************************
*
*
* 摘 要: 本程序主要是通过调用MF1_AnLock2009.dll动态连接库函数,进行读写卡操作
*
*
*
* 创建日期: 2006年07月19日
* 修改日期: 2009年02月17日
*
*
********************************************************************************
//**********************************************************
//*************************************
//*******************
//MF1卡通用接口
//*******************
//*************************************
//**********************************************************
//******************************
* 返回值说明 : 整型(Integer)
* -1 ---- 串口打开失败
* -2 ---- 无效卡片
* -3 ---- 软件未注册
* 0 ---- 写卡失败
* 1 ---- 成功
//******************************
function UGA_ModiPSW ( CommID :Integer; MF_Area :Byte; OldPSW, NewPSW :PChar ) : Integer;
功能:
修改分区密码
参数:
CommID 端口号(1-4)
MF_Area MF1区号(0-15)
OldPSW 旧密码(最大长度6字节)
NewPSW 新密码(最大长度6字节)
function UGA_ReadCard( CommID :Integer; MF_Area :Byte; CurrPSW, CardCode, CardInfo :PChar ) : Integer;
功能:
读卡片信息
参数:
CommID 端口号(1-4)
MF_Area MF1区号(0-15)
CurrPSW 当前密码(最大长度6字节)
CardCode 读出的卡号(固定8字节)
CardInfo 读出的卡片信息(16字节 * 3扇区 = 48字节)
function UGA_WriteCard( CommID :Integer; MF_Area :Byte; CurrPSW, CardInfo :PChar ) :Integer;
功能:
读卡片信息
参数:
CommID 端口号(1-4)
MF_Area MF1区号(0-15)
CurrPSW 当前密码(最大长度6字节)
CardInfo 写入的卡片信息(16字节 * 3扇区 = 48字节)
//**********************************************************
//*************************************
//*******************
//MF1卡门锁专用接口
//*******************
//*************************************
//**********************************************************
**************************************************************
* 函数功能 : 读取卡片信息
* 参数说明 : CommID(整型) ---- 端口编号
* CardType(整型) ---- 卡片类型(0是T5557卡,1是MF1卡)
* MF1_Area(整型) ---- MF1卡片分区号(取值范围2-15)
* 返回值说明 : 通用字符串型(PChar)
* (1)未成功读取时
* -1 ---- 串口打开失败
* -2 ---- 卡片无效
* 0 ---- 读数据失败
* 1 ---- 分区设置成功但不能正常读取数据(只在MF1卡时出现,可能由于该分区未初始化)
* (2)成功读取时
* 卡号,卡类型 ---- 读取非宾客卡时的返回值,以英文逗号分隔
* 卡号,卡类型,楼栋号,楼层号,房间号,套间号,开始时间,结束时间,开特权门标记 ---- 读取宾客卡时的返回值,以英文逗号分隔
* 卡类型说明:
* 0 ---- 空卡 , 1 ---- 新宾客卡 , 2 ---- 复制宾客卡 , 3 ---- 后备宾客卡 ,
* 4 ---- 宾客终止卡 , 5 ---- 反宾客终止卡 , 6 ---- 挂失卡 , 7 ---- 取消挂失卡 ,
* 8 ---- 楼栋卡 , 9 ---- 楼层卡 , 10 ---- 授权卡 , 11 ---- 锁体设置卡 ,
* 12 ---- 特权设置卡 , 13 ---- 房间设置卡 , 14 ---- 总卡 , 15 ---- 应急卡 ,
* 16 ---- 时钟卡 , 17 ---- 锁体信息卡 , 18 ---- 房间清除卡 , 19 ---- 初始化数量卡 ,
* 20 ---- 开锁数据卡
* 开特权门标记说明:
* 1 ---- 有特权 , 0 ---- 无特权
************************ Delphi 调用 *************************
* function ReadCardInfo(CommID : Integer; CardType : Integer; MF1_Area : Byte ) : PChar;
external 'MF1_AnLock2009.dll'; stdcall;
**************************************************************
*
************************* VB 调用 ****************************
* Private Declare Function ReadCardInfo Lib "MF1_AnLock2009.dll" _
* (ByVal CommID As Long, ByVal CardType As Long, Optional ByVal MF1_Area As Long ) As String
*
**************************************************************
*
************************* PB 调用 ****************************
* Function String ReadCardInfo( long CommID , long CardType , long MF1_Area ) Library "MF1_AnLock2009.dll";
**************************************************************
例1: 假设端口号为3,当卡片为T5557卡时以ReadCardInfo(3,0,15)调用
当卡片为MF1卡,分区号为2时以ReadCardInfo(3,1,2)调用
例2: 当串口打开失败时,函数返回值: -1
例3: 当读取卡号为234D833A78的总卡时,函数返回值: 234D833A78,14
例4: 当读取卡号为234D833A78、楼栋号为2、楼层号为10、房间号为10101、套间号为3、开始时间为2007-10-10 12:20:23、
结束时间为2007-10-11 12:00:08的可开特权门的新宾客卡时,
函数返回值:234D833A78,1,2,10,10101,3,2007-10-10 12:20:00,2007-10-11 12:00:00,1
**************************************************************
**************************************************************
* 函数功能 : 写宾客卡信息
* 参数说明 :
* CommID(整型) ---- 端口编号
* CardType(整型) ---- 卡片类型(0是T5557卡,1是MF1卡)
* OldKeyEnd(整型) ---- 制新宾客卡设置1,BAKKey参数设置0;制复制宾客卡设置0,BAKKey参数设置0;
* BAKKey(整型) ---- 制后备宾客卡设置1,OldKeyEnd参数设置为0
* TSRight(整型) ---- 可开特权门设置1,不允许开特权门设置0
* FloorCode(长整型) ---- 楼栋号(1-255)
* FloorLayCode(长整型) ---- 楼层号(1-255)
* RoomCode(长整型) ---- 房间号(1-65535)
* iSubRoomCode(长整型) ---- 套间号(1-255),当没有套间房时请设置为255
* StartDateTime(通用字符串型) ---- 宾客卡起始时间(起始日期时间),20字符长度,格式'yyyy-mm-dd hh:nn:ss'
* EndDateTime(通用字符串型) ---- 宾客卡有效时间(截止日期时间),20字符长度,格式'yyyy-mm-dd hh:nn:ss'
* MF1_Area(整型) ---- MF1卡片分区号(取值范围2-15)
* 返回值说明 : 整型(Integer)
* -1 ---- 串口打开失败
* -2 ---- 无效卡片
* -3 ---- 软件未注册
* 0 ---- 写卡失败
* 1 ---- 成功
********************** Delphi 调用 ***************************
* function WriteGuestCard( CommID : Integer; CardType : Integer;
* OldKeyEnd, BAKKey, TSRight :Integer;
* FloorCode, FloorLayCode, RoomCode, iSubRoomCode :Cardinal;
* StartDateTime :PChar; EndDateTime :PChar; MF1_Area :Byte ) :Integer;
* external 'MF1_AnLock2009.dll'; stdcall;
**************************************************************
*
************************* VB 调用 ****************************
* Private Declare Function WriteGuestCard Lib "MF1_AnLock2009.dll" _
* (ByVal CommID As Long, ByVal CardType As Long, _
* ByVal OldKeyEnd As Long, ByVal BAKKey As Long, ByVal TSRight As Long, _
* ByVal FloorCode As Long, ByVal FloorLayCode As Long, ByVal RoomCode As Long, ByVal iSubRoomCode As Long, _
* ByVal StartDateTime As String, ByVal EndDateTime As String, Optional ByVal MF1_Area As Long ) As Long
**************************************************************
*
************************* PB 调用 ****************************
* Function long WriteGuestCard( long CommID, long CardType,
* long OldKeyEnd, long BAKKey, long TSRight,
* ulong FloorCode, ulong FloorLayCode, ulong RoomCode, ulong iSubRoomCode,
* REF string StartDateTime, REF string EndDateTime, long MF1_Area) Library "MF1_AnLock2009.dll";
**************************************************************
以下例子中都以端口编号设置3、楼栋号设置2、楼层号设置10、房间号设置10101、套间号设置3、起始时间设置2007-10-10 12:00:00、有效时间设置2007-10-11 12:00:00为例
在MF1卡的调用中假设分区号为2
例1: 写可开特权门的新宾客卡
T5557调用方式: WriteGuestCard(3,0,1,0,1,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,15)
MF1调用方式 : WriteGuestCard(3,1,1,0,1,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,2)
例2: 写不可开特权门的复制宾客卡
T5557调用方式: WriteGuestCard(3,0,0,0,0,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,15)
MF1调用方式 : WriteGuestCard(3,1,0,0,0,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,2)
例3: 写可开特权门的后备宾客卡
T5557调用方式: WriteGuestCard(3,0,0,1,1,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,15)
MF1调用方式 : WriteGuestCard(3,1,0,1,1,2,10,10101,3,2007-10-10 12:00:00,2007-10-11 12:00:00,2)
**************************************************************
* 函数功能 : 回收卡片
* 参数说明 : CommID(整型) ---- 端口编号
* CardType(整型) ---- 卡片类型(0是T5557卡,1是MF1卡)
* MF1_Area(整型) ---- MF1卡片分区号(取值范围2-15)
* 返回值说明 : 整型(Integer)
* -1 ---- 串口打开失败
* 0 ---- 写卡失败
* 1 ---- 成功
********************** Delphi 调用 ***************************
* function ClearCardInfo ( CommID : Integer; CardType : Integer; MF1_Area :Byte ) : Integer;
* external 'MF1_AnLock2009.dll'; stdcall;
**************************************************************
*
************************* VB 调用 ****************************
* Private Declare Function ClearCardInfo Lib "MF1_AnLock2009.dll" _
* (ByVal CommID As Long, ByVal CardType As Long, Optional ByVal MF1_Area As Long ) As Long
**************************************************************
*
************************* PB 调用 ****************************
* Function long ClearCardInfo ( long CommID, long CardType, long MF1_Area) Library "MF1_AnLock2009.dll";
**************************************************************
例1: 假设端口号为3,当卡片为T5557卡时以ClearCardInfo(3,0,15)调用
当卡片为MF1卡,分区号为2时以ClearCardInfo(3,1,2)调用
- 上一篇: 洛必达法则失效的种种情况及处理方法.doc
- 下一篇: 洛必达法则