Strict Standards: Non-static method themeGluedIdeas_Subtle::initOptions() should not be called statically in /home/riopro/www/blog.riopro.com.br/wp-content/themes/gluedideas_subtle/header.php on line 19
Riopro Blog - » Desafiados pela Catraca de Acesso

Desafiados pela Catraca de Acesso



Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

A encomenda já havia sido feita a aproximadamente 2 anos, quando fechamos um contrato que incluía a integração do nosso sistema financeiro (FinanceRP) com um módulo para autenticar a entrada de sócios nas dependências de nosso cliente.

Desde o início, sabíamos que essa integração passaria necessariamente por reescrever o protocolo de qualquer que fosse a catraca em Java. Não era pessimismo, o que acontece é que em geral os fabricantes/distribuidores de catracas e relógios de ponto fornecem apenas um ocx ou uma dll, que só funcionam no Janelas, e por isso, nem se o componente fosse escrito em C++ daria para fazer um acesso por JNI (ou talvez até desse, mas acredito que o trabalho fosse ser ainda maior e a solução final não tão elegante), já que nossos servidores eram/são 100% Linux (rodando a distribuição Ubuntu). Além disso, objetivávamos controlar a catraca em modo real-time, e não em modo batch, e portanto o acesso deveria ter o menor número de camadas possível para garantir performance e maior controle das operações.
Esquecemos disso por quase um ano e meio, visto que o fornecedor das catracas não havia sido definido e portanto não teríamos como trabalhar a interface com o nosso sistema. Apesar de nosso sistema ser fundamentalmente Web, o que fizemos nesse meio tempo foi pré-preparamos nossos objetos que fariam internamente o processamento das validações e definimos uma idéia de interface que esperávamos ter junto à catraca.

Chegado o momento da escolha do fornecedor, fomos buscar os mais eficientes, cujas catracas funcionassem sobre protocolo TCP/IP (por uma questão de tecnologia mais apropriada para o futuro), os que tinham os melhores produtos, mas principalmente aqueles que queriam colaborar cedendo gentilmente o modelo de comunicação (não necessariamente os fontes, é óbvio).

Ao final, havia sobrado unicamente a Dimep, que é um tradicional fornecedor de relógios de ponto e catracas de acesso. Esse artigo não se propõe a ser um anúncio grátis da Dimep, até porque eles tem seus problemas e certamente existem outros bons fornecedores também. Mas não devemos deixar de ressaltar a boa vontade e suporte para compreensão do modelo do protocolo deles.

Isso nos leva a um item importante e que pode frustrar um pouco a comunidade de software livre: devido ao acordo de confidencialidade assinado por nosso cliente, com nossa interveniência, com a Dimep, nada que não for estritamente presente no manual do usuário normal da catraca será comentado. Fonte, então, nem pensar (se bem que vocês sempre podem comprar de nós a nossa classe compilada :)).

Para não deixar todo mundo com água na boca, esse artigo se propõe a duas coisas:

  1. Falar que sim, é possível fazer a comunicação em Java (como qualquer desenvolvedor que conhece Java deveria supor) e que o funcionamento no Linux funciona perfeitamente (afinal, podemos dizer que o Linux nasceu para a comunicação em rede e vice-versa);
  2. Dar algumas dicas que podem não salvar a vida de todos, mas certamente cortam o caminho para muitos que tentarem desenvolver sua própria API para operar com as catracas da Dimep (e só da Dimep, que foi a única que implementamos até o fim).

A solução que implementamos utilizou o modelo Micropoint-IP, mas com certeza seria possível implementações similares nas catracas que utilizam de acesso pela porta serial e idênticas nos relógios de ponto, visto que o equipamento de autenticação e a interface é a mesma. Aumentei sua esperança?

Outros detalhes interessantes são:

  • A implementação da nossa API usou basicamente o pacote java.nio, portanto vale a pena estudá-lo com cuidado;
  • A catraca aceita códigos de barra nos padrões intercalado 2 de 5 e barcode 39;
  • Ela também aceita que o último dígito do código de barras seja um DV11 (padrão para quem gera boletos) e a validação é feita diretamente na catraca e não enviada pela catraca para o computador. Se geramos um código 000019 e 9 é o DV11 da carteira, então a catraca enviará somente 00001);
  • Um item importante e que só depois de olhar no manual dos usuários soubemos com certeza: as catracas da Dimep só aceitam códigos com até 15 números, podendo ter um 16°, contanto que o 16° seja um DV11 do código (até porque todo código intercalado 2 de 5 deve necessariamente possuir um par de números);
  • O tamanho das barras do código deve possuir uma espessura mínima. Nossos códigos possuem 16 números e para que você possa repetir um teste que funcionará com certeza é: 0000000000097039. Se você imprimir esse código com um tamanho (considere o tamanho da primeira barra preta até a última barra preta) de 3,9cm, o leitor lerá, com muita boa vontade, 3% das vezes. Aumentando a espessura da barra para que esse código possa ter um tamanho de 4,9cm, conseguimos um nível de acerto próximo a 99% (imprimindo as barras em uma impressora laser também). Portanto considere isso para não ter gasto desnecessário;
  • a rigidez do papel obviamente ajuda na leitura e na durabilidade. Se for um cartão plástico, melhor ainda;
  • O IP, bem como o nome da catraca são definidos por catraca e convém operar as catracas em uma subrede, para acelerar a comunicação entre as catracas e o computador responsável por atender as requisições.

Em suma, é isso. Espero que o artigo seja útil para os desenvolvedores ou empresas que vão se aventurar no trabalhoso processo de confecção desse tipo de API.

Informações e Links

