Skip to main content

OPOS Registry Settings

Overview

Registry settings affecting Datalogic OPOS reside under three separate keys. All entries to be discussed reside under the common subkey HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node For simplicity, all values are define as String Values

SubkeyScope
DATALOGIC\DL_OPOS_Serviceglobal
OLEforRetail\ServiceOPOS\SCANNERspecific to a scanner profile
OLEforRetail\ServiceOPOS\SCALEspecific to a scale profile

OPOS Global Service Settings

Registry settings affecting global behaviors reside under HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DATALOGIC\DL_OPOS_Service

The subkeys are presented in the following table in order of likely interest.

SubkeyType (effective)Notes
LogFilestringDetermines the location and name of log files.
The string value has the form "folder\file" where "folder" establishes the location and "file" establishes the root file name.
In this example C:\ProgramData\Datalogic\Logs\OPOS_LOG_FILE_ the "file" is OPOS_LOG_FILE_
TotalFilesintSets the upper bound on the number of log files created before they start to be recycled (overwritten). The value is appended to the end of the log file name.
e.g. OPOS_LOG_FILE_1, OPOS_LOG_FILE_2, ...
ErrorboolControls output of ERROR_LOG statements to log files.
disable = 0, enable = 1
EventboolControls output of EVENT_LOG statements to log files.
disable = 0, enable = 1
gVarboolControls output of VAR_LOG statements to log files.
disable = 0, enable = 1
FuncboolControls output of FUNC_LOG statements to log files. Essentially provides a trace of function calls, making for large log files.
disable = 0, enable = 1
StatsFilestringDetermines the location of PRF files (typically the same location used by LogFile)

OPOS Scanner Settings

Registry settings affecting scanner behaviors reside under HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\OLEforRetail\ServiceOPOS\SCANNER\<profile> where <profile> is one if the subkey names appearing under SCANNER (e.g. USBScanner, RS232Scanner).

ProfileInterfaceNotes
USBScannerUSB-OEMSupports Fixed Retail Scanners
USBHHScannerUSB-OEMSupports Handheld Scanners
RS232ImagerUSB-COMSupports both Fixed Retail Scanners and Handheld Scanners
RS232ScannerRS-232Supports both Fixed Retail Scanners and Handheld Scanners
SCRS232ScannerRS-232 Single CableSupports Fixed Retail Scanners
TableScannerSame as USBScanner (historical)
HandScannerSame as USBHHScanner (historical)
QS6000Same as RS232Scanner (historical)
MagellanSCSame as SCRS232Scanner (historical)

Every profile contains a setting whose name is AbstractDevice and its associated string value (a guid) uniquely identifies the device interface. USB-OEM devices require and additional Usage setting to differentiate Fixed Retail Scanners and Handheld Scanners during enumeration. You must never change the value of either of these settings.

NOTE: If you wish to create a profile having a custom name then you must either clone an existing (installed) profile or rename one.

USB-OEM Scanner Settings

String NameType (effective)Notes
AbstractDeviceguidDo not modify
BinaryConversioninteger0 = OPOS_BC_NONE
1 = OPOS_BC_NIBBLE
2 = OPOS_BC_DECIMAL
CheckIHSOnClaimbool0 = disable, 1 = enable
When enabled, OPOS will request Information, Health and Statistics from the scanner every time the scanner is claimed, and it will record the decoded responses in the log, .PRF and .MOF files. When enabled, will also allow reporting of Power Notifications when replugging the device cable.
CodePageValueintegerA Windows codepage value, used when the value of ConvertToCodePage is 1.
ConvertBCDtoASCIIbool0 = disable, 1 = enable
When enabled, label characters whose values are in the range [0..9] are converted to ['0'..'9']
ConvertToCodePageintegerControls Extended Channel Interpretation
0 = NO_CODE_PAGE_CONVERSION
1 = EXPLICIT_CODE_PAGE_CONVERSION (a legacy setting, not likely to be ever used).
2 = ECI_CODE_PAGE_CONVERSION
DeviceNameOverridestringAn alternate name to return when OPOS queries the string property PIDX_DeviceName
FUDCDelaySecsintegerFirmware Updating Device Creation Delay (seconds). Used by the DualTest application and not OPOS, per se.
RMDataRecordbool0 = disable, 1 = enable
Applicable to USB-OEM Fixed Retail Scanners only. Much like CheckIHSOnClaim, when enabled, OPOS will request additional remote management scanner/scale data. Said data will be recorded in the logs folder with a file name having the form <profile>_RMD.txt (e.g. USBScanner_RMD.txt)
ScanDataEqualsScanDataLabelintegerSee ScanDataEqualsScanDataLabel explained
UPCEANCheckDigitCalcbool0 = disable, 1 = enable
When enabled, OPOS calculates the barcode checksum as necessary and appends it to the end of the barcode.
UsageintegerDo not modify

