Сканер штрих-кода Motorola MC3190 не срабатывает - PullRequest
2 голосов
/ 28 февраля 2012

Я пытаюсь, чтобы мой Motorola MC3190 считывал штрих-код. Но, к сожалению, после нажатия кнопки аппаратного сканирования ответа нет. Я использую EMDK для .net версии 2.0.

Вот мой код:

private void Form1_Load(object sender, EventArgs e)
        {
            // Get the first scanning device (Its named SCN1 in my device) 
            myDevice = Symbol.Barcode.Device.AvailableDevices[0];
            myReader = new Reader(myDevice);

            // Make sure the Code-128 decoder is enabled!
            myReader.Decoders.CODE128.Enabled = true;

            // Create an instance of reader
            myReaderData = new Symbol.Barcode.ReaderData(Symbol.Barcode.ReaderDataTypes.Text, Symbol.Barcode.ReaderDataLengths.MaximumLabel);

            // Set the event handler
            myReader.ReadNotify += new EventHandler(myReader_ReadNotify);

            // enable and get ready to read
            myReader.Actions.Enable();
            myReader.Actions.Read(myReaderData);
        }

В моем случае я просто пытаюсь отобразить декодированный текст:

void myReader_ReadNotify(object sender, EventArgs e)
        {
            Symbol.Barcode.ReaderData nextReaderData = myReader.GetNextReaderData();
            this.listBox1.Items.Add(nextReaderData.Text);            
            switch (nextReaderData.Result)
            {
                case Symbol.Results.SUCCESS:
                    this.listBox1.Items.Add(nextReaderData.Text);
                    myReader.Actions.Read(myReaderData);
                    break;

                case Symbol.Results.CANCELED:
                    this.listBox1.Items.Add("Canceled!!");
                    break;

                default:
                    string sMsg = "Read Failed\n"
                    + "Result = "
                    + ((int)nextReaderData.Result).ToString("X8");
                    MessageBox.Show(sMsg, "ReadNotify");
                    break;
            }


        }

Я не получаю сообщения об ошибках. В то же время, если я перечислю мои доступные сканирующие устройства, я смогу увидеть свое устройство именно (SCN1). Что-нибудь особенное, что мне нужно сделать, чтобы вызвать аппаратный ключ?

Любая помощь / идеи по решению этой проблемы высоко ценится. Спасибо!

Ответы [ 4 ]

2 голосов
/ 28 февраля 2012

Иногда блоки Motorola поставляются с приложением DataWedge.Он может требовать доступа к сканеру и вызывать ряд проблем при использовании EMDK.Убедитесь, что он отключен или удалите его.

1 голос
/ 29 февраля 2012

В настройках вашего устройства включен BarCode Reader?(сначала просто убираем множители!)

В наших устройствах мы просто относимся к считывателю штрих-кода как к любой другой форме ввода текста.

У меня есть TextBox контролируя мою форму, Заказчик (наши сотрудники) выбирают это TextBox, указывают устройство на этикетке и сканируют штрих-код.

Все, что я делаю, это считываю поле TextBox1.Text.

0 голосов
/ 15 ноября 2013

В вашей функции myReader_ReadNotify после строки 4 и перед строкой 5 (переключатель) поместите эту строку:

myReader.Actions.Read(myReaderData);
0 голосов
/ 29 февраля 2012

Я не совсем уверен, использует ли это устройство один и тот же COM-порт для другого оборудования.Проверьте в настройках, если COM-порт выбран для использования сканера штрих-кода.В устройствах с большим количеством аппаратного обеспечения COM-порты используются совместно.

Также, если вы закрываете свое приложение и нажимаете желтую кнопку, показывает ли луч штрих-кода?

Поддерживается ли ваш тип штрих-кодаустройством?

И, как говорит @ jp2code для базовых функций, вы можете использовать DataWedge и получать ввод данных в виде текста.

...