Extended Channel Interpretation (ECI) is an extension to the communication protocol that is used to transmit data from a bar code reader to a host when a bar code symbol is scanned. It enables the application software to receive additional information about the intended interpretation of the message contained within the barcode symbol and even details about the scan itself. ECI was developed as a symbology-independent extension of the Global Label Identifier (GLI) system used in the PDF417 bar code.
In the default mode, where Extended Channel Interpretation is not in effect, the interface between the reader and the host is said to be in "Basic Channel Mode". In this mode, each octet of transmitted data is defined (by the corresponding bar code symbology standard) to correspond directly to a single data character code point in some default character set, normally ISO/IEC 8859-1 (Latin-1).
However, when ECI is in effect, the data interface is said to be in "Extended Channel Mode". In this mode the interpretation of the transmitted data is defined by the current ECI modes that are enabled, which are activated and deactivated by "ECI indicators" included in the transmitted data.
Within the data transmission protocol the use of ECI is indicated explicitly by a modification to the symbology indicator that the decoder will recognize and interpret accordingly in order to disambiguate between ECI and non-ECI encoded messages. If the reader is not ECI enabled or the application does not support the ECI indicators that are in effect then the scan should be aborted.
The ECI information is not part of the ultimate bar code message and its use is normally transparent to the user in basic image scanning scenarios. The application presents the user with the intended message, but it does not normally render the various ECI indicators that were used to derive this message or to provide annotation or additional metadata. For advanced applications (including system debugging and data validation) the ECI information may be rendered inline with the bar code message or extracted and presented separately.
ECI indicators may be included at various points in the transmitted message, and may be either of "encodable" type or of "non-encodable" or "signal" type.
The most common use for Extended Channel Interpretation is to allow usually unsupported national character sets such as Arabic, Greek, or Japanese to be used reliably in bar code symbols. [1] An ECI-enabled bar code symbol may use several character sets by embedding several character set ECI indicators to delimit segments of the message that are encoded using different code pages.
For most barcode symbologies, the default code page (if not specified by ECI) is ISO/IEC 8859-1 (also known as Latin-1) as shown in bold below. Well-known ECI values, which are commonly used to indicate that a message segment is encoded using a specific code page or character encoding: [2] [3]
ECI indicator | Code page or encoding | Notes |
---|---|---|
\000000, \000002 | Code page 437 | |
\000001, \000003 | ISO/IEC 8859-1 | Latin-1 |
\000004 | ISO/IEC 8859-2 | Latin-2 |
\000005 | ISO/IEC 8859-3 | Latin-3 |
\000006 | ISO/IEC 8859-4 | Latin-4 |
\000007 | ISO/IEC 8859-5 | Latin/Cyrillic |
\000008 | ISO/IEC 8859-6 | Latin/Arabic |
\000009 | ISO/IEC 8859-7 | Latin/Greek |
\000010 | ISO/IEC 8859-8 | Latin/Hebrew |
\000011 | ISO/IEC 8859-9 | Latin-5 |
\000012 | ISO/IEC 8859-10 | Latin-6 |
\000013 | ISO/IEC 8859-11 | Latin/Thai |
\000014 | Reversed | |
\000015 | ISO/IEC 8859-13 | Latin-7 |
\000016 | ISO/IEC 8859-14 | Latin-8 (Celtic) |
\000017 | ISO/IEC 8859-15 | Latin-9 |
\000018 | ISO/IEC 8859-16 | Latin-10 |
\000019 | Reversed | |
\000020 | Shift JIS | |
\000021 | Windows-1250 | Superset of Latin-2 |
\000022 | Windows-1251 | Latin/Cyrillic |
\000023 | Windows-1252 | Superset of Latin-1 |
\000024 | Windows-1256 | Arabic |
\000025 | UTF-16 | Big endian |
\000026 | UTF-8 | |
\000027 | ISO/IEC 646:1991 IRV | US-ASCII |
\000028 | Big5 | |
\000029 | GB/T 2312 | |
\000030 | KS X 1001 | |
\000031 | GBK | |
\000032 | GB 18030 | |
\000033 | UTF-16 | Little endian |
\000034 | UTF-32 | Big endian |
\000035 | UTF-32 | Little endian |
\000170 | ISO/IEC 646 INV | |
\000899 | 8-bit binary data |
ISO/IEC 8859 is a joint ISO and IEC series of standards for 8-bit character encodings. The series of standards consists of numbered parts, such as ISO/IEC 8859-1, ISO/IEC 8859-2, etc. There are 15 parts, excluding the abandoned ISO/IEC 8859-12. The ISO working group maintaining this series of standards has been disbanded.
ISO/IEC 8859-15:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 15: Latin alphabet No. 9, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1999. It is informally referred to as Latin-9. It is similar to ISO 8859-1, and thus also intended for “Western European” languages, but replaces some less common symbols with the euro sign and some letters that were deemed necessary: This encoding is by far most used, close to half the use, by German, though this is the least used encoding for German.
A barcode or bar code is a method of representing data in a visual, machine-readable form. Initially, barcodes represented data by varying the widths, spacings and sizes of parallel lines. These barcodes, now commonly referred to as linear or one-dimensional (1D), can be scanned by special optical scanners, called barcode readers, of which there are several types. Later, two-dimensional (2D) variants were developed, using rectangles, dots, hexagons and other patterns, called matrix codes or 2D barcodes, although they do not use bars as such. 2D barcodes can be read using purpose-built 2D optical scanners, which exist in a few different forms. 2D barcodes can also be read by a digital camera connected to a microcomputer running software that takes a photographic image of the barcode and analyzes the image to deconstruct and decode the 2D barcode. A mobile device with a built-in camera, such as smartphone, can function as the latter type of 2D barcode reader using specialized application software.
Code 39 is a variable length, discrete barcode symbology defined in ISO/IEC 16388:2007.
A barcode reader or barcode scanner is an optical scanner that can read printed barcodes, decode the data contained in the barcode to a computer. Like a flatbed scanner, it consists of a light source, a lens and a light sensor for translating optical impulses into electrical signals. Additionally, nearly all barcode readers contain decoder circuitry that can analyse the barcode's image data provided by the sensor and send the barcode's content to the scanner's output port.
PDF417 is a stacked linear barcode format used in a variety of applications such as transport, identification cards, and inventory management. "PDF" stands for Portable Data File. The "417" signifies that each pattern in the code consists of 4 bars and spaces in a pattern that is 17 units (modules) long. The PDF417 symbology was invented by Dr. Ynjiun P. Wang at Symbol Technologies in 1991. It is defined in ISO 15438.
The Aztec Code is a matrix code invented by Andrew Longacre, Jr. and Robert Hussey in 1995. The code was published by AIM, Inc. in 1997. Although the Aztec Code was patented, that patent was officially made public domain. The Aztec Code is also published as ISO/IEC 24778:2008 standard. Named after the resemblance of the central finder pattern to an Aztec pyramid, Aztec Code has the potential to use less space than other matrix barcodes because it does not require a surrounding blank "quiet zone".
MaxiCode is a public domain, machine-readable symbol system originally created by the United Parcel Service (UPS) in 1992. Suitable for tracking and managing the shipment of packages, it resembles an Aztec Code or QR code, but uses dots arranged in a hexagonal grid instead of square grid. MaxiCode has been standardised under ISO/IEC 16023.
Code 128 is a high-density linear barcode symbology defined in ISO/IEC 15417:2007. It is used for alphanumeric or numeric-only barcodes. It can encode all 128 characters of ASCII and, by use of an extension symbol (FNC4), the Latin-1 characters defined in ISO/IEC 8859-1.. It generally results in more compact barcodes compared to other methods like Code 39, especially when the texts contain mostly digits. Code 128 was developed by the Computer Identics Corporation in 1981.
A QR code is a type of two-dimensional matrix barcode, invented in 1994, by Japanese company Denso Wave for labelling automobile parts. A barcode is a machine-readable optical image that contains information specific to the labelled item. In practice, QR codes contain data for a locator, an identifier, and web tracking. To efficiently store data, QR codes use four standardized modes of encoding (i) numeric, (ii) alphanumeric, (iii) byte or binary, and (iv) kanji.
A Data Matrix is a two-dimensional code consisting of black and white "cells" or dots arranged in either a square or rectangular pattern, also known as a matrix. The information to be encoded can be text or numeric data. Usual data size is from a few bytes up to 1556 bytes. The length of the encoded data depends on the number of cells in the matrix. Error correction codes are often used to increase reliability: even if one or more cells are damaged so it is unreadable, the message can still be read. A Data Matrix symbol can store up to 2,335 alphanumeric characters.
The C0 and C1 control code or control character sets define control codes for use in text by computer systems that use ASCII and derivatives of ASCII. The codes represent additional information about the text, such as the position of a cursor, an instruction to start a new line, or a message that the text has been received.
A card reader is a data input device that reads data from a card-shaped storage medium. The first were punched card readers, which read the paper or cardboard punched cards that were used during the first several decades of the computer industry to store information and programs for computer systems. Modern card readers are electronic devices that can read plastic cards embedded with either a barcode, magnetic strip, computer chip or another storage medium.
High Capacity Color Barcode (HCCB) is a technology developed by Microsoft for encoding data in a 2D "barcode" using clusters of colored triangles instead of the square pixels conventionally associated with 2D barcodes or QR codes. Data density is increased by using a palette of 4 or 8 colors for the triangles, although HCCB also permits the use of black and white when necessary. It has been licensed by the ISAN International Agency for use in its International Standard Audiovisual Number standard, and serves as the basis for the Microsoft Tag mobile tagging application.
David Allais is an American expert and inventor in the fields of bar coding and automatic identification and data capture. As vice president and later president and chief executive officer of Everett, Washington-based Intermec Inc. (NYSE:IN), he built the company from a small startup into the leading manufacturer of bar code and printing equipment. Prior to Allais' role at Intermec, he served as a manager for IBM. Most recently, Allais founded PathGuide Technologies, a Bothell, Washington-based developer of warehouse management systems for distributors.
The GS1 Databar Coupon code has been in use in retail industry since the mid-1980s. At first, it was a UPC with system ID 5. Since UPCs cannot hold more than 12 digits, it required another bar code to hold additional information like offer code, expiration date and household ID numbers. Therefore, the code was often extended with an additional UCC/EAN 128 bar code. EAN 13 was sometimes used instead of UPC, and because it starts with 99, it was called the EAN 99 coupon barcode, and subsequently GS1 DataBar. After more than 20 years in use, there is now a need to encode more data for complex coupons, and to accommodate longer company IDs, so the traditional coupon code has become less efficient and sometimes not usable at all.
Barcode library or Barcode SDK is a software library that can be used to add barcode features to desktop, web, mobile or embedded applications. Barcode library presents sets of subroutines or objects which allow to create barcode images and put them on surfaces or recognize machine-encoded text / data from scanned or captured by camera images with embedded barcodes. The library can support two modes: generation and recognition mode, some libraries support barcode reading and writing in the same way, but some libraries support only one mode.
Industrial 2 of 5. is a variable length, discrete, two width symbology. Industrial 2 of 5 is a subset of two-out-of-five codes.
Codablock is a family of stacked 1D barcodes which was invented in Identcode Systeme GmbH in Germany in 1989 by Heinrich Oehlmann. Codablock barcodes are based on stacked Code 39 and Code 128 symbologies and have some advantages of 2D barcodes.
Matrix 2 of 5 is a variable length, discrete, two width symbology. Matrix 2 of 5 is a subset of two-out-of-five codes. Unlike Industrial 2 of 5 code, Matrix 2 of 5 can encode data not only with black bars but with white spaces.