Leitor de cheques

Delphi

09/06/2005

Boa Tarde Galera!

È o seguinte estou desenvolvendo um programa aqui de Notas Promissórias e Controle de Cheques, ai eu estou com um leitor da COBRA Tecnologia L50, mas não consigo fazer funcionar.

1- Liguei o Leitor na porta serial, mas não fiz nenhuma outra configuração, nem instalação (se é que precisa). Se eu colocar o cheque ele puxa e apita tudo direitinho mas não transmite nenhuma informação. Eu baixei um programa que le e por isto sei que não está funcionando. Tentei abrir o Bloco de Notas mas ele não joga nenhuma informação lá quando lê o cheque( deve ser por que ele é ligado na porta serial )

Gostaria de saber com faço para utiliza-lo!

Atenciosamente,
Daniel Miranda Cruz


Daniel_mc

Daniel_mc

Curtidas 0

Respostas

Daniel_mc

Daniel_mc

09/06/2005

SOBE


GOSTEI 0
Weber

Weber

09/06/2005

Se o leitor está ligado a uma porta serial a leitura não vai cair do céu, você terá que ler os dados da porta.


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

Gostei da sua educação, e isso eu já imaginava, mas quando pergunto é porque baixei um programa que faz isto portanto imaginei que tal software ja fazia isto e pelo visto não faz. O que gostaria de saber é se preciso de algum drive e como faco para utiliza-lo. Se souber e puder me ajudar ficarei grato.

Atenciosamente,

Daniel Miranda Cruz


GOSTEI 0
Weber

Weber

09/06/2005

Desculpe se fui ´curto e grosso´! :oops:
Não sei se você vai encontrar algum driver que faça a comunicação com o equipamento pra você.
O melhor mesmo é utilizar um componente para comunicação com porta serial. Não posso te indicar nenhum pois o componente que utilizamos aqui foi desenvolvido por nós mesmos.


GOSTEI 0
Dopi

Dopi

09/06/2005

No projeto ACBr (OpenSource e Multiplataforma) temos o componente ACBrLCB que foi projetado para Leitores de Código de Barras seriais, porém ele pode ser usado para ler qualquer informação que chegue via porta Serial...

Recentemente desenvolvi um programa de consultas ao crédito que permite a leitura do CMC7 do cheque usando um leitor de Cheques serial e o ACBrLCB... funcionou perfeitamente...

o Link para a página do projeto está na minha assinatura.


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

Valeu meus Camaradas, vou fazer uns testes aqui e qualquer coisa posto de novo!!

t+


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

09/06/2005

Colega,

A dica do Daniel já deve resolver o seu problema de comunicação com a leitora. Entretanto, gostaria de sugerir a leitura de um artigo que escrevi recentemente sobre o conteúdo da banda magnética, caso ainda não tenha esta informação. Veja no link abaxo:


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

Obrigado Aroldo, li seu artigo e foi de muita valia, obrigado também ao Daniel meu xará pela dica do componente, mas estou com um problema não sei muito bem como usar este componente ACBrLCB

O problema é que não sei em que evento e como o componente trabalha, será que vcs poderiam me dar um help, ou um tutorial se é que existe, porque eu preciso utiliza-lo com o leitor de cheques


Valeu meus camaradas!!

Daniel Miranda Cruz


GOSTEI 0
Dopi

Dopi

09/06/2005

Realmente os arquivos de ajuda dos componentes estão fazendo falta... a melhor maneira de aprender sobre eles é vendo o código dos [b:5177ec5830]Demos[/b:5177ec5830] na pasta [b:5177ec5830]ACBr\source\Pascal\Demo\VCL[/b:5177ec5830]

Observe esse trecho de código do programa [b:5177ec5830]LCBTeste.dpr[/b:5177ec5830]
procedure TForm1.ACBrLCB1LeCodigo(Sender: TObject);
begin
  lUltimaLeitura.Caption := Converte( ACBrLCB1.UltimaLeitura ) ;

  if not ACBrLCB1.UsarFila then
     Vende
  else
     mFila.Lines.Assign( ACBrLCB1.Fila );
