'========*=========*=========*=========*=========*=========*=========*=========*
'== 功 能:得到当前岗位上的人员的指纹
'== 参 数:ByRef myFingerPrint() As Byte,得到验证用的指纹
' Index As integer 指纹机的index
'== 返 回 值:错误号
'== 性 质:VB固有事件
'== 作 者:
'== 修改记事:
'========*=========*=========*=========*=========*=========*=========*=========*
Private Function GetFingerPrint(ByRef myFingerPrint() As Byte, index As Integer) As Long
Dim str As String
Dim i As Long
Dim buf() As Byte
On Error GoTo errHandle
'//发音
If Me.Hmd(index).PlayVoice(&H0) Then
End If
Call WriteErrLogD("00", "提取指纹" & index & " ", "GetFingerPrint")
Do While Not Hmd(index).GetFeature(buf)
i = i + 1
' DoEvents '此处用DoEvents会导置运行非常慢,长时间才返回。去掉后就没有问题了。
If i > m_GetFingerPrintTryCount Then Exit Do
If i Mod 4 = 0 Then
'//发音
If Me.Hmd(index).PlayVoice(&H0) Then
End If
End If
Call WriteErrLogD("00", "提取指纹,第" & i & "次 ", "GetFingerPrintPerson")
Loop
If i <= m_GetFingerPrintTryCount Then
GetFingerPrint = errMsg.MSG_SUCCESS
myFingerPrint = buf
Else
GetFingerPrint = errMsg.MSG_BU_ZAI_GANG_ERROR
End If
Exit Function
errHandle:
Call WriteErrLog(Err.Number, Err.Description, "GetFingerPrint")
GetFingerPrint = errMsg.MSG_FINGERPRINT_ERROR '//实际中没有连接设备时会有错误
End Function
DoEvents '此处用DoEvents会导置运行非常慢,长时间才返回。去掉后就没有问题了。
但是这个在原来的测试时是没有问题的。后来不知为什么有问题了。
下面的如果不用DoEvents会导置死循环。
'========*=========*=========*=========*=========*=========*=========*=========*
'== 功 能:连接服务
'== 参 数:intRemotePort As Integer 服务器 post(端口) maxWaitSecond
'== 返 回 值:"connect" 成功,建立连接成功,其它是没有连接成功
'== 性 质:自定义
'== 作 者:
'== 修改记事:sunnf 2006-12-05
' 加入最大等待时间参数
'========*=========*=========*=========*=========*=========*=========*=========*
Public Function ServerConnect(ByVal intRemotePort As Integer, ByVal strGangWeiID As String, ByVal strAddressID As String, ByVal strRenYuanID As String, ByVal strAccessIp As String, ByVal strUserID As String, ByVal strUserName As String, Optional maxWaitSecond As String = "20", Optional debugLog As String = "0")
Dim strMessage As String
Dim dBegin As Date
On Error GoTo errHandle
LINK_MAX_TIME = CLng(maxWaitSecond)
frmVerify.mstrMessage = ""
If frmVerify.wskClient.State <> sckClosed Then frmVerify.wskClient.Close
frmVerify.wskClient.RemoteHost = "127.0.0.1"
frmVerify.wskClient.RemotePort = intRemotePort
frmVerify.TimerClient.Enabled = False
frmVerify.mintTime = 0
frmVerify.TimerClient.Enabled = True
If debugLog = "1" Then
MyResponse.Write "连接..=============." & "<br>"
'MyResponse.End
End If
frmVerify.wskClient.Connect
Do
DoEvents '
'Sleep (0)
Loop Until frmVerify.wskClient.State = sckConnected Or frmVerify.mintTime > LINK_MAX_TIME
If debugLog Then
MyResponse.Write strMessage & "<br>"
End If
' frmVerify.mnewTime = Time '//得系统时间
frmVerify.TimerClient.Enabled = False
If frmVerify.wskClient.State <> sckConnected Then '连接失败
'MousePointer = 0
If debugLog = "1" Then
MyResponse.Write "连接失败" & "<br>"
End If
If frmVerify.wskClient.State <> sckClosed Then frmVerify.wskClient.Close
Exit Function
End If
If frmVerify.wskClient.State = sckConnected Then
strMessage = strGangWeiID & "," & strAddressID & "," & strRenYuanID & "," & strAccessIp & "," & strUserID & "," & strUserName
If debugLog = "1" Then
MyResponse.Write strMessage & "<br>"
End If
frmVerify.wskClient.SendData strMessage '发送消息的内容
If debugLog = "1" Then
MyResponse.Write "发送信息到服务器,请等待..." & "<br>"
End If
frmVerify.TimerClient.Enabled = False
frmVerify.mintTime = 0
frmVerify.TimerClient.Enabled = True
' MyResponse.Write strMessage
Do
DoEvents '
' Loop Until frmVerify.wskClient.State = sckcompleted
Loop Until Not frmVerify.mstrMessage = "" Or frmVerify.mintTime > LINK_MAX_TIME 'Or DateDiff("s", dBegin, Now()) > 120
If debugLog = "1" Then
MyResponse.Write "服务器运行计数:" & frmVerify.mintTime & "<br>"
End If
If debugLog = "1" Then
MyResponse.Write "从服务器返回信息:" & frmVerify.mstrMessage & "<br>"
End If
If frmVerify.mstrMessage = "" Then
ServerConnect = "error"
Else
ServerConnect = frmVerify.mstrMessage
End If
frmVerify.wskClient.Close
End If
frmVerify.TimerClient.Enabled = False
Exit Function
errHandle:
frmVerify.wskClient.Close
frmVerify.TimerClient.Enabled = False
ServerConnect = "error"
End Function