Você está na página 1de 77

ActiveX Library Kernel7x.

dll
Interface kernel
Interface alternativo - for visual basic 6, visual basic .net, c#
Activex Middleware for Device 7x Multi-threads
Support Serial 232-485/Tcpip/Usb/Modem/GPRS
Biometric Algorithm Matching

Interface hamster
Activex for Hamster Management

Programmer Advanced Guide


SDK revision 7.2.0.38

Copyright Henry Equipamentos e Sistemas Ltda.


TODOS OS DIREITOS RESERVADOS

Sumrio
Introduo.....................................................................................................................................................................................................8
Alteraes.....................................................................................................................................................................................................9
Funes utilitrias ......................................................................................................................................................................................13
ListaPortasSeriais: WideString; .....................................................................................................................................................13
USB_Remove: WordBool;.............................................................................................................................................................13
EnviaBeep(pThreadIndex: Integer; pBeep: SBeep): WordBool; ...................................................................................................13
Versao: WideString; .......................................................................................................................................................................13
DetectarVelocidade(pThreadIndex: Integer; out pVelocidade: SVelocidade): WordBool;...........................................................13
OnProgresso(pThreadIndex: Integer; pByte: Integer; pByteMax: Integer; pBuffer: Integer; pBufferMax: Integer); ...................13
NumDigitosValidos(pConfiguracao: SConfiguracao): Byte; ........................................................................................................14
TamanhoRegistro(pConfiguracao: SConfiguracao): Byte; ............................................................................................................14
NumDigitosPadraoT(pConfiguracao: SConfiguracao): Byte; .......................................................................................................14
SetorPercentual(pParticionamento: SParticionamento; pSetor: SParticao): Double; ....................................................................14
SetorPercentualEx(pParticionamento: SParticionamento; pSetor: SParticao; pExpansao: SExpansao): Double; ........................14
BeginLargeTranfer(pThreadIndex : Integer); ................................................................................................................................15
EndLargeTranfer(pThreadIndex : Integer); ...................................................................................................................................15
DigitosRange(pPlaca :SPlacaCard; pMinimo : WordBool);..........................................................................................................15
MostRecentFirmware(pConfig: SConfiguracao): WideString; safecall; .......................................................................................15
CancelarOperacao (pThreadIndex: Integer): WordBool;...............................................................................................................15
DataHoraUltimaComunicacao (pThreadIndex: Integer; out pLastCommDateTime: Double): WordBool;..................................15
Utilizao bsica ........................................................................................................................................................................................16
AdicionaCard(pConfig: SComConfig; out pThreadIndex: Integer): WordBool; ..........................................................................16
RemoveCard(pThreadIndex: Integer): WordBool; ........................................................................................................................18
Set485OffNumber(pThreadIndex: Integer; pNumero: Byte): WordBool;.....................................................................................18
SetSincronizar(pThreadIndex: Integer; pSincronizar: WordBool); ...............................................................................................18
ThreadLastError(pThreadIndex: Integer): Integer; ........................................................................................................................19
ErrorDescription (pErrorCode: Integer): WideString; ...................................................................................................................19
KernelLastError: Integer; ...............................................................................................................................................................19

RaiseExceptions : WordBool; ........................................................................................................................................................19


SetConectado(pThreadIndex: Integer; pConectado: WordBool); ..................................................................................................19
SetICMPProtocol(pThreadIndex: Integer; pEnabled: WordBool);................................................................................................19
SetConcentrador (pThreadIndex: Integer; pIsConcentrador: WordBool);.....................................................................................20
ThreadPrioridade(pThreadIndex: Integer; pPrioridade: SPrioridade);...........................................................................................20
EnviaAcionaCtrl (pThreadIndex: Integer; pId : Byte; pAcionaCtrl : SAcionaCtrl); .....................................................................20
setConnResetTimeout (pThreadIndex: Integer; pTimeout: SResetCon); ......................................................................................20
getConnResetTimeout(pThreadIndex: Integer; out pTimeout: SResetCon): WordBool;..............................................................20
Configuraes bsicas ................................................................................................................................................................................21
EnviaConfiguracao(pThreadIndex: Integer; pConfig: SConfiguracao): WordBool; .....................................................................21
RecebeConfiguracao(pThreadIndex: Integer; out pConfig: SConfiguracao): WordBool; ............................................................23
EnviaDadosEmpregador(pThreadIndex: Integer; pEmpregador: SEmpregador): WordBool; ......................................................27
RecebeDadosEmpregador(pThreadIndex: Integer; out pEmpregador: SEmpregador): WordBool; safecall; ..............................27
EnviaUsuarioEquipamento(pThreadIndex: Integer; pUsuarioEquipamento: SUsuarioEquipamento): WordBool;......................28
RecebeListaUsuarioEquipamento(pThreadIndex: Integer): WordBool;........................................................................................28
Rec_UsuarioEquipamento(pThreadIndex: Integer; out pUsuarioEquipamento: SUsuarioEquipamento): WordBool;................28
Add_UsuarioEquipamento(pThreadIndex: Integer; pUsuarioEquipamento: SUsuarioEquipamento): WordBool; ......................28
EnviaListaUsuarios (pThreadIndex: Integer): WordBool;.............................................................................................................29
EnviaCfgControlador (pThreadIndex : Integer; pId : Byte; pConfig : SConfigCtrl): WordBool;.................................................30
RecebeCfgControlador (pThreadIndex : Integer; pId : Byte; out pConfig : SConfigCtrl): WordBool; ........................................30
AlterarVelocidade(pThreadIndex: Integer; pNovaVelocidade: SVelocidade): WordBool; ..........................................................30
EnviaDataHora(pThreadIndex: Integer; pDataHora: TDateTime): WordBool; ............................................................................31
RecebeDataHora(pThreadIndex: Integer; out pDataHora: TDateTime): WordBool;....................................................................31
EnviaDataHoraEx(pThreadIndex: Integer; pDataHoraEx: SDataHoraCompleta): WordBool; ....................................................31
RecebeDataHoraEx(pThreadIndex: Integer; out pDataHoraEx: SDataHoraCompleta): WordBool; ............................................32
EnviaTipoCatraca(pThreadIndex: Integer; pOperacao: SOperacaoCatraca): WordBool; .............................................................32
RecebeTipoCatraca(pThreadIndex: Integer; out pOperacao: SOperacaoCatraca): WordBool; ....................................................32
EnviaMsgPadrao(pThreadIndex: Integer; pMsgPadrao: SMsgPadrao): WordBool; .....................................................................33
RecebeMsgPadrao(pThreadIndex: Integer; out pMsgPadrao: SMsgPadrao): WordBool; ............................................................34
Formatao ou Particionamento.................................................................................................................................................................35
SRFuncoes (pConfig : SConfiguracao; pQtFuncoes : Integer) : Integer; ......................................................................................37
SRFuncoesEspecificas (pConfig : SConfiguracao; pQtFuncoes, pQtFuncoesPorMatr : Integer) : Integer;..................................37

SRFeriados(pConfig : SConfiguracao; pQtFeriados: Integer) : Integer; .......................................................................................37


SRAcionamentos(pConfig : SConfiguracao; pQtAcionamentos: Integer) : Integer; .....................................................................37
SRListaAcesso(pConfig : SConfiguracao; pQtItems: Integer) : Integer;.......................................................................................37
SRPeriodos(pConfig : SConfiguracao; pQtPeriodos: Integer) : Integer; .......................................................................................37
SRHorariosEscalas(pConfig : SConfiguracao; pQtHorarios, pQtPeriodosPorHorario, pQtEscalas, pQtHorariosPorEscala:
Integer) : Integer;....................................................................................................................................................................................38
SRMsgEspecifica(pConfig : SConfiguracao; pQtMatriculas, pQtMsgPorMatr: Integer) : Integer; ..............................................38
EnviaParticionamento(pThreadIndex: Integer; pParticionamento: SParticionamento): WordBool;.............................................38
RecebeParticionamento(pThreadIndex: Integer; out pParticionamento: SParticionamento): WordBool; ....................................39
Inserindo Dados nos setores .......................................................................................................................................................................40
Add_FncEsp_Matricula(pThreadIndex: Integer; pMatricula : WideString);.................................................................................40
Add_FncEsp_Funcao (pThreadIndex: Integer; pMatricula : WideString; pFuncao : SFuncaoEx); ..............................................40
Add_Funcao(pThreadIndex: Integer; pFuncao: SFuncao);............................................................................................................40
EnviaFuncoes(pThreadIndex: Integer): WordBool;.......................................................................................................................40
RecebeFuncoes(pThreadIndex: Integer): WordBool; ....................................................................................................................40
Rec_Funcao(pThreadIndex: Integer; out pFuncao: SFuncao): WordBool; ...................................................................................41
Rec_FncEsp_Matricula(pThreadIndex: Integer; out pMatricula : WideString): WordBool; ........................................................41
Rec_FncEsp_Funcao(pThreadIndex: Integer; pMatricula : WideString; out pFuncao : SFuncaoEx): WordBool;.......................41
Add_Feriado(pThreadIndex: Integer; pDia: TDateTime);.............................................................................................................41
EnviaFeriados(pThreadIndex: Integer): WordBool; ......................................................................................................................41
RecebeFeriados(pThreadIndex: Integer): WordBool;....................................................................................................................42
Rec_Feriado(pThreadIndex: Integer; out pDia: TDateTime): WordBool; ....................................................................................42
Add_Acionamento(pThreadIndex: Integer; pAcionamento: SAcionamento); ..............................................................................42
EnviaAcionamentos(pThreadIndex: Integer): WordBool; .............................................................................................................42
RecebeAcionamentos(pThreadIndex: Integer): WordBool; ..........................................................................................................42
Rec_Acionamento(pThreadIndex: Integer; out pAcionamento: SAcionamento): WordBool; ......................................................43
Add_Periodo(pThreadIndex: Integer; pPeriodo: SPeriodo);..........................................................................................................43
EnviaPeriodos(pThreadIndex: Integer): WordBool; ......................................................................................................................43
RecebePeriodos(pThreadIndex: Integer): WordBool; ...................................................................................................................43
Rec_Periodo(pThreadIndex: Integer; out pPeriodo: SPeriodo): WordBool; .................................................................................44
Add_Horario(pThreadIndex: Integer; pPeriodos: WideString; pHorarioIndex : Byte) : WordBool; ............................................44
Add_Escala (pThreadIndex: Integer; pEscala: SEscala; pIndexEscala : Byte) : WordBool; ........................................................44

EnviaHorarios(pThreadIndex: Integer): WordBool; ......................................................................................................................44


RecebeHorarios(pThreadIndex: Integer): WordBool; ...................................................................................................................45
Rec_Horario(pThreadIndex: Integer; out pPeriodos: WideString): WordBool;............................................................................45
Rec_Escala(pThreadIndex: Integer; out pEscala: SEscala): WordBool; .......................................................................................45
Add_ItemAcesso(pThreadIndex: Integer; pItemAcesso: SItemAcesso); ......................................................................................46
EnviaListaAcesso(pThreadIndex: Integer): WordBool; ................................................................................................................47
EnviaListaAcessoThd(pThreadIndex: Integer): WordBool; ..........................................................................................................47
RecebeListaAcesso(pThreadIndex: Integer): WordBool; ..............................................................................................................47
Rec_ItemAcesso(pThreadIndex: Integer; out pItemAcesso: SItemAcesso): WordBool;..............................................................47
Add_MsgEspec(pThreadIndex: Integer; pMsgEspec: SMsgEspecifica); ......................................................................................47
EnviaMsgsEspecificas(pThreadIndex: Integer): WordBool; .........................................................................................................49
RecebeMsgsEspecificas(pThreadIndex: Integer): WordBool;.......................................................................................................49
Rec_MsgEspec(pThreadIndex: Integer; out pMsgEspec: SMsgEspecifica): WordBool; .............................................................49
Trabalhando offline ....................................................................................................................................................................................50
ExistemRegistros(pThreadIndex: Integer; out pExistem: WordBool): WordBool;.......................................................................50
RecebeQtRegistros(pThreadIndex: Integer; out pQtRegs : Integer): WordBool;..........................................................................50
RecebePacote (pThreadIndex: Integer): WordBool;......................................................................................................................50
QuantRegsColetados(pThreadIndex: Integer): WordBool; ...........................................................................................................50
RegistroOff(pThreadIndex: Integer; out pRegistro: SRegistro): WordBool; ................................................................................51
ApagaUltimoPacote (pThreadIndex: Integer): WordBool; ............................................................................................................51
RecuperaRegistros(pThreadIndex: Integer): WordBool; ...............................................................................................................51
ColetaEventos(pThreadIndex: Integer; const pPathAFD: WideString): WordBool;.....................................................................52
ColetaEventosEx(pThreadIndex: Integer; const pPathAFD: WideString; pData: TDateTime; pEmpregador: SEmpregador):
WordBool; ..............................................................................................................................................................................................52
PararColetaEventos(pThreadIndex: Integer): WordBool;..............................................................................................................52
Trabalhando on-line ...................................................................................................................................................................................53
OnStatus (pThreadIndex, pDeviceId, pStatus: Integer); ................................................................................................................53
OnRegistro(pThreadIndex: Integer);..............................................................................................................................................53
RegistroOn(pThreadIndex: Integer; out pRegistro : SRegistro); ...................................................................................................53
RespostaOn(pThreadIndex: Integer; pResposta : SResposta);.......................................................................................................55
RespostaStatus(pThreadIndex: Integer; pIndexMensagem : Integer); ...........................................................................................56
OnExistOff(pThreadIndex: Integer; pQtRegs: Integer); ................................................................................................................56

OnImagemDSP(pThreadIndex: Integer; const pImagem: WideString);........................................................................................56


OnColetaEventos(pThreadIndex : Integer; pResultado : Boolean; pEventos : integer; pPathAFD : WideString);.......................56
OnOperacao (pThreadIndex : Integer; pResultado : Boolean; pCodigoOp: Integer; pParam: WideString); ................................57

Cadastro de Digitais Modelo 1 e 2 .....................................................................................................................................................58


