Kode 39 - Code 39

Image
En stregkodeetiket 39
Image
* WIKIPEDIA* kodet i kode 39

Kode 39 (også kendt som Alpha39 , Kode 3 af 9 , Kode 3/9 , Type 39 , USS Kode 39 eller USD-3 ) er en variabel længde, diskret stregkodesymbol .

Code 39-specifikationen definerer 43 tegn, der består af store bogstaver (A til Z), numeriske cifre (0 til 9) og et antal specialtegn (-,., $, /, +, %Og mellemrum ). Et ekstra tegn (betegnet '*') bruges til både start- og stopafgrænsere. Hver karakter består af ni elementer: fem søjler og fire mellemrum. Tre af de ni elementer i hvert tegn er brede (binær værdi 1), og seks elementer er smalle (binær værdi 0). Breddeforholdet mellem smal og bred er ikke kritisk og kan vælges mellem 1: 2 og 1: 3.

Selve stregkoden indeholder ikke et tjekciffer (i modsætning til f.eks. Kode 128 ), men det kan betragtes som selvkontrol med den begrundelse, at en enkelt fejlagtigt fortolket streg ikke kan generere et andet gyldigt tegn. Den mest alvorlige ulempe ved kode 39 er muligvis dens lave datatæthed: Det kræver mere plads til at kode data i kode 39 end for eksempel i kode 128. Det betyder, at meget små varer ikke kan mærkes med en kode 39 -baseret stregkode. Kode 39 bruges dog stadig af nogle posttjenester (selvom Universal Postal Union anbefaler at bruge kode 128 i alle tilfælde) og kan afkodes med stort set enhver stregkodelæser . En fordel ved kode 39 er, at da der ikke er behov for at generere et checkciffer, kan det let integreres i et eksisterende udskrivningssystem ved at tilføje en stregkodefont til systemet eller printeren og derefter udskrive rådataene i denne skrifttype.

Kode 39 blev udviklet af Dr. David Allais og Ray Stevens fra Intermec i 1974. Deres originale design omfattede to brede søjler og et bredt mellemrum i hver karakter, hvilket resulterede i 40 mulige tegn. Ved at afsætte et af disse tegn som et start- og stopmønster efterlod 39 tegn, hvilket var oprindelsen til navnet Code 39. Fire tegnsætningstegn blev senere tilføjet uden brede søjler og tre brede mellemrum, og tegnsættet blev udvidet til 43 tegn. Kode 39 blev senere standardiseret som ANSI MH 10,8 M-1983 og MIL-STD-1189. MIL-STD-1189 er blevet annulleret og erstattet af ANSI/AIM BC1/1995, Uniform Symbology Specification-Code 39.

Indkodning

* Nedenstående tegn er ikke et sandt kodeligt tegn, men er start- og stop -symbolet for kode 39. Symbolets asymmetri gør det muligt for læseren at bestemme retningen af ​​den stregkode, der scannes. Denne kode er traditionelt knyttet til den * tegn i stregkode skrifttyper og vil ofte blive vist med den læsbare repræsentation ved siden af stregkoden.

Image
Kode 39 tegn

Som en generalitet kan placeringen af ​​de to brede søjler anses for at kode et tal mellem 1 og 10, og placeringen af ​​det brede rum (som har fire mulige positioner) kan overvejes at klassificere karakteren i en af ​​fire grupper ( fra venstre mod højre): Bogstaver (+30) (U – Z), cifre (+0) (1–9,0), bogstaver (+10) (A – J) og bogstaver (+20) (K– T). F.eks. Har bogstavet P (det 16. bogstav i alfabetet) sine søjler justeret til at repræsentere tallet 6, og mellemrummet yderst til højre for at vælge gruppen Bogstaver (+20).

Når det er repræsenteret som et ciffer, bruges tallet "10" til at kode nummeret nul. Fordi der kun er seks bogstaver i gruppen Letters (+30) (bogstaverne 30–35 eller U – Z), bruges de fire andre positioner i denne gruppe (36–39) til at repræsentere tre symboler (bindestreg, punktum, mellemrum ) samt start/stop -tegnet.

De to brede søjler, ud af fem mulige positioner, koder et tal mellem 1 og 10 ved hjælp af en to-ud-af-fem kode med følgende numeriske ækvivalens: 1, 2, 4, 7, 0. Tallene summeres sammen. For eksempel er tallet 6 kodet NWWNN, med brede søjler, der indtager positionerne for 2 og 4 (2+4 = 6). I tilfælde af NNWWN, der er 4+7 = 11, er det tildelt 0 for cifre (+0) og 10 for bogstavkolonner (+10 - +30). Ved kodning af bogstaverne (+10 til +30) skal ligningen have et "-1" tilføjet, så 'A' er WNNNW → 1 +10 - 1 → 10 som vist i tabellen.

De sidste fire tegn består af alle smalle søjler og tre brede mellemrum. Der er fire mulige positioner for det enkelte smalle rum.

Denne tabel skitserer Code 39 -specifikationen. Den numeriske værdi, der er tildelt hvert tegn (undtagen start/stop), bruges i kontrolsumalgoritmen beskrevet nedenfor.

