
Code 128
"Code 128" asigura o excelenta
densitate a codurilor de bare pentru datele numerice si o densitate buna pentru datele alfanumerice. Este, in foarte
multe cazuri, ales pentru aplicatii noi in locul codului de bare "Code 39" datorita densitatii sale precum si
datorita faptului ca poate codifica un set foarte mare de caractere. Standardul acestui cod de bare este intretinut
de AIM (Automatic Identification Manufacturers).
Setul de caractere ce pot
fi codificate folosind codul de bare "Code 128" cuprinde: cifrele de la zero la noua, literele de la A la Z (litere
mari si litere mici), toate codurile ASCII si codurile de control. Codurile de bare sunt impartite in trei
subseturi, respectiv A, B, C. Exista trei coduri distincte ce indica ce subset va fi folosit; in plus, fiecare
subset include caractere de control ce permit trecerea catre alt subset in mijlocul unui cod de bare. Subsetul A
include caracterele ASCII standard, cifre, litere mari si coduri de control. Subsetul B include caracterele ASCII
standard, cifre, litere mari si litere mici. Subsetul C comprima doi digiti numerici in fiecare caracter realizand
astfel o densitate excelenta pentru fiecare cod de bare. Ambele exemple de mai sus contin 12 digiti. Totusi intre
ele exista o diferenta vizibila ce se datoreaza faptului ca ultima contine digiti comprimati:
Fiecare caracter este egal cu de 11 ori latimea celei mai inguste linii; folosind o latime minima a liniei de
0.010" fiecare caracter va fi lat de 0.11". Folosind dimensiunea de 0.010", 20 de caractere de date
plus codul de start, digitul de control si codul de stop vor avea latimea de 2.55" (codul de stop este de 13
ori mai lat decat cea mai ingusta bara). Folosind subsetul C cu date exclusiv numerice se realizeaza o comprimare
de 2:1 a datelor insemnand o latime totala a codului de bare de 1.45".
Fiecare caracter se compune din trei linii si trei spatii, care la randul lor pot avea latimea a 1, 2 sau 3
elemente (1 element = 1/11 din latimea caracterului). Liniile folosesc intotdeauna un numar par de elemente, in timp
ce spatiile un numar impar de elemente. Acest lucru ofera bazele pentru o verificare a continutului caracter cu
caracter in timpul citirii. In plus, fiecare cod de bare "Code 128" include o verificare modulo 103 a sumei.
Suma de verificare
Calculul sumei de verificare poate fi un pic dificil. Fiecare caracter, in simbologia "Code 128",
are o valoare numerica cuprinsa intre 0 si 102. In subsetul A si B, valoarea numerica a unui caracter se calculeaza
ca fiind codul sau ASCII minus 32. De exemplu, spatiul (ASCII 32) are valoarea 0, semnul exclamarii (ASCII 33) are
valoarea 1, etc.
Subsetul A permite imprimarea caracterelor de control ASCII, adica acelea cu coduri ASCII cuprinse intre 0 si 31.
Pentru aceste caractere adaugati 64 la codul ASCII pentru a obtine valoarea numerica. De exemplu, valoarea NUL
(ASCII 0) este 64, SOH (ASCII 1) este 65, STX (ASCII 2) este 66, etc.
Subsetul C imprima digitii numerici in perechi, iar valoarea caracterului folosit pentru suma de control este
valoarea numerica a perechii (00, 01, 02... 99).
Pentru a calcula suma de control, parcurgeti pasii urmatori:
- Initializati valoarea variabilei destinate sumei de control cu valoarea caracterului de start (103, 104, sau
105 pentru subsetul A, B sau ,respectiv, C).
- Initializati un multiplicator cu valoarea 1.
- Incepand cu partea stanga a codului de bare, adaugati valoarea numerica a fiecarui caracter, corectat cu
multiplicatorul, la suma de control. Incrementati multiplicatorul dupa fiecare caracter.
- Impartiti rezultatul la 103. Restul impartirii reprezinta suma de control.
- Convertiti valoarea numerica a sumei de control in caractere ASCII.
Detaliile privind conversia valorii numerice a sumei in caractere ASCII pot varia in functie de fontul folosit.
O atentie speciala este necesara in cazurile in care codul de caracter ASCII rezultant este egal cu zero sau este
mai mare decat 95.
In concluzie, in subsetul A, daca suma de control are valoarea cuprinsa intre 0 si 63 inclusiv, adaugati suma de
control si codul ASCII corespunzator unui spatiu (32) pentru a obtine codul caracterului. Daca suma de control este
egala cu 64 sau mai mare, scadeti 64 pentru a obtine codul caracterului. In subsetul B, adaugati suma de control si
codul ASCII al unui spatiu (32). In subsetul C, suma de control are valoarea egala cu codul ASCII al caracterului.
Informations provided by "Measurement Equipment Corporation".
|