Introdução
O Wrapper C# pode ser encontrada no Kit de desenvolvimento do iDBIO. O wrapper é composto de uma DLL que pode ser encontrada na pasta "C#".
Esta biblioteca é somente um wrapper, é necessário que a DLL libcidbio.dll esteja na mesma pasta que esta DLL para que a biblioteca funcione apropradamente.
Todos os métodos apresentados abaixo pertencem à classe CIDBio.
Códigos de Retorno
public static string GetErrorMessage (RetCode error)
Retorna mensagem em inglês do erro passado.
Parâmetros de entrada:
- error: RetCode
Código de erro.
Parâmetros de retorno:
- Retorno: string
Descrição em inglês do erro.
Todas as funções desta biblioteca retornam um enum RetCode. Este código de retorno pode indicar uma das 3 situações abaixo:
- Sucesso (== RetCode.SUCCESS) - Operação foi realizada com sucesso
- Aviso (> RetCode.SUCCESS) - Operação foi realizada mas com alguma ressalva
- Erro (< RetCode.SUCCESS) - Operação falhou
Este enum é descrito pela tabela abaixo:
Valor | Nome | Descrição |
---|---|---|
0 | SUCCESS | Operação realizada com sucesso |
1 | WARNING_ALREADY_INIT | Biblioteca já inicializada |
2 | WARNING_NO_IDS_ON_DEVICE | Nenhum Template cadastrado |
3 | WARNING_OVERWRITING_TEMPLATE | Template foi sobrescrito |
-1 | ERROR_UNKNOWN | Erro desconhecido |
-2 | ERROR_NO_DEVICE | Dispositivo não encontrado |
-3 | ERROR_NULL_ARGUMENT | Argumento nulo |
-4 | ERROR_INVALID_ARGUMENT | Argumento inválido |
-5 | ERROR_CAPTURE | Erro durante a captura |
-6 | ERROR_CAPTURE_TIMEOUT | Tempo de captura expirado |
-7 | ERROR_COMM_USB | Erro de comunicação USB |
-8 | ERROR_IO_ON_HOST | Erro de comunicação do Host |
-9 | ERROR_TEMPLATE_ALREADY_ENROLLED | Template já cadastrado |
-10 | ERROR_MERGING | Falha no Merge |
-11 | ERROR_MATCHING | Falha no Match |
-12 | ERROR_INVALID_FW_FILE | Arquivo de Firmware inválido |
-13 | ERROR_NO_SPACE_LEFT_ON_DEVICE | Espaço no dispositivo esgotado |
-14 | ERROR_NO_TEMPLATE_WITH_ID | Template não cadastrado |
-15 | ERROR_INVALID_ERRNO | Código de erro inválido |
-16 | ERROR_UNAVAILABLE_FEATURE | Funcionalidade não disponível |
-17 | ERROR_PREVIOUS_FW_VERSION | Versão do firmware é anterior à atual |
-18 | ERROR_NOT_IDENTIFIED | Template não identificado |
-19 | ERROR_BUSY | Dispositivo esta ocupado |
-20 | ERROR_CAPTURE_CANCELED | Captura foi cancelada |
-21 | ERROR_NO_FINGER_DETECTED | Digital não foi detectada |
Inicialização e Finalização
public static RetCode SetSerialCommPort (string comPort)
Configura em qual porta o dispositivo deve se conectar.
Disponível a partir da versão da SDK: 1.4.0
Parâmetro de entrada:
- comPort: string
Porta serial ao qual o dispositivo deve se conectar. Deve ser "COMx" em Windows e "/dev/ttyACMx" em Linux
public static RetCode Init ()
Checa e inicializa o dispositivo.
public static RetCode Terminate ()
Finaliza o dispositivo.
Captura de dedo
public RetCode CaptureImage (out byte[] imageBuf, out uint width, out uint height)
Captura uma imagem de um dedo. Quando esta função é chamada o dispositivo entra no modo de captura de imagens. Esta função não retorna enquanto um dedo não for capturado, ou o tempo de captura for expirado (30 segundos).
Parâmetros de saída:
- imageBuf: byte[]
Buffer com o conteúdo bitmap da imagem. - width: uint
Largura da imagem - height: uint
Altura da imagem
public RetCode CheckFingerprint (out byte[] imageBuf, out uint width, out uint height)
Checa se existe um dedo pressionando o leitor. Em caso positivo a imagem da digital é retornada, em caso negativo o erro ERROR_NO_FINGER_DETECTED é retornado. Esta função sempre retorna imediatamente.
Disponível a partir da versão do firmware: 1.2.0
Parâmetros de saída:
- imageBuf: byte[]
Buffer com o conteúdo bitmap da imagem. - width: uint
Largura da imagem - height: uint
Altura da imagem
public RetCode CaptureImageAndTemplate (out string temp, out byte[] imageBuf, out uint width, out uint height, out int quality)
Captura uma imagem de um dedo e extrai o seu template. Quando esta função é chamada o dispositivo entra no modo de captura de imagens. Esta função não retorna enquanto um dedo não for capturado, ou o tempo de captura for expirado (30 segundos).
Parâmetros de saída:
- temp: string
Base64 do template extraído. - imageBuf: byte[]
Buffer com o conteúdo bitmap da imagem. - width: uint
Largura da imagem - height: uint
Altura da imagem. - quality: int
Valor de 0 a 100 que define a qualidade da imagem do dedo capturado.
public RetCode CaptureAndEnroll (long id)
Captura 3 imagens de um dedo e o cadastra no dispositivo. Quando esta função é chamada o dispositivo entra no modo de captura de imagens. Esta função não retorna enquanto um dedo não for capturado 3 vezes, ou o tempo de captura for expirado (30 segundos por iteração).
Parâmetro de entrada:
- id: long
Número identificador do template
public RetCode CaptureAndIdentify (out long id, out int score, out int quality)
Captura uma imagem de um dedo e tenta encontrar uma biometria semelhante cadastrada no dispositivo. Quando esta função é chamada o dispositivo entra no modo de captura de imagens. Esta função não retorna enquanto um dedo não for capturado, ou o tempo de captura for expirado (30 segundos).
Parâmetros de saída:
- id: long
Número identificador do template encontrado. - score: int
Valor entre 0 e 20000 que define a semelhança entre o dedo capturado e o cadastrado. - quality: int
Valor de 0 a 100 que define a qualidade da imagem do dedo capturado.
public RetCode CaptureAndMatch (long id, int score, int quality)
Captura uma imagem de um dedo e verifica a semelhança com a biometria cadastrada com identificador id. Quando esta função é chamada o dispositivo entra no modo de captura de imagens. Esta função não retorna enquanto um dedo não for capturado, ou o tempo de captura for expirado (30 segundos).
Parâmetros de entrada:
- id: long
Número identificador do template a ser comparado.
Parâmetros de saída:
- score: int
Valor entre 0 e 20000 que define a semelhança entre o dedo capturado e o cadastrado. - quality: int
Valor de 0 a 100 que define a qualidade da imagem do dedo capturado.
public RetCode CancelCapture ()
Cancela a operação de captura atual.
Disponível a partir da versão do firmware: 1.2.0
Gerenciar Templates
public RetCode ExtractTemplateFromImage (uint width, uint height, byte[] image, out string temp, out int quality)
Extrai o template de uma imagem.
Parâmetros de entrada:
- width: uint
Largura da imagem - height: uint
Altura da imagem. - imageBuf: byte[]
Buffer com o conteúdo bitmap da imagem.
Parâmetros de saída:
- temp: string
Base64 do template extraído. - quality: int
Valor de 0 a 100 que define a qualidade da imagem do dedo capturado.
public RetCode MergeTemplates (string temp1, string temp2, string temp3, out string tempFinal)
Mescla 3 templates em um único template. Templates devem pertencer ao mesmo dedo. (Formatos "ISO" e "ANSI" não são suportados para importação de templates)
Parâmetros de entrada:
- temp1: string
Base64 do primeiro template. - temp2: string
Base64 do segundo template. - temp3: string
Base64 do terceiro template.
Parâmetros de saída:
- tempFinal: string Base64 do template mesclado.
public RetCode MatchTemplates (string temp1, string temp2, out int score)
Verifica se 2 templates são iguais. (Formatos "ISO" e "ANSI" não são suportados para importação de templates)
Parâmetros de entrada:
- temp1: string
Base64 do primeiro template. - temp2: string
Base64 do segundo template.
Parâmetros de saída:
- score: int
Valor entre 0 e 20000 que define a semelhança entre os 2 templates.
public RetCode MatchTemplateByID (long id, string temp, out int score)
Verifica se o template temp é igual ao template cadastrado com identificador id. (Formatos "ISO" e "ANSI" não são suportados para importação de templates)
Parâmetros de entrada:
- id: long
identificador do template a ser verificado. - temp: string
Base64 do template.
Parâmetros de saída:
- score: int
Valor entre 0 e 20000 que define a semelhança entre os 2 templates.
public RetCode GetTemplateIDs (out long[] ids)
Carrega os identificadores de todos templates cadastrados.
Parâmetros de saída:
- ids: long[]
Identificadores de todos os templates cadastros no dispositivo.
public RetCode GetTemplate (long id, out string temp)
Carrega o template cadastrado com identificador id.
Parâmetros de entrada:
- id: long
Identificador do templates cadastro no dispositivo.
Parâmetros de saída:
- temp: string
Base64 do template.
public RetCode SaveTemplate (long id, string temp)
Salva o template temp com o identificador id. (Formatos "ISO" e "ANSI" não são suportados para importação de templates)
Parâmetros de entrada:
-
id: long
Identificador do templates cadastro no dispositivo. -
temp: string
Base64 do template.
public RetCode DeleteTemplate (long id)
Deleta o template cadastrado com identificador id.
Parâmetros de entrada:
- id: long
Identificador do templates cadastro no dispositivo.
public RetCode DeleteAllTemplates ()
Deleta todos os template cadastrados no dispositivo.
Configuração do dispositivo
É possível alterar o comportamento do dispositivo atráves do enum ConfigParam.
Este enum é descrito pela tabela abaixo:
Valor | Define | Descrição |
---|---|---|
1 | MIN_VAR | Variância mínima para captura de um dedo. (padrão: "1000") |
2 | SIMILIARITY_THRESHOLD | Valor de 1 a 20000 que determina o valor mínimo para 2 templates serem considerados iguais. Valor 0 para automático (padrão) |
4 | BUZZER_ON | "1" (padrão) ou "0" para ligar ou desligar o buzzer |
5 | TEMPLATE_FORMAT | Configura o formato do template. Valores possíveis: "ICS": Formato proprietário (padrão) "ANSI": Formato ANSI (Somente para exportação de templates) "ISO": Formato ISO (Somente para exportação de templates) "ANSI_PLUS": Formato ANSI com informações proprietárias "ISO_PLUS": Formato ISO com informações proprietárias |
6 | ROTATION | Rotação máxima aceita para que dois dedos sejam aceitos como iguais. Esta rotação é aplicada no sentido horário e anti-horário. Este parâmetro impacta na velocidade de identificação, quanto maior este valor, mais tempo a identificação demorará. Valor de 0 a 180 (padrão: "30") |
7 | DETECT_TIMEOUT | Tempo, em milissegundos, de espera para detecção de um dedo. (padrão: "30000") |
public RetCode SetParameter (ConfigParam config, string value)
Configura o parâmetro config com o valor value.
Parâmetros de entrada:
- config: ConfigParam
Parâmetro a ser configurado - value: string
Valor a ser configurado.
public RetCode GetParameter (ConfigParam config, out string value)
Lê o valor do parâmetro config.
Parâmetros de entrada:
- config: ConfigParam
Parâmetro a ser configurado
Parâmetros de saída:
- value: string
Valor atual do parâmetro.
public RetCode GetDeviceInfo (out string version, out string serialNumber, out string model)
Lê as informações do dispositivo.
Parâmetros de saída:
- version: string
Versão do firmware do dispositivo. - serialNumber: string
Número de série do dispositivo. - model: string
Modelo do dispositivo.
public RetCode UpdateFirmware (string filePath)
Atualiza o firmware do dispositivo com o arquivo em filePath. Este procedimento pode demorar alguns minutos. Por favor, não desconecte o dispositivo durante este período, pois isto pode danificar o dispositivo de forma permanente.
A última versão do fimware pode ser encontrada aqui.
Parâmetros de entrada:
- filePath: string
Caminho completo para o arquivo contendo a atualização de firmware.