购彩平台官网

您現在的位置:首頁>>資料下載>>二次開發工具>> 2501-2502-2508-2801動態庫標準版
2501-2502-2508-2801動態庫標準版
2501_2502動態庫標準版

 

一、    動態庫概述

1、   采用RS485通訊方式。

2、   通訊波特率為19200bps

3、   此動態庫可自適應簡繁體操作系統。

4、   此動態庫要與文件RM.txt聯用。

5、   此動態庫修改了函數,使該函數的輸出文件中存放的物理卡號以十進制顯示,并且姓名也以漢字顯示出來。

6、   修改了在Delphui中使用函數無法傳遞數組參數的問題,特增加了一個函數,用于設置響鈴點。

7、   修改了在采集打卡數據時及發卡數據時,當選中了物理卡號以十進制輸出選項后,有些較大的物理卡號會輸出為負數的問題。

8、   此動態庫在運行時,要有“MSWINSCK.OCX”控件的支持,所以在使用時,請將些控件復制到Windows“System32”文件夾下,并注冊。

9、   五個屬性說明:

                         i.              Ver String型,只讀屬性,表示本動態庫的版本號,此屬性在以前的動態庫中就存在。當前的值為:"V7.3  (CopyRight: 2004-05 2007-08)" ,在引用時,只要判斷前四個字符是“V7.3”就可確認是新版本。

                        ii.              ModeInt型,可讀可寫,為0,表示串口通訊;為1,表示TCP通訊

                      iii.              IPString型,可讀可寫,考勤機IP地址;

                       iv.              TcpPortLong型,可讀可寫,考勤機進行TCP連接時的端口號,一般是1001

                        v.              TcpStateInt型,只讀,當前TCP連接的狀態,它的取值為:

0

缺省的。關閉

1

打開

2

偵聽

3

連接掛起

4

識別主機

5

已識別主機

6

正在連接

7

已連接

8

同級人員正在關閉連接

9

錯誤

a)          

 

                                 PC采集打卡數據總條數

                                                        PC采集打卡數據           

                                      PC采集發卡名單總條數                  

                                      PC采集發卡數據           

                                                     :清除考勤機全部打卡數據                

                                        :清除考勤機全部發卡名單                

                              PC下傳一條發卡名單            

                                                        :從考勤機的發卡名單中清除某張卡的邏輯卡號        

                         :發送一條打卡數據到考勤機上。

                                        :修改考勤機地址

                                                             :下傳響鈴時間表

                         :修改系統參數

                                                 :讀取最近一次打卡的物理卡號(即讀卡) √

                                                           :清除新卡標志

                                                              查找此物理卡號是否在機器中與發已卡

                                                                  :設置端口

                                                 :釋放端口

                         :讀取系統參

                                         :修改時間日期    

                                                    :發送短信到考勤機              ×

                                                 :設置語音        ×

                              : 設置(修改)機器菜單密碼     ×

                              : 取得機器菜單密碼  ×

                                                              :設置響鈴時間(以字符串型式傳入參數) 

                                                   :下傳開機畫面 

Dim  KQ ‘定義一個變量

Set KQ = CreateObject("KQCONNECT_v70.Connect_v70")

函數說明:

函數,它可以接受字符串參數。

例子:

Dim TimeArry(10) As Date

Dim i As Integer

Dim IHour As String, IMinute As String

Dim MySecond As Long

   

    For i = 0 To 9

        If TxtHour(i) <> "" Then

            IHour = TxtHour(i).Text

        Else

            IHour = "0"

        End If

        If TxtMin(i) <> "" Then

            IMinute = TxtMin(i).Text

        Else

            IMinute = "0"

        End If

        TimeArry(i) = CDate(IHour + ":" + IMinute)

    Next

   

    If KQ.SetClock(CInt(TxtAddress.Text), TimeArry, 1) Then

      Sta_Info.SimpleText = "成功"

    Else

      Sta_Info.SimpleText = "不成功"

    End If

   

End Sub

 

13、           RepairSystemParameter(ByVal VarAddr As Integer, ByVal JDYS As String, ByVal DKYS As String, ByVal TZZ As String) As Boolean

 

功能說明:修改系統參數

參數:  VarAddr為機器地址

JDYS  繼電器延時 2 bytes

DKYS  打卡 延時  2 bytes

TZZ   特征字     2 ytes

0B101905040611402900 0100 03E8 000097

0B 10 19 050406 112947 00 0100 0000 0000 7B

 

0B101905040611420200010003E8 8000 3E

A  +  0FH + 19H  + 日期、時間、周 +  響鈴/開鎖延時2bytes  +  打卡延時2bytes  +  特征字2bytes  +  校驗

 

