ГОСТ ISO/IEC 15438-2018. Межгосударственный стандарт. Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода PDF417
Приложение M
(обязательное)
ПРОТОКОЛ ПЕРЕДАЧИ ДЛЯ ДЕКОДЕРОВ, СООТВЕТСТВУЮЩИЙ
ИСХОДНЫМ СПЕЦИФИКАЦИЯМ PDF417
M.1 Общие положения
Ранее опубликованные спецификации символики PDF417 ([3] и [4]) поддерживают режим базового канала, идентификаторы глобальной метки - GLI (предшествующие независимой от символики интерпретации в расширенном канале - ECI) и Макро PDF417 (но без интегрирования с протоколом ECI). Настоящее приложение определяет протокол передачи, соответствующий первоначальной спецификации, который все еще может находиться в эксплуатации, и направлено на обеспечение совместимости.
M.2 Режим базового канала
В режиме базового канала (Basic Channel mode) все знаки данных символа передаются в соответствии с действующими режимами уплотнения и включаются в передачу данных как последовательность 8-битовых байтов. Знаки СТАРТ и СТОП, индикаторы строк, дескриптор длины символа, кодовые слова переключения режима и кодовые слова коррекции ошибок не передаются.
Примечание - Передача идентична процедуре, приведенной в 5.17.1.
Ранние декодеры должны выдавать идентификатор символики ]L0, однако могут и не передавать префикс идентификатора символики.
M.3 Символы, кодирующие GLI
Ранее были установлены только GLI 1 и GLI 0, но исходным протоколом поддерживается передача всех управляющих последовательностей GLI/ECI. Три кодовых слова (925, 926 и 927) отмечают кодирование значения GLI и декодируются как значения байтов в соответствии с приведенной ниже процедурой:
a) если управляющая последовательность GLI начинается кодовым словом 927 (идентификатор ECI для набора знаков или кодовой страницы):
1) кодовое слово со значением 927 передается как 4-байтовая управляющая последовательность 92, 57, 50, 55, которая представлена \927 в интерпретации знаков ASCII (версия КОИ-7);
2) следующее кодовое слово представляет номер GLI в области значений от 000 до 899. Кодовое слово преобразовывается в 3-разрядное значение. 3-разрядное значение передается как соответствующие значения байтов (с десятичными значениями от 48 до 57), которым предшествует байт со значением 92.
Пример - | В символе закодировано: | [927] [001] | |
Передача данных (байты): | 92, 57, 50, 55, 92, 48, 48, 49 | ||
Интерпретация знаков ASCII (версия КОИ-7): | \927\001 | ||
b) если управляющая последовательность GLI начинается кодовым словом 926 (идентификатор общего назначения формата ECI):
1) кодовое слово 926 передается как 4-байтовая управляющая последовательность 92, 57, 50, 54, которая представлена \926 в интерпретации знаков ASCII (версия КОИ-7);
2) следующие два кодовых слова (допускаются кодовые слова со значениями от 000 до 899) представляют номер ECI следующим способом:
Кодовое слово 1: Номер_ECI div 900 - 1
Кодовое слово 2: Номер_ECI mod 900.
Каждое кодовое слово преобразовывается в 3-разрядное значение. 3-разрядное значение передается как соответствующие значения байтов (от 48 до 57), которым предшествует байт со значением 92.
Пример - | В символе закодировано: | [926] [136] [156] | |
Передача данных (байты): | 92, 57, 50, 54, 92, 49, 51, 54, 92, 49, 53, 54 | ||
Интерпретация знаков ASCII (версия КОИ-7): | \926\136\156 | ||
c) если управляющая последовательность GLI начинается кодовым словом 925 (идентификатор ECI, задаваемый пользователем):
1) кодовое слово 925 передается как 4-байтовая управляющая последовательность 92, 57, 50, 53, которая представлена \925 в интерпретации в знаках ASCII (версия КОИ-7);
2) следующее кодовое слово представляет номер задаваемого пользователем GLI минус 810 900 (допускаются кодовые слова со значениями от 000 до 899). Кодовое слово преобразуется в 3-разрядное значение. 3-разрядное значение передается как соответствующие значения байтов (от 48 до 57), которым предшествует байт со значением 92.
Пример - | В символе закодировано: | [925] [456] | |
Передача данных (байты): | 92, 57, 50, 53, 92, 52, 53, 54 | ||
Интерпретация знаков ASCII (версия КОИ-7): | \925\456 | ||
Эта процедура повторяется для каждого случая появления GLI.
Примечание - Объяснения примеров с соответствующими ECI, но использующих протокол передачи ECI, приведены в 5.17.2.
Если знак ОБРАТНАЯ ДРОБНАЯ ЧЕРТА или другой знак, представленный байтом со значением 92, необходимо использовать в качестве закодированных данных, передача должна происходить в соответствии с нижеуказанным примером. Всякий раз, когда байт со значением 92 появляется в качестве данных, должны быть переданы два байта этого значения; таким образом, единичное появление всегда является управляющим знаком, а двоичное появление означает достоверные данные.
Пример - Закодированные данные: A\\B\C Передача: A\\\\B\\C |
Заданный по умолчанию управляющий знак может быть изменен в декодере (в таком случае должна быть соответственно сконфигурирована система получения), но для этого не должны использоваться значения байтов от 47 до 58 (в основном интерпретируемые как цифровые разряды).
Примечание - В протоколе для передачи ECI (5.17.2) значение 92 для управляющего знака является фиксированным.
В качестве варианта декодеры могут иметь режим работы, при котором управляющие знаки не определены. Такие считывающие устройства не могут ни передавать управляющие последовательности, ни дублировать любые знаки данных, поэтому этот режим не может поддерживать передачу управляющих последовательностей ECI и передачу управляющих блоков Макро PDF417.
M.4 Символы Макро PDF417
При работе по первоначальному протоколу передачи данных PDF417, после того как декодер PDF417 обработал символ Макро PDF417 с заданной идентификацией файла, он должен декодировать и передать все символы с той же идентификацией файла до передачи любых иных символов. Это требование применяют для каждого из нижеуказанных режимов передачи.
M.4.1 Передача в буферизованном режиме
Буферизованная система передачи требует, чтобы декодер собрал весь комплект символов до его передачи. Обработка обязательных полей управляющего блока Макро PDF417 проводится в самом декодере. Передача необязательных полей в декодере может быть индивидуально разрешена или запрещена. Необязательные поля, при их наличии, должны единовременно передаваться в конце полного комплекта данных. Передача каждого поля должна начинаться с передачи соответствующей последовательности - указателя необязательного поля Макро PDF417. Последовательность-указатель состоит из кодового слова 923 (начало необязательного поля Макро PDF417), за которым следует значение указателя в соответствии с таблицей H.1. Эта последовательность должна передаваться с помощью управляющего знака в соответствии с M.3. Декодированное высокоуровневое содержимое поля должно передаваться после этой последовательности-указателя.
M.4.2 Передача в небуферизованном режиме
Система небуферизованной передачи позволяет декодеру передавать отдельные символы по мере их декодирования.
При использовании небуферизованной схемы должна быть разрешена передача управляющего заголовка Макро PDF417 (Macro PDF417 Control Header), поскольку символы в небуферизованной схеме не подлежат внутреннему упорядочиванию считывающим устройством. Это позволяет системе сервера производить соответствующую систематизацию поступающих данных.
Передача управляющего заголовка Макро PDF417 может быть разрешена или запрещена. Управляющий заголовок Макро PDF417 является частью управляющего блока Макро PDF417 (рисунок H.1), который состоит из кодового слова 928 (Макро-маркер), индекса сегмента (в режиме цифрового уплотнения) и последовательности кодовых слов идентификации файла. В случае, когда передача управляющего заголовка Макро PDF417 разрешена, кодовое слово Макро-маркера и кодовые слова идентификации файла следует передавать, используя управляющий знак в соответствии с M.3. Например, управляющий заголовок Макро PDF417 первого символа, индекс сегмента, равный 0, и идентификация файла (значения кодовых слов 100, 200, 300) должны быть закодированы в символе как последовательность кодовых слов:
[928] [111] [100] [100] [200] [300]
и (принимая управляющий знак со значением 92 по умолчанию) переданы следующим образом:
Передача данных (байты):
92, 57, 50, 56, 48, 48, 48, 48, 48, 92, 49, 48, 48, 92, 50,
48, 48, 92, 51, 48, 48
Интерпретация в знаках ASCII (версия КОИ-7): \92800000\100\200\300
Управляющий заголовок Макро PDF417 (если разрешен) следует передавать после данных, закодированных в символе.
Если последняя последовательность GLI, переданная считывающим устройством, не является GLI 0, тогда переданные данные из этого сегмента должны оканчиваться последовательностью байтов 92, 57, 50, 55, 92, 48, 48, 48 (эквивалент в знаках ASCII \927\000), как если бы данные символа оканчивались последовательностью кодовых слов [927][000]. Это возвращает интерпретацию следующего блока к GLI 0.
Передача необязательных полей может быть индивидуально разрешена или запрещена в декодере. Разрешенные необязательные поля должны передаваться вместе с каждым символом Макро PDF417, в котором они были закодированы. Каждое поле должно начинаться с передачи соответствующей последовательности - указателя необязательного поля Макро PDF417. Последовательность-указатель состоит из кодового слова 923, за которым следует значение указателя в соответствии с таблицей H.1; эта последовательность должна передаваться с использованием управляющего знака в соответствии с M.3. Декодированное высокоуровневое содержимое поля должно передаваться после этой последовательности-указателя.
Базируясь только на передаче закодированного потока данных, могут возникнуть трудности или невозможность определения наличия границы между окончанием управляющего блока Макро PDF417 (особенно если он содержит необязательные поля) и началом содержимого данных следующего символа. Протокол передачи системы (например, использующий типовую передачу управляющих знаков STX (НТ) <1> и ETX (КТ) или другие процедуры установления связи) может использоваться для определения границ между переданными символами Макро PDF417.
--------------------------------
<1> В скобках приведены русские обозначения управляющих знаков по ГОСТ 27465.
С целью облегчения контроля получения всех символов Макро PDF417 в небуферизованном режиме, когда это возможно, следует использовать необязательное поле числа сегментов как часть закодированного управляющего блока Макро PDF417.
M.5 Передача зарезервированных кодовых слов с использованием исходного протокола PDF417
При работе по исходному протоколу передачи PDF417 декодер должен передавать зарезервированное кодовое слово как управляющий знак (со значением 92 по умолчанию), за которым следуют три разряда, представляющие десятичное значение зарезервированного кодового слова. Кодовые слова данных, которые следуют после зарезервированного кодового слова, интерпретируются и передаются в соответствии с режимом уплотнения, действующим до зарезервированного кодового слова. В частности, будет установлена интерпретация, как если бы зарезервированное кодовое слово ввело кодовое слово фиксации режима в уже действующем режиме уплотнения.
Такая функция фиксации режима байтового или цифрового уплотнения заново устанавливает новое "группирование" кодовых слов. Если доминирующим режимом является режим текстового уплотнения, то осуществляется повторный переход в подрежим прописных букв режима текстового уплотнения.
Несмотря на то, что протокол может соответствующим образом передавать синтаксис сообщения для любых зарезервированных кодовых слов, будущие определения которых заключаются в сигнальных функциях, он не будет предусматривать однозначного выхода данных для нового режима уплотнения. При использовании исходного протокола передачи PDF417 приемное устройство не должно учитывать любые данные, которые следуют за управляющей последовательностью, представляющей вновь определенное кодовое слово режима уплотнения.
M.6 Достижение согласованности между старым и новым оборудованием PDF417
M.6.1 Кодирующие устройства
Введение интерпретаций в расширенном канале, которые не зависят от символики, подразумевает отделение функций кодирования ECI от кодирования символики. Кодирование GLI фактически является внутренне связанным с символикой PDF417. Закодированный поток кодовых слов будет равнозначным независимо от того, какое кодирующее оборудование использовалось для его кодирования: существующее или вновь вводимое. Возможно кодирование, например, данных в соответствии с интерпретацией ECI 000123 (которая еще не задана на момент публикации настоящего стандарта) с помощью кодирующего устройства, способного устанавливать GLI для PDF417; или на первом этапе, кодирование с помощью кодирующего устройства для независимой от символики ECI, за которым, на втором этапе, следует кодирующее устройство для символики PDF417.
Имеются два ограничения:
- логическая схема с возвратом к GLI 0 должна применяться для GLI 0 (ECI 000000) и GLI 1 (ECI 000001);
- GLI 0 и GLI 1 не должны смешиваться с другими ECI в одном символе или комплекте символов Макро PDF417.
M.6.2 Декодеры
Ключом к взаимодействию декодеров, использующих исходный и новый протокол PDF417, является обязательная передача префикса идентификатора символики всякий раз, когда декодер сконфигурирован для работы в новом режиме расширенного канала (extended channel mode) и требует обязательного использования префикса, когда старое и новое оборудование PDF417 используется в одной системе. То есть декодер, имеющий разрешение для работы в режиме расширенного канала (даже при считывании разнородных символов режима базового канала и режима расширенного канала) будет отправлять идентификатор символики с каждой передачей.
Примечание - Исходный стандарт PDF417 ([3] и [4]) не обязывает использовать идентификатор символики даже при дублировании управляющего знака (со значением 92 по умолчанию). Соответствие протоколу ECI, представленное в настоящем стандарте, обязывает использовать идентификатор символики.
Декодеры подлежат проверке на соответствие по одному из нижеследующих условий:
a) полностью соответствуют протоколу ECI и настоящему стандарту:
1) передают соответствующие идентификаторы символики;
2) имеют возможность установки или переключения на работу в режиме базового канала или режиме расширенного канала;
3) передают протокол ECI в соответствии с настоящим стандартом (5.17.2);
4) обрабатывают Макро PDF417 в соответствии с настоящим стандартом.
b) соответствуют стандартам 1994 года <1>:
--------------------------------
<1> Имеются в виду документы [3] и [4].
1) и имеют возможности взаимодействия с новым оборудованием и символами, кодирующими ECI:
i) передают идентификатор символики ]L0:
ii) имеют возможность установки или переключения на работу в режиме базового канала или в режиме расширенного канала:
iii) передают протокол GLI в соответствии с M.3;
iv) обрабатывают Макро PDF417 в соответствии с M.4;
2) но не имеют возможности взаимодействия с новым оборудованием и символами, кодирующими ECI:
i) не передают идентификатор символики;
ii) имеют возможность установки или переключения на работу в режиме базового канала или в режиме расширенного канала;
iii) передают протокол GLI в соответствии с M.3;
iv) обрабатывают Макро PDF417 в соответствии с M.4;
c) соответствуют только режиму базового канала:
1) передают идентификатор символики ]L0 (старое оборудование) или ]L2 (новое оборудование) или не передают идентификатор символики;
2) рассматривают символы, содержащие кодовые слова ECI, как ошибочные;
3) рассматривают символы Макро PDF417 как ошибочные, за исключением случая, когда считывающее устройство работает в буферизованном режиме и передача управляющего заголовка Макро PDF417 запрещена.
Допустим, что оборудование настроено в соответствии с вышеуказанным, что предоставит считывающему устройству возможность обнаруживать и соответствующим образом реагировать на следующие условия:
a) если в начале передачи присутствует идентификатор символики ]L1.
В данном случае приемное устройство достоверно информируется, что декодер работает в режиме расширенного канала для сканированного символа. Следовательно, все байты со значением 92, когда они появляются в качестве данных, были дублированы независимо от того, содержит ли символ ECI или является частью комплекта Макро PDF417. Появления одиночного байта со значением 92 указывают начало управляющей последовательности. Все остальные свойства должны соответствовать настоящему стандарту;
b) если в начале передачи присутствует идентификатор символики ]L2.
В данном случае приемное устройство информируется, что декодер работает в режиме базового канала для отсканированного символа. Следовательно, байт со значением 92 будет представлять отдельный байт данных.
Символы с управляющими последовательностями ECI должны рассматриваться как ошибочные. Символы Макро PDF417 должны быть рассмотрены как ошибочные, за исключением, если считывающее устройство работает в буферизованном режиме и передача управляющих заголовков Макро PDF417 запрещена;
c) если в начале передачи присутствует идентификатор символики ]L0, указывая версию PDF417 1994 года:
Данный случай является исключением по причине того, что исходные документы по PDF417 организаций AIM USA (1994 г.) <2> и AIM Europe (1994 г.) <3> несмотря на то, что он подразумевает явную поддержку режима расширенного канала, определяет 0 (т.е. набор вариантов отсутствует) как единственное значение варианта обработки для идентификатора символики PDF417. Таким образом, существующее оборудование PDF417 при полном соответствии исходным документам по PDF417 организаций AIM USA (1994 г.) и AIM Europe (1994 г.) не будет использовать новые значения вариантов, чтобы указать, действует ли режим базового канала, или режим расширенного канала. Следовательно, если приемное устройство встречает ]L0, тогда оно должно ожидать режим, соответствующий документам 1994 г. В частности:
--------------------------------
<2> См. документ [3].
<3> См. документ [4].
1) приемное устройство не может распознать из передачи, в каком из режимов находится декодер: в режиме расширенного канала (всегда дублирует байт, задаваемый в качестве управляющего знака в соответствии с M.3) или в режиме базового канала (никогда не дублирует байтов); декодер должен быть конфигурирован таким образом, чтобы соответствовать данным, ожидаемым приемным устройством;
2) если декодер установлен в режим расширенного канала и если в символе закодированы ECI, декодер будет скорее передавать управляющие последовательности GLI в формате PDF417 1994 г. (в соответствии с M.3), чем управляющую последовательность ECI, как указано в 5.17.2;
3) при использовании исходного протокола, если присутствует управляющий блок Макро PDF417, содержимое управляющего блока Макро PDF417 скорее следует после байтов данных символа, чем предваряет их;
d) если в начале передачи нет идентификатора символики.
В этом случае:
1) декодер соответствующим образом сконфигурирован для поддержки только символов режима базового канала. Система приема должна быть настроена на то, чтобы декодер не дублировал ни одного значения байта и чтобы любые встречающиеся в потоке байтов управляющие последовательности ECI являлись случайными комбинациями знаков или
2) декодер неправильно сконфигурирован для возможности взаимодействия в открытой системе, где могут встречаться символы, кодирующие ECI.
