Skip to main content

properties.json

Overview

The file properties.json is used to configure the DLRMUS application.

DLRMUS is available in both Windows and Linux implementations and does not rely on OPOS. As such, the configuration of DLRMUS is strictly file-based and does not rely upon the Windows Registry.

note

properties.json is not an installed file. Instead, it is generated the first time you use DLRMUS. The actual installed file is properties.upd and it is used to generated properties.json. Exactly how properties.upd is used depends upon whether you are doing a clean install or updating and existing installation.

You should become familiar with the JSON format if you are going to modify properties.json 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 the sections

  • Miscellaneous parameters
  • Profiles
  • Models

Profiles and Models are named objects and can be located using a simple search in a text editor. Miscellaneous parameters have no section name but are seen at the top of the file.

A fairly complete listing of properties.json can be found below.

Miscellaneous parameters

The miscellaneous parameters are seen at the top of properties.json as

  "MaxLogFiles": 10,
"SummaryMaxSize": 100,
"ConsoleInfo": false,
"ConsoleHealth": false,
"ConsoleStatistics": false,
"ihs_timeout": 5000,
"LegacyErrorCodes": true,
"ServicePortBufferSize": 200000,

Of these 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

  • A single summary log providing summary information about successive sessions (uses of DLRMUs).
  • A sequence of numbered traffic logs, each providing detailed information about a 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 overwritten when its size exceeds SummaryMaxSize.

ConsoleInfo, ConsoleHealth, and ConsoleStatistics all respectively control whether or not Information, Health, and Statistics reports from the device are printed to the console. Note, the same (output) information is recorded in the log files with more context.

ihs_timeout, whose units is milliseconds, controls how long an IHS query will wait before timeout. Defaults to 5000 ms (5 seconds).

LegacyErrorCodes is a boolean that controls whether or not DLRMUs will report errors using original (Legacy) error codes, or the new error codes that are unique to each reason DLRMUs might exit

ServicePortBufferSize, whose units is bytes, controls the size of the buffer when writing data to the service port. Service ports allow for much more data to be transferred at once when compared to host ports.

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 profile names provided are identical to those installed with Datalogic's OPOS.

The Profiles object contains Profile definitions. In turn, and each Profile object contains its defining parameters.

The Interface parameter is significant because it defines the communication method between the host and the scanner. A Profile (particularly one representing a serial interface) may contain additional communication properties related to its interface (e.g. COM port, baud rate, etc.)

In the following example, the Profile names are RS232Scanner, SCRS232Scanner, RS232Imager and USBScanner.

"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 >
}
}

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 object containing Model definitions. In turn, each Model object contains its defining parameters.

The Patterns of a model is a set of character strings used to identify a device given its TopModelNumber. The TopModelNumber is obtained from the data returned by IHS ("Information, Health and Statistics") commands when the scanner is claimed. It is unlikely you will ever need to make changes in this section.

The lrdms parameter of a model is a value representing "Linux Read Delay Milliseconds".

As a small example, upon claiming as Magellan fixed retail scanner, configured to use the USB-OEM interface, a snippet of the associated USBScanner.PRF shows

# Information
ApplicationROMID = DR9401432
ApplicationRevisionLevel = 0817
<-- more data -->
ModelName = 9800i SS
<-- more data -->
TopModelNumber = 984-8675309
<-- more data -->
VisionLibraryVersion = VL5.13.11

The TopModelNumber is seen to start with "984". Locating this string among the Patterns, you will find it associated with the Model "9800i SS" and so the statement "ModelName = 9800i SS" is written into the PRF.

Complete Listing