end;


Ou seja, sempre que um código for lido pelo leitor o evento [b:5177ec5830]OnLeCodigo[/b:5177ec5830] é disparado... para saber qual o ultimo código que foi lido use e propriedade [b:5177ec5830]UltimaLeitura[/b:5177ec5830]


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

mas esta funcao serviria para ler o cheque tb né, porque quando executo o demo e paso o cheque no leitor não consigo exibir o conteudo de jeito nenhum!


GOSTEI 0
Dopi

Dopi

09/06/2005

Remova o conteudo do campo sufixo do Demo e tente de novo...

Se não der certo é necessário verificar se os parametros de comunicação Serial do Leitor são os mesmos configurados no Componente geralmente é 9600,8,N,1


GOSTEI 0
Massuda

Massuda

09/06/2005

Sugestão meio boba... geralmente tem duas portas seriais no micro... talvez você tenha que ligar sua leitora na outra porta serial?


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

Massuda, valeu pela dica e não é boba não, mas no demo da pra escolher qual COM utilizar, vou tentar fazer como Dopi esta falando e posto aqui denovo.


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

rapazes, eu passo o cheque no leitor e nem ´tchum´, o leitor puxa o cheque tres vezes e da um apito ao final mas nada acontece, ja tentei com outro cabo, já tirei o sufixo como o meu camarada Dopi recomendou, mas nada acontece, to tentando ligar um leitor de código de barras na porta serial pra ver se funciona, mas preciso de uma fonte de 5vdc e ainda não arrumei uma, mas em breve arrumarei.

Caso alguem saiba mais alguma coisa, por favor posta ai!!


GOSTEI 0
Gandalf.nho

Gandalf.nho

09/06/2005

Já testou o leitor em outra máquina para ver se o problema não é nele?


GOSTEI 0
Dopi

Dopi

09/06/2005

rapazes, eu passo o cheque no leitor e nem ´tchum´, o leitor puxa o cheque tres vezes e da um apito ao final mas nada acontece, ja tentei com outro cabo, já tirei o sufixo como o meu camarada Dopi recomendou, mas nada acontece, to tentando ligar um leitor de código de barras na porta serial pra ver se funciona, mas preciso de uma fonte de 5vdc e ainda não arrumei uma, mas em breve arrumarei. Caso alguem saiba mais alguma coisa, por favor posta ai!!


- A porta serial está funcionando ? O ECF, por exemplo, funciona nela ?

- Vc usa alguma aplicação DOS que precisa de acesso exclusivo ao IRQ da Serial ? Se SIM, pode ser que a porta Serial nao esteja disponivel no Windows.

Experimente excluir a porta do COM do Windows e deixar ele detecta-la novamente após um boot.

Se vc possuir um cabo serial para emulador de ECFs pode usar esse mesmo cabo e usar o emulador de Leitor Serial que também está no diretorio de Demos do projeto... Nesse caso o emulador irá enviar dados pela serial que serão lidos pelo ACBrLCB...


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

Já testei 2 leitores e todos os dois da COBRA tecnologia.

Quanto a utilização da Porta COM, não creio que nenhuma outra aplicação esteja utilizando-a. Rodei o Emulador sem plugar nenhum cabo a não ser o que já esta no leitor e ele aparentemente enviou os dados.
Quando o cheque é passado pelo leitor, os dados aparecem no campo Ultima Leitura automaticamente??


GOSTEI 0
Dopi

Dopi

09/06/2005

O emulador de Leitor só funciona se vc usar com o mesmo cabo de emulador de ECF para ligar 2 portas seriais...

Mas como podemos ter certeza que a porta Serial está funcionando ? Vc já usou essa porta antes com algum outro dispositivo ?

Não é um teste ideal... mas experimente ligar um mouse serial nela e dar um boot na máquina... se o mouse NAO funcionar a porta está com problemas..

Teste o conjunto Leitor + LCBTeste.exe em outra máquina...

Sim, uma vez lido o código lido será enviado junto com um sufixo padrão como #13 ou 10+13


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