Bio_CriaDigitalM1M2(const pMatricula: WideString; pFinger: Byte; pMaster: WordBool; out pTemplateF: STemplate7x; out
pTemplateFl: STemplate7x; out pTemplateFH: STemplate7x): WordBool;.........................................................................................58
Cadastro de Digitais Modelo 3...................................................................................................................................................................59
Capture(out pTemplate: WideString) : WordBool;........................................................................................................................59
CaptureContinuous(out pTemplate: WideString) : WordBool; .....................................................................................................59
CaptureImage(out pImgTemplate: WideString; out pStatus: WordBool); ...................................................................................59
AbortCapturing; .............................................................................................................................................................................59
Verify (pTemplate: WideString) : WordBool; ...............................................................................................................................59
Timeout : Integer;...........................................................................................................................................................................59
Brightness : Integer; .......................................................................................................................................................................59
Sensitivity: Integer .........................................................................................................................................................................59
Quality: Integer ..............................................................................................................................................................................59
SetImagem(pHandle, pTop, pLeft, pHeight, pWidth : Integer); ....................................................................................................60
SetUser(pTemplate, pMatricula : WideString; pMaster : Boolean) : WideString; ........................................................................60
Manuteno de Digitais..............................................................................................................................................................................61
Bio_RecListaUsuarios(pThreadIndex: Integer): WordBool; .........................................................................................................61
Bio_GetUsuario(pThreadIndex: Integer; out pUsuario: SUsuarioBioEx): WordBool; .................................................................61
Bio_UsuariosQuant(pThreadIndex: Integer; out pQuantidade: Integer): WordBool; ...................................................................61
Bio_UsuarioExiste(pThreadIndex: Integer; const pUsuarioID: WideString; out pExiste: WordBool): WordBool;.....................62
Bio_RecTemplate(pThreadIndex: Integer; const pUsuarioID: WideString; out pTemplate: WideString): WordBool; ...............62
Bio_RecUsuario(pThreadIndex: Integer; pPrimeiro: WordBool; out pUsuario: SUsuarioBioEx): WordBool; ...........................62
Bio_GetMaxQuantLista(pThreadIndex : Integer; out pQt : Integer): WordBool; .........................................................................63
Bio_EnvTemplate(pThreadIndex: Integer; const pTemplate: WideString): WordBool;...............................................................63
Bio_DelTemplate(pThreadIndex: Integer; const pUsuarioID: WideString; pFingerOnly : WordBool): WordBool; ...................63
Bio_DelTemplateTodas(pThreadIndex: Integer): WordBool; .......................................................................................................63
Bio_GeraUserID(pBiometria: SBiometria; const pMatricula: WideString; pDedo: Byte; pMaster: WordBool): WideString;....64
Bio_UsuariosQuantLivre(pThreadIndex: Integer; out pQuantidade: Integer): WordBool;...........................................................64

Manuteno de Digitais Avanada.............................................................................................................................................................65


Bio_RecConfiguracaoF_FL(pThreadIndex: Integer; out pConfig: SDspcfg_F_FL): WordBool; ................................................65
Bio_EnvConfiguracaoF_FL(pThreadIndex: Integer; pConfig: SDspcfg_F_FL): WordBool; ......................................................65
Bio_RecConfiguracaoS(pThreadIndex: Integer; out pConfig: SDspcfg_S): WordBool;..............................................................65
Bio_EnvConfiguracaoS(pThreadIndex: Integer; pConfig: SDspcfg_S): WordBool;....................................................................65
Bio_CfgDefaultF_FL(pTipo: SCfgDspPadrao): SDspcfg_F_FL; .................................................................................................65
Biometria Online ........................................................................................................................................................................................66
Bio_CarregaTemplate (pTemplateS : WideString): WordBool;....................................................................................................66
Bio_DropTemplates; ......................................................................................................................................................................66
Bio_ProcuraTemplate (pTemplate, pMatricula : WideString): WideString; .................................................................................66
SetSecurityLevel(pLevel : Byte); ...................................................................................................................................................66
SetSearchTimeout (pSegundos : Integer);......................................................................................................................................66
Exportao e Importao de Dados............................................................................................................................................................67
ExportConfiguracao(const pCaminho: WideString; pConfiguracao: SConfiguracao): WordBool; ..............................................67
ImportConfiguracao(const pCaminho: WideString; out pConfiguracao: SConfiguracao): WordBool; ........................................67
SaveAsTemplate7x(const pCaminho: WideString; pTemplate: STemplate7x): WordBool; ........................................................67
OpenTemplate7x(const pCaminho: WideString; out pTemplate: STemplate7x): WordBool; ......................................................67
USB_RecebeCartucho(pThreadIndex: Integer; const pFileName: WideString): WordBool; .......................................................67
USB_EnviaCartucho(pThreadIndex: Integer; const pFileName: WideString): WordBool;..........................................................67
Redistribuio.............................................................................................................................................................................................68
Constantes de erro ......................................................................................................................................................................................69
Anexos........................................................................................................................................................................................................71
Alteraes kernel7x Alternativo 7.2.0.22.......................................................................................................................................71
Utilizando Faixas de Acesso ..........................................................................................................................................................77

ActiveX Kernel7x - pgina 8

Introduo
O ActiveX COM+ .NET kernel7x oferece suporte total a comunicao e
configurao de equipamentos da famlia 7x I, II, III, V, VI e Famlia IP. Suporta conexo
Serial 232-485/ TcpIP / USB / Modem / GPRS utilizando tipos de dados e mtodos para
simples integrao.
Alm do gerenciamento dos equipamentos Henry, est e ActiveX tambm oferece
suporte a captura facilitada de digitais a partir de scanner biomtrico.
Este Activex possui vrias interfaces, so elas:
Kernel Interface para controle de equipamentos da gerao 7x
Alternativo Interface semelhante ao Kernel, porm desenvolvida para integradores
.NET, utiliza apenas variveis de tipo primitivo nas suas funes .
Hamster Interface especializada em captura de digitais via leitores biomtricos.
Ao receber este pacote SDK voc ter acesso a exemplo s de utilizao da dll. Antes
de iniciar a integrao entenda qual a sua necessidade e direcione o desenvolvimento, isso
tornar a integrao mais rpida e fcil.
Esta documentao possui explicaes sobre os mtodos das interface s. No caso da
interface kernel/alternativo esto descritos o mtodo original e, se existir, a referncia no
alternativo.

Para dvidas ou sugestes acesse o espao 7x Interativo na internet.


http://www.henry.com.br/pt/contato.htm

ActiveX Kernel7x - pgina 9

Alteraes
Verso 7.2.0.38
Alterado sistema de tratamento de registros final de lista (0xDE) na coleta de
registros. Eles so tratados e enviados aplicao.
Otimizado sistema de recupera o de registros na coleta de registros.
Corrigido erro no envio de usurios para equipamento Orion6 no Kernel
Alternativo.

Verso 7.2.0.37
Implementada otimizao no sistema de verifi cao de conexo com o equipamento
no modo de comunicao online.
Implementado log com a descrio do erro de conexo para modo Tcp/IP.

Verso 7.2.0.36
Implementados mais logs de operaes.

Verso 7.2.0.35
Implementado recurso de informao do build do kernel no log.
Implementada proteo contra deadlock na validao online com pooling.

Verso 7.2.0.34
Implementadas validaes para interpretao dos registros na coleta de registros.
Implementado mtodo para obter a data e hora da ltima tentativa de comunicao
realizada com o equipamento.
Implementadas otimizaes no sistema de comunicao online.
Implementado suporte para mais flags no registro offline.

Verso 7.2.0.33

Implementada rotina para envio da lista de acesso em thread.


Implementado suporte para envio de lista de usurios pr -carregada.
Impelmentado evento para informar resultado do envio.
Implementado mtodo para finalizao da execuo da operao.

ActiveX Kernel7x - pgina 10

Verso 7.2.0.32
Implementadas protees na coleta de eventos de Orion 6.

Verso 7.2.0.31
Implementado evento de coleta parcial de eventos para Orion 6.

Verso 7.2.0.30
Implementada validao para envio de dados do empregador.

Verso 7.2.0.29
Implementada validao do nmero serial do equipamento.
Adicionado suporte para confi gurao do timeout de processamento online do
bilhete.

Verso 7.2.0.28
Otimizaes para coleta de eventos.

Verso 7.2.0.27
Implementado suporte para equipamentos Orion 6. Funes de gerenciamento de
empregador, usurios do equipamento e coleta dos re gistros foram implementadas.

Verso 7.2.0.26

Implementado suporte para status de porta forada.


Revisado envio de broadcast para equipamentos.
Correo na adio de equipamento GPRS para o Kernel Alternativo.
Implementado tempo configurvel para reinicializao da porta GPRS atravs da
funo setConnResetTimeout.
Propriedade setConectado configurada como padro = verdadeiro.
Otimizao no evento OnRegistro.
Implementado suporte para configuraes de concentradora no Kernel Alternativo.

ActiveX Kernel7x - pgina 11


Verso 7.2.0.25
Correo no envio de particionamento para cartucho USB .
Implementada rotina para receber verso de firmware do equipamento.

Verso 7.2.0.24

Otimizao na velocidade da comunicao.


Implementado suporte ao recurso de resposta por status.
Implementado propriedade para verificar qualidade da digital cadastrada.
Implementada funo para verificao de particionamento da memria do
equipamento com cartucho com mais de 1 memria.
Implementada proteo contra envio e recepo de digitais corrompidas.

ActiveX Kernel7x - pgina 12

Verso 7.2.0.23

Reestruturao interna no envio e recebimento de informaes.


Reestruturao interna nas rotinas de biometria.
Incrementada segurana durante comunicao OnOff.
Incrementada a estabilidade da comunicao.
Suporte ao modo de comunicao via GPRS
Inserida proteo e validaes no envio de configuraes USB
Suporte ao recurso Faixas de Acesso
Implementada funcionalidade de captura de imagem

Verso 7.2.0.22
Reestruturao da coleta de registros via USB
Correes e implementaes de rotina s no Kernel Alternativo (ver anexos)

Verso 7.2.0.21
Otimizao da recuperao de registros via USB
Otimizao na comunicao TCP/IP e Serial
Implementao interna para limpeza da lista de acesso antes de novo envio

Verso 7.2.0.18
Correo interna na recuperao de registros via USB

Verso 7.2.0.17
Correo interna na comunicao Serial 485
Correo na utilizao do novo driver USB
Otimizao do gerenciamento de sincronizao de catraca

ActiveX Kernel7x - pgina 13

Funes utilitrias
Em laranja mtodos alternativos .
Quando em modo alternativo nos mtodos com retorno direto de valor utilize
ThreadLastError para consultar sucesso na operao.
ListaPortasSeriais: WideString;
Esta propriedade retorna uma strin g com as portas COM encontradas na mquina, por
exemplo para COM1 e COM2 retorna: COM1-COM2.

ListaPortasSeriais : WideString ;
USB_Remove: WordBool;
Este mtodo desativa o cartucho USB permitindo remoo segura do computador.

USB_Remove : WordBool;
EnviaBeep(pThreadIndex: Integer; pBeep: SBeep): WordBool;
Este mtodo dispara um alerta sonoro no equipamento, os valor possvel de SBeep so
cbLiberado, cbNegado.

EnviaBeep(pThreadIndex: Integer; pBeep: SB eep): WordBool;


V e r s a o : W i d e S tr i n g ;
Este mtodo retorna a verso da biblioteca ActiveX em uso.

Versao: WideString;
D e te c ta r V e l o c i d a d e (p T h r e a d I n d e x : I n te g e r ; o u t p V e l o c i d a d e : S V e l o c i d a d e ):
W o rd B o o l ;
Este mtodo determina e retorna a velocidade da comunicao serial .

DetectarVelocidade(pThreadIndex: I nteger): SVelocidade;


OnProgresso(pThreadIndex: Integer; pByte: Integer; pByteMax: Integer;
pBuffer: Integer; pBufferMax: Integer);
Este evento permite monitoramento das transferncias de envio e recepo de dados. til
para apresentar uma interface ao us urio.
Comunicaes USB ainda no suportam este recurso.

ActiveX Kernel7x - pgina 14


OnProgresso(pThreadIndex: Integer; pByte: Integer; pByteMax:
Integer; pBuffer: Integer; pBufferMax: Integer);
NumDigitosValidos(pConfiguracao: SConfiguracao): Byte;
Executa os clculos necessrios baseados em diversos parmetros da configurao para
retornar a quantidade de dgitos vlidos da matrcula em uso pelo equipamento.

NumDigitosValidos: Byte;
Na interface alternativa este mtodo no requer parmetros porm utiliza a ltima
configurao carrega como referencia, veja envia e rece be configuraes para maiores
detalhes.

TamanhoRegistro(pConfiguracao: SConfiguracao): Byte;


Executa os clculos necessrios baseados em diversos parmetros da configurao para
retornar a o tamanho de cada registr o na memria do equipamento.

TamanhoRegistro: Byte;
Na interface alternativa este mtodo no requer parmetros porm utiliza a ltima
configurao carrega como referencia, veja envia e rece be configuraes para maiores
detalhes.

NumDigitosPadraoT(pConfiguracao: SConfiguracao): Byte;


Retorna nmero de dgitos de acordo com arquivo de configurao HenryT.dat que deve
ser indicado dentro da configurao .

NumDigitosPadraoT: Byte;
SetorPercentual(pParticionamento: SParticionamento; pSetor: SParticao):
D o u b l e;
Este mtodo retorna o percentual ocupado por um determinado setor na memria. Vide
EnviaParticionamento.

SetorPercentual(pFuncoes, pFeriados, pAcionamentos, pListaAcesso,


pPeriodos, pHorarios, pMsgEspecifica, pRegistros : Word ; pSetor:
SParticao): Double;
SetorPercentualEx(pParticionamento: SParticionamento; pSetor: SParticao;
pExpansao: SExpansao): Double;
Este mtodo retorna o percentual ocupado por um determinado setor na memria. O
parmetro pExpanso indica quantas memrias existem no cartucho. C onfigure o valor 0
(emb2) para cartucho com 2 memrias e o valor 1 (emb8) para cartucho com 8 memrias.
Vide EnviaParticionamento.

ActiveX Kernel7x - pgina 15


SetorPercentual(pFuncoes, pFeriados, pAcionamentos, pListaAcesso,
pPeriodos, pHorarios, pMsgEspecifica, pRegistros : Word ; pSetor:
SParticao; pExpansao: SExpansao ): Double;
BeginLargeTranfer(pThreadIndex : Integer);
Informa a thread que ser iniciada uma operao offline com diversas rajadas de
comunicao e a conexo pode ser mantida aberta neste perodo. Este mtodo oferece
maior performance para tais operaes. Exemplos de uso: Coleta por pacotes,
manuteno de digitais.

BeginLargeTranfer(pThreadIndex : Integer);
EndLargeTranfer(pThreadIndex : Integer);
Finaliza sesso de comunicao do BeginLargeTranfer.

EndLargeTranfer(pThreadIndex : Integer);
DigitosRange(pPlaca :SPlacaCard; pMinimo : WordBool);
Retorna mnimo ou mximo de dgitos suportados pelo modelo.

DigitosRange(pPlaca : SPlacaCard; pMinimo : WordBool );


MostRecentFirmware(pConfig: SConfiguracao): WideString; safecall;
Este mtodo retorna a verso mais atual do firmware existente para o equipamento em
uso.

MostRecentFirmware(pPlacaCard: SPlacaCard; pOrion: WordBool) :


WideString;
C a n c e l a r O p e r a c a o (p T h r e a d I n d e x : I n te g e r ): W o r d B o o l ;
Este mtodo cancela a execu o de um comando que est sendo executado pelo
Kernel7x.

CancelarOperacao (pThreadIndex; integer) : WordBool;


DataHoraUltimaComunicacao (pThreadIndex: Integer; out
pLastCommDateTime: Double): WordBool;
Este mtodo retorna a data hora da ltima tentativa de comunicao realizada com o
equipamento.

DataHoraUltimaComunicacao (pThreadIndex: Integer; out


pLastCommDateTime: Double): WordBool;

ActiveX Kernel7x - pgina 16

Utilizao bsica
AdicionaCard(pConfig: SComConfig; out pThreadIndex: Integer):
W o rd B o o l ;
Este mtodo adiciona uma thread de comunicao ao Kernel.
A Estrutura SComConfig define parmetros desta thread.
O retorno >= 0 representa sucesso ao instanciar a thread de comunicao.

Estrutura SComConfig
Atributo

Tipo

Descrio

Tcp

SComTcp

Estrutura de parmetros para comunicao


TcpIp