繼電器延時為2個字節,前者對應繼電器1/s,后者對應繼電器2/s,數值均不超過9963H),打卡延時為2字節,其值小于144005A0H),對應24小時以下的延時分鐘的數值

特征字:  D7    工作模式    0、考勤模式       1門禁模式

D6    字體設置    0、簡體           1 繁體

D5    響鈴允許    0、禁止響鈴       1、允許響鈴

D4    開鎖模式    0、卡||密碼        1、卡+密碼

D3    認卡模式    0、發卡有效       1、直接有效

                                 

返回值:   布爾值True成功,False失敗

例子:RepairSystemParameter(CInt(TxtAddress.Text), Right("0000" & TxtY.Text, 4), "0000", JF)

此函數暫不完善,很容易造成機器故障,請慎用此功能(一般使用出廠時設定)。

 

14、           ReadCardNum(ByVal VarAddr As Integer, ByRef AllStr As String) As String

功能說明:讀取最近一次打卡的物理卡號(即讀卡)

參數:                   VarAddr為機器地址 

                               AllStr讀出的全部信息。(內部使用)

                    

返回值:     物理卡號

例子:                   KQ. ReadCardNum(CInt(Trim(TxtAddress)), AllStr)

 

15、           ClearFlag(ByVal VarAddr As Integer) As Boolean

功能說明:清除新卡標志

參數:

                            VarAddr為機器地址

返回值:   布爾值True成功,False失敗

例子:                ClearFlag(18)

 

16、           SendPictureMach(ByVal VarAddr As String, ByVal BmpFilePath As String) As Boolean (此函數暫不完整,不允許使用)

功能說明:下傳開機畫面

參數:                   VarAddr為機器地址

                               BmpFilePath文件名

                    

返回值:     布爾值True成功,False失敗

例子:KQ.SendPictureMach(TxtAddress.Text, BmpPath)

 

17、           FindCard(ByVal VarAddr As Integer, ByVal PhyNum As String, CardYN As Boolean) As Boolean                      

功能說明: 查找此物理卡號是否在機器中已發過卡

參數:                   VarAddr為機器地址

                               PhyNum 物理卡號     (傳進十進制的物理卡號)

                               CardYN是否在機器中 (返回標志,True存在,False不存在)

返回值:     布爾值True成功,False失敗

例子:FindCard(CInt(TxtAddress.Text), Trim(TxtCardNum.Text), CardYN)

18、           DestoryPort() As Boolean

功能說明:                 關閉串口

參數:                        

返回值:            布爾值True成功,False失敗

19、           SetPort(ByVal intCom As Integer) As Boolean

功能說明:        如果是串口模式,則設置并打開串口;

如果是TCP模式,則連接考勤機

參數:                         intCom 串口號

返回值:      布爾值True成功,False失敗

20、           ReadSystemParameter(ByVal VarAddr As Integer, ByRef BackString As String) As Boolean

功能說明:                 讀取系統參

參數:                         VarAddr為機器地址

                                     BackString返回的參數

返回值:      布爾值True成功,False失敗

例子:KQ.ReadSystemParameter(TxtAddress.Text, str)

 

21、           ModifyDateTime(ByVal VarAddr As Integer, ByVal DDate As String, ByVal TTime As String, ByVal WWeek As Byte) As Boolean

功能說明:                修改日期時間

參數:                                 VarAddr為機器地址

                                             Ddate為日期

                                             Ttime為時間

                                             Wweek為星期(做考勤時不用)

返回值:    布爾值True成功,False失敗

例子:

DDate = Right(Year(Date), 2) & Right(("00" & Month(Date)), 2) & Right(("00" & Day(Date)), 2)

TTime = Right(("00" & Hour(Time)), 2) & Right(("00" & Minute(Time)), 2) & Right(("00" & Second(Time)), 2)

WWeek = "01"

Mreturn = KQ.ModifyDateTime(CInt(Trim(TxtAddress.Text)), DDate, TTime, WWeek)

If Mreturn Then

      Sta_Info.SimpleText = "修改日期成功"

Else

      Sta_Info.SimpleText = "修改日期不成功"

End If

24SendShortMsg(ByVal varaddr As Integer, ByVal TTime As Integer, ByVal MsgStr As String) As Boolean

功能說明:       發送短信到考勤機(此函數暫不提供)

參數:                        VarAddr為機器地址

                                    Ttime為顯示時長

                                    MsgStr為短信內容

返回值:    布爾值True成功,False失敗

例子:

    If KQ.SendShortMsg(TxtAddress.Text, Text6.Text, TxtMsg.Text) Then

        Sta_Info.SimpleText = " 發送短信成功!"

    Else

        Sta_Info.SimpleText = "發送短信失敗!"

    End If