USB-COM Scanner Settings

String NameType (effective)Notes
AbstractDeviceguidDo not modify
BinaryConversioninteger0 = OPOS_BC_NONE
1 = OPOS_BC_NIBBLE
2 = OPOS_BC_DECIMAL
CheckIHSOnClaimbool0 = disable, 1 = enable
When enabled, OPOS will request Information, Health and Statistics from the scanner every time the scanner is claimed, and it will record the decoded responses in the log, .PRF and .MOF files. When enabled, will also allow reporting of Power Notifications when replugging the device cable.
CodePageValueintegerA Windows codepage value, used when the value of ConvertToCodePage is 1.
ConvertBCDtoASCIIbool0 = disable, 1 = enable
When enabled, label characters whose values are in the range [0..9] are converted to ['0'..'9']
ConvertToCodePageintegerControls Extended Channel Interpretation
0 = NO_CODE_PAGE_CONVERSION
1 = EXPLICIT_CODE_PAGE_CONVERSION (a legacy setting, not likely to be ever used).
2 = ECI_CODE_PAGE_CONVERSION
DeviceNameOverridestringAn alternate name to return when OPOS queries the string property PIDX_DeviceName
FUDCDelaySecsintegerFirmware Updating Device Creation Delay (seconds). Used by the DualTest application and not OPOS, per se.
IncludeCRbool0 = disable, 1 = enable
When enabled, includes the carriage return as the terminal character of the barcode data.
PortstringThe COM port at which to find the device (e.g. "COM1", sans the quotation characters).
NOTE: You should seriously consider enabling UseVirtualPort to avoid issues with Windows COM port assignment behavior. The Port value is ignored when UseVirtualPort is enabled.
ScanDataEqualsScanDataLabelintegerSee ScanDataEqualsScanDataLabel explained
TransmitUnknownbool0 = disable, 1 = enable
When enabled, enqueues label data even when its symbology is identified to be SCAN_SDT_UNKNOWN.
UPCEANCheckDigitCalcbool0 = disable, 1 = enable
When enabled, OPOS calculates the barcode checksum as necessary and appends it to the end of the barcode.
UseVirtualPortbool0 = disable, 1 = enable
When enabled, OPOS will locate the USB-COM scanner regardless of it's assigned COM port number. This behavior is made possible by Datalogic's USB-COM driver.
WarholParsingbool0 = disable, 1 = enable
When enabled, decodes labels assuming European barcodes. Otherwise, decodes assuming USA barcodes.
NOTE: Both your scanner and OPOS must be properly configured for this work. For example, if you're scanning European labels, both your scanner and OPOS must be configured to process European labels.

RS-232 Scanner Settings

