您现在的位置:首页>>资料下载>>二次开发工具>> 2106-2302动态库
2106-2302动态库
2106-2302动态库下载

2106-2302动态库说明

                                   KQCONNECT DLL 用户使用手册

 

Version 1.0

Author: Sunshine.

 

Introduction

此动态库是以超伦考勤机CL21-03CL21-05CL21-06 IDICLEGIC)射频卡为对象, 实现PC机与考勤机之间的通信,以及资料传送的驱动程序。 它必须使用PC机上的一个串行通讯口, 通讯的baudrate 9600bps

几个术语的约定:1,物理卡号:是指ID卡中固有的卡号,它是在ID卡出厂时产生。一般是不能变动的。2,逻辑卡号:是指用户映射到某张ID卡的一个数字符号,它约定为6位,当它对应于物理卡号发到考勤机中后即发生作用。(注:一个物理卡号允许对应几个逻辑卡号。但只有第一个是有效的)3,发卡名单表:它是存放在考勤机中的某一片特定存储区中的物理卡号与逻辑卡号的映射表。4,考勤记录表:它是存放在考勤机中某一特定存储区中的员工考勤打卡的记录表。

 

                    SetPort

                    DestoryPort

                    ReadCardNum 函数

                    ChangeDate 函数

                    ChangeTime 函数

                    ClearFlag 函数

                    ClearName 函数

                    ClearNameList 函数

                    ClearRecord 函数

                    CardSendToMachine

                    RepairAddress 函数

                    SetClock 函数

                    GatherData 函数

                    附录1-1 VB中的引用

                    附录1-2本动态库应协议和kq6.8协议区别

 

 

DLL提供的接口函数及其说明:

1 Bool  SetPort (PortNum  As  Integer)

    功能: 用来打开一个串行端口, 在做所有的操作之前, 请调用此函数来设置并打开一个有效的串行端口,否则将使用动态库初始打开的串行端口。(此函数也可用来设置动态库初始端口。)

 

参数说明:

PortNum 是一个正整数, 表示用户想打开的串行端口号, 一般为1 2 如果用户扩展了PC 机的串行端口,也可以使用其它, 但是一般小于10

 

Return 如果函数打开端口成功, 将返回true 否则返回false

 

Note:在调用此函数时,请选择一个有效的端口号, 没被其它设备占用且存在的端口), 如果端口无效,则返回false 打开端口成功, 则返回true

 

Example

Dim BoolFlag as Boolean

Boolflag=Object.SetPort(2):

 

特别提示:Object表示你在引用该动态库时建立的对象。以下各例中的object皆同于此。

 

2 Bool DestoryPort( ).

功能: 用来释放一个被应用程序打开的端口。如果在一个应用程序中有多个模块在调用时要打开一个已被打开的端口时,应先释放端口,然后再打开,否则该模块将无法使用此端口。

 

参数说明:无参数。

 

RETURN 如果释放端口成功, 将返回TRUE 否则返回FALSE

 

EXAMPLE:

Dim BoolFlag as boolean

BoolFlag=Object.DestroyPort()

If boolflag then Object.SetPort(1)

……

String  ReadCardNum(Addr as integer)

功能:用来读取考勤机中最后一次打卡的物理卡号。

 

参数说明:

Addr是一个正整数,表示考勤机的地址(使用者可以在打开考勤机电源时得知,它是个“1—99”之间的数字。)如果地址不正确,将无法进行通讯。特别提示:在以下函数的说明中,如果没有特别说明,Addr表示意义均相同。

 

RETUEN:如果成功,将返回串16位的数据串,否则返回空串。

 

NOTE:在返回的16位数据串中:1-2位是用十六进制表示的考勤机地址,它转换后应该等于ADDR(可以参考GatherData函数中的举例),3-4位是“075-6位是“04或“09(它代表清除读卡标志位,“04表示正常的卡号的标志,“09表示已被清除的标志。使用者可以根据它来处理该数据串)7-16位是读到的卡号。

 

Example

Dim Tempstr as string

Dim Addr as integer

Addr=18

Tempstr=Object.ReadCardNum(Addr)

 

4 Bool ChangeDate(Addr as integer,Iyear as integer,IMonth as integer,Iday as integer)

功能:用来下传日期给考勤机

 

参数说明:

Iyear表示下传的年份,Imonth表示下传的月份,Iday表示下传的日期

 

RETURN:如果下传日期成功,将返回TRUE 否则返回FALSE

 

Example:

Dim Addr as integer

Dim Iyear as integer,Imonth as integer,iday as integer

Dim BooleanFlag as Boolean

