определяют значение знака символа по таблице 1;
каждой позиции знака символа присваивают весовой коэффициент. Знаку Start присваивают весовой коэффициент 1. Затем, начиная слева от первого знака символа, следующего за знаком Start, весовые коэффициенты 1, 2, 3, 4, ..., n для всех последующих знаков символа, за исключением контрольного знака символа; n обозначает число знаков символа, представляющих данные или специальную информацию в символе, за исключением знаков Start/Stop и контрольного знака символа;
П р и м е ч а н и е — Знаку Start и первому знаку символа после знака Start присваивают весовой коэффициент 1;
значение каждого знака символа умножают на его весовой коэффициент.
все произведения, рассчитанные на этапе 3), суммируют;
сумму произведений делят на 103;
остаток, полученный из расчета на этапе 5), является значением контрольного знака символа.
Пример вычисления значения контрольного знака символа для данных «AIM1234»:
Знаки |
Start B |
А |
I |
M |
Code C |
12 |
34 |
Значения знаков (этап 1) |
104 |
33 |
41 |
45 |
99 |
12 |
34 |
Весовые коэффициенты (этап 2) |
1 |
1 |
2 |
3 |
4 |
5 |
6 |
Произведения (этап 3) |
104 |
33 |
82 |
135 |
396 |
60 |
204 |
Сумма произведений (этап 4) |
|
1014 |
|
|
|
|
|
Деление на 103 (этап 5) 1014/103 = 9
Остаток, равный значению контрольного знака символа 87
Контрольный знак символа должен размещаться непосредственно после окончания данных или специального знака и перед знаком Stop.
П р и м е ч а н и е — Контрольный знак символа не должен отображаться в визуальном представлении.
А.2 Визуальное представление
Визуальное представление знаков данных (должно соответствовать знакам, передаваемым декодером) должно быть напечатано вместе с кодирующим эти знаки символом Code 128. Знаки Start / Stop и специальные знаки печататься не должны. Размер знаков и шрифт не регламентируются, эта интерпретация может быть напечатана в любой окружающей символ области, без нарушения границ свободной зоны (согласно 4.4.2).ПРИЛОЖЕНИЕ В
(обязательное)
Особые правила для функционального кода 1 (FNC1)
FNC1 в первой позиции — использование зарезервировано для системы EAN.UCC (ЕАН.ЮСиСи)
В соответствии с соглашением между AIM, Inc. (АИМ, Инк.), EAN International (ЕАН Интернейшнл) и Uniform Code Council (UCC) (Совет по унифицированному коду — ЮСиСи) использование FNC1 в символах Code 128 в первой позиции знака символа после знака Start зарезервировано исключительно для системы EAN.UCC. EAN International и Uniform Code Council разработали логически связанный международный стандарт применения для использования Code 128 в соединении со структурами данных для их кодирования в широком диапазоне определенных стандартом категорий. Этот стандарт полностью приведен в [6].
Адреса этих организаций:
EAN International Uniform Code Council
r
B-1000 BRUSSELS
Belgium
ue Royale 145 7887 Washington Village DriveSuite 300 Dayton, OH 45458 USA
Информация об актуализированной версии [6] может быть получена в представительствах этих организаций или во входящих в систему национальных организациях нумерации3.
FNC1 во второй позиции — использование зарезервировано для AIM, Inc.
В соответствии с соглашением между AIM и другими организациями использование FNC1 в символах Code 128 в позиции второго знака символа после знака Start зарезервировано для обозначения символов, соответствующих определенным применениям, если существует необходимость однозначного распознавания различных символов Code 128. Следующие знаки являются допустимыми в позиции первого знака символа: цифры от 00 до 99 в кодируемом наборе С, прописные буквы от А до Z и строчные буквы от а до z.
Подробности указанных применений доступны в AIM International (АИМ Интернейшнл) по адресу:
AIM, Inc.
634 Alpha Drive,
Pittsburgh, PA 15328
USA
Прочие использования
Знак символа FNC1 можно использовать в качестве контрольного знака символа.
FNC1 в позициях третьего или последующих знаков передается в качестве знака версии КОИ-7 с десятичным значением 29 (GS).
Передаваемые данные
При любых применениях, в которых используют символы Code 128 с FNC1 в первой или второй позиции данных, должна быть обеспечена передача идентификатора символики. Когда FNC1 используется в первой или второй позиции, он не должен быть представлен в передаваемом сообщении, хотя его присутствие обозначается в идентификаторе символики значениями знака-модулятора 1 или 2 соответственно.
Когда FNC1 используют во второй позиции данных, ближайшие предшествующий и последующие знаки символа следует передавать как если бы знак FNC1 не существовал.
FNC1 в позициях третьего или последующих знаков передают как знак версии КОИ-7 GS (знак версии КОИ-7 с десятичным значением 29).
ПРИЛОЖЕНИЕ С
(обязательное)
Идентификатор символики
Идентификаторы символики предоставляют единую методику сообщений о считанной символике, наборе вариантов в устройстве считывания и некоторых встречающихся особенностях данной символики. Идентификатор символики для Code 1284:
] Cm,
где ] представляет знак версии КОИ-7 с десятичным значением 93;
С — знак кода, присвоенный символике Code 128;
m — значение знака-модификатора в таблице С.1:
Т а б л и ц а С.1 — Значения знака-модификатора для Code 128
m |
Вариант обработки |
0 |
Стандартная последовательность данных. Функциональный код 1 не присутствует ни в первой, ни во второй позиции после знака Start. |
1 |
Последовательность данных UCC/EAN-128 (ЮСиСи/ЕАН-128). Функциональный код 1 находится в первой позиции знака символа после знака Start. |
2 |
Функциональный код 1 находится во второй позиции знака символа после знака Start. |
4 |
Соединение в соответствии с требованиями ISBT-128 (АйэСБиТи-128) международного общества переливания крови — следуют связанные данные. |
Эта информация не должна кодироваться в символе штрихового кода, однако она должна генерироваться декодером после декодирования и передаваться как преамбула к сообщению данных.
ПРИЛОЖЕНИЕ D
(рекомендуемое)
Соотношение значений знаков символа и знаков версии КОИ-7
Для преобразования значения знака символа (S) к десятичному значению знака версии КОИ-7 или наоборот используют следующие соотношения для кодируемых наборов А и В.
Кодируемый набор А
Если S < 63, то десятичное значение знака версии КОИ-7 равно S + 32.
Если 64 < S < 95, то десятичное значение знака версии КОИ-7 равно S — 64.
Кодируемый набор В
Если S < 95, то десятичное значение знака версии КОИ-7 равно S + 32.
Результаты значений приведены в таблице 1 настоящего стандарта.
П р и м е ч а н и е — Как указано в 4.3.4.2 перечисление d), наличие знака FNC4 дает эффект добавления числа 128 к десятичному значению версии КОИ-7 следующего знака данных или знаков, полученных в соответствии с указанными правилами.
ПРИЛОЖЕНИЕ Е
(рекомендуемое)
Использование знаков Start, Code и Shift для минимизации длины символа
Одни и те же данные могут быть представлены различными символами Code 128 c помощью различных комбинаций знаков Start, Code и Shift.
Правила минимизации числа знаков символа, необходимых для представления заданной строки данных (и соответственно общей длины символа), обычно должны использоваться в управляющем программном обеспечении печатающего устройства.
1 Определяют знак Start.
1а Если данные состоят из двух цифр, используют знак Start C.
1b Если данные начинаются с четырех или более числовых знаков данных, используют знак Start C.
1с Если управляющий знак версии КОИ-7 (например, NUL*) находится в данных перед любым знаком нижнего регистра, используют знак Start A.
1d В остальных случаях используют знак Start B.
Если используют знак Start C и данные начинаются с нечетного количества числовых знаков данных, вставляют знак Code A или Code В перед последней цифрой в соответствии с 1с и 1d для выбора кодируемого набора А или В.
Если четыре или более числовых знака данных объединены в наборах А или В:
3а При четном количестве числовых знаков данных вставляют знак Code С перед первым числовым разрядом, чтобы произвести изменение на кодируемый набор С.
3b При нечетном количестве числовых знаков данных вставляют знак Code С непосредственно после первого числового знака, чтобы произвести изменение на кодируемый набор С.
Если в данных кодируемого набора В встречается управляющий знак версии КОИ-7:
4а Если после этого знака в данных следует знак в нижнем регистре, за которым стоит другой управляющий знак, вставляют знак Shift перед управляющим знаком.
4b В остальных случаях ставится знак Code А перед управляющим знаком, чтобы произвести изменение на кодируемый набор А.
Если в данных кодируемого набора А встречается знак в нижнем регистре:
5а Если в данных после этого знака следует управляющий знак, за которым стоит другой знак в нижнем регистре, вставляют знак Shift перед знаком нижнего регистра.
5b В противном случае вставляют знак Code В перед знаком нижнего регистра, чтобы произвести изменение на кодируемый набор В.
Если в данных кодируемого набора С встречается нечисловой знак, вставляют знак Code А или знак Code В перед этим знаком, следуя правилам 1с и 1d для выбора кодируемого набора А или В.
П р и м е ч а н и я:
Термин «знак нижнего регистра» используют для удобства, и он подразумевает любой знак кодируемого набора В Code 128 со значениями от 64 до 95 (десятичные значения знаков версии КОИ-7 от 96 до 127), то есть для всех строчных букв алфавита, а также' { | } ~ DEL. Термин «управляющий знак» означает любой знак из кодируемого набора А Code 128 со значениями от 64 до 95 (значения знаков версии КОИ-7 от 00 до 31).
Если знак функциональный код 1 стоит в первой позиции после знака Start или в нечетной позиции внутри числового поля, то для определения соответствующего набора знаков он должен обрабатываться как две цифры.
Если данные содержат знаки версии КОИ-8, десятичные значения которых превышают 127, следует вычесть 128 от их десятичных значений для определения соответствующего набора знаков А или В, а также использовать следующие правила: при наличии последовательности от одного до четырех указанных знаков (1 или 2 в конце строки данных) наиболее эффективно предварять каждый из них знаком FNC4; для пяти (3 в конце строки данных) или большего количества указанных знаков более эффективным является переход в версию КОИ-8 с использованием двух знаков FNC4.Набор знаков по ИСО 8859-1 (латинский алфавит номер 1)
В таблице F.1 представлено соответствие знаков второй половины набора 8-битных однобайтовых кодированных знаков по [2] байтам с десятичными значениями от 160 до 255 включительно. Для знаков с десятичными значениями от 128 до 159 включительно отсутствуют графические представления. Это соответствие эквивалентно ячейкам от 160 до 255 в строке-октете со значением 00 (десятичным) для базовой многоязычной плоскости по [8].
В соответствии с 4.3.4.3, d) настоящего стандарта эти знаки могут быть представлены в Code 128 в соединении со знаком FNC4 на основании соотношения
C = (D - 128),
где C — значение знака версии КОИ-7 символа;
D — значение знака данных по таблице F.1.
Так как это дает значения C от 32 до 127, которые соответствуют знакам кодируемого набора В, следующее соотношение также верно, когда применяется к набору знаков В:
5 = (D — 160),
где S — значение знака символа по таблице 1 (кодируемый набор В);
D — значение знака данных по таблице F.1.
Т а б л и ц а F.1 — Вторая часть набора знаков по [2]
160 NBSP |
161 і |
162 0 |
163 L |
164 0 |
165 ¥ |
166 1 |
167 § |
168 |
169 © |
170 a |
171 « |
172 - |
173 SHY |
174 ® |
175 |
176 ° |
177 ± |
178 2 |
179 3 |
180 |
181 E |
182 1 |
183 • |
184 , |
185 1 |
186 -2- |
187 » |
188 A |
189 A |
190 % |
191 6 |
192 A |
193 A |
194 |
195 A |
196 |
197 A |
198 £ |
199 c |
200 E |
201 E |
202 |
203 |
204 |
205 |
206 |
207 |
208 в |
209 N |
210 О |
211 o |
212 |
213 O |
214 |
215 X |
216 0 |
217 и |
218 и |
219 |
220 |
221 Y |
222 h |
223 в |
224 a |
225 a |
226 |
227 |
228 |
229 |
230 сс |
231 5 |
232 е |
233 e |
234 |
235 |
236 |
237 |
238 |
239 |
240 6 |
241 |
242 0 |
243 0 |
244 |
245 |
246 |
247 |
248 0 |
249 u |
250 u |
251 |
252 |
253 У |
254 t> |
255 |
П р и м е ч а н и е — Международные наименования знаков: NBSP — No-break space5 SHY — Soft hyphen*. |