Galera consegui ler o cheque, eu tava dando um vacilo porque eu tirei uma cópia(xerox) perfeita de um cheque meu. Ai eu achei que seria possível ler mas não estava lendo por isso.

Mas olha só o resultado da leitura:

#0 255 128 248 248 128 248

e no memo o seguinte:
Cód: x ( na 1º passada )
Cód: € ( em todas as outras)

O que seriam estes valores??


GOSTEI 0
Dopi

Dopi

09/06/2005

Esses valores lidos não condizem com um numero válido...

O numero que deverá aparecer é o proprio numero do CMC7 + Sufixo (geralmente o sufixo é ENTER = #13) ... Observe que o codigo de barras do CMC7 é formado por grandes numeros...

Provavelmente a paridade ou Stop bits estão diferentes entre o leitor e o componente ACBrLCB

O padrão do ACBrLCB é 9600 bauds, 8 bits ,paridade N (none) , Stop Bit 1
Veja no manual do Leitor qual é a configuração usada por ele, e ajuste no componente ACBrLCB ou re-programe o leitor.


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

este programa(LCBTeste.exe) lê os dados do seu leitor direitinho?


GOSTEI 0
Dopi

Dopi

09/06/2005

sim


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

Ae Dopi resolvi meu problema. Olha só, após futucar muito descobri que os parametros do leitor da COBRA tecnologia L50 são:

Velocidade: 2400
Paridade: N
Data:7
StopBits:1

Ai ele funciona belezinha, mas tem um porem que eu ainda não entendi direito. Seu deixar em branco o campo Sufixo ele ora lê correto ora não, se eu colocar 10 ou 13, ele lê pela metade. Ele só funcionou corretamente com sufixo 12;

Mas obrigado pela ajuda!

Qualquer coisa estamos ai, fica com Deus!

Atenciosamente,
Daniel Miranda Cruz


GOSTEI 0
Dopi

Dopi

09/06/2005

Ola Daniel,

Agora estamos bem perto... ;-)

Faça assim: Leia 3 a 4 cheques diferentes ... Observe no topo da tela, no Label [b:0fce4dc459]Ultima Leitura[/b:0fce4dc459] que no final de cada código lido constará um sufixo repetido... geralmente é #13 (que equivale ao ENTER) mas pode ser outro valor (como 12 que vc citou)

Apos analisar os códigos lidos vc chegará ao sufixo padrao enviado pelo leitor...

Insira esse Sufixo no campo Sufixo do Componente ou do LCBTeste. Se o sufixo for composto de dois char vc precisa separa-los com virgula, Ex: 13,10

Apos o componente conhecer corretamente o sufixo ele saberá delimitar o código lido.


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

Dopi ,meu camarada, passei alguns cheques no leitor sem o campos sufixo preenchido, mas os únicos valores retornado são:

prefixo #2

sufixo: 3 1

Sabe o que seria isto?


GOSTEI 0
Dopi

Dopi

09/06/2005

Todo codigo lido teve essa mesma estrutura ?

#2 99999999999 31

Onde 2 é o prefixo
9999999999 é o código lido
31 o sufixo

O prefixo e sufixo sempre estão presentes ?

No ACBrLCB vc tem uma propriedade chamada PrefixoaExcluir (ou algo assim)... se vc quiser omitir o 2 vc pode inserir essa informação nessa propriedade...


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

Sim passei uns 4 cheques diferentes e este prefixo e sufixos aparecem direto, mas nao apareceu os sufixos que vc falou que apareceria(#13,10, 12)?


GOSTEI 0
Dopi

Dopi

09/06/2005

Os valores que eu havia passado eram apenas exemplos...

Observando nos códigos que vc obteve no leitor, o sufixo será o que sempre repete no final do código... informe para o ACBrLCB esse sufixo...


GOSTEI 0
Daniel_mc

Daniel_mc

09/06/2005

Valeu Dopi, coloquei o sufixo 3,1 e tá 100¬.

Obrigado!

Qualquer coisa tamos ai!


GOSTEI 0
POSTAR