BooleanFlag=Object.ChangeDate(Addr,Iyear,Imonth,Iday)

 

5Bool ChangeTime(Addr as integer,IHour as integer,IMinute as integer,ISecend as integer)

功能:用来下传时间给考勤机

 

参数说明:

Ihour 表示下传的小时,Iminute 表示下传的分钟,Isecend 表示下传的秒。

 

RETURN:如果下传时间成功,则返回TURE,否则返回 FLASE

 

Example:

Dim Addr as integer

Dim Ihour as integer,Iminute as integer Isecend as integer

Dim BooleanFlage as Boolean

BooleanFlag=Object ChangeTime(Addr,Ihour,Iminute,Isecend)

 

6ClearFlag(Addr as Integer)

   功能:用来清除读卡标志位,在使用它来清除标志位,再用READCARDNUM去读物理卡号时,其返回值的5-6位将是“09。(在某些要求实时采集物理卡号的系统中,将突显它的作用。)

 

参数说明:

Addr 意义同第三个函数中Addr

 

RETURN:如果成功返回TURE,否则返回FALSE

 

Example:

Dim Addr as integer

Dim BooleanFlag as Boolean

BooleanFlag=Object.ClearFlag(addr)

 

7Bool ClearName(Addr as Integer,TagNum as String)

   功能:用来从考勤机的发卡名单中清除某张卡的逻辑卡号。

 

参数说明:

Addr 意义同第三个函数;TagNum 是一个“6位”的用户自定义的逻辑卡号,它传给函数时是以串的形式传递的。

 

RETURN :如果成功将返回TURE,否则将返回FALSE

 

Example:

Dim Addr as integer

Dim Num as String ,BooleanFlag as Boolean

BooleanFlag=Object.ClearName(addr,Num)

 

8Bool ClearNameList(Addr)

   功能:此函数用来清除考勤机中的发卡名单表。但值得特别注意的是调用它时将同时全部清除掉考勤记录表中的全部数据。所以此函数要小心使用。(它一般来用来初始化考勤机。)

 

参数说明:

ADDR:意义同第三个函数。

 

RETURN:成功返回TURE,否则返回FALSE

 

Example:

Dim addr as integer

Dim BooleanFlag as Boolean

BooleanFlag=Object.clearNameList(Addr)

 

9Bool ClearRecord(Addr as integer)

   功能:此函数用来清除考勤机中的考勤记录表,一旦使用它后,则该台考勤机中的全部考勤数据将无法恢复地被清除。所以要特别慎重使它。

 

参数说明:

Addr 意义同第三个函数。

 

Exzmple:

Dim Addr as integer

Dim BooleanFleag as Boolean

BooleanFlag=Object.ClearRecord(addr)

 

10Bool  CardSendToMachine(Addr as integer,CardNum as String TagNum as String)

功能:此函数将一张卡发送给一台考勤机:只有使用了该函数将卡发到了考勤机,该卡在这台考勤机才能正常打卡考勤。否则考勤机将认为是无效卡,并不接受打卡记录。

 

参数说明:

CardNum 它表示ID卡的物理卡号,它一般要从卡内读取,有些ID卡在出厂时,打印在卡片的上。它应该是一个“10位”的十进制串。

TagNum 是一个“6位”的用户自定义的逻辑卡号,它传给函数时是以串的形式传递的。

 

RETURN:当发送成功则返回TURE,否则返回FALSE

 

Example:

Dim Addr as integer

Dim CardNum as string,TagNum as string

Dim BooleanFlag as Boolean

BooleanFlag=Object.CardSendtoMachine(addr,CardNum,TagNum)

 

11Bool RepairAddress(OldAddress as integer,NewAddress)

功能:此函数用来修改考勤机的地址。注意它只适用于CL21-05型考勤机,而对Cl21-03型考勤机不起作用。

 

参数说明:

OldAddress 是指考勤机原来的地址,它是一个十进制的数。

NewAddress 是指将修改后的才考勤机新地址,它也是一个十进制的数。

 

RETURN 当修改成功时返回TRUE,否则返回FALSE

 

Example

Dim OldAddress as integer,NewAddress as integer

Dim BooleanFlag as Boolean

BooleanFlag=Object.RepairAddress(OldAddress,NewAddress)

 

12Bool SetClock(Addr as integer,Itime() as Date)

功能:考勤机具有外接打铃的功能。使用该函数可以用来设置一天之内的1-13次打铃时间表。但应该注意第一个时间点为零时,将不启用打铃功能。

 

参数说明:

Addr 与第三个函数相同。