String NameType (effective)Notes
AbstractDeviceguidDo not modify
BaudRateintegerMust be one of [9600, 14400, 19200, 38400, 57600, 115200]
BinaryConversioninteger0 = OPOS_BC_NONE
1 = OPOS_BC_NIBBLE
2 = OPOS_BC_DECIMAL
CheckIHSOnClaimbool0 = disable, 1 = enable
When enabled, OPOS will request Information, Health and Statistics from the scanner every time the scanner is claimed, and it will record the decoded responses in the log, .PRF and .MOF files. When enabled, will also allow reporting of Power Notifications when replugging the device cable.
CodePageValueintegerA Windows codepage value, used when the value of ConvertToCodePage is 1.
ConvertBCDtoASCIIbool0 = disable, 1 = enable
When enabled, label characters whose values are in the range [0..9] are converted to ['0'..'9']
ConvertToCodePageintegerControls Extended Channel Interpretation
0 = NO_CODE_PAGE_CONVERSION
1 = EXPLICIT_CODE_PAGE_CONVERSION (a legacy setting, not likely to be ever used).
2 = ECI_CODE_PAGE_CONVERSION
DataBitsintegerMust be one of [0, 7, 8]
DeviceNameOverridestringAn alternate name to return when OPOS queries the string property PIDX_DeviceName
FUDCDelaySecsintegerFirmware Updating Device Creation Delay (seconds). Used by the DualTest application and not OPOS, per se.
IncludeCRbool0 = disable, 1 = enable
When enabled, includes the carriage return as the terminal character of the barcode data.
ParitystringMust be one of ["None", "Even", "Odd"] (sans quotation characters)
PortstringThe COM port at which to find the device (e.g. "COM1", sans the quotation characters).
RTSControlbool0 = disable, 1 = enable
ScanDataEqualsScanDataLabelintegerSee ScanDataEqualsScanDataLabel explained
StopBitsintegerMust be one of [1, 2].
UPCEANCheckDigitCalcbool0 = disable, 1 = enable
When enabled, OPOS calculates the barcode checksum as necessary and appends it to the end of the barcode.
WarholParsingbool0 = disable, 1 = enable
When enabled, decodes labels assuming European barcodes. Otherwise, decodes assuming USA barcodes.
NOTE: Both your scanner and OPOS must be properly configured for this work. For example, if you're scanning European labels, both your scanner and OPOS must be configured to process European labels.

Single Cable RS-232 Scanner Settings

String NameType (effective)Notes
AbstractDeviceguidDo not modify
BaudRateintegerMust be one of [9600, 14400, 19200, 38400, 57600, 115200]
BinaryConversioninteger0 = OPOS_BC_NONE
1 = OPOS_BC_NIBBLE
2 = OPOS_BC_DECIMAL
CheckIHSOnClaimbool0 = disable, 1 = enable
When enabled, OPOS will request Information, Health and Statistics from the scanner every time the scanner is claimed, and it will record the decoded responses in the log, .PRF and .MOF files. When enabled, will also allow reporting of Power Notifications when replugging the device cable.
CodePageValueintegerA Windows codepage value, used when the value of ConvertToCodePage is 1.
ConvertBCDtoASCIIbool0 = disable, 1 = enable
When enabled, label characters whose values are in the range [0..9] are converted to ['0'..'9']
ConvertToCodePageintegerControls Extended Channel Interpretation
0 = NO_CODE_PAGE_CONVERSION
1 = EXPLICIT_CODE_PAGE_CONVERSION (a legacy setting, not likely to be ever used).
2 = ECI_CODE_PAGE_CONVERSION
DataBitsintegerMust be one of [0, 7, 8]
DeviceNameOverridestringAn alternate name to return when OPOS queries the string property PIDX_DeviceName
FUDCDelaySecsintegerFirmware Updating Device Creation Delay (seconds). Used by the DualTest application and not OPOS, per se.
IncludeCRbool0 = disable, 1 = enable
When enabled, includes the carriage return as the terminal character of the barcode data.
ParitystringMust be one of ["None", "Even", "Odd"] (sans quotation characters)
PortstringThe COM port at which to find the device (e.g. "COM1", sans the quotation characters).
RTSControlbool0 = disable, 1 = enable
ScanDataEqualsScanDataLabelintegerSee ScanDataEqualsScanDataLabel explained
ServerTimeoutintegerA millisecond value applied when attempting to claim the scanner; associated with starting the background application SingleCableSpliter.exe
StopBitsintegerMust be one of [1, 2].
UPCEANCheckDigitCalcbool0 = disable, 1 = enable
When enabled, OPOS calculates the barcode checksum as necessary and appends it to the end of the barcode.

OPOS Scale Settings

Registry settings affecting scanner behaviors reside under HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\OLEforRetail\ServiceOPOS\SCALE\<profile> where <profile> is one if the subkey names appearing under SCALE (e.g. USBScale, RS232Scale).

ProfileInterfaceNotes
USBScaleUSB-OEMSupports Fixed Retail Scale
RS232ScaleRS-232Supports Fixed Retail Scale
SCRS232ScaleRS-232 Single CableSupports Fixed Retail Scale
TableScaleSame as USBScale (historical)
MagellanSCSame as SCRS232Scale (historical)

Every profile contains a setting whose name is AbstractDevice and its associated string value (a guid) uniquely identifies the device interface. You must never change the value of this setting.

NOTE: If you wish to create a profile having a custom name then you must either clone an existing (installed) profile or rename one.

