Barcode Scanning
Scanners with bidirectional interface (such as the one integrated in the MC3090 Handheld Computer) get programmed automatically by BPS.
Scanners looped into the keyboard stream need to be programmed manually before using them with BPS. The scanner should send STX CI DATA ETX, where STX is Ctrl-B, CI is the Code Identifier from the table below, DATA is the scanned data (either with or without check char, see notes in table below), and ETX is Ctrl-C.
Testing by manual keyboard entry
For testing it is useful when scanner input can be simulated by normal keyboard strokes. However BPS expects that the scanner input introduced by STX is completed by ETX within a certain period, and times out after reaching the limit reverting back to regular keyboard operation. This timeout, normally a few seconds, can be increased in the BPS settings if you want to simulate the scanner input. In the folder
Central System Settings
Scanning
Keyboard
is the key Timeout. The period in seconds can be adjusted so you can comfortably enter the record manually for the tests. On a production PC the timeout should be set back to a few seconds after completion of the tests.
Setting the bar codes zu accept
The application needs to know, which bar code type should be accepted for a certain data type. These informations are stored in the BPS settings in the following folder:
Central System Settings
Scanning
Within this folder, the key Display time gives the number of seconds to display the scan result when picking.
The other keys define what codes shall be accepted as a certain content. Each of the values may be a single code, or comma separated list of codes to accept.
Examples:
| Value | Meaning |
|---|---|
EAN8,EAN13,RSS14 | Accept EAN 8, EAN 13 or RSS 14 |
EAN128(91),39 | Accept content of AI 91 in an EAN 128 code, or a Code 39 |
128(512) | Accept 12 characters of a Code 128 starting at character 5 (0 based index) |
While the AI of EAN 128 is obvious, the use of a value in paranthesis after other code types, as in the third example, needs some explanation: The lowest two digits (unit and ten's place) define the number of characters to extract, and the upper digits specify the starting index (0 based). So a value of 1020 means “start at position 10 and return 20 characters” and a value of 5 means “start at position 0 and return 5 characters”.
Examples:
| Code | Data | Matched value |
|---|---|---|
| EAN128(91) | (13)111209(91)ABCD | ABCD |
| EAN128(93) | (13)111209(91)ABCD | No match: no such AI |
| 128(5) | 1234567890 | 12345 |
| 39(204) | 1234567890 | 3456 |
| 2of5(920) | 1234567890 | No match: data too short |
Supported Barcode Types
| BPS Name | Description | Notes | CI |
|---|---|---|---|
| EAN128 | EAN-128/GS1-128 | 2,4,5 | k |
| EAN13 | EAN-13 | 1 | B |
| EAN13_2 | EAN-13 plus 2 digit supplemental code | 1 | L |
| EAN13_5 | EAN-13 plus 5 digit supplemental code | 1 | M |
| EAN8 | EAN-8 | 1 | A |
| EAN8_2 | EAN-8 plus 2 digit supplemental code | 1 | J |
| EAN8_5 | EAN-8 plus 5 digit supplemental code | 1 | K |
| UPCA | UPC-A | 1 | C |
| UPCA_2 | UPC-A plus 2 digit supplemental code | 1 | F |
| UPCA_5 | UPC-A plus 5 digit supplemental code | 1 | G |
| UPCE | UPC-E | 1 | D |
| UPCE_2 | UPC-E plus 2 digit supplemental code | 1 | H |
| UPCE_5 | UPC-E plus 5 digit supplemental code | 1 | I |
| RSSEXP | RSS-14 expanded GS1 databar expanded | t | |
| RSS14 | RSS-14 GS1 databar omnidirectional | u | |
| RSSLIM | RSS limited GS1 databar limited | v | |
| 128 | Code 128 | 4 | T |
| 2of5 | Interleaved 2 of 5 | N | |
| 2of5C | Interleaved 2 of 5 with check char | 2 | N |
| 39 | Code 39 no check char | V | |
| 39C | Code 39 with check char | 2 | V |
| 39E | Extended Code 39 no check char | 4 | W |
| 39EC | Extended Code 39 with check char | 2,4 | W |
Notes:
(1) Check char transmitted
(2) Check char not transmitted
(3) Set of 43 chars encoded: 0…9 A…Z - . SPACE $ / + %
(4) Set of 128 chars encoded: ASCII 0…127. FNC1 encoded as GS (Ctrl-])
(5) Application Identifier added in parentheses to the BPS name, for example EAN128(91) = AI 91
Supported EAN128 Application Identifiers
AI:
x = digit for length indication
y = digit for decimal point indication
Type:
n = numeric (0-9)
a = alphanumeric
FNC1:
no = never, always all length used
yes = only if content is shorter than maximum length and not last AI of the code
| AI | Description | Type | Min length | Max length | FNC1 |
|---|---|---|---|---|---|
| 00 | SSCC - Serial Shipping Container Code | n | 18 | 18 | no |
| 01 | GTIN - Global Trade Item Number | n | 14 | 14 | no |
| 02 | GTIN of trade items contained in a logistic unit | n | 14 | 14 | no |
| 10 | Batch or lot number | a | 1 | 20 | yes |
| 11 | Production date (YYMMDD) | n | 6 | 6 | no |
| 12 | Due date (YYMMDD) | n | 6 | 6 | no |
| 13 | Packaging date (YYMMDD) | n | 6 | 6 | no |
| 15 | Best before date (YYMMDD) | n | 6 | 6 | no |
| 17 | Expiration date (YYMMDD) | n | 6 | 6 | no |
| 20 | Product variant | n | 2 | 2 | no |
| 21 | Serial number | a | 1 | 20 | yes |
| 22 | Secondary data for specific health industry products | a | 1 | 29 | no |
| 23x | Lot number (transitional use) | n | 1 | 19 | yes |
| 240 | Additional product id assigned by the manufacturer | a | 1 | 30 | yes |
| 241 | Customer part number | a | 1 | 30 | yes |
| 242 | Customer variant number | n | 1 | 6 | yes |
| 250 | Secondary serial number | a | 1 | 30 | yes |
| 251 | Reference to source entity | a | 1 | 30 | yes |
| 252 | Global identifier serialized for trade | n | 2 | 2 | no |
| 253 | Global document type identifier | n | 1 | 30 | yes |
| 254 | GLN extension component | a | 1 | 20 | yes |
| 30 | Variable count | n | 1 | 8 | yes |
| 310y | Net weight, kilograms | n | 6 | 6 | no |
| 311y | Length or 1st dimension, meters | n | 6 | 6 | no |
| 312y | Width, diameter or 2nd dimension, meters | n | 6 | 6 | no |
| 313y | Depth, thickness, height or 3rd dimension, meters | n | 6 | 6 | no |
| 314y | Area, square meters | n | 6 | 6 | no |
| 315y | Net volume, liters | n | 6 | 6 | no |
| 316y | Net volume, cubic meters | n | 6 | 6 | no |
| 320y | Net weight, pounds | n | 6 | 6 | no |
| 321y | Length or 1st dimension, inches | n | 6 | 6 | no |
| 322y | Length or 1st dimension, feet | n | 6 | 6 | no |
| 323y | Length or 1st dimension, yards | n | 6 | 6 | no |
| 324y | Width, diameter or 2nd dimension, inches | n | 6 | 6 | no |
| 325y | Width, diameter or 2nd dimension, feet | n | 6 | 6 | no |
| 326y | Width, diameter or 2nd dimension, yards | n | 6 | 6 | no |
| 327y | Depth, thickness, height or 3rd dimension, inches | n | 6 | 6 | no |
| 328y | Depth, thickness, height or 3rd dimension, feet | n | 6 | 6 | no |
| 329y | Depth, thickness, height or 3rd dimension, yards | n | 6 | 6 | no |
| 330y | Gross weight, kilograms | n | 6 | 6 | no |
| 331y | Length or 1st dimension, meters, logistics | n | 6 | 6 | no |
| 332y | Width, diameter or 2nd dimension, meters, logistics | n | 6 | 6 | no |
| 333y | Depth, thickness, height or 3rd dimension, meters, logistics | n | 6 | 6 | no |
| 334y | Area, square meters, logistics | n | 6 | 6 | no |
| 335y | Gross volume, liters | n | 6 | 6 | no |
| 336y | Gross volume, cubic meters | n | 6 | 6 | no |
| 337y | Kilograms per square meter | n | 6 | 6 | no |
| 340y | Gross weight, pounds | n | 6 | 6 | no |
| 341y | Length or 1st dimension, inches, logistics | n | 6 | 6 | no |
| 342y | Length or 1st dimension, feet, logistics | n | 6 | 6 | no |
| 343y | Length or 1st dimension, yards, logistics | n | 6 | 6 | no |
| 344y | Width, diameter or 2nd dimension, inches, logistics | n | 6 | 6 | no |
| 345y | Width, diameter or 2nd dimension, feet, logistics | n | 6 | 6 | no |
| 346y | Width, diameter or 2nd dimension, yards, logistics | n | 6 | 6 | no |
| 347y | Depth, thickness, height or 3rd dimension, inches, logistics | n | 6 | 6 | no |
| 348y | Depth, thickness, height or 3rd dimension, feet, logistics | n | 6 | 6 | no |
| 349y | Depth, thickness, height or 3rd dimension, yards, logistics | n | 6 | 6 | no |
| 350y | Area, square inches | n | 6 | 6 | no |
| 351y | Area, square feet | n | 6 | 6 | no |
| 352y | Area, square yards | n | 6 | 6 | no |
| 353y | Area, square inches, logistics | n | 6 | 6 | no |
| 354y | Area, square feet, logistics | n | 6 | 6 | no |
| 355y | Area, square yards, logistics | n | 6 | 6 | no |
| 356y | Net weight, troy ounces | n | 6 | 6 | no |
| 357y | Net volume, ounces (US) | n | 6 | 6 | no |
| 360y | Net volume, quarts | n | 6 | 6 | no |
| 361y | Net volume, gallons | n | 6 | 6 | no |
| 362y | Gross volume, quarts | n | 6 | 6 | no |
| 363y | Gross volume, gallons (US) | n | 6 | 6 | no |
| 364y | Net volume, cubic inches | n | 6 | 6 | no |
| 365y | Net volume, cubic feet | n | 6 | 6 | no |
| 366y | Net volume, cubic yards | n | 6 | 6 | no |
| 367y | Gross volume, cubic inches | n | 6 | 6 | no |
| 368y | Gross volume, cubic feet | n | 6 | 6 | no |
| 369y | Gross volume, cubic yards | n | 6 | 6 | no |
| 37 | Count of trade items contained in a logistic unit | n | 1 | 8 | yes |
| 390y | Amount payable - single monetary area | n | 1 | 15 | yes |
| 391y | Amount payable - ISO currency | n | 4 | 18 | yes |
| 392y | Amount payable for a trade item - single monetary unit | n | 1 | 15 | yes |
| 393y | Amount payable for a trade item - ISO currency | n | 4 | 18 | yes |
| 400 | Customer's purchase order number | a | 1 | 30 | yes |
| 401 | Consignment number | a | 1 | 30 | yes |
| 402 | Shipment identification number | n | 17 | 17 | no |
| 403 | Routing code | a | 1 | 30 | yes |
| 410 | Ship to - deliver to EAN/UCC global location number | n | 13 | 13 | no |
| 411 | Bill to - invoice to EAN/UCC global location number | n | 13 | 13 | no |
| 412 | Purchased from EAN/UCC global location number | n | 13 | 13 | no |
| 413 | Ship for - deliver for - forward to EAN/UCC GLN | n | 13 | 13 | no |
| 414 | Identification of a physical location EAN/UCC GLN | n | 13 | 13 | no |
| 415 | EAN/UCC Global Location Number of the invoicing party | n | 13 | 13 | no |
| 420 | Ship/deliver to postal cd within a single postal authority | a | 1 | 20 | yes |
| 421 | Ship/deliver to postal cd with 3-digit ISO country code | n | 1 | 12 | yes |
| 422 | Country of origin of a trade item | n | 3 | 3 | no |
| 423 | Country of initial processing | n | 4 | 12 | yes |
| 424 | Country of processing | n | 3 | 3 | no |
| 425 | Country of disassembly | n | 3 | 3 | no |
| 426 | Country covering full process chain | n | 3 | 3 | no |
| 7001 | NATO stock number | n | 13 | 13 | no |
| 7002 | UN/ECE meat carcasses and cuts classification | a | 1 | 30 | yes |
| 7003 | Expiry Time: YYMMDDHHmm | n | 10 | 10 | no |
| 703s | Approval number of processor with ISO country code | a | 1 | 30 | yes |
| 8001 | Roll products: Width,Length,Core Diam, Direct. and Splices | n | 14 | 14 | no |
| 8002 | Electronic serial identifier for cellular mobile telephones | a | 1 | 20 | yes |
| 8003 | Global returnable asset identifier | a | 1 | 34 | yes |
| 8004 | Global individual asset identifier | a | 1 | 30 | yes |
| 8005 | Price per unit of measure | n | 6 | 6 | no |
| 8006 | Identification of the component of a trade item | n | 18 | 18 | no |
| 8007 | International Bank Account Number (IBAN) | a | 1 | 30 | yes |
| 8008 | Date and time of production | n | 9 | 12 | yes |
| 8018 | Global service relation number | n | 18 | 18 | no |
| 8020 | Payment slip reference number | a | 25 | 25 | no |
| 8100 | Coupon extended code - NSC + offer code | n | 10 | 10 | no |
| 8101 | Coupon extended code - NSC + offer code + end of offer Code | n | 14 | 14 | no |
| 8102 | Coupon extended code - NSC | n | 6 | 6 | no |
| 8110 | Coupon code North America | a | 1 | 30 | yes |
| 90 | Mutually agreed, between trading partners | a | 1 | 30 | yes |
| 91 | Inter-company (internal) | a | 1 | 30 | yes |
| 92 | Inter-company (internal) | a | 1 | 30 | yes |
| 93 | Inter-company (internal) | a | 1 | 30 | yes |
| 94 | Inter-company (internal) | a | 1 | 30 | yes |
| 95 | Inter-company (carrier use in North America) | a | 1 | 30 | yes |
| 96 | Inter-company (carrier use in North America) | a | 1 | 30 | yes |
| 97 | Inter-company (internal) | a | 1 | 30 | yes |
| 98 | Inter-company (internal) | a | 1 | 30 | yes |
| 99 | Internal | a | 1 | 30 | yes |
