Extended Channel Interpretation

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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.

Types of ECI indicator[edit]

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.

Encodable ECIs
These indicators are part of the message and define the format for all or part of the data, such as the intended character set or the data compression scheme that is in effect such as Gzip.
Signal ECIs
These indicators are not part of the message and they may either be embedded in the bar code symbol separately from the message or may not be present in the symbol at all but added by the reader at scan time. Signal ECIs are used to convey information about the processing of the data, such as whether it is a fragment of a multi-symbol scan process, whether an error condition occurred during reading, or even to provide environment information such as what ambient light level was measured or provide a low-battery indication.

Common use case: Enable support for international character sets[edit]

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]

Interpretative character set ECI indicator to code pages (or encodings)
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
\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
\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 US-ASCII
\000028 Big5
\000029 GB18030
\000030 EUC-KR


External links[edit]