Каково фактическое значение HEX/двоичного значения символа GS1 FNC1?

Я искал много страниц на wikipedia, официальных спецификациях GS1, но еще не нашел определенного ответа на вопрос

Каково фактическое значение HEX/двоичного значения символа GS1 FNC1?

Существует много информации о том, как использовать идентификаторы GS1, как печатать штрих-коды с ZPL и как кодировать FNC1, но я хочу знать фактическое значение HEX этого символа.

Ответ 1

Символы специальных функций, такие как FNC1 - FNC4, не имеют прямого представления ASCII. Каждая символика, поддерживающая такие символы, имеет свою схему кодирования во внутреннем представлении, совершенно отличную от любых данных символов, ориентированных на байты.

Символы FNC служат как символы флага (обозначающие что-то особенное для читателя), так и символы форматирования (изменяющие значение закодированных данных). Как таковые они не предназначены для передачи непосредственно в данных, полученных хост-системой из базового устройства считывания штрих-кода.

Обычное назначение каждого из символов FNC таково:

  • FNC1 - Символ флага структурированных данных, указывающий форматирование GS1 и AIM И символ форматирования разделителя группы, среди прочего.
  • FNC2 - Сообщение Добавить символ флага для буферизации данных в группах символов для одного чтения.
  • FNC3 - символ флага Reader Programming для настройки устройства.
  • FNC4 - расширенный символ форматирования ASCII для кодирования символов с порядковыми номерами 128-255.

Помните, что не все они могут быть доступны в определенных символах штрих-кодов и могут даже указываться различными, нестандартными или перегруженными способами.

Кодирование символа FNC во внутренних данных символа выполняется через "механизм выхода", специфичный для программного обеспечения кодирования. Например, чтобы использовать FNC1 в его типичной роли структурированных данных GS1 для данных "(01) 00312345678906 (21) 123456789012 (30) 0144", вы можете увидеть символы FNC1, экранированные как {FNC1} так что вход выглядит как {FNC1}010031234567890621123456789012{FNC1}300144. Но каждая библиотека по-разному принимает эти символы, не относящиеся к данным, а некоторые даже автоматически вставляют необходимые символы [*].

При сканировании штрих-кода внутренние данные символа обычно декодируются, а затем передаются на хост по базовому каналу (например, клавиатуре) в виде последовательности байтов, которые должны интерпретироваться в соответствии с кодировкой символов Latin-1. Символы FNC не могут быть представлены таким образом и исключены из потока данных, однако их влияние на форматирование данных сохраняется.

Например, стандарты для большинства символов указывают, что когда символ FNC1 используется в качестве разделителя полей в данных, соответствующих стандартному формату идентификатора приложения GS1, он должен быть декодирован и передан как GS (ASCII 29). Явно указано, что эффект форматирования символа FNC1, используемого в качестве разделителя идентификатора приложения GS1, заключается в размещении символа GS в конце поля переменной длины. Но в других ролях (например, когда FNC1 используется в "первой/второй позиции" в качестве символа флага и с данными, не отформатированными в GS1), отсутствует эффект форматирования переносимых данных и, следовательно, отсутствует представление ASCII во время декодирования.

Другим примером символов специальных функций, оказывающих влияние на форматирование данных, являются символики, использующие FNC4 для расширения диапазона охвата от 7-битного ASCII до расширенного ASCII, как описано в этом ответе.

Тонкий технический момент заключается в том, что данные, передаваемые на хост, часто имеют префикс короткого заголовка индикатора символа, известного как "идентификатор символики", который обозначает тип и использование символа, с которого считываются данные. Это часто модифицируется присутствием символов-невидимых флагов в данных символа, например, для указания наличия данных в формате GS1 с "FNC1 in first" или для указания режима программирования считывателя, когда FNC3 появляется в любом месте символа. Детали специфичны для символов.

[*]: Barcode Writer в Pure PostScript автоматически вставит соответствующие символы FNC1 для любой символики, данные которой предоставляются исключительно в стандартном формате идентификатора приложения GS1.Он также будет кодировать расширенные символы ASCII посредством автоматического использования символов FNC4, где символы поддерживают это.

Ответ 2

Важно знать (и правильно настроить сканер), чтобы символ FNC1 в первой позиции был переведен в идентификатор символа в соответствии с ISO/IEC 15424. Модификатор m идентификатора символики показывает, был ли FNC1 или нет, Если это не сделано, приложение больше не увидит, если была создана структура GS1. Другие структуры идентифицируют, например. Macro 06 в коде матрицы данных (ISO/IEC 16022, ISO/IEC 15434). Его необходимо определить нашу разницу, чтобы принять правильные меры для обработки данных.