GS1 Datamatrix коды с Motorola EMDK для.Net
Я пытался прочитать коды матрицы данных GS1 с помощью "Motorola EMDK для.net v. 2.7". Для этого я использовал сборки Symbol(v. 2.5.0.3) и Symbol.Barcode(v. 2.7.0.2) и создал следующий пример кода в приложении Windows Forms:
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 или, что лучше, результат в полезном формате.
1 ответ
Примеры EMDK показывают, как вы можете использовать библиотеку штрих-кодов.
switch (_readerData .Result)
{
case Symbol.Results.SUCCESS:
HandleData(_readerData)
break;
}
_readerData.Text
текст в штрих-коде, и вам нужно разделить текст по коду функции в матричном коде GS1, чтобы получить значения AI_readerData.Type
это тип штрих-кода, и вы можете проверить матричный штрих-код
Вам также может понадобиться изменить ReaderDataLengths.DefaultText (55)
в ReaderDataLengths.MaximumLabel