Чтение Micro QR Code версии М3 (кириллица, второй тип библиотек)
Данная публикация является продолжением первой части кодирования кириллицы в микрокодах версии М3.
Этап 5. Применение полученного алгоритма для M3 АБВГ (второй тип библиотек в сети Интернет)
Так как аналогично предыдущему этапу для M3 АБВГ заготовлена битовая последовательность также заранее, а основной алгоритм очень схож (необходимо будет поменять только маску и функцию комбинации итогового кода), то воспользуемся данным обстоятельством и просто продублируем страницу М3 АБВГДЕ на M3 АБВГ с учетом замены исходного микрокода.
Копируем диапазон ячеек T4: AZ16 на странице М3 АБВГДЕ, переходим на страницу M3 АБВГ. Выбираем ячейку T4, добавляем скопированный фрагмент T4: AZ16 получаем новый анализ служебной информации (рис. 23).
Для M3 АБВГ служебная информация не дублирует служебную информацию для М3 АБВГДЕ. Необходимо использовать маску — 01.
Рисунок 23 — Служебная информация для M3 АБВГ
Переходим ко второй составляющей — анализ рабочей области микрокода. Результат представлен на рисунке 24.
Рисунок 24 — Пример готового результата для M3 АБВГ
Примечание: во втором типе библиотек используется всего четыре символа в отличии от шести символов первого типа библиотек. Попытка добавить пятый символ автоматически переводило уровень М3 на уровень выше — М4. Остановимся на четырех символах.
Как уже было упомянуто ранее, данный код также полностью не совпадает с байтовым режимом и с кодовой комбинацией Таблицы ДА.3 ГОСТ. Но так как альтернативных режимов в ГОСТ просто больше нет, будем и далее использовать алгоритм декодирования последовательности бит на примере байтового режима. Начинаем разбирать секреты второго типа бесплатных библиотек сети Интернет (пример использования библиотеки). Заполним все ячейки функциями, согласно таблице 5 (если не заполнено).
В диапазоне ячеек W23: X23 указан код 10 — обозначает наличие байтового режим (таблица 2 ГОСТ. Уже хорошее начало, в отличии от первого типа библиотек. Разбираем дальше. Следующий диапазон из 4-х бит в ячейках Y23: AB23 — диапазон, отображающий битовую комбинацию — 1000 или число 8 (по количеству искомых в микрокоде символов, умноженных на 2). Получается, что для второго типа также должен использоваться полный аналог дополнительных кодовых комбинаций, как и в универсальной кодовой системе. Напомню, в UTF-8 используются 8-битовые комбинации, в UTF-16 — 16-битовые комбинации и т.д. Здесь также как и в первом типе просматривается кодовая последовательность короче. Возвращаемся к кодам Ричарда Хэмминга: мощность искусственного алфавита (кириллицы) дает порядок в 6 бит. Следовательно, первая буква искусственного алфавита будет 000000 или другая аналогичная комбинация. Находим первую последовательность из шести нулей, получаем диапазон Y27: AD27. Значит с кодом первой буквы А угадали. Осталось определить кодовый индикатор. Диапазон W29: X31 и будет индикатором — 1000010001 (ужас, и это еще один секрет программистов моделистов Ассоциации). Почему выбрано именно это число — есть только одно предположение. Число 529 — знак возможностей преображения и нового восприятия окружающего мира, шутники. Если проверить дальше по коду последовательности, то получим полный скрытый (абсолютно не по ГОСТ) алфавит.
Возвращаемся к первой букве А — в ячейку AF27: AH27 добавляем функцию =СЦЕП(Y27: AD27), получаем 000000 (рис. 25). Первый индикатор будет =СЦЕП(W27: X27; W25: AD25). Следующая буква Б алфавита — в ячейку AF31: AH31 добавляем функцию = СЦЕП(Y31: AD31), получаем последовательность 000001. Перед символом аналогичный индикатор. Третья буква В — в ячейку AF35: AH35 добавляем функцию =СЦЕП(Y35: AD35), получаем последовательность 000010. Буква Г — в ячейку AF39: AH39 добавляем функцию =СЦЕП(Y39: AD39), получаем — 000011. Как и следовало ожидать, аналогично первому типу, просматривается схожая последовательность порядковых номеров букв алфавита кириллицы от 0 до 32. Код буквы Я — 100000.
Рисунок 25 — Пример готового результата для M3 АБВГ
Итак, очередной секрет программистов моделистов раскрыт. На данном моменте можно остановиться, так как алфавиты библиотек обоих типов совпадают. Перейдем к буквам малого регистра первого типа библиотек.
Этап 6. Применение полученного алгоритма для M3 абвг(второй тип библиотек в сети Интернет)
Так как заготовлена битовая последовательность для M3 абвг заранее, а основной алгоритм очень схож с М3 АБВГ (необходимо будет поменять только маску и функцию комбинации итогового кода), то воспользуемся данным обстоятельством. Продублируем страницу M3 абвгде на новый лист, добавим расшифровку кода М3 АБВГДЕ и заменим исходный микрокод.
Копируем диапазон ячеек T4: AZ16 на странице М3 АБВГ, переходим на страницу M3 абвг. Выбираем ячейку T4, добавляем скопированный фрагмент T4: AZ16 получаем новый анализ служебной информации (рис. 26).
Для M3 абвг служебная информация полностью дублирует служебную информацию для М3 АБВГ. Необходимо использовать маску — 01.
Рисунок 26 — Служебная информация для M3 абвг
Переходим ко второй составляющей — анализ рабочей области микрокода. Копируем соответствующий диапазон ячеек M3 АБВГ. Результат представлен на рисунке 27.
Рисунок 27 — Пример готового результата для M3 абвг
Аналогично предыдущему этапу, в диапазоне ячеек W23: X23 указан код 10 — обозначает наличие байтового режима (таблица 2 ГОСТ). Следующий диапазон из трех бит в ячейках Y23: AA23 — диапазон, отображающий битовую комбинацию — 1000 или число 8 (по количеству искомых в микрокоде символов). Проверка в ячейке AD23 подтверждает полученное значение.
Получены аналогичные первому типу кодовые комбинации для букв кириллицы малого регистра. Буква а — 110000, буква б — 110001, в — 110010, г — 110011, д — 110110 и е — 110101. Т.е., малые буквы начинаются с числа 48 в десятичном эквиваленте.
Аналогично первому типу библиотек, необходимо внести изменения. Сравниваем полученные числовые значения со значениями на странице Code:
Ячейка | Функция |
U27 | =ЕСЛИ(AF27=Code! K2; Code! J2;»-») |
U31 | =ЕСЛИ(AF31=Code! K3; Code! J3;»-») |
U35 | =ЕСЛИ(AF33=Code! K4; Code! J4;»-») |
U39 | =ЕСЛИ(AF37=Code! K5; Code! J5;»-») |
В результате получаем полное совпадение кодовой составляющей.
P.S.: как уже стало понятно из описания и данных этапов, реализованное во второй библиотеке кодирование микрокодов аналогично первому типу никак не представлено в стандартах. Следовательно, данный алгоритм, как и для других режимов, — ноу-хау программиста или программистов моделистов программного модуля Ассоциации. Согласно ГОСТ, необходимо использовать Таблицу ДА.3 и байтовый режим.
Удачи в декодировании байтовых последовательностей
Micro QR Code версии M3!!!