М
Метод "0111110"
AI (01) + AI (ЗЮх) + AI (17)
Метод "0111111"
AI (01) + Al (320х) + AI (17)
асса нетто предмета в метрических единицах величин и дата окончания срока годностиМасса нетто предмета в неметрических (британских) единицах величин и дата окончания срока годности
Три строки элементов AI уплотняют до 76 битов, при этом идентификацию предмета уплотняют до 40 битов, значение массы — до 20 битов и значение даты — до 16 битов.
При кодировании трех строк элементов AI в строке элемента с идентификатором применения AI (01) отбрасывают первые три цифры (019) и последнюю контрольную цифру. Остальные 12 цифр кодируют в 40-битовом поле уплотненных данных в четырех группах по три цифры в каждой, кодируемых в десяти битах соответственно. В строке элементов с идентификаторами применения AI (31 Ох и 320х) для обозначения массы отбрасывают 3-разрядный префикс AI (310 или 320). Из оставшейся 7-значной строки элемента с AI удаляют второй разряд слева (ноль) с целью формирования строки из 6 цифр. Указанные 6 цифр, состоящие из цифры последнего разряда AI и последних пяти цифр значения массы, кодируют в 20 битах и добавляют в поле уплотненных данных. В строке элементов с идентификаторами применения AI (11), AI (13), AI (15) или AI (17) отбрасывают 2-разрядный префикс AI (11,13,15 или 17) и преобразуют оставшиеся шесть цифр со структурой «ГГММДД» («YYMMDD»)12 в уплотненную строку со значениями от 0 до 38399 и кодируют уплотненные данные в 16 битах с помощью следующей формулы
(YY х 384) + ((ММ - 1) х 32) + (DD).
Значение 38400 в 16-битовом подполе обозначает, что поле данных не подлежит кодированию. Этот вариант применяют для кодирования идентификации предмета и массы в случае, если методы кодирования со значениями “0100” или “0101” не поддерживают данное значение массы.
Устройство декодирования декодирует первые 40 битов в 12 цифр, преобразуя каждую из четырех групп по 10 битов втри цифры, и добавляет перед этими 12 цифрами префикс трех цифр (019), а в конец первой строки элемента с АІ — контрольную цифру, вычисленную по модулю 10.
Затем устройство декодирования преобразует следующих 20 битов по основанию 10 для получения шести десятичных цифр, размещает ноль после первой цифры (слева) для создания последовательности из семи цифр, азатем добавляет префикс АІ (310) или АІ (320) перед указанной строкой для формирования второй строки элементов cAI передаваемого сообщения. После этого устройство декодирования преобразует последние 16 битов в числовое значение. Если при декодировании последних 16 битов получают значение 38400, то следующие данные не подлежат декодированию.
Иное значение свидетельствует о том, что была закодирована календарная дата. В соответствии с приведенной выше формулой устройством декодирования должно быть выделено 6-разрядное значение даты и в соответствии с установленной процедурой к нему должен быть добавлен в качестве префикса идентификатор применения АІ (11), АІ (13), АІ (15) или АІ (17).
Например, если при кодировании сообщения (01)90012345678908(3103)012233(15)991231 использован метод кодирования со значением “0111000”, то в поле уплотненных данных в действительности включают только выделенные полужирным шрифтом цифры, но на выходе устройства декодирования будет последовательность данных “]е00190012345678908310301223315991231 ”
.Поле метода кодирования со значением «01100» для идентификации предмета переменной величины и его цены
Указанный метод кодирования может быть использован в случае, если подлежащее кодированию сообщение состоит только из двух строк элементов cAI: строки с AI (01), за которой следует строка с AI (392х). Строка элемента с AI (01) для идентификации предмета должна включать в себя разряд индикатора 9. Значение цены предмета, указанное в строке элемента с AI (392х), может иметь от нуля до трех цифр после десятичной запятой (в диапазоне значений х от 0 до 3). Строку элемента с AI (01) для идентификации предмета уплотняют до 40 битов, а число десятичных разрядов после запятой в AI (392х) кодируют в двух битах. Затем цифры цены кодируют с помощью универсального числового кодирования. Все дополнительные строки элементов кодируют с помощью универсального кодирования.
При кодировании двух строк элементов AI в строке элемента cAI (01) отбрасывают три первые цифры (019) и последнюю контрольную цифру. Остальные 12 цифр кодируют в 40-битовом поле уплотненных дан- ных в четырех группах по три цифры в каждой, соответственно кодируемых в десяти битах. В строке элемента AI (392х) отбрасывают первые три цифры (392). Следующую цифру (х), определяющую положение десятичной запятой и принимающую значение в интервале от 0 до 3, непосредственно кодируют в следу- ющихдвух битах. Данные, записанные после десятичной запятой, кодируют с помощью универсального кодирования, начиная со схемы числового кодирования.
Устройство декодирования декодирует первые 40 битов в 12 цифр, преобразуя каждую из четырех групп по десять битов втри цифры, и добавляет перед указанными 12 цифрами префикс из трех цифр — 019, а в конец первой строки элементов с АІ — контрольную цифру, вычисленную по модулю 10. Затем указанное устройство добавляет первые три цифры идентификатора применения АІ392 и преобразует следующие два бита в цифру, значение которой определяет положение десятичной запятой. Остальную часть сообщения декодируют с помощью универсального кодирования.
Например, при кодировании сообщения (01)90012345678908(3922)795 с использованием метода кодирования со значением «01100» в поле уплотненных данных в действительности включают только выделенные полужирным шрифтом цифры. На выходе устройства декодирования будет последовательность данных “]е001900123456789083922795”.
Поле метода кодирования со значением «01100» для идентификации предмета переменной величины и его цены с кодом валюты по ISO 4217
Указанный метод кодирования может быть использован в случае, если подлежащее кодированию сообщение состоит только из двух строк элементов с AI: строки с AI (01), за которой следует строка с AI (393х). Строка элемента с AI (01) для идентификации предмета должна включать в себя разряд индикатора 9. Значение цены предмета торговли, указанное в строке элемента cAI (393х), может иметь от нуля до трех цифр после десятичной запятой (в диапазоне значений хот Одо 3). Строку элементов cAI (01) для идентификации предмета уплотняют до 40 битов, а число десятичных разрядов после запятой в AI (393х) кодируют в двух битах. Трехзначный код валюты по ISO 4217 кодируют в десяти битах. Затем цифры цены кодируют с помощью универсального числового кодирования. Все дополнительные строки элементов кодируют путем универсального кодирования.
При кодировании двух строк элементов AI в строке элементов с AI (01) отбрасывают три первые цифры (019) и последнюю контрольную цифру. Остальные 12 цифр кодируют в 40-битовом поле уплотненных данных в четырех группах по три цифры в каждой, соответственно кодируемых в десяти битах. В строке элемента с AI (393х) отбрасывают первые три цифры (393). Следующую цифру (х), определяющую положение десятичной запятой и принимающую значение в интервале от 0 до 3, непосредственно кодируют в следующих двух битах. Следующие три цифры, соответствующие коду валюты по ISO 4217, кодируют непосредственно в следующих десяти битах. Данные, записанные после трехзначного кода валюты по ISO 4217, кодируют с помощью универсального кодирования, начиная со схемы числового кодирования.
Устройство декодирования декодирует первые 40 битов в 12 цифр, преобразуя каждую из четырех групп по десять битов втри цифры, и добавляет перед указанными 12 цифрами префикс из трех цифр — 019, а в конец первой строки элемента с АІ — контрольную цифру, вычисленную по модулю 10. Далее указанное устройство добавляет первые три цифры идентификатора применения АІ (393) и преобразует следующие два бита в цифру, значение которой определяет положение десятичной запятой. Затем декодируют следующие десять битов, в которых непосредственно закодированы три цифры кода валюты по ISO 4217. Остальную часть сообщения декодируют с помощью универсального кодирования.
Например, если при кодировании сообщения (01)90012345678908(3932)0401234 использован метод кодирования со значением «01101», то в поле уплотненных данных в действительности включают только 30выделенные полужирным шрифтом цифры, но на выходе устройства декодирования будет последовательность данных “]е0019001234567890839320401234”.
Поле универсального уплотнения данных
В поле универсального уплотнения данных кодируют строки элементов с AI путем их преобразования в двоичную строку, используя комбинацию трех схем кодирования:
схемы числового кодирования, применяемой для чисел и знаков FNC1 и использующей для кодированного знака 3,5 бита;
схемы алфавитно-цифрового кодирования, применяемой для кодирования комбинации чисел и прописных букв, использующей 5 битов для кодирования любой цифры или знака FNC1, а 6 битов — для кодирования любой буквы;
схемы кодирования знаков по ISO/IEC 646, применяемой для комбинации прописных и строчных букв, чисел и большинства специальных графических знаков (знаков препинания), использующей для кодирования любой цифры 5 битов, любой буквы — 7 битов и любого специального графического знака — 8 битов.
Универсальное уплотнение данных предназначено для кодирования строк элементов с AI, отличающихся от специально кодируемых с помощью одного из способов кодирования уплотненных данных. Поле универсального уплотнения данных является последним полем в символе переменной длины. После того как все данные были обработаны с помощью схемы универсального уплотнения данных, процесс универсального кодирования завершают процедурой заполнения по 7.2.5.5.4.
Схема числового кодирования
Схема числового кодирования является схемой кодирования «по умолчанию», которая действует начиная с начала поля универсального кодирования данных. В соответствии с этой схемой две цифры или цифра и знак FNC1 (в любом порядке) подлежат кодированию в семи битах. 7-битовое значение определяют следующим образом
Значение = (11 х D,) + D2 + 8,
где D1 и D2 — значения первой и второй цифры или значение знака FNC1 соответственно (знаку FNC1 присвоено значение 10).
Значениям в диапазоне от 8 до 127 соответствуют 7-битовые двоичные величины в диапазоне от “0001000” до “1111111” (два знака FNC1 не могут быть закодированы в семи битах). Двоичная последовательность из четырех нулей “0000” в начале поля или следующая за окончанием предыдущей 7-битовой величины, определяемой по схеме числового кодирования, является указателем фиксации (или перехода) схемы алфавитно-цифрового кодирования (таблица 11).
Таблица 11 — Схема числового кодирования
Кодируемый(е) знак(и) |
Закодированные двоичные величины |
Пары «цифра — цифра», «цифра — знак FNC1» и «знак FNC1 — цифра» |
От 0001000 до 1111111 |
Указатель фиксации схемы алфавитно-цифрового кодирования |
0000 |
Процесс по схеме числового кодирования пар знаков продолжается до тех пор, пока не будет выполнено одно из следующих условий:
если остаются, по меньшей мере, два знака, к которым не применима схема числового кодирования, то в поле уплотнения данных кодируют указатель фиксации схемы алфавитно-цифрового кодирования;
если остается один знак, который не является цифрой, в поле уплотнения данных появляется указатель фиксации схемы алфавитно-цифрового кодирования;
если остается один знак, который является цифрой, сначала вычисляют размер символа, необходимый для кодирования текущей двоичной строки, а затем число недостающих битов, равное числу битов, требуемых для доведения общего числа битов до следующего четного числа, кратного 12:
если остается семь или более недостающих битов, кодируют цифру и знак FNC1, заполняющие следующие семь битов. Этот замыкающий знак FNC1 распознается как заполнитель и не передается устройством считывания;
если остается от четырех до шести битов, к цифровому значению добавляют единицу и кодируют результат в следующих четырех битах;
в остальных случаях применяют больший по размеру символ, кодирующий цифру и знак FNC1, дополняющие следующие семь битов. Этот замыкающий знак FNC1 распознается как заполнитель и не передается устройством считывания.
Все остальные биты кодируют в соответствии с процедурой заполнения по 7.2.5.5.4;
если не остается ни одного знака, то все оставшиеся биты кодируют в соответствии с процедурой заполнения по 7.2.5.5.4.
Каждый раз, когда появляется указатель фиксации схемы алфавитно-цифрового кодирования, схема кодирования соответствующим образом изменяется. В случае если следующий знак данных необходимо закодировать как знак по ISO/IEC 646, в схеме алфавитно-цифрового кодирования предусмотрено появления указателя фиксации схемы кодирования знаков по ISO/IEC 646, следующего за указателем фиксации схемы алфавитно-цифрового кодирования.
В процессе декодирования должны быть проведены следующие специальные проверки, когда уплотнение в соответствии со схемой числового кодирования действует в конце символа:
если последние семь битов, представленные по схеме числового кодирования, непосредственно перед последовательностью заполнителей кодируют цифру, за которой следует знак FNC1, то знак FNC1 игнорируют;
если схема числового кодирования вступает в силу, когда в символе остается только от четырех до шести битов, значение 4-битовой строки в начале оставшихся битов преобразуется в десятичные значения:
если значение равно нулю, то сообщение завершено;
в остальных случаях значение декодируется как последняя цифра в сообщении, равная десятичному значению минус единица.
7.2.5.5.2 Схема алфавитно-цифрового кодирования
С помощью схемы алфавитно-цифрового кодирования кодируют цифры, знак FNC1/указатель фиксации схемы числового кодирования, прописные буквы, пять специальных графических знаков (знаков препинания) и два знака указателя фиксации. Последовательность закодированных битов не имеет фиксированного числа битов на один знак. Биты присваивают в соответствии с длиной (в битах) каждого закодированного знака. Для кодирования каждого знака используют оттрехдо шести битов в соответствии стабли- цей 12.