Junte-se comentando, lendo o que os outros dizem ou colocando um link a partir do seu blog.


Outros Artigos

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Como incluir feeds RSS no Mediawiki

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Efeitos do EasyEclipse 1.2.1

Comente

Tire um tempo para comentar e nos dizer o que você acha. Alguns códigos HTML são permitidos para formatação.

Comentários dos Leitores


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Ola, estou com um problema chatissimo assim.

Temos uma catraca a anos, e a mesma não consegue comunicação, a catraca está funcionando normalmente, mas naum consigo fazer comunicação de maneira alguma. A mesma é paralela, ou serial, e ja tentei de varias maneiras conseguir a documentação do PIC controlador, mas os fornecedores não fornecem.
Bom, estou lendo muito sobre o assundo, masticularmente não gosto muito de java, mas programo bastante coisa, entaum se presicar de alguma coisa, ou puder me mandar alguma coisa, estarei grato.

Abraço.


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Uma catraca por ip é diferente de uma catraca ligada na porta paralela ou serial. Qual é o modelo? Qual a marca? Você consegue ou não fazer a comunicação?

abraços


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Galera!!Tenho um problema semelhante tenho um catrata tca52 da tecnibra e a mesma se comunica por serial. só que não estou conseguindo me comunicar!!Alguém pode me ajudar. meu SO é windows 95 é uma máquina bem velha, tem até memória simm vejam só!! Será que é por causa dissas memórias. Meuas alunos tem que passar diversas vezes a carteira para ela poder liberar!!Atualmente a catraca só dá erro 9999990000001. Alguém pode me dar uma luz!!!


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Oi Fernando, já funcionava antes nessa máquina? Você tem que problema?

Pode ser um problema na serial. Ou pode não ter problema nenhum, ser só uma questão de acertar o protocolo… fala mais detalhes

Para se comunicar com uma catraca você tem que entender /saber o protocolo da mesma para se comunicar. Procura por SOH (Start of Heading) para começar. Como é serial, você não precisa saber qual a porta procurar. Você tem que entender o que a catraca vai te mandar de comunicação e responder algo que ela entenda. Vê se essa catraca tem algum manual para começar.


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Olá Otávio,
Seguinte, estou desenvolvendo uma aplicação para escolas que vai utilizar a mesma linha de catracas da Dimep. Queria saber se vocês desenvolveram uma DLL intermediária para a comunicação ou acessaram diretamente a DLL da catraca?
Agradeço a atenção.
Att.
Daniel Kist


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Daniel, DLL é coisa do passado :). O que desenvolvemos foi um componente de acesso direto à catraca, visto que os componentes da própria Dimep só funcionam no windows.

O desenvolvimento só foi possível porque um acordo comercial permitiu que eles disponibilizassem o padrão de comunicação com a catraca. Com base nisso criamos o nosso componente.


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Olá Otávio,

Estou iniciando o desenvolvendo um sistema p controle de acesso utilizando a micropoint-ip. Dessa forma, gostaria de saber se vc comercializa esse componente (classe) q desenvolveu? Se sim, qual seria seu valor?


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Ronny, poderíamos vender sim, mas isso dependeria de viabilizar um acordo com a Dimep.


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

[…] cliente e um servidor para fazer o meio de campo entre aplicações web e catracas da DIMEP. Eu já tinha escrito a um certo tempo atrás como, havíamos integrado as catracas da DIMEP em uma apliacação de um cliente que rodava todos […]


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Ola, estou com um problema aqui na empressa assim.

Temos uma catraca nova ,da marca biometrus , e o softwar não coresponde com a expectativa.a mesma não consegue comunicação, a catraca está funcionando normalmente, mas naum consigo fazer comunicação e as vezes da conflito de arquivos, ou cadastro de pessoas. gostaria muito de uma ajuda .


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

o software que estou usando e attendance Management.


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Como poderíamos ajudar? Por favor, envie o problema a ser resolvido? Favor usar o formulário de contato caso necessite de contratação ou orçamento de serviços técnicos.


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Trabalho numa empresa de engenharia civil, e temos alguns relógios DIMEP REP em canteiros de obras, estou estudando uma forma de acessa-los remotamente através do escritório da empresa, porém os atendentes da DIMEP não sabem oque é porta TCP, acham que o relógio só usa o ip, mascara e gateway, o pior é que teimam em dizer que estou equivocado pois não tem porta, já me disseram que a única porta para comunicação é a RJ45 rsss ou seja não sabem nada de nada de rede e muito menos de protocolo TCP-IP e ainda dizem ser os sabidos.
Otavio, tem como você me passar qual a porta de acesso ao relógio para que eu possa fazer a tabela de roteamento para que eu possa interligar o escritório nas obras? pensei em fazer uma VPN que não precisaria de saber qual a porta porém encontrar um roteador com 3g e VPN junto a um preço acessível é impossível, por isso vou inserir um roteador com 3g e recurso de redirecionamento de porta. quanto ao ip do roteador 3g utilizarei um DNS dinâmico como o DynDns no router, se puder me passar o número da porta TCP agradeço!
vlw


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

andremedeiross, os equipamentos DIMEP utilizam a porta 3000.

Sucesso


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Amigo, estou fazendo um software em java para minha empresa para controlar o acesso de uma catraca MADIS (através de TCP/IP e usa a porta 3000) meu ÚNICO problema é que, APÓS estabelecer a conexão através de um Socket não consigo receber input da catraca, dada a similaridade com o que você fez queria pedir alguma recomendação sobre o que fazer. (todo o lado que recebe os dados, consulta no DB pela autorização e libera funcio0na, só não consigo receber input da catraca)


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Pessoal,gostaria de saber se existe emulador de catraca?