1

Я пишу приложение для сканирования штрих-кода и отображения его в текстовое поле. Я использую устройство Motorola MC3190 для работы с Windows Embedded compact 7.0. Чтобы реализовать сканирование штрих-кода, я использовал Symbol.dll и Symbol.barcode.dll.Motorola MC3190 странное поведение во время сканирования

У меня проблема, что устройство сканирует штрих-коды, но устраняет символы до и после пробелов. Мой код:

private void Form1_Load(object sender, EventArgs e) 
    { 
     txtBarcode.Focus(); 
     barcodeReader = new Symbol.Barcode.Reader(); 
     barcodeReaderData = new Symbol.Barcode.ReaderData(Symbol.Barcode.ReaderDataTypes.Text, Symbol.Barcode.ReaderDataLengths.MaximumLabel); 
     barcodeReader.Actions.Enable(); 
     barcodeReader.ReadNotify += new EventHandler(barcodeReader_Read); 
     barcodeReader.Actions.Read(barcodeReaderData);  
    } 

private void barcodeReader_Read(object sender, EventArgs e) 
    { 
     Symbol.Barcode.ReaderData nextReaderData = barcodeReader.GetNextReaderData(); 
     txtBarcode.Text = nextReaderData.Text; 
     barcodeReader.Actions.Read(barcodeReaderData); 
    } 

Этот код сканирует штрих-коды без пробелов.

FYI: Раньше Motorola MC3190 не могла сканировать символы до и после пробелов, но после обращения в службу поддержки Motorola они рассказали мне о некоторых изменениях в устройстве. Теперь устройство принимает штрих-коды с пробелами. Я проверил демонстрацию данных.

Теперь я использую сборку символов, что означает, что я переопределяю существующую функциональность в своем коде, но пока не повезло.

Edit: enter image description here

Когда я сканирования штрихкода в моем приложении, он пропускает первую цифру 0 и последнюю цифру 2. текстовое поле показывает только 825610. Но при попытке сканирования штрих-кода в то же DataWedge Демонстрация (программное обеспечение поставляется с устройством для проверки сканирования штрих-кода), он показывает 082566102

+0

Какой тип штрих-кода это? Могут быть релевантные параметры, которые вы можете установить на 'barcodeReader.Decoders.MyBarcodeType', которые влияют на то, что будет содержать следующий файл nextReaderData.Text. Также это помогло бы, если бы вы могли ссылаться на изображение образца штрих-кода. –

+0

«UPCE0», может быть, это тип штрих-кода, который я пытаюсь сканировать. – Nachiket

ответ

4

Отсутствующий нуль включен в формат штрих-кода. Штрих-коды UPC-E могут начинаться с 0 или 1, которые сканируются сканером как UPCE0 и UPCE1. Недостающая 2 - контрольная цифра.

Вы можете включить их установка:

barcodeReader.Decoders.UPCE0.Preamble = UPC.Preambles.System; 
barcodeReader.Decoders.UPCE0.ReportCheckDigit = true; 

В «пространстве» существует только в представлении штриха-коды для человека, они отделяют системы и контрольную сумму цифры из данных, что имеет значение. В самом штрихкоде нет пробелов.

(Для получения дополнительной информации о UPC-E штрих-кодов см https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E)

+0

DataWedge> Advance Config> профили> профиль0> вход> сканер> 1D сканер> декодер> UPCE0> Params> отметьте «Report Check Digit»> go в преамбулу> Отметьте «Системный символ»>. Этот параметр я сделал на своем устройстве. – Nachiket