A CueCat device is able to read the following barcodes :

--------------------------------------------------------------------------------
Barcode type				: UPC-E
3-letter code returned by the CueCat	: UPE
Example of printed barcode value	: 012345	(printed by GNU barcode)
Value returned by the driver		: 0012345
Example of printed barcode value	: 0-499770-4	(real barcode)
Value returned by the driver		: 0499770

Comment :

With previous versions of the driver, many people told me that the driver drops
the last digit from UPC-E barcodes : in fact, the CueCat itself doesn't send
that last digit. After much debating, I came to the conclusion that this is a
firmware bug from the CueCat. Fortunately, this missing digit is the barcode
check digit, so it's possible to reconstruct it from the barcode data, which is
what the driver does now.
--------------------------------------------------------------------------------
Barcode type				: UPC-A
3-letter code returned by the CueCat	: UPA
Example of printed barcode value	: 0-1234567890-5
Value returned by the driver		: 012345678905

Comment :

The trailing digit is the barcode check digit.
--------------------------------------------------------------------------------
Barcode type				: UPC-A, add 2
3-letter code returned by the CueCat	: UP2
Example of printed barcode value	: 0-1234567890-5 01
Value returned by the driver		: 01234567890501

Comment :

The trailing digit of the main barcode value is the barcode check digit.
--------------------------------------------------------------------------------
Barcode type				: EAN-8
3-letter code returned by the CueCat	: E08
Example of printed barcode value	: 0123-4565
Value returned by the driver		: 01234565

Comment :

The trailing digit is the barcode check digit.

The CueCat doesn't performs very well on standard sized barcodes and only reads
accurately larger barcodes.
--------------------------------------------------------------------------------
Barcode type				: EAN-13
3-letter code returned by the CueCat	: E13
Example of printed barcode value	: 4600448100322
Value returned by the driver		: 4600448100322

Comment :

The CueCat doesn't performs very well on standard sized barcodes and only reads
accurately larger barcodes.
--------------------------------------------------------------------------------
Barcode type				: JAN-13
3-letter code returned by the CueCat	: J13
Example of printed barcode value	: 4901616006997
Value returned by the driver		: 4901616006997

Comment :
--------------------------------------------------------------------------------
Barcode type				: EAN-128
3-letter code returned by the CueCat	: N/A
Example of printed barcode value	: N/A
Value returned by the driver		: N/A

Comment :

Leonid Broukhis has tried to create a EAN-128 code with GNU barcode and the
CueCat doesn't seem to read it. He's unsure if the problem comes from GNU
barcode or the CueCat. This is to be verified.
--------------------------------------------------------------------------------
Barcode type				: ISBN
3-letter code returned by the CueCat	: IBN
Example of printed barcode value	: 9-780123-456786
Value returned by the driver		: 9780123456786

Comment :

The 3 first digits are always "978". The trailing digit is the barcode check
digit.
--------------------------------------------------------------------------------
Barcode type				: ISBN, add 5
3-letter code returned by the CueCat	: IB5
Example of printed barcode value	: 9-780123-456786 01234
Value returned by the driver		: 978012345678601234

Comment :

The 3 first digits are always "978". The trailing digit of the main barcode
value is the barcode check digit.
--------------------------------------------------------------------------------
Barcode type				: CODE128
3-letter code returned by the CueCat	: 128
Example of printed barcode value	: This is a test
Value returned by the driver		: This is a test

Comment :

The CueCat cannot read CODE128 barcodes of more than 19 characters.

The CueCat performs very badly on standard sized barcodes and only reads
accurately large barcodes.

The CueCat handles switching on the fly with the SHIFT symbol.
--------------------------------------------------------------------------------
Barcode type				: CODE128-B
3-letter code returned by the CueCat	: 128
Example of printed barcode value	: This is a test
Value returned by the driver		: This is a test

Comment :

The CueCat cannot read CODE128-B barcodes of more than 19 characters.

The CueCat performs very badly on standard sized barcodes and only reads
accurately large barcodes.

