DLRMUS
DLRMUS
MANAGEMENT UTILITY
USER GUIDE
All rights reserved. Without limiting the rights under copyright, no part of this documentation may be repro-
duced, stored in or introduced into a retrieval system, or transmitted in any form or by any means, or for any
purpose, without the express written permission of Datalogic S.p.A. and/or its affiliates.
Owners of Datalogic products are hereby granted a non-exclusive, revocable license to reproduce and transmit
this documentation for the purchaser's own internal business purposes. Purchaser shall not remove or alter
any proprietary notices, including copyright notices, contained in this documentation and shall ensure that all
notices appear on any reproductions of the documentation.
Electronic versions of this document may be downloaded from the Datalogic website (www.datalogic.com). If
you visit our website and would like to make comments or suggestions about this or other Datalogic publica-
tions, please let us know via the "Contact" page.
Disclaimer
Datalogic has taken reasonable measures to provide information in this manual that is complete and accurate,
however, Datalogic shall not be liable for technical or editorial errors or omissions contained herein, nor for
incidental or consequential damages resulting from the use of this material. Datalogic reserves the right to
change any specification at any time without prior notice.
Trademarks
Datalogic and the Datalogic logo are registered trademarks of Datalogic S.p.A. in many countries, including the
U.S.A. and the E.U.
Patents
See www.patents.datalogic.com for patent list.
TABLE OF CONTENTS
DATALOGIC REMOTE MANAGEMENT UTILITY.............................................................. 1
INTRODUCTION ............................................................................................................... 1
DISTRIBUTION ................................................................................................................. 1
Windows ..................................................................................................................................... 1
Linux ............................................................................................................................................ 1
INSTALLATION ................................................................................................................ 1
File Organization ......................................................................................................................... 2
CONFIGURATION ............................................................................................................. 3
Miscellaneous parameters ................................................................................................................. 3
Profile parameters .............................................................................................................................. 3
Model parameters .............................................................................................................................. 4
OPERATIONS ................................................................................................................... 5
Overview .............................................................................................................................................. 5
Supported Operations ......................................................................................................................... 6
Command Line Options ...................................................................................................................... 6
Querying a scanner ............................................................................................................................. 8
Updating Scanner Firmware .............................................................................................................. 8
Errors ............................................................................................................................11
Legacy ERRORS .............................................................................................................13
APPENDIX A ............................................................................................................ 17
Command Line Parameter Details .................................................................................................. 17
Example Batch file ............................................................................................................................ 18
Linux Terminal Setup ....................................................................................................................... 19
NOTES
INTRODUCTION
DLRMUs is a utility whose purpose is to remotely update a scanner’s firmware and/or its
configuration by uploading a file (payload) to the device. DLRMUs exists as both Windows
and Linux implementations and is intended to replace the older utilities DLRMU (Win-
dows) and cmdfw (Linux).
The s in DLRMUs means ‘standalone’, indicating the application doesn’t require either
OPOS or JavaPOS to be installed, as in the case of its predecessors.
DISTRIBUTION
DLRMUs distributions in Windows and Linux environments are given below
Windows
Standalone: dlrmus.<version>.zip
OPOS-integrated: Datalogic_OPOS_<version>.msi
Linux
Standalone: dlrmus32.<version>.tar
Standalone: dlrmus64.<version>.tar
INSTALLATION
Standalone versions of the DLRMUs do not require an installer; you must simply unzip the
distribution into a directory having read and write permissions. The OPOS-integrated ver-
sion does require running an installer with administration privileges.
USER GUIDE 1
INSTALLATION
File Organization
Standalone and OPOS-integrated versions of DLRMUs have different requirements and thus
the locations of installed files are different.
For standalone versions, the installation layout is:
dlrmus\
Configuration\
properties.json
logs\
<log files>
dlrmus.exe
DLRMUS.pdf
EULA.pdf
CONFIGURATION
Configuration is managed via the JSON file properties.json, and from here on it will be
referred to as the properties file. You should become familiar with the JSON format
because something as simple as a missing comma will cause you grief. To this end, there are
many JSON validators available as online services. So, if you change the properties file, a
validator will help you find syntax errors. The properties file has three basic sections 1) Pro-
files, 2) Models and 3) miscellaneous parameters. Viewing the properties file in an edi-
tor, the first two sections can be found by simply searching for either Profiles or Models.
The miscellaneous parameters have no section name but are seen at the top of the file.
Miscellaneous parameters
The miscellaneous parameters are seen at the top of properties.json as:
"MaxLogFiles": 10,
“SummaryMaxSize”:100,
"ConsoleInfo": false,
"ConsoleHealth": false,
"ConsoleStatistics": false,
"LegacyErrorCodes": false
Of the above parameters, the MaxLogFiles and SummaryMaxSize will likely be the most
important because they control the lifetime of the log files produced by DLRMUs.
Log files come in two forms 1) the summary log provides summary information about suc-
cessive sessions (uses of DLRMUs) and 2) a traffic log provides detailed information about
single session. MaxLogFiles controls the maximum number of traffic log files generated
before the traffic log files begin to be recycled. SummaryMaxSize, whose units is kilobytes,
controls the maximum size of the summary log file. The summary log file will be overwrit-
ten when its size exceeds SummaryMaxSize.
The remaining miscellaneous parameters simply control the display of various information
to the command/terminal window. Note, the same (output) information is recorded in the
log files with more context.
Profile parameters
A Profile is simply a name representing a family of scanners, related by their interface, and
nearly all DLRMUs commands require you to reference a Profile.
The Profiles section is a json-object containing Profile definitions and each Profile is a json-
object containing its defining parameters. The Interface parameter is significant because it
defines the communication method between the host and the scanner. A Profile may con-
tain additional communication properties related to its interface (e.g. COM port, baud rate,
etc.)
USER GUIDE 3
CONFIGURATION
"Profiles": {
"RS232Scanner": {
"Interface": "RS-232",
< more properties >
},
"SCRS232Scanner": {
"Interface": "SC/RS-232",
< more properties >
},
"RS232Imager": {
"Interface": "USB/COM",
< more properties >
},
"USBScanner": {
"Interface": "USB-OEM",
"Usage": "4A00",
< more properties >
}
}
Nearly all DLRMUs commands require you to provide a Profile name with the -a command
line argument. Example commands are provided in the OPERATIONS segment of this man-
ual.
Model parameters
A Model is simply a name representing a specific make of scanner and can be used with
some DLRMUs commands to restrict the scope of an operation.
The Models section is a json-object containing Model definitions and each Model is a json-
object containing its defining parameters. The Patterns of a model is a set of character
strings representing some number of expected characters returned in the scanner's Top-
ModelNumber. It is unlikely you will ever need to make changes in this section.
OPERATIONS
Overview
DLRMUs is a command line application and must be executed with adminstrative privileges
using a command/terminal window. A listing of command options can be obtained by exe-
cuting the command dlrmus --help.
During command execution, DLRMUs performs an integrity check, ensuring the existence of
the required configuration (JSON) files and a folder to which log files can be written. Failing
the integrity check, DLRMUs will report the source of the error and exit immediately.
Excluding such cases of catastrophic failure, DLRMUs generates output in two log files:
1.dlslog.txt (a summary/overview log file)
2.dlslogX.txt (a traffic log file, where X is some value in the range [0..MaxLogFiles-1])
Entries in the summary log are made per session (i.e., per command), and each entry pro-
vides a reference to its associated traffic log. The lifetimes of the log files are determined by
their respective SummaryMaxSize and MaxLogFiles parameters, defined under miscella-
neous parameters.
The log files can (mostly) be ignored. However, if you encounter issues when using DLRMUs,
the log files will help you and any support personnel to resolve your issue.
In a standalone installation, log files are recorded in the directory:
dlrmus\logs
In an OPOS-integrated installation, log files are recorded in the directory:
C:\ProgramData\Datalogic\dlrmus
This latter location was chosen because it is adjacent to the OPOS logs directory:
C:\ProgramData\Datalogic\logs
Upon completion of each command, a status code will be written to the summary log and
to the command/terminal window.
Status Codes
0: success (regardless of the operation)
1: failed (regardless of the operation)
6: failed (see associated error message)
Upon successful completion of each firmware updating command, DLRMUs provides revi-
sion feedback in the form of:
ApplicationRevisionLevel: <before updating> ===> <after updating>
ApplicationROMID: <before updating>===> <after updating>
ConfigurationFileID: <before updating>===> <after updating>
When formulating a command line, one requiring interaction with a scanner, you must
always provide the arguments -a<Profile name>. When interacting with a serial device,
you may need to provide additional parameters to control communication; the decision to
do this depends upon your goal and your programming style.
USER GUIDE 5
OPERATIONS
Supported Operations
DLRMUs supports the following operations:
1. Providing help about command line options
2. Querying a scanner.
3. Updating scanner firmware.
The details of these operations will be discussed in subsequent sections.
dlrmus --help
Referencing a standard Windows installation, this command should yield output like:
Information
-N Display a list of profile names (with associated interface).
-M Display a list of short model names.
Update a Scanner
-a [...] Select the scanner interface profile. See also -N.
e.g. -a RS232Scanner
-r Changes the meaning of -F from TopModelNumber to "short model
name". See also -M.
e.g. -r -F "9800i SS"
-F [...] Select a scanner using its TopModelNumber (or beginning characters
of).
e.g. -F 981234567890 or -F 981
-f [...] Select the scanner updating payload. The file path should be both
fully-qualified and surrounded by quotation marks.
e.g. -f "C:\Users\Fred\update.S37"
-e [...] Set the minimum allowed firmware revision. Prevents firmware
updating if the payload revision is less-than-or-equal to the current
firmware revision. The revision number is a 4-digit sequence. A value
of 9999 allows all updates to proceed.
e.g. -e 1234
-l [...] Select a custom log file.
e.g. -l "C:\Users\Fred\mylog.txt"
-v [...] Set the delay (in seconds) between resetting the device and recon-
necting to it. In the absence of the -v arguments, the default delay is
60 seconds.
e.g. -v 30
-E Leave the device enabled after an update.
USER GUIDE 7
OPERATIONS
Querying a scanner
You can obtain the Information, Health and Statistics (IHS) from a scanner with a command
as simple as:
dlrmus -a USBScanner
This works only because the USBScanner profile represents a scanner having a USB-OEM
interface, so no other parameters are required to establish communication with the scan-
ner.
Two more examples of querying IHS data are:
dlrmus -a RS232Scanner
dlrmus -a RS232Scanner -c 0 -b 9600 -d 8 -s 1 -p n
The first example illustrates using the default communication parameters associated with
the RS232Scanner profile. The latter example illustrates using explicit communication
parameters.
When you query a scanner for IHS data, the human-readable data is recorded in the sum-
mary log. IHS data is also twice recorded in the summary log every time you update the
firmware of a scanner (prior to updating and after updating).
Additionally, IHS data (though in a slightly different form) is recorded in a .PRF file along
with the log files. The name of the file is based upon the scanner’s profile name (e.g.
RS232Scanner.PRF) and its content is tailored to specific clients (that is, not everyone will
find it useful).
DLRMUs will obtain the supplementary parameters from the associated Profile in proper-
ties file. However, if you have reconfigured the scanner or want to ensure you are updating
the correct scanner using the correct parameters then you might need a more complicated
command line like:
dlrmus -a RS232Scanner -c 1 -p n -d 8 -b 115200 -t 9600 -r -F "9400i SO" -f "<file-
path>" -v 30
The number of possible command lines is very large and cannot be reasonably discussed in
this document. However, the following sections present categorized examples.
Example High Speed Scanner Firmware Update Sequence Using Model Name
Validation
Please note, the following sequence of commands is better suited for use in a batch file or
script. Here, we simply explain the sequence. See the appendix for an example batch file.
Validate model name (9400i SO), communicates at 9600 baud for scanner ID
dlrmus -c 1 -p n -d 8 -a RS232Scanner -b 9600 -r -F "9400i SO" -e 0390 -v 30
USER GUIDE 9
OPERATIONS
Communicates at 9600 for scanner ID, change to 115200 and switch @115200 after
the update
dlrmus -c 1 -p n -d 8 -a RS232Scanner -b 9600 -t 115200 -r -F "9400i SO" -f
“115K.S37” -v 30
ERRORS
Legacy
Exit
Exit Exit Description
Code
Code
0 0 Success
1 103 The supplied file is not appropriate for the targeted device
See the summary log <file path> for details.)
The Information, Health and Statistics query may fail for many rea-
sons.
Some things to verify are:
1 104 1. Is the device is turned on?
2. Are the cables are properly connected?
3. Are you using the correct device profile?
4. Do the connection parameters you're using match the device
configuration?
See the summary log <file path> for details.)
The Information, Health and Statistics query may fail after updating
the
device firmware for several reasons.
1 105 Some things to verify are:
1. Did the uploaded file changed the communcation parameters?
2. Did the uploaded file changed the device from flatbed to hand-
held?
3. Is the pause duration (-v) adequately large?
The device TopModelNumber is associated with <model no.> and not
1 106
the specified <model no.>
1 107 Payload does not contain a SoftwareID
USER GUIDE 11
ERRORS
Legacy
Exit
Exit Exit Description
Code
Code
1 115 Failed to load the payload.
Legacy
Exit
Exit Exit Description
Code
Code
F/W update version > initial version
LEGACY ERRORS
Exiting with code 1 (Error: Unknown device profile.)
The argument supplied with the -a parameter is not represented in Profiles section of the
properties file. A typo in the argument is the most likely reason for this failure.
Exiting with code 1 (Error: The supplied file is not appropriate for the targeted
device.)
The payload file-type associated with the -f parameter is not correct for the targeted
device. Devices using the USB-OEM interface must use .DAT files. Devices using any other
interface must use .S37 files.
USER GUIDE 13
LEGACY ERRORS
Exiting with code 1 (Error: Failed to update the device. See logs for details.)
The log files may provide sufficient information to help your resolve the issue. If not, con-
tact Datalogic technical support and be ready to provide your log files.
Exiting with code 1 (Error: Failed to query Information. See the summary log <file
path> for details.)
Exiting with code 1 (Error: Failed to query Health. See the summary log <file path>
for details.)
Exiting with code 1 (Error: Failed to query Statistics. See the summary log <file
path> for details.)
The application failed to obtain the requested information from the device. There are many
possible reasons for failure. The most common reason is the application did not have ade-
quate time to properly reset before the query was made. The post-reset delay can be
extended by using the -v option. Also, the summary log provides a reference to the traffic
log associated with the action. In turn, the traffic log may provide some clues to the failure.
Exiting with code 1 (Error: The device TopModelNumber is associated with "<model
name> " and not the specified "<supplied model name>")
The supplied model name associated with the -r -F parameters does not match the device
model, as identified by its TopModelNumber. Likely reasons for this failure are 1) the wrong
model name was supplied or 2) the Pattern representing the device is associated with the
wrong Model in the properties file.
Exiting with code 1 (Error: Failed to parse Firmware Revision from IHS after updat-
ing.)
Exiting with code 1 (Error: Failed to parse Application ROM File ID from IHS after
updating.)
Contact Datalogic technical support.
Exiting with code 1 (Error: Unable to determine model from IHS data.)
The update was likely successful but the device could not be re-enabled. Contact Datalogic
technical support.
Exiting with code 1 (Error: Failed to open the summary log: <file path>/dlslog.txt.)
Exiting with code 1 (Error: Failed to open the traffic log: <file path>/dlslog(X).txt.)
There is likely a file access conflict of permissions issue.
Exiting with code 1 (Error: Failed to parse properties file for profile names.)
Exiting with code 1 (Error: Failed to parse properties file for model names.)
The properties file contains a syntax error.
Exiting with code 1 (Error: The supplied Firmware Revision (-e) xxxx is the same
as the device's yyyy)
Exiting with code 1 (Error: The supplied Firmware Revision (-e) xxxx is the older as
the device's yyyy)
These are not errors because the -e option was used. The message explains why the
attempted updating action was rejected.
USER GUIDE 15
APPENDIX A
The argument associated with -f represents the name of the file to be uploaded to the scan-
ner. Said argument should be a fully-qualified file path surrounded by quotation marks (e.g.
-f […]
-f "c:\tmp\myfiles\file.ext "). Also note, USB-OEM scanners accept only .DAT files and all
other scanners accept only S37 files. Service Port connections accept .SWU files.
The argument associated with -F is compared against the TopModelNumber returned by the
-F […] scanner. All characters must match exactly (up to the limit provided by your argument). The
scanner will not be updated if there is a mismatch. Not supported with ServicePort profile.
The argument associated with -F is compared against the list of available Model names
found in the Models section of properties.json. The Model name you provide must be
bounded by quotes (e.g. -r -F "9400i SO"). You can obtain the list of available model names
-r -F […] using:
dlrmus -M
Not supported with ServicePort Profile.
The argument associated with -e is four digits representing the Firmware Revision of the file
you intend to upload to the scanner. The scanner will not be updated if its current EC Level is
-e […]
greater-than-or-equal-to the value you provide. A value of 9999 can be used to force an
update. Not supported with ServicePort Profile.
The parameter following the -c indicates the port to be used for serial communications. You
can rely on the default value in properties.json. However, if you insist on defining the param-
eter on the command line then the value you provide depends upon whether you are a Win-
dows or Linux user. A Windows user need simply provide an integer value representing the
-c […]
COM port number. A Linux user must specify the device path (e.g. -c /dev/ttyS0). Finally,
with respect to USB-COM devices, it is possible to use virtual COM port behavior. You can do
this by setting "UseVirtualPort" to 1 in properties.json. Not supported with ServicePort Pro-
file.
set comport=2
dlrmus -a RS232Scanner -c %comport% -b 9600 -r -F "9400i SO" -e 0390
if "%errorlevel%"=="0" goto download_9400i
:download_9400i
dlrmus -a RS232Scanner -c %comport% -b 9600 -t 115200 -r -F "9400i SO" –f “115K.S37”
dlrmus -a RS232Scanner -c %comport% -b 115200 -t 115200 -r -F "9400i SO" –f
“DR9401143.S37”
dlrmus -a RS232Scanner -c %comport% -b 115200 -t 9600 -r -F "9400i SO" –f “9600.s37”
goto exit
:download_9800i
dlrmus -a SCRS232Scanner -c %comport% -b 9600 -t 115200 -r -F "9800i SS" –f
“9800i_115200.s37” -v 10
dlrmus -a SCRS232Scanner -c %comport% -b 115200 -t 9600 -r -F "9800i SS" –f
“MR21_0494_KRSCO.s37” -v 10
goto exit
:exit
USER GUIDE 17
Linux Terminal Setup
To grant group permissions to access USB devices:
sudo usermod -a -G dialout <user>
To set the baud rate to 9600, 7 bits, 1 stop bit, odd parity:
stty -F /dev/ttyS0 raw
stty -F /dev/ttyS0 9600 cs7 -cstopb parenb -parodd
www.datalogic.com
Datalogic S.r.l.
Via S. Vitalino, 13 | 40012 Calderara di Reno | Bologna - Italy
Tel. +39 051 3147011 | Fax +39 051 3147205