Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3980 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa noite a todos,

 

Eu estou com problemas na leitura do código de barras em alguns leitores seriais. Quando o operador passa vários itens numa sequencia rápida, o ACBrLCB monta uma fila, porém, em alguns casos, o sufixo (#10, por exemplo) aparece numa posição que não é no final do código de barras. Abaixo está o meu código em C#:

 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

        private void acbrLcb_OnLeCodigo(object sender, EventArgs e) {
            try {
                if (!txtCodigo.Focused)
                    return;
 
                LeitorSerialHelper.ACBrLCBOnLeCodigo(ACBrLCB, txtCodigo, txtCodigo_KeyPress);
            }
            catch (Exception ex) {
                var msg = "Houve um erro obter os dados do leitor serial:\n" + ex.Message;
                ControlUtils.ShowError(msg);
            }
        }
 
        public static void ACBrLCBOnLeCodigo(ACBrLCB acbrLcb, Control control, KeyPressEventHandler keyPressEvent) {
            var ultimaLeituraArr = ACBrLCBOnLeCodigo(acbrLcb);
 
            if (ultimaLeituraArr != null) {
                foreach (var ultimaLeitura in ultimaLeituraArr) {
                    if (!ultimaLeitura.Trim().Equals("")) {
                        control.Text = ultimaLeitura;
                        control.Focus();
                        control.Refresh();
 
                        if (keyPressEvent != null) {
                            keyPressEvent(control, new KeyPressEventArgs((char) Keys.Enter));
                        }
                    }
                }
            }
 
        }
 
        private static IEnumerable<string> ACBrLCBOnLeCodigo(ACBrLCB acbrLcb) {
            var ultimaLeituraArr = (string[]) null;
 
            if (acbrLcb.UltimaLeitura.Length > 0) {
                var sufixoLeitura = Convert.ToChar(acbrLcb.UltimaLeitura.Substring(acbrLcb.UltimaLeitura.Length - 1));
 
                var sufixoPadrao = (char) Preferences.SufixoLeitorSerial;
 
                /*switch (Preferences.SufixoLeitorSerial) {
                    case "#13":
                        sufixoPadrao = (char) 13;
                        break;
                    case "#10":
                        sufixoPadrao = (char) 10;
                        break;
                }*/
 
                if (sufixoLeitura != sufixoPadrao) {
                    var msg = "Erro na Laitura:\n" + acbrLcb.UltimaLeitura;
                    throw new Exception(msg);
                    //throw new Exception("É necessário configurar um sufixo válido do leitor serial para organizar a fila.\nEx.: 13, 10.");
                }
 
                ultimaLeituraArr = acbrLcb.UltimaLeitura.Split(sufixoLeitura);
            }
 
            return ultimaLeituraArr;
        }
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

Alguém pode me ajudar?

Tem alguma propriedade que posso alterar pra que o ACBrLCB aguarde um pouco mais a leitura da porta?

 

Desde já agradeço.

 

Almir Baccarin

  • Este tópico foi criado há 3980 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.