Itime() 是一个日期型的一维数组,它的每个元素代表一个打铃时间点。最多只能设置13个打铃的时间点。

 

NOTE:使用者务必注意Itime() 数组的每个元素是以“HHMMSS”形式的日期数据。不要把“YY/MM/DD”格式的数据传给数组。

 

RETURN:设置成功返回TRUE,否则返回FALSE

 

Example:

Dim Addr as integer

Dim BooleanFlag as Boolean

Dim Itime() as date

 

Itime(1)=cdate(#08:30#):itime(2)=cdate(#12:30#):Iteme(3)=cdate(#13:30#)

BooleanFlag=Object.setclock(addr,itime)

 

13Bool GatherData(Address as integer,RecordCount1 as string,RecordCount2 as string)

功能:该函数用于采集数据,当考勤机中记录比较多时,则需要等待的时间相对较长。如果采集成功。在所调用的动态链接库的目录中,会产生一个SourceRecordSet.txt的文本文件,该文件的每行存放一条采集到的考勤记录。

参数说明:

Address 表示所要采集数据的考勤机地址,它是一个十进制的1-99之间的整数。

ReCordCount1 表示考勤机中的考勤记录笔数。(在Cl21-03中,最多能有7255条记录,在Cl21-05中,它最多能有14510条记录。)

 

Return:如果采集成功,返回TRUE,否则返回FALSE

 

Note

1、有些非常特殊的情况,即RecordCount1不等于RecordCount2,此时函数将返回

FALSE,但实际上已经采集到了数据,只是有可能丢失了一些记录。使用者可灼情处理它。

2、在SourceRecordSet.txt中每一行即是采集到的记录。其结构如下:1-2位是用十六进制表示的考勤机地址。(例:“128888880109061344AA”中,地址“&H12即为十进制的18。)3-8位是考勤记录的逻辑卡号。(如上面的“8888889-14位表示打卡记录的日期,按年月日排列。(如上面的01/09/0615-18位是打卡记录的时间。按小时分钟排列。(如上面的1344)最两位应固定为AA,它表示一个记录的结束标志。

 

提示:每次调用采集函数,都将会从文件中清除掉前一次采集的数据。

 

Example:

Dim Address as integer

Dim RecordCount1 as integer,RecordCount2 as integer

Dim BooleanFlag as Boolean

BooleanFlag=Object.GatherData(address,RecordCount1,RecordCount2)

 

 

附录1-1动态库在VB中的引用

 

第一步:请将动态库考贝到你应用程序的目录下,(这样应该是有好处的)。

 

第二步:打开VB,在Project项中选取“引用”。然后选中KqConnect.dll,按确认。正常将如下图所示:再按确认即可。

 

第三步:此时可以声明一个类的变量,然后再创建实例即可以调用动态库的接口函数。

 

 

 

附录1-2本动态库对应协议和kq6.8协议区别

 

kq6.8中,发卡的协议和kq612的协议有所区别,kq6.8发卡函数如下:

 

11.  Bool  CardSendToMachine68(ByVal IntAddr As Integer, ByVal StrPhyCardId As String, ByVal StCardId As String, ByVal StId As String, byVal strDept as string,ByVal StrName As String)

功能:此函数将一张卡发送给一台考勤机:只有使用了该函数将卡发到了考勤机,该卡在这台考勤机才能正常打卡考勤。否则考勤机将认为是无效卡,并不接受打卡记录。

 

参数说明:

IntAddr  表示考勤机地址,取值为199之间的整数。

StrPhyCardId 它表示ID卡的物理卡号,它一般要从卡内读取,有些ID卡在出厂时,打印在卡片的上。它应该是一个“10位”的十进制串。

StCardId  是一个“6位”的用户自定义的逻辑卡号,它传给函数时是以串的形式传递的,取值为6位数字。

StId  是一个“10位”以内的数字、字母组合字符串,表示用户的工号,它传给函数时是以串的形式传递的。

StrDept   表示部门,此参数是为了扩展用,在考勤机中并未实现,使用时传入空串即可。

StrName  是一个5个汉字以内的字符串,表示用户的姓名,它传给函数时是以串的形式传递的。

RETURN:当发送成功则返回TURE,否则返回FALSE

 

Example:

Dim Addr as integer

Dim CardNum as string,TagNum as string

Dim BooleanFlag as Boolean

BooleanFlag=Object.CardSendtoMachine68(IntAddr, StrPhyCardId, StCardId, StId,””, StrName)

 

 

    快速获得支持

   点击“在线服务 ”简单填写
   资料,您可以就您关注的硬
   件或软件获得相应在线支持。
   电话: 
0755-83740970