none
¿Como optener el valor biometrico de un lector DIGITAL PERSONA y manupular en visual 2012? RRS feed

  • Pregunta

  • Public Class EnrollmentForm

        Inherits CaptureForm
        Public features As DPFP.FeatureSet
        Public Event OnTemplate(ByVal template)
        Public Enroller As DPFP.Processing.Enrollment
        Dim conexion As OracleConnection


        Protected Overrides Sub Init()
            MyBase.Init()
            MyBase.Text = "Fingerprint Enrollment"
            Enroller = New DPFP.Processing.Enrollment()         ' Create an enrollment.
            UpdateStatus()
        End Sub

        Protected Overrides Sub Process(ByVal Sample As DPFP.Sample)
            MyBase.Process(Sample)
            features = ExtractFeatures(Sample, DPFP.Processing.DataPurpose.Enrollment)

            If (Not features Is Nothing) Then
                Try
                    MakeReport("El conjunto de características de huellas dactilares se creó.")
                    Enroller.AddFeatures(features)              ' Add feature set to template.
                Finally
                    UpdateStatus()

                    ' COMPROBAMOS SI LA PLANTILLA FUE CREADA.
                    Select Case Enroller.TemplateStatus
                        Case DPFP.Processing.Enrollment.Status.Ready        ' VERIFICA QUE SE CREE UNA BUENA PLANTILLA DE LA HUELLA Y DETENEMOS AL LECTOR
                            'PROCEDEMOS A GUARDAR LAS HUELLA DACTILAR EN NUESTRA BASE DE DATOS
                            If conexion.State = ConnectionState.Closed Then
                                conexion.Open()
                            End If
                            Dim cmd As New OracleCommand("INSERT INTO LECTOR (ID,HUELLA,MENSAJE,HUELLAA,HUELLAB,HUELLAC) VALUES(:ID,:HUELLA,:MENSAJE,:HUELLAA,:HUELLAB,:HUELLAC)", conexion)
                            RaiseEvent OnTemplate(Enroller.Template)

                            'cmd.CommandType = CommandType.StoredProcedure
                            ' Dim i As String
                            Dim VARIABLE As String = 0
                            Dim VARIABLE2 As String = 0
                            Dim VARIABLE3 As String = 0
                            Dim VARIABLE4 As String = 0

                            Dim ab As Integer


                            For valor As Integer = 0 To 1630
                                ab = ab + 1
                                If ab >= 0 And ab <= 450 Then
                                    VARIABLE = VARIABLE & "," & Enroller.Template.Bytes(ab)
                                End If

                                If ab >= 451 And ab <= 850 Then
                                    VARIABLE2 = VARIABLE2 & "," & Enroller.Template.Bytes(ab)
                                End If

                                If ab >= 851 And ab <= 1250 Then
                                    VARIABLE3 = VARIABLE3 & "," & Enroller.Template.Bytes(ab)
                                End If

                                If ab >= 1251 And ab <= 1629 Then
                                    VARIABLE4 = VARIABLE4 & "," & Enroller.Template.Bytes(ab)
                                End If

                            Next

                            cmd.CommandType = CommandType.Text
                            cmd.Parameters.Add("ID", OracleDbType.Char).Value = 1
                            cmd.Parameters.Add("HUELLA", OracleDbType.Clob, 1640).Value = VARIABLE
                            cmd.Parameters.Add("MENSAJE", OracleDbType.Clob, 1640).Value = Enroller.Template.Size
                            cmd.Parameters.Add("HUELLAA", OracleDbType.Clob, 1640).Value = VARIABLE2
                            cmd.Parameters.Add("HUELLAB", OracleDbType.Clob, 1640).Value = VARIABLE3
                            cmd.Parameters.Add("HUELLAC", OracleDbType.Clob, 1640).Value = VARIABLE4
                            'cmd.Parameters.Add("MENSAJE", OracleDbType.Char).Value = ParameterDirection.Output
                            'cmd.ExecuteNonQuery()
                            Try
                                cmd.ExecuteNonQuery()
                            Catch ex As Exception
                                MessageBox.Show(ex.Message)
                            End Try

                            'MessageBox.Show(cmd.Parameters("MENSAJE").Value.ToString())
                            SetPrompt("Haga clic en Cerrar y, a continuación, haga clic en Verificación de huellas dactilares.")
                            StopCapture()
                            'SI EL PROCESO FALLA REINICIAMOS LAS CAPTURAS
                        Case DPFP.Processing.Enrollment.Status.Failed
                            Enroller.Clear()
                            StopCapture()
                            RaiseEvent OnTemplate(Nothing)
                            StartCapture()

                    End Select
                End Try
            End If
        End Sub

        Protected Sub UpdateStatus()
            'MOSTRAMOS EL NUMERO DE CAPTURAS QUE NECESITAMOS
            SetStatus(String.Format("Muestras de huellas dactilares necesarios: {0}", Enroller.FeaturesNeeded))
        End Sub

        Private Sub EnrollmentForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            conexion = New OracleConnection("Data Source=SIAHSJ;Persist Security Info=True;User ID=instcmzh_dev; password=instcmzh_dev ")
        End Sub

        Private Sub InitializeComponent()
            Me.SuspendLayout()
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.ClientSize = New System.Drawing.Size(581, 354)
            Me.Name = "EnrollmentForm"
            Me.ResumeLayout(False)
            Me.PerformLayout()

        End Sub
    End Class

    A QUI LO QUE TENGO ESQUE SAQUE EL VALOR EN UN STRING PERO NECESITO SACARLO EN UN VALOR TIPO BYTE(1630)

    jueves, 30 de mayo de 2013 15:21

Todas las respuestas


  • De esta forma podes obtener un valor en tipo Byte:

     Private Sub GuardarHuella(ByVal template As DPFP.Template)

    Dim fingerprintData As New MemoryStream
    template.Serialize(fingerprintData)
    fingerprintData.Position = 0
    Dim br As New BinaryReader(fingerprintData)
    Dim bytes As Byte() = br.ReadBytes(CInt(fingerprintData.Length))

    HUELLA = bytes


    martes, 19 de febrero de 2019 17:12
  • Como obtenes el valor en un string del template? 
    martes, 19 de febrero de 2019 17:12