Serial

SComSerial

Estrutura de parmetros para comunicao


Serial

Modem

SComModem

Estrutura de parmetros para comunicao


Modem

SModoComunicacao

Configurao do modo de comunicao


com o equipamento, dentro da enume rao:
cmcOffline : Equipamento toma deciso de
ponto e acesso sem necessidade do
computador e armazena marcaes de
acordo com a configurao.
cmcOnline : Equipamento solicita deciso
exclusivamente ao computador, marcaes
so armazenadas no computador e m tempo
real.
cmcOnOff: Modo online quando
computador disponvel, e offline livre para
todos quando computador indisponvel .
cmcOnOffCtrl: Trabalha como onoff porm
controla acesso em offline segundo lista .

ModoComunicacao

TipoComunicacao

STipoComunicacao

IsCatraca

Boolean

Configurao do canal de comunicao


dentro da enumerao:
ctcSerial: Comunicao Serial 232
ctcTcpIp: Comunicao TcpIp
ctcUsb: Comunicao Usb
ctcModem: Comunicao Modem
ctcSerial485: Comunicao Serial 485
ctcGPRS: Comunicao GPRS
Determina se equipamento catraca, est
configurao interfere em diversos pontos
de gerenciamento do equipamento no
kernel

ActiveX Kernel7x - pgina 17

Estrutura SComTcp
Atributo

Tipo

Descrio

Ip

String

Endereo IP v4 do equipamento ou
roteador.

Porta

Inteiro

Porta de conexo no equipamen to ou


roteador. Padro 3000.

String

Opcional, o preenchimento indica


comunicao DHCP e o gerenciamento
ser realizado pelo kernel, caso contrrio
enviar vazio

Mac

Estrutura SComSerial
Atributo

Tipo

Descrio

NumeroRelogio

String

Nmero do equipamento, usado para


comunicao, suporta valores de 1 at 85,
outros valores so obtidos atravs
emulao do seu software.

Porta

String

Porta COM para conexo. Ex: COM1

String

Velocidade de comunicao serial dentro da


enumerao:
cv9600: 9600bps
cv19200: 19200bps
cv57600: 57600bps
cv115200: 115200bps

Velocidade

Estrutura SComModem
Atributo

Tipo

Descrio

Fone

String

Nmero do fone para conexo

Porta

String

Porta COM onde esta instalado o modem

ActiveX Kernel7x - pgina 18

Estrutura SComGPRS
Atributo

Tipo

Descrio

Porta

Inteiro

Porta que ser utilizada na comunicao via


GPRS.

AdicionaCardSerial(pNumero : Byte; pPorta : WideString; pVelocidade


: SVelocidade; pCatraca : WordBool ; pModoComunicacao :
SModoComunicacao) : Integer;
AdicionaCardTcpip(pIp, pMac : WideStrin g; pPorta : Integer; pCatraca :
WordBool; pModoComunicacao : SModoComunicacao) : Integer;
AdicionaCardUsb(pCatraca : WordBool) : Integer;
AdicionaCardModem(pPorta, pFone : WideString pCatraca : WordBool)
: Integer;
AdicionaCardSerial485(pNumero : Byte; pPorta : WideString;
pVelocidade : SVelocidade; pCatraca : WordBool; pModoComunicacao
: SModoComunicacao) : Integer;
AdicionaCardGPRS(pCatraca: WordBool; pPorta: Integer;
pModoComunicacao: SModoComunicacao): Integer ;
Os mtodos alternativos de adi o de equipamento dividem a estrutura SComConfig,
facilitando o entendimento dos mtodos necessrios para cada comunicao.

RemoveCard(pThreadIndex: Integer): WordBool;


Este mtodo exclui a thread indicada.

RemoveCard(pThreadIndex: Integer): WordBool;


Set485OffNumber(pThreadIndex: Integer; pNumero: Byte): WordBool;
A comunicao 485 est inversamente relacionada ao conceito multi -threads do Kernel. O
gerenciamento online feito de forma automtica, porm para execuo da comunicao
com um determinado equipamento necessrio indicar qual j que todos esto na mesma
thread, esta indicao acontece atravs do nmero do equipamento .

Set485OffNumber (pThreadIndex: Integer ; pNumero : Byte): WordBool;


S e tS i n c r o n i z a r (p T h r e a d I n d e x : I n te g e r ; p S i n c r o n i z a r : W o r d B o o l );
Este mtodo define se o equipamento indicado deve verificar e atualizar se necessrio a
data e hora a cada batida on-line.

ActiveX Kernel7x - pgina 19


SetSincronizar(pThreadIndex: Integer ; pSincronizar : WordBool ):
WordBool;
T h r e a d L a s tE r r o r (p T h r e a d I n d e x : I n te g e r ): I n t e g e r ;
Esta propriedade retorna o ltimo erro ocorrido na thread. As constantes de erro podem ser
encontradas no fim da documentao .

ThreadLastError(pThreadIndex: Integer): Integer;


E r r o r D e s c r i p ti o n (p E r r o r C o d e : I n te g e r ) : W i d e S tr i n g ;
Retorna a descrio do erro de acordo com o cdigo.

ErrorDescription(pErrorCode: Integer): WideString;


KernelLastError: Integer;
Esta propriedade retorna o ltimo erro ocorrido no kernel. As constantes de erro podem ser
encontradas no fim da documentao.

KernelLastError: Integer;
R a i s e E x c e p ti o n s : W o r d B o o l ;
Este mtodo define a exibio de mensagem dos erros. O Padro desativado.

RaiseExceptions : WordBool;
S e tC o n e c ta d o (p T h r e a d I n d e x : I n te g e r ; p C o n e c ta d o : W o r d B o o l );
Este mtodo permite conectar e desconectar um equipame nto. Usado para atualizaes de
firmware ou compartilhar um canal de comunicao.

SetConectado(pThreadIndex: Integer; pConectado: WordBool);


SetICMPProtocol(pThreadIndex: Integer; pEnabled: WordBool);
Este mtodo permite conectar e desconectar um equipa mento. Usado para atualizaes de
firmware ou compartilhar um canal de comunicao.

SetICMPProtocol (pThreadIndex: Integer; pEnabled: WordBool);

ActiveX Kernel7x - pgina 20

S e tC o n c e n tr a d o r (p T h r e a d I n d e x : I n te g e r ; p I s C o n c e n tr a d o r : W o r d B o o l );
Este mtodo determina que a thread esta gerenciando um concentrador. Essa
configurao interfere na interpr etao de registros entre outros dados e operaes.

SetConcentrador(pThreadIndex : Integer; p IsConcentrador :


WordBool);
ThreadPrioridade(pThreadIndex: Integer; pPrioridade: SPrioridade);
Este mtodo define a prioridade da comunicao com o equipamento indicado.

ThreadPrioridade(pThreadIndex: Integer; pPrioridade: SPrioridade);


EnviaAcionaCtrl (pThreadIndex: Integer; pId : Byte; pAcionaCtrl :
S A c i o n a C tr l );
Este mtodo envia acionamento de reles ao controlador sem realizao de marcao.

EnviaAcionaCtrl(pThreadIndex: Integer; p Id : Byte; pAcionaCtrl :


SAcionaCtrl);
setConnResetTimeout (pThreadIndex: Integer; pTimeout: SResetCon);
Este mtodo define o intervalo de reinicializao de porta para equipamentos GPRS.

setGPRSResetTimeout (pThreadIndex: Integer; pTimeout: SResetCon);


getConnResetTimeout(pThreadIndex: Integer; out pTimeout: SResetCon):
W o rd B o o l ;
Este mtodo retorna o intervalo de reinicializao de porta definido para equ ipamentos
GPRS.

getGPRSResetTimeout(pThreadIndex: Integer; out pTimeout:


SResetCon);

ActiveX Kernel7x - pgina 21

Configuraes bsicas
EnviaConfiguracao(pThreadIndex: Integer; pConfig: SConfiguracao):
W o rd B o o l ;
Este mtodo envia configurao para o equipamento indicado. Para a interface
kernel7x.alternativo ser necessrio armazenar a configurao em cach antes de realizar
as operaes de envio e outras como operaes SR (Size Required).

cfg_setReles(ReleIndex : Byte; Status : SReleStatus; TipoNANF :


SReleNANF; Tempo : Byte);
Neste mtodo ReleIndex informa o rele de 0 a 4 e os demais parmetros a configurao do
mesmo.

cfg_setLeitores (Leitor1, Leitor2, Leitor3 : SLeitor);


cfg_setCodigoBarras(PadraoD, Letras, PadraoLivre,
DigitosAutomatico, PadraoT, OcultarDigitos : WordBool);
cfg_setRevista(Tipo : STipoRevista; Percentual : Byte);
cfg_setEmpresas(Empresa1, Empresa2, Empresa3, Empresa4,
Empresa5 : WideString);
cfg_setCtrlAcessoEx(Gravacao, AtivarMaster, Sinaliza50Percent,
SenhaPadraoHenry, Catraca, CatracaInvertida, CatracaDupl a : WordBool);
cfg_setControles(BloqueiaPeriodo, BiometriaOnline,
FuncoesEspecificas, CatBioLiberaAmbos, Visitantes, Touch, AutoOn :
WordBool);
cfg_setAntiPassBack(Habilitado, EntradaSaida : WordBool; Tempo :
Byte);
cfg_setSensores(SensorIndex : Byte; Habi litado, Porta, Botao, Rele1,
Rele2, Rele3, Rele4, Rele5 : WordBool);

ActiveX Kernel7x - pgina 22

Neste mtodo SensorIndex informa o sensor de 0 a 1 e os demais parmetros a


configurao do mesmo.

cfg_setConfig(ModoComunicacao : SModoComunicacao; Teclado :


STeclado; NumDigitos, Niv elAcesso, ToquesAtender : Byte; DigitosSel :
SDigitos; SenhaMenu : WordBool; Senha : WideString; CtrlAcesso :
SCtrlAcesso);
cfg_setControleLeitoras(pLeitoraVerificaDigital, pBiometria11:
WordBool);
cfg_getControleTempos(out pTimeoutProcessamentoOnline,
pLatenciaOffline: Integer);
cfg_setControleTempos(pTimeoutProcessamentoOnline,
pLatenciaOffline: Integer);
EnviaConfiguracao(pThreadIndex : Integer ) : WordBool;
Envia a configurao armazenada com os mtodos alternativos apresentados acima.

ActiveX Kernel7x - pgina 23

RecebeConfiguracao(pThreadIndex: Integer; out pConfig: SConfiguracao):


W o rd B o o l ;
Este mtodo recebe configurao do equipamento indicado.

RecebeConfiguracao(pThreadIndex : Integer ) : WordBool;


Recebe a configurao do equipamento e armazena para que os dados sejam obtidos com
os mtodos alternativos apresentados abaixo.

cfg_getInfo(out Versao : WideString; out Placa : SPlacaCard; out


Expansao : WordBool; out Orion : WordBool; out Biometria : SBiometria);
cfg_getReles(ReleIndex : Byte; Status : SReleStatus; TipoNA NF :
SReleNANF; Tempo : Byte);
Neste mtodo ReleIndex informa o rele de 0 a 4 e os demais parmetros a configurao do
mesmo.

cfg_getLeitores (out Leitor1, Leitor2, Leitor3 : SLeitor);


cfg_getCodigoBarras(out PadraoD, Letras, PadraoLivre,
DigitosAutomatico, PadraoT, OcultarDigitos : WordBool);
cfg_getRevista(out Tipo : STipoRevista; out Percentual : Byte);
cfg_getEmpresas(out Empresa1, Empresa2, Empresa3, Empresa4,
Empresa5 : WideString);
cfg_getCtrlAcessoEx(out Gravacao, AtivarMaster, Sinaliza50Percent,
SenhaPadraoHenry, Catraca, CatracaInvertida, CatracaDupla : WordBool);
cfg_getControles(out BloqueiaPeriodo, BiometriaOnline,
FuncoesEspecificas, CatBioLiberaAmbos, Visitantes, Touch, AutoOn :
WordBool);
cfg_getAntiPassBack(out Habilitado, EntradaSaida : W ordBool; Tempo
: Byte);
cfg_getSensores(SensorIndex : Byte; out Habilitado, Porta, Botao,
Rele1, Rele2, Rele3, Rele4, Rele5 : WordBool);

ActiveX Kernel7x - pgina 24

Neste mtodo SensorIndex informa o sensor de 0 a 1 e os demais parmetros a


configurao do mesmo.

cfg_getConfig(out ModoComunicacao : SModoComunicacao; out


Teclado : STeclado; out NumDigitos, NivelAcesso, ToquesAtender : Byte; out
DigitosSel : SDigitos; out SenhaMenu : WordBool; out Senha : WideString;
out CtrlAcesso : SCtrlAcesso);
cfg_getControleLeitoras(out pLeitora VerificaDigital,
WordBool); safecall;

pBiometria11:

ActiveX Kernel7x - pgina 25

Estrutura SConfiguracao
Atributo
Versao

PlacaCard
Orion

Tipo
String

SPlacaCard
Boolean

Expansao

Boolean

Descrio
Verso do Firmware
Modelo do Equipamento dentro
da enumerao:
cpcCardI, cpcCardII,
cpcCardIII, cpcCardIV,
cpcCardV, cpcTikko,
cpcConcentrador, cpcProxIP
Informa se modelo mecnico
Orion
Informa se cartucho de
memria possui memria com 4
chips
Determina modo de trabalho do
equipamento dentro da
enumerao:

cmcOffline =
Equipamento armazena
registros para coleta posterior

cmcOnline =
Equipamento realiza marcaes
com armazenamento e tomada
de deciso no servidor em
tempo real.

cmcOnOff = Trabalha
Offline ou Online
automaticamente dependendo
da disponibilidade do servidor.

cmcOnOffCtrl =OnOff
porm consultando lista de
acesso em offline

ModoComunicacao SModoComunicacao

Teclado
Reles

STeclado
SReles

Leitores
NivelAcesso

SLeitores
Byte

CodigoBarras
NumDigitos
Revista
SenhaMenu

SConfigBarCode
Byte
SConfigRevista
Boolean

Determina modo de operao


do teclado, dentro da
enumerao: ctDesativado ,
ctPerguntaES, ctLeitor1,
ctLeitor2, ctLeitor3Bio,
ctAtalhoFuncoes
Configurao dos reles de 1 a 5
Configurao dos leitores de 1
a3
Reservado
Configuraes de Cdigo de
Barras
Quantidade de dgitos do carto
Opes de revista offline
Menu esta protegido por senha

Somente leitura

ActiveX Kernel7x - pgina 26

String

5 caracteres numricos com a


senha do menu

DigitosSel

SDigitos

Digitos selecionados, a string


atende a concatenao padro
do kernel, dgito formatado em
3 casas e concatenado.
Ex: 001003005

Empresas

SEmpresas

Reservado

Biometria
CtrlAcesso
CtrlAcessoEx

SBiometria
SCtrlAcesso
SCtrlAcessoEx

Modelo da biometria do
equipamento
Configuraes de Acesso
Configuraes extra de acesso

ToquesAtender

Byte

Toques para equipamento


atender quando modem

Controles

SControles

Configuraes de controles
adicionais

AntiPassBack

SAntiPassBack

Configuraes de antipassback
offline

Sensores

SSensores

Configuraes dos sensores

AutoOff

SAutoOff

