Pesquisar na Comunidade
Showing results for tags 'Leitor serial bematech LCB'.
Encontrado 1 registro
-
Lentidão Na Leitura Do Código De Barras Do Leitor Fixo Serial Bematech
um tópico no fórum postou gustavosousa ACBrSerial
Olá pessoal, hoje tive problema ao instalar um leitor serial da bematech em um novo cliente. Foi instalado e configurado tudo certinho. A leitura era feita sem nenhum problema. O fato é que ao longo do dia o sistema ficava lento e travando no momento da leitura do código de barras. passei o dia fazendo testes na bancada com um leitor idêntico e fiz uma alteração no componente ACBrLCB. Vejam abaixo as alterações que fiz: 1° Criei uma nova propriedade Chamada LeituraContinua 2° Alterei o procedimento LeSerial para: //////////////////////////////////////////////////////////////////////////// início ///////////////////////////////////////////////////////////////////////////////////////////////////// with fsDevice.Serial do begin if InstanceActive then begin if fsModoContinuo then AguardandoDados := WaitingDataEx > 0 else AguardandoDados := WaitingData > 0; if AguardandoDados then begin leitura := '' ; { Se tem Sufixo definido deve sempre ler um código completo, até encontrar o Sufixo correto, caso contrário não lê nada, pois é provavel que todos os bytes ainda não chegaram do leitor, nesse caso o código completo será lido no proximo evento do Timer. Entretanto se o sufixo estiver ERRADO, ou seja, diferente do enviado pelo leitor, ele NUNCA lerá NADA... Para TESTES, deixe o Sufixo VAZIO... pois nesse caso, TUDO que estiver disponível na porta serial será lido e retornado } if fs_Sufixo <> '' then begin OldRaiseExcept := RaiseExcept ; try { Desliga a RaiseExcept para nao perder o Buffer da serial, se RecvTerminated falhar (bug da Synaser) } RaiseExcept := false ; leitura := RecvTerminated(200,fs_Sufixo) ; if leitura <> '' then leitura := leitura + fs_Sufixo ; finally RaiseExcept := OldRaiseExcept ; end ; end else leitura := RecvPacket(200) ; if leitura <> '' then begin fsUltimaLeitura := leitura ; {Leitura exatamente como veio do Leitor} if UsarFila then AddFila( leitura ) ; SetUltimoCodigo( leitura ); if Assigned( fsOnLeCodigo ) then fsOnLeCodigo( self ) ; end ; end; end ; end ; //////////////////////////////////////////////////////////////////////////// fim ///////////////////////////////////////////////////////////////////////////////////////////////////// O que está em vervelho foi o que eu modifiquei. Essa foi a única solução que deu certo. Alguém poderia me explicar a diferença entre WaitingData e WaitingDataEx? Seria coerente em uma nova versão do ACBrLCB ser implementada essa propriedade LeituraContinua ou com outro nome para distinguir o uso de WaitingData/WaitingDataEx? Att, Att, Gustavo de Sousa