Hola amigos
Hace poco cayo el lector de huellas Suprema BioMini Slim SFU-S20 en mis manos pero esto de los arrays se me complica y queria su apoyo, resulta que tengo una bd en postgres y tengo guardados imagenes como texto de huellas digitales y queria hacer el match entre la huella que captura el lector y las huellas que saco de la bdatos.
Según el sdk es simple como esto
' Assume template size is 1024 bytes
Const MAX_TEMPLATE_SIZE As Long = 1024
Dim ufm_res As UFM_STATUS
Dim hMatcher As Long
Dim Template1(MAX_TEMPLATE_SIZE - 1) As Byte
Dim Template2(MAX_TEMPLATE_SIZE - 1) As Byte
Dim Template1Size As Long
Dim Template2Size As Long
Dim VerifySucceed As Long
' Create hMatcher
' Get two templates, Template1 and Template2
'Se debe tener 2 arrays de bytes con los datps de la huella y el tamaño de cada array para hacer la comparacion
ufm_res = UFM_Verify(hMatcher, Template1(0), Template1Size, Template2(0), Tempalte2Size, VerifySucceed)
If (ufm_res = UFM_STATUS.OK) Then
' UFM_Verify is succeeded
If (VerifySucceed = 1) Then
' Template1 is matched to Template2
Else
' Template1 is not matched to Template2
End If
Else
' UFM_Verify is failed
' Use UFM_GetErrorString function to show error string
End If
La descripcion de los parametros
Parameters
hMatcher: [in] Handle of the matcher object
pTemplate1 [in] Pointer to the template
nTemplate1Size [in] Specifies the size of the template
pTemplate2 [in] Pointer to the template array
nTemplate2Size [in] Specifies the size of the template array
bVerifySucceed [out] Receives whether verification is succeed; 1: verification is succeed, 0: verification is failed
Este es el codigo que estoy haciendo
Const MAX_TEMPLATE_SIZE As Long = 1024
Dim lHuella_bd(MAX_TEMPLATE_SIZE -1) as byte '// Array de bytes de la huella en la bd
Dim lHuella(MAX_TEMPLATE_SIZE -1) as byte '// Array de bytes de la huella del lector
Dim lHuella_tam as long '// Tamaño de huella
Dim lHuella_bd_tam as long '// Tamaño de huella en la bd
Dim lBase64 As Base64Class '// Convierte String a bytes y viceversa
Dim lEmpleado As EN_Empleado '// Registro de Empleado
Dim lHPE As Byte '// huellas por empleado
'se asume que lHuella tiene el array del lector, eso si esta correcto
Set lBase64 = New Base64Class
'// Recorriendo la lista de empleados
If m_empleados.TotalRegistros > 0 Then
m_empleados.IrInicio
lHPE = 2
Do Until m_empleados.FinalRegistro
Set lEmpleado = m_empleados.GetRegistro
'// Obtiene la huella del dedo indice
If lHPE = 2 Then
'// Leo la huella que esta guardada como texto en la bd, esto lo convierte a array de bytes
lHuella_bd = lBase64.DecodeToByteArray(lEmpleado.DedoIndice) '<< aqui me sale el error no se puede asignar
lHuella_bd_tam = UBound(lHuella_bd)
Else
lHuella_bd = lBase64.DecodeToByteArray(lEmpleado.DedoMedio)
lHuella_bd_tam = UBound(lHuella_bd)
End If
'// Compara la huella que esta en el array ñHuella (del lector ) y lHuella_bd (huella del empleado en la bd)
lUfm_res = UFM_Verify(m_hMatcher, lHuella(0), lHuella_tam, lHuella_bd(0), lHuella_bd_tam, lResultado)
If lUfm_res <> UFM_STATUS.OK Then
UFM_GetErrorString lUfm_res, m_strError
MsgBox m_strError, vbCritical
Exit Function
Else
If lResultado = 1 Then
MsgBox "Resultado de Comparacion" & vbCrLf & _
"Empleado: " & lEmpleado.Nombre, vbInformation
Exit Do
End If
End if
lHPE = lHPE - 1
If lHPE = 0 Then
m_empleados.IrSiguiente
End If
Loop
Una mano amigos, alguien que haya usando este lector de huellas comparando estos arrays
Gracias de antemano
Salu2