Configuraes de desligamento
automtico para economia de
energia

Controladores

String

Retorna controladores online


com o concentrador

FaixaAcesso

Boolean

Indica se equipamento usa faixa


de acesso.

SControleTempos

Configura timeout de
processamento de bilhetes
online e latncia offline.

Senha

ControleTempos

ActiveX Kernel7x - pgina 27

EnviaDadosEmpregador(pThreadIndex: Integer; pEmpregador:


SEmpregador): WordBool;
Este mtodo envia as informaes do empregador para o equipamento. Disponvel apenas
para Orion 6.

Get_EnviaDadosEmpregador(pThreadIndex: Integer; const


pRazaoSocial, pLocal, pDocumento, pCEI: WideString;
pIdEmpregador: SIdEmpregador): WordBool;

RecebeDadosEmpregador(pThreadIndex: Integer; out pEmpregador:


SEmpregador): WordBool; safecall;
Este mtodo Recebe as informaes do empregador cadastrado no equipamento.
Disponvel apenas para Orion 6.

Get_ RecebeDadosEmpregador(pThreadIndex: Integer; out


pRazaoSocial, pLocal, pDocumento, pCEI: WideString; out
pIdEmpregador: SIdEmpregador; out pStatus: WordBool); safecall;

Estrutura SEmpregador
Atributo

Tipo

Descrio

IdEmpregador

SIdEmpregador

Tipo de documento:
cieCPF; cieCNPJ;

Documento
CEI
RazaoSocial
Local

String
String
String
String

Nmero do documento do
empregador
CEI (caso existir)
Razo social do empregador
Local

ActiveX Kernel7x - pgina 28

EnviaUsuarioEquipamento(pThreadIndex: Integer;
pUsuarioEquipamento: SUsuarioEquipamento): WordBool;
Este mtodo envia um usurio ao equipamento. Disponvel apenas para Orion 6.

Get_EnviaUsuarioEquipamento(pThreadIndex: Integer; const


pMatricula, pPIS, pNome: WideString; pVerificaDigital: WordBool;
pTipoOperacao: SOperacaoUsuarioEquipamento): WordBool;

RecebeListaUsuarioEquipamento(pThreadIndex: Integer): WordBool;


Recebe a lista de usurios no equipamento. Ao receber, armazena os dados numa lista
que pode ser acessada atravs da funo Rec_UsuarioEquipamento. Disponvel apenas
para Orion 6.

Get_ RecebeListaUsuarioEquipamento(pThreadIndex: Integer):


WordBool;

Rec_UsuarioEquipamento(pThreadIndex: Integer; out


pUsuarioEquipamento: SUsuarioEquipamento): WordBool;
Retorna um usurio da lista de usurios. Enquanto o retorno da funo for verdadeiro,
existiro usurios na lista. Disponvel apenas para Orion 6.

