sexta-feira, agosto 14, 2009

Symbol Barcode Reader :: Erro CoreDLL.dll

Ao desenvolver minha aplicação para Windows CE tive um problema com o leitor de código de barras do aparelho Morotola Symbol M1000, ele não lia a codificação I2OF5. Depois de muita pesquisa na web consegui com sucesso juntar várias pistas pra chegar a uma solução.

O que acontece é que por padrão a codificação I2OF5 vem com os valores MaximumLength e MinimumLength alterados para não dar conflito com outra codificação. Dae apara faze-la funcionar seria só mudar os parametros e ok... bem, quase isso. Primeiro tentei o seguinte:
Reader reader = new Reader();
reader = bcLeitor.Reader;
reader.Decoders.I2OF5.MinimumLength = 10;
reader.Decoders.I2OF5.MaximumLength = 16;
reader.Decoders.I2OF5.CheckDigitScheme = I2OF5.CheckDigitSchemes.None;
reader.Decoders.I2OF5.ConvertToEAN13 = false;
reader.Decoders.I2OF5.Redundancy = false;
reader.Decoders.I2OF5.ReportCheckDigit = false;
bcLeitor.Reader = reader;
Mas sem sucesso, o erro "Não é possível carregar a DLL 'CoreDLL.dll'" persistia. Então descobri que não é possível criar um novo Reader, pelo menos não assim. E alterei o código para:

Reader reader = null;
reader = bcLeitor.Reader;

reader.Decoders.I2OF5.MinimumLength = 10;
reader.Decoders.I2OF5.MaximumLength = 16;
reader.Decoders.I2OF5.CheckDigitScheme = I2OF5.CheckDigitSchemes.None;
reader.Decoders.I2OF5.ConvertToEAN13 = false;
reader.Decoders.I2OF5.Redundancy = false;
reader.Decoders.I2OF5.ReportCheckDigit = false;
reader.Changes.Save();
reader.Actions.SetParameters();
E não tive mais problema com a DLL e nem com a leitura do código.