MSCOMM LEITURA DE CODIGO DE BARRAS
Pessoal, estou com um problemão, esta sendo utilizado em um aplicação vb.6 o componente MSCOMM para leitura de codigo de barras em crachás.
A aplicação não esta funcionando legal em maquinas w95 e w2000, após a leitura do cracha esta retornando caracteres invalidos. por exempro:
Codigo correto: 15638
Retorna: %¨&(*&)*_
Bicho estranho!!!
A aplicação não esta funcionando legal em maquinas w95 e w2000, após a leitura do cracha esta retornando caracteres invalidos. por exempro:
Codigo correto: 15638
Retorna: %¨&(*&)*_
Bicho estranho!!!
Qual a comunicação? Serial, Paralela, USB...
Serial.
Ele esta trazendo em caractere ASCII (Chart), você terá que fazer um conversor para Decimal.
Pergunta:
No Win-98 está funcionando corretamente ?
Boa sorte.
Pergunta:
No Win-98 está funcionando corretamente ?
Boa sorte.
Como eu faço para converter para decimal?
Ele funciona em qualquer windows, mas existe algumas maquinas que estão apresentando o problema na leitura.
Ele funciona em qualquer windows, mas existe algumas maquinas que estão apresentando o problema na leitura.
Explique melhor como você esta recebendo os dados.
tenho um leitor que esta conectado ao mouse e a porta serial. Uso o leitor no mouse para evitar a entrada de dados via teclado. O problema e que em algumas maquinas os crachas não estão sendo lidos corretamente, por exempo:
em vez de ler 3698569 ...
... esta lendo %&(*)*_(_)(_
como disse, esse erro ocorre em algumas maquinas.
vale tambem ressaltar que estou usando mscomm32.ocx
em vez de ler 3698569 ...
... esta lendo %&(*)*_(_)(_
como disse, esse erro ocorre em algumas maquinas.
vale tambem ressaltar que estou usando mscomm32.ocx
Certo, mas como você trás o código para a tela? você formata com CHR() ou ASC()?
Eu uso as seguintes funções:
Private Sub Leitor_OnComm(index As Integer)
Call f_VerificaLeitor(index)
End Sub
Private Sub f_VerificaLeitor(index As Integer)
Dim CrachaLido As String
Dim DataHora As Variant
CrachaLido = f_LeDados(index)
If CrachaLido = "" Then
Exit Sub
End If
CrachaLido = Mid(CrachaLido, 2)
CrachaLido = Left(CrachaLido, Len(CrachaLido) - 2)
lblCracha.Caption = Time & " - " & CrachaLido
End Sub
'*************************************************************************
' ESTAS ESTAO EM UM MODULO
'*************************************************************************
Public Function f_LeitorEncerra(index As Integer) As Boolean
On Error GoTo TrataErro
Dim Buffer As String
With frmMarcacoes.Leitor(index)
Buffer = .Input
.PortOpen = False
End With
f_LeitorEncerra = True
Exit Function
TrataErro:
Exit Function
Resume
End Function
Public Function f_LeitorInicia(index As Integer) As Boolean
On Error GoTo TrataErro
With frmMarcacoes.Leitor(index)
.InputLen = 0
.PortOpen = True
End With
f_LeitorInicia = True
Exit Function
TrataErro:
Exit Function
End Function
Public Function f_LeDados(index As Integer) As Variant
On Error GoTo TrataErro
Dim TempoEspera As Variant
TempoEspera = Timer
Do While Timer <= TempoEspera + 0.5
Loop
f_LeDados = frmMarcacoes.Leitor(index).Input
Call f_LeitorEncerra(index)
Call f_LeitorInicia(index)
SendKeys ""
Exit Function
TrataErro:
Exit Function
End Function
Private Sub Leitor_OnComm(index As Integer)
Call f_VerificaLeitor(index)
End Sub
Private Sub f_VerificaLeitor(index As Integer)
Dim CrachaLido As String
Dim DataHora As Variant
CrachaLido = f_LeDados(index)
If CrachaLido = "" Then
Exit Sub
End If
CrachaLido = Mid(CrachaLido, 2)
CrachaLido = Left(CrachaLido, Len(CrachaLido) - 2)
lblCracha.Caption = Time & " - " & CrachaLido
End Sub
'*************************************************************************
' ESTAS ESTAO EM UM MODULO
'*************************************************************************
Public Function f_LeitorEncerra(index As Integer) As Boolean
On Error GoTo TrataErro
Dim Buffer As String
With frmMarcacoes.Leitor(index)
Buffer = .Input
.PortOpen = False
End With
f_LeitorEncerra = True
Exit Function
TrataErro:
Exit Function
Resume
End Function
Public Function f_LeitorInicia(index As Integer) As Boolean
On Error GoTo TrataErro
With frmMarcacoes.Leitor(index)
.InputLen = 0
.PortOpen = True
End With
f_LeitorInicia = True
Exit Function
TrataErro:
Exit Function
End Function
Public Function f_LeDados(index As Integer) As Variant
On Error GoTo TrataErro
Dim TempoEspera As Variant
TempoEspera = Timer
Do While Timer <= TempoEspera + 0.5
Loop
f_LeDados = frmMarcacoes.Leitor(index).Input
Call f_LeitorEncerra(index)
Call f_LeitorInicia(index)
SendKeys ""
Exit Function
TrataErro:
Exit Function
End Function
Tá dificil, Por favor, alguém me ajude
Nestas maquinas que você disse não estar funcionando, qual a metragem do cabo serial conectado em cada maquina ?
Você já instalou todos os Patch's de correção e Service's Pack's ?
O cabo serial é um RS-232 DB25 ou DB9 ?
Você já instalou todos os Patch's de correção e Service's Pack's ?
O cabo serial é um RS-232 DB25 ou DB9 ?
Tópico encerrado , respostas não são mais permitidas