25、   GetSounds(ByVal varaddr As Integer, ByVal SoundNum As Integer) As Boolean

此函數主要用于實時監控,如有問題可直接找本公司。  

功能說明:                 發送語音到考勤機

參數:                         VarAddr為機器地址

                                     SoundNum為語音號內容為18對應語音如下

語音提示:               

1:無效卡              

2                    

3:歡迎你              

4:你好                

5:生日快樂            

6:你遲到了            

7:節日快樂            

8:注意安全

返回值:      布爾值True成功,False失敗

例子:KQ.GetSounds(TxtAddress.Text, SoundNum.Text)

26、   SetMachinePassword(ByVal varaddr As Integer, ByVal nPassword As Integer) As Boolean

功能說明:設置(修改)機器的菜單密碼(只適用帶按鍵機型)

參數:                VarAddr     為機器地址

                                     nPassword       為要設置的密碼,最多4

返回值:    布爾值True成功,False失敗

 

27、   GetMachinePassword GetMachinePassword(ByVal varAddr As Integer) As Integer

功能說明:讀取機器菜單密碼(只適用帶按鍵機型)

參數:                VarAddr     為機器地址

返回值:  不小于0的整數值,如讀取失敗,返回-1

 

28、   SetClockStr(ByVal varAddr As Integer, ByVal strTime As String, ByVal Sect As String) As Boolean

功能說明:下傳響鈴時間表總共為30段,一次下發10段,如果要下發30段,則要分三次下發。下發哪一段由SECT參數決定。此數功能與SetClock一樣,只不過傳的參數是字符串。

參數:VarAddr為機器地址

             strTime時間字符串,格式為兩位小時+兩位分鐘;

例如:”0800120513301400180020302325”,代表8:0012:0513:3014:0018:0020:3023:25

             Sect時間段參數,可取的值為[1,2,3];1、表示第一個10段;取2、表示第二個10段;取3、表示第三個10段。

                    

返回值:布爾值True成功,False失敗

 

例子:

 

Dim i As Integer

Dim IHour As String, IMinute As String

Dim MySecond As Long

            strTime = ""

    For i = 0 To 9

        If TxtHour(i) <> "" Then

            IHour = Right("00" & Trim(TxtHour(i).Text), 2)

        Else

            IHour = "00"

        End If

        If TxtMin(i) <> "" Then

            IMinute = Right("00" & Trim(TxtMin(i).Text), 2)

        Else

            IMinute = "00"

        End If

        strTime = strTime & IHour & IMinute

    Next

   

    If KQ.SetClockstr(CInt(TxtAddress.Text), strTime, Text7.Text) Then

      Sta_Info.SimpleText = "響鈴時間設置成功!"

    Else

      Sta_Info.SimpleText = "響鈴時間設置失敗!"

    End If

 

Attribute VB_Name = "CheckData_250X"

Option Explicit

 

'*****************************************************************************

'功能說明

'根據采集回的數據*.txt),驗證數據的正確性驗證規則

'1)  讀出當前機器內的數據總數(M),與文本文件中的總數(N)比較,如果(N<M M=0),則返回False

'2)  判斷數據中的日期時間格式是否合法,如果不是有效的日期時間,則返回False

'3)  判斷最后一筆記錄的刷卡時間與當前時間的間隔,如果超過1小時,則返回False

'4)  動態判斷日期時間是否升序排列,如果不是,則返回False

'5)  此函數一般用在采集完刷卡數據之后。

'修改時間:2008-01-07

'參數:共7

'               VarAddr為機器地址

'                VarFilePath文件路徑

'                VarFileName文件名

'                VarDescription描述,用此參數可以查看錯誤信息

'                intDelay 合理的時間間隔,單位是小時

'                phStrCardFlg 輸出的物理卡號,默認0十六進制,1為十進制,此參數可選,為了與以前兼容

'               IsFullYear 為真,表示輸出完整年份,如2005,否則輸出05

'返回值:   整型,

'0-表示數據正常;

'1-  表示總條數小于機器內的條數;

'2-  表示有亂數據;

'3-  表示最后一筆記錄的刷卡時間離現在間隔過長;

'4-  日期時間沒有按升序排列

'-1,表示其他異常,具體異常可查看VarDescription變量的值。

'*****************************************************************************

