Значения VODD и VEVEN вычисляют с использованием значения знака символа VD по формулам:

Vodd _ (»d _ ^зим) div TEVEN;

Veven _ (»d _ ®зим) mo° TEVEN.

Например, необходимо закодировать знак символа со значением 917 879. По таблице 6 определяют, что значение знака символа находится в диапазоне значений группы 3 и соответствует GSUM = 820064 и TEVEN = 6454. Применяя приведенные выше уравнения, определяют:

Vqdd = (917879 - 820064) div 6454 = 97815 div 6454 = 15;

Veven = (917879 - 820064) mod 6454 = 97815 mod 6454 = 1005.

Используя алгоритм, приведенный в приложении В, определяют ширину нечетных и четных элемен­тов. Знак символа из группы 3 (таблица 6) включает в себя нечетный поднабор элементов общей шириной 9 модулей и соответствующим значением VODD=15 из 28 возможных значений (в диапазоне от Одо 27) и четного поднабора элементов общей шириной 17 модулей и соответствующим значением VEVEN = 1005 из 6454 возможных значений (вдиапазоне от Одо6453). Ширина нечетных элементов соответствует {12 11112} модулям, а ширина четных элементов — {1 235 1 23} модулям. Таким образом, ширина элементов знака символа для данных составляет {1 122131511122 3} модулей в направлении слева направо.

  1. Значение символа

Значение символа вычисляют путем комбинации значений левого и правого знаков символа по следующей формуле

VsYMBOL = (2013571 х VDLEFT) +

VdRIGHT-

где VSYmbol — значение символа;

Vdleft и Vdright — значения левого и правого знаков символа соответственно.

К

div 2013571;

mod 2013571.

одирование значений правого и левого знаков символа (VDLEFT и VDR|GHT соответственно) исходя из значения VSYMbol- проводят с помощью следующих формул:

Vdleft _ Vsymbol

Vdright = Vsymbol

Путем комбинации значений знаков символа можно получить 4054468172041 значений, однако применяют только первые 4000000000000 значений (от 0 до 1999999999999 и от 2015133531096 до 4015133531095). Указанные диапазоны значений выбирают таким образом, чтобы наличие двумерного ком­понента можно было определить по числу модулей каждого поднабора левого знака символа без декоди­рования правого знака символа. У отдельного линейного символа GS1 DataBar Ограниченный значения левого знака символа находятся в диапазоне от 0 до 993260, в то время как символ GS1 DataBar Ограни­ченный в составе символа GS1 Композитный имеет значения левого знака символа в диапазоне от 1000776 до 1994036.

Если значения знака символа попадают во второй диапазон (от 2015133531096 и выше), это указыва­ет на наличие флага сопровождения и двумерного компонента, сопровождающего символ GS1 DataBar Ограниченный. В этом случае значение основных данных вычисляют путем вычитания значения 2015133531096 из значения символа GS1 DataBar Ограниченный. Разность должна быть в интервале зна­чений от 0 до 1999999999999, что соответствует первому диапазону значений, и, таким образом, определя­ют основную идентификацию предмета торговли.

Значения от 0 до 1999999999999 соответствуют первым 13 разрядам номера GTIN-14 основного иден­тификатора предмета. Разряд индикатора принимает два возможных цифровыхзначения — ноль и едини­цу. Для формирования идентификационного номера GTIN-14 к окончанию данных, подлежащих передаче, добавляют вычисляемую по модулю 10 контрольную цифру. Начальный префикс идентификатора примене­ния (01) добавляют к передаваемым данным непосредственно после подлежащего обязательной передаче идентификатора символики ]е0 или ]С 1.



  1. Контрольный знак символа

Символ GS1 DataBar Ограниченный имеет контрольный знак символа (далее — контрольный знак), который одновременно выполняет функции шаблона поиска символа. Контрольный знак расположен между двумя знаками символа.

  1. Структура контрольного знака

Контрольный знак со структурой (18,7) кодирует 89 значений — от 0 до 88. Контрольный знак состоит из 7 пробелов общей шириной 9 модулей и 7 штрихов общей шириной 9 модулей. Комбинации элементов контрольного знака выбирают таким образом, чтобы исключить возможность дублирования при смещении и/или зеркальном отображении слева направо комбинаций 14 элементов, присутствующих в зоне непос­редственной близости к середине символа. В приложении С приведена ширина элементов контрольного знака для 89закодированныхзначений.

  1. Вычисление значения контрольного знака

