Code CR1400, CR1000, CR2300, CR2600, CR2600XHD Configuration Manual

...
4/14/2016
C005066
Interface Configuration Document For:
CR900FD
CR1000
CR1000XHD
CR1400
CR1400XHD
CR1428 CR2300 CR2600
CR2600XHD
CR3600
CR3600DPM
CR4405 CR5000
CR5000RTC
CR6000 CR8000
T500
Firmware build 1206 (for CR5000 & CR5000RTC)
Firmware build 5040 (for the T500)
Firmware build 1174 (for all others)
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 1 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Table of Contents
1 Keyword Table ....................................................................................................... 3
2 Scope ..................................................................................................................... 6
3 Notations ............................................................................................................... 6
4 Reader Command Overview ................................................................................... 6
4.1 Packetized Commands ....................................................................................... 7
4.2 Text Commands ................................................................................................. 7
4.3 Code Reader Batch (CRB) System ....................................................................... 7
4.4 Barcode Commands ........................................................................................... 7
5 Communication Medium ........................................................................................ 8
5.1 USB Enumeration PID ........................................................................................ 8
6 Reader to Host Communication.............................................................................. 8
6.1 Raw Data ........................................................................................................... 9
6.2 Packet Data ........................................................................................................ 9
7 Host to Reader Communication............................................................................ 13
7.1 Text Commands ............................................................................................... 13
7.2 Packetized Commands ..................................................................................... 14
7.3 Command Types .............................................................................................. 15
7.4 Prefix and Suffix Handling ................................................................................ 25
8 File Installation ..................................................................................................... 25
8.1 Simple Protocol ................................................................................................ 25
9 Reader Settings .................................................................................................... 26
9.1 Binary Dip Switch ............................................................................................. 26
9.2 Field of Interest ................................................................................................ 27
9.3 Reader Setting Persistence .............................................................................. 27
9.4 Docked State Settings ...................................................................................... 28
9.4.1 Overview......................................................................................................................................... 28
9.4.2 H5 commands (CR5000 & CR5000RTC only) .................................................................................. 29
9.5 Reader Settings Table ...................................................................................... 30
10 Radio Commands ................................................................................................. 98
10.1 Bluetooth® Commands .................................................................................... 98
11 Symbology Detail Settings .................................................................................. 100
11.1 PharmaCode .................................................................................................. 100
12 Appendix: Example CRC16 C Code ...................................................................... 101
13 Appendix: Example CRC14 C Code ...................................................................... 104
14 Appendix: Custom Keyboard XML File Formatting .............................................. 105
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 2 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
1 Keyword Table
These keywords are used throughout the document to show relationships between settings.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 3 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Keyword
Description
#2Of5
All 2 of 5 symbologies
#AES
Settings or commands related to AES encryption
#AgeVerification
Settings related to the Age Verifications functions of some Code readers
#AIMId
Settings controlling the output of the AIM Identifier
#Aztec
Aztec symbology
#Battery
Settings for battery usage
#Beep
Settings that affect beep duration and intensity
#ButtonStayDownTime
Settings that affect how long the buttons stay engaged after being pressed
#Cellphone
Settings related to cellphone reading
#Charger
Settings related to a charger base
#Charging
Settings related to charging a reader and/or phone
#Codabar
Codabar symbology
#Code39
Code 39 symbology
#Communications
Used in changing the communication mode of the reader
#CompositeBarcodes
Settings that affect reading of barcodes with more than one part
#DataMatrix
Data Matrix symbology
#DataRetention
Settings that determine the behavior of data saved on the reader
#DataEncoding
Settings that affect incoming/outgoing data
#DefaultEvent
Any settings that may affect default event behavior
#DPM
Settings related to Direct Part Mark
#DuplicateBlock
Settings related to blocking duplicate barcodes
#EAN/JAN
EAN/JAN symbology
#Encryption
Settings related to Bluetooth® encryption
#Foi0
Field of Interest 0
#Foi1
Field of Interest 1
#GoodReadRTS
Settings that affect the good read output on RTS
#GS1Databar
The GS1 DataBar family of symbologies
#HanXin
Han Xin symbology
#InterCharacterDelay
Settings controlling the USB keyboard inter-character delay
#Interleaved2Of5
Interleaved 2 of 5 symbology
#KeyboardMap
Settings related to changing the output keyboard map
#MotionDetection
Settings that affect the behavior of the motion detection feature
#PDF417
PDF417 symbology
#PharmaCode
PharmaCode symbology
#PictureSettings
Settings that affect pictures (JPG or PGM) captured by the reader
#Postal
Postal symbologies
#QR
QR Code symbology
#ReaderState
Settings that affect the transition from one state to another (i.e. Active to Idle)
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 4 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
#SerialComm
Settings related to serial communications mode
#SettingsLock
Settings that affect the enhanced Settings Lock feature
#SimpleAV
Settings that affect the Simple Age Verification feature on the CR5000
#Stand
Settings that affect reader behavior in a Stand
#StandDetect
Settings related to detecting the Stand, or table, or the charging base as a Stand
#StandModes
Settings that change based on entering or leaving the Stand/table
#T500
Information and settings that relate to the T500 Reader Accessory
#Telepen
Telepen symbology
#TextCommands
Settings relating to the reader accepting text commands
#UPC
UPC symbology
#Vibration
Settings that affect vibration in readers with a vibration motor
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 5 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Example
Indication
Grammar
Text­Command
Italic type
Syntactic categories (non-terminals)
space
Bold type
Terminal symbols
0xFF
0x prefix indicating hexadecimal
Literal byte values ‘X’
Single quotes
Literal ASCII characters
SOH
All caps
Non-printable ASCII characters
PageUp
Key name
key press-release sequence
shift
Key plus down arrow
Key-down only
shift
Key plus up arrow
Key-up only
esc | tab
Vertical bar
Alternatives (this or that)
data
opt
opt.
(opt subscript)
Optional terminals and non-terminals
packet-type
nz
nz
(nz subscript)
Applies to all packets except z type packets
crc16
nr
nr
(nr subscript)
Applies to packets sent in “non-raw” mode, i.e. in “packet” mode
2 Scope
This Interface Configuration Document (ICD) specifies the communication protocol between the Code
Reader™ 900FD (CR900FD), Code Reader™ 1000 (CR1000), Code Reader™ 1000 XHD (CR1000XHD), Code Reader™ 1400 (CR1400), Code Reader™ 1400 XHD (CR1400XHD), Code Reader™ 1428 (CR1428), Code Reader™ 2300 (CR2300), Code Reader™ 2600 (CR2600), Code Reader™ 2600 XHD (CR2600XHD), Code Reader™ 3600 (CR3600), Code Reader™ 3600 DPM (CR3600DPM), Code Reader™ 4405 (CR4405), Code Reader™ 5000 (CR5000) , Code Reader™ 5000 RTC (CR5000RTC), Code Reader™ 6000 (CR6000), Code Reader™ 8000 (CR8000), or Code T500 Reader Accessory (T500) hardware and application
software that runs on the Host computer, specific Reader commands, examples of a variety of ways to communicate and send data to the Reader (i.e. RS232, USB) and command/communication types.
Make sure to use the latest released firmware for default values listed in Section 9.
3 Notations
The interface protocol is described as a set of grammars, indicated by different type styles and symbols. These indications are listed in the table below.
4 Reader Command Overview
This section is intended to introduce developers/users to the methods used to send commands to the Reader. There are two ways to send a command to the Reader: from a Host computer, or by scanning a barcode containing a command sequence. When sending commands from the host, there are two formats that can be used: packetized commands and text commands.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 6 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
4.1 Packetized Commands
Packetized commands are the most reliable way to communicate to the Reader. The packet consists of a prefix and a suffix. The prefix contains the amount of data to be transmitted and the suffix contains error detection. Unlike text commands, packetized commands are always enabled. (See Section 7.2)
4.2 Text Commands
Text commands are provided as an easy way to send a command to a Reader but they lack the reliability of packetized commands. In addition, text commands must be enabled. Text commands can easily be sent from a terminal program and use a %xx (similar to URL encoding) to translate an escape sequence containing a 2-digit hex value corresponding to the single 8-bit ASCII character. This allows non-printable ASCII characters to be entered via the terminal program. Text commands can be sent via the RS232, USB Virtual COM (VCOM) or USB HID mode by using appropriate communication software.
4.3 Code Reader Batch (CRB) System
The Code Reader Batch (CRB) system is a convenient method for creating and maintaining a set of commands that can be sent to the Reader. The commands in the CRB file are immediately processed by the reader.
These CRB files can be created in any text editor with the file extension of .crb. The CRB system accepts all of the valid text commands. There should be one command per line. The CRB file may contain empty lines and comments (prefixed with the semicolon (;) character) as well.
The CRB files can be sent directly to the Reader using the normal file transfer. As CRB files are just a list of text commands, they can also be sent by a serial terminal program. Note: if using a serial terminal
program the Reader will first need to be commanded in to “text command mode”; see Section 7.1.
CRB files can also be encoded in barcode form using Code’s CortexTools® utility to be processed by scanning the barcode with a Code reader.
Pre-made Configuration barcodes can be found on Code’s web site (http://codecorp.com), and configuration CRB files can be requested via support@codecorp.com.
4.4 Barcode Commands
The Reader will recognize the following sequence within a barcode as a command to the Reader:
SOH ‘X’ GS STX Text-Command EOT (Packet does not contain spaces)
The Text-Command portion contains a text command as described above.
Because the Barcode Command is terminated with ASCII EOT, the Text-Command may not contain EOT. If the Text-Command needs to contain EOT, encode it as %04. Multiple commands can be contained in a single barcode.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 7 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
PID
Product family
Description
0x0200
Reader
Keyboard
0x0201
Reader
IBM POS (also known as IBM Handheld)
0x0202
Reader
HID Native (also known as Downloader)
0x0204
Reader
Code VCOM
0x0205
M3 Modem
Keyboard
0x0206
Reader
HID POS
0x0207
M3 Modem
DFU
0x0208
M3 Modem
HID POS
0x0209
M3 Modem
Keyboard + bulk interface
0x020A
T500 Cable
Keyboard (Used to communicate with CortexTools®)
0x0214
M3 Modem
Code VCOM + HID
0x0215
Reader
CDC
0xFFFF
M3 Modem
Modem bootloader
5 Communication Medium
The Reader communicates with the Host via USB (keyboard/HID/VCOM), RS232, or Bluetooth®. The Host includes appropriate hooks and/or drivers to enable two-way communication with the Reader.
Note: USB keyboard communications are one-way, from the Reader to Host only. A special sequence is available to switch the Reader from keyboard to HID communication mode. See register 1B.
5.1 USB Enumeration PID
The following Product ID (PID) are used by Code to identify their products when connected to a PC. All Code products use the same Vendor ID (VID) of 11FA
6 Reader to Host Communication
The Reader may be configured in raw mode, where no packet framing or check characters are sent, and packet mode (See sections 4.1 and 4.2) The Reader may also be configured to expect an acknowledgement from the Host after each packet and automatic retry when no acknowledgement is
received. Standard “one-way” mode of operation uses raw packets, no expected response from Host, and no automatic retry. Standard “two-way” mode of operation uses packets with framing and checks
characters, expects a response from the Host, and automatically resends. If no Acknowledgement is received (ACK), three (3) attempts to resend are made.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 8 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Language Part
Definition
packet
start packet-typenz data
opt
end
start
packet-startnr | codeXML-startnz
packet-start
SOH ‘X’ ‘R’ protocol-version Reader-id packet-number timestamp data-size
protocol­version
‘1’
Reader-id
big-endian 32-bit number
packet-number
data-packet-number | cmd-packet-number
data-packet­number
any byte value in the range [0,7f]; increments with each packet; does not increment with resends; used with z and a packets only
cmd-packet­number
any byte value in the range [80-ff]; increments with each packet; does not increment with resends; used with all packets other than z and a
timestamp
big-endian 32-bit number, indicates timestamp in seconds (relative to Reader power-up) (For all but z packets, the timestamp represents the time the packet was sent to the Host; for z packets, the time the barcode was read.)
data-size
big-endian 16-bit number indicating size of the data field (in bytes)
codeXML-start
SOH ‘X’ RS tag_response ‘/’
tag_response
‘ap’
packet-type
Single ASCII-character in table below
6.1 Raw Data
Reader to Host communication consists of decoded raw data having no framing or check characters. Raw data is sent with no “end of packet” data (crc16), expects no response from Host and no data is resent.
6.2 Packet Data
Data from the Reader to the Host consist of packets as specified below. Packetized data is sent using ACK/NAK protocols with framing and check characters. Packets are delivered asynchronously as barcodes are read and in response to Host to Reader commands. For keyboard communication (USB keyboard), all ASCII-characters are transmitted as keyboard-sequences. For all other communication ports, all ASCII-characters are transmitted as ASCII-bytes.
Note: Even though the data size field allows up to 65535 bytes of data in a packet, the actual size of a packet either in raw or in packet mode including data and packet overhead is a maximum of 16384 bytes.
Note: The following acronyms from the ASCII character definitions are used below:
SOH – Start of Heading (0x01) STX – Start of Text (0x02) EOT – End of Transmission (0x04) RS – Record Separator (0x1E)
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 9 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
data
character | data character
character
byte| keyboard-sequence
byte
any byte value in range [0x00,0xFF]
keyboard­sequence
key| shift key shift| alt decimal-code alt
key
~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | q | w | e | r | t | y | u | i | o | p | [ | ] | \| a | s | d | f | g | h | j | k | l | ; | | z | x | c | v | b | n | m | , | . | /| space| esc | tab | shift
| alt | ctrl | enter | backspace| f1 | f2 | f3 | f4 | f5 | f6 | f7 | f8 | f9 | f10 | f11 | f12| insert | delete | home | end | pageup | pagedown| left | right | up | down | keypadenter| digit
decimal-code
digit | digit digit | digit digit digit (range [0,255])
digit
keypad0 | keypad1 | keypad2 | keypad3 | keypad4| keypad5 | keypad6 | keypad7 | keypad8 | keypad9
end
codeXML-endnz crc16nr
codeXML-end
EOT
crc16
big-endian 16-bit number representing crc16 of the packet, calculated over the entire
packet, excluding the crc16 itself. See source files crc16.[hc] in Appendix: Example CRC16 C Code for details on the crc16 algorithm and polynomials to be used.
a
Append decode data; indicates that data contains the first part of the decode data. A sequence of ‘a’ packets always ends with a ‘z’ packet. The data of all ‘a’ packets in a group and the final ‘z’ packet should be concatenated by the Host.
d
Done response; command and its associated data were successfully received; data optionally contains a null-terminated text message.
e
Error response; command was not successfully received; data optionally contains a null­terminated text message.
g
Start of a group of ‘z’ packets to follow, terminated by a ‘d’ or ‘e’ packet (‘d’ for complete group, ‘e’ for incomplete group)
The following packet-types are defined:
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 10 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
i
indicates that data contains the zero-terminated Reader information string (of printable ASCII characters and TAB) in the following format:
iVVVVWWWWXXXXSSSSSSSSSSAOODYYYYHHIIIIJJJJKKKKLLLL<TAB>Z…Z
where:
i indicates ‘I’ string output VVVV is the application firmware version number; WWWW is the core application firmware version number; XXXX is reserved; SSSSSSSSSS is the Reader’s serial number (ten digits); A is the current execution state:
“A” means core is running OO is the OEM identifier; D is the display type:
“0” is no display device. YYYY is reserved; HH is the hardware revision; IIII is the hardware type identifier (value in register 21B); JJJJ is the boot application version; KKKK is the operating system kernel version; LLLL is the root file-system version; <TAB> is the ASCII TAB character; ZZ is the OEM decoder version: a null terminated string of printable ASCII characters.
m
Message response; data contains a message (comment). ‘m’ packets are not sent when the Reader is in “raw” mode.
r
Read barcode failure; decoder attempted but failed to read a barcode.
z
Decoded data from a barcode; data contains the data decoded from the barcode.
In “raw” mode (as opposed to “packet” mode), type m packets are not sent, only the decoded data is sent for type z packets, and all other packets are sent without the packet-start and crc16 fields. In “packet-mode,” the packet-start and crc16 fields are always sent. (See Figure 1)
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 11 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Raw Mode
z’ (data) packet:
Data
(non-z) packet:example ‘i'
CodeXML® iresponse example
CodeXML-start
packet-type
data
CodeXML-end
SOH
‘X’
RS
‘ap/’
‘i’
VVV…
EOT
Packet Mode
z’ (data) packet:
packet-start
Data
packet-end
SOH
‘X’
‘R’
‘1’
Reader ID
(4 bytes)
packet
number
(1 byte)
time
stamp
(4 bytes)
data size (2 bytes)
data
crc16
(2 bytes)
(non-z) packet:example ‘i
packet-start
CodeXML® i’ response
packet-end
SOH
‘X’
‘R’
‘1’
Reader ID
(4 bytes)
packet
number
(1 byte)
time
stamp
(4 bytes)
data size (2 bytes)
SOH
‘X’
RS
‘ap/’
‘i’
VVV…
EOT
crc16
(2 bytes)
Figure 1: Example 'z' and 'i' Packets in Raw and Packet Modes
Optionally, whenever the Host receives a packet, the Host will respond by sending a Y or R packet (defined in the Host to Reader Communication section) to the Reader. If the ‘expect response’ option is
enabled in the Reader configuration, the Reader will repeatedly retransmit the packet (a configurable number of times) until it receives a Y packet.
If a packet received by the Host has a packet-type that is not any of the valid types listed above or has the same packet-number as the last processed packet of the corresponding type (command or data), the entire packet – up to and including end or until timeout – should be discarded by the Host. If the Host had requested a response, it should reissue the request.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 12 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Language Part
Definition
text-command
command-type encoded-data
opt
carriage-return
command-type
Single ASCII character in the set defined in Section 7.3
encoded-data
encoded-datum | encoded-data encoded-datum
encoded-datum
printable-character | % hex-digit hex-digit
printable­character
any byte value in the range [0x20,0x7E]
hex-digit
0’ | ‘1’ | ‘2’ | ‘3’ | ‘4’ | ‘5’ | ‘6’ | ‘7’ | ‘8’ | ‘9’| ‘A’ | ‘B’ | ‘C’ | ‘D’ | ‘E’ | ‘F’| ‘a’ | ‘b’ | ‘c’ | ‘d’ | ‘e’ | ‘f’
carriage-return
0x0D
If a packet received by the Host from the Reader fails its CRC, the Host should send an R packet to the Reader to request that the packet be resent.
7 Host to Reader Communication
Commands and data from the Host to the Reader are sent in the form of commands as specified in this section.
Commands are normally sent in USB Native, VCOM, or RS232 modes. Commands may not be sent via keyboard modes.
Two command formats are supported: text-command and packetized-command. Text-command format is applicable to RS232 and VCOM modes but only if the Reader is configured to accept this format. Packetized-command format is applicable to all interfaces.
text-command: See Section 7.1.
packetized-command: See Section 7.2.
The command types are explained in Section 7.3.
After the Host sends each complete command, it should wait for a response packet from the Reader. Expected responses are specified along with the command types in section 7.3. If the Reader responds with an ‘e’ packet or doesn’t respond within a reasonable timeout period, the Host should resend the command a reasonable number of times.
7.1 Text Commands
Keywords: #TextCommands
Text commands may be sent to the Reader in RS232 or VCOM mode using any serial communications software (e.g., HyperTerminal).
Encoded-data is decoded by the Reader by replacing %xx by a single byte with the value specified by the two hex-digits xx- (e.g., %25 would be replaced by character number 0x25, which is ASCII ‘%).
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 13 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Language Part
Definition
normal­command
prefix command-type data-size data
opt
reserved crc14
prefix
0xEE 0xEE 0xEE 0xEE
command-type
Single ASCII character in the set defined in section 7.3
data-size
byte value in range [0,240], which indicates size of data (in bytes)
In order to eliminate inadvertent commanding of the Reader, Text Commands are disabled by default.
To enable Text Commands requires an initial sequence: ;>PAx where x is as defined in section 9, register 41. (Note: ‘A’ is the ASCII character that corresponds to 41 HEX.)
For example, to send the Reader commands by typing commands in HyperTerminal:
;>PA1 P(xx)yy P(xx)yy W PA8
Where ;>PA1 enables text commands with echo and command responses, P%xxyy can be any desired commands, W saves the settings just sent by the P command, and PA8 turns text commands back off (except for the initial sequence). (Note: ‘A’ is the ASCII character that corresponds to 41 hex, thus P%418 would be equivalent.)
Note: ;>PA1 is used for interactive text commands. If the commands are to be saved in a file and sent non-interactively, use ;>PA7 instead; this enables text commands but disables echo and command responses. (See Section 7.3, Section 9, and Section 10 for additional information.)
With text commands enabled, the following two examples can be sent to a Reader in RS232 mode from HyperTerminal by just typing the example text.
Example 1 - Make the Reader beep/vibrate 3 times (Note: Readers with a vibration motor are the CR1400, CR1400XHD, CR1428, CR2600, CR2600XHD, CR3600, CR3600DPM and CR6000.):
#%03 Expected output: should make Reader beep/vibrate 3 times
Example 2 - Set Reader to continuous-read, High Density field (FOI 0) only:
P(C4)5 Expected output: should set Reader to continuous-read, High Density field (FOI 0) only
7.2 Packetized Commands
Packetized commands consist of packetized data sent from Host to Reader to configure and cause the Reader to perform certain functionalities (e.g. CodeXML® rules, and settings). Packetized commands are always enabled, unlike text commands. In addition, they include error detection data, making them more robust than text commands.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 14 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
data
datum | data datum
datum
any byte value in the range [0,255]
reserved
0x00
crc14 Two consecutive bytes, each in range [0,127], representing the crc16 value &
with the value 0x7F7F, most significant byte first. The packet crc16 is calculated over the entire packet, excluding the prefix and the crc14 itself. (See source files in Appendix: Example CRC16 C Code and Appendix: Example CRC14 C Code for details on the crc16 algorithm and polynomials to be used, as well as how to implement appropriately for crc14 transmission.)
#
Causes the Reader to beep and vibrate the specified number of times; data contains the number as a single character in the range [0,127].
(The Reader will respond with d or e.)
Example – beep three times: #%03
Note: Behavior is defined per platform. CR900FD/CR1000/CR1000XHD/CR2300/CR5000/CR5000RTC/CR8000 – Beep three times. CR1400/CR1400XHD/ CR1428/CR2600/CR2600XHD/CR3600/CR3600DPM/ CR6000 – Beep and vibrate three times.
Note: Readers with a vibration motor are the CR1400, CR1400XHD, CR1428, CR2600, CR2600XHD, CR3600, CR3600DPM and CR6000.
$
Posts an event to the Reader; data contains the event number as a single character. See register C4 in Section 9 for a list of the event numbers.
(The Reader will respond with d or e.)
Keywords: #DefaultEvent
(
Causes the Reader to upload any logged error messages (no data)
(The Reader will respond with a g packet, zero or more z packets, and a final d or e. Each z packet contains a portion of the requested data in its data field.
Note: This is very similar to the response to the X command; however, p packets are not applicable and the g and d/e packets are not suppressed even in raw mode.)
)
Causes the Reader to erase its log of error messages (no data)
(The Reader will respond with d or e.)
,
Causes the Reader to send a list of current Reader settings (no data)
(The Reader will respond with d containing a space-separated list of all setting values (in order, expressed as hexadecimal ASCII characters) or with e.)
7.3 Command Types
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 15 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
(see ‘<’ command for saved Reader settings)
/
Toggle a bit (or bits) in a Reader setting; data contains a printable ASCII string in the following format: hexadecimal register number in parentheses followed by a 32-bit signed integer value, expressed in ASCII hexadecimal characters (with optional minus sign) or ASCII decimal characters preceded by the ‘#’ character, e.g., /(2e)1000 or /(2e)#4096; the specified integer is XORed with the existing setting value.
The way a / command is handled is equivalent to a P command – the effects are immediate but won’t survive a reboot. If you want the setting to be set after a reboot, issue a / then W or use the newer C/ combination.
(The Reader will respond with d or e.)
Note: see Section 9 for possible Reader settings.
1
Indicates the start of a file download; data is empty. This command is followed by a sequence of 2 commands containing the file data and a download-end command (e.g., 5).
(The Reader will respond with d or e.)
2
Indicates a continuation of a file download; data contains the next portion of the file data.
(The Reader will not send any response.)
5
Indicates the end of a regular file download; data contains the name of the file, which is from 1 to 200 letters, digits, periods, hyphens, and underscores, terminated with ASCII NUL.
(The Reader will respond with d, e, or f.)
9
Requests the Reader to delete a file from its storage; data contains the file name, terminated with ASCII NUL.
;
Reserved (no operation – treated as a comment)
<
Causes the Reader to send a list of saved Reader settings (no data)
(The Reader will respond with d containing a space-separated list of all setting values (in order, expressed as hexadecimal ASCII characters) or with e.)(see , command for current Reader settings)
=
Puts setting directly to Reader’s non-volatile memory so that it will take effect upon next reboot; data is as defined in the / command; the specified integer replaces the existing setting value.
Note: this command can be used to set communication modes without losing communication during the process.
(The Reader will respond with d or e.)
Note: The = command does not save changes immediately but those settings will be applied after a reboot. If you issue an =(2B)0 command to change the value of register 2B from 1, then until you reboot the value of 2B will still be 1. After you reboot the reader, the value of the 2B register will be 0 when the reader is ready again. In order to have that setting be immediate and survive a reboot you must either issue a P then a W command or use the newer C command. C(2B)0 is the same as these two commands combined: P(2B)0, W
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 16 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
The = command is most useful to ‘pre-set’ a new communication mode that will become active after a reboot.
(The Reader will respond with d or e.)
Note: Also see commands O, P, Q, /, =, W. See Section 9 for possible Reader settings.
>
Causes the Reader to send a string of text to the Host as a z packet; data contains the text to send.
(The Reader will respond with a z packet containing the text.)
@
Causes the Reader to reset its internal date/timestamp to the specified time; data contains the date and/or time in one of the following formats.
yyyy-mm-dd hh:mm:ss
yyyy-mm-dd hh:mm
hh:mm:ss
hh:mm
Note: the separators are optional; only digits are significant.
(The Reader will respond with d or e.)
Examples:
Set to midnight: @00:00
Set to Sept 1, 2005 11:52:02 PM: @2005-09-01 23:52:02
A
Notifies the Reader that the previously sent data were rejected for one of the following reasons:
The packet was encrypted and the decryption failed.
The Host (CodeXML
®
Modem) is locked to a different Reader.
The Reader should indicate to the user that the packet has been rejected; e.g., it may sound error beeps. See related register 12F: notify-of-packet-rejection.
(The Reader will not respond to the Host.)
C
Apply a value to a register on the reader and save the value; data is in one of the following formats:
C(XXX)YYY where XXX is the register number and YYY is the setting value, both in ASCII hex. This will change the value in the register and save it. For example C(26)64 will change the value of register 26 to 0x64 and save this setting.
C/(XXX)YYY where XXX is the register number and YYY is the setting value, both in ASCII hex. This will toggle the bits in YYY and then save the resulting value (see / command). For example C/(1F7)40 will toggle bit 6 of register 1F7 and save this setting.
CO(XXX)YYY where XXX is the register number and YYY is the setting value, both in ASCII hex. This will set the bits in YYY (change those bits to 1s) for register XXX (see O command). For example CO(1F7)40 will set bit 6 of register 1F7 high and save this setting.
CQ(XXX)YYY where XXX is the register number and YYY is the setting value, both in ASCII hex. This will clear the bits in YYY (change those bits to 0s) for register XXX (see Q command). For example CQ(1F7)40 will clear bit 6 of register 1F7 and save this setting.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 17 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Note: The C command can be used to set prefixes and suffixes. Please refer to section 7.4 for more
information.
Note: The C command saves changes immediately and those settings will survive a reboot. It is equivalent to issuing a P and =, then a W command. C(2B)0 is the same as these three commands combined: P(2B)0, =(2B)0, W
(The Reader will respond with d or e.)
Note: Also see commands O, P, Q, /, =, W. See Section 9 for possible Reader settings.
G
Get setting from Reader if followed by a register number in parenthesis.
G([prefix|suffix]) will return the prefix or suffix text.
(The Reader will respond with d and the setting value or with e. The setting value, if numeric, will be in hexadecimal, padded to 8 digits.)
Note: see Section 9 for possible Reader settings.
H
Requires subcommand. See below. $ – Lock
$
Commands to lock and unlock the reader with a PIN. Lock and Unlock the reader using the CR5000AV Configurator section of the Web Configuration Guide. By default, commands can be sent to the reader from a host (such as CortexTools or CortexMobile) even if the reader is locked. Commands can also be sent to a locked reader by embedding them in a Keyed Configuration Code. These Keyed Configuration Codes are generated by the Web Configuration Guide for CR5000AV commands, and will soon be generated by CortexTools and CortexMoble for general commands.
Sub-Commands:
Command
Description
R
Reset PIN and Unlock Reader
If this command is sent to the reader via barcode the read must be
triggered by a physical button press. The reader can not be in Continuous Scan or Motion Detection modes to read the barcode.
The reader must be rebooted within 30 seconds of receiving this
command in order to actually reset the reader. If the reader is not rebooted within 30 seconds, the reader will error beep and return to its previous, locked state.
Example: H$R
Keyword: #Lock
5 – CR5000 & CR5000RTC on-counter (In-Stand) or off-counter (Out-of-Stand) modes
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 18 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
5
Configures in on-counter (In-Stand) or off-counter (Out-of-Stand) behavior of the CR5000 & CR5000RTC to the specified mode. These codes are designed to configure complex modes in a single command, even if Code adds or changes some of the underlying commands at a later date.
Format: H5(in|out)<mode>
in|out
o in – configures the reader’s on-counter (In-Stand) behavior o out – configures the reader’s off-counter (Out-Of-Stand) behavior
mode
#
Mode
Description
0
Trigger
Scan on trigger press, use targeting LEDs otherwise. Does not block duplicate barcodes.
1
Pick List
Scan on trigger press, use targeting LEDs otherwise. The barcode must be near the center of the reader’s field of view to be decoded. Does not block duplicate barcodes.
2
Detect Barcode
Continuous scanning with IR illumination. If a barcode is detected, switch to red illumination. Will not output the barcode a second time while it remains in the field of view.
3
Detect Motion
Continuous scanning with IR illumination. If motion is detected, switch to red illumination. Will not output the barcode a second time while it remains in the field of view.
4
Always On
Continuous scanning with dim red illumination. If a barcode is detected, switch to normal red illumination. Will not output the barcode a second time while it remains in the field of view.
For example, to configure the reader for Trigger mode when handheld, use the H5(out)1 command. To configure the reader for Always On mode when on the counter, use the H5(in)4 command.
Keywords: #Stand A – Encryption Commands
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 19 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
A
Defines commands that are used with the wireless packet data encryption feature (256 Bit AES). Packet data encryption between a reader and modem can only occur on the M2 modem with firmware 0187+. When this feature is enabled, it will encrypt the data portion of the reader packet sent to the modem. Please reference the Code knowledge base (search
“AES Setup” at http://www.codecorp.com/knowledge-database.php) for detailed setup
instructions.
Format: HA<sub-command>
Sub-Commands:
Command
Description
e
Enable Encryption Feature
Enables Packet data encryption. Command will fail if reader is not connected to a modem. If the operation is successful, BOTH the reader and modem will blink the same pattern (on the wireless indicator for the reader). The pattern is two short blinks, one long, one short and a three second pause. A short blink is approximately 0.5 seconds and a long blink is 1 second.
Example: HAe
d
Disable Encryption Feature
Disables packet data encryption. In order for modem encryption mode to be disabled, reader needs to be connected to the modem when this command is issued.
Example: HAd
Keywords: #AES
T – T500 Commands T
Defines commands sent from the Reader to the T500 Bluetooth® Cable. There must be a T500 connected to a reader in order for these commands to have any effect. These commands induce the T500 to perform actions.
Format: HT<sub-command>
Sub-Commands:
Command
Description
c
Connect
Passes QuickConnect Code™ data from the host reader to the T500, which in turn attempts to connect to the specified Bluetooth® address.
Format: HTc<Bluetooth®_Address>
Where <Bluetooth®_Address> is the target Bluetooth® address represented in 12 hexadecimal characters.
Example: HTcAC220B48F040
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 20 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
d
Forget Paired Bluetooth® Devices
This command will cause the T500 to “forget” all connection information
associated with prior Bluetooth® hosts. After sending this command, it will require re-pairing for the devices to connect again.
i
Information
Information about the T500, forwarded to the wirelessly connected host. Broken further into sub-commands.
Format: HTi<sub-command>
Command
Description
b
Bluetooth®
Sends Bluetooth® address from T500 to wirelessly connected host.
s
Serial Number
A command sent to the T500 to have the T500 send its serial number to the wirelessly connected host.
f
Friendly Name
Sends Bluetooth® friendly name to wirelessly connected host.
f
Set Friendly Name
Friendly name follows the ‘f’, up to 30 characters. If more than 30 characters, the name will be truncated.
Example: HTfThis is a new name
k
Terminate Connection
This command will terminate the active Bluetooth® connection and clear the “last connected” index so that the T500 will not auto-reconnect to the last host
s
Change setting
These command will change settings or behavior of the T500 as described in the following table:
Format: HTs<sub-command><Setting Value>
To enter “Setting Value” in decimal, prefix the number with ‘#’,
otherwise the firmware will interpret the value as a hexadecimal number.
Example: To set the auto-reconnect timer to 20 seconds, use one of the following commands:
HTsr#20000 OR HTsr4E20
Command
Default (Hex)
Description
r
Auto­reconnect Timer
7530
(#30,000)
Valid Range: 3E8 (#1000) to FFFFFFFF Milliseconds
When disconnected, the T500 will attempt to reconnect to the last host periodically as determined by this setting value (in ms).
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 21 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Values less than 3E8 (#1000) are unsupported.
To disable the auto-reconnect feature, set to 0xFFFFFFFF (#-1).
p
Pre­emptible Mode
0
This setting determines whether a remote Bluetooth® host may disconnect an existing host already connected to the T500 and then connect to that T500.
0 – Bluetooth® Hosts will not be able to connect when the T500 is already connected to a different host.
1 – Only Bluetooth® hosts that have previously paired with the T500 will be able to connect to the T500 when it has an existing connection. It will not be discoverable to non-paired hosts.
2 – All hosts may connect to the T500 when it is currently connected to another host.
Keywords: #T500
All other sub commands are reserved.
I
Requests the Reader to send its information string (no data).
(The Reader will respond with i or e.)
Optional Subcommands:
Is
Retrieves Settings data Is[scd] s – saved settings (same as ‘<’ command) c – current settings (same as ‘,’ command d – default settings
Ib
Sends XML formatted battery information to Host.
J
Requests the Reader to restore settings to defaults (no data).
Note: J(prefix) and J(suffix) set the respective prefix or suffix to their default value. For most readers this is clearing the prefix or suffix. For the CR900FD, however, the suffix is reset to a CodeXML® encoded enter key.
(The Reader will respond with d or e.)
J1
Complete restore of factory setup. Will overwrite the apps and settings.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 22 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
L
Requests the Reader to send a list of its stored files data is:
(no data) or “0”; all non-hidden files. “1”; hidden and non-hidden files
(The Reader will respond in the same manner as with the ‘(’ command, each z packet containing a file name as a NUL-terminated string of printable ASCII characters.)
N
Deletes all stored images (.jpg and .pgm) and buffered scan data (.log and .buf files)
O
Set a bit (or bits) in a Reader setting; data contains a printable ASCII string in the following format: hexadecimal register number in parentheses followed by a 32-bit signed integer value, expressed in ASCII hexadecimal characters (with optional minus sign) or ASCII decimal characters preceded by the ‘#’ character, e.g., O(2e)1000 or O(2e)#4096. The specified integer is ORed with the existing setting value.
The way an O command is handled is equivalent to a P command – the effects are immediate but
won’t survive a reboot. If you want the setting to be set after a reboot, issue an O then W or use the
newer CO combination.
(The Reader will respond with d or e.)
Note: see Section 9 for possible Reader settings.
P
Put a value in a Reader register; data contains a printable ASCII string in the following format: hexadecimal register number in parentheses followed by a 32-bit signed integer value, expressed in ASCII hexadecimal characters (with optional minus sign) or ASCII decimal characters preceded by the ‘#’ character, e.g., /(2e)1000 or /(2e)#4096; the specified integer replaces the existing register value.
(The Reader will respond with d or e.)
Note: The P command can be used to set prefixes and suffixes. Please refer to section 7.4 for more information.
Note: The P command saves changes immediately but those settings will not survive a reboot. If you issue a P(2B)0 command to change the value of register 2B from 1, then reboot the reader, the value of the 2B register will be 1 when the reader is ready again. In order to have that setting survive a reboot you must either issue a P then a W command or use the newer C command. C(2B)0 is the same as these three commands combined: P(2B)0, W
(The Reader will respond with d or e.)
Note: Also see commands O, P, Q, /, =, W. See Section 9 for possible Reader settings.
Q Clear a bit (or bits) in a Reader register; data contains a printable ASCII string in the following format:
hexadecimal register number in parentheses followed by a 32-bit signed integer value, expressed in ASCII hexadecimal characters (with optional minus sign) or ASCII decimal characters preceded by the ‘#’ character, e.g., Q(2e)1000 or Q(2e)#4096. The ones-complement of the specified integer is ANDed with the existing register value.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 23 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
The way a Q command is handled is equivalent to a P command the effects are immediate but won’t survive a reboot. If you want the setting to be set after a reboot, issue a Q then W or use the
newer CQ combination.
(The Reader will respond with d or e.)
Note: Also see commands O, P, Q, /, =, W. See Section 9 for possible Reader settings.
R
Requests that the previously sent packet be re-sent by the Reader; data may specify a maximum packet size the receiver will accept: data is either empty or specifies a 16-bit big-endian unsigned integer (2 bytes). If data is empty or specifies a size less than 32 (the minimum packet size), the Reader will use its preferred maximum packet size. Otherwise, it will use the specified max packet size (or less) and will fragment data across multiple smaller packets when necessary.
(The Reader will respond by resending its previous packet or with e if there was no previous packet. If the max data size has changed, it may resend the previous data in a sequence of more than one packet.)
T
Requests the current date and time (no data)
(The Reader will respond with d with data containing the date and time formatted as yyyy-mm-dd hh:mm:ss.)
W
Requests the Reader to write its current settings from RAM to its non-volatile memory.
(The Reader will respond with d or e.)
Note: The W command saves changes that have been make with a /, O, P or Q so those settings will survive a reboot. If you issue a P(2B)0 command to change the value of register 2B from 1, then reboot the reader, the value of the 2B register will be 1 when the reader is ready again. In order to have that setting survive a reboot you must either issue a P then a W command or use the newer C command. C(2B)0 is the same as these two commands combined: P(2B)0, W
(The Reader will respond with d or e.)
Note: Also see commands O, P, Q, /, =, W. See Section 9 for possible Reader settings.
Y
Acknowledge the receipt of a packet; data specifies the received packet number (one byte).
(The Reader will not respond.)
Z
Request the Reader to reboot data is:
empty or ‘0’; reboot the Reader. ‘1’; restart application.
(The Reader will respond with d or e before it reboots.)
^
Requests the Reader to upload the specified stored file; data contains the file name, terminated with ASCII NUL.
The Reader will respond with:
A ‘g’ packet containing “filename<tab>(size)”
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 24 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
 One or more ‘z’ packet(s)  A ‘d’ packet containing “EOF<tab>(CRC16)”
Note: filename “help” is reserved to send command information.
_
Causes the Reader to wait for all buttons to be released and clear its event queue
(The Reader will respond with d or e.)
|
Process data as a decoded string.
(The Reader will respond with d or e.)
7.4 Prefix and Suffix Handling
Prefixes and Suffixes are defined in text files (.prefix and .suffix) that reside on the reader. Readers with default prefixes and suffixes are defined in the files .prefix.default
C([‘prefix’|’suffix’])<URL encoded text> will set the prefix or suffix to text. The prefix and suffix each have a maximum length of 64 bytes. The URL encoded text must be in UTF-8 format. For standard ASCII characters, this encoding is the same as ASCII. For extended ASCII (values of 0x80 through 0xFF) the characters must be encode as a 2-byte sequence starting with either 0xC2 or 0xC3 (see http://www.fileformat.info/info/charset/UTF-8/list.htm or http://en.wikipedia.org/wiki/UTF-8). Exception: if JavaScript is being bypassed during decoding, then the prefix/suffix may be in extended ASCII.
Example: C(suffix)%01X%1ean//n%04 will create a CodeXML® sequence to send the scancode for the enter key.
Example: C(prefix)ol%c3%a9 will create a prefix of “olé”
8 File Installation
8.1 Simple Protocol
The file is split into blocks of 236 or less bytes each and downloaded to the Reader via 1, 2, & 5 commands using the following sequence:
1) Send a 1 command to initialize the download.
2) Wait for a d or e response from the Reader or a timeout. a) If timeout or e response, restart the sequence at step 1. b) If d response, continue to step 3.
3) Send a series of 2 commands, each with a portion of the file. (The Reader will not send
any response.)
4) Send a 5 command to end the download and install the file.
5) Wait for a d, e, or f response from the Reader or a timeout. a) If f response or timeout, restart the sequence at step 1. b) If e response, repeat step 5. c) If d response, file download has completed successfully.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 25 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Bit (R to L)
Controls
Value
0
NEC 2 of 5 Decoding 0: Disabled
1: Enabled
1
Enable checksum checking 0: Disabled
1: Enabled
Note: the timeout will need to be increased from the normal response timeout to allow the firmware time to write the file to the flash memory.
9 Reader Settings
The Host sets the Reader settings using the /, C, O, P, Q, and = commands and reads them using the G, ,’, and < commands.
For example, the following C command sets register 2E to the value 0x7F.
C(2E)7F
Note: for two-digit register numbers (i.e. settings 00 through FD), an alternative format may be used: in place of the parentheses and hexadecimal setting number, substitute a single character, which represents the setting number. The equivalent to the example above is
C.7F
The ASCII .’ character has the hexadecimal value 0x2E. In certain circumstances, such as with text­commands, “percent-encoding” may be used for encoding a character as a sequence consisting of the percent character followed by two hexadecimal digits. With percent-encoding, the example may be expressed as
C%2E7F
In Section 9.3 below, the Reg column is the register number, in hexadecimal, to be used with the commands identified above. In the Default column, all values are in hexadecimal unless otherwise specified. To use decimal values in commands you must precede the data with a pound sign ‘#’. The following C command sets register 2E to the same value as the example above:
C(2E)#127
Since the single digit values of 0 through 9 are identical in decimal and hexadecimal, no indicator is needed.
9.1 Binary Dip Switch
Some registers are what Code terms a ‘Binary Dip Switch’ where the value of each bit of the data string
switches on or off some part of the behavior of that register. The bits are numbered from least significant to most (a.k.a. right to left). Each bit can be on or off (1 or 0).
An example of this is register 0A, ‘NEC 2 of 5 Options’. The following settings are possible:
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 26 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
2
Remove checksum from the result (Checksum checking must be enabled for this to take effect)
0: Disabled
1: Enabled
Persistence
Description
Unprotected
Unless otherwise specified, all settings have this type of persistence.
This setting can be changed using a command such as ‘P’ or saved using commands such as ‘C’ or ‘W’. If the reader is reset to factory defaults using a ‘J’
command, the setting will revert to its default value.
Protected
This setting can be changed or saved. If the reader is reset to its factory defaults
using the ‘J’ command, the value of this setting will not change. However, if the
settings file is deleted, the setting will revert to its default value on the next boot.
Given the settings above, the binary string to turn on NEC 2 of 5 decoding with checksum checking and the checksum removed from the result string, is 111 (bits left to right). The same string would be 0x7 or decimal 7.
Thus, the command to implement the settings above would be:
C(0A)7
Or
C(0A)#7
9.2 Field of Interest
The reader optics are typically split into two separate fields - Field Of Interest 0 (FOI 0) and Field Of Interest 1 (FOI 1). In certain circumstances, these fields can be customized to the requirements of the user. In the default configuration of these fields FOI 0 is the High Density (HD) field and FOI 1 is the Wide (W) field.
At a given focus distance, the FOI 0 field is designed to read small, low-mil barcodes while the FOI 1 field is designed to pick up large, wide barcodes.
This document will refer to FOI 0 as HD and FOI 1 as Wide.
Note: The CR900FD is a single Field of Interest reader. There is no FOI 0 in the CR900FD.
9.3 Reader Setting Persistence
Some reader settings have special behaviors under certain conditions, such as when resetting to factory defaults. There are four categories for setting persistence, which are listed below.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 27 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Preserved
This setting can be changed and saved. This setting is not affected by a ‘J’ command, nor by deleting the settings file.
Reset-on-boot
This setting can be changed but cannot be saved. On boot up the reader will revert to the default value. A ‘J’ command will also reset this value to default
9.4 Docked State Settings
Keywords: #Charger, #Stand
9.4.1 Overview
Some readers support the ability to change behavior, based on whether they are in a docked state. Docking can be achieved in two different ways. A reader is considered docked when it is placed in a stand that has hardware to indicate its presence, such as a charging base, or, in the case of the CR5000 & CR5000RTC, when it is placed on a surface. The undocked state is when the reader is removed from the stand or is picked up off a surface (again, for the CR5000 & CR5000RTC). These behavior changes are controlled in three different ways.
1. Wired readers (except the CR5000 & CR5000RTC) have a reed switch that is acted on by a
magnet in the stand to indicate docked state. These readers check and act on the docked state in order to change behavior.
2. By default, wireless readers have an In-Charger Event register and an Out-of-Charger Event
register. When the dock state of the reader changes, the corresponding event from the register will be fired. By default, the events enable battery charge level indication when docked.
3. The CR5000 & CR5000RTC utilizes a set of Standard registers that have corresponding In-Stand
and Out-of-Stand registers for each. The In-Stand or Out-of-Stand register values are copied to the Standard registers when the reader detects a change in the docked state. Wireless readers can be also configured (using register 2AB) to leverage this In-Stand/Out-of­Stand/Standard register method. The In-Stand behavior takes effect when the wireless reader is placed in its charger base, and the Out-of-Stand behavior takes effect when the wireless reader is removed from its charger base.
For the docked/undocked settings to have any effect, the reader must be configured to detect a stand (bit 6 of register 1F7). For the Bluetooth®-enabled readers, the reader must also be configured to detect the charging base as a stand (register 2AB).
Changing the In-Stand and Out-of-Stand registers does not do anything immediately. The reader does not look at the In-Stand Default Event register (2C2), for example, to decide what to do when it is docked. Rather, the reader is always looking at the Default Event register (C4), but the Default Event setting is changed when the reader is docked or undocked. For example, when the reader is docked, the value of the In-Stand Default Event register (2C2) is copied to the Default Event register (C4).
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 28 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
The trigger for copying the In-Stand (or Out-of-Stand) settings to the corresponding standard settings is an event that gets posted by the firmware when it detects a change in the docked state (again, the charger for the Bluetooth® readers and the counter/table for the CR5000 & CR5000RTC). The “update behavior based on the stand” event (event 0xF2 as used by register C4 and other registers that utilize events) is the generic event that will trigger this operation.
9.4.2 H5 commands (CR5000 & CR5000RTC only)
The CR5000 & CR5000RTC support several standard presentation and handheld modes, which can be specified using the H5 subcommands. These commands are described in the Command Types section of this document. Of note here, however, is that these commands will overwrite the In-Stand or Out­of-Stand registers with pre-defined values, and perform the equivalent of event 0xF2 mentioned above, so that the In-Stand or Out-of-Stand settings take effect immediately. To create a custom configuration barcode that uses an H5 command, but also modifies one of the In-Stand or Out-of-Stand registers, first issue the H5 command, then modify the In-Stand or Out-of-Stand register(s), and then issue event 0xF2 to force the settings to take effect immediately. Note that if the custom configuration barcode does not modify any of the In-Stand or Out-of-Stand settings directly, then event 0xF2 is not necessary.
As an example, to create a custom configuration code that sets the beep volume of the CR5000 & CR5000RTC to 30% at all times and configures the on-counter (In-Stand) Trigger mode with the exception that targeting lights are not illuminated, type these commands (with or without all the comments) into a text editor:
H5(in)0 ;This command sets the built-in on-counter (In-Stand) Trigger Mode. C(2DB)0 ;This command sets the In-Stand Target Enable register to 0, where the
H5(in)0 would have set it to 1.
$%F2 ;This command updates the standard registers from either the In-Stand or
Out-of-Stand registers, depending on the current state. For example, if $%F2 is issued while the reader is in the Out-of-Stand state, the reader will copy all of the Out-of-Stand registers to the corresponding standard registers. (In this example, register 2DB is the In-Stand value for standard register 0F).
C(26)1E ;This command sets the beep volume to 30% of full by setting the
register to 0x1E (30 in decimal). Standard commands, such as this one, are not affected by the In-Stand or Out-of-Stand state so they apply at all times.
Save the file with the .crb extension, then either loaded to the reader directly or convert it into a Data Matrix configuration code readable by the CR5000 & CR5000RTC using a Code barcode generation tool such as CortexTools®.
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
Page 29 of 106
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
4/14/2016
Reg
Setting Name
Default (Hex)
Comment
00
Bluetooth® Radio Out­of-range indicator
0
Binary Dip Switch
Bit
Controls
Value
0
Vibrate 0: Disabled
1: Enabled
1
Beep 0: Disabled
1: Enabled
Note: Readers with a vibration motor are the CR1400, CR1400XHD, CR1428, CR2600, CR2600XHD, CR3600, CR3600DPM and CR6000.
Keywords: #Beep, #Vibration
04
Continuous Illumination During Read
0 CR5000: CR5000RTC: 1
0: Minimal Illumination (Illumination stops whenever not needed during the Read Cycle – this produces a little more flashing but reduces power consumption to a degree) 1: Leave Illumination On Until End of the Read Cycle
Leave illumination on during read
05
USB Declaration Wait State
0
0: Declare enumeration after receipt of set LED status report 1: Declare enumeration after receipt of get report descriptor command (used for some Windows® CE-based devices) 2: Declare enumeration after the receipt of set configuration command.
Special case for USB enumeration that doesn’t require Host keyboard response
Persistence: Protected
08
Reader Packet Format
1
1: Raw Mode 2: Packet Mode 6: Safe Upgrade Mode (Version 1)
This setting is used in conjunction with registers 1B and 42 to
configure the communication mode between standard “one­way” and “two-way” modes.
For example, USB “two-way” native:
1B: 5 (USB Native) 08: 2 (packet mode) 42: 1 (expect response)
Persistence: Protected
Keywords: #Communications
9.5 Reader Settings Table
D014465 CR1400 CR1000 CR2300 CR2600 CR3600 CR44X5 CR8000 CR900FD CR6000 CR5000 T500 Client Version ICD
© 2013-2016 The Code Corporation  12393 South Gateway Park Place Suite 600, Draper, UT 84020  (801) 495-2200  FAX (801) 495-0280
Page 30 of 106
Loading...
+ 76 hidden pages