The CueCat handles switching on the fly with the SHIFT symbol.
--------------------------------------------------------------------------------
Barcode type				: CODE128-C
3-letter code returned by the CueCat	: 128
Example of printed barcode value	: 0123456789
Value returned by the driver		: 0123456789

Comment :

The CueCat cannot read CODE128-C barcodes of more than 38 digits.

The CueCat performs very badly on standard sized barcodes and only reads
accurately large barcodes.

The CueCat handles switching on the fly with the SHIFT symbol.
--------------------------------------------------------------------------------
Barcode type				: CODE39
3-letter code returned by the CueCat	: C39
Example of printed barcode value	: FOO.BAR
Value returned by the driver		: FOO.BAR

Comment :

If a check digit is in use, the trailing digit is the barcode check digit.

The CueCat cannot read CODE39 barcodes of more than 11 characters, including
the check digit if in use.
--------------------------------------------------------------------------------
Barcode type				: Interleaved 2 of 5
3-letter code returned by the CueCat	: ITF
Example of printed barcode value	: 012345678	(with check digit)
Value returned by the driver		: 0123456784
Example of printed barcode value	: 0123456789	(without check digit)
Value returned by the driver		: 0123456789

Comment :

The barcode has to have an even number of digits, including the check digit if
it is used. When a check digit is used, the trailing digit returned by the
driver is the check digit.

The CueCat cannot read interleaved 2 of 5 barcodes of more than 20 digits.

The CueCat performs very badly on standard sized barcodes and only reads
accurately large barcodes.
--------------------------------------------------------------------------------
Barcode type				: ITF-6
3-letter code returned by the CueCat	: ITF
Example of printed barcode value	: 012345
Value returned by the driver		: 012345

Comment :

The CueCat performs very badly on standard sized barcodes and only reads
accurately large barcodes.
--------------------------------------------------------------------------------
Barcode type				: Codabar
3-letter code returned by the CueCat	: CBR
Example of printed barcode value	:
Value returned by the driver		:

Comment :
--------------------------------------------------------------------------------
Barcode type				: Cue
3-letter code returned by the CueCat	: CC!
Example of printed barcode value	: C 01 00 00 01 00 00 86
Value returned by the driver		: "  !  v"

Comment :

Cues are the barcode format developed by DigitalConvergence.
The CueCat doesn't performs very well on Cues (how ironic).

DigitalConvergence have decided to print the codes in clear under the barcode
completely differently from regular barcodes. The leading "C 01" means that
the barcode is a "C"ue version 1, which can also be found in the "CC!" barcode
type : CC for "C"ue (or "C"ue"C"at, I don't know :) and '!' represents 1 (see
below).  The following double digit numbers are made of the corresponding ASCII
code returned in the barcode value by the CueCat, minus <SPACE> (32).

Unlike what some people seem to think, the barcode is an ASCII string in nature
and so the driver shouldn't rewrite it the way DigitalConvergence prints it
in clear under the barcode.

Update : it seems that a "Cue" is a deliberatly broken Code128 barcode
--------------------------------------------------------------------------------



The following 3-letter barcode types have been seen but not identified :

- "ERR" : supposedly returned by the CueCat when a read error occurs. It's been
          seen several times by several persons



A CueCat device cannot read barcodes of the following types :

- EAN-13, add 2 and EAN-13, add 5 : My tests seem to indicate that the CueCat
  mistakes then respectively for UPC-A, add 2 and UPC-A, add 5 barcodes, and
  returns the majority of the barcode value, apart the first digit and the check
  digit. However, Leonid Broukhis send me a scan of a working EAN-13 code, so
  I suspect the problem is in GNU barcode, and that the CueCat actually reads
  any EAN-13 code okay. To be confirmed.
- Extended CODE39
- CODE93
- 2 of 5
- MSI (Modified Plessey Code)
- PostNet
- RM4SCC
- 4-State
- SISAC

- Any 2D barcode
