1. Scope
This document describes the Totinfo decoded-data packet format, including 1D and 2D packet structures, field definitions, symbology code values, checksum calculation, configuration barcodes, decoded-output examples, and host acknowledgment requirements.
2. Data Packet Format Overview
The Packet Data Format is a structured output method in which the scanner uploads decoded data as protocol packets instead of raw decoded text. This format is recommended when the host application requires reliable, bidirectional, protocol-level integration.
| Feature | Engineering Value |
| Checksum protection | Each packet contains a two-byte checksum to help prevent undetected data transmission errors. |
| Retransmission capability | If the scanner does not receive a host ACK within the specified timeout, it can retransmit the decoded-data packet. |
| SDK integration | The Totinfo SDK can parse packet instructions internally. The host application can register a callback function to receive decoded data with minimal integration code. |
3. Packet Communication Requirement
After receiving a decoded-data packet, the host must return the ACK packet within 3 seconds. If no ACK is received within this period, the scanner may treat the packet as unacknowledged and attempt retransmission.
| Direction | Packet | Description |
| Scanner -> Host | Decoded-data packet | The scanner sends the decoded barcode result using the selected packet structure. |
| Host -> Scanner | 04 D0 04 00 FF 28 | ACK returned by the host after successful packet reception. |
4. 1D Barcode Packet Format (SSI Structure)
| Length | Opcode | Source | Status | Barcode Type | Decoded Data | Checksum |
| 0xF3 | 0x00 |
| Format | Sub-field/Value | Meaning | |
| Length | 1 Byte | Length | Does not include the checksum bytes; Max value is 0xFF | |
| Opcode | 1 Byte | 0xF3 | Identifies the data as a 1D barcode. | |
| Message Source | 1 Byte | 0x00 | 0x00 identifies the source as the barcode reader. | |
| Status | Bit 0 | Retransmission | 0 = First transmission; 1 = Retransmission attempt. | |
| Bits 1 – 7 | Reserved | Always set to 0. | ||
| Barcode Type | 1 Byte | Symbology Table | Refer to the Barcode Type Table. | |
| Decoded Data | Data | Data content does not include the two checksum bytes | Checksum formatted as High Byte first, then Low Byte.
| |
| Checksum | 2 Bytes | Data content does not include the two checksum bytes | Checksum formatted as High Byte first, then Low Byte. |
5. 2D Barcode Packet Format (SSI Extension Structure)
| Identifier 0xFF | Opcode1 | Length High Byte | Length Low Byte | Opcode 2 | Source | Status | Data | Checksum |
| 0xFF | 0xF4 | 0xF4 | 0x00 |
| Field Name | Format | Sub-field | Meaning |
| Identifier | 1 Byte | Length 1 | Fixed value: 0xFF |
| Opcode 1 | 1 Byte | See Table 2-1 | Identifies the type of data packet transmitted. |
| Length | 2 Bytes | Packet Length | Length 2 is 2 bytes; High Byte first, Low Byte last. |
| Opcode 2 | 1 Byte | See Table 2-1 | Same as Opcode 1. |
| Source | 1 Byte | 0x00: Engine 0x04: Host | Identifies the source of the information. |
| Status | Bit 0 | Retransmission | 0 =First transmission of the data packet 1 =Subsequent transmission attempt. |
| Bits 4 – 7 | Reserved | Unused bits must be set to 0 | |
| Barcode Type | 1 Byte | Symbology Table | Refer to the 2D Symbology Table. |
| Data | Variable Bytes | Please refer to the details of each section. | |
| Checksum | 2 Bytes | Data content does not include the two checksum bytes | The checksum information is formatted as High Byte followed by Low Byte |
6. Symbology Code Table
| Symbology | Hex Value | Symbology | Hex Value |
| Not Applicable | 0x00 | EAN 13 with 5 Supps. | 0x8B |
| Code 39 | 0x01 | EAN 13 | 0x0B |
| Codabar | 0x02 | EAN 13 with 2 Supps. | 0x4B |
| Code 128, Setup128 | 0x03 | EAN 13 with 5 Supps. | 0x8B |
| Discrete 2 of 5 | 0x04 | MSI | 0x0E |
| IATA 2 of 5 | 0x05 | GS1-128 | 0x0F |
| Interleaved 2 of 5 | 0x06 | UPC E1 | 0x10 |
| Code 93 | 0x07 | UPC E1 with 2 Supps. | 0x50 |
| UPC A | 0x08 | UPC E1 with 5 Supps. | 0x90 |
| UPC A with 2 Supps. | 0x48 | Trioptic Code 39 | 0x15 |
| UPC A with 5 Supps. | 0x88 | Bookland EAN | 0x16 |
| UPC E0 | 0x09 | Coupon Code | 0x17 |
| UPC E0 with 2 Supps. | 0x49 | GS1 DataBar-14 | 0x30 |
| UPC E0 with 5 Supps. | 0x89 | GS1 DataBar Limited | 0x31 |
| EAN 8 | 0x0A | GS1 DataBar Expanded | 0x32 |
| EAN 8 with 2 Supps | 0x4A | Code11 | 0x0C |
| EAN 8 with 5 Supps | 0x8A | PDF417 | 0xF0 |
| QR | 0xF1 | Data Matrix(DM) | 0xF2 |
| Aztec Code | 0xF3 | Maxi Code | 0xF4 |
| Veri Code | 0xF5 | Han Xin | 0xF7 |
| AIM128 | 0xA2 | ISSN | 0xA3 |
| PLESSEY | 0xA4 |
7. Checksum Algorithm
The checksum is calculated as the two’s complement of the byte sum over the packet content excluding the checksum bytes. The checksum is transmitted as high byte first, followed by low byte.
| unsigned short _cts_checksum(unsigned char *pData, unsigned short usLen) { unsigned short usSum = 0;if ((pData == NULL) || (0 == usLen)) return 0; while (usLen–) return ((~usSum) + 1); |
8. Output Format Setting Codes
Parameter number: 0xEE. Scan one of the following configuration barcodes to select raw decoded data output or packet decoded data output.
| Configuration Item | Barcode Data | Parameter Value | Configuration Barcode |
| Send Raw Decoded Data | 1040610 | 0x00 | ![]() |
| Send Decoded Data Packet | 1040611 | 0x01 | ![]() |
9. Decoded Packet Examples
9.1 Example 1: 1D Barcode Decoded Data Packet (Codabar)

Decoded output:
| 0F F3 00 00 02 32 31 34 37 34 38 33 36 34 37 FC EE |
| Byte(s) | Value | Meaning |
| Byte 1 | 0x0F | Length = 15. The checksum bytes are excluded. |
| Byte 2 | 0xF3 | Opcode for 1D barcode decoded data. |
| Byte 3 | 0x00 | Message source: scanner. |
| Byte 4 | 0x00 | Status: first transmission. |
| Byte 5 | 0x02 | Barcode type: Codabar. |
| Byte 6 and later | 32 31 34 37 34 38 33 36 34 37 | Decoded data bytes, representing 2147483647. |
| Last 2 bytes | FC EE | Checksum. |
Note: The host must reply with ACK 04 D0 04 00 FF 28 within 3 seconds.
9.2 Example 2: 2D Barcode Decoded Data Packet (QR Code)

Decoded output:
| FF F4 00 12 F4 00 00 F1 32 31 34 37 34 38 33 36 34 37 FA 08 |
| Byte(s) | Value | Meaning |
| Byte 1 | 0xFF | Identifier / fixed frame header. |
| Byte 2 | 0xF4 | Opcode 1. |
| Bytes 3-4 | 00 12 | Length = 0x0012. The checksum bytes are excluded. |
| Byte 5 | 0xF4 | Opcode 2; must match Opcode 1. |
| Byte 6 | 0x00 | Message source: scanner. |
| Byte 7 | 0x00 | Status: first transmission. |
| Byte 8 | 0xF1 | Barcode type: QR Code. |
| Byte 9 and later | 32 31 34 37 34 38 33 36 34 37 | Decoded data bytes, representing 2147483647. |
| Last 2 bytes | FA 08 | Checksum. |
10. Data Packet Interaction Flow


