About Scanner SDK for Linux


The Zebra Scanner Software Developer Kit (SDK) for Linux defines an architectural framework providing a single programming interface across multiple programming languages (such as C++, Java) and across multiple system environments (such as RPM based Linux distributions and Debian based Linux) for all scanner communication variants (such as IBMHID, SNAPI, and HIDKB).

The Zebra Scanner SDK includes a suite of components that provides a unified software development framework with a wide range of functions for interfacing Zebra scanners to user applications and solutions.

The CoreScanner driver creates a connection between the host and scanner. The SDK uses CoreScanner to receive data from and send commands to the scanner.

This SDK allows you to read barcodes, manage scanner configurations, capture images/videos, and select a list of scanners on which to work. While one application in one programming language uses a scanner or a set of scanners, you can use another application in a different language within the same system environment.

The SDK can build an application with complete control of scanner capabilities:

  • Data, barcode

    1. OPOS/JPOS output
    2. SNAPI output
  • Command and control

    1. LED and beeper control
    2. Aim control
    3. Scan enable and disable
  • Imaging

    1. Capture and transfer of images
    2. Capture and transfer of video

NOTE For a list of a scanner's supported attribute (parameter) numbers and definitions, refer to the scanner Product Reference Guide, available on the Zebra Support website http://www.zebra.com/support. Attributes include configuration parameters, monitored data, and asset tracking information.

Supported Devices

  • DS2208-SR
  • DS2278-SR
  • DS3608-DP DS3678-DP Ultra Rugged Scanners
  • DS3608-ER DS3678-ER Ultra Rugged Scanners
  • DS3608-HD DS3678-HD Ultra Rugged Scanners
  • DS3608-HP DS3678-HP Ultra Rugged Scanners
  • DS3608-SR DS3678-SR Ultra Rugged Scanners
  • DS8108-HC
  • DS8108-SR
  • DS8178-HC
  • DS8178-SR
  • LI2208
  • LI2208-HC
  • LI36X8-SR
  • MP6000 Scanner Scale
  • MP6200 Scanner Scale
  • MP7000 Scanner Scale
  • MX101-SR00004ZZWR
  • SE4500 OEM Array Imager Scan Engine
  • Symbol DS4308
  • Symbol DS4308-HC
  • Symbol DS7708
  • Symbol DS9808 Hybrid Presentation Imager
  • Symbol LS2208 General Purpose Bar Code Scanner

Supported Linux Distributions

Scanner SDK for Linux latest version supporting following distributions.

Version History

Click the link below.


Scanner SDK Architecture

Figure SDK Architecture

Host Communication Modes

You can configure Zebra scanner devices to operate in different host communication modes such as USB SNAPI, USB OPOS, USB HID Keyboard, and USB IBM Table-top. Device feature support varies by mode but all modes support barcode scanning. Refer to the scanner Product Reference Guide to set the host communication mode.

To use the Zebra Scanner SDK to switch between supported host communication modes, useful when advanced functionality is required but not supported by the current communication mode, call the Host Variant Switching command. This switches the scanner to a feature-rich mode to execute certain commands, and then reverts the scanner to the previous mode.

For example, to disable the UPC-A symbology when the device is in USB HID Keyboard mode, switch the scanner to USB SNAPI or USB OPOS (if supported by the scanner), disable UPC-A, and then revert the scanner to USB HID Keyboard mode.

Following table illustrates scanner capabilities supported in each communication mode. Refer to the scanner specifications for support of each communication mode.

Table Scanner Device Communication Modes Vs. Capabilities

Capabilities USB SNAPI USB HID Keyboard USB IBM Table-top
Data Supported Supported Supported
Host Variant Switching Supported Supported Supported
Management Supported Not Available Supported
Image & Video Supported Not Available Not Available
Simulated HID Keyboard Output * Supported Not Available Supported
*Advanced Data Formatting (ADF) is not supported when using Simulated HID Keyboard Output.

Multiple Scanner Device Identification and Asset Tracking

The Zebra Scanner SDK supports connecting multiple scanners to any user application running on CoreScanner APIs. The application identifies each scanner by a unique scanner identification number. There cannot be multiple scanners with the same scanner ID.

Asset tracking information such as model number, serial number, firmware version, and date of manufacture is available if the scanner and its current host mode support the management feature. For example, asset tracking information does not appear for a scanner in USB HID Keyboard mode, but does appear if that scanner is in USB OPOS or USB SNAPI mode.

The format of device asset tracking information can vary between device models. For example, the length of a serial number for DS6707 and DS9808 scanners can be different.

Application Access to Multiple Scanners

The Zebra Scanner SDK supports multiple applications accessing multiple scanners connected to the host at the same time.

The scanner ID uniquely identifies a connected scanner to all applications, and is consistent among all applications for one SDK instance. Restarting the CoreScanner service or the host may assign a different scanner ID to a scanner, but it is unique and referenced by all applications.

Two Applications Connected To One Scanner

App 1 & App 2 support bi-directional (two way) communication with the scanner.

Figure Two Applications Connected To One Scanner

Three Applications Connected To Two Scanners

App 1 and App 2 support bi-directional (two way) communication with the DS6878.

Figure Two Applications Connected To One Scanner

Many Applications Connected To Many Scanners

App 1 performs image capture with the DS6878.

App 2 remotely manages both the DS6878 and LS4208.

App 3 receives OPOS data from both the DS6878 and LS4208.

Figure Many Applications Connected To Many Scanners

One Application Connected to Two Scanners

One application can manage multiple scanners in multiple communication interfaces. The application can capture data, image, and video, send management commands, and receive responses from multiple scanners.

All scanner responses consist of details (ScannerID, serial number, model number, etc.) identifying the scanner that sent the response.

Figure One Application Connected to Two Scanners

The following example shows a barcode event for a scanned label. The label data contains a unique ScannerID and the scanner's model number and serial number.

<?xml version="1.0" encoding="UTF-8"?>
            <modelnumber>DS6707-SR20001ZZR </modelnumber>
            <serialnumber>7114000503308	</serialnumber>
            <datatype>11 </datatype>
            <datalabel>0x39 0x37 0x38 0x30 0x32 0x30 0x31 0x34</datalabel>
            <rawdata>0x39 0x37 0x38 0x30 0x32 0x30 0x31 0x34</rawdata>