This chapter describes how to install Zebra Scanner SDK and its components on recommended platforms.
NOTE See System Requirements for supported platforms.
The SDK installation package includes support for:
- Installing required components to enable any Zebra scanner to communicate with applications or tools that execute on top of the Zebra Scanner SDK.
- Supporting documents.
- Test utilities.
- Sample applications and source projects.
This section covers installation and configuration instructions.
NOTE Uninstall any previous Zebra, Symbol or 3rd party drivers or SDKs installed on your system which communicate with Zebra Scanner Devices before installing the Zebra Scanner SDK. This includes but is not limited to Zebra and Symbol supplied OPOS, JPOS and SNAPI drivers.
NOTE For a list of a scanner's supported attribute (parameter) numbers and definitions, refer to the Product Reference Guide for that model scanner, available from the Zebra Support website at http://www.zebra.com/support. Attributes include configuration parameters, monitored data, and asset tracking information.
The SDK installation package includes following components.
- Zebra Scanner SDK Core components and drivers (COM API, Imaging drivers)
- Scanner OPOS
- Scale OPOS
- Scanner JPOS
- Scale JPOS
Remote Management Components
- Scanner WMI Provider
- Driver WMI Provider
- Web Link to latest Developer's Guide - Document(s)
Test & Sample utilities with Source code packages
- Scanner SDK Sample Application (C++)
- Scanner SDK Sample Application (Microsoft® C# .NET)
- Scanner OPOS Test Utility
- Scale OPOS Test Utility
- JPOS Test Utility for Scanner and Scale
- Scanner WMI Provider Test Utility (Microsoft® C# .NET)
- Driver WMI Provider Test Utility (Microsoft® C# .NET).
The SDK installation package installs its components to the following default location:
C:\Program Files\Zebra Technologies\Barcode Scanners\.
Table 1 Supported Operating Systems
|Zebra Scanner SDK Installation Package|
|Microsoft® Windows 10 (32bit)||Zebra_Scanner_SDK_(32bit)_v3.xx.xxxx.exe|
|Microsoft® Windows 10 (64bit)||Zebra_Scanner_SDK_(64bit)_v3.xx.xxxx.exe|
Recommended minimum hardware requirement: x86 PC for 32-bit SDK, or x64 PC for 64-bit SDK with 512Mb RAM.
For an up-to-date table listing scanner models and their supported communication modes refer to the Scanner SDK for Windows website at: http://www.zebra.com/scannersdkforwindows.
Download the relevant Scanner SDK setup program for the 32-bit or 64-bit operating system on your PC from http://www.zebra.com/scannersdkforwindows.
There are two options for installing the Zebra Scanner SDK on a system.
- Typical installation - Loads all components in the installation package.
- Custom installation - Provides the ability to change the default selection of components.
If you install components such as OPOS, JPOS or WMI provider (remote management), the installer automatically installs sample programs and test utilities related to those components.
To download the appropriate OPOS, JPOS and WMI Developer’s Guides go to: http://www.zebra.com/scannersdkforwindows.
Execute the setup program. The installation process checks for CoreScanner drivers on the target machine. If the driver package is not present or outdated, clicking Install adds updated drivers before installing the scanner SDK package.Figure 1 Prerequisite Check And Install
Installation continues once the prerequisite drivers are installed on the machine.Figure 2 Install Window
Click Next on the Welcome screen.Figure 3 Welcome Screen
Review the license agreement and click Yes to accept.Figure 4 License Agreement
Select the Setup Type.
The user is prompted with two installation options:
- Complete - The installation package installs all components.
- Custom - The installation package gives the option to select which components are loaded during the installation process. The user is prompted to select components from the available list.
The user can select the destination folder by clicking Browse and selecting the drive and folder in which to install the Zebra Scanner SDK. However, common components are placed in designated locations for consistency with other SDK users.Figure 5 Setup Type
Select features. The user is prompted to select features to be installed from the available components list.Figure 6 Select Features
NOTE Scanner SDK and USB imaging drivers are common components and are installed automatically.
Wait for the installation to complete.Figure 7 Installation Progress
Installation complete.Figure 8 Installation Complete
There are three Windows services installed with the CoreScanner driver in a default installation:
- CoreScanner - coordinates activity between the communication layer (SNAPI, IBMHH, SSI, etc.) and upper level drivers (OPOS, JPOS, SDK API, etc.).
- RSM Driver Provider - provides WMI support.
- Symbol Scanner Management - provides WMI support.
Table 2 Zebra Scanner SDK Components
|Common Components||%ProgramFiles%\Zebra Technologies\Barcode Scanners\Common|
|Scanner SDK||%ProgramFiles%\Zebra Technologies\Barcode Scanners\Scanner SDK|
|Scanner OPOS Driver||%ProgramFiles%\Zebra Technologies\Barcode Scanners\Scanner SDK\OPOS|
|Scanner JPOS Driver||%ProgramFiles%\Zebra Technologies\Barcode Scanners\Scanner SDK\JPOS|
|Scanner WMI Provider||%ProgramFiles%\%\ Zebra Technologies\Barcode Scanners\Scanner SDK\WMI Provider Scanner|
|Driver WMI Provider||%ProgramFiles%\Zebra Technologies\Barcode Scanners\Scanner SDK\WMI Provider Driver|
|TWAIN Driver||%WinDir%\twain_32\Zebra – On 32/64bit version
%WinDir%\twain_64\Zebra – On 64bit version
The Zebra Scanner SDK is capable of communicating with scanners connected to serial ports through Nixdorf Mode B, or SSI serial host mode. The SDK does not open any serial port without user consent to prevent other devices from being interfered with by Scanner SDK commands. Users can configure SDK usage of serial ports with entries in the
<SERIAL_MODE_SETTINGS> section of the config.xml file located in %Program Files%\Zebra Technologies\Barcode Scanners\Common.
Serial mode setting entries indicate the serial com port number (PORT ID), the baud rate (BAUD) and the serial host mode (NAME) used to communicate with the attached scanner. The value of the name field can be NIXMODB, or SSI and the value of each of the three fields must be enclosed in quotation marks.
By default, the serial port settings in config.xml are commented out. To activate a serial mode setting, enter a line outside of the commented area, modify the settings appropriately, save the config.xml file and restart the CoreScanner service.
<SERIAL_MODE_SETTINGS> <!-- Uncomment lines in this section to configure Serial Scanners --> <!-- <PORT ID='5' BAUD='9600' NAME='NIXMODB'/> --> <PORT ID='3' BAUD='9600' NAME='SSI'/> </SERIAL_MODE_SETTINGS>
The Zebra Scanner SDK is capable of configuring a scanner to send simulated HID keyboard output (also known as HIDKB pump, or HIDKB emulation mode) while in USB SNAPI, USB IBM Hand-held, USB IBM Table-top, SSI, or RS-232 Nixdorf Mode B communication modes. This simulated HID keyboard output functionality can be configured by changing the XML elements in the
By default, the language locale of the simulated keyboard output is English. Only the English and French languages are currently supported.
Table 3 Config.xml File Elements
|<ENABLE>||0, 1||0 - Disable (default)
1 - Enable
|<LOCALE>||0, 1||0 - English (default)
1 - French
|<FUNCTION_KEY_MAPPING>||0, 1||When - 0
VK_RETURN transmitted as VK_CONTROL + M
VK_TAB transmitted as VK_CONTROL + I
VK_BACK transmitted as VK_CONTROL + H
When - 1
VK_RETURN transmitted as VK_RETURN
VK_TAB transmitted as VK_TAB
VK_BACK transmitted as VK_BACK
Refer to your scanner's Product Reference Guide for further information on function key mapping.
|<INTER_KEY_DELAY>||0, >0||Character transmission delay interval in milliseconds. The default value of zero transmits keystrokes as they are decoded. If > 0, latency is introduced into key transmission so that any receiving application can adjust to the rate of transmission.|
<HID_KB_PUMP_SETTINGS> <LOCALE>0</LOCALE> <!-- ENGLISH=0, FRENCH=1 --> <ENABLE>0</ENABLE> <!-- ENABLED=1, DISABLED=0 --> <FUNCTION_KEY_MAPPING>1</FUNCTION_KEY_MAPPING> <INTER_KEY_DELAY>0</INTER_KEY_DELAY> </HID_KB_PUMP_SETTINGS>
- Refer to the specific scanner Product Reference Guide for supported serial port parameter settings.
- Simulated HID Keyboard Output settings can be temporarily changed by an application using the CoreScanner API commands KEYBOARD_EMULATOR_ENABLE and KEYBOARD_EMULATOR_SET_LOCALE. To make permanent changes to these settings that remain persistent over a reboot of the host machine, the Config.xml file must be manually edited. Changes to Config.xml take effect only after the CoreScanner service is restarted.
- When using the language locale with Simulated HID Keyboard Output, the user may need to change the input language of the application receiving keyboard input to match the language specified in Config.xml.
- Simulated HID Keyboard functionality becomes unavailable if you use Windows’ Switch User functionality to switch the user on your PC. Manually restart the CoreScanner, RSM Driver Provider, and Symbol Scanner Management services, or reboot the host PC to ensure correct operation.
SDF enables the formatting of scanned bar code data with prefix and suffix labels through the CoreScanner driver. SDF is available while the scanner is in USB SNAPI, USB IBM Hand-held, USB IBM Table-top, SSI, or RS-232 Nixdorf Mode B communication mode1. Unlike Advanced Data Formatting (ADF), SDF does not permit modifying the scanned bar code data itself with any rule-based method. The prefix/suffix labels are composed of one or more ASCII characters (1-255). There can be one or more prefix/suffix labels, and they are defined in the config.xml file in the
NOTE 1To add prefix/suffix formatting for a scanner in HID keyboard mode, use the programming bar codes in the scanner's Product Reference Guide.
<SDF> <SDFMETA> <SDFTAGDEF>SUFFIX1.SUFFIX2.PREFIX1.PREFIX2</SDFTAGDEF> <SUFFIX1>13.10</SUFFIX1> <SUFFIX2>35.36</SUFFIX2> <PREFIX1>37.38</PREFIX1> <PREFIX2>48.49.50</PREFIX2> <SDFDEF SdfCode='0' SdfFormat='DATA'/> <SDFDEF SdfCode='1' SdfFormat='DATA.SUFFIX1'/> <SDFDEF SdfCode='2' SdfFormat='DATA.SUFFIX2'/> <SDFDEF SdfCode='3' SdfFormat='DATA.SUFFIX1.SUFFIX2'/> <SDFDEF SdfCode='4' SdfFormat='PREFIX2.DATA'/> <SDFDEF SdfCode='5' SdfFormat='PREFIX2.DATA.SUFFIX1'/> <SDFDEF SdfCode='6' SdfFormat='PREFIX1.DATA.SUFFIX2'/> <SDFDEF SdfCode='7' SdfFormat='PREFIX1.DATA.SUFFIX1.SUFFIX2'/> </SDFMETA> <SDFSELECT>6</SDFSELECT> </SDF>
In the XML sample above, four SDF prefix/suffix labels are defined as: SUFFIX1, SUFFIX2, PREFIX1, and PREFIX2. The values in these tags are delimited by a '.' character in the XML. Each of these labels is defined as shown below with the decimal ASCII character sequence that they represent:
SUFFIX1 = ascii(13), ascii(10) = CR, LF
SUFFIX2 = ascii(35), ascii(36) = #, $
PREFIX1 = ascii(37), ascii(38) = %, &
PREFIX2 = ascii(48), ascii(49), ascii(50) = 0, 1, 2
Formats are also delimited by a '.' character in the XML. There can be one or more format definitions that use the above defined labels as follows:
<SDFDEF SdfCode='6' SdfFormat='PREFIX1.DATA.SUFFIX2' />
This format definition is identified by the keyword SdfCode and the format is represented by the keyword SdfFormat. Note that "DATA" is an intrinsic that means "Insert the Scanned Bar Code Here". The format definition to be executed is based on SdfCode and is specified in the <SDFSELECT> tag. The XML clause above would transmit the bar code data as:
You can perform a basic inspection on your system process list to verify a successful installation of the Zebra Scanner SDK.
NOTE This is simple verification of the operation of the Zebra Scanner SDK. See How to Verify Scanner SDK Functionality on page 4-7 for more advanced SDK testing.
The following instructions guide you through a simple check of the Scanner SDK's operation.
Right click on the Windows Task Bar and select Task Manager.Figure 9 Task Bar Selection of Task Manager
Under the Processes tab, find the CoreScanner.exe in the Image Name list under.Figure 10 CoreScanner.exe on Task Manager
- The appearance of "CoreScanner.exe" in the Processes list indicates a successful installation.
The CoreScanner driver and the Scanner SDK require the Microsoft 2012 C++ Redistributable Package which automatically installs if it is does not already exist on the host PC. For an unattended installation, a complication arises if the 2012 C++ Redistributable is not pre-installed. By default, Microsoft triggers a reboot of the PC after the C++ Redistributable installation. In this case, a reboot is injected into the overall silent install process (which may then also require a login).
To avoid the interruption, the 2012 C++ Redistributable can be downloaded from Microsoft and pre- installed silently while suppressing the reboot using the command line switches /install /quiet /norestart. This delays the required reboot, and allows a custom silent CoreScanner and Scanner SDK install to be performed using a subsequent command.
The Visual C++ Redistributable for Visual Studio 2012 can be downloaded from the Microsoft website. The appropriate file vcredist_x86.exe (32-bit version) or vcredist_x64.exe (64-bit version) must be selected and downloaded. The command line to perform its install silently without reboot is:
vcredist_x86.exe /install /quiet /norestart
vcredist_x64.exe /install /quiet /norestart
The required reboot must be performed at the end of the overall installation process to ensure correct operation.
The Zebra Scanner SDK, including the underlying CoreScanner driver, is packaged using the Flexera InstallShield installer program. SDK components can be selectively installed using the SDK Custom Installation option. In conjunction with this custom install option, the installer program supports command line switches to record custom responses that can be used to create a silent install response file. These response files, ending in the extension .iss, may then be used to perform a silent installation of the CoreScanner driver and Scanner SDK components on production PCs.
The Silent Install command line options are listed in the following table.
Table 4 Silent Install Command Line Options
|Command Line Switch||Description|
|-s||Silent mode. The -s switch runs the installation in silent mode using the responses contained in a recorded response file.|
|-r||Record mode. The -r switch displays all the setup dialogs and records the chosen responses in the file specified with the -f1 switch described below.|
|-f1||Specify custom response file name and path. The -f1 switch specifies where the response file is located for the -s switch, or where it should be created when using the -r switch. Specify an absolute path; using a relative path yields unpredictable results.|
|-f2||Specify alternative log file name and path. When running an installation in silent mode (using the -s switch), the log file is created by default in the same directory and with the same name (except for the extension) as the response file. The -f2 switch enables you to specify an alternative log file location and file name. Specify an absolute path; using a relative path yields unpredictable results.|
When executed from a command prompt, the example below uses the -r and -f1 switches to record your responses to the setup prompts into a custom response file:
“Scanner_SDK_(32bit)_v2.0x.00xx.exe" -r -f1"c:\path\customsetup.iss"
The responses chosen using the command above are saved in the specified response file and can then be used as input to silently install the SDK with those chosen responses on production PCs.
The next example shows how the -s switch uses the response file created with the previous command to perform the silent install:
"Scanner_SDK_(32bit)_v2.0x.00xx.exe" -s -f1"c:\path\customsetup.iss"
Note that there is no space between the -f1 switch and first quotation mark for the custom response file.
If necessary, the -r switch option can also be used to record a custom response file for a silent removal of the SDK by running the command on a PC that has the SDK already installed.
IMPORTANT The CoreScanner drivers are required for any SDK component so the CoreScanner services are installed, and must be running to provide functionality.