1

我寫的應用程序進行掃描條碼,並將其顯示在文本框中。我正在使用Windows Embedded compact 7.0上運行的Motorola MC3190設備。爲了實現條形碼掃描,我用Symbol.dllSymbol.barcode.dll摩托羅拉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); 
    } 

此代碼掃描條形碼不含空格。

供參考:早些時候摩托羅拉MC3190無法掃描空間前後的字符,但在聯繫摩托羅拉支持團隊後,他們告訴我一些設備的變化。現在該設備正在接受帶有空格的條形碼。我檢查了datawedge演示。

我現在用的符號組合,這意味着我重寫我的代碼中現有的功能,但至今沒有運氣。

編輯: 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>高級配置>配置文件> PROFILE0>輸入>掃描儀>一維掃描儀>解碼器> UPCE0>參數>勾上「報告校驗碼」>去條形碼類型導入前導碼>勾選「系統字符」>。我在我的設備上進行的設置。 – Nachiket