Действующий
Команда "Очистить память" предписывает устройству считывания обнулить всю память заданной радиочастотной метки. Если любой из блоков заблокирован, то возвращается общий ответ "Блоки заблокированы", указывающий на неудачное выполнение команды.
Код ISIL поддерживает разные структуры, включающие идентификаторы библиотек по национальным схемам с использованием двухбуквенного кода страны по ИСО 3166-1 и трех других форматов, в которых префикс идентификатора занимает один, три или четыре знака. Знак дефиса отделяет этот код от идентификатора библиотеки.
Знак дефиса важен для выделения границы между различными типами префикса и идентификатора библиотеки. Уплотнение с помощью стандартной схемы ИСО/МЭК 15962 относительно неэффективно для этих данных.
Для получения более эффективного уплотнения кода ISIL, который может быть длиной до 16 цифровых и буквенных знаков в разных регистрах, в данную часть ИСО 28560 включена специальная схема предварительного кодирования. Схема поддерживает кодирование сочетаний любых знаков, совместимых с ИСО 15511, используемых при регистрации кода ISIL.
Схема кодирования ISIL основана на кодовой таблице в соответствии с таблицей С.1. Знаки располагаются в трех столбцах, каждый из которых содержит подмножество набора знаков и некоторые управляющие знаки. Любой алфавитный знак и знак пунктуации (специальный графический знак) кодируют 5 битами, а каждую цифру - 4 битами. Специальные управляющие знаки (см. С.2) используются для переключения между наборами. Кодирование должно всегда начинаться в наборе верхнего регистра, что поясняется в С.3.
Набор знаков верхнего регистра | Набор знаков нижнего регистра | Цифровой набор знаков | ||||||
Значение | Знак | HEX | Значение | Знак | HEX | Значение | Знак | HEX |
00000 | - | 2D | 00000 | - | 2D | 0000 | 0 | 30 |
00001 | А | 41 | 00001 | а | 61 | 0001 | 1 | 31 |
00010 | В | 42 | 00010 | b | 62 | 0010 | 2 | 32 |
00011 | С | 43 | 00011 | с | 63 | 0011 | 3 | 33 |
00100 | D | 44 | 00100 | d | 64 | 0100 | 4 | 34 |
00101 | Е | 45 | 00101 | е | 65 | 0101 | 5 | 35 |
00110 | F | 46 | 00110 | f | 66 | 0110 | 6 | 36 |
00111 | G | 47 | 00111 | g | 67 | 0111 | 7 | 37 |
01000 | Н | 48 | 01000 | h | 68 | 1000 | 8 | 38 |
01001 | I | 49 | 01001 | i | 69 | 1001 | 9 | 39 |
01010 | J | 4А | 01010 | j | 6A | 1010 | - | 2D |
01011 | К | 4В | 01011 | k | 6B | 1011 | : | 3А |
01100 | L | 4С | 01100 | I | 6C | 1100 | Latch upper | н/п |
01101 | М | 4D | 01101 | m | 6D | 1101 | Shift upper | н/п |
01110 | N | 4Е | 01110 | n | 6E | 1110 | Latch lower | н/п |
01111 | О | 4F | 01111 | o | 6F | 1111 | Shift lower | н/п |
10000 | Р | 50 | 10000 | p | 70 | |||
10001 | Q | 51 | 10001 | q | 71 | |||
10010 | R | 52 | 10010 | r | 72 | |||
10011 | S | 53 | 10011 | s | 73 | |||
10100 | T | 54 | 10100 | t | 74 | |||
10101 | U | 55 | 10101 | u | 75 | |||
10110 | V | 56 | 10110 | v | 76 | |||
10111 | W | 57 | 10111 | w | 77 | |||
11000 | X | 58 | 11000 | x | 78 | |||
11001 | Y | 59 | 11001 | y | 79 | |||
11010 | Z | 5A | 11010 | z | 7A | |||
11011 | : | 3А | 11011 | / | 2F | |||
11100 | Latch lower | н/п | 11100 | Latch upper | н/п | |||
11101 | Shift lower | н/п | 11101 | Shift upper | н/п | |||
11110 | Latch numeric | н/п | 11110 | Latch numeric | н/п | |||
11111 | Shift numeric | н/п | 11111 | Shift numeric | н/п | |||
HEX обозначает шестнадцатеричное значение знака. Latch upper означает "Фиксация в наборе знаков верхнего регистра". н/п означает "Не применяется". Shift upper означает "Сдвиг в набор знаков верхнего регистра". Latch lower означает "Фиксация в наборе знаков нижнего регистра". Shift lower означает "Сдвиг в набор знаков нижнего регистра". Latch numeric означает "Фиксация в цифровом наборе знаков". Shift numeric означает "Сдвиг в цифровой набор знаков". |
Каждый набор знаков в таблице С.1 включает четыре управляющих знака. Они используются следующим образом:
- знаки функции Shift (Сдвиг) переводят кодирование в другой набор знаков для одного следующего знака. Далее кодирование возвращается к первоначальному набору знаков, из которого был вызван знак Shift (Сдвиг);
- знаки функции Latch (Фиксация) изменяют последовательное кодирование с одного набора знаков на другой, при этом кодирование в текущем наборе остается неизменным до своего окончания или до вызова следующего знака Latch (Фиксация) или Shift (Сдвиг).
Эти управляющие знаки должны кодироваться в радиочастотную метку для того, чтобы данные могли быть правильно реконструированы при декодировании.
Кодирование должно начинаться в наборе знаков верхнего регистра, который считается основным набором. Это обеспечивает эффективную схему кодирования для большинства кодов ISIL, начинающихся с букв префикса страны. Если код ISIL начинается со строчной буквы или с цифры, то соответствующий знак Latch (Фиксация) или Shift (Сдвиг) из набора знаков верхнего регистра должен быть первым в кодовой последовательности.
Каждый знак кодируется последовательно, добавлением комбинаций битов, соответствующих знаку, в битовую строку. Кодирование происходит в пределах того же набора знаков до окончания процесса кодирования или до обнаружения знака, не входящего в текущий набор.
В этом случае полезно "посмотреть вперед" на добавляемые знаки. Если следующие два знака находятся в одном наборе, то следует использовать управляющие знаки Latch (Фиксация). Если только один последующий знак находится в другом наборе знаков, то следует использовать знак Shift (Сдвиг) для перехода к этому набору.
Рекомендуемые правила просты в реализации. Альтернативные способы анализа полной строки знаков могут дать более эффективное кодирование, и их можно использовать настолько, насколько управляющие знаки фиксации и включения наборов используются надлежащим образом.
Но знаки Latch (Фиксация) или Shift (Сдвиг) для перехода к цифровому набору знаков требуют, чтобы эти знаки были записаны четырехбитовой строкой.
По завершении процесса кодирования будет получена объединенная битовая строка, состоящая из пяти битовых и четырехбитовых (для знаков цифрового набора) комбинаций для каждого знака и других необходимых управляющих знаков. Если число битов не кратно 8, то в конце добавляются заполняющие биты "1". При декодировании последовательности заполняющие биты могут быть восприняты как управляющие знаки, но поскольку они не могут указывать на реальные буквенные или цифровые знаки, или знаки пунктуации, они игнорируются.
При передаче байтового потока процессу кодирования по ИСО/МЭК 15962 схема уплотнения должна быть задана как "определяемая приложением". Это должно гарантировать, что никакие дополнительные уплотнения не будут использоваться. Схема уплотнения, определяемая приложением, декларирует себя во время процесса декодирования, требуя использования специальных определяемых приложением правил (например, как это определено в данном приложении), которые будут применяться для интерпретации строки данных.
Вполне возможно при реализации библиотечного решения использовать общие средства кодирования и декодирования по стандарту ИСО/МЭК 15962, но также возможно использование специальных, разработанных для поддержки данной части ИСО 28560. Также в зависимости от конкретных конфигураций оборудования может понадобиться реализация поддержки обоих методов. Эти вопросы обсуждаются ниже.
Типовые средства кодирования и декодирования ИСО/МЭК 15962 предназначены для использования на рынке массовых приложений, когда специфические детали приложения непосредственно не поддерживаются. Таким образом, правила кодирования и подразумеваемые правила декодирования, определенные в данном приложении для кода ISIL, должны быть реализованы вне стандарта. Представленное в соответствии с ИСО/МЭК 15962 средство кодирования в результате выдает поток байтов (см. С.3.2), квалифицируемый как схема уплотнения и объявляемый в качестве определяемого приложением. Типовое средство декодирования по ИСО/МЭК 15962 выводит неинтерпретированную строку байтов, квалифицируемую как схема уплотнения, которая и объявляется в качестве определяемой приложением.
В данном типе реализации оборудования и программного обеспечения интерфейсом с приложением является собственно код ISIL. В процесс кодирования вовлечены все процедуры, описанные в данном приложении, включая создание соответствующего потока байтов и объявление схемы уплотнения в качестве определяемой приложением. Результатом процесса декодирования является действительный код ISIL.
Этот пример содержит знаки из всех трех наборов знаков и иллюстрирует использование управляющих знаков Latch (Фиксация) или Shift (Сдвиг) следующим образом.
a) Кодирование начинают в наборе знаков верхнего регистра со знака {D}, который кодируется как "00100".
b) Кодирование продолжают в том же наборе знаков для следующих трех знаков {Е-Н}, которые кодируются как "00101", "00000", "01000".
c) Следующие два знака в нижнем регистре {eu} не могут быть закодированы в том же наборе, который использовался для первых четырех знаков. Поэтому вставляют управляющий знак Latch lower (Фиксация в наборе знаков нижнего регистра), который кодируется как "11100".
e) Следующий знак из цифрового набора знаков не может быть закодирован в том же наборе знаков. Так как присутствует только одна цифра, используют управляющий знак Shift numeric (Сдвиг в цифровой набор знаков), кодируемый как "11111".