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
Subkey | Scope |
---|---|
DATALOGIC\DL_OPOS_Service | global |
OLEforRetail\ServiceOPOS\SCANNER | specific to a scanner profile |
OLEforRetail\ServiceOPOS\SCALE | specific 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.
Subkey | Type (effective) | Notes |
---|---|---|
LogFile | string | Determines 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_ |
TotalFiles | int | Sets 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, ... |
Error | bool | Controls output of ERROR_LOG statements to log files. disable = 0, enable = 1 |
Event | bool | Controls output of EVENT_LOG statements to log files. disable = 0, enable = 1 |
gVar | bool | Controls output of VAR_LOG statements to log files. disable = 0, enable = 1 |
Func | bool | Controls output of FUNC_LOG statements to log files. Essentially provides a trace of function calls, making for large log files. disable = 0, enable = 1 |
StatsFile | string | Determines 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).
Profile | Interface | Notes |
---|---|---|
USBScanner | USB-OEM | Supports Fixed Retail Scanners |
USBHHScanner | USB-OEM | Supports Handheld Scanners |
RS232Imager | USB-COM | Supports both Fixed Retail Scanners and Handheld Scanners |
RS232Scanner | RS-232 | Supports both Fixed Retail Scanners and Handheld Scanners |
SCRS232Scanner | RS-232 Single Cable | Supports Fixed Retail Scanners |
TableScanner | Same as USBScanner (historical) | |
HandScanner | Same as USBHHScanner (historical) | |
QS6000 | Same as RS232Scanner (historical) | |
MagellanSC | Same 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 Name | Type (effective) | Notes |
---|---|---|
AbstractDevice | guid | Do not modify |
BinaryConversion | integer | 0 = OPOS_BC_NONE 1 = OPOS_BC_NIBBLE 2 = OPOS_BC_DECIMAL |
CheckIHSOnClaim | bool | 0 = 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. |
CodePageValue | integer | A Windows codepage value, used when the value of ConvertToCodePage is 1. |
ConvertBCDtoASCII | bool | 0 = disable, 1 = enable When enabled, label characters whose values are in the range [0..9] are converted to ['0'..'9'] |
ConvertToCodePage | integer | Controls 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 |
DeviceNameOverride | string | An alternate name to return when OPOS queries the string property PIDX_DeviceName |
FUDCDelaySecs | integer | Firmware Updating Device Creation Delay (seconds). Used by the DualTest application and not OPOS, per se. |
RMDataRecord | bool | 0 = 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) |
ScanDataEqualsScanDataLabel | integer | See ScanDataEqualsScanDataLabel explained |
UPCEANCheckDigitCalc | bool | 0 = disable, 1 = enable When enabled, OPOS calculates the barcode checksum as necessary and appends it to the end of the barcode. |
Usage | integer | Do not modify |
USB-COM Scanner Settings
String Name | Type (effective) | Notes |
---|---|---|
AbstractDevice | guid | Do not modify |
BinaryConversion | integer | 0 = OPOS_BC_NONE 1 = OPOS_BC_NIBBLE 2 = OPOS_BC_DECIMAL |
CheckIHSOnClaim | bool | 0 = 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. |
CodePageValue | integer | A Windows codepage value, used when the value of ConvertToCodePage is 1. |
ConvertBCDtoASCII | bool | 0 = disable, 1 = enable When enabled, label characters whose values are in the range [0..9] are converted to ['0'..'9'] |
ConvertToCodePage | integer | Controls 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 |
DeviceNameOverride | string | An alternate name to return when OPOS queries the string property PIDX_DeviceName |
FUDCDelaySecs | integer | Firmware Updating Device Creation Delay (seconds). Used by the DualTest application and not OPOS, per se. |
IncludeCR | bool | 0 = disable, 1 = enable When enabled, includes the carriage return as the terminal character of the barcode data. |
Port | string | The 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. |
ScanDataEqualsScanDataLabel | integer | See ScanDataEqualsScanDataLabel explained |
TransmitUnknown | bool | 0 = disable, 1 = enable When enabled, enqueues label data even when its symbology is identified to be SCAN_SDT_UNKNOWN. |
UPCEANCheckDigitCalc | bool | 0 = disable, 1 = enable When enabled, OPOS calculates the barcode checksum as necessary and appends it to the end of the barcode. |
UseVirtualPort | bool | 0 = 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. |
WarholParsing | bool | 0 = 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 Name | Type (effective) | Notes |
---|---|---|
AbstractDevice | guid | Do not modify |
BaudRate | integer | Must be one of [9600, 14400, 19200, 38400, 57600, 115200] |
BinaryConversion | integer | 0 = OPOS_BC_NONE 1 = OPOS_BC_NIBBLE 2 = OPOS_BC_DECIMAL |
CheckIHSOnClaim | bool | 0 = 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. |
CodePageValue | integer | A Windows codepage value, used when the value of ConvertToCodePage is 1. |
ConvertBCDtoASCII | bool | 0 = disable, 1 = enable When enabled, label characters whose values are in the range [0..9] are converted to ['0'..'9'] |
ConvertToCodePage | integer | Controls 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 |
DataBits | integer | Must be one of [0, 7, 8] |
DeviceNameOverride | string | An alternate name to return when OPOS queries the string property PIDX_DeviceName |
FUDCDelaySecs | integer | Firmware Updating Device Creation Delay (seconds). Used by the DualTest application and not OPOS, per se. |
IncludeCR | bool | 0 = disable, 1 = enable When enabled, includes the carriage return as the terminal character of the barcode data. |
Parity | string | Must be one of ["None", "Even", "Odd"] (sans quotation characters) |
Port | string | The COM port at which to find the device (e.g. "COM1", sans the quotation characters). |
RTSControl | bool | 0 = disable, 1 = enable |
ScanDataEqualsScanDataLabel | integer | See ScanDataEqualsScanDataLabel explained |
StopBits | integer | Must be one of [1, 2]. |
UPCEANCheckDigitCalc | bool | 0 = disable, 1 = enable When enabled, OPOS calculates the barcode checksum as necessary and appends it to the end of the barcode. |
WarholParsing | bool | 0 = 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 Name | Type (effective) | Notes |
---|---|---|
AbstractDevice | guid | Do not modify |
BaudRate | integer | Must be one of [9600, 14400, 19200, 38400, 57600, 115200] |
BinaryConversion | integer | 0 = OPOS_BC_NONE 1 = OPOS_BC_NIBBLE 2 = OPOS_BC_DECIMAL |
CheckIHSOnClaim | bool | 0 = 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. |
CodePageValue | integer | A Windows codepage value, used when the value of ConvertToCodePage is 1. |
ConvertBCDtoASCII | bool | 0 = disable, 1 = enable When enabled, label characters whose values are in the range [0..9] are converted to ['0'..'9'] |
ConvertToCodePage | integer | Controls 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 |
DataBits | integer | Must be one of [0, 7, 8] |
DeviceNameOverride | string | An alternate name to return when OPOS queries the string property PIDX_DeviceName |
FUDCDelaySecs | integer | Firmware Updating Device Creation Delay (seconds). Used by the DualTest application and not OPOS, per se. |
IncludeCR | bool | 0 = disable, 1 = enable When enabled, includes the carriage return as the terminal character of the barcode data. |
Parity | string | Must be one of ["None", "Even", "Odd"] (sans quotation characters) |
Port | string | The COM port at which to find the device (e.g. "COM1", sans the quotation characters). |
RTSControl | bool | 0 = disable, 1 = enable |
ScanDataEqualsScanDataLabel | integer | See ScanDataEqualsScanDataLabel explained |
ServerTimeout | integer | A millisecond value applied when attempting to claim the scanner; associated with starting the background application SingleCableSpliter.exe |
StopBits | integer | Must be one of [1, 2]. |
UPCEANCheckDigitCalc | bool | 0 = 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).
Profile | Interface | Notes |
---|---|---|
USBScale | USB-OEM | Supports Fixed Retail Scale |
RS232Scale | RS-232 | Supports Fixed Retail Scale |
SCRS232Scale | RS-232 Single Cable | Supports Fixed Retail Scale |
TableScale | Same as USBScale (historical) | |
MagellanSC | Same 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 Name | Type (effective) | Notes |
---|---|---|
AbstractDevice | guid | Do not modify |
DeviceNameOverride | string | An alternate name to return when OPOS queries the string property PIDX_DeviceName |
LiveWeightInterval | integer | A millisecond value controlling the polling rate at which the scale weight is requested. |
Metric | bool | 0 = disable, 1 = enable When enabled, weight is reported as kilograms. Otherwise, weight is reported as pounds. |
Usage | integer | Do not modify |
ZeroValid | bool | 0 = 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 Name | Type (effective) | Notes |
---|---|---|
AbstractDevice | guid | Do not modify |
BaudRate | integer | Must be one of [9600, 14400, 19200, 38400, 57600, 115200] |
DataBits | integer | Must be one of [0, 7, 8] |
DeviceNameOverride | string | An alternate name to return when OPOS queries the string property PIDX_DeviceName |
LiveWeightInterval | integer | A millisecond value controlling the polling rate at which the scale weight is requested. |
Metric | bool | 0 = disable, 1 = enable When enabled, weight is reported as kilograms. Otherwise, weight is reported as pounds. |
Parity | string | Must be one of ["None", "Even", "Odd"] (sans quotation characters) |
Port | string | The COM port at which to find the device (e.g. "COM1", sans the quotation characters). |
RTSControl | bool | 0 = disable, 1 = enable |
StopBits | integer | Must be one of [1, 2]. |
ZeroValid | bool | 0 = 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 Name | Type (effective) | Notes |
---|---|---|
AbstractDevice | guid | Do not modify |
BaudRate | integer | Must be one of [9600, 14400, 19200, 38400, 57600, 115200] |
DataBits | integer | Must be one of [0, 7, 8] |
DeviceNameOverride | string | An alternate name to return when OPOS queries the string property PIDX_DeviceName |
LiveWeightInterval | integer | A millisecond value controlling the polling rate at which the scale weight is requested. |
Metric | bool | 0 = disable, 1 = enable When enabled, weight is reported as kilograms. Otherwise, weight is reported as pounds. |
Parity | string | Must be one of ["None", "Even", "Odd"] (sans quotation characters) |
Port | string | The COM port at which to find the device (e.g. "COM1", sans the quotation characters). |
RTSControl | bool | 0 = disable, 1 = enable |
ServerTimeout | integer | A millisecond value applied when attempting to claim the scale; associated with starting the background application SingleCableSpliter.exe |
StopBits | integer | Must be one of [1, 2]. |
ZeroValid | bool | 0 = 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:
Subkey | Type (effective) | Notes |
---|---|---|
ScanDataEqualsScanDataLabel | integer | 1 = ScanData and ScanDataLabel are the same. 0 = ScanData and ScanDataLabel adhere to OPOS definitions. -1 = the values of ScanData and ScanDataLabel are swapped. |