Jump to content

dev botao

Acbrlcb.onlecodigo - Leitura Incompleta Do Código Ean


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

Recommended Posts

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

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.