Значение контрольного знака равно остатку от деления по модулю 89 взвешенной суммы значений ширины элементов знаков символа.

Значение контрольного знака по модулю 89 вычисляют по формуле

+ W12Ei :2 +



W-IJ4


А,14


+ W211E


+ W214Е2 14) mod 89,



где WN MENм1> — произведение весового коэффициента знака символа N для позиции элемента с поряд­ковым номером М на значение ширины данного элемента М (в модулях) в знаке симво­ла N (таблица 7).

Весовые коэффициенты вычисляют как степенную функцию с аргументом 3 по модулю 8978.

Таблица 7 — Весовые коэффициенты элементов знаков символа для вычисления значения контрольного знака по модулю 89

Номер знака символа

Весовой коэффициент элемента с номером (при нумерации слева направо)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1

1

3

9

27

81

65

17

51

64

14

42

37

22

66

2

20

60

2

6

18

54

73

41

34

13

39

28

84

74



В приложении F (F.2) приведен пример кодирования символа GS1 DataBar Ограниченный.

  1. Шаблон поиска

Шаблон поиска характеризуется отношением ширины знаков символа к ширине контрольного знака символа, которое определяется через номинальное отношение 26:18:26 ширины 14 элементов контрольно­го знака символа к 14 элементам каждого из двух прилегающих знаков символа. Кроме того, символ идентифицируют по контрольному знаку символа, соответствующему действительным комбинациям про­белов и штрихов контрольного знака символа. Возможность зеркального отображения или смещения ком­бинаций элементов контрольного знака символа, которая может возникнуть в реальных символах, устране­на путем удаления соответствующих сочетаний из набора контрольных знаков.

  1. Рекомендуемый алгоритм декодирования

Системы считывания штриховых кодов обеспечивают считывание настолько несовершенных симво­лов, насколько это позволяют используемые на практике алгоритмы декодирования. В настоящем разделе приведен рекомендуемый алгоритм декодирования, используемый для расчета значения декодируемости по ISO/IEC 15416 при измерении качества печати символа.

Алгоритм включает в себя следующие этапы декодирования каждого знака символа:

  1. осуществляют обнаружение символа путем поиска трех последовательностей, состоящих из че­тырнадцати элементов, с отношением значений ширины в соотношении (26 ± 1,5):18:(26 ± 1,5) (дополни­тельно с учетом допуска на изменение скорости сканирования, если это требуется для данного сканирую­щего устройства);получают подтверждение, что центральная последовательность является действительным контрольным знаком. Используя метод, изложенный в этапах с) 1) и с) 2) (за исключением того, что на этапе, указанном в перечислении с) 2), значение делителя р равно 18, а не 26), определяют значения ширины элементов. Сравнивают полученные результаты со значениями, приведенными в приложении С;

  2. проводят декодирование двух знаков символа следующим образом:

  1. измеряют тринадцать параметров р, е1, е2, е3, е4, е5, е6, е7, е8, е9, е10, е^, и е12 (рисунок 9);

Нечетный3



Нечетный1 Нечетный2

Четный^ Четный2


Нечетный4 Нечетный5 Нечетный6 Нечетный7

Четный3 Четный4 Четный5 Четный6 Четный7

Рисунок 9 — Измеряемые параметры при декодировании


2)


преобразуют измеренные размеры е^ е2, е3, е4, е5, е6, е7, е8, е9, е10, ein и е12 в нормирован­ные значения Е1? Е2, Е3, Е4, Е5, Е6, Е7, Е8, Ё9, Е10, Еп и Е12, которые представляют собой ширину указанных измеренных размеров (Е.) в целых значениях модуля. Для определе­


ния Б, используют следующие выражения:



если 1,5р/26 < е если 2,5р/26 < е если 3,5р/26 < е если 4,5р/26 < е если 5,5р/26 < е если 6,5р/26 < е если 7,5р/26 < е если 8,5р/26 < е


  • 2,5р/26, то Е

  • 3,5р/26, то Е

  • 4,5р/26, то Е

  • 5,5р/26, то Е

  • 6,5р/26, то Е

  • 7,5р/26, то Е

  • 8,5р/26, то Е

< 9,5р/26, то Е


= 2;

= 3;

= 4;

= 5;

= 6;

= 8;

= 9.


3)

4)


Если данные условия не выполняются, контрольный знак символа считают ошибочным;