Get_ Rec_UsuarioEquipamento(pThreadI ndex: Integer; out pMatriculas,


pPIS, pNome: WideString; out pVerificaDigital: WordBool;

Add_UsuarioEquipamento(pThreadIndex: Integer;
pUsuarioEquipamento: SUsuarioEquipamento): WordBool;
Este mtodo adiciona um usurio fil a de envio. Disponvel apenas para Orion 6.

Get_Add_UsuarioEquipamento (pThreadIndex: Integer; const


pMatricula, pPIS, pNome: WideString; pVerificaDig ital: WordBool;
pTipoOperacao: SOperacaoUsuarioEquipamento): WordBool;

ActiveX Kernel7x - pgina 29

EnviaListaUsuarios (pThreadIndex: Integer): WordBool;


Este mtodo envia a lista de usurios previamente carregada com o comando acima.
Disponvel apenas para Orion 6. Este mtodo trabalha em thread e reporta sua situao
atravs do evento OnOperacao.

Get_EnviaListaUsuarios (pThreadIndex: Integer): WordBool;

Estrutura SUsuarioEquipamento
Atributo

Tipo

Descrio

Matriculas
PIS
Nome
VerificaDigital

String
String
String
Boolean

Matrculas do usurio. As
matrculas devem ser separadas
pelo caractere ';'. Todas as
matrculas sero utilizadas para
realizar a identificao do
usurio.
PIS do usurio
Nome do usurio (52 caracteres)
Flag de verificao de digital

TipoOperacao

SOperacaoUsuario
Equipamento

Tipo de operao:
couAdicao, couAlteracao,
couExclusao

ActiveX Kernel7x - pgina 30

EnviaCfgControlador (pThreadIndex : Integer; pId : Byte; pConfig :


S C o n f i g C tr l ): W o r d B o o l ;
Este mtodo envia as configuraes para o controlador de uma concentradora.

Get_EnviaConfiguracaoControlador(pThreadIndex, pIdControlador:
Integer): WordBool;
cfg_setCfgControlador(pCatraca, pWorkOff: WordBool;
pTempoRele1, pTempoRele2, pTempoRele3: Byte);
cfg_setLeitoresCtrl(pIndexLeitora: Integer; pRele1, pRele2, pRele3:
Byte);
cfg_setSensoresCtrl(pIndexSensor: Integer; pHabilitado: WordBool;
pTipoSensor: STipoSensor; pRele1, pRele2, pRele3: WordBool);
R e c e b e C f g C o n tr o l a d o r (p T h r e a d I n d e x : I n te g e r ; p I d : B y te ; o u t p C o n fi g :
S C o n f i g C tr l ): W o r d B o o l ;
Este mtodo recebe as configuraes do controlador de uma concentradora.
Get_RecebeConfiguracaoC ontrolador(pThreadIndex, pIdControlador:
Integer): WordBool;
cfg_getCfgControlador(out pCatraca, pWorkOff: WordBool; out
pTempoRele1, pTempoRele2, pTempoRele3: Byte);
cfg_getLeitoresCtrl(pIndexLeitora: Integer; out pRele1, pRele2,
pRele3: Byte);
cfg_getSensoresCtrl(pIndexSensor: Integer; out pHabilitado:
WordBool; out pTipoSensor: STipoSensor; out pRele1, pRele2, pRele3:
WordBool);

A l te r a r V e l o c i d a d e (p T h r e a d I n d e x : I n te g e r ; p N o v a V e l o c i d a d e : S V e l o c i d a d e ):
W o rd B o o l ;

ActiveX Kernel7x - pgina 31


Este mtodo altera a velocidade d e comunicao do equipamento indicado (A velocidade
da thread alterada automaticamente em caso de sucesso).

AlterarVelocidade(pThreadIndex: Integer; pNovaVelocidade:


SVelocidade): WordBool;
EnviaDataHora(pThreadIndex: Integer; pDataHora: TDateTime):
W o rd B o o l ;
Este mtodo realiza o envio de Data e Hora para o equipamento.

EnviaDataHora(pThreadIndex: Integer; pDataHora: TDate Time):


WordBool;
R e c e b e D a ta H o r a (p T h r e a d I n d e x : I n te g e r ; o u t p D a ta H o r a : T D a te T i m e ):
W o rd B o o l ;
Este mtodo recebe a data e hora do e quipamento.

RecebeDataHora(pThreadIndex: Integer; pDataHora: TDateTime):


WordBool;
EnviaDataHoraEx(pThreadIndex: Integer; pDataHoraEx:
SDataHoraCompleta): WordBool;
Este mtodo executa a mesma operao do mtodo EnviaDataHora, porm tambm
configura o horrio de vero.

EnviaDataHoraEx(pThreadIndex: Integer; pDataHora: TDate Time;


pUsarHorarioVerao : WordBool; pHorarioVersaoInicio,
pHorarioVeraoTermino : TDate ): WordBool;
Caso pUsarHorarioVersao seja falso o inicio e trmino no sero necessrios.

ActiveX Kernel7x - pgina 32

R e c e b e D a ta H o r a E x (p T h r e a d I n d e x : I n te g e r ; o u t p D a ta H o r a E x :
SDataHoraCompleta): WordBool;
Este mtodo executa a mesma operao do mtodo RecebeDaraHora, porm tambm
recebe a configurao de horrio de vero.

RecebeDataHoraEx(pThreadIndex: Integer; out pDataHora:


TDateTime; out pUsarHorarioVerao : WordBool; out
pHorarioVeraoInicio, pHorarioVeraoTermino : TDate );
EnviaTipoCatraca(pThreadIndex: Integer; pOperacao: SOperacaoCatraca):
W o rd B o o l ;
Este mtodo envia configurao de operao para catracas. A operao da catraca
normalmente bloqueada, porm pode ser liberada em algum sentido ou ambos, por um
determinado tempo ou at que receba outra configurao.

EnviaTipoCatraca(pThreadIndex: Integer; out pStatusGiro :


SStatusGiro; out pTempoLiberacao : Byte );
R e c e b e T i p o C a tr a c a (p T h r e a d I n d e x : I n te g e r ; o u t p O p e r a c a o :
S O p e r a c a o C a tr a c a ): W o r d B o o l ;
Este mtodo recebe a configurao de operao de catracas.

RecebeTipoCatraca(pThreadIndex: Integer; out pStatusGiro :


SStatusGiro; out pTempoLiberacao : Byte);

ActiveX Kernel7x - pgina 33

EnviaMsgPadrao(pThreadIndex: Integer; pMsgPadrao: SMsgPadrao):


W o rd B o o l ;
Este mtodo envia as mens agens padro para o equipamento, o parmetro pMsgPadrao
divido em 3 atributos do tipo SMensagem, sendo cada atributo responsvel pela exibio
em determinados eventos do e quipamento de forma independente dos outros.

Estrutura SMsgPadrao
Atributo

Tipo

Descrio

Padro

SMensagem

Exibido quando equipamento em standby

Entrada

SMensagem

Exibido quando realizada marcao de


entrada

Sada

SMensagem

Exibido quando realizada marcao de sada

Estrutura SMensagem
Atributo

Descrio

Estilo

Estilo da mensagem que deve aparecer . Alguns estilos desabilitam a


exibio de linhas:
cmsDesativada (Display em branco)
cmeMatricula(A matrcula aparece em linha1, vlido em Entrada e
Saida)
cmeDataHora(A linha1 exibe Data e Hora)
cmePersonalizada (As duas linhas so customizveis)
cmeSaudacao (A linha1 exibe Bom Dia por exemplo)

Linha1

16 Caracteres ASCII que devem aparecer na linha superior

Linha2

16 Caracteres ASCII que devem apare cer na linha inferior

Tempo

Tempo em segundos de exibio no display 1..255 (Desconsiderado na


mensagem Padro)

EnviaMsgPadrao(pThreadIndex: Integer; p EstiloPadrao,


pEstiloEntrada, pEstiloSaida: SMsgEstilo; pMsgPadraoLinha1,
pMsgPadraoLinha2, pMsgEntradaLinha1, pMsgEntradaLinha2,
pMsgSaidaLinha1, pMsgSaidaLinha2 : WideString; pTempoPadrao,
pTempoEntrada, pTempoSaida : Byte ): WordBool;

ActiveX Kernel7x - pgina 34

RecebeMsgPadrao(pThreadIndex: Integer; out pMsgPadrao: SMsgPadrao):


W o rd B o o l ;
Este mtodo recebe as mensagens padro do equipamento.

RecebeMsgPadrao(pThreadIndex: Integer;
out pEstiloPadrao, pEstiloEntrada, pEstiloSaida: SMsgEstilo;
out pMsgPadraoLinha1, pMsgPadraoLinha2, pMsgEntradaLinha1,
pMsgEntradaLinha2, pMsgSaidaLinha1, pMsgSaidaLinha2 :
WideString;
out pTempoMsgPadrao, pTempoMsgEntrada, pTempoMsgSaida :
Byte
out pStatus: WordBool );

ActiveX Kernel7x - pgina 35

Formatao ou Particionamento
Na formatao devem ser passados os endereos dos setores na memria.
O inicio dos endereos esta em CARD7X_MEMORY_START, em seguida os setores recebem a soma do tamanho do antecessor,
quando desativado o endereo do setor zero. Existem ainda outras constantes de controle CARD7X_MEMORY_BYTES e
CARD7X_MEMORY_BYTES_ENABLED, que definem respectivamente o tamanho da memria e total de bytes formatveis.
O desenho abaixo exemplifica a disposio da memria do equipamento utilizando todos os setores.

Espao reservado do
equipamento
Setor de Funes

CARD7X_MEMORY_START,
abaixo deste endereo existem
dados do equipamento, que no
devem ser usados.

Setor de Feriados
Setor de Acionamentos
CARD7X_MEMORY_BYTES

Setor de Lista de Acesso


Setor de Perodos
Setor de Horrios e
Escalas
Setor de Mensagens
Especficas
Setor de Registros

CARD7X_MEMORY_BYTES_ENABLED,
todo este espao pode ser usado para dados,
dependendo das necessidades do cliente.

ActiveX Kernel7x - pgina 36

Os desenhos abaixo demonstram a formatao padro e exemplo comum de uso.


Para saber o valor dos endereos utiliza os mtodos SR descritos abaixo.

Espao reservado do
equipamento

Espao reservado do
equipamento
Setor de Lista de Acesso
Endereo 512

Setor de Registros

Endereo 512

Setor de Perodos

Endereo 2512

Setor de Horrios e
Escalas

Endereo 3512

Setor de Registros

Endereo 4512

ActiveX Kernel7x - pgina 37


Os mtodo SR (Size Required) retornam o tamanho necessrio para o setor. Alm de
trabalharem offline com base na configurao passada. No caso da interface
kernel7x.alternativo a configurao usada ser a ultima armazenada em cach .

SRFuncoes (pConfig : SConfiguracao; pQtFuncoes : Integer) : Integer;


Este mtodo retorna a quantidade de bytes, solicitando a quantidade de funes.

SRFuncoes (pQtFuncoes : Integer) : Integer;


SRFuncoesEspecificas (pConfig : SConfiguracao; pQtFuncoes,
pQtFuncoesPorMatr : Integer) : Integer;
Este mtodo retorna a quantidade de bytes, solicitando a quantidade de funes e
quantidade de funes por matrcula.

SRFuncoesEspecificas (pQtFuncoes, pQtFuncoesPorMatr : Integer) :


Integer;
SRFeriados(pConfig : SConfiguracao; pQtFeriados: Integer) : Integer;
Este mtodo retorna a quantidade de bytes, solicitando a quantidade de feriados.

SRFeriados(pQtFeriados: Integer) : Integer;


SRAcionamentos(pConfig : SConfiguracao; pQtAcionamentos: Integer) :
I n te g e r ;
Este mtodo retorna a quantidade de bytes, solicitando a quantidade de acionamentos.

SRAcionamentos(pQtAcionamentos: Integer) : Integer;


SRListaAcesso(pConfig : SConfiguracao; pQtItems: Integer) : Integer;
Este mtodo retorna a quantidade de bytes, solic itando a quantidade de itens de acesso.

SRListaAcesso(pQtItems: Integer) : Integer;


SRPeriodos(pConfig : SConfiguracao; pQtPeriodos: Integer) : Integer;
Este mtodo retorna a quantidade de bytes, solicitando a quantidade de perodos.

SRPeriodos(pQtPeriodos: Integer) : Integer;

ActiveX Kernel7x - pgina 38


SRHorariosEscalas(pConfig : SConfiguracao; pQtHorarios,
pQtPeriodosPorHorario, pQtEscalas, pQtHorariosPorEscala: Integer) :
I n te g e r ;
Este mtodo retorna a quantidade de bytes, solicitando a quantidade de horrios, mximo
de perodos que compem os horrios, quantidade de escalas, mximo de horrios que
compem cada escala..

SRHorariosEscalas(pQtHorarios, pQtPeriodosPorHorario,
pQtEscalas, pQtHorariosPorEscala: Integer) : Integer;
SRMsgEspecifica(pConfig : SConfiguracao; pQtMatriculas,
pQtMsgPorMatr: Integer) : Integer;
Este mtodo retorna a quantidade de bytes, solicitando a quantidade de matrculas e
mensagens por matrcula.

SRMsgEspecifica(pQtMatriculas, pQtMsgPorMatr: Integer) : Integer;


EnviaParticionamento(pThreadIndex: Integer; pParticionamento:
SParticionamento): WordBool;
Este mtodo define uma nova configurao de particionamento da memria do
equipamento.
No caso de concentrador o setor de funes obrigatrio e deve ter tamanho de 288
bytes, os setores de aciona mentos e mensagens especificas nunca devem ser usados.

EnviaParticionamento(pThreadIndex: Integer; p Funcoes, pFeriados,


pAcionamentos, pListaAcesso, pPeriodos, pHorarios,
pMsgEspecifica, pRegistros : Integer): WordBool;

ActiveX Kernel7x - pgina 39

RecebeParticionamento(pThreadIndex: Integer; out pParticionamento:


SParticionamento): WordBool;
Este mtodo recebe a configurao de particionamento do equipamento indicado.

RecebeParticionamento(pThreadIndex: Integer; out pFuncoes,


pFeriados, pAcionamentos, pListaAcesso, pPeriodos, p Horarios,
pMsgEspecifica, pRegistros : Integer);

ActiveX Kernel7x - pgina 40

Inserindo Dados nos setores


Add_FncEsp_Matricula(pThreadIndex: Integer; pMatricula : WideString);
Este mtodo adiciona uma matrcula * ao cach de funes especificas, esta ser usada
como referncia para o mtodo Add_FncEsp_Funcao.

Add_FncEsp_Matricula(pThreadIndex: Integer; pMatricula :


WideString);
Add_FncEsp_Funcao (pThreadIndex: Integer; pMatricula : WideString;
pFuncao : SFuncaoEx);
Este mtodo adiciona uma funo * ao cach de funes especificas para o mtodo
EnviaFuncoes que esvazia o cach ao ser executado.

Add_FncEsp_Funcao (pThreadIndex: Integer; pMatricula,


pMensagem : WideString; pTempo, pNumero : Byte);

Add_Funcao(pThreadIndex: Integer; pFuncao: SFuncao);


Este mtodo adiciona uma funo ao cach de funes para o mtodo EnviaFuncoes que
esvazia o cach ao ser executado.

Add_ Funcao (pThreadIndex: Integer; pAtiva , pLiberaAcesso :


WorldBool; pMensagem : WideString; pTempo : Byte);
EnviaFuncoes(pThreadIndex: Integer): WordBool;
Este mtodo executa o envio das funes anteriormente carregados com o mtodo
Add_Funcao, considerando o tamanho do setor.

EnviaFuncoes (pThreadIndex: Integer) : WordBool;


RecebeFuncoes(pThreadIndex: Integer): WordBool;
Este mtodo executa a recepo de funes e disponibiliza no mtodo Rec_Funcao.

RecebeFuncoes (pThreadIndex: Integer) : WordBool;

ActiveX Kernel7x - pgina 41

Rec_Funcao(pThreadIndex: Integer; out pFuncao: SFuncao): WordBool;


Este mtodo retorna uma funo do cach de funes carregado pelo mtodo
RecebeFuncoes, ao receber uma funo ela automaticamente excluda do cach.

Rec_Funcao (pThreadIndex: Integer ; out pAtiva, pLiberaAcesso :


WordBool; out pMensagem : WideString; out pTempo : Byte);
Rec_FncEsp_Matricula(pThreadIndex: Integer; out pMatricula :
W i d e S tr i n g ): W o r d B o o l ;
Este mtodo retorna uma matrcula com funes relacionadas em cach, estas podem ser
recebidas com o mtodo Rec_FncEsp_Funcao. Para utilizar funes especificas

habilite em SConfiguracao.Controles, isto desativa automaticamente funes


normais.
Rec_FncEsp_Matricula(pThreadIndex: Integer; out pMatricula :
WideString; out pStatus: WordBool);
Rec_FncEsp_Funcao(pThreadIndex: Integer; pMatricula : WideString; out
pFuncao : SFuncaoEx): WordBool;
Este mtodo retorna uma funo relacionada a matrcula indicad a, aps receber todas a
funes a matrcula excluda do cach .

Rec_FncEsp_Funcao(pThreadIndex: Integer; pMatricula ,


pMensagem : WideString; out pTempo, pNumero : Byte; out
pStatus: WordBool);
Add_Feriado(pThreadIndex: Integer; pDia: TDateTime);
Este mtodo adiciona um feriado ao cach de funes para o mtodo EnviaFeriados que
esvazia o cach ao ser executado.

Add_Feriado(pThreadIndex: Integer; p Dia: TDateTime);


EnviaFeriados(pThreadIndex: Integer): WordBool;
Este mtodo executa o envio dos feriados a nteriormente carregados com o mtodo
Add_Feriado, considerando o tamanho do setor.

ActiveX Kernel7x - pgina 42


EnviaFeriados(pThreadIndex: Integer): WordBool;
R e c e b e F e r i a d o s (p T h r e a d I n d e x : I n te g e r ): W o r d B o o l ;
Este mtodo executa a recepo de funes e disponibiliza no mtodo Rec_Feriado.

RecebeFeriados(pThreadIndex: Integer): WordBool;


Rec_Feriado(pThreadIndex: Integer; out pDia: TDateTime): WordBool;
Este mtodo retorna um feriado do cach de feriados carregado pelo mtodo
RecebeFeriados, ao receber um feriado ele automaticamen te excludo do cach.

Rec_Feriado(pThreadIndex: Integer; out pDia: TDateTime);


Add_Acionamento(pThreadIndex: Integer; pAcionamento: SAcionamento);
Este mtodo executa o envio dos acionamentos anteriormente carregados com o mtodo
Add_Acionamento, considerando o tamanho do setor.

Add_Acionamento(pThreadIndex: Integer; out pHorario: TDateTime;


pTempo : Byte; pDomingo, pSegunda, pTerca, pQuarta, pQuinta,
pSexta, pSabado, pFeriado : WordBool );
EnviaAcionamentos(pThreadIndex: Integer): WordBool;
Este mtodo executa o envio dos acionamentos anteriormente carrega com o mtodo
Add_Acionamento, considerando o tamanho do setor.

EnviaAcionamentos(pThreadIndex: Integer): WordBool;


RecebeAcionamentos(pThreadIndex: Integer): WordBool;
Este mtodo executa a recepo de acionamentos e disponibiliza no mtodo
Rec_Acionamento.

RecebeAcionamentos(pThreadIndex: Integer): WordBool;

ActiveX Kernel7x - pgina 43

Rec_Acionamento(pThreadIndex: Integer; out pAcionamento:


SAcionamento): WordBool;
Este mtodo retorna um acionamento do cach de acionamento s carregado pelo mtodo
RecebeAcionamentos, ao receber um acionamento ele automaticamente excludo do
cach.

Rec_Acionamento(pThreadIndex: Integer; out p Horario: TDateTime;


out pTempo : Byte; out pDomingo, pSegunda, pTerca, pQuarta,
pQuinta, pSexta, pSabado, pDomingo : WordBool );
Add_Periodo(pThreadIndex: Integer; pPeriodo: SPeriodo);
Este mtodo adiciona um perodo ao cach de perodos para o mtodo EnviaPeriodos que
esvazia o cach ao ser executado.

Add_Periodo(pThreadIndex: Integer; out p Horario: TDateTime;


pTolerancia : Byte; pDomingo, pSegunda, pTerca, pQuarta, pQuinta,
pSexta, pSabado, pFeriado : WordBool ): WordBool;
EnviaPeriodos(pThreadIndex: Integer): WordBool;
Este mtodo executa o envio dos perodos anteriormente carregados com o mtodo
Add_Periodo, considerando o tamanho do setor.

EnviaPeriodos(pThreadIndex: Integer): WordBool;


R e c e b e P e r i o d o s (p T h r e a d I n d e x : I n te g e r ): W o r d B o o l ;
Este mtodo executa a recepo dos perodos e disponibiliza no mtodo Rec_Periodo.

RecebePeriodos(pThreadIndex: In teger): WordBool;

ActiveX Kernel7x - pgina 44

Rec_Periodo(pThreadIndex: Integer; out pPeriodo: SPeriodo): WordBool;


Este mtodo retorna um perodo do cach de perodos carregado pelo mtodo
RecebePeriodos, ao receber um perodo ele automaticamente excludo do cach.

Rec_Periodo(pThreadIndex: Integer; out pHorario: TDateTime;


pTolerancia : Byte; pSegunda, pTerca, pQuarta, pQuinta, pSexta,
pSabado, pFeriado : WordBool): WordBool;
Add_Horario(pThreadIndex: Integer; pPeriodos: WideString;
p H o r a r i o I n d e x : B y te ) : W o r d B o o l ;
Este mtodo adiciona um Horrio ao cach de Horrios para o mtodo EnviaHorrios que
esvazia o cach ao ser executado e retorna o ndex para uso em escalas ou lista de
acesso. O Formato da string so os index formatados em 3 casas e concatenados. **

** O Horrio um conjunto de perodos.


** Ex: 001002003 contm 3 perodos
** O primeiro perodo possui index = 1
Add_Horario(pThreadIndex: Integer; out pHorario: TDateTime;
pTolerancia : Byte; pSegunda, pTerca, pQuarta, pQuinta, pSexta,
pSabado, pFeriado, pStatus : WordBool);

Add_Escala (pThreadIndex: Integer; pEscala: SEscala; pIndexEscala : Byte)


: W o rd B o o l ;
Este mtodo adiciona uma Escala ao cach de Escalas para o mtodo EnviaHorrios que
esvazia o cach ao ser executado. ***

> A Escala um conjunto de H orrios.


> Ex: 000001002 contm 3 horrios
> O primeiro horrio possui index = 0
> Quando um dia no possue horrio utilize ###
Add_Escala (pThreadIndex: Integer; p DataInicio : TDateTime;
pHorarios : WideString );
EnviaHorarios(pThreadIndex: Integer): WordBool;
Este mtodo executa o envio dos horrios anteriormente carregados com o mtodo
Add_Horario, considerando o tamanho do setor.

ActiveX Kernel7x - pgina 45


EnviaHorarios(pThreadIndex: Integer);

R e c e b e H o r a r i o s (p T h r e a d I n d e x : I n te g e r ): W o r d B o o l ;
Este mtodo executa a recepo dos p erodos e disponibiliza no mtodo Rec_Horario.

*** A escala um conjunto de horrio tendo um dia inicial e um horrio para cada dia do
conjunto, consultado de forma cclica a partir da data inicial. Para utiliza Escalas habilite em
SConfiguracao.Controles

RecebeHorarios(pThreadIndex: Integer);
Rec_Horario(pThreadIndex: Integer; out pPeriodos: WideString):
W o rd B o o l ;
Este mtodo retorna um Horrio do cach de Horrios carregado pelo mtodo
RecebeHorrios, ao receber um Horrio ele automaticamente exclu do do cach.

Rec_Horario(pThreadIndex: Integer; out pPeriodos : WideString );


R e c _ E s c a l a (p T h r e a d I n d e x : I n te g e r ; o u t p E s c a l a : S E s c a l a ): W o r d B o o l ;
Este mtodo retorna uma Escala do cach de Escala carregado pelo mtodo
RecebeHorrios, ao receber uma Escala ela automaticamente excluda do cach.

Rec_Escala(pThreadIndex: Integer; out pDataInicio : TDateTime;


pHorarios : WideString ; out pStatus : WordBool );

ActiveX Kernel7x - pgina 46

Add_ItemAcesso(pThreadIndex: Integer; pItemAcesso: SItemAcesso);


Este mtodo adiciona um Item de Ace sso ao cach da Lista de Acesso para o mtodo
EnviaListaAcesso que esvazia o cach ao ser executado.

Estrutura SItemAcesso
Atributo

Tipo

Descrio

Matricula

String

Matrcula de realizou a marcao formatada em 20 digitos

IndexHorario

Inteiro

Indicador do horrio ou escala que o colaborador deve respeitar


Definio da forma de acesso do usurio, dentro da
enumerao:
cafLiberado
cafNegado
cafHorario
cafEscala
cafFaixa

Acesso

SAcessoOffline

VerificarDigital

Boleano

PeriodoBloqueio

SPeriodoBloqueio

Reles

SReles

Reles que devem ser acionados no acesso do usurio

Master

Boleano

Determina se usurio m aster

Visitante

Boleano

Determina se usurio visitante

Controladores

SControladores

Determina quais controladores o usurio pode utilizar .


Dentro da estrutura com valores
Control1, Control2,... Control8 todos boolean

Determina se usurio deve verificar di gital para realizar a


marcao
Consideraes para perodo de bloqueio segundo a estrutura
SPeriodoBloqueio

Estrutura SPeriodoBloqueio
Atributo

Tipo

Descrio

Habilitado

Boleano

Determina se perodo de bloqueio ser usado

Inicio

Date

Indicador do horrio ou escala que o colaborador deve respeitar

Final

Date

Determina se usurio deve verificar digital para realizar a


marcao

Add_ItemAcesso(pThread Index: Integer; pMatricula : WideString;


pIndexHorario : Byte; pAcesso : SAcessoOffline; pPerBloqInicio,
pPerBloqFinal : TDateTime; pPerBloqHabilitado, pAcionaRele1,
pAcionaRele2, pAcionaRele3 , pVerificarDigital, pMaster, pVisitante :
WordBool);

ActiveX Kernel7x - pgina 47


Para informaes de como configurar e utilizar Faixas de Acesso verifique o anexo
ao final do arquivo.
EnviaListaAcesso(pThreadIndex: Integer): WordBool;
Este mtodo executa o envio da Lista de Acesso anteriormente carregada com o mtodo
Add_ItemAcesso, considerando o tamanho do setor.

EnviaListaAcesso(pThreadIndex: Integer): WordBool;


EnviaListaAcessoThd(pThreadIndex: Integer): WordBool;
Este mtodo executa o envio da Lista de Acesso anteriormente carregada com o mtodo
Add_ItemAcesso, considerando o tamanho do setor. O mtodo executado em thread e
pode ser cancelado atravs do mtodo CancelarOperacao.

EnviaListaAcessoThd(pThreadIndex: Integer): WordBool;


R e c e b e L i s ta A c e s s o (p T h r e a d I n d e x : I n te g e r ): W o r d B o o l ;
Este mtodo executa a recepo da Lista de Acesso e disponibiliza no mtodo
Rec_ItemAcesso.

RecebeListaAcesso(pThreadIndex: Integer): WordBool;


Rec_ItemAcesso(pThreadIndex: Integer; out pItemAcesso: SItemAcesso):
W o rd B o o l ;
Este mtodo retorna um Item de Acesso do cach da Lista de Acesso carregado pelo
mtodo RecebeListaAcesso, ao receber um Item de Acesso ele automaticamente
excludo do cach.

Rec_ItemAcesso(pThreadIndex: Integer; out pMatricula :


WideString; out pIndexHorario : Byte; out pAcesso :
SAcessoOffline; out pPerBloqInicio, pPerBloqFinal : T DateTime; out
pPerBloqHabilitado, pAcionaRele1, pAcionaRele2, pAcionaRele3,
pVerificarDigital, pMaster, pVisitante , pStatus : WordBool) :
WordBool;
A d d _ M s g E s p e c (p T h r e a d I n d e x : I n te g e r ; p M s g E s p e c : S M s g E s p e c i f i c a );
Este mtodo adiciona uma Mensagem Especific a ao cach de Mensagens Especificas
para o mtodo EnviaMsgEspec que esvazia o cach ao ser executado.

ActiveX Kernel7x - pgina 48

Add_MsgEspec(pThreadIndex: Integer; pMsgEstilo : SMsgEstilo;


pMsgTempo : Byte; pMsg Linha1, pMsgLinha2 , pMatriculas :
WideString; pData : TDateTime; pTodo sDias : WordBool);

ActiveX Kernel7x - pgina 49

EnviaMsgsEspecificas(pThreadIndex: Integer): WordBool;


Este mtodo executa o envio das Mensagens Especificas anteriormente carregada com o
mtodo Add_MsgEspec, considerando o tamanho do setor.

EnviaMsgsEspecificas(pThreadIndex: Intege r): WordBool;

R e c e b e M s g s E s p e c i f i c a s (p T h r e a d I n d e x : I n te g e r ): W o r d B o o l ;
Este mtodo executa a recepo das Mensagens Especificas e disponibiliza no mtodo
Rec_MsgEspec.

RecebeMsgsEspecificas(pThreadIndex: Integer): WordBool;

R e c _ M s g E s p e c (p T h r e a d I n d e x : I n te g e r ; o u t p M s g E s p e c : S M s g E s p e c i f i c a ):
W o rd B o o l ;
Este mtodo retorna uma Mensagem Especifica do cach de Mensagens Especificas
carregadas pelo mtodo RecebeMsgEspec, ao receber uma Mensagem Especifica ela
automaticamente excludo do cach.

Rec_MsgEspec(pThreadIndex: Integer; out pMsgStatus : SMsgStatus;


out pMsgTempo : Byte; out pMsg Linha1, pMsgLinha2 , pMatriculas :
WideString; out pData : TDateTime; out pTodosDias , pStatus :
WordBool);

ActiveX Kernel7x - pgina 50

Trabalhando offline
ExistemRegistros(pThreadIndex: Integer; out pExistem: WordBool):
W o rd B o o l ;
Este mtodo retorna se existem registros no equipamento. Melhor usado na comunicao
USB que opera com o mtodo RecebeQtRegistros limitado.

ExistemRegistros(pThreadIndex: Integer; out pExistem: WordBool):


WordBool;
R e c e b e Q tR e g i s t r o s (p T h r e a d I n d e x : I n te g e r ; o u t p Q tR e g s : I n te g e r ):
W o rd B o o l ;
Este mtodo retorna a quantidade de registros de batidas no equipamento.
No caso de USB retorna somente 0 ou 1 quando existirem registros.

RecebeQtRegistros(pThreadIndex: Integer; out pQ tRegs: Integer):


WordBool;
Alternativo retorno -1 significa falha na operao.

R e c e b e P a c o t e (p T h r e a d I n d e x : I n te g e r ): W o r d B o o l ;
Permite maior controle e estabilidade para coleta. Este mtodo executa a coleta do
prximo pacote com at 100 registros do equ ipamento. No realiza a deleo do pacote
automaticamente.

RecebePacote (pThreadIndex: Integer): WordBool;


Q u a n tR e g s C o l e ta d o s (p T h r e a d I n d e x : I n te g e r ): W o r d B o o l ;
Este mtodo retorna a quantidade de registros coletados, apagados do equipamento *, e
aguardando recuperao da aplicao para gravao definitiva.

QuantRegsColetados(pThreadIndex: Integer): WordBool;

ActiveX Kernel7x - pgina 51

RegistroOff(pThreadIndex: Integer; out pRegistro: SRegistro): WordBool;


Este mtodo retorna os registros coletados pelo mtodo RecebeRegistros e armazenados
no cach do ActiveX, cada registros retornado automaticamente excludo, ao retornar
Falso indica que acabaram os registros.
Para saber mais sobre a estrutura SRegistro, veja a tabela na pgina Trabalhando on line.

RegistroOff(pThreadIndex : Integer; out pNumeroRelogio, pFuncao :


Byte; out pMatricula : WideString; out pDataHora : TDateTime; out
pFlag : SFlagRegistro; out pSaida, pMasterLiberou, pFuncaoLiberou,
pAcessoNegado : WordBool; out pFonteEntrada : SFonteEntrada;
pTipoNegado : STipoNe gado);
Em caso de interface alternativo o RegistroOff no posse retorno o que torna necessrio o
uso do mtodo QuantRegsColetados para saber quantos registros esto em cache.

ApagaUltimoPacote (pThreadIndex: Integer): WordBool;


Este mtodo exclui o ltim o pacote de registros recebidos. Sem apagar o ultimo pacote no
possvel receber o prximo pacote.

ApagaUltimoPacote (pThreadIndex: Integer): WordBool;


R e c u p e r a R e g i s tr o s (p T h r e a d I n d e x : I n te g e r ): W o r d B o o l ;
Este mtodo retorna ativos os registros anterior mente coletados com o mtodo
RecebeRegistros e ainda disponveis no equipamento .

RecuperaRegistros(pThreadIndex: Integer): WordBool;


* Os registros apagados do equipamentos podem ser recuperados com o mtodo
RecuperaRegistros.
* Os mtodos da sesso Tra balhando Offline esto na ordem de uso correto, no sendo obrigatrio
o uso de todos os mtodos.

ActiveX Kernel7x - pgina 52


ColetaEventos(pThreadIndex: Integer; const pPathAFD: WideString):
W o rd B o o l ;
Este mtodo coleta os eventos do equipamento e salva o AFD (Arquivo Fonte de Da dos)
no caminho especificado. Ao finalizar a coleta ser disparado o evento OnColetaEventos
com o resultado da operao, quantidade de eventos salvos e caminho do AFD. Disponvel
apenas para Orion 6.

ColetaEventos(pThreadIndex: Integer; const pPathAFD: WideString):


WordBool;
ColetaEventosEx(pThreadIndex: Integer; const pPathAFD: WideString;
pData: TDateTime; pEmpregador: SEmpregador): WordBool;
Este mtodo coleta os eventos do equipamento e salva o AFD (Arquivo Fonte de Dados)
no caminho especificado. At ravs do parmetro pData o integrador poder estabelecer
um filtro de data e hora para a coleta. Sero retornados os eventos com data igual ou
maior data informada. Ao finalizar a coleta ser disparado o evento OnColetaEventos
com o resultado da opera o, quantidade de eventos salvos e caminho do AFD. Disponvel
apenas para Orion 6.

ColetaEventosEx(pThreadIndex: Integer; const pPathAFD:


WideString; pData: TDateTime; const pRazaoSocial, pLocal,
pDocumento, pCei: WideString; pIdEmpregador: SIdEmpregador ):
WordBool;
PararColetaEventos(pThreadIndex: Integer): WordBool;
Este mtodo finaliza a coleta de eventos. Nenhum arquivo de coleta ser gerado. Ao
finalizar a coleta ser disparado o evento OnColetaEventos informando que a coleta foi
cancelada. Disponvel apenas para Orion 6.

PararColetaEventos(pThreadIndex: Integer): WordBool;

ActiveX Kernel7x - pgina 53

Trabalhando on-line
OnStatus (pThreadIndex, pDeviceId, pStatus: Integer);
Este evento disparado quando ocorre alterao de status em algum equipamento. O
Parmetro DeviceID pode ser o nmero do equipamento comunicando em 485 ou
controlador que gerou o evento no caso de concetrador.

Enumerao SDeviceStatus
Range de valores

cdsOnline Informa que equipamento voltou a permitir conexo


cdsOffline Informa que equipamento e st indisponvel para conexo
cdsPortaAberta Informa que porta est aberta
cdsBotao Informa que boto foi pressionado

OnStatus (pThreadIndex, pDeviceId , pStatus: Integer);


O n R e g i s tr o (p T h r e a d I n d e x : I n te g e r );
Este evento disparado quando um equipam ento trabalhando em modo online recebe um
pedido do equipamento.

OnRegistro(pThreadIndex: Integer);
R e g i s tr o O n (p T h r e a d I n d e x : I n te g e r ; o u t p R e g i s tr o : S R e g i s t r o );
Este mtodo retorna o registro on-line durante o evento OnRegistro.
RegistroOn(pThreadIndex : Integer; out pNumeroRelogio, pFuncao :
Byte; out pMatricula : WideString; out pDataHora : TDateTime; out
pFlag : SFlagRegistro; out pSaida, pMasterLiberou, pFuncaoLiberou,
pAcessoNegado : WordBool; out pFonteEntrada : SFonteEntrada;
out pTipoNegado : STi poNegado);

ActiveX Kernel7x - pgina 54

Estrutura SRegistro
Atributo

Tipo

Descrio

Matricula

String

Matrcula que realizou a marcao

DataHora

DateTime

Data e Hora da marcao (no equipamento)

Funcao

Byte

Funo utilizada (255 significa sem funo)

Flag

SFlagRegistro

Enumerao com valores possveis:


sfrGirou (00): Ocorreu giro do brao da
catraca
sfrNaoGirou (04): No houve giro
sfrDesistenciaAcesso (05): Usurio desistiu
sfrPortaAberta (06): Porta foi aberta
sfrCtrlOffline (07): Evento de controlador
offline
sfrBotao (08): Boto foi pressionado
sfrCtrlOnline (09): Evento de controlador
online
sfrPortaArrombada (10): Porta est
arrombada

NumeroRelogio

Byte

Numero do equipamento onde ocorreu o


registro (tcpip sempre 1)

Tipo

STipoBilhete

Diversas informaes adicionais sobre a


marcao

IDControlador

Byte

Usado para Controlador:


Identifica o controlador que originou o registro.

IDSensor

Byte

Usado para Controlador.


Identifica o sensor que originou o registro.

Estrutura STipoBilhete
Atributo

Tipo

Descrio

Saida

Boolean

Determina sentido do giro, valor falso significa


entrada.

MasterLiberou

Boolean

Informa de registro foi liberado por master

FonteEntrada

Byte

Indica o perifrico que gerou a marcao,


estando dentro da enumerao:
cfeTeclado, cfeCracha, cfeDigital11,
cfeDigital1N

FuncaoLiberou

Boolean

Informa de marcao foi atravs de liberao


por funo

AcessoNegado

Boolean

Informa se marcao teve acesso negado

ActiveX Kernel7x - pgina 55

TipoNegado

Informa motivo do acesso negado off -line,


dentro da enumerao:
ctnSenha, ctnNivel, ctnHorario, ctnEmpresa,
ctnNenhum

STipoNegado

RespostaOn(pThreadIndex: Integer; pResposta : SResposta);


Este mtodo envia a resposta on-line durante o evento OnRegistro.

RespostaOn(pThreadIndex: Integer; pAcesso : SAcessoO nline;


pMensagem : WideString; pTempo : Byt e);

RespostaOnB(pThreadIndex: Integer; pAcesso Liberado : WordBool;


pIdControlador, pTempoRele1, pTempoRele2, pTempoRele3 : Byte);

Estrutura SResposta
Atributo

Tipo

Descrio

Acesso

SAcessoOnline

Determina resposta fsica ao usurio,


atendendo a enumerao:
canNegado: Acesso negado
canLibEntrada: Acesso liberado
no sentido de entrada
canLibSaida: Acesso liberado no
sentido de sada
canRevista: Acesso liberado no
sentido de sada informando revista
canAmbosLados: Acesso liberado
para ambos os lados
canMensagem: Idem a canNegado
porm sem alerta sonoro

Mensagem

String

Mensagem para exibio no display com 32


caracteres

Tempo

Byte

Tempo em segundos de exibio da


mensagem e acionamento de catraca

IDControlador

Byte

Index do controlador, pode ser obt ido na


estrutura de registro

TempoRele1

Byte

Tempo em segundos de acionamento do


Rele 1

Exclusivo
Relgio e Catraca

Exclusivo
Concentrador

ActiveX Kernel7x - pgina 56

TempoRele2

Byte

Tempo em segundos de acionamento do


Rele 2

TempoRele3

Byte

Tempo em segundos de acionamento do


Rele 3

R e s p o s ta S ta tu s (p T h r e a d I n d e x : I n te g e r ; p I n d e x M e n s a g e m : I n t e g e r );
Este mtodo ativa uma funo especfica, informada no parmetro pIndexMensagem, do
equipamento como resposta. A mensagem especfica deve ser previamente enviada.

RespostaStatus(pThreadIndex: Integer; pIndexMensagem : Integer);

OnExistOff(pThreadIndex: Integer; pQtRegs: Integer);


Este evento disparado quando um equipamento estiver com Modo de Comunicao em
OnOff ou OnOffCtrl e possuir registros em offline no coletados . O alerta ser chamado
com intervalo de 5 minutos para no sobrecarregar a aplicao.

OnExistOff(pThreadIndex: Integer; pQtRegs: Integer);


OnImagemDSP(pThreadIndex: Integer; const pImagem: WideString);
Este evento disparado quando um equipamento estiver com Modo de Biometria com
Imagem ativado. Esta opo pode ser ativada atravs da varivel BiometriaImagem na
estrutura de configurao do equipamento. Esta opo no pode ser utilizada com a opo
AutoOn ativada.

OnImagemDSP(pThreadIndex: Integer; pImagem: WideString);


OnColetaEventos(pThreadIndex : Integer; pResultado : Boolean; pEventos :
integer; pPathAFD : WideString);
Este evento disparado no final da coleta de eventos. Disponvel para Orion 6.

OnColetaEventos (pThreadIndex: Integer; pResultado : Boolean;


pEventos : integer; pPathAFD : WideString);

ActiveX Kernel7x - pgina 57


OnOperacao (pThreadIndex : Integer; pResultado : Boolean; pCodigoOp:
Integer; pParam: WideString);
Este evento disparado durante a execuo de alguma operao.

OnColetaEventos (pThreadIndex: Integer; pResultado : Boolean;


pCodigoOp: integer; pParam: WideString);
Cdigos de operao:

Lista de usurios enviada 0x01


Usurio enviado 0x02

ActiveX Kernel7x - pgina 58

Cadastro de Digitais Modelo 1 e 2


Bio_CriaDigitalM1M2(const pMatricula: WideString; pFinger: Byte;
pMaster: WordBool; out pTemplateF: STemplate7x; out pTemplateFl:
STemplate7x; out pTemplateFH: STemplate7x): WordBool;
Este mtodo retorna digitais para tipos de biometria F, FL, FH a partir de um Hamster
modelo 1 ou 2.

ActiveX Kernel7x - pgina 59

Cadastro de Digitais Modelo 3


Para operao com biometria S a partir de um Hamster voc dever usar o objeto
Hamster (outra interface do Kernel). Abaixo os mtodos do objeto Hamster.

Capture(out pTemplate: WideString) : WordBool;


Este mtodo retorna a digital para tipo de biometria S a partir de um Hamster modelo 3.

CaptureNet(out pTemplate: WideString; out pStatus: WordBool);


CaptureContinuous(out pTemplate: WideString) : WordBool;
Este mtodo retorna a digital para tipo de biometria S a partir de um Hamster modelo 3,
porm sem tempo limite para colocao do dedo.
Este mtodo deve ser executado em processo separado por trabalhar de forma modal.

CaptureContinuousNet (out pTemplate: WideString; out pStatus:


WordBool);
CaptureImage(out pImgTemplate: WideString; out pStatus: WordBool);
Este mtodo retorna uma WideString que contm as in formaes de uma imagem .bmp
com o desenho da digital capturada. Para ser utilizada a template deve ter sido capturada
anteriormente atravs dos mtodos de captura de template.

A b o r tC a p tu r i n g ;
Este mtodo aborta a captura de digital, sendo recomendado par a utilizao com o mtodo
CaptureContinuous.

Verify (pTemplate: WideString) : WordBool;


Este mtodo captura outra template e executa a comparao com a template informada.

Timeout : Integer;
Esta propriedade define o timeout de captura. O Padro 0 ou seja sem timeout;

B r i g h tn e s s : I n te g e r ;
Configurao de brilho, aceita valores entre 0 e 255;

S e n s i ti v i ty : I n te g e r ;
Configurao de sensibilidade, aceita valores entre 0 e 7;

Q u a l i ty : I n te g e r ;
Qualidade da imagem obtida ao capturar template. Valores entr e 0 e 100;

ActiveX Kernel7x - pgina 60

SetImagem(pHandle, pTop, pLeft, pHeight, pWidth : Integer);


Configurao de objeto (em Delphi recomenda -se panel) para exibir imagem durante a
captura. Deve ser utilizada antes de iniciar a captura.

SetUser(pTemplate, pMatricula : WideString; pMaster : Boolean) :


W i d e S tr i n g ;
Determina usurio para template. Necessrio para envio ao equipamento.

ActiveX Kernel7x - pgina 61

Manuteno de Digitais
Bio_RecListaUsuarios(pThreadIndex: Integer): WordBool;
Este mtodo retorna a lista dos usurios cadastrados no equipamento.

Bio_RecListaUsuarios(pThreadIndex: Integer): WordBool;


Bio_GetUsuario(pThreadIndex: Integer; out pUsuario: SUsuarioBioEx):
W o rd B o o l ;
Este mtodo retorna um item da lista de usurios recebida com o mtodo
RecListaUsuarios, ao quando um usurio recebido automaticamente excludo do
cach.
Ex:
Se Bio_RecListaUsuario() Ento
Enquanto Bio_GetUsuario( Usurio) Faa
Impresso do Usurio

Bio_RecListaUsuarios(pThreadIndex: Integer ; pMatricula, pId :


WideString; pDedo : Byte; pMaster : WordBool ): WordBool;
Bio_UsuariosQuant(pThreadIndex: Integer; out pQuantidade: Integer):
W o rd B o o l ;
Este mtodo retorna a quantidade de digitais armazenadas no equipamento .

Bio_UsuariosQuant(pThreadIndex: Integer; out pQuantidade:


Integer): WordBool;

ActiveX Kernel7x - pgina 62

Bio_UsuarioExiste(pThreadIndex: Integer; const pUsuarioID: WideString;


o u t p E x i s te : W o r d B o o l ): W o r d B o o l ;
Este mtodo retorna se usurios esta cadastrado no equipamento .

Bio_UsuarioExiste(pThreadIndex: Integer; const pUsuarioID:


WideString; out pExiste: WordBool): W ordBool;
Bio_RecTemplate(pThreadIndex: Integer; const pUsuarioID: WideString;
out pTemplate: WideString): WordBool;
Este mtodo retorna a digital de um usurio cadastrado .

Bio_RecTemplate(pThreadIndex: Integer; const pUsuarioID:


WideString; out pTemplate : WideString): WordBool;
B i o _ R e c U s u a r i o (p T h r e a d I n d e x : I n te g e r ; p P r i m e i r o : W o r d B o o l ; o u t
pUsuario: SUsuarioBioEx): WordBool;
Este mtodo retorna a digital e informaes de um usurio do equipamento . O Parmetro
pPrimeiro usado para indicar o inicio da op erao de recepo dos usurios, Este
mtodo usado quando o tipo de biometria no suporta listar todos os usurios. Os limites
podem ser consultados com o me tdo Bio_GetMaxQuantLista.
Ex:
Varivel PrimeiroRegistro Verdadeiro
Enquanto Bio_RecUsuario(Us urio) Faa
Inicio
PrimeiroRegistro Falso;
Imprime Usurio;
Fim

Bio_RecUsuario(pThreadIndex: Integer; pPrimeiro: WordBool;


out pMatricula, pTemplate, pID : WideString; out pMaster : WordBool; out
pDedo : Byte): WordBool;

ActiveX Kernel7x - pgina 63

Bio_GetMaxQuantLista(pThreadIndex : Integer; out pQt : Integer):


W o rd B o o l ;
Este mtodo retorna a quantidade mxima de usurios para listagem de acordo com a
biometria, 0 Indica que o limite a capacidade de armazenamento.

Bio_EnvTemplate(pThreadIndex: Integer; const pTemplate: WideString):


W o rd B o o l ;
Este mtodo cadastra uma digital no equipamento;
Obs: Todas as digitais do usurio devem ser excludas antes de envia -las;
* Observao vlida para biometria cb_S;

Bio_EnvTemplate(pThreadIndex: Integer; const pTemplate:


WideString): WordBool;
Bio_DelTemplate(pThreadIndex: Integer; const pUsuarioID: WideString;
pFingerOnly : WordBool): WordBool;
Este mtodo exclui uma digital do equipamento
Obs: O parmetro pFingerOnly define se deve exclui somente uma digital ou todas as do
usurio*.
* Observao vlida para biometria cb_S;

Bio_DelTemplate(pThreadIndex: Integer; const pUsuarioID:


WideString; pFingerOnly : WordBool): WordBool;
Bio_DelTemplateTodas(pThreadIndex: Integer): WordBool;
Este mtodo exclui todas as digitais do equipame nto.

Bio_DelTemplateTodas(pThreadIndex: Integer): WordBool;

ActiveX Kernel7x - pgina 64

Bio_GeraUserID(pBiometria: SBiometria; const pMatricula: WideString;


p D e d o : B y te ; p M a s te r : W o r d B o o l ): W i d e S tr i n g ;
Este mtodo gera um ID de usurio de acordo com os parmetros informados . O ID do
usurio necessrio em diversos mtodos de manuteno biomtrica.

Bio_GeraUserID(pBiometria: SBiometria; const pMatricula:


WideString; pDedo: Byte; pMaster: WordBool): WideString;
Bio_UsuariosQuantLivre(pThreadIndex: Integer; out pQuantidade: Integer):
W o rd B o o l ;
Este mtodo retorna o espao disponvel para novos cadastrados no equipamento.
Suportado somente em biometria cb_S.

Bio_UsuariosQuantLivre(pThreadIndex: Integer; out pQuantidade:


Integer): WordBool;

ActiveX Kernel7x - pgina 65

Manuteno de Digitais Avanada


Bio_RecConfiguracaoF_FL(pThreadIndex: Integer; out pConfig:
SDspcfg_F_FL): WordBool;
Este mtodo permite receber a configurao do mdulo biomtrico modelos F ou Fl .

Bio_EnvConfiguracaoF_FL(pThreadIndex: Integer; pConfig:


SDspcfg_F_FL): WordBool;
Este mtodo permite enviar configuraes para os mdulos F ou FL.

Bio_RecConfiguracaoS(pThreadIndex: Integer; out pConfig: SDspcfg_S):


W o rd B o o l ;
Este mtodo permite receber configuraes do mdulo S.

RecebeConfigDSP (pThreadIndex: Integer; out pNivelSeguranca,


pVelocidade, pSensibilidade, pQualidadeImagem : Integer; out
pCondicaoIluminacao, pStatus: WordBool);
Bio_EnvConfiguracaoS(pThreadIndex: Integer; pConfig: SDspcfg_S):
W o rd B o o l ;
Este mtodo permite enviar configuraes para o mdulo S.

EnviaConfigDSP (pThreadIndex: Integer; pNivelSeguranca,


pVelocidade, pSensibilidade, pQualidadeImagem : Integer;
pCondicaoIluminacao: WordBool) : WordBool;

Bio_CfgDefaultF_FL(pTipo: SCfgDspPadrao): SDspcfg_F_FL;


Este mtodo carrega estruturas de configurao padro para o mdulo F ou FL. Ser
necessrio o mtodo Bio_EnvConfiguracaoF_FL para efetivar a operao .

ActiveX Kernel7x - pgina 66

Biometria Online
Este recurso estar disponvel mediante licena, no licenciado ser possvel carregar 5
digitais.
Bio_CarregaTemplate (pTemplateS : WideString): WordBool;
Este mtodo carrega a template armazenada para matching online no kernel, a matrcula
encontrada ser passada de forma transparente no evento OnRegistro. A template
passada como parmetro deve ter utilizado o mtodo SetUser da interface Hamster.

Bio_CarregaTemplate (pTemplateS : WideString): WordBool;


Bio_DropTemplates;
Este mtodo excluir todas as templates carrega das da memria.

Bio_DropTemplates;
Bio_ProcuraTemplate (pTemplate, pMatricula : WideString): WideString;
Este mtodo realiza busca nas templates adicionadas com o mtodo
CarregaTemplate retornando a matrcula caso localize a digital, modo 1 -N.
Tambm possvel realizar busca 1-1 informando no parmetro matrcula a digital
desejada.
Bio_ProcuraTemplate (pTemplate, pMatricula : WideString):
WideString;
S e tS e c u r i ty L e v e l (p L e v e l : B y te );
Este mtodo determina o nvel de segurana da verificao online, o pad ro 5 podendo
variar de 1 a 7, quanto maior mais segura e lenta ser a busca.

SetSecurityLevel(pLevel : Byte);
SetSearchTimeout (pSegundos : Integer);
Este mtodo determina o tempo limite de busca de template no banco, o valor 0 deixa
busca sem limite de tempo.

SetSearchTimeout (pSegundos : Integer);

ActiveX Kernel7x - pgina 67

Exportao e Importao de Dados


ExportConfiguracao(const pCaminho: WideString; pConfiguracao:
SConfiguracao): WordBool;
Este mtodo salva uma configurao de equipamento em arquivo .

ImportConfiguracao(const pCaminho: WideString; out pConfiguracao:


SConfiguracao): WordBool;
Este mtodo carrega uma configurao de equipamento de um arquivo.

SaveAsTemplate7x(const pCaminho: WideString; pTemplate: STemplate7x):


W o rd B o o l ;
Este mtodo salva uma template 7x em arquivo . A template 7x uma estrutura genrica
para armazenamento de qualquer formato de digital suportado pelos equipamentos Henry.

OpenTemplate7x(const pCaminho: WideString; out pTemplate:


STemplate7x): WordBool;
Este mtodo carrega uma template 7x de um arquivo .

USB_RecebeCartucho(pThreadIndex: Integer; const pFileName:


W i d e S tr i n g ): W o r d B o o l ;
Este mtodo copia um cartucho USB Henry para um arquivo de memria.

USB_EnviaCartucho(pThreadIndex: Integer; const pFileName: WideString):


W o rd B o o l ;
Este mtodo grava um arquivo de memria em cartucho USB Henry.

ActiveX Kernel7x - pgina 68

Redistribuio
Para distribuir o kernel7x e seus componentes juntamente com sua a plicao,
garantindo compatibilidade total de mtodos e funcionamento, basta adicionar ao seu
instalador o pacote Redist, este pacote instala e registra as bibliotecas no sistema.
Alm de drivers para operao com hamster e USB.
A execuo do redist supor ta personalizao, a mais importante para
funcionamento da sua aplicao personalizar o diretrio de instalao, segue exemplo de
execuo que pode ser escrita em um arquivo bat caso voc no possua um instalador.
Kernel7x_v7.2.0.22_Redist.exe /DIR="C:\Arquivos de
programas\MinhaEmpresa\MeuPrograma"
Para outras customizaes procure na internet por inno setup command line.
Tenha seu aplicativo compilado com a verso do kernel que ser usado.
Para obter este pacote acess e www.henry.com.br, entre como integrador e baixe a
verso mais recente.
recomendvel manter sua integrao com o Kernel sempre atualizada com a
ltima verso disponvel.

ActiveX Kernel7x - pgina 69

Constantes de erro
CARD7X_ERRO_NONE
CARD7X_ERRO_TIMEOUT
CARD7X_ERRO_FIRMWARE
CARD7X_ERRO_CHECKSUN_HEADER
CARD7X_ERRO_CHECKSUN_DATA
CARD7X_ERRO_ONLINEPRIORITY
CARD7X_ERRO_CONEXAO
CARD7X_ERRO_QUEBRADADOS
CARD7X_ERRO_CARDHEADER
CARD7X_ERRO_PARTITION_SMALL
CARD7X_ERRO_COMTYPE
CARD7X_ERRO_REGS_EMPTY
CARD7X_ERRO_ITEMS_FULL
CARD7X_ERRO_KERNEL_EXCEPTION
CARD7X_ERRO_ITEMS_NOTFOUND
CARD7X_ERRO_ITEMS_DUPLICATED
CARD7X_ERRO_ICMP_FAIL
CARD7X_ERRO_ICMP_TIMEOUT
CARD7X_ERRO_NEXISTE_LISTA
CARD7X_ERRO_EXISTE_LISTA
CARD7X_ERRO_LISTA_CHEIA
CARD7X_ERRO_EVENTO_NAO_EXISTE
CARD7X_ERRO_PARAMETROS_INVALIDOS
CARD7X_ERRO_CANCELAR_COLETA

= 0000; //Operao realizada com sucesso


= 0001; //Ultrapassado tempo mximo de espera
= 0002; //Firmware no suporta comando
= 0003; //Cabealho do pacote invlido
= 0004; //Dados do pacote invlido
= 0005; //Operao abortada por solicitao online
= 0006; //No foi possvel conectar com o equipamento
= 0007; //No foi possvel receber todos os dados esperados
= 0008; //Cabealho do pacote invlido
= 0009; //Particionamento no suporta quantidade de dados
= 0011; //Tipo de comunicao no suporta comando
= 0012; //Sem registros
= 0013; //Quantidade de itens limite atingida
= 0014; //Nmero/ID do equipamento invlido
= 0015; //Item solicitado no existe
= 0016; //Existem itens duplicados na lista
= 0017; //Ping no foi realizado com sucesso
= 0018; //Detectada lentido na conexo podendo causar perda de dados
= 0019; //Registro no existe na lista
= 0020; //Registro existe na lista
= 0021; //Lista de registros est cheia
= 0022; //Evento no existe
= 0023; //Parmetros invlidos
= 0024; //Coleta cancelada

CARD7X_ERRO_IO_ENVIO
CARD7X_ERRO_IO_RECEPCAO

= 0101; //No foi possvel enviar os dados corretamente


= 0102; //No foi possvel receber os dados corretamente

CARD7X_ERRO_DSP_EXCEPTION
CARD7X_ERRO_DSP_EMPTY
CARD7X_ERRO_DSP_OVERBUFFERSIZE

= 0201; //Mdulo biomtrico no aceitou o comando


= 0202; //Mdulo biomtrico sem usurios
= 0203; //Capacidade do buffer para mdulo biomtrico ultrapassada

CARD7X_ERRO_INVALID_SERIALPORT
CARD7X_ERRO_INVALID_METHOD
CARD7X_ERRO_INVALID_PARTITION

= 0301; //Porta serial invlida


= 0302; //Comando invlido para a configurao atual
= 0303; //Particionamento no vlido

ActiveX Kernel7x - pgina 70

CARD7X_ERRO_INVALID_THREAD
CARD7X_ERRO_INVALID_TEMPLATE
CARD7X_ERRO_INVALID_FACILITY
CARD7X_ERRO_INVALID_CONTROLADORID
CARD7X_ERRO_INVALID_COUNTPERIODOS
CARD7X_ERRO_INVALID_GPRSPORT
CARD7X_ERRO_INVALID_SERIALINUSE

= 0304; //Thread no foi encontrada


= 0305; //Erro de template invlida
= 0306; //Facility code invlido
= 0307; //ID do controlador invlido
= 0308; //Quantidade de perodos no horrio invlida
= 0309; //A porta definida j est em uso por outro equipamento
= 0310; //A porta de comunicao est sendo utilizada por outro processo

CARD7X_ERRO_USB_INVALID_IDNUM
CARD7X_ERRO_USB_INVALID_IXREG
CARD7X_ERRO_USB_INVALID_IXCHIP
CARD7X_ERRO_USB_INVALID_NUMDIGITOS
CARD7X_ERRO_USB_INVALID_FILESIZE
CARD7X_ERRO_USB_INVALID_COUNTCHIPS
CARD7X_ERRO_USB_PROTOCOL

= 0401; //Nmero/ID do equipamento invlido


= 0402; //Dados do Cartucho USB inconsistentes
= 0403; //Dados do Cartucho USB inconsistentes
= 0404; //Dados do Cartucho USB inconsistentes
= 0405; //Arquivo USB invlido para capacidade do cartucho
= 0406; //Nmero de chips invlido
= 0407; //Falha na montagem do protocolo USB

CARD7X_ERRO_HEADER_RESP
CARD7X_ERRO_HEADER_CMD
CARD7X_ERRO_HEADER_VERSAO
CARD7X_ERRO_HEADER_STATUS
CARD7X_ERRO_HEADER_TAMREG
CARD7X_ERRO_HEADER_NUMREG
CARD7X_ERRO_HEADER_CHECKSUN

= 0500; //Resposta invlida recebida


= 0501; //Comando invlido recebido pelo relgio
= 0502; //Verso incompatvel com o Relgio
= 0503; //Status errado foi recebido pelo relgio
= 0504; //Tamanho dos Reg. diferentes foi recebido pelo relgio
= 0505; //Nmero dos Reg. invlido foi recebido pelo relgio
= 0506; //Relgio recebeu cabealho com erro de check sum

CARD7X_ERRO_BIO_KEY_OVERLIMIT
CARD7X_ERRO_BIO_INVALID_TEMPLATE
CARD7X_ERRO_IMAGE_NO_LICENSE

= 0601; //Chave de biometria excedeu o limite


= 0602; //Formato da template invalido
= 0603; //Kernel7x no est licenciado para este servio

CARD7X_ERROR_CONFIG_DIGITOS_REGS

= 0700; //Colete registros antes de executar essa operao

ActiveX Kernel7x - pgina 71

Anexos
A l te r a e s k e r n e l 7 x A l t e r n a ti v o 7 . 2 . 0 . 2 2
No intuito de facilitar a integrao e prover agilidade no desenvolvimento f oram
alterados os parmetros e implementadas novas fun es para o Kernel7x Alternativo.
Abaixo segue a relao com as funes e as modificaes feitas.

Novas rotinas
Foram criadas quatro novas rotinas.

Mtodo RecebeConfigDSP
Mtodo criado para receber configuraes do mdulo biomtrico do equipamento.
pStatus retorna verdadeiro se a rotina foi executada com sucesso.
procedure TAlternativo.RecebeConfigDSP(pThreadIndex: Integer;
out pNivelSeguranca, pVelocidade, pSensibilidade, pQualidadeImagem: Integer;
out pCondicaoIluminacao, pStatus: WordBool);

TAlternativo.RecebeConfigDSP

pThreadIndex
pNivelSeguranca
pVelocidade

pSensibilidade
pQualidadeImagem
pCondicaoIluminacao

Integer
Integer
Integer
Integer
Integer
Boolean

pStatus

Boolean

ndice da thread a ser acessada


Nvel de segurana da verificao
Velocidade da verificao
Sensibilidade do leitor
Qualidade da imagem
Condio de iluminao
Situao da execuo da procedure. True =
Executou com sucesso

Mtodo EnviaConfigDSP
Mtodo criado para enviar configuraes ao mdulo biomtrico do equ ipamento.
function TAlternativo.Get_EnviaConfigDSP(pThreadIndex, pNivelSeguranca,
pVelocidade, pSensibilidade, pQualidadeImagem: Integer;
pCondicaoIluminacao: WordBool): WordBool;

ActiveX Kernel7x - pgina 72

TAlternativo.Get_EnviaConfigDSP pThreadIndex
Retorno : Boolean

pNivelSeguranca
pVelocidade

pSensibilidade
pQualidadeImagem
pCondicaoIluminacao

Integer
Integer
Integer
Integer
Integer
Boolean

ndice da thread a ser acessada


Nvel de segurana da verificao
Velocidade da verificao
Sensibilidade do leitor
Qualidade da imagem
Condio de iluminao

Mtodo CaptureNet
Mtodo criado para capturar a digital do Hamster com timeout definido. Retorna a
digital e uma varivel que indica se a operao foi realizada com sucesso.
procedure THamster.CaptureNet(out pTempl ate: WideString; out pStatus: WordBool);
TAlternativo.CaptureNet pTemplate

WideString Retorna a digital em forma de widestring


Situao da execuo da procedure. True =
Boolean Executou com sucesso

pStatus

Mtodo CaptureContinuousNet
Mtodo criado para capturar a digital do Hamster sem timeout. Retorna a digital e uma
varivel que indica se a operao foi realizada com sucesso.
procedure THamster.CaptureContinuousNet(out pTemplate: WideString;
out pStatus: WordBool);
Retorna a digital em forma de

TAlternativo.CaptureContinuou sNet pTemplate WideString widestring


pStatus

Boolean

Situao da execuo da procedure.


True = Executou com sucesso

ActiveX Kernel7x - pgina 73

Rotinas alteradas
Mtodo RecebeMsgPadrao
Alterado mtodo RecebeMsgPadrao. Foi alterado o tip o de rotina (de function para
procedure) e inserido um parmetro chamado pStatus, que ser agora o retorno da
procedure. Se pStatus retornar Verdadeiro ento a rotina executou corretamente.
procedure TAlternativo.RecebeMsgPadrao(pThreadIndex: Intege r;
out pEstiloMsgPadrao, pEstiloMsgEntrada, pEstiloMsgSaida: SMsgEstilo;
out pMsgPadraoLinha1, pMsgPadraoLinha2, pMsgEntradaLinha1, pMsgEntradaLinha2,
pMsgSaidaLinha1, pMsgSaidaLinha2: WideString;
out pTempoMsgPadrao, pTempoMsgEntrada, pTempoMsgSai da: Shortint;
out pStatus: WordBool);
Procedimento

Parmetros

Tipo

Descrio

TAlternativo.RecebeMsgPadrao

pThreadIndex
pEstiloMsgPadrao
pEstiloMsgEntrada
pEstiloMsgSaida
pMsgPadraoLinha1
pMsgPadraoLinha2
pMsgEntradaLinha1
pMsgEntradaLinha2
pMsgSaidaLinha1
pMsgSaidaLinha2
pTempoMsgPadrao
pTempoMsgEntrada
pTempoMsgSaida

Integer
SMsgEstilo
SMsgEstilo
SMsgEstilo
String
String
String
String
String
String
Byte
Byte
Byte

ndice da thread a ser acessada


Estilo da mensagem a ser enviada
Estilo da mensagem a ser enviada
Estilo da mensagem a ser enviada
Mensagem padro na linha 1
Mensagem padro na linha 2
Mensagem de Entrada na linha 1
Mensagem de Entrada na linha 2
Mensagem de Sada na linha 1
Mensagem de Sada na linha 2
Tempo que aparece a mensagem no display
Tempo que aparece a mensagem no display
Tempo que aparece a mensagem no display
Situao da execuo da procedure. True =
Executou com sucesso

pStatus

Boolean

Mtodo Rec_Escala
Modificado de function para procedur e.
procedure TAlternativo.Rec_Escala(pThreadIndex: Integer;
out pDataInicio: TDateTime;
out pHorarios: WideString;
out pStatus: WordBool);
TAlternativo.Rec_Escala

pThreadIndex
pDataInicio
pHorarios
pStatus

Integer
DateTime
WideString
Boolean

ndice da thread a ser acessada


Data incio da escala
Horrios da escala
Situao da execuo da procedure. True = Executou com sucesso

ActiveX Kernel7x - pgina 74

Mtodo Rec_FncEsp_Matricula
Alterado para procedure e foi implementado um parmetro que indica a situao da
execuo da procedure: pStatus.
procedure TAlternativo.Rec_FncEsp_Matricula(pThreadIndex: Integer;
out pMatricula: WideString;
out pStatus: WordBool);
TAlternativo.Rec_FncEsp_Matricula pThreadIndex Integer ndice da thread a ser acessada
pMatricula
WideString Matrcula
pStatus

Boolean

Situao da execuo da procedure. True =


Executou com sucesso

Mtodo Rec_FncEsp_Funcao
Alterado para procedure e foi implementado um parmetro que indica a situao da
execuo da procedure: pStatus.
procedure TAlternativo.Rec_FncEsp_Funcao(pThreadIndex: Integer;
out pMatricula, pMensagem: WideString;
out pTempo, pNumero: Byte;
out pStatus: WordBool);
TAlternativo.Rec_FncEsp_Funcao pThreadIndex
pMatricula
pMensagem
pTempo
pNumero
pStatus

Integer
WideString
WideString
Byte
Byte
Boolean

ndice da thread a ser acessada


Matricula
Mensagem
Tempo da funo
Nmero da funo
Situao da execuo da procedure. True =
Executou com sucesso

ActiveX Kernel7x - pgina 75

Mtodo Rec_Periodo
Alterado para procedure e im plementado parmetro que indica a situao da execuo
da procedure: pStatus.
procedure TAlternativo. Rec_Periodo(pThreadIndex: Integer;
out pHorario: TDateTime;
out pTolerancia: Byte;
out pDomingo, pSegunda, pTerca, pQuarta, pQuinta, pSexta, pSaba do, pFeriado, pStatus :
WordBool);
TAlternativo. Rec_Periodo

pThreadIndex
pHorario
pTolerancia
pSegunda
pTerca
pQuarta
pQuinta
pSexta
pSabado
pFeriado
pStatus

Integer
TDateTime
Byte
Boolean
Boolean
Boolean
Boolean
Boolean
Boolean
Boolean
Boolean

ndice da thread a ser acessada


Horrio incio do perodo
Tempo do perodo
Habilitado no dia
Habilitado no dia
Habilitado no dia
Habilitado no dia
Habilitado no dia
Habilitado no dia
Habilitado no dia
Situao da execuo da procedure . True = Executou com
sucesso

Rec_MsgEspec
Alterado para procedure e implementado par metro que indica a situao da execuo
da procedure: pStatus.
procedure TAlternativo.Rec_MsgEspec(pThreadIndex: Integer;
out pMsgStatus: SMsgEstilo;
out pMsgTempo: Byte;
out pMsgLinha1, pMsgLinha2, pMatriculas: WideString;
out pData: TDateTime;
out pTodosDias, pStatus: WordBool);
TAlternativo.Rec_MsgEspec

pThreadIndex
pMsgStatus
pMsgTempo

pMsgLinha1
pMsgLinha2
pMatriculas
pData

Integer
SMsgEstilo
Byte
WideString
WideString
WideString
TDateTime

ndice da thread a ser acessada


Estilo da mensagem
Tempo da mensagem
Linha 1 do display
Linha 2 do display
Matriculas
Data

ActiveX Kernel7x - pgina 76


pTodosDias

Boolean

pStatus

Boolean

Marcador para executar todos os dias


Situao da execuo da procedure. True = Executou
com sucesso

Rec_ItemAcesso
A funo foi alterada para procedure e foi implementado parmetro que indica a
situao da execuo da procedure: pStatus.
procedure TAlternativo.Rec_ItemAcesso(pThreadIndex: Integer;
out pMatricula: WideString;
out pHorario: Byte;
out pAcesso: SAcessoOffline;
out pPerBloqIni, pPerBloqFim: TDateTime;
out pPerBloqHab, pAcionaRele1, pAcionaRele2, pAcionaRele3, pVerificarDigital,
pMaster, pVisitante, pStatus: WordBool );
TAlternativo.Rec_ItemAcesso

pThreadIndex
pMatricula
pHorario

pAcesso
pPerBloqIni
pPerBloqFim
pPerBloqHab
pAcionaRele1
pAcionaRele2
pAcionaRele3
pVerificarDigital
pMaster
pVisitante
pStatus

Integer
WideString
Byte
SAcessoOffline
TDateTime
TDateTime
Boolean
Boolean
Boolean
Boolean
Boolean
Boolean
Boolean
Boolean

ndice da thread a ser acessada


Matricula
ndice do horrio
Tipo de acesso
Incio do perodo de bloqueio
Fim do perodo de bloqueio
Perodo de bloqueio habilitado
Aciona Rel 1
Aciona Rel 2
Aciona Rel3
Verifica digital
Verifica se master
Verifica se visitante
Situao da execuo da procedure. True =
Executou com sucesso

ActiveX Kernel7x - pgina 77

Utilizando Faixas de Acesso

Para utilizar as faixas de acesso so necessrios no mnimo dois Itens de Acesso. O


primeiro deve conter a matrcula inicial da faixa e na propriedade acesso a configurao
cafFaixa. As demais configuraes deste Item de Acesso sero ignoradas pois ele est
configurado como incio de uma faixa. O primeiro Item de Acesso enviado aps o Item
configurado como cafFaixa conter a matrcula final da faixa e todos os privilgios de
acesso.
Exemplo:
Adiciono o primeiro item com a matrcula 00000000000000000001 e o acesso
configurado como cafFaixa. Adiciono o segundo item com a matrcula
00000000000000000020 com o acesso configurado como cafNegado. Todas as
matrculas entre 1 e 20 estaro configuradas com exatamente as mesmas configuraes do
segundo item enviado, nesse caso, o Item de Acesso com a matrcula 20. Portanto todas as
matrcula neste intervalo estaro com o acesso negado.
O mesmo ocorre com as demais configuraes (Verificao de digital, Rels, Mster,
Visitante, Perodo de Bloqueio e Controladores ).

A configurao de Faixa de Acesso con figurada por padro no equipamento como


ativada. Para que ela funcione em equipamentos offline basta que o Firmware do
equipamento seja superior ou igual a 7100 para equipamentos Card e Orion.

Você também pode gostar