Kode 39 tegn (og checksumværdier)
Barer Rum
|| ||| +0 ||| || +10 |||| | +20 | |||| +30
▮ ||| ▮ 1 ▮ | || ▮ 1 1 ▮ || | ▮ EN 10 ▮ ||| ▮ K 20 ▮ ||| ▮ U 30
| ▮ || ▮ 2 | ▮ || ▮ 2 2 | ▮ | | ▮ B 11 | ▮ || ▮ L 21 | ▮ || ▮ V 31
▮▮ ||| 3 ▮▮ ||| 3 3 ▮▮ | || C 12 ▮▮ || | M 22 ▮ ▮ ||| W 32
|| ▮ | ▮ 4 || ▮ | ▮ 4 4 || ▮ | ▮ D 13 || ▮ | ▮ N 23 | | ▮ | ▮ x 33
▮ | ▮ || 5 ▮ | ▮ || 5 5 ▮ | ▮ || E 14 ▮ | ▮ | | O 24 ▮ | ▮ || Y 34
| ▮▮ || 6 | ▮ ▮ || 6 6 | ▮▮ || F 15 | ▮▮ | | P 25 | ▮▮ || Z 35
||| ▮▮ 7 || | ▮▮ 7 7 ||| ▮▮ G 16 ||| ▮ ▮ Q 26 | || ▮▮ - 36
▮ || ▮ | 8 ▮ | | ▮ | 8 8 ▮ || ▮ | H 17 ▮ || ▮ | R 27 ▮ || ▮ | . 37
| ▮ | ▮ | 9 | ▮ | ▮ | 9 9 | ▮ | ▮ | jeg 18 | ▮ | ▮ | S 28 | ▮ | ▮ | 38
|| ▮▮ | 10 || ▮▮ | 0 0 || ▮ ▮ | J 19 || ▮▮ | T 29 | | ▮▮ | *
||||| | | | || $ 39 | | || | / 40 | || | | + 41 || | | | % 42

Tegn adskilles af et ekstra smalt mellemrum. For eksempel er den fulde kodning for det enkelte bogstav "A", som faktisk inkluderer start- og stoptegnene som "*A*", "| | ▮▮ | ▮ || | ▮ | | ▮▮ |" . Koden læses ikke korrekt uden disse mellemtegnsrum. Stregkode skrifttyper inkluderer altid dette mellemrum inden for tegnet for tegnet.

Kode 39 mod 43

Kode 39 bruges undertiden med et valgfrit modulo 43 -chiffer . Denne funktion kræver, at denne funktion er aktiveret i stregkodelæseren. Koden med kontrolciffer kaldes kode 39 mod 43 .

For at beregne dette tildeles hvert tegn en værdi. Opgaverne er anført i tabellen ovenfor og næsten, men ikke helt, systematiske.

Sådan gør du kontrolsumberegningen :

  • Tag værdien (0 til 42) af hvert tegn i stregkoden eksklusive start- og stopkoder.
  • Sum værdierne.
  • Divider resultatet med 43.
  • Resten er værdien af ​​det checksum -tegn, der skal tilføjes.

Fuld ASCII -kode 39

Kode 39 er begrænset til 43 tegn. I fuld ASCII- kode 39 Symboler 0-9, AZ, ".", "-" og mellemrum er de samme som deres repræsentationer i kode 39. Små bogstaver, yderligere tegnsætningstegn og kontroltegn repræsenteres af sekvenser af to tegn i koden 39.

Kode detaljer
Nr Karakter Indkodning     Nr Karakter Indkodning     Nr Karakter Indkodning     Nr Karakter Indkodning
0 NUL %U     32 [plads] [plads]     64 @ %V     96 ` %W.
1 SOH $ A.     33 ! /EN     65 EN EN     97 -en +A
2 STX $ B     34 " /B     66 B B     98 b +B
3 ETX $ C     35 # /C     67 C C     99 c +C
4 EOT $ D     36 $ /D     68 D D     100 d +D
5 ENQ $ E.     37 % /E     69 E E     101 e +E
6 ACK $ F     38 & /F     70 F F     102 f +F
7 BEL $ G     39 ' /G     71 G G     103 g +G
8 BS $ H     40 ( /H     72 H H     104 h +H
9 HT $ I     41 ) /JEG     73 jeg jeg     105 jeg +Jeg
10 LF $ J     42 * /J     74 J J     106 j +J
11 VT $ K     43 + /K     75 K K     107 k +K
12 FF $ L.     44 , /L     76 L L     108 l +L
13 CR $ Mio     45 - -     77 M M     109 m +M
14 $ N     46 . .     78 N N     110 n +N
15 SI $ O     47 / /O     79 O O     111 o +O
16 DLE $ P     48 0 0     80 P P     112 s +S
17 DC1 $ Q     49 1 1     81 Q Q     113 q +Sp
18 DC2 $ R     50 2 2     82 R R     114 r +R
19 DC3 $ S     51 3 3     83 S S     115 s +S
20 DC4 $ T     52 4 4     84 T T     116 t +T
21 NAK $ U     53 5 5     85 U U     117 u +U
22 SYN $ V     54 6 6     86 V V     118 v +V
23 ETB $ W.     55 7 7     87 W W     119 w +W.
24 KAN $ X     56 8 8     88 x x     120 x +X
25 EM $ Y     57 9 9     89 Y Y     121 y +Y
26 SUB $ Z     58 : /Z     90 Z Z     122 z +Z
27 ESC %EN     59 ; %F     91 [ %K     123 { %P
28 FS %B     60 < %G     92 \ %L     124 | %Q
29 GS %C     61 = %H     93 ] %M     125 } %R
30 RS %D     62 > %JEG     94 ^ %N     126 ~ %S
31 OS %E     63 ? %J     95 _ %O     127 DEL %T, %X, %Y, %Z

Software

Disse gratis og open source -software kan producere stregkoder for kode 39:

Referencer