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.
Loading...
+ 70 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.