Действующий
Команда записи объектов и ее дополнительный аргумент "Список объектов" используется для записи одного или нескольких идентификаторов объектов и самих объектов в радиочастотную метку. Каждый объект представляется в виде байтового потока, поддерживаемого "Параметром уплотнения". Также здесь имеются аргументы для блокировки набора данных и для проверки присутствия относительного идентификатора объекта в радиочастотной метке.
Команда считывания объектов используется для считывания одного или нескольких объектов данных из радиочастотной метки. Она поддерживает аргумент "Тип считывания", который позволяет считывать с радиочастотной метки только первые объекты (например, первичный идентификатор предмета учета и индекс идентификатора объектов), или считывать один или несколько объектов, или считывать все объекты. Если установлен тип считывания "только первых объектов", он должен поддерживаться дополнительным аргументом, определяющим полное число байтов, которые надо определить. Это значение определить относительно легко, если первичный идентификатор предмета учета в конкретной библиотеке имеет фиксированную длину. Дополнительный аргумент "Проверить дубликаты" также позволяет получить информацию о существовании более одного определенного экземпляра идентификатора объекта, закодированного в радиочастотной метке. Это может быть полезно для служебных целей.
В ответе на команду приводится список информации, связанной с каждым объектом данных. В частности, в нем однозначно определяется, являются ли данные распакованными после уплотнения, или остаются, как были определены приложением, что может быть использовано, например для индекса идентификатора объектов.
Команда "Считывание идентификаторов объектов" считывает с радиочастотной метки все идентификаторы объектов, но не связанные с ними сами объекты. Команда в основном используется как часть служебных процедур, например для проверки того, что индекс идентификатора объекта правильно закодирован, или при поступлении нового предмета учета из иных мест, например, по МБА.
В ответе команды приводится список всех относительных идентификаторов объектов, закодированных в радиочастотной метке, или информация об отказах при выполнении команды.
Команда требует от устройства считывания передать системную информацию с радиочастотной метки (идентификатор AFI и идентификатор DSFID). В некоторых применениях используется как служебная команда для проверки правильности записи значений.
Команда "Изменить объект" используется для изменения значения объекта данных, а также для эффективной перезаписи соответствующего набора данных. Если набор данных уже заблокирован, то он не может быть изменен. Команда поддерживает аргумент, позволяющий заблокировать измененный набор данных.
В ответ сообщается об успешном выполнении команды или причины отказа в выполнении команды, включая невозможность изменения заблокированного набора данных.
Команда "Удалить объект" позволяет полностью удалить набор данных из радиочастотной метки. Выполнение возможно, если набор данных не заблокирован.
Команда "Считывание карты логической памяти" используется для диагностических целей. Она возвращает полное содержимое памяти радиочастотной метки в виде кодирования байтами, без обработки для выделения отдельных идентификаторов объектов или самих объектов.
В ответ передается поток всех байтов, закодированных в радиочастотной метке, либо причины отказа в выполнении команды.
Команда "Очистить память" предписывает устройству считывания обнулить всю память заданной радиочастотной метки. Если любой из блоков заблокирован, то возвращается общий ответ "Блоки заблокированы", указывающий на неудачное выполнение команды.
Код 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 схема уплотнения должна быть задана как "определяемая приложением". Это должно гарантировать, что никакие дополнительные уплотнения не будут использоваться. Схема уплотнения, определяемая приложением, декларирует себя во время процесса декодирования, требуя использования специальных определяемых приложением правил (например, как это определено в данном приложении), которые будут применяться для интерпретации строки данных.