Bar Code Scanner Details... Version 1.1.22 (Version 1.1.22 corrects one error in coupon value codes from version 1.1.21) The scanner firmware decodes many of the common 1D (1-dimensional) bar code symbologies. It has been tested with the following symbologies... UPC A UPC A + 2 digit supplemental UPC A + 5 digit supplemental UPC E (Shown both compressed and expanded) EAN 13 (European Article Numbering) EAN 13 + 2 digit supplemental EAN 13 + 5 digit supplemental EAN 8 JAN 13 (Japanese Article Numbering) JAN 13 + 2 digit supplemental JAN 13 + 5 digit supplemental ISBN (International Standard Book Number) ISBN + 2 digit supplemental ISBN + 5 digit supplemental ISSN (International Standard Serial Number for periodicals) ISSN + 2 digit supplemental ISSN + 5 digit supplemental ISMN (International Standard Music Number) ISMN + 2 digit supplemental ISMN + 5 digit supplemental Code 39 Code 128 Interleaved 2-of-5 Codabar cue:Cat scanner proprietary (CC!) cue:Cat scanner proprietary (CC^) The scanner provides a 3-character code for the bar code type. I provide a spelled-out description of the symbologies listed above, and just the 3- character code for any others. If you see another 3-character code, let me know and I'll try to determine what symbology it is and add it to the program. The cue:Cat scanner's own proprietary bar codes, seen in some magazine ads and some electronics stores' catalogs (in 2000) had 3-letter codes which began with 'CC'. So far, I've seen 'CC!' and 'CC^' ... there may be others. For symbologies where the data is typically printed in groups of digits under the bar code (UPC, EAN, etc.) the display of the data has spaces inserted to group the decoded digits in a similar fashion for readability. UPC A bar codes on coupons contain a code defining the value of the coupon. This is displayed by the program using data from the Uniform Code Council which is current as of July 2001. The first two or three digits of an EAN-13 barcode identify the country in which the manufacturer's identification code was assigned (not necessarily the country in which the goods were manufactured). This information is displayed from data which is current as of 2002. UPC E is a special case, smaller footprint version of the UPC bar code where for certain kinds of data containing many zeros, the zeros may be removed, with the last digit determining the method of restoring the missing zeros to produce the equivalent full-sized UPC A value. (All UPC E bar codes represent a 'zero-suppressed' version of a legitemate UPC A code.) The display of a scanned UPC E bar code will be shown compressed and expanded. The scanned data is also placed in the Windows Clipboard (without added spaces) so that it may be pasted into other Windows applications. The scanner is a 'keyboard wedge' device - the encrypted scan data enters the PC as though it had been typed in on the keyboard. This program receives that input in the text-entry area at the bottom of the window and decrypts and processes the data when the last character from the scanner, a Carriage-Return character, 'pushes' the [Input:] button in the lower-left corner of the window, which is the window's 'default' button (thicker black border than the other button). The program works when the text-entry area has the 'focus' and the [Input:] button is the default botton. (The program starts this way.) You can 'Tab' to the [Quit] button, and both the focus and the default will shift to that button allowing you to exit without using the mouse. Tab again, and the focus returns to the text-entry area while the default returns to the [Input:] button - and you are ready to scan again. This program must be the currently-selected Windows foreground program when scanning. If you click on another program's window then it will become the foreground program and it will receive all keyboard input. Therefore, if you are scanning and pasting data into, say, a word processor, then be sure to click on this program's window (or Alt-Tab to switch programs) to get back to this program, or the next scan's raw encrypted data will be 'keyed into' the other program. The 'Always on Top' selection of the Options menu will cause the scanner window to remain visible in front of other windows when checked. The 'Append to Clipboard Data...' selection of the Options menu controls adding a tab character, a Carriage-Return/Line-Feed sequence, or nothing (the default) to the end of the data in the clipboard to aid in using the pasted data in a data entry setting. Scanner defficiencies... ISBN and ISSN are actually EAN 13 bar codes beginning with 977 (ISSN) and 978 or 979 (ISBN). The scanner correctly recognizes ISSN and the 978-style ISBN but identifies the 979-style ISBN an ordinary EAN 13. I check the first three digits of EAN 13 bar codes and correctly identify the 979-style ISBN codes. JAN is actually EAN beginning with 45 or 49 (the EAN country codes for Japan). The scanner correctly recognizes 49 as JAN but identifies 45 as an ordinary EAN 13. I check the first two digits of EAN 13 bar codes and correctly identify the 45-style JAN codes. The scanner does not decode the check digit in a UPC E bar code. A UPC E bar code has a start code, six data characters, and a stop code. The check digit is encoded in the choice of odd-parity and even-parity characters used for the six data characters. I provide what the checksum SHOULD be, and a message to the effect that the check sum character is not decoded by the scanner when a UPC E is scanned. (The 'Number System' character for UPC E is always zero, and is not encoded, but rather is assumed to be present. The scanner does correctly invent the zero and place it at the beginning of the decoded data.) The scanner does not decode which of the five possible start and stop characters (A, B, C, D, or E) was used in a Codabar bar code. Codabar is a numeric bar code symbology, and the choice of start and stop characters can be used to encode additional information. I provide a message to the effect that the start and stop codes used were not decoded. Other information... This program enables the use of the cue:Cat scanner as a general-purpose bar code scanner and symbology-identifying tool. This program provides no functionality related in any way to the scanning of the proprietary (type 'CCx') bar codes in connection with Web browsing technology for purposes of going to the scanned advertizer's web site or collecting demographic information about the visitor to such a web site - a technology for which Digital:Convergence® Corporation holds a patent. Therefore, this software also cannot be used to defeat the collecting of such demographic information, as it contains no means to implement the visiting of the scanned advertizer's sites, and it makes no attempt to hide or scramble the unit serial number which is returned from the unit on every scan. This program, the source code, and the VisualBasic® 6.0 Project files are placed in the Public Domain. The original source for the Visual Basic project I started with is in 'meow.zip' available on several Internet sites. It has the basic symbol decoding. Thanks to that (anonymous) author for coding the decryption, and for showing me the technique of making a 'default button' to catch the enter-key at the end of the scanner string. I used my own several years' experience working with bar codes to flesh out the program to clarify the symbology types, format some types for readability, and to identify the three scanner defects described above. Having looked at most of the available Windows programs for this scanner, I believe this to be the most full-featured program with regard to using this device as a general-purpose bar code scanner. The latest version may be found at my web site... http://ChuckSomerville.com/ ...and you can E-mail questions or comments to... chucksomer@gmail.com