No part of this publication may be reproduced or used in any form, or by any electrical or mechanical means,
without permission in writing from Zebra. This includes electronic or mechanical means, such as photo copying,
recording, or information storage and retrieval systems. The material in this manual is subject to change
without notice.
The software is provided strictly on an “as is” basis. All software, including firmware, furnished to the user is on
a licensed basis. Zebra grants to the user a non-transferable and non-exclusive license to use each software
or firmware program delivered hereunder (licensed program) . Except as n oted below, such licen se may not b e
assigned, sublicensed, or otherwise tran sfe rr e d by th e user without prior written consent of Zebra. No right to
copy a licensed program in whole or in part is granted, except as permitted under copyright law. The user shall
not modify , merge, or incorporate any for m or portion of a licensed program with other pro gram material, create
a derivative work from a licensed program , or us e a li censed program in a network without written permission
from Zebra. The user agrees to maintain Zebra’s copyright notice on the licensed programs delivered
hereunder , and to include the same on any au thorized copies it m akes, in whole or in part. The user agrees not
to decompile, disassemble, decode, or reverse engineer any licensed program delivered to the user or any
portion thereof.
Zebra reserves the right to make changes to any software or product to improve reliability, function, or design.
Zebra does not assume any product liability arising out of, or in connection with, the application or use of any
product, circuit, or application described herein.
No license is granted, either expressly or by implication, estoppel, or otherwise under any Zebra Technologies
Corporation, intellectual property rights. An implied license only exists for equipment, circuits, and su bsystems
contained in Zebra products.
Revision History
Changes to the original manual are listed below:
ChangeDateDescription
-01 Rev. A 5/2015Initial Release.
-02EN Rev. A 1/2021Added to ’Code Types and Identifiers’ and ’Code Types by SSI ID’ tables:
iii
GS1 QR
Mailmark
Dotcode
Multicode
UK Plessey
Grid Matrix
Telepen
UDI Parsed Code
Updated:
UPCA to UPC-A
UPCE to UPC-E
UPCE1 Change to UPC-E1
UPCA + 2 UPC-A + 2
UPC-E + 2 to UPC-E + 2
UPCA + 5 UPC-A + 5
UPCE + 5 to UPC-E + 5
UPCE1 + 5 - Change to UPC-E1 + 5
D25 to Discrete 2 of 5
ITF to Interleaved 2 of 5
C 2 of 5 to Chinese 2 of 5
Removed:
UPCD
Parameter (FNC3)
Decode Data from Custom Defaults
ivCordless SSI Programmer’s Guide
Table of Contents
Revision History............................................................................................................. iii
About This Guide
Introduction.................................................................................................................... i
Chapter Descriptions..................................................................................................... i
Notational Conventions.................................................................................................. ii
Confirm your PC/tablet/phone host supports Bluetooth Serial Port Profile (SPP). Your application issues
cordless SSI commands over the Bluetooth SPP connection.
Device Configuration - Scanner
A user must scan the SSI or cradle host parameter bar code to set the scanner's communication protocol.
When the scanner pairs to the host device, it sends data in an SSI format to the virtual com port over the
Bluetooth SPP connection.
2 - 2Cordless SSI Programmer’s Guide
CHAPTER 3 INTRODUCTION TO SIMPLE
SERIAL INTERFACE
Using SSI
Before attempting to use SSI, it is important to understand the following information about SSI.
•
The SSI interface provides a means for the host application to control the cordless scanner.
•
SSI is a half-duplex communication protocol.
•
SSI is transaction-based. The host application commands and the cordless scanner responds. For
example, the host application commands beep the beeper and the cordless scanner both beeps and
ACKs as a response. Acknowle dgments are vital for maintaining synchronization.
Software Handshaking
Software handshaking provides an ACK/NAK response for commands that do not h ave a natural response. For
example, the command tell me your parameters is followed by the response my parameters are X. However the
command start a decode session has no natural response. Therefore, software handshaking provides an
ACK/NAK response.
NOTE Hardware handshaking is not used for Cordless SSI.
Transfer of Decode Data
The cordless scanner sends a DECODE_DA T A me ssage after a successful decode. The cordless scanner waits
for 30 seconds time-out for a CMD_ACK response. If it does not receive the response, the cordless scanner
tries to send two more times before issuing a host transmission error. If the cordless scanner receives a
CMD_NAK from the host, it may attempt a retry depending on the cause field of the CMD_NAK message.
3 - 2Cordless SSI Programmer’s Guide
Expected Responses
T able 3-1, Table 3-2 o n page 3-3 and Table 3-3 on page 3-4 list allowable cordless scanner and host application
* Multipacketed data; the host may ACK/NAK only the last packet of a
multi-packeted message. Intermediate packets get no response.
Intermediate packets always have the continuation bit set (1). The last
packet has the continuation bit cleared (0). See
multi-packeting options.
CMD_ACK / CMD_NAK *
None
None
CMD_ACK / CMD_NAK
Multipacketing on page 3-4
for
Message Packets
All communications between the host application and the cordless scanner are exchanged in the form of
packets. A packet is a collection of bytes framed by the proper SSI protocol formatting bytes. The maximum
length of a packet is 257 bytes, consisting of a checksum (two bytes), a header (four bytes), and up to 251
characters of data. Note that the length field in the header does NOT include the length of the checksum, but
DOES include the length of the header itself.
3 - 4Cordless SSI Programmer’s Guide
Multipacketing
SSI supports multiple packets for one message for cases when size is insufficient to transfer a complete
message. Bit 1 of the status byte in the message header is set to one for all packets except the last to indicate
another packet follows. In the last packet, this bit is set to zero. The host application must re-assemble these
packets into one message.
The cordless scanner sends each packet in order.
The host application ACK/NAKs each packet in a strict transaction-based method. If a CMD_NAK checksum
message occurs, the cordless scanner retransmits the packet that was NAKd.
Packet Format
The general packet format for SSI messages is as follows:
LengthOpcodeMessage SourceStatusData...Checksum
Table 3-3
Field NameFormatSub-FieldMeaning
Length1 ByteLengthLength of message not including the check
Opcode1 ByteSee command list on
Message Source1 Byte0 = Cordless Scanner
StatusBit 0Retransmit0 = First time packet is sent
Field Descriptions
Bit 1Continuation0 = Last frame of a multipacket message
Bit 2ReservedAlways set to zero
Bit 33 Change Type (applies
page
Table 4-2 on page
4-3
.
04 = Host
to parameters)
sum bytes.
Maximum value is 0xFF.
Identifies the type of packet data sent
Identifies where the message is coming from
1 = Subsequent transmission attempts
1 =Intermediate packet of a multipacket
message
0 = Temporary change
1 = Permanent change
Bits 4 - 7Unused bits must be set to 0
Data…Variable
number of
bytes
Checksum2 Bytes2s complement sum of
Note: The checksum is a 2 byte checksum and must be sent as HIGH BYTE followed by LOW BYTE.
See individual sections
for details.
message contents
excluding checksum.
Checksum of message formatted as HIGH
BYTE LOW BYTE
Chapter 4 SSI Commands
Introduction
This chapter describes each available SSI command, including field descriptions and host and decoder
requirements.
SSI Command Lists
The following table lists the available SSI commands alphabetically.
H0xC4Deactivates aim pattern.
H0xC5Activates aim pattern.
D0xD6Transmits stored decode data.
H0xD5Requests stored decode data.
H0xE6Sounds the beeper.
H0xD3Requests commands which decoder will perform.
D0xD4Lists commands which decoder will perform.
H/D0xD0Positive acknowledgment of received packet.
4-6
4-7
4-8
4-10
4-10
4-10
4-13
4-14
4-19
4-20
4 - 2Cordless SSI Programmer’s Guide
Table 4-1
SSI Commands (Continued)
NameTypeOpcodeDescriptionPage
CMD_ACK_ACTIONH0xD8This is a positive acknowledgment of a received
packet and can be used in place of the CMD_ACK
command to allow users to control the beeper,
pager motor (i.e., vibration feedback) and LEDs
after receiving decoded data or any other SSI
command.
Note: This command in not supported by all
scanners.
CMD_NAK
H/D0xD1Negative acknowledgment of received packet.
CUSTOM_DEFAULTSH0x12Host command to update Custom Defaults Buffer.
DECODE_DATA
EVENT
FLUSH_MACRO_PDF
D0xF3Decode data in SSI packet format.
D0xF6Event indicated by associated event code.
H0x10Terminates MacroPDF sequence and transmits
captured segments.
FLUSH_QUEUE
H0xD2Tells the decoder to eliminate all packets in its
D0xB1Data comprising the image.
H0xF7Commands imager into operational modes.
H0xE8Extinguishes LEDs.
H0xE7Activates LED output.
H
0xCAActuates the vibration feedback.
H0xC8Sets parameter default values.
H0xC7Requests values of certain parameters.
H/D0xC6Sends parameter values.
D0xA4Replies to REQUEST_REVISION with decoder's
software/hardware configuration.
REQUEST_REVISION
SCAN_DISABLE
SCAN_ENABLE
H0xA3Requests the decoder's configuration.
H0xEA Prevents the operator from scanning bar codes.
H0xE9 Permits bar code scanning.
H0xEBRequests to place the decoder into low power.
Note: D = Decoder, H = Host, H/D = Host/Decoder
4-63
SSI Commands4 - 3
Table 4-1
SSI Commands (Continued)
NameTypeOpcodeDescriptionPage
SSI_MGMT_COMMAND
START_SESSION
STOP_SESSION
VIDEO_DATA
WAKEUP
H/D
H0xE4Tells decoder to attempt to decode a bar code.
H0xE5Tells decoder to abort a decode attempt.
D0xB4Data comprising the video.
HN/AWakes up decoder after it's been powered down.
Terminates MacroPDF sequence and discards all captured segments.
Table 4-3
LengthOpcode
04h11h04h
Table 4-4
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - ABORT_MACRO_PDF
Packet Format - ABORT_MACRO_PDF
Message
Source
Length of message (not including checksum).1 ByteLength Field
11h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
StatusChecksum
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
Bit 2: Reserved
Always 0
Bit 3: Parameter Change Type
(for parameters)
0 = Temporary change
1 = Permanent change
Checksum
Host Requirements
None.
Decoder Requirements
The decoder terminates the current MacroPDF sequence and discards all captured MacroPDF segments.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
AIM_OFF
Description
Turns off aiming pattern.
SSI Commands4 - 7
Table 4-5
LengthOpcode
04hC4h04h
Table 4-6
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - AIM_OFF
Packet Format - AIM_OFF
Message
Source
Length of message (not including checksum).1 ByteLength Field
C4h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
StatusChecksum
1 Byte
from.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
Bit 2: Reserved
Always 0
Bit 3: Parameter Change Type
(for parameters)
0 = Temporary change
1 = Permanent change
Checksum
Host Requirements
This command applies only to decoders that support an aim pattern.
Decoder Requirements
The decoder turns off the aim pattern, and responds with a CMD_ACK (if ACK/NAK handshaking is enabled).
If the aim pattern is not supported, the decoder responds with NAK_DENIED (if ACK/NAK handshaking is
enabled).
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
4 - 8Cordless SSI Programmer’s Guide
AIM_ON
Description
Turns on aiming pattern.
Table 4-7
LengthOpcode
04hC5h04h
Table 4-8
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - AIM_ON
Packet Format - AIM_ON
Message
Source
Length of message (not including checksum).1 ByteLength Field
C5h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
Status Checksum
1 Byte
from.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
Bit 2: Reserved
Always 0
Bit 3: Parameter Change Type
(for parameters)
0 = Temporary change
1 = Permanent change
Checksum
Host Requirements
This command applies only to decoders which support an aim pattern.
Decoder Requirements
The decoder turns on the aim pattern, and responds with a CMD_ACK (if ACK/NAK handshaking is enabled).
If the aim pattern is not supported, the decoder responds with NAK_DENIED (if ACK/NAK handshaking is
enabled).
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
SSI Commands4 - 9
The Aim Duration para meter controls the amoun t of time the aiming pattern sta ys on during a trigger pull. The valid
values for this parameter are 0 - 99, which equal 0.1 to 9.9 seconds in 100 msec increments. Table 4-9 lists Aim
mode behavior in various situations.
Turns on the aiming pattern indefinitely.aim duration = 0
Turns off the aiming pattern.aim duration = 0
Turns on the aiming pattern, when
START_DECODE received turns on scan
pattern and begins decoding.
Turns on aiming pattern, turns off aiming
pattern, turns on scan pattern and begins
decoding.
Turns on aiming pattern for aim duration
time, turns on scan pattern and begins
decoding.
aim duration = 0
aim duration = 0
aim duration > 0
4 - 10Cordless SSI Programmer’s Guide
BEEP
Description
Sounds the beeper.
Table 4-10
LengthOpcode
05hE6h04h
Table 4-11
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - BEEP
Packet Format - BEEP
Message
Source
Length of message (not including checksum).1 ByteLength Field
E6h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
Status
Beep
Code
1 Byte
Checksum
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
Bit 2: Reserved
Always 0
Bit 3: Parameter Change Type
(for parameters)
0 = Temporary change
1 = Permanent change
Beep Code
Checksum
This Opcode instructs the receiver to sound the beep sequence indicated by the Beep Code field.
See Table 4-12.1 ByteNumber that identifies a beep sequence.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
SSI Commands4 - 11
For Table 4-12, Duration is the length of a sound, Pitch is the pitch of the sound, and Number of Beeps indicates
the number of times a beep pitch is repeated at the specified duration.
The host sends this command to cause the decoder to b eep. The host may also send these beep codes as part of
the PARAM_SEND directive.
Decoder Requirements
When the decoder receives this command, it beeps the seque nce provided in the BEEP directive. If ACK/NAK
handshaking is enabled, the decoder ACKs if a valid beep code is requested. Otherwise it sends CMD_NAK, host
directive denied.
CAPABILITIES_REQUEST
Description
Requests the decoder’s serial capabilities.
SSI Commands4 - 13
Table 4-13
LengthOpcode
04hD3h
Table 4-14
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - CAPABILITIES_REQUEST
Packet Format - CAPABILITIES_REQUEST
Message
Source
Length of message (not including checksum).1 ByteLength Field
D3h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
StatusChecksum
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
The host transmits this message to request the serial capabilities of the decoder system.
Decoder Requirements
Upon receipt of this command, the decoder responds with the CAPABILITIES_REPLY messa ge.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
4 - 14Cordless SSI Programmer’s Guide
CAPABILITIES_REPLY
Description
Decoder details the serial capabilities.
Table 4-15
LengthOpcode
04hD4h
Table 4-16
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - CAPABILITIES_REPLY
Packet Format - CAPABILITIES_REPLY
Message
Source
Length of message (not including checksum).1 ByteLength Field
D4h1 ByteIdentifies this Opcode type.
0 = Decoder1 ByteIdentifies where the message is coming from.
StatusDataChecksum
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
0Odd Parity
1Even Parity
2Parity None
3Check Parity
4Do Not Check Parity
5One Stop Bit
6Two Stop Bits
1 = Supported
0 = Not
Supported
4 - 16Cordless SSI Programmer’s Guide
Table 4-17
Multi Packet
Options
Command List
Data Fields (Continued)
FieldSizeDescriptionSupported
1 Byte
Bit Mapped
1 Byte per
Command
Bit Definition
0Option 1
1Option 2
2Option 3
In this sequential list, the decoder details the
commands it supports. For example, imagers
support video commands, while laser-based
decoders do not. Commands associated with
video mode will not appear in the list for
laser-based decoders, but will for imagers.
1 = Supported
0 = Not
Supported
SSI Commands4 - 17
BATCH_DATA
Description
Transmits stored decode data as a reply to the BATCH_REQUEST command. Scanners that can not store scans
send a NAK DENIED or NAK BAD CONTEXT response.
Table 4-18
LengthOpcode
Table 4-19
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - BATCH_DATA
Packet Format - BATCH_DATA
Message
Source
D6h00h
Length of message (not including checksum).1 ByteLength Field
D6h1 ByteIdentifies this Opcode type.
0 = Decoder1 ByteIdentifies where the message is coming from.
Status
Bar Code
String(s)
1 Byte
Checksum
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
Each string is stored in this message in three components: Size, Type, and Scan Data. To specify a bar code string
these components are combined in the order specified.
VariableData from a bar code scan in the bar code
string format. Multiple instances of this field
may be repeated in one message. For
multipacket messages, a partial string may be
sent, continued in the next packet.
2's complement sum of message contents
excluding checksum.
•Size: One byte value that contains the length of the Scan Data component
•Type: One byte value that indicates the bar code type of the data scanned:
•A = UPC/EANG = Discrete 2 of 5
•B = Code 39K = Code 128
•D = EAN 128N = Coupon code
•F = Interleaved 2 of 5W = Web Code
•Scan Data: One or more bytes of the scanner bar code data in ASCII.
2 BytesChecksum of message.
4 - 18Cordless SSI Programmer’s Guide
BATCH_REQUEST
Description
Requests stored decode datafrom the scanner. The scanner responds with the BATCH_DATA command.
Scanners that can not store scans respond with a NAK DENIED or NAK BAD CONTEXT.
Table 4-20
LengthOpcode
Table 4-21
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - BATCH REQUEST
Packet Format - BATCH_REQUEST
Message
Source
D5h04h
Length of message (not including checksum).1 ByteLength Field
D5h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
Status
Bar Code
String(s)
1 Byte
Checksum
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
CHANGE_ALL_CODE_TYPES
Description
This command enables and disables all code types.
SSI Commands4 - 19
Table 4-22
LengthOpcode
05hC9h04h
Table 4-23
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - BATCH REQUEST
Packet Format - BATCH_REQUEST
Message
Source
Length of message (not including checksum).1 ByteLength Field
C9h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
Status
Change
Value
1 Byte
Bar Code
String(s)
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
This message is sent to the SSI packet transmitter when the received packet passes the checksum check and no
negative acknowledgment conditions apply (see CMD_NAK on page 4-24). If the data is in response to a
command (e.g., PARAM_REQUEST, REQUEST_REVISION, etc.), no ACK is sent.
2's complement sum of message contents
excluding checksum.
NOTE ACK/NAK handshaking can be disabled, although we recommend it remain enabled.
NOTE DO NOT respond to a valid ACK or NAK message.
2 BytesChecksum of message.
SSI Commands4 - 21
Host Requirements
A CMD_ACK or response data must be sent by the decoder within the programmable Serial Response Time-out to
acknowledge receipt of all messages, unless noted otherwise in the message description section. If the host sends
data and does not receive a response within the programmable serial response time-out, it should resend the
message (with the retransmit status bit set) before declaring a failure. The host should limit the number of retries.
Decoder Requirements
A CMD_ACK or response data must be sent by the decoder within the programmable Serial Response Time-out to
acknowledge receipt of all messages, unless noted otherwise in the message description section. If the decoder
does not receive an ACK within this time period, it sends the previous message again (retry). The decoder retries
two more times (with the retransmit status bit set) before declaring a transmit error.
4 - 22Cordless SSI Programmer’s Guide
CMD_ACK_ACTION
Description
This is the positive acknowledgment of a received pa cket. This command can be used in place of the standar d SSI
CMD_ACK to control the beeper, pager motor and LEDs.
NOTE This command in not supported by all scanners.
Table 4-26
LengthOpcode
08hD8h04h
Table 4-27
Length
Opcode
Message Source
Status
Packet Format - CMD_ACK_ACTION
Field Descriptions - CMD_ACK_ACTION
Field NameFormatSizeDescription
Message
Source
Status
Length of message not
including the checksum.
D8h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
Beep
Command
Pager
Motor
LED On
1 ByteLength of field.
from.
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
Integer number from 0 to FEh (i.e., 0 to 254
decimal) of 10 ms increments to vibrate the
pager motor. For example, 01h = motor
vibrates for 10 ms, 02h motor vibrates for 20
ms, etc.
.
.
Beep Code Definitions on
SSI Commands4 - 23
Table 4-27
Field Descriptions - CMD_ACK_ACTION (Continued)
Field NameFormatSizeDescription
LED_ON Selection
LED_ON Duration
0 = Do nothing1 Byte
1 ByteThis byte field is an integer number (0 - 254
Bits 0 - 7
correspond to different LEDs on
the product. Set each bit to '1' to turn on the
corresponding LED; set LED_ON Duration to
the amount of time LEDs should remain on.
Example of LEDs on the product:
• Bit 0 = Decode LED.
• Bit 1 = Red LED.
See
LED_ON on page 4-51
for more
information.
Also refer to the Product Reference Guide
(PRG) for further information about the LEDs
supported via SSI on the device.
decimal, 00h to FEh) used in conjunction
with the LED_ON Selection byte to control
the LED On duration. The duration is
controlled in increments of 10 ms (i.e., 1 - 10
ms, 2 - 20 ms etc.).
Note:
If this field is 0, and any of the LED bits
are set to '1' in the LED_ON Selection field,
then the LEDs remain on until an LED_OFF
command is sent.
Checksum
This message is sent to the SSI packet transmitter when the received packet passes the checksum check, and no
negative acknowledgment conditions apply (see CMD_NAK on page 4-24). If the data is in response to a
command (e.g., PARAM_REQUEST, REQUEST_REVISION, etc.), no ACK is sent.
2's complement sum of
2 BytesChecksum of message.
message contents
excluding checksum.
NOTES 1. ACK/NAK handshaking can be disabled, although it is recommended it remain enabled.
2.DO NOT respond to a valid ACK or NAK message.
4 - 24Cordless SSI Programmer’s Guide
CMD_NAK
Description
Negative acknowledgment of received packet.
Table 4-28
LengthOpcode
05D1h
Table 4-29
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Field Descriptions - CMD_NAK
Packet Format - CMD_NAK
Message
Source
Length of message (not including checksum).1 ByteLength Field
D1h1 ByteIdentifies this Opcode type.
0 = Decoder
4 = Host
StatusCauseChecksum
1 ByteIdentifies where the message is coming from.
SSI Commands4 - 25
Table 4-29
Field Descriptions - CMD_NAK (Continued)
Field NameFormatSizeDescription
Status
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
This message is sent when the received packet fails the checksum verification or some error occurred while
handling the message.
2's complement sum of message contents
excluding checksum.
NOTE ACK/NAK handshaking can be disabled, although we recommend it remain enabled.
NOTE DO NOT respond to a valid ACK or NAK message.
2
Bytes
Checksum of message.
4 - 26Cordless SSI Programmer’s Guide
NAK types supported by the decoder are listed in Table 4-30.
Table 4-30
BAD_CONTEXT
CANCEL
DENIED
RESEND
The decoder only resends a message twice. If the message has not been sent successfully at that time, the
decoder declares a transmit error, and issues transmit error beeps (LOW-LOW-LOW-LOW).
Decoder-Supported NAK Types
NAK TypeMeaningReceiver Action
Host does not recognize the
command.
Host does not want the
message in progress.
Host is unable to comply
with the requested message
(e.g., beep code is out of
range).
Checksum incorrect.Ensure checksum is correct.
Decoder discards the current
message.
Do not send data with this
message again. Developer
should check values with
specified values. Developer
should ensure the proper
character is sent, if using
wake-up character.
Limit number of resends. Send
packet again with resend bit
set.
CMD_NAK, cancel is a special message used when the decoder is sending a message the host do es not want, for
example a very large image message. The message is disca rded by the decoder upon receipt of the CMD_NAK,
cancel. This only affects the first queued message. Subsequent messages are not touched. If the host wants the
decoder to discard all messages, the host must send a FLUSH_QUEUE message.
CUSTOM_DEFAULTS
Description
Writes or restores parameters to custom defaults.
SSI Commands4 - 27
Table 4-31
LengthOpcode
05h
Table 4-32
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - CUSTOM_DEFAULTS
Packet Format - CUSTOM_DEFAULTS
Message
Source
12h04h
Length of message (not including checksum).1 ByteLength Field
12h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
StatusActionChecksum
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
This command writes or restores parameters to their custom default settings.
Host Requirements
The host sends this command to program or restore the product's custom default values.
Decoder Requirements
If supported by the scanner, upon receiving this command, the scanner will write the current parameter settings to
the custom defaults buffer. If the restore action is requested, then the parameters are restored to their previously
stored custom defaults. CMD_ACK / CMD_NAK is transmitted if handshaking is enabled.
2's complement sum of message contents
excluding checksum.
1 Byte0 = Write to Custom Defaults
1 = Restore Custom Defaults
2 BytesChecksum of message.
4 - 28Cordless SSI Programmer’s Guide
DECODE_DATA
Description
Decode data in SSI packet format.
Table 4-33
LengthOpcode
Table 4-34
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - DECODE_DATA
Packet Format - DECODE_DATA
Message
Source
F3h00h
Length of message (not including checksum).1 ByteLength Field
F3h1 ByteIdentifies this Opcode type.
0 = Decoder1 ByteIdentifies where the message is coming from.
Status
Bar code
Type
1 Byte
Decode
Data
Checksum
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
This Opcode is used by the decoder when packeted data is selected to send decoded bar code data to the host.
The decoded message is contained in the Decode Datafield.
If the decoded data contains more structure than can be presented in the standard form at, the Bar Code Type field
is set to 0x99 to indicate the Decode Data message contains multiple packets. The format of the Decode Data field
See Table 4-371 ByteIdentifies the scanned data code type. 0 = Not
Applicable
<data>VariableData is decoded data including prefix and
suffix sent in ASCII format.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
SSI Commands4 - 29
contains the actual Bar Code Type and a packeted form of decode data. For example, a packeted Decode Data
message for Micro PDF417 would look like:
Table 4-35
Length Opcode
Packeted Decode Data Message for Micro PDF417
Message
Source
Status
Bar code
Type
Decode
Data
Checksum
12F3h00h099see
below
where the Decode Data field is broken out as follows:
Table 4-36
Actual Bar
Code Type
Decode Data
# of
Packets
Spare
Byte
Byte Length of
Packet #1
Data
Spare
Byte
Byte Length
of Packet #2
Data
1A2000 03ABC000 04DEFG
Note that the Packet Length subfields consist of two bytes, where the first byte represents the high value of length
x 256.
Structured Append
Structured append data for PDF417 and Micro PDF417 can be transmitted in either an unstructure d format which
adheres to the PDF417 specification, or a structured "smart for mat" using the multipacketed fo rmat above. The Bar Code Type field contains 0x99 and data is sent from a single structured append symbol in two Decode Data
packets. The first packet contains the main bar code data, and the second contains any bar code identification
enabled for transmission (e.g., the control block, optional fields, symbol terminator). Each field begins with its
identifying marker codeword (e.g., \928 for control blocks, \923 for optional fields, and \922 for the symbol
terminator).
Table 4-37 and Table 4-38 lists all supported code types, by code name and hex value (SSI ID). The associated
hex value for each code (as required) is entered in the Code Type field.
NOTE For multipacketed data, this code type appears in every packet.
Table 4-37
Aztec Code
Aztec Rune Code
Bookland
Chinese 2 of 5
Code Types and Identifiers
SymbologySSI IDCode ID
0x2Dzz0
0x2EzzC
0x16LX0
0x72UX0
AIM ID
Letter
AIM ID Modifier
Notes:
1. E+C denotes 2 AIM IDs are transmitted: one for the UPC/EAN block; the second prefixes the
extended GS1-128 data.
2. E+E denotes 2 AIM IDs are transmitted: the first prefixes the main UPC/EAN block; the second
prefixes the supplemental block.
3. UPC-E, UPC-E1, and UPC-A are converted to EAN-13 for AIM ID.
4 - 30Cordless SSI Programmer’s Guide
Table 4-37
Codabar
Code 11
Code 128
Code 16K
Code 32
Code 39
Code 39 Full ASCII
Code 49
Code 93
Composite
(CC-A + GS1-128)
Composite
(CC-A + EAN-13)
Code Types and Identifiers (Continued)
SymbologySSI IDCode ID
AIM ID
Letter
0x02CF0 (1) - standard (ABC)
0x0CHH0 (1) [2] - 1 (2) [0] check digits included
0x03DC0 (also see GS1-128)
0x12XX0
0x20BASame rules as for Code 39
0x01BA0 - no check digit
0x89A
0x8AA
0x8BA
0x90A
0x99N/AN/AData is packeted; SSI ID is embedded in
0x9AXLSame rules as for Micro PDF-417
0xA0
0xB4RX0
E + E
E + E
E + E
E + E
2
0 for main block; 2 for supplemental
2
4 for main block; 2 for supplemental
2
0 for main block; 2 for supplemental
2
0 for main block; 2 for supplemental
decode data.
Databar)
Expanded
Coupon
Han Xin
GS1 Datamatrix
0xB7P0HX0
0xC1P0Gd2
GS1 QR0xC2P0Q
Notes:
1. E+C denotes 2 AIM IDs are transmitted: one for the UPC/EAN block; the second prefixes
the extended GS1-128 data.
2. E+E denotes 2 AIM IDs are transmitted: the first prefixes the main UPC/EAN block; the
second prefixes the supplemental block.
3. UPC-E, UPC-E1, and UPC-A are converted to EAN-13 for AIM ID.
SSI Commands4 - 39
Table 4-38
Code Types by SSI ID (Continued)
SymbologySSI IDCode ID
AIM ID
Letter
AIM ID Modifier
Mailmark0xC3P0CX0
Dotcode0xC4P0E
Multicode0xC6P0M
UK Plessey0xC7
Grid Matrix0xC8P0D
Telepen0xCA
UDI Parsed Code0xCC
RFID Raw
RFID URI
0xE0X00
0xE1X00
Notes:
1. E+C denotes 2 AIM IDs are transmitted: one for the UPC/EAN block; the second prefixes
the extended GS1-128 data.
2. E+E denotes 2 AIM IDs are transmitted: the first prefixes the main UPC/EAN block; the
second prefixes the supplemental block.
3. UPC-E, UPC-E1, and UPC-A are converted to EAN-13 for AIM ID.
Table 4-39
Composite Code Data Formats
Data Format
1D Component
Standard ModeGS1-128 Emulation Mode
EAN-13, UPC-A,
UPC-E
EAN-8
Notes:
1. All Function 1 characters in the 1D and 2D are sent as
not transmitted.
1D: ]E0
2D: ]e0
See note 5 below.
1D: ]E4
2D: ]e0
See note 5 below.
1D: ]E0
2D: ]C1 before each GS1-128 split transmission
See notes 3 -5 below.
1D: ]E4
2D: ]C1 before each GS1-128 split transmission
See notes 3 -5 below.
G
(2910); the first Function 1 in the GS1-128 is
S
2. In standard mode, the data following symbol separator begins with AIM ID "]e1". The data following
the composite component escape mechanism begins with AIM ID "]e2" if ECI interpretation is
enabled, "]e3" if ECI interpretation is not enabled.
3. In GS1-128 emulation mode, each packet is split on an AI boundary and limited to less than 48
characters.
4. In GS1-128 emulation mode, data is discarded after the first symbol separator or escape
mechanism.
5. If the UPC/EAN component has a supplemental , ]E1 precedes a 2-digit supplemental and ]E2
precedes the 5-digit supplemental
6. RS is character 30
and EOT is character 04. The transmitted format (05 or 06) is data dependent.
10
4 - 40Cordless SSI Programmer’s Guide
Table 4-39
Composite Code Data Formats (Continued)
Data Format
1D Component
Standard ModeGS1-128 Emulation Mode
GS1 DataBar-14
GS1 DataBar
Limited
Code 39 (TLC39)
1D: ]e0
2D: ]e1
See note 2 below.
ANSI MH10.8.3M syntax:
R
G
06
05
6P 1D
S
G
906P 1D
S
06 Format: [)>
05 Format: [)>
S
R
S
]C1 before each GS1-128 split transmission
See notes 3 -5 below.
G
S
S 2D
G
8004 2D
S
R
EOT
S
R
EOT
S
See note 6 below.
GS1-128
GS1 DataBar
Expanded
If the last AI in the GS1-1 28 is a
predefined, fixed length:]e0
Otherwise, ]e0 GS
]C1 before each GS1-128 split transmission
See notes 3 and 4 below.
See note 2 below.
Notes:
1. All Function 1 characters in the 1D and 2D are sent as
not transmitted.
G
(2910); the first Function 1 in the GS1-128 is
S
2. In standard mode, the data following symbol separator begins with AIM ID "]e1". The data following
the composite component escape mechanism begins with AIM ID "]e2" if ECI interpretation is
enabled, "]e3" if ECI interpretation is not enabled.
3. In GS1-128 emulation mode, each packet is split on an AI boundary and limited to less than 48
characters.
4. In GS1-128 emulation mode, data is discarded after the first symbol separator or escape
mechanism.
5. If the UPC/EAN component has a supplemental , ]E1 precedes a 2-digit supplemental and ]E2
precedes the 5-digit supplemental
6. RS is character 30
and EOT is character 04. The transmitted format (05 or 06) is data dependent.
10
Host Requirements
If DECODE_EVENT reporting is enabled, the decode event message is received before the DECODE_DATA
message. If ACK/NAK handshaking is enabled, the host responds to each of these messages.
Decoder Requirements
Decode data is sent in this format if packeted decode data is selected via parameter. The host responds to this
message with a CMD_ACK, if ACK/NAK handshaking is enabled.
EVENT
Description
Indicates selected events occurred.
SSI Commands4 - 41
Table 4-40
LengthOpcode
05hF6h00h
Table 4-41
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - EVENT
Packet Format - EVENT
Message
Source
Length of message (not including checksum).1 ByteLength Field
F6h1 ByteIdentifies this Opcode type.
0 = Decoder1 ByteIdentifies where the message is coming
Status
Event
Code
1 Byte
Checksum
from.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
This message is sent by the decoder when an enabled event occurs. Use Table 4-42 and parameters F0h 00h
through F0h 07h to determine which events you would like to be reported.
Host Requirements
The host receives this message when a selected event occurs.
Decoder Requirements
Generate this message when a selected event occurs. Events may vary by decoder type.
Type of Event Code.1 ByteSee
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
Table 4-42 on page 4-42
.
4 - 42Cordless SSI Programmer’s Guide
Table 4-42
Boot Event
Decode Event
Parameter Defaults
Parameter Entry Error
Parameter Num Expected
Parameter Stored
Trigger Pull Event
Parameter Entry Cancel
MPDF Incorrect Symbol
MPDF File ID Error
MPDF Out of Memory Error
MPDF Bad Symbology Error
MPDF Flush Buffer
MPDF Data Xmitted
MPDF Flush No Data
MPDF Abort
Buffer Code 39 Add
Buffer Code 39 Empty
Buffer Code 39 Full
Buffer Code 39 Clear
Buffer Code 39 Xmit
System Fault: Laser Safety
17h
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
2h
FLUSH_MACRO_PDF
Description
Terminates MacroPDF sequence and sends all captured segments.
SSI Commands4 - 43
Table 4-43
LengthOpcode
04h10h04h
Table 4-44
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - FLUSH_MACRO_PDF
Packet Format - FLUSH_MACRO_PDF
Message
Source
Length of message (not including checksum).1 ByteLength Field
10h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
StatusChecksum
1 Byte
from.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
Bit 2: Reserved
Always 0
Bit 3: Parameter Change Type
(for parameters)
0 = Temporary change
1 = Permanent change
Checksum
Host Requirements
None.
Decoder Requirements
The decoder terminates the current MacroPDF sequence and transmits the captured MacroPDF segments.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
4 - 44Cordless SSI Programmer’s Guide
FLUSH_QUEUE
Description
Eliminates content of decoder’s transmission queue.
Table 4-45
LengthOpcode
04hD2h04h
Table 4-46
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - FLUSH_QUEUE
Packet Format - FLUSH_QUEUE
Message
Source
Length of message (not including checksum).1 ByteLength Field
D2h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
StatusChecksum
1 Byte
from.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
This message is sent by the host to instruct the decoder to discard or flush the transmission que ue. This is useful
when the decoder is attempting to send a lengthy multipacket message. If the host does not want the message, the
host can interrupt the decoder (by asserting RTS) and send a FLUSH_QUEUE message.
The decoder ACK/NAKs the FLUSH_QUEUE message. No further packets in the transmission queue are sent.
Note that this does not abort decoder actions that cause packets to be added to the transmission queue.
We recommend issuing a SCAN_DISABLE prior to issuing a FLUSH_QUEUE so that new elements are not added
to the queue just after it is emptied. Also, paradoxical cases may arise if a SCAN_DISABLE is not issued first.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
ILLUMINATION_OFF
Description
Turns off Illumination pattern.
SSI Commands4 - 45
Table 4-47
LengthOpcode
04hC0h04h
Table 4-48
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Data Content
Checksum
Field Descriptions - ILLUMINATION_OFF
Packet Format - ILLUMINATION_OFF
Message
Source
Length of message (not including checksum).1 ByteLength Field
C0h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
2's complement sum of message contents
excluding checksum.
StatusDataChecksum
from.
1 Byte
Up to 251
Bytes
2 BytesChecksum of message.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Image Data records.
Decoder Requirements
The decoder turns off the Illumination, and responds with a CMD_ACK (if ACK/NAK handshaking is enabled).
4 - 46Cordless SSI Programmer’s Guide
ILLUMINATION_ON
Description
Turns off Illumination pattern.
Table 4-49
LengthOpcode
04hC1h04h
Table 4-50
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Data Content
Checksum
Field Descriptions - ILLUMINATION_ON
Packet Format - ILLUMINATION_ON
Message
Source
Length of message (not including checksum).1 ByteLength Field
C0h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
2's complement sum of message contents
excluding checksum.
StatusDataChecksum
from.
1 Byte
Up to 251
Bytes
2 BytesChecksum of message.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Image Data records.
Decoder Requirements
The decoder turns on the Illumination, and responds with a CMD_ACK (if ACK/NAK handshaking is enabled).
Table 4-51
ILLUMINATION_ONTurns on the Illumination.
ILLUMINATION_OFFTurns off the Illumination.
Aim Mode
Command SequenceAction Performed
IMAGE_DATA
Description
A JPEG, BMP, or TIFF image.
SSI Commands4 - 47
Table 4-52
LengthOpcode
Table 4-53
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - IMAGE_DATA
Packet Format - IMAGE_DATA
Message
Source
B1h01h
Length of message (not including checksum).1 ByteLength Field
B1h1 ByteIdentifies this Opcode type.
0 = Decoder1 ByteIdentifies where the message is coming
StatusDataChecksum
from.
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
This packet contains image information. Images sent from the decoder to the host are described by the image
preamble contained in the first 10 bytes of the first packet of the image. The details of the image preamble follow.
Due to the small packet size of SSI, multiple packets of image data should be received by the host and
re-assembled in the order given by the decoder. The packets describe, for example, a JPEG image when
re-assembled.
2's complement sum of message contents
excluding checksum.
Up to 251
Bytes
2 BytesChecksum of message.
Image Data records.
4 - 48Cordless SSI Programmer’s Guide
The image preamble consists of the following fields:
Table 4-54
File size
Image Width
Image Height
Image Type
Bits per Pixel
Note: The preamble only appears in the first packet of a multipacket
message.
In a multipacketed environment, one image frame is spread over several packets in the following format:
Image Preamble Fields
FieldField SizeDescription
4 byte fieldNumber of bytes in the overall image.
2 byte fieldImage width in pixels
2 byte fieldImage height in pixels
1 byte field0x31 = JPEG Image File
0x33 = BMP Windows Bit Map File
0x34 = TIFF File
Note: These values are ASCII.
Length of message (not including checksum).1 ByteLength Field
F7h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
StatusDataChecksum
from.
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
This command is supported by the imager only. The host sends this command with the data field set to 0 for
decode mode, 1 for image capture mode, and 2 for video mode.
Decoder Requirements
The decoder (imager) sends a CMD_ACK if the mode is valid, and CMD_NAK if not.
2's complement sum of message contents
excluding checksum.
1 ByteValue 0, 1, or 2 decimal
2 BytesChecksum of message.
4 - 50Cordless SSI Programmer’s Guide
LED_OFF
Description
De-activates LED output.
Table 4-57
LengthOpcode
05hE8h04h
Table 4-58
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - LED_OFF
Packet Format - LED_OFF
Message
Source
Length of message (not including checksum).1 ByteLength Field
E8h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
Status
Selection
1 Byte
LED
Checksum
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
The host sends this message to turn off the specified decoder LEDs.
Host Requirements
None.
Decoder Requirements
The decode LED is turned off by the decoder.
Bit 0 - 7: LED bit numbers to turn off.1 ByteBit 0 = Decode LED
See your product’s Product Reference Guide
for further bit information.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
LED_ON
Description
Activates LED output.
SSI Commands4 - 51
Table 4-59
LengthOpcode
05hE7h04h
Table 4-60
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - LED_ON
Packet Format - LED_ON
Message
Source
Length of message (not including checksum).1 ByteLength Field
E7h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
Status
Selection
1 Byte
LED
Checksum
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
The host sends this message to turn on the specified decoder LEDs.
Host Requirements
None.
Decoder Requirements
The decode LED is turned on by the decoder.
Bit 0 - 7: LED bit numbers to turn on.1 ByteBit 0 = Decode LED
See your product’s Product Reference Guide f or
further bit information.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
4 - 52Cordless SSI Programmer’s Guide
PAGER_MOTOR_ACTIVATION
Description
Actuates the vibration feedback device in the target device (e.g., the pager motor). Example: A value of 15 causes
the scanner to vibrate for 150 ms.
Table 4-61
LengthOpcode
05hCAh04h
Table 4-62
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Vibration
Duration
Field Descriptions - PAGER_MOTOR_ACTIVATION
Packet Format - PAGER_MOTOR_ACTIVATION
Message
Source
Length of message (not including checksum).1 ByteLength Field
CAh1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
Status
Vibration
Feedback
Duration
1 Byte
1 ByteNumber of 10 ms increments to vibrate.
Checksum
from.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
0 = Use the system parameter vibration
duration.
Example: A value of 15 causes the
scanner to vibrate for 150 ms.
Checksum
This Opcode instructs the receiver to actuate the vibration feedback device (e.g., the pager motor) for the amount
of 10 ms increments specified in the Vibration Duration field. If the Vibrations Duration field is set to 0, then the
vibration feedback duration will be that which is defined in the system parameter for vibration duration.
Host Requirements
The host sends this command to cause the decoder to actuate its vibration feedback mechanism (e.g., its pager
motor) for the specified amount of time.
Decoder Requirements
If the decoder has a Pager Motor and handshaking is enabled, it sends a CMD_ACK and activates the
PAGER_MOTOR for the appropriate duratio n. If the decoder does not have a Pager Motor, it sends a CMD_NAK
with type NAK_DENIED.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
PARAM_DEFAULTS
Description
Sets the parameters to their default values.
SSI Commands4 - 53
Table 4-63
LengthOpcode
04hC8h04h
Table 4-64
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - PARAM_DEFAULTS
Packet Format - PARAM_DEFAULTS
Message
Source
Length of message (not including checksum).1 ByteLength Field
C8h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
StatusChecksum
from.
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
This command returns all parameters to their default settings.
Host Requirements
The host sends this command to reset the decoder’s parameter settings to the default values.
Decoder Requirements
Upon receiving this command, the decoder resets all its parameters to the default values. This is equivalent to
scanning a SET DEFAULTS bar code.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
4 - 54Cordless SSI Programmer’s Guide
PARAM_REQUEST
Description
Requests values of selected parameters.
Table 4-65
Length Opcode
Table 4-66
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - PARAM_REQUEST
Packet Format - PARAM_REQUEST
Message
Source
C7h04h
Length of message (not including checksum).1 ByteLength Field
C7h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
Status
Request
Data
1 Byte
Checksum
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
The host uses this message to request selected parameters from the decoder.
Host Requirements
The host requests the decoder’s current values for specific parameters by listing the parameter numbers in the
Request_Data field. If the host asks for a parameter value not supported by the decoder, the decoder does not
send a value for this unsupported param_num. If none of the requested values is supported, an empty
<Param_num><Param_num>
<Param_num>...
2's complement sum of message contents
excluding checksum.
Variable
2 BytesChecksum of message.
SSI Commands4 - 55
PARAM_SEND message is transmitted. If the host requests the value of all the parameters, it sends a special
param_num called ALL_PARAMS (FEh) in the first position of the Request_Data field.
NOTE The decoder’s response to this command is PARAM_SEND, not ACK. Depending on the time-out set, and
the number of parameters requested, this reply may fall outside the programmable Serial Response
Timeout. It should not be considered an error if the time-out is exceeded. To compensate, increase the
time-out.
Decoder Requirements
When the decoder receives this message, it processes the information by formatting a PARAM_SEND message
containing all requested parameters that are supported, and their values. The programmable Serial Response
Time-out may be exce eded when processing this message, depending on the time-out set, and the number of
parameters requested.
Hints for Requesting Parameter Values
Before forming a PARAM_REQUEST, be sure you are requesting parameters supported by the deco der (Table
4-67). To find out what parameters are supported, send an FEh (request all parameters). The decoder responds
with a PARAM_SEND which contains all the supported parameters and their values. This response may be
multipacketed; ACK responses are not necessary.
Table 4-67
0 to 239<param_num>
256 to 495F0<param_num - 256>
512 to 751F1<param_num - 512>
768 to 1007F2<param_num - 768>
1024 or higherF8<param_num_high_byte><param_num_low_byte>
Additionally, the following special codes are provided:
All ParametersFE
All DefaultsFD
When using the FEh, it must be in the first position of the Request_Data field, or it is treated as an unsupported
parameter.
Unsupported parameters are not listed in the PARAM_SEND response. Requesting unsupported parameters has
no effect, but can cause delays in responding to requests for valid parameters. See Table 4-68 for example
requests and responses.
Table 4-68
Parameter Numbers Format
Parameter NumberEncoding
Example Requests and Replies
PARAM_REQUEST Message Response PARAM_SEND Message
#ALL
#1, 9C
#All, 1, 9C
05 C7 04 00 FE FE 320D C6 00 00 FF 01 00 02 01 9C 07 E6 63 FC 3E
06 C7 04 00 01 9C FE 9209 C6 00 00 FF 01 00 9C 07 FD 8E
07 C7 04 00 FE 01 9C FD 930D C6 00 00 FF 01 00 02 01 9C 07 E6 63 FC 3E
4 - 56Cordless SSI Programmer’s Guide
Table 4-68
#1, 9C, ALL
#4
#ALL - 3 times
#1 -3 times
533 (F1 15)
Example of buffer
parameter above
512.
318 (F0, 3E)
Example of Word
parameter above
256.
Example Requests and Replies (Continued)
PARAM_REQUEST Message Response PARAM_SEND Message
07 C7 04 00 01 9C FE FD 9309 C6 00 00 FF 01 00 9C 07 FD 8E
05 C7 04 00 04 FF 2C05 C6 00 00 FF FE 36
07 C7 04 00 FE FE FE FC 340D C6 00 00 FF 01 00 02 01 9C 07 E6 63 FC 3E
07 C7 04 00 01 01 01 FF 2B0B C6 00 00 FF 01 00 01 00 01 00 FE 2D
06 C7 04 80 F1 15 FD1D C6 00 00 FF
30 30 37 5A 5A 57 57 F7 7E
Where:
F7
=Multipacket array
F1h 15h / 533
Value="DS4308-SR00007ZZ"
06 C7 04 80 F0 3E FD 810A C6 00 00 FF
Where:
F4
=Word parameter
F0 3E / 318
04 FF
=Value 1279
F7 F1 15
=SSI number / parameter number
F4 F0 3E 04 FF
=SSI number / parameter number
12 00 00 44 53 34 33 30 38 2D 53 52 30 30
FB 0C
1118 (F8 04 5E)
Example of a
Word parameter
with a parameter
number above
This message is sent by the decoder in response to the PARAM_REQUEST message, or by the host to change the
decoder’s parameter values.
Parameter numbers F0h (+256), F1h (+512), F2h (+768) access parameters whose numbers are 256 and higher.
For example, to access the first parameter in the 256-511 range, use F0h and 00h.
See
Table 4-12 on page 4-11
See
Table 4-71 on page 4-58
2's complement sum of message contents
excluding checksum.
.1 ByteIf no beep is required, set this field to FF.
.The parameter numbers and data to be sent to
the requester.
2 BytesChecksum of message.
4 - 58Cordless SSI Programmer’s Guide
The PARAM_SEND message encodes parameter plus data as shown in Table 4-71.
Table 4-71
Param Data Format
Parameter NumberEncoding
0 to 239
256 to 495
<param_num>
F0<param_num - 256>
512 to 751F1<param_num - 512>
768 to 1007F2<param_num - 768>
1024 or higherF8<param_num_high_byte><param_num_low_byte>
Additionally, there are modifiers to allow data other than byte values.
Table 4-72
Data Types
Data TypeFormat
String
Word
Array
Multi-Packet
F3 <param num><len of data><val1><val2>...
F4<param num><high byte><low byte>
F6<param num><len of array><byte0><byte1>...
F7<param num><packet len><2 byte
offset><byte0><byte1>...
Host Requirements
NOTE Due to the processing time of interpreting and storing parameters contained in the message, it may not be
possible for the decoder to send an ACK within the programmable Serial Response Timeout. It should not
be considered an error if the time-out is exceeded. To compensate, increase the time-out.
The host transmits this message to change the decoder’s parameters. Be sure the Change Type bit in the Status
byte is set as desired. If no beep is required, the beep code must be set to FFh, or the de coder beeps as defined in
Table 4-12.
Decoder Requirements
When the decoder receives a PARAM_SEND, it interprets and stores the parameters, then ACKs the command (if
ACK/NAK handshaking is enabled). These parameters are stor ed permanently only if the Change T yp e (bit 3 of the
Status byte) is set to 1. If bit 3 is set to 0 the changes are temporary, and are lost when the decoder is powered
down.
If the PARAM_SEND sent by the host contains a valid beep code, the decoder issues the requested beep
sequence, and changes the requested parameter values.
The decoder issues a PARAM_SEND in response to a PARAM_REQUEST from the host. It sends the values for all
the supported parameter values requested in the PARAM_REQUEST message. No value is sent for any
unsupported param_num. If none of the requeste d values is supported, the PARAM_SEND message is transmitted
with no parameters. When sending this command, the Change Type bit (bit 3 of Status byte) can be ignored.
NOTE For multipacketed PARAM_SEND, the beep code appears in every packet.
REPLY_REVISION
Description
Replies to REQUEST_REVISION command with software revision string.
SSI Commands4 - 59
Table 4-73
LengthOpcode
Table 4-74
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - REPLY_REVISION
Packet Format - REPLY_REVISION
Message
Source
A4h00hS/W_REVISION <space>
Length of message (not including checksum).1 ByteLength Field
A4h1 ByteIdentifies this Opcode type.
0 = Decoder1 ByteIdentifies where the message is coming from.
StatusRevisionChecksum
BOARD_TYPE <space>
ENGINE_CODE <space>
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
The decoder sends its revision string to the host. The revision string is decoder-dependent.
ASCII data variableRevision String fields indicate:
2's complement sum of message contents
excluding checksum.
S/W_REVISION
software
BOARD_TYPE
board, F for flash
ENGINE_CODE
engine paired with the decoder (see the scan
engine’s Integration Guide for the engine code
value)
2 BytesChecksum of message.
is the release name of the
is N for non-flash decoder
indicates the type of scan
4 - 60Cordless SSI Programmer’s Guide
REQUEST_REVISION
Description
Requests the software revision string from the de co der.
Table 4-75
LengthOpcode
04hA3h04h
Table 4-76
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - REQUEST_REVISION
Packet Format - REQUEST_REVISION
Message
Source
Length of message (not including checksum).1 ByteLength Field
A3h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
StatusChecksum
1 Byte
from.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
The host sends this message to request revision information from the decoder. The decoder responds with
REPLY_REVISION.
Decoder Requirements
The decoder sends its revision string to the host. See REPLY_REVISION on page 4-59 for format.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
SCAN_DISABLE
Description
Prevents the decoder from scanning bar codes.
SSI Commands4 - 61
Table 4-77
LengthOpcode
04hEAh04h
Table 4-78
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - SCAN_DISABLE
Packet Format - SCAN_DISABLE
Message
Source
Length of message (not including checksum).1 ByteLength Field
EAh1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
StatusChecksum
1 Byte
from.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
All scan attempts are disabled by this command until either a SCAN_ENABLE is sent, or the decoder is reset.
Decoder Requirements
When the decoder receives this command, it ignores all trigger/ST ART_SESSION requests until a SCAN_ENABLE
command is received.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
4 - 62Cordless SSI Programmer’s Guide
SCAN_ENABLE
Description
Permits the decoder to scan bar codes.
Table 4-79
LengthOpcode
04hE9h04h
Table 4-80
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - SCAN_ENABLE
Packet Format - SCAN_ENABLE
Message
Source
Length of message (not including checksum).1 ByteLength Field
E9h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
StatusChecksum
1 Byte
from.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
The host sends the SCAN_ENABLE command to tell the decoder to allow scanni ng. Scanning is enabled upon
power-up, so this command need only be send if a prior SCAN_DISABLE command has been sent.
Decoder Requirements
The decoder allows scanning and decoding upon receipt of this command.
2's complement sum of message contents
excluding checksum.
NOTE At initial power-up, the decoder should assume SCAN_ENABLED.
2 BytesChecksum of message.
SLEEP
Description
Requests to place the decoder into low power mode.
SSI Commands4 - 63
Table 4-81
LengthOpcode
04hEBh04h
Table 4-82
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - SLEEP
Packet Format - SLEEP
Message
Source
Length of message (not including checksum).1 ByteLength Field
EBh1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
StatusChecksum
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
The host sends this command to place the decoder into low power mode. If the low power mode parameter is
enabled, the scanner goes into low power mode automatically, and the SLEEP command is not necessary.
Decoder Requirements
None.
2's complement sum of message contents
excluding checksum.
NOTE The decoder may not sleep immediately upon acknowledging the command, as it may be busy processing
data at the time.
2 BytesChecksum of message.
4 - 64Cordless SSI Programmer’s Guide
SSI_MGMT_COMMAND
Description
The SSI protocol allows the host to send a command that is variable in length up to 255 bytes. Although there is a
provision in the protocol to multi-packet commands from the host, it is not supported in the scanner. It is required
that the host fragment packets using the provisions supplied in the Remote Scanner Management (RSM) protocol
(A TTRIBUTE_SET_OFFSET, ATTRIBUTE_GET_OFFSET).
RSM command is encapsulated in SSI packet as follows.
Table 4-83
LengthOpcode
Table 4-84
Length
Opcode
Message Source
Status
Field Descriptions - SSI_MGMT_COMMAND
Field NameFormatSizeDescription
Packet Format - SSI_MGMT_COMMAND
Message
Source
80h04h
Length of message (not
including checksum).
80h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
Status
Management
Payload
1 ByteLength Field
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
The expected response in the positive case is SSI_MGMT_COMMAND that may be a multi-packet response. For
devices that do not support the SSI_MGMT_COMMAND, the response will be the standard SSI_NAK
(NAK_BADCONTEXT).
Host Requirements
None.
Decoder Requirements
Decoder reply the RSM command in the format below.
Table 4-85
LengthOpcode
Response Packet Format - SSI_MGMT_COMMAND
80h04h
DataVariableRSM command.
2's complement sum of
message contents excluding
checksum.
Message
Source
2 BytesChecksum of message.
Status
Management
Payload
Checksum
START_SESSION
Description
Tells decoder to attempt to obtain the requested data.
SSI Commands4 - 65
Table 4-86
LengthOpcode
04hE4h04h
Table 4-87
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - START_SESSION
Packet Format - START_SESSION
Message
Source
Length of message (not including checksum).1 ByteLength Field
E4h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming from.
StatusChecksum
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
This command tells the decoder to start a scan session. See Table 4-88 for the decoder’s reactions to this
command in each operational mode.
Table 4-88
Operational
Decode Mode
Image Capture
Video Mode
ST ART_SESSION Actions
Mode
Decoder Requirements
Trigger Mode must be set to Host or a CMD_NAK DENIED response is issued.
2's complement sum of message contents
excluding checksum.
Actions Upon Receipt of CommandEnd Result of Session
The decoder attempts to decode a bar codeSuccessful decode, or STOP_SESSION command
The decoder clicks the shutterAn image is captured
The decoder continuously produces a video streamSTOP_SESSION command
2
Bytes
Checksum of message.
4 - 66Cordless SSI Programmer’s Guide
STOP_SESSION
Description
Tells decoder to abort a decode attempt or video transmission.
Table 4-89
LengthOpcode
04hE5h04h
Table 4-90
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - STOP_SESSION
Packet Format - STOP_SESSION
Message
Source
Length of message (not including checksum).1 ByteLength Field
E5h1 ByteIdentifies this Opcode type.
4 = Host1 ByteIdentifies where the message is coming
StatusChecksum
1 Byte
from.
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
This command tells the decoder to stop a scan and decode attempt.
Host Requirements
None.
Decoder Requirements
None.
2's complement sum of message contents
excluding checksum.
2 BytesChecksum of message.
VIDEO_DATA
Description
Imager transmission of a video frame in JPEG format.
SSI Commands4 - 67
Table 4-91
LengthOpcode
Table 4-92
Field NameFormatSizeDescription
Length
Opcode
Message
Source
Status
Field Descriptions - VIDEO_DATA
Packet Format - VIDEO_DATA
Message
Source
B4h00h
Length of message (not including checksum).1 ByteLength Field
B4h1 ByteIdentifies this Opcode type.
00 = Decoder1 ByteIdentifies where the message is coming
StatusDataChecksum
from.
1 Byte
Bit 0: Retransmit
0 = First transmission
1 = Subsequent transmission
Bit 1: Continuation
0 = Last packet of a multipacket message
1 = Intermediate packet
The first packet of a video frame contains the video preamble, described below. The first packet also contains the
JPEG data comprising the video frame. Multipacketing is expected in video mode.
2's complement sum of message contents
excluding checksum.
Up to 251
Bytes
2 BytesChecksum of message.
Image data.
4 - 68Cordless SSI Programmer’s Guide
The video preamble consists of the following fields:
Table 4-93
File size
Image Width
Image Height
Image Type
Bits per Pixel
In a multipacketed environment, one video frame is spread over several packets in the following format:
Video Preamble Fields
FieldField SizeDescription
4 byte fieldNumber of bytes in the overall image.
2 byte fieldImage width in pixels
2 byte fieldImage height in pixels
1 byte field0x31 = JPEG Image File
0x33 = BMP Windows Bit Map File
0x34 = TIFF File
Note: These values are ASCII.
Wakes up decoder after it was put into low power operation.
If the decoder is in low power mode, sending the single character NULL (00) wakes up the decode r. This character
is only needed when hardware handshaking is not being used or is bypassed.
Host Requirements
Once the WAKEUP character is sent, the host must wait a period of time to permit the decoder to wake up. The
decoder remains awake for a fixed period of time after wake up. These time periods vary by decoder.
Decoder Requirements
The decoder must not go back into low power mode for a decoder-dependent time period after waking up.
NOTE The mechanism to wake up a decoder in this manner also works if characters other than WAKEUP are
sent to the decoder. There is, however, no guarantee that these commands are interpreted correctly upon
power-up. Therefore, it is not recommended that characters other than WAKEUP be used to awaken the
decoder.
The WAKEUP character has no ef fect if sent when th e scanner is awake. If the host is unsure of the scanner state,
it should send the wakeup character when it wants to communicate with the scanner.
4 - 70Cordless SSI Programmer’s Guide
APPENDIX A MODEL SPECIFIC DETAILS
CS4070 Details
Table A-1
REQUEST_REVISIONPL3307 engine replies.
PARAM_REQUEST
PARAM_SEND
CAPABILITIES_REQUESTPL3307 engine replies.
DECODE_DATA
BEEPSee
LED On/OffLED selection field values:
CHANGE_ALL_CODE_TYPES
SCAN Enable/Disable
AIM On/Off
START SESSIONSTOP_SESSION is not supported.
CS4070 Specific Commands
Supported SSI CommandsNotes
Table 4-4 on page 4-10
1 - Green LED on/off
2 - Amber LED on/off
4 - Red LED on/off.
for beep codes.
ILLUMINATION On/Off
A - 2Cordless SSI Programmer’s Guide
APPENDIX B USING SCAN-TO-CONNECT
WITH AN SSI APPLICATION
The Cordless Scan-To-Connect application enables a Bluetooth scanner to pair directly to a PC/tablet/phone by
scanning an on-screen bar code, replacing the need for a paper pairing label. This paperless pairing solution
wirelessly connects the scanner directly to the host, without the need of a cradle.
If using Scan-To-Connect to pair your scanner to a PC/tablet/phone host, the scanner must first be configured
to communicate properly with the host. This includes, but is not limited to, scanning the communication protocol
parameter bar code. Use 123Scan
between the scanner and the host.
Follow the sequence below when pairing a scanner to a host PC/tablet/phone.
1.Scanner - Start with scanner at factory default.
2.Scanner - Configure the scanner for Bluetooth SSI communication by scanning the Bluetooth SSI Profile
configuration bar code.
3.Host - Launch the target application on the host PC/tablet/phone. The application opens a virtual com over
a Bluetooth connection.
4.Host - On the host PC/tablet/phone, launch Scan-To-Connect. Scan-To-Connect creates a pairing bar
code.
2
to generate the 2D parameter bar code that sets up communication
5.Scanner - Us the scanner to scan the pairing bar code on the host PC/tablet/phone screen.
6.Host - The scanner and host are now paired and ready to use.
NOTE Once a scanner and host are paired, no repairing (rescanning the Scan-To-Connect pairing bar code) is
required, even upon device wake up, assuming auto-reconnect was enabled.
B - 2Cordless SSI Programmer’s Guide
APPENDIX C CODE SAMPLES
Code Samples
Table C-1
Disable Scanning0x04 0xea 0x00 0x08 0xff 0x0a
Enable Scanning0x04 0xe9 0x00 0x08 0xff 0x0b
Send Beep/LED Code Sequence to the
Scanner
Receive Data From the Scanner0x10 0xf3 0x00 0x00 0x01 0x01 0x00 0x08 0x41 0x48 0x33 0x39 0x35
Sample Code
ActionCode Sequence Sample
0x05 0xe6 0x04 0x00 0x01 0xff 0x10
(where 0x01 = high short beep)
0x39 0x32 0x31 0xfd 0x2d
(for "AH395921" bar code of type code 39)
Zebra Technologies Corporation
Lincolnshire, IL U.S.A.
www.zebra.com
ZEBRA and the stylized Zebra head are trademarks of Zebra Technologies Corporation, registered in
many jurisdictions worldwide. All other trademarks are the property of their respective owners.