определяют нормированные значения ширины элементов величин Е. К ширине последнего элемента знака символа относят оставшиеся модули (вместо вычисления его ширины на основе значений Е). Набор действительных значений ширины элементов является единствен­ным решением, при котором отсутствуют элементы шириной менее одного модуля и присут­ствует хотя бы один четный элемент шириной один модуль. Например, на рисунке 9 значе­ниям от Е1 до Е12 соответствуют {3 3466433542 3}. Возможными производными наборами элементов являются {1 213331214021 2}, {2 1224221231 121} или {3 031 51 3032203 0}. Только четырнадцать значений ширины элементов {21224221231 12 1} удовлетворяют требованиям к действительной ширине элементов, поэтому их выбирают в качестве значений ширины элементов. Если ни один из полученных наборов значений ширины элементов не является действительным, знак считают ошибоч­ным. В приложении G приведена реализация алгоритма декодирования ширины этих элемен­тов на языке программирования С;

определяют значения четного и нечетного поднаборов с помощью программы, приведенной в приложении В;

  1. после декодирования двух знаков символа и контрольного знака символа проводят проверку на совпадение значений контрольного знака, вычисленных на основе шаблона поиска по модулю 89, резуль­татам расчета по модулю 89 суммы взвешенных значений ширины элементов для знаков символа;

  2. вычисляют значение флага сопровождения и идентификационного номера предмета по значениям

двух знаков символа

  1. ;в качестве дополнительной меры проводят вторичные проверки изменения скорости сканирования, абсолютного времени сканирования, размеров символа и т.п., целесообразность которых определяют ис­ходя из конкретного типа устройства считывания и предполагаемых условий применения;

д) подтверждают, что выполняются все нижеперечисленные условия:

  1. расстояние от начала символа (т. е. от левого края крайнего левого пробела шаблона-ограни­чителя) до правого края первого штриха (т. е. второго элемента шаблона-ограничителя) более (3/52) р первого знака символа (т. е. больше 1,5 модулей);

  2. расстояние от начального края штриха шаблона-ограничителя до начального края первого штриха левого знака символа должно соответствовать ((N+1 )/26)р ± 0,5 модулей, где N соот­ветствует нормированному значению Е первого пробела, определенному в 6.2.6 на этапе с) 3) (т. е. номинальная ширина штриха шаблона-ограничителя соответствует одному модулю);

  3. в случае обнаружения последовательности, состоящей не менее чем из 10 элементов, пред­шествующих и включающих в себя первый штрих (с порядком нумерации, при котором но­мер 10 присвоен наиболее удаленному штриху слева, а номер 1 —первому штриху), эле­менты с первого по восьмой включительно не должны декодироваться в качестве двухдей- ствительных знаков символа UPC-А (в соответствии с ISO/IEC 15420) с номинальным разме­ром X, составляющим 25 % значения (1 /26)р (т. е. 0,25 номинального размера модуля левого знака символа GS1 DataBar Ограниченный).

Если какое-либо из условий 1) — 3) не выполняется, то сканирование символа GS1 DataBar Ограни­ченный должно быть забраковано;

h) подтверждают, что расстояние от левого края правого шаблона-ограничителя до правого края штриха этого шаблона-ограничителя равно значению (1/13) р правого знака символа (±0,5 модулей), а также, что расстояние от левого края конечного штриха шаблона-ограничителя до окончания символа (т. е. до завер­шения конечного пробела) более (5/26) р (т. е. 5 модулей).

Примечание — Для предотвращения ошибочного считывания символов UPC-А в качестве символов GS1 DataBar Ограниченный сканер должен выполнять этапы декодирования, соответствующие указанным выше этапам д) и h). Дополнительные пояснения приведены в приложении Н.5.

При разработке сканеров, предназначенныхдля практического считывания символов GS1 DataBar, требуется обеспечение надежности измерений, такое как сбор избыточныхданных. В приложении Н приве­дены дополнительные рекомендации по декодированию символов, которые следует учитывать для мини­мизации ошибочных считываний.

7 Требования к символам GS1 DataBar Расширенный и GS1 DataBar Расширенный Многострочный

  1. Основные показатели символа GS1 DataBar Расширенный

Символ GS1 DataBar Расширенный представлен линейной символикой с символами переменной длины, способной закодировать до 74 цифровых или 41 алфавитного знака данных—строк элементов с идентифи­каторами применения AI, с внутренним представлением в виде двоичного числа. Символы GS1 DataBar Расширенный могут быть использованы для кодирования основных и дополнительных данных, предназна­ченныхдля использования на кассовых терминалах в пунктах розничной торговли, а также для иных при­менений при наличии соответствующих сканеров и соответствующим образом настроенного прикладного программного обеспечения.