Public Function CheckData( _

                            ByVal varAddr As Integer _

                            , ByVal VarFilePath As String _

                            , ByVal VarFileName As String _

                            , ByRef VarDescription As String _

                            , Optional ByVal intDelay As Integer = 24 _

                            , Optional ByVal phStrCardFlg As Long = 0 _

                            , Optional ByVal IsFullYear As Boolean = False _

                           ) As Integer

    Dim lngSum_Mach As Long '機器中的總條數

 

   

    Dim i As Long, J As Long

    Dim intRow As Long

   

    Dim strFile As String

    Dim Nfile As Integer

    Dim strTemp As String

   

    Dim strMachine As String        '機器號

    Dim strPhyCardID10 As String     '1010進制物理卡號

    Dim strPhyCardID8 As String      '816進制物理卡號

    Dim strRecoString As String

   

    Dim strDateTime As String        '完全日期時間

    Dim strDate As String

'    Dim strTime As String

   

    Dim datLastTime As Date '最后打卡時間

    Dim datTemp As Date '存放上一條的打卡時間

   

    On Error GoTo Err2

   

    CheckData = -1

   

    '先?出????

    Sleep (2000)

    DoEvents

    If GatherRecordSum(varAddr, lngSum_Mach, "ok") = False Then

        CheckData = -1

        VarDescription = "采集總條數失敗 "

        Exit Function

    End If

    If lngSum_Mach <= 0 Then

        CheckData = 1

        VarDescription = "采集出的總條數是0 "

        Exit Function

    End If

   

   

    '打開文件進行校對

    strFile = VarFilePath & "\" & VarFileName

   

    If Dir(strFile) = "" Then

        CheckData = -1

        VarDescription = "文件找不到," & strFile

        Exit Function

    End If

 

    intRow = 0

    datLastTime = CDate("2000-01-01")

    datTemp = CDate("2000-01-01")

   

    Nfile = FreeFile()

    Open strFile For Input As #Nfile

    Do While Not EOF(Nfile)   ' 循環至文件尾。

        Line Input #Nfile, strTemp   ' 讀入一行數據并將其賦予某變量。

        Debug.Print strTemp   ' 在立即窗口中顯示數據。

        intRow = intRow + 1

       

        If Len(strTemp) < 23 Then

            Close #Nfile

            CheckData = 2

            VarDescription = "有亂數據," & intRow & " "

            Exit Function

        End If

       

       

        strRecoString = Left(strTemp, 23)   '讀取23位長度的記錄

        strMachine = Mid(strRecoString, 1, 3)           '機器號

        strPhyCardID8 = Mid(strRecoString, 4, 8)        '816進制物理卡號

        strPhyCardID10 = Right("0000000000" & CLng("&H" & strPhyCardID8), 10)   '1010進制物理卡號

        strDateTime = "20" & Mid(strRecoString, 12, 2) & "-" & Mid(strRecoString, 14, 2) & "-" & Mid(strRecoString, 16, 2) & " " & Mid(strRecoString, 18, 2) & ":" & Mid(strRecoString, 20, 2) & ":" & Mid(strRecoString, 22, 2)

       

         strDate = "20" & Mid(strRecoString, 12, 2) & "-" & Mid(strRecoString, 14, 2) & "-" & Mid(strRecoString, 16, 2)

'        strTime = Mid(strRecoString, 18, 2) & ":" & Mid(strRecoString, 20, 2) & ":" & Mid(strRecoString, 22, 2)

       

        '如果時間格式不對,則記錄錯誤

        If IsDate(Format(strDateTime, "yyyy-MM-dd hh:mm:ss")) = False Or _

            IsDate(Format(strDate, "yyyy-MM-dd")) = False Then

            Close #Nfile

            CheckData = 2

            VarDescription = "有亂數據," & intRow & " "

            Exit Function

        End If

        datLastTime = CDate(Format(strDateTime, "yyyy-MM-dd hh:mm:00"))    '2008-01-09比較時精確到分鐘因為客戶反映秒上有跳亂的顯象

        If datTemp > datLastTime Then

            CheckData = 4  '沒有按遞增順序

            VarDescription = "沒有按遞增順序,位置" & intRow

        Else

            datTemp = datLastTime

        End If

    Loop

    Close #Nfile   ' 關閉文件。

   

    If intRow < lngSum_Mach Then

        CheckData = 1

        VarDescription = "文本文件中的總條數小于機器內的總條數文件內" & intRow & "機器內" & lngSum_Mach & ""

        Exit Function

    End If

   

    If DateAdd("n", intDelay * 60, datLastTime) < Now Then

        CheckData = 3

        VarDescription = "最后一條數據的時間距離現在超過" & intDelay & "小時最后時間為" & datLastTime

        Exit Function

    End If

   

    '能執行到這里而沒被改變則說明數據合法

    If CheckData = "-1" Then

        CheckData = 0

    End If

   

    Exit Function

Err2:

    CheckData = -1

    VarDescription = Err.Description

End Function

 

 

    快速獲得支持

   點擊“”簡單填寫
   資料,您可以就您關注的硬
   件或軟件獲得相應在線支持。
   電話: 
0755-83740970