{
"version": 1,

"MaxLogFiles": 10,
"SummaryMaxSize": 100,
"ConsoleInfo": false,
"ConsoleHealth": false,
"ConsoleStatistics": false,
"ihs_timeout": 5000,
"LegacyErrorCodes": true,
"ServicePortBufferSize": 200000,

"Profiles": {
"ServicePort": {
"Interface": "SERVICEPORT",
"Affixes": [ 83, 13 ],
"BaudRate": 9600,
"DataBits": 7,
"Parity": "Odd",
"StopBits": 1,
"UseVirtualPort": 1
},
"RS232Scanner": {
"Interface": "RS-232",
"WindowsPort": 1,
"LinuxPort": "/dev/ttyS0",
"BaudRate": 9600,
"DataBits": 8,
"Parity": "None",
"StopBits": 1
},
"QS6000": {
"Interface": "RS-232",
"WindowsPort": 1,
"LinuxPort": "/dev/ttyS0",
"BaudRate": 9600,
"DataBits": 8,
"Parity": "None",
"StopBits": 1
},
"QSLScanner": {
"Interface": "RS-232",
"WindowsPort": 1,
"LinuxPort": "/dev/ttyS0",
"BaudRate": 9600,
"DataBits": 8,
"Parity": "Odd",
"StopBits": 1
},
"RS232Imager": {
"Interface": "USB/COM",
"WindowsPort": 1,
"LinuxPort": "/dev/ttyACM0",
"UseVirtualPort": 1
},
"SCRS232Scanner": {
"Interface": "SC/RS-232",
"Affixes": [ 83, 13 ],
"WindowsPort": 1,
"LinuxPort": "/dev/ttyS0",
"BaudRate": 9600,
"DataBits": 7,
"Parity": "Odd",
"StopBits": 1
},
"SC-COM": {
"Interface": "SC-COM",
"Affixes": [ 83, 13 ],
"WindowsPort": 1,
"LinuxPort": "/dev/ttyACM0",
"BaudRate": 9600,
"DataBits": 7,
"Parity": "Odd",
"StopBits": 1,
"UseVirtualPort": 1
},
"MagellanSC": {
"Interface": "SC/RS-232",
"Affixes": [ 1, 9 ],
"WindowsPort": 1,
"LinuxPort": "/dev/ttyS0",
"BaudRate": 9600,
"DataBits": 7,
"Parity": "Odd",
"StopBits": 1
},
"HandScanner": {
"Interface": "USB-OEM",
"Usage": "4B00"
},
"USBHHScanner": {
"Interface": "USB-OEM",
"Usage": "4B00"
},
"TableScanner": {
"Interface": "USB-OEM",
"Usage": "4A00"
},
"USBScanner": {
"Interface": "USB-OEM",
"Usage": "4A00"
},
"Bologna-USB-HID": {
"Interface": "USB-OEM",
"Usage": "4A00"
}
},

"Models": {
"2200 VS": {
"Patterns": [
"M22"
]
},
"2300 HS": {
"Patterns": [
"M23"
]
},
"8200 SO": {
"Patterns": [
"821"
]
},
"8200 SS": {
"Patterns": [
"822"
]
},
"8300 SO": {
"Patterns": [
"831"
]
},
"8300 SS": {
"Patterns": [
"832"
]
},
"8400 SO": {
"Patterns": [
"841"
]
},
"8400 SS": {
"Patterns": [
"842"
]
},
"8500 S0": {
"Patterns": [
"851"
]
},
"8500 SS": {
"Patterns": [
"852"
]
},
"8500XT SO": {
"Patterns": [
"859"
]
},
"8500XT SS": {
"Patterns": [
"858",
"855"
]
},
"8500XTS SO": {
"Patterns": [
"857"
]
},
"8500XTS SS": {
"Patterns": [
"868",
"865"
]
},
"9500 SO": {
"Patterns": [
"951",
"955"
]
},
"9500 SS": {
"Patterns": [
"952",
"953",
"954"
]
},
"1100i": {
"Patterns": [
"11",
"MG11"
]
},
"1500i": {
"Patterns": [
"MG150",
"150"
]
},
"3200 VS": {
"Patterns": [
"32"
]
},
"3300 HS": {
"Patterns": [
"33"
]
},
"3410 VS": {
"Patterns": [
"M341"
]
},
"3450 VS": {
"Patterns": [
"M345",
"M346",
"M347"
]
},
"3510 HS": {
"Patterns": [
"M351"
]
},
"3550 HS": {
"Patterns": [
"M355"
]
},
"9300i SO": {
"Patterns": [
"931"
]
},
"9300i SS": {
"Patterns": [
"932",
"936"
]
},
"9400i SO": {
"Patterns": [
"941"
]
},
"9400i SS": {
"Patterns": [
"942",
"946"
]
},
"9600i SO": {
"Patterns": [
"961"
]
},
"9600i SS": {
"Patterns": [
"962"
]
},
"9800i SO": {
"Patterns": [
"981"
]
},
"9800i SS": {
"Patterns": [
"982",
"984"
]
},
"9900i SS": {
"Patterns": [
"991"
]
},
"9900i SO": {
"Patterns": [
"992"
]
},
"GD4500": {
"Patterns": [
"123"
]
},
"GBT4500": {
"Patterns": [
"GBT45"
]
},
"GD4400": {
"Patterns": [
"G40"
]
},
"GFS4470": {
"Patterns": [
"GFS4470"
]
},
"GFS4490": {
"Patterns": [
"GFS4490"
]
},
"QD2430": {
"Patterns": [
"QD2430"
],
"lrdms": 4
},
"QW2400": {
"Patterns": [
"QW2400"
],
"lrdms": 4
},
"QD2590": {
"Patterns": [
"QD2590"
],
"lrdms": 4
},
"QW2500": {
"Patterns": [
"QW2500"
],
"lrdms": 4
}
}
}