Overview
The Zebra Scanner SDK provides an easy to use yet powerful and extendible set of API commands to interface with scanner devices. The API commands include:
- Open
- GetScanners
- ExecCommand
- ExecCommandAsync
- Close
Once the SDKs Open and GetScanners commands are invoked and the list of connected scanners is retrieved, all other methods execute through the ExecCommand and ExecCommandAsync commands. This is a user friendly approach, and easy to code in terms of day-to-day programming.
With the evolution of the SDK's capabilities, it is easier to increase the number of methods rather than increase the number of API commands. The benefit to the user is that, once you have the system up and running, a new method is just an additional operation to the existing code.
In addition to the commands above, the Zebra Scanner SDK supports seven types of events:
- ImageEvent
- VideoEvent
- BarcodeEvent
- PNPEvent
- ScanRMDEvent
- CommandResponseEvent
- IOEvent
See sample source code for an example of an application illustrating the Zebra Scanner SDK.
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.
References
- Find or Search for Scanner Parameters in 123Scan Config File
- List of Programmable RSM Scanner Parameters Dictionary Table Definition
Scanner ID
In the SDK context, scanner ID uniquely identifies a scanner device connected to the CoreScanner driver, and is required to communicate programmatically with the device. Developers need to call the GetScanners method of the CoreScanner API in order to retrieve the scanner IDs of connected devices. For example, to switch on a scanner's red LED, the scanner ID of that particular scanner must be obtained to provide that value in the <scannerID> element of inXML of the ExecCommand method call.
During each CoreScanner driver instance, scanner IDs are sequentially assigned to each connected device. When the CoreScanner driver is restarted, the array of connected scanners is reinitialized and previous scanner IDs may no longer be valid. In this case, the GetScanners method must be executed to obtain the new scanner IDs.
During a single CoreScanner driver instance, an RSM (Remote Scanner Management) supported scanner that is unplugged, and reconnected retaina its unique scanner ID. However, a non-RSM device is assigned a different scanner ID each time it is reconnected.
API Commands
Open
Opens an application instance from the user application or user library. This must be the first API command called before invoking any other API command from the user level application.
Syntax
unsigned short Open(
/* [in] */ IEventListenerXml* pEventListener,
/* [in] */ unsigned int scannerTypeFlags,
/* [out]*/ StatusID *status);
Parameters
pEventListener - Input argument of IEventListener class type object reference.
scannerTypeFlags - The types of scanners requested for use with the API. Use "|" to specify multiple types.
Table 1: Values for scannerTypeFlags
Code | Value | Scanner Category |
---|---|---|
SCANNER_TYPES_ALL | 0 | All Scanners |
SCANNER_TYPES_SNAPI | 1 | SNAPI Scanners |
SCANNER_TYPES_IBMHID | 2 | IBM Hand Held Scanners (USB OPOS) |
SCANNER_TYPES_IBMTT | 4 | IBM Table-top Scanners |
SCANNER_TYPES_HIDKB | 8 | USB HID Keyboard scanners |
Return Values
0 - Success.
Any other value - See Error and Status Codes on Appendix.
GetScanners
Gets a list of connected scanners of the requested types. Invoke this command after the Open command.
Syntax
unsigned short GetScanners(
/* [out] */ unsigned short *numberOfScanners,
/* [out][in] */ std::vector<unsigned int> *scannerIDList,
/* [out] */ std::string& outXML,
/* [out] */ StatusID *status);
Parameters
numberOfScanners - Number of connected scanners of requested type(s).
sfScannerIDList - Vector/Array of scannerIDs of the requested type(s). The size of the array is 255 (MAX_NUM_DEVICES).
outXML - XML string scanner meta information.
status - Return value for the command.
Return Values
0 - Success.
Any other value - See Error and Status Codes on Appendix.
ExecCommand
Provides synchronous execution of a method via an opcode.
Syntax
unsigned short ExecCommand(
/* [in] */ unsigned int opcode,
/* [in] */const std::string inXML,
/* [out] */ std::string& outXML,
/* [out] */ StatusID *status);
Parameters
opcode - Method to execute. See Methods Invoked Through ExecCommand Or ExecCommandAsync for opcodes.
inXML - Relevant argument list for the opcode, structured into an XML string.
outXML - XML string, scanner meta information.
status - Return value for the command.
Return Values
0 - Success.
Any other value - See Error and Status Codes on Appendix.
ExecCommandAsync
Provides asynchronous execution of a method via an opcode. Any response data is retrieved as a ScannerNotificationEvent.
Syntax
unsigned short ExecCommandAsync(
/* [in] */ unsigned int opcode,
/* [in] */ const std::string inXML,
/* [out] */ StatusID *status);
Parameters
opcode - Method to execute. See Methods Invoked Through ExecCommand Or ExecCommandAsync for opcodes.
inXML - Relevant argument list for the opcode, structured into an XML string.
status - Return value for the command.
Return Values
0 - Success.
Any other value - See Error and Status Codes on Appendix.
Close
Closes the application instance through the CoreScanner service.
Syntax
unsigned short Close(
/* [in] */ unsigned int appHandle,
/* [out] */ StatusID *status);
Parameters
appHandle - Reserved argument. Set to 0.
status - Return value for the command.
Return Values
0 - Success.
Any other value - See Error and Status Codes on Appendix.
API Events
The user application must register for each event category separately to receive events for that category. Use the methods REGISTER_FOR_EVENTS and UNREGISTER_FOR_EVENTS for this purpose (see Table 2 on Appendix).
ImageEvent
Triggered when an imaging scanner captures images in image mode. To receive ImageEvents, an application needs to execute the REGISTER_FOR_EVENTS method with the SUBSCRIBE_IMAGE event type.
Syntax
void OnImageEvent(
short eventType,
int size,
short imageFormat,
char* sfimageData,
int dataLength,
std::string& pScannerData )
Parameters
eventType - Type of image event received (see Table 2).
Table 2: Image Event Types
Event Type | Value | Description |
---|---|---|
IMAGE_COMPLETE | 1 | Triggered when complete image captured |
IMAGE_TRAN_STATUS | 2 | Triggered when image error or status |
size - Size of image data buffer.
dataLength - Length of image data buffer.
imageFormat - Format of image. (see Table 3)
Table 3: Image Formats
Event Type | Value |
---|---|
JPEG_FILE_SELECTION | 1 |
BMP_FILE_SELECTION | 3 |
TIFF_FILE_SELECTION | 4 |
sfimageData - Image data buffer.
pScannerData - Information in XML format about the scanner (ID, Model Number, Serial Number and GUID) that triggered the image event.
<?xml version="1.0" encoding="UTF-8"?>
<outArgs>
<scannerID>1</scannerID>
<arg-xml>
<modelnumber>DS6707-SR20001ZZR</modelnumber>
<serialnumber>7114000503322</serialnumber>
<GUID>33C01F39EB23D949B5F3DBF643304FC4</GUID>
</arg-xml>
</outArgs>
VideoEvent
Triggered when an imaging scanner captures video in video mode. To receive VideoEvents, an application must execute the REGISTER_FOR_EVENTS method with the SUBSCRIBE_VIDEO event type.
Syntax
void OnVideoEvent(
short eventType,
int size,
char* sfvideoData,
int dataLength,
std::string& pScannerData)
Parameters
eventType - Type of video event received. (see Table 4)
Table 4: Video Event Types
Event Type | Value | Description |
---|---|---|
VIDEO_FRAME_COMPLETE | 1 | A complete video frame is captured. |
size - Size of video data buffer.
sfvideoData - Video data buffer.
dataLength - Length of video data buffer.
pScannerData - Reserved parameter. Always returns an empty string.
BarcodeEvent
Triggered when a scanner captures barcodes. To receive BarcodeEvents, an application must execute the REGISTER_FOR_EVENTS method with the SUBSCRIBE_BARCODE event type.
Syntax
void OnBarcodeEvent(
short int eventType,
std::string & pscanData)
Parameters
eventType - Type of barcode event received. (see Table 5)
Table 5: Barcode Event Types
Event Type | Value | Description |
---|---|---|
SCANNER_DECODE_GOOD | 1 | A decode is successful. |
pscanData - Barcode string that contains information about the scanner that triggered the barcode event including data type, data label, and raw data of the scanned barcode.
<?xml version="1.0" encoding="UTF-8"?>
<outArgs>
<scannerID>1</scannerID>
<arg-xml>
<scandata>
<modelnumber>DS6707-SR20001ZZR</modelnumber>
<serialnumber>7114000503322</serialnumber>
<GUID>33C01F39EB23D949B5F3DBF643304FC4</GUID>
<datatype>8</datatype>
<datalabel>0x30 0x32 0x31 0x38 0x39 0x38 0x36 0x32</datalabel>
<rawdata>0x30 0x32 0x31 0x38 0x39 0x38 0x36 0x32</rawdata>
</scandata>
</arg-xml>
</outArgs>
<datatype> indicates the barcode type of the scanned barcode.
Barcode Data Types in Appendix lists the values received in SNAPI and IBM Hand-held USB communication protocols for each supported barcode type.
PNPEvent
Triggered when a scanner of a requested type attaches to or detaches from the system. Pairing a Bluetooth scanner to a cradle does not trigger a PnP event. To receive information about a newly paired device, call the GetScanners command again.
To receive PnPEvents, an application must execute the REGISTER_FOR_EVENTS method with the SUBSCRIBE_PNP event type.
Syntax
void OnPNPEvent(
short eventType,
std::string ppnpData)
Parameters
eventType - Type of PnP event received. (see Table 6)
Table 6: Barcode Event Types
Event Type | Value | Description |
---|---|---|
SCANNER_ATTACHED | 0 | A Zebra scanner is attached. |
SCANNER_DETACHED | 1 | A Zebra scanner is detached. |
ppnpData - PnP information string containing the asset tracking information of the attached or detached device.
Samples
Sample ppnpData XML for attachment of a direct scanner:
<outArgs>
<arg-xml>
<scanners>
<scanner type="SNAPI">
<scannerID>1</scannerID>
<modelnumber>DS9808-SR00007C1WR</modelnumber>
<serialnumber>1026300507698 </serialnumber>
<GUID>77E48FC31C75444B90BE318FECFAE867</GUID>
</scanner>
</scanners>
<status>1</status>
</arg-xml>
</outArgs>
Sample ppnpData XML for attachment of a cascaded scanner. This XML can be received as a PnP event after a GetScanners command if there are devices newly paired to a Bluetooth cradle.
<outArgs>
<arg-xml>
<scanners>
<scanner type="USBIBMHID">
<scannerID>1</scannerID>
<modelnumber>CR0078-SC10007WR </modelnumber>
<serialnumber>1020800512980 </serialnumber>
<GUID>3665579766A9514DAAF523D35E051674</GUID>
<pnp>0</pnp>
<scanner type="USBIBMHID">
<scannerID>2</scannerID>
<modelnumber>DS6878-SR20007WR </modelnumber>
<serialnumber>M1M87R38Y </serialnumber>
<GUID></GUID>
<pnp>1</pnp>
</scanner>
</scanner>
</scanners>
<status>1</status>
</arg-xml>
</outArgs>
ScanRMDEvent
Receives RMD events when updating scanner firmware. To receive RMD events, an application must execute the REGISTER_FOR_EVENTS method with the SUBSCRIBE_RMD event type.
Syntax
void OnScanRMDEvent(
short eventType,
std::string & pscanData)
Parameters
eventType - Type of RMD event received. (see Table 7)
Table 7: RMD Event Types
Event Type | Value | Description |
---|---|---|
SCANNER_UF_SESS_START | 11 | Flash download session started. |
SCANNER_UF_DL_START | 12 | Component download started. |
SCANNER_UF_DL_PROGRESS | 13 | Block(s) of flash completed. |
SCANNER_UF_DL_END | 14 | Component download ended. |
SCANNER_UF_SESS_END | 15 | Flash download session ended. |
SCANNER_UF_STATUS | 16 | Updated error or status. |
prmdData - ScanRMD information string containing the event data.
ScannerNotificationEvent
Received when a SNAPI scanner changes operational mode. To receive ScannerNotificationEvents, an application must execute the REGISTER_FOR_EVENTS method with the SUBSCRIBE_OTHER event type.
Syntax
void OnScannerNotification(
short notificationType,
std::string & pScannerData)
Parameters
notificationType - Type of the notification event received. (see Table 8)
Table 8: Notification Event Types
Event Type | Value | Description |
---|---|---|
DECODE_MODE | 1 | Triggered when a scanner changes its operation mode to decode. |
SNAPSHOT_MODE | 2 | Triggered when a scanner changes its operation mode to image mode. |
VIDEO_MODE | 3 | Triggered when a scanner changes its operation mode to video mode. |
pScannerData - Information about the scanner (ID, Model Number, Serial Number and GUID) that triggered the notification event.
BinaryDataEvent
Triggered when an IDC-supported imaging scanner captures an image in Intelligent Document Capture (IDC). To receive a BinaryDataEvent, an application must execute the REGISTER_FOR_EVENTS method with the SUBSCRIBE_IMAGE event type.
Syntax
void OnBinaryDataEvent(
short eventType,
int size,
short dataFormat,
unsigned char* sfBinaryData,
std::string& pScannerData)
Parameters
eventType - Reserved.
size - Size of binary data buffer.
dataFormat - The format of the BinaryDataEvent. (see Table 9)
Table 9: Binary Data Formats
Data | Format |
---|---|
0xB5 | IDC Format |
sfBinaryData - Binary data buffer.
pScannerData - Information in XML format about the scanner (ID, Model Number, Serial Number, and GUID) that triggered the Binary data event.
<?xml version="1.0" encoding="UTF-8"?>
<outArgs>
<scannerID>1</scannerID>
<arg-xml>
<modelnumber>DS6707-SR20001ZZR</modelnumber>
<serialnumber>7114000503322</serialnumber>
<GUID>33C01F39EB23D949B5F3DBF643304FC4</GUID>
</arg-xml>
</outArgs>
Using the Methods (Examples)
REGISTER_FOR_EVENTS (Value 1001) | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description | Register for API events. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols | N/A | ||||||||||||||
InXml
Table 10 lists the Event IDs for the inXML code above. Table 10: Event IDs
|
|||||||||||||||
OutXml
null |
|||||||||||||||
UNREGISTER_FOR_EVENTS (Value 1002) | |||||||||||||||
Description | Unregister from API events. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols | N/A | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
CLAIM_DEVICE (Value 1500) | |||||||||||||||
Description | Claim a specified device. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols | N/A | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
RELEASE_DEVICE (Value 1501) | |||||||||||||||
Description | Release a specified device. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols | N/A | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
CMD_LOAD_CONFIGURATION (5020) | |||||||||||||||
Description | Pushes the Configuration File to the Scanner. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
ABORT_MACROPDF (Value 2000) | |||||||||||||||
Description | Abort MacroPDF of a specified scanner. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols | SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
ABORT_UPDATE_FIRMWARE (Value 2001) | |||||||||||||||
Description | Abort firmware update process of a specified scanner. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
AIM_OFF (Value 2002) | |||||||||||||||
Description | Turn off the aiming of a specified scanner. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols | SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
AIM_ON (Value 2003) | |||||||||||||||
Description | Turn on the aiming of a specified scanner. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols | SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
FLUSH_MACROPDF (Value 2005) | |||||||||||||||
Description | Flush MacroPDF of a specified scanner. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols | SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
DEVICE_PULL_TRIGGER (Value 2011) | |||||||||||||||
Description | Pull the trigger of a specified scanner. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols |
SNAPI, IBM Hand-held*, IBM Table-top *Supported auxiliary scanners if the firmware supports. |
||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
DEVICE_RELEASE_TRIGGER (Value 2012) | |||||||||||||||
Description | Release the pulled trigger of a specified scanner. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols |
SNAPI, IBM Hand-held*, IBM Table-top *Supported auxiliary scanners if the firmware supports. |
||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
SCAN_DISABLE (Value 2013) | |||||||||||||||
Description | Disable scanning on a specified scanner. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | SNAPI, IBM Hand-held, IBM Table-top | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
SCAN_ENABLE (Value 2014) | |||||||||||||||
Description | Enable scanning on a specified scanner. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | SNAPI, IBM Hand-held, IBM Table-top | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
REBOOT_SCANNER (Value 2019) | |||||||||||||||
Description | Reboot a scanner. To reboot a Bluetooth scanner, send this command to the scanner’s associated cradle. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
DEVICE_CAPTURE_IMAGE (Value 3000) | |||||||||||||||
Description | Invoke snapshot mode on an imaging scanner. The scanner blinks the green LED at one second intervals to indicate it is not in standard operating (decode) mode, and reverts to standard operating mode after a trigger pull or the snapshot time out occurs. After a trigger pull, the CoreScanner driver triggers an ImageEvent containing the captured image. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
DEVICE_CAPTURE_BARCODE (Value 3500) | |||||||||||||||
Description | Change a scanner to decode mode. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
DEVICE_CAPTURE_VIDEO (Value 4000) | |||||||||||||||
Description | Invoke video mode on an imaging scanner. The scanner behaves as a video camera as long as the trigger is pulled. Releasing the trigger returns the scanner to decode mode. As long as the trigger is pulled, the CoreScanner driver triggers VideoEvents that contain the video data. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
ATTR_GETALL (Value 5000) | |||||||||||||||
Description | Get all attributes of a scanner. A synchronous call of this method returns an outXML as in the following example. An asynchronous call triggers a CommandResponseEvent. | ||||||||||||||
Asynchronous supported | Yes | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
NOTE Refer to the pertinent scanner's Product Reference Guide for supported attribute numbers, types, and possible values.
|
|||||||||||||||
ATTR_GET (Value 5001) | |||||||||||||||
Description | Get the attribute values of a scanner. A synchronous call of this method returns outXML as in the following example. An asynchronous call triggers a CommandResponseEvent. | ||||||||||||||
Asynchronous supported | Yes | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
|
|||||||||||||||
ATTR_GETNEXT (Value 5002) | |||||||||||||||
Description | Get the value of the next attribute to a given attribute of a scanner. A synchronous call of this method returns an outXML as in the following example. An asynchronous call triggers a CommandResponseEvent. | ||||||||||||||
Asynchronous supported | Yes | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
|
|||||||||||||||
ATTR_SET (Value 5004) | |||||||||||||||
Description | Set the attribute values of a scanner. These values are discarded on power down. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
ATTR_STORE (Value 5005) | |||||||||||||||
Description | Store the attribute values of a scanner. These values persist over power down and power up cycles. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
GET_DEVICE_TOPOLOGY (Value 5006) | |||||||||||||||
Description | Get the topology of devices connected to the calling system. | ||||||||||||||
Asynchronous supported | No | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
|
|||||||||||||||
START_NEW_FIRMWARE (Value 5014) | |||||||||||||||
Description | Start the updated firmware. This reboots the scanner. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
UPDATE_FIRMWARE (Value 5016) | |||||||||||||||
Description | Update the firmware of a scanner. Specify the bulk firmware update option for faster firmware download in SNAPI mode. If an application registered for ScanRMDEvents, it receives ScanRMDEvents. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
UPDATE_FIRMWARE_FROM_PLUGIN (Value 5017) | |||||||||||||||
Description | Update the firmware of a scanner using a plug-in. Specify the bulk firmware update option for faster firmware download in SNAPI mode. If an application registered for ScanRMDEvents, it receives ScanRMDEvents. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null
NOTE This command does not verify supported scanner models of the plug-in. It attempts the firmware update with the DAT file extracted from the specified plug-in file regardless of model.
|
|||||||||||||||
SET_ACTION (Value 6000) | |||||||||||||||
Description | Perform an action involving the scanner's beeper or LEDs. | ||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI | ||||||||||||||
InXml
|
|||||||||||||||
OutXml
null |
|||||||||||||||
DEVICE_SWITCH_HOST_MODE (Value 6200) | |||||||||||||||
Description |
Switch the USB host mode of a scanner. This reboots the scanner. If the scanner is in HID Keyboard mode, the only supported host variants are IBM Hand-held, IBM Table-top, and SNAPI. To configure this as a silent switch (suppressing reboot beeps) and persist the targeted host mode as permanent, set the parameters in the inXML string. For a Bluetooth scanner, send this command to the scanner's associated cradle. |
||||||||||||||
Asynchronous supported | N/A | ||||||||||||||
Supported Scanner Communication Protocols | IBM Hand-held, IBM Table-top, SNAPI, HID Keyboard. | ||||||||||||||
InXml
Table 11 lists the string codes for USB host variants. Table 11: USB Host Variants
|
|||||||||||||||
OutXml
null |