| FazBrowse Wikipedia Viewer | Main Page | | |
| Viewing: https://en.wikipedia.org/wiki/DotCode |
| Contents |
|---|
| Binary byte encoding |
| ECI encoding |
| See also |
| References |
DotCode is a two-dimensional (2D) matrix barcode invented in 2008 by Hand Held Products as a replacement for the outdated Code 128. At this time, it is issued by Association for Automatic Identification and Mobility (AIM) as “ISS DotCode Symbology Specification 4.0”. DotCode consists of sparse black round dots and white spaces on white background. In case of a black background the dots can be white. DotCode was developed to be used with high-speed industrial printers where printing accuracy can be low. Because DotCode by the standard does not require complicated elements like continuous lines or special shapes it can be applied with laser engraving or industrial drills.
DotCode can be represented as rectangular array with minimal size of each side 5X dots. Maximal size of DotCode is not limited by the standard (as Code 128 is not limited) but practical limit is recommended as 100x99 which can encode around 730 digits, 366 alphanumeric characters or 304 bytes.
As an extension of Code 128 barcode, DotCode allows more compact encoding of 8-bit data array and Unicode support with Extended Channel Interpretation feature. Additionally, DotCode provides much more data density and Reed–Solomon error correction which allows to restore partially damaged dotcodes. However, the main DotCode implementation, the same as Code 128, is effective encoding of GS1 data which is used in worldwide shipping and packaging industry.
DotCode symbol is constructed from the following elements:
The DotCode bits array is represented as:
(Two mask bits: M2, M1)(Data bits)(Corner bits, can be data or padding bits: C1 – C6)
The data codewords in 0 – 112 range are encoded in 5-of-9 binary dot patterns which are encoded from 9 dots where 5 black dots and 4 white spaces. The rest of barcode matrix (rest from division on 9) is padded with black padding bits. The padding bits can be from 0 to 8. The logically DotCode bits array is represented as:
(2 mask bits)(Data codewords 9 bits each)(Padding bits 0 – 8 bits)
DotCode size has the following requirements:
The data can be split into block in the following way, for each block ‘’’n’’’, for n equals 1 to B:
The error correction data |
There three main rules at message encoding start:
DotCode can encode full 8-bit charset in two ways:
Upper Shift modes can encode (128 to 255) extended ASCII characters in two codewords with returning to previous mode:
| Upper Shift Type | Codewords | ASCII |
|---|---|---|
| Upper Shift A | 64 to 95 | 128 to 159 |
| Upper Shift B | 0 to 95 | 160 to 255 |
Binary Latch mode can encode 8-bit charset and ECI sequences from 1 to 5 symbols. It uses the following rules:
| Codeword | Operation |
|---|---|
| 103 | Interrupt for 2x Shift C |
| 104 | Interrupt for 3x Shift C |
| 105 | Interrupt for 4x Shift C |
| 106 | Interrupt for 5x Shift C |
| 107 | Interrupt for 6x Shift C |
| 108 | Interrupt for 7x Shift C |
| 109 | Terminate with Latch to A |
| 110 | Terminate with Latch to B |
| 111 | Terminate with Latch to C |
| 112 | Terminate with Symbol Separation, Latch to C |
As we see in the following table, Binary Latch encodes data more effectively, starting from 3 bytes.
| Bytes count | Codewords required | Codewords with latch and return required | Upper Shift codewords required |
|---|---|---|---|
| 1 | 2 | 4 | 2 |
| 2 | 3 | 5 | 4 |
| 3 | 4 | 6 | 6 |
| 4 | 5 | 7 | 8 |
| 5 | 6 | 8 | 10 |
DotCode can encode ECI indicator int two ways:
FNC2 in any position except at the end of data signals the insertion of an ECI sequence – "\nnnnnn", which represents values between 000000 and 811799. The values can be encoded in 1 or 3 codewords:
In this way we need to pad data codewords in case with have free space. There are two rules:
| View original on Wikipedia | Back | FazBrowse Home |