USB-OEM Scale Settings

String NameType (effective)Notes
AbstractDeviceguidDo not modify
DeviceNameOverridestringAn alternate name to return when OPOS queries the string property PIDX_DeviceName
LiveWeightIntervalintegerA millisecond value controlling the polling rate at which the scale weight is requested.
Metricbool0 = disable, 1 = enable
When enabled, weight is reported as kilograms. Otherwise, weight is reported as pounds.
UsageintegerDo not modify
ZeroValidbool0 = disable, 1 = enable
Applied when calling ReadWeight( ).
When disabled and ResultCodeExtended is SCAL_SUE_WEIGHT_ZERO, causes ResultCode to be OPOS_E_TIMEOUT.

RS-232 Scale Settings

String NameType (effective)Notes
AbstractDeviceguidDo not modify
BaudRateintegerMust be one of [9600, 14400, 19200, 38400, 57600, 115200]
DataBitsintegerMust be one of [0, 7, 8]
DeviceNameOverridestringAn alternate name to return when OPOS queries the string property PIDX_DeviceName
LiveWeightIntervalintegerA millisecond value controlling the polling rate at which the scale weight is requested.
Metricbool0 = disable, 1 = enable
When enabled, weight is reported as kilograms. Otherwise, weight is reported as pounds.
ParitystringMust be one of ["None", "Even", "Odd"] (sans quotation characters)
PortstringThe COM port at which to find the device (e.g. "COM1", sans the quotation characters).
RTSControlbool0 = disable, 1 = enable
StopBitsintegerMust be one of [1, 2].
ZeroValidbool0 = disable, 1 = enable
Applied when calling ReadWeight( ).
When disabled and ResultCodeExtended is SCAL_SUE_WEIGHT_ZERO, causes ResultCode to be OPOS_E_TIMEOUT.

Single Cable RS-232 Scale Settings

String NameType (effective)Notes
AbstractDeviceguidDo not modify
BaudRateintegerMust be one of [9600, 14400, 19200, 38400, 57600, 115200]
DataBitsintegerMust be one of [0, 7, 8]
DeviceNameOverridestringAn alternate name to return when OPOS queries the string property PIDX_DeviceName
LiveWeightIntervalintegerA millisecond value controlling the polling rate at which the scale weight is requested.
Metricbool0 = disable, 1 = enable
When enabled, weight is reported as kilograms. Otherwise, weight is reported as pounds.
ParitystringMust be one of ["None", "Even", "Odd"] (sans quotation characters)
PortstringThe COM port at which to find the device (e.g. "COM1", sans the quotation characters).
RTSControlbool0 = disable, 1 = enable
ServerTimeoutintegerA millisecond value applied when attempting to claim the scale; associated with starting the background application SingleCableSpliter.exe
StopBitsintegerMust be one of [1, 2].
ZeroValidbool0 = disable, 1 = enable
Applied when calling ReadWeight( ).
When disabled and ResultCodeExtended is SCAL_SUE_WEIGHT_ZERO, causes ResultCode to be OPOS_E_TIMEOUT.

ScanDataEqualsScanDataLabel explained

The registry setting ScanDataEqualsScanDataLabel is common to all scanner profiles and it controls the routing of scanned label data to the OPOS string properties PIDXScan_ScanData and PIDXScan_ScanDataLabel.

ScanDataEqualsScanDataLabel was originally introduced solely to support legacy applications that used PIDXScan_ScanData as their data source. These applications would obtain the data from PIDXScan_ScanData and then perform their own label parsing. After considering user feedback, the decision was made to allow these applications to obtain parsed label data (i.e. PIDXScan_ScanDataLabel) from PIDXScan_ScanData; this freed the user from having to maintain label parsing code. This feature paid dividends when Datalogic's OPOS started to support Extended Channel Interpretation

Finally, a very unusual use is addressed; ScanDataEqualsScanDataLabel can also be set to swap the values (normally) associated with PIDXScan_ScanData and PIDXScan_ScanDataLabel. Why POS software is written in this manner is not known, but it exists.

To summarize:

SubkeyType (effective)Notes
ScanDataEqualsScanDataLabelinteger1 = ScanData and ScanDataLabel are the same.
0 = ScanData and ScanDataLabel adhere to OPOS definitions.
-1 = the values of ScanData and ScanDataLabel are swapped.