Кодирование данных в символе ЕСС 200 с использованием минимального числа знаков символа
Одни и те же данные могут быть представлены различными символами Data Matrix путем использования различных схем кодирования.
Следующий алгоритм обычно порождает самый короткий поток кодовых слов:
a) кодирование начинают по схеме кодирования ASCII (КОИ-7/КОИ-8);
b) при кодировании по схеме кодирования ASCII (КОИ-7):
1) если следующая последовательность данных состоит, по крайней мере, из двух последовательных цифр, то кодируют следующие две цифры как сдвоенный разряд в схеме кодирования ASCII (КОИ-7/КОИ-8);
2) если проверка с предварительным просмотром (начинающимся на этапе, указанном в перечислении j), указывает иную схему кодирования, то следует перейти на эту схему;
3) если указана схема кодирования по основанию 256, кодируют знак фиксации этой схемы кодирования со следующим за ним байтом длины, значение которого пока неизвестно. На этапе, указанном в перечислении g или i, поле длины будет заполнено (может потребоваться второй дополнительный байт длины);
4) если следующий знак данных относится к расширенному набору ASCII (КОИ-8) и его десятичное значение превосходит 127, то его кодируют в схеме кодирования ASCII (КОИ-7/КОИ-8) с использованием в качестве первого знака управляющего знака верхнего регистра (Upper Shift) с десятичным значением 235;
5) в противном случае следующий знак данных кодируют по схеме кодирования ASCII (КОИ-7/КОИ-8);
c) при кодировании по схеме кодирования С40:
1) если схема кодирования С40 начинает обработку нового двойного знака символа, и если проверка с предварительным просмотром (начинающаяся на этапе, приведенном в перечислении j), указывает иную схему кодирования, следует перейти на использование этой схемы;
2) в противном случае следующий знак данных обрабатывают по схеме кодирования С40;
d) При кодировании по схеме кодирования Text:
1) если схема кодирования Text начинает обработку нового двойного знака символа, и если проверка с предварительным просмотром (начинающаяся на этапе, приведенном в перечислении j), указывает иную схему кодирования, следует перейти на использование этой схемы;
2) в противном случае следующий знак данных обрабатывают по схеме кодирования Text;
e) при кодировании по схеме кодирования ANSI X12:
1) если схема кодирования ANSI X12 начинает обработку нового двойного знака символа, и если проверка с предварительным просмотром (начинающаяся на этапе, приведенном в перечислении j) указывает иную схему кодирования, следует перейти на использование этой схемы;
2) в противном случае следующий знак данных обрабатывают по схеме кодирования ANSI X12;
f) при кодировании по схеме кодирования EDIFACT (EDF):
1) если схема кодирования EDIFACT начинает обработку нового тройного знака символа, и если проверка с предварительным просмотром (начинающаяся на этапе, приведенном в перечислении j) указывает иную схему кодирования, следует перейти на использование этой схемы;
2) в противном случае следующий знак данных обрабатывают по схеме кодирования EDIFACT;
g) при кодировании по схеме кодирования по основанию 256 (В256):
1) если проверка с предварительным просмотром (начинающаяся на этапе, приведенном в перечислении j) указывает иную схему кодирования, следует перейти на использование этой схемы;
2) в противном случае следующий знак данных обрабатывают по схеме кодирования по основанию 256;
h) повторяют этап, указанный в перечислении b), до конца данных;
i) после просмотра данных, если действует схема кодирования по основанию 256, устанавливают поле длины в ноль (ноль указывает, что символ завершает схему кодирования по основанию 256).
Проверка с предварительным просмотром (этапы, указанные в перечислениях с j no s):
При проверке с предварительным просмотром изучают кодируемые данные для определения наилучшей схемы кодирования;