39. kód - Code 39
A 39-es kód (más néven Alpha39 , Code of 9 , Code 3/9 , Type 39 , USS Code 39 vagy USD-3 ) változó hosszúságú, diszkrét vonalkód szimbólum.
A Code 39 specifikáció 43 karaktert határoz meg, amelyek nagybetűkből (A-tól Z-ig), számjegyekből (0-9) és számos speciális karakterből állnak (-,., $, /, +, %És szóköz ). Egy további karakter („*” jelzéssel) használható mind a kezdő, mind a leállító határolóhoz. Minden karakter kilenc elemből áll: öt sávból és négy szóközből. Minden karakter kilenc eleméből három széles (1 -es bináris érték), hat pedig keskeny (0 -as bináris érték). A keskeny és a széles szélesség aránya nem kritikus, és 1: 2 és 1: 3 között választható.
Maga a vonalkód nem tartalmaz ellenőrző számjegyet (ellentétben például a 128 -as kóddal ), de önellenőrzésnek tekinthető azon az alapon, hogy egyetlen hibásan értelmezett vonal nem tud másik érvényes karaktert létrehozni. A 39 -es kód talán legsúlyosabb hátránya az alacsony adatsűrűség: több helyet igényel az adatok kódolása a 39 -es kódban, mint például a 128. kódban. Ez azt jelenti, hogy a nagyon kicsi árukat nem lehet 39 -es kódú vonalkóddal címkézni. A 39 -es kódot azonban néhány postai szolgáltatás továbbra is használja (bár az Egyetemes Postaunió minden esetben a 128 -as kód használatát javasolja), és gyakorlatilag bármilyen vonalkód -olvasóval dekódolható . A 39 -es kód egyik előnye, hogy mivel nincs szükség ellenőrző számjegy létrehozására, könnyen integrálható egy meglévő nyomtatási rendszerbe, ha vonalkód -betűtípust ad hozzá a rendszerhez vagy a nyomtatóhoz, majd kinyomtatja a nyers adatokat ebben a betűtípusban.
A 39 -es kódot Dr. David Allais és Ray Stevens, az Intermec munkatársa fejlesztette ki 1974 -ben. Eredeti kialakításuk két széles sávot és egy széles teret tartalmazott minden karakterben, ami 40 lehetséges karaktert eredményezett. Ha az egyik ilyen karaktert félretette kezdő és befejező mintaként, 39 karakter maradt, amely a Code 39 név eredete. Később négy írásjelet adtak hozzá, nem használva széles sávokat és három széles szóközt, így a karakterkészlet 43 karakterre bővült. A 39-es kódot később szabványosították ANSI MH 10,8 M-1983 és MIL-STD-1189 néven. A MIL-STD-1189 törlésre került, helyébe az ANSI/AIM BC1/1995, Egységes szimbólum specifikáció-39. kód lépett.
Kódolás
Az alábbiakban bemutatott * karakter nem valódi kódolható karakter, hanem a 39 -es kód kezdő és leállító szimbóluma. A szimbólum aszimmetriája lehetővé teszi az olvasó számára, hogy meghatározza a beolvasandó vonalkód irányát. Ez a kód hagyományosan a * karakterhez van leképezve vonalkód betűtípusokban, és gyakran megjelenik az ember által olvasható ábrázolással a vonalkód mellett.
Általánosságban elmondható, hogy a két széles sáv elhelyezkedése úgy tekinthető, hogy 1 és 10 közötti számot kódol, és a széles tér (amely négy lehetséges pozícióval rendelkezik) elhelyezkedése úgy tekinthető, hogy a karaktert négy csoport egyikébe sorolja ( balról jobbra): Betűk (+30) (U – Z), számjegyek (+0) (1–9,0), betűk (+10) (A – J) és betűk (+20) (K– T). Például a P betű (az ábécé 16. betűje) oszlopai a 6 -os számot jelölik, a jobb szélső szóköz pedig a Letters (+20) csoport kiválasztásához.
Ha számjegyként ábrázoljuk, a "10" számot használjuk a nulla szám kódolására. Mivel a Letters (+30) csoportban csak hat betű található (30–35 vagy U – Z), a csoport többi négy pozíciója (36–39) három szimbólum (kötőjel, pont, szóköz) ábrázolására szolgál. ), valamint a start/stop karakter.
A két széles sáv az öt lehetséges pozícióból 1 és 10 közötti számot kódol egy ötből kettő kód használatával , a következő számbeli egyenértékűséggel: 1, 2, 4, 7, 0. A számokat összegezzük. Például a 6 -os szám ÉNy -i irányban van kódolva, széles sávok foglalják el a 2 -es és 4 -es pozíciót (2+4 = 6). Az NNWWN esetében, amely 4+7 = 11 , a számjegyekhez (+0) 0, a betűoszlopokhoz (+10 - +30) pedig 10 tartozik. A (+10 és +30) betűk kódolásakor az egyenletet "-1" -vel kell kiegészíteni, így "A" WNNNW → 1 +10 - 1 → 10, amint a táblázat mutatja.
Az utolsó négy karakter minden keskeny sávból és három széles szóközből áll. Az egyetlen keskeny térnek négy lehetséges pozíciója van.
Ez a táblázat a Code 39 specifikációját mutatja be. Az egyes karakterekhez rendelt számértéket (kivéve a start/stop) az alábbiakban leírt ellenőrzőösszeg -algoritmus használja.
| Bárok | Spaces | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| || ||| | +0 | ||| || | +10 | |||| | | +20 | | |||| | +30 | ||||||
| ▮ ||| ▮ | 1 | ▮ | || ▮ | 1 | 1 | ▮ || | ▮ | A | 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 | | ▮ | ▮ | | én | 18 | | ▮ | ▮ | | S | 28 | | ▮ | ▮ | | ␣ | 38 |
| || ▮▮ | | 10 | || ▮▮ | | 0 | 0 | || ▮ ▮ | | J | 19 | || ▮▮ | | T | 29 | | | ▮▮ | | * | |
| ||||| | | | | || | $ | 39 | | | || | | / | 40 | | || | | | + | 41 | || | | | | % | 42 | |
A karaktereket további keskeny szóköz választja el. Például az egyetlen "A" betű teljes kódolása, amely "*A*" kezdő és befejező karaktereket is tartalmaz, "| | ▮▮ | ▮ || | ▮ | | ▮▮ |" . A karakterek közötti szóközök nélkül a kód nem olvasható megfelelően. A vonalkód -betűtípusok változatlanul tartalmazzák ezt a helyet a karakter karakterjelében.
Kód 39 mod 43
A 39 -es kódot néha egy opcionális modulo 43 ellenőrző számjeggyel együtt használják . Ennek használatához engedélyezni kell ezt a funkciót a vonalkód -olvasóban. Az ellenőrző számjegyű kódot Code 39 mod 43 -nak nevezzük .
Ennek kiszámításához minden karakterhez hozzárendelünk egy értéket. A feladatok a fenti táblázatban vannak felsorolva, és szinte, de nem teljesen szisztematikusak.
Az ellenőrző összeg kiszámításának módja a következő :
- Vegye ki a vonalkód minden karakterének értékét (0-42), kivéve a kezdő és leállító kódokat.
- Összeadja az értékeket.
- Oszd meg az eredményt 43 -mal.
- A fennmaradó rész a hozzáfűzendő ellenőrző összeg karakter értéke.
Teljes ASCII -kód 39
A 39 -es kód 43 karakterből áll. A teljes ASCII- kód 39-ben a 0-9, AZ, ".", "-" és a szóköz megegyezik a 39-es kódban szereplő ábrákkal. A kisbetűket, a további írásjeleket és a vezérlő karaktereket a kód két karakterből álló sorozatai jelzik 39.
| Kód részletei | ||||||||||||||
| Nr | karakter | Kódolás | Nr | karakter | Kódolás | Nr | karakter | Kódolás | Nr | karakter | Kódolás | |||
| 0 | NUL | %U | 32 | [hely] | [hely] | 64 | @ | %V | 96 | ` | %W | |||
| 1 | SOH | $ A | 33 | ! | /A | 65 | A | A | 97 | a | +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 | ) | /ÉN | 73 | én | én | 105 | én | +Én | |||
| 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 | $ M | 45 | - | - | 77 | M | M | 109 | m | +M | |||
| 14 | ÍGY | $ 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 | o | +P | |||
| 17 | DC1 | $ Q | 49 | 1 | 1 | 81 | Q | Q | 113 | q | +Q | |||
| 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 | TUD | X $ | 56 | 8 | 8 | 88 | x | x | 120 | x | +X | |||
| 25 | EM | $ Y | 57 | 9 | 9 | 89 | Y | Y | 121 | y | +Y | |||
| 26 | ALATTI | $ Z | 58 | : | /Z | 90 | Z | Z | 122 | z | +Z | |||
| 27 | KILÉPÉS | %A | 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 | > | %ÉN | 94 | ^ | %N | 126 | ~ | %S | |||
| 31 | MINKET | %E | 63 | ? | %J | 95 | _ | %O | 127 | DEL | %T, %X, %Y, %Z | |||
Szoftver
Ezek az ingyenes és nyílt forráskódú szoftverek 39 -es kódú vonalkódokat hozhatnak létre:
