2016-06-14 87 views
0

我一直在嘗試閱讀GS1數據矩陣代碼與「摩托羅拉EMDK for .net訴2.7」。 (訴2.5.0.3)對,我已經使用了符號和Symbol.Barcode(訴2.7.0.2)大會,並在Windows中創建下面的示例代碼窗體應用程序:GS1 DataMatrix代碼與摩托羅拉EMDK的.Net

private global::Symbol.Barcode.Reader _reader; 
    private global::Symbol.Barcode.ReaderData _readerData; 

    public Form1() 
    { 
     InitializeComponent(); 

     _readerData = new ReaderData(ReaderDataTypes.Text, ReaderDataLengths.DefaultText); 

     var device = Device.AvailableDevices.FirstOrDefault(d => d.DeviceName != Device.SIMULATE); 
     if (device == null) 
     { 
      throw new Exception("No Symbol scanner in the system."); //TODO //MSG 
     } 

     // Create the reader, based on selected device 
     _reader = new global::Symbol.Barcode.Reader(device); 

     _reader.Actions.Enable(); 

     _reader.Changes.Save(); 

     _reader.ReadNotify += new EventHandler(_reader_ReadNotify); 

     // Start a pending read. 
     try 
     { 
      _reader.Actions.Read(_readerData); 
     } 
     catch (global::Symbol.Exceptions.OperationFailureException) 
     { 
      //_logger.Error("Error, Reader is blocked", ex);, 
     } 
    } 

    private void _reader_ReadNotify(object sender, EventArgs e) 
    { 
     _readerData = _reader.GetNextReaderData(); 

     _reader.Actions.Read(_readerData); 
    } 

    private void Form1_Closing(object sender, CancelEventArgs e) 
    { 
     _reader.Dispose(); 
    } 

我已經通過ReadNotify事件中的斷點分析輸出,但我沒有得到合理的結果。它始終只是簡單的代碼字符串。

我需要某種指示(例如通過符號系統標識符)它是gs1數據矩陣代碼或更好的結果是有用的格式。

回答

0

EMDK示例顯示如何使用條形碼庫。

switch (_readerData .Result) 
    { 
      case Symbol.Results.SUCCESS: 
       HandleData(_readerData) 
      break; 

    } 

_readerData.Text是條形碼的文字,你必須在函數代碼文本分割在GS1矩陣碼得到AI值 _readerData.Type是條形碼的類型,你可以檢查矩陣條形碼

您可能還需要將ReaderDataLengths.DefaultText (55)更改爲ReaderDataLengths.MaximumLabel