Device Properties

ICaptureProperty.PropId.kVersionDevice

This property retrieves the version information of a connected device.

The version of the device can be read upon reception of the Get Complete event. The property has its type set to ICaptureProperty.PropId.kVersion, and the version field of the property contains the version information of the device identified by its handle. The version is described by 9 fields: Major, Middle, Minor, Build, Year, Month, Day, Hour and Minute.

Get

Get Complete

Set

Set Complete

None

Version

not applicable

not applicable

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kDeviceType

This property is used to retrieve the Device Type of a connected device. A device type is defined in a 32-bit value composed of 2 types of information. The first is the interface type that can be one of the following values:

Value

Description

DeviceType.InterfaceType.kNone

Unspecified interface type for this device

DeviceType.InterfaceType.kSD

Secure Digital IO interface

DeviceType.InterfaceType.kCF

Compact Flash interface

DeviceType.InterfaceType.kBluetooth

Bluetooth interface

DeviceType.InterfaceType.kSerial

Serial interface

The second is the product identifier which can be one of the following values:

Value

Description

DeviceType.ProductID.kNone

Unspecified Product ID

DeviceType.ProductID.k7Series

Product from the series 7 family

DeviceType.ProductID.k7xSeries

Product from the series 7x family

DeviceType.ProductID.k9Series

Product from the series 9 family

DeviceType.ProductID.k7xiSeries

Product from the series 7Xi/Qi

DeviceType.ProductID.kSocketCam

Device’s Camera used as barcode scanner

DeviceType.ProductID.k8ciSeries

Product from the S800(8Ci) family

DeviceType.ProductID.k8qiSeries

Product from the S850(8Qi) family

DeviceType.ProductID.kS840Series

Product from the S840 family

DeviceType.ProductID.kD700Series

Product from the Durascan D700 family

DeviceType.ProductID.kD730Series

Product from the Durascan D730 family

DeviceType.ProductID.kD740Series

Product from the Durascan D740 family

DeviceType.ProductID.kD750Series

Product from the Durascan D750 family

DeviceType.ProductID.kD760Series

Product from the Durascan D760 family

DeviceType.ProductID.kS700Series

Product from the SocketScan S700 family

DeviceType.ProductID.kS730Series

Product from the SocketScan S730 family

DeviceType.ProductID.kS740Series

Product from the SocketScan S740 family

DeviceType.ProductID.kS750Series

Product from the SocketScan S750 family

DeviceType.ProductID.kS760Series

Product from the SocketScan S760 family

DeviceType.ProductID.kS860Series

Product from the SocketScan S860 family

DeviceType.ProductID.kD790Series

Product from the Durascan D790 family

DeviceType.ProductID.kUnknown

Unknown Product Type

The following device types are defined as combinations of the Interface Type and Device Type

Value

Description

DeviceType.kNone

Unspecified Device

DeviceType.kScanner7

For the CHS family

DeviceType.kScanner7x

For the CHS 7X family

DeviceType.kScanner9

For the CRS family

DeviceType.kScanner7xi

For the CHS 7Xi/Qi family

DeviceType.kSocketCam

For device’s camera used as barcode scanner

DeviceType.kScanner8ci

For the CHS S800(8Ci) family

DeviceType.kScanner8qi

For the CHS S850(8Qi) family

DeviceType.kScannerS840

For the CHS S840 family

DeviceType.kScannerD700

For the Durascan D700 family

DeviceType.kScannerD730

For the Durascan D730 family

DeviceType.kScannerD740

For the Durascan D740 family

DeviceType.kScannerD750

For the Durascan D750 family

DeviceType.kScannerD760

For the Durascan D750 family

DeviceType.kScannerS700

For the SocketScan S700 family

DeviceType.kScannerS730

For the SocketScan S730 family

DeviceType.kScannerS740

For the SocketScan S740 family

DeviceType.kScannerS750

For the SocketScan S750 family

DeviceType.kScannerS760

For the SocketScan S760 family

DeviceType.kScannerS860

For the SocketScan S860 family

DeviceType.kScannerD790

For the Durascan D790 family

Note

A couple of static functions can be used in order to retrieve one of the two information types contained in the device type. DeviceType.RETRIEVE_PRODUCTID(int deviceType) This function retrieves the product identification from the device type. DeviceType.RETRIEVE_INTERFACETYPE(int deviceType) This function retrieves the interface type from the device type.

This property cannot be used with the SktCaptureSet API.

Get

Get Complete

Set

Set Complete

None

ULong

not applicable

not applicable

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kDeviceSpecific

This property can send a device specific command. The command depends on the device type connected to the host. Capture acts as a pass-through without interpreting any of the data in the command that is sent to the device using this property. The command should be set in the Array member of the property, and the response command is returned in the Array member of the property. The command format depends on the device used. The command format for the 7Xi/Qi/D750 series is different from the command format used in the SocketScan 700/800, Durascan series and CHS 7 Series. The command should be a properly formatted packet for the engine without the checksum or other framing.

The command format for the SocketScan 700/800, Durascan series and CHS 7 Series is decomposed as described in the following table.

Byte

Size

Description

0

1

Size including this byte

1

1

OpCode (0xC6 for example)

2

1

Status: 0x04 for Host

3

1

Flags: 0x00

4

1

Beep Code: 0xFF This byte is only required for the SetParam command 0xC6

5

variable

Payload without checksum

The command format for the 7Xi/Qi/D750 series is decomposed as described in the following table.

Byte

Size

Description

0

1

Operation

1

1

Group ID

2

1

Function ID

3

variable

Function payload without checksum

Get

Get Complete

Set

Set Complete

Array

Array

Array

Array

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kSymbologyDevice

This property is used to retrieve or set the status of a particular symbology.

A symbology is identified by a unique ID. A Capture symbology object is used in order to manipulate the setting of a symbology.

This object is ICaptureSymbology. It has the following fields:

Name

Description

ID

Contains the Symbology ID (e.g. ICaptureSymbology.Id.kCode39)

Flags

Indicates if the Param field is used or not.

Status

Indicates the status of the symbology.

Param

Contains extra parameters about the symbology. Not used for now.

Name

Contains the symbology name. Only used to return the symbology name

A symbology that has a ICaptureSymbology.StatusValues.kNotSupported status means the device doesn’t support this symbology.

The following table gives the possible Symbology Status.

Name

Definition

ICaptureSymbology.StatusValues.kEnable

The symbology is present and activated.

ICaptureSymbology.StatusValues.kDisable

The symbology is present but deactivated.

ICaptureSymbology.StatusValues.kNotSupported

The symbology is not supported by the device.

The following table gives the list of Symbology IDs.

Name

Definition

ICaptureSymbology.Id.kNotSpecified

The symbology ID is unknown or not specified.

ICaptureSymbology.Id.kAustraliaPost

Australia Post

ICaptureSymbology.Id.kAztec

AZTEC

ICaptureSymbology.Id.kBooklandEan

BOOKLAND EAN

ICaptureSymbology.Id.kBritishPost

British Post

ICaptureSymbology.Id.kCanadaPost

Canada Post

ICaptureSymbology.Id.kChinese2of5

Chinese 2 of 5

ICaptureSymbology.Id.kCodabar

CODABAR

ICaptureSymbology.Id.kCodablockA

CODABLOCK A

ICaptureSymbology.Id.kCodablockF

CODABLOCK F

ICaptureSymbology.Id.kCode11

Code 11

ICaptureSymbology.Id.kCode39

Code 39

ICaptureSymbology.Id.kCode39Extended

Code 39 Full ASCII

ICaptureSymbology.Id.kCode39Trioptic

Code 39 Trioptic

ICaptureSymbology.Id.kCode93

Code 93

ICaptureSymbology.Id.kCode128

Code 128

ICaptureSymbology.Id.kDataMatrix

Data Matrix

ICaptureSymbology.Id.kDutchPost

Dutch Post

ICaptureSymbology.Id.kEan8

EAN 8

ICaptureSymbology.Id.kEan13

EAN 13

ICaptureSymbology.Id.kEan128

EAN 128

ICaptureSymbology.Id.kEan128Irregular

EAN 128 Irregular

ICaptureSymbology.Id.kEanUccCompositeAB

EAN UCC Composite AB

ICaptureSymbology.Id.kEanUccCompositeC

EAN UCC Composite C

ICaptureSymbology.Id.kGs1Databar

GS1 DATABAR

ICaptureSymbology.Id.kGs1DatabarLimited

GSI DATABAR Limited

ICaptureSymbology.Id.kGs1DatabarExpanded

GS1 DATABAR Expanded

ICaptureSymbology.Id.kInterleaved2of5

Interleaved 2 of 5

ICaptureSymbology.Id.kIsbt128

ISBT 128

ICaptureSymbology.Id.kJapanPost

Japan Post

ICaptureSymbology.Id.kMatrix2of5

Matrix 2 of 5

ICaptureSymbology.Id.kMaxicode

Maxicode

ICaptureSymbology.Id.kMsi

MSI

ICaptureSymbology.Id.kPdf417

PDF 417

ICaptureSymbology.Id.kPdf417Micro

PDF 417 Micro

ICaptureSymbology.Id.kPlanet

Planet US Post

ICaptureSymbology.Id.kPlessey

PLESSEY

ICaptureSymbology.Id.kPostnet

POSTNET US Post

ICaptureSymbology.Id.kQRCode

QR Code

ICaptureSymbology.Id.kStandard2of5

Standard 2 of 5

ICaptureSymbology.Id.kTelepen

Telepen

ICaptureSymbology.Id.kTlc39

TLC 39

ICaptureSymbology.Id.kUpcA

UPC A

ICaptureSymbology.Id.kUpcE0

UPC E0

ICaptureSymbology.Id.kUpcE1

UPC E1

ICaptureSymbology.Id.kUspsIntelligentMail

USPS Intelligent Mail

ICaptureSymbology.Id.kDirectPartMarking

Direct Part Marking optimization

ICaptureSymbology.Id.kHanXin

Han Xin

ICaptureSymbology.Id.kLastSymbologyID

Last ID, not an actual symbology

The enumeration of the available symbologies of a device can be done by doing get operations with the symbology ID incremented one by one from kNotSpecified+1 to kLastSymbolID-1.

Get

Get Complete

Set

Set Complete

Symbology

Symbology

Symbology

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kTriggerDevice

This property allows the application to start or stop a trigger operation of a device remotely or to activate/deactivate the device trigger button. This property can only be used in a Set operation. Its Byte value can have one of the following values:

Name

Description

ICaptureProperty.Values.Trigger.kStart

Start a scan

ICaptureProperty.Values.Trigger.kStop

Stop a scan

ICaptureProperty.Values.Trigger.kEnable

Enable the trigger button

ICaptureProperty.Values.Trigger.kDisable

Disable the trigger button

ICaptureProperty.Values.Trigger.kContinuousScan

Continuous Scan with iOS SocketCam only

In the case of triggering a SocketCam read, the SocketCam scanner must have its overlay view set prior to trigger a scan. An error ESKT_OVERLAYVIEWNOTSET is generated if this hasn’t been done yet and a set ICaptureProperty.PropId.kTriggerDevice is applied. This is a requirement in order for SocketCam to display its viewfinder. Please refer to the ICaptureProperty.PropId.kOverlayViewDevice for more details on this property.

The kContinuousScan value allows the SocketCam viewfinder to stay on the screen even after a successful read. There is a 1s delay to avoid reading the same barcode. There won’t be multiple reads of the same barcode if the viewfinder aims at the same barcode without moving around its aim. The user must click the Cancel button present on the viewfinder when no more barcodes need to be read.

Get

Get Complete

Set

Set Complete

Not applicable

Not applicable

Byte

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kApplyConfigDevice

This property applies the device configuration stored on the host to the device. This property can only be set and doesn’t have any parameters.

Get

Get Complete

Set

Set Complete

None

None

None

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kPreambleDevice

This property can be used to set or get the device preamble. When a preamble is set, it will be added in front of the decoded data. The preamble is defined as a string with a length that can contain any value for each character from 0 (0x00) to 255 (0xff).

Note

The 7 series 3.1 scanners don’t support a true preamble. The preamble is actually stored on the device as part as the friendly name and postamble. The total amount of characters for the friendly name, preamble and postamble cannot be bigger than 28 characters. If a preamble is too long, an error ESKT_INVALIDPARAMETER would be generated in the return of the SktCaptureSet API. If the device is used without Capture, the preamble won’t appear in front of the decoded data. The 7 series 3.2 or higher scanners support a limited preamble. The preamble can only be one character long. It can be used without Capture once it is setup. The 7 series version can be determined by the Version property Major and Middle values.

These remarks only apply to the CHS7 series, except for the 7Xi and 7Qi. They do not apply for any other scanner series.

Get

Get Complete

Set

Set Complete

None

String

String

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kPostambleDevice

This property can be used to set or get the device postamble. When a postamble is set, it will be added at the tail of the decoded data.

The postamble is defined as a string with a length that can contains any value for each character from 0 (0x00) to 255 (0xff).

Note

The 7 series v3.1 don’t support a true postamble. The postamble is actually stored on the device as part as the friendly name and preamble. The total amount of characters for the friendly name, preamble and postamble cannot be bigger than 28 characters. If a postamble is too long, an error ESKT_INVALIDPARAMETER would be generated in the return of the SktCaptureSet API. If the device is used without ScanAPI, the postamble won’t appear at the tail of the decoded data.

Note

The 7 series v3.2 or higher support a limited postamble. The postamble can only be 2 characters long. It can be used without Capture once it is setup.

These remarks only apply to the CHS7 series, except for the 7Xi and 7Qi. They do not apply for any other scanner series.

Get

Get Complete

Set

Set Complete

None

String

String

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kCapabilitiesDevice

This property can be used to get the device capabilities.

The capabilities of a device have been divided in 2 groups: General and Local Functions.

The General group contains the information about the device to determine if it has a Local Function Group capability.

The Local Function Group regroups the features that are implemented locally on the device, such as Friendly Name, Sound, Led flash, Vibration, etc.

The features that belong to the General Group are features implemented in any type of device, such as Device Type, Symbology settings, Trigger etc…

Most of the time, these features are implemented in the scanner engine. The Get Request has a one-byte parameter to interrogate the one of the capabilities group. The following table describes the capabilities of each group.

If the Get Property byte value is set to ICaptureProperty.Values.CapabilityGroup.kGeneral, the return value of the Get Complete Property is a Ulong describing the general capability. In the current version of Capture only Bit 0 is set to 1 if the device supports Local Functions.

3 1

3 0

2 9

2 8

2 7

2 6

2 5

2 4

2 3

2 2

2 1

2 0

1 9

1 8

1 7

1 6

1 5

1 4

1 3

1 2

1 1

1 0

9

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

X

The X is set to 1 when the device supports Local Functions. The following constant can be use for the LocalFunctions bit: ICaptureProperty.Values.CapabilityGeneral.kLocalFunctions

If the Get Property byte value is set to ICaptureProperty.Values.CapabilityGroup.kLocalFunctions, the return value of the Get Complete Property is an unsigned long (Ulong) describing the Local Functions capability.

In the current version of Capture, the Bit 0 is set to 1 if the device supports Vibration mode and the Bit 1 is set to 1 if the Change ID feature is present.

3 1

3 0

2 9

2 8

2 7

2 6

2 5

2 4

2 3

2 2

2 1

2 0

1 9

1 8

1 7

1 6

1 5

1 4

1 3

1 2

1 1

1 0

9

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Y

X

Bit 0 is set to 1 when the device supports Vibration Mode. Bit 1 is set to 1 when the device supports the Change ID feature. These are the constants used for capability definition: ICaptureProperty.Values.CapabilityLocalFunctions.kRumble and ICaptureProperty.Values.CapabilityLocalFunctions.kChangeID.

Get

Get Complete

Set

Set Complete

Byte

Ulong

not applicable

not applicable

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kChangeIdDevice

This property returns a Change ID of the device symbology configuration and the device preamble and postamble. This Change ID will reflect any configuration change in the scanner engine that could have been made outside Capture by scanning a scanner engine configuration barcode.

This feature is useful to figure out if the device has a different symbology configuration or preamble/postamble than the host has stored for this device.

The enumeration of all the supported symbologies can be a lengthy operation that can be greatly improved by implementing a symbology cache mechanism.

The first time a device is connected to the host, its symbology status gets enumerated and stored into a cache. The change ID is also requested.

If the device disconnects and then reconnects at a later time to this host, the change ID is requested and compared with the ChangeID stored in the host cache. If the change ID is the same then the symbology can be displayed out of the cache without requesting it from the device.

If the ChangeID is different, this means the symbology on the device has been altered, and it will require a new enumeration of the symbology from the device.

The change ID is a Ulong value that is a checksum of all the scanner engine settings (including symbology activation and preamble/postamble).

Other scanner properties aren’t covered by this Change ID, such as beeps/LED/Vibration configuration, friendly name, data store, and confirmation settings.

Get

Get Complete

Set

Set Complete

None

Ulong

not applicable

not applicable

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kFriendlyNameDevice

This property is used to read or modify the friendly name of a device. The friendly name is carried as a string in the property.

The friendly name of a device is what appears during a Bluetooth device discovery process. The main purpose of changing the friendly name of a device is to have an easy way to identify a particular device.

The changes are active immediately upon success of the Set Complete operation, although some host devices/platforms may cache the last friendly name.

The friendly name size can be as long as 32 UTF8 characters including the null terminator.

Note

For the 7 series v3.1, Capture uses the friendly name memory to store the preamble and the postamble. The total amount of characters for the friendly name, preamble and postamble cannot be bigger than 28 characters. If a friendly name is too long to be stored along with the preamble and postamble, an error ESKT_INVALIDPARAMETER would be generated in the return of the SktCaptureSet API.

These remarks only apply to the CHS7 series, except for the 7Xi and 7Qi. They do not apply for any other scanner series.

Get

Get Complete

Set

Set Complete

None

String

String

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kSecurityModeDevice

This property gets or set the security mode of a device.

The security mode can be one of the following values:

Value

Description

ICaptureProperty.Values.SecurityMode.kNone

No security mode on the device.

ICaptureProperty.Values.SecurityMode.kAuthentication

Mode Authentication on the device. Any host attempting to connect to this device will be asked for a PIN code.

ICaptureProperty.Values.SecurityMode.kAuthenticationEncryption

Same as above but with data encryption enabled between the host and the device.

ICaptureProperty.Values.SecurityMode.kAuthenticationEncryptionSingleBDAddress

Same as above but the device only keeps the security information for one host. Connecting to another host cause the security process to start all over again.

Get

Get Complete

Set

Set Complete

None

Byte

Byte

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kPinCodeDevice

This property sets a new pin code for a connected device. The new PIN code should be a string and cannot be longer than 16 characters. The new PIN code will have effect at the next connection of the device. Changing the PIN code of the connected device won’t disconnect device. The new PIN code will be required by the host when the device connects the next time.

Get

Get Complete

Set

Set Complete

Not applicable

Not applicable

String

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kDeletePairingBondingDevice

This property deletes the Bluetooth pairing and bonding information from the device identified by its reference. Once the pairing and bonding information have been deleted from the device, the device stays connected. The new pairing and bonding information will be created at the next connection of the device to the host.

This property can only be used in a Set operation and has one parameter indicating if the pairing and bonding information should be deleted for all the hosts the scanner might know or only for the current host.

A constant has been defined for each of these modes:

Name

Description

CaptureProperty.Values.DeletePairing.kCurrent

Delete the Pairing and Bonding information only for the current host.

CaptureProperty.Values.DeletePairing.kAll

Delete the Pairing and Bonding

Get

Get Complete

Set

Set Complete

Not applicable

Not applicable

None

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kRestoreFactoryDefaultsDevice

This property turns the power off from the device causing it to disconnect.

This property can only be used in a Set operation and doesn’t have any parameters.

This is one of the rare cases where a Set Complete might not be received before the device drops the connection. From the application point of view, the device removal might come before the Set Complete timeout error. If the application closes right away the device upon reception of the device removal event, the Set Complete timeout error will never be received by the application.

Get

Get Complete

Set

Set Complete

Not Applicable

Not Applicable

None

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kSetPowerOffDevice

This property turns the device power off causing it to disconnect. This property can only be used in a Set operation and doesn’t have any parameters.

This is one of the rare cases where a Set Complete might not be received before the device drops the connection. From the application point of view, the device removal might come before the Set Complete timeout error. If upon reception of the device removal event the application closes the device, the Set Complete timeout error will never be received by the application.

Get

Get Complete

Set

Set Complete

Not Applicable

Not Applicable

None

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kButtonStatusDevice

This property gets the button status of the connected device. The button status is coded in one byte as a bit field indicating the status of each button on the device.

A set of functions can be used in order to retrieve the status of a particular button. The function returns a Boolean to indicate if the button is pressed (true) or released (false) or, in the case of the Series 9 Ring Scanner, it is detached (true) or attached (false).

Get

Get Complete

Set

Set Complete

None

Byte

Not Applicable

Not Applicable

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kSoundConfigDevice

This property gets or sets the sound configuration of the connected device.

Each action can have its own sound definition.

Here is the list of possible actions:

Name

Description

ICaptureProperty.Values.SoundActionType.kGoodScan

Sound played when a good scan occurs when the host is sending a positive data confirmation

ICaptureProperty.Values.SoundActionType.kGoodScanLocal

Sound played when the device locally acknowledges a good scan.

ICaptureProperty.Values.SoundActionType.kBadScan

Sound played when a bad scan occurs when the host is sending a negative data confirmation

ICaptureProperty.Values.SoundActionType.kBadScanLocal

Sound played when the device locally acknowledges a bad scan. This can occur when a scan is done in a disconnected state. This action is only supported in the 7Xi and 7Qi scanners, all others will return ESKT_NOTSUPPORTED.

A sound configuration is composed of two parameters; the number of tones and the tones.

A tone is defined by its frequency, its duration and the pause before the next tone.

These parameters are expressed as 16 bit words in big-endian format.

The frequency can be set to one of the following values:

Name

Description

ICaptureProperty.Values.SoundFrequency.kNone

No sound

ICaptureProperty.Values.SoundFrequency.kLow

Low frequency sound

ICaptureProperty.Values.SoundFrequency.kMedium

Medium frequency sound

ICaptureProperty.Values.SoundFrequency.kHigh

High frequency sound

The duration and the pause are expressed in milliseconds.

The minimum and maximum values are in the table below.

The sound configuration is summarized in the following table:

Name

Size

Present

Description

Sound Action

2bytes

Get Complete, Set

Configuration of a particular sound action.

Number of Tones

2bytes

Get Complete, Set

Define the number of tones present in this configuration. The maximum number of tones is five (5).

Frequency Tone 1

2bytes

Get Complete, Set

Define the frequency of the first tone.

Duration Tone 1

2bytes

Get Complete, Set

Define the duration of the first tone. The duration range is 50 (0x32) to 32767 (0x7FFF) for the 7Xi/Qi and 120 (0x78) to 2000(0x7D0) for the 1D scanners (7Ci/Di/Pi/Mi & 8Ci)

Pause Tone 1

2bytes

Get Complete, Set

Define the pause length of the first tone. The pause range is from 50 (0x32) to 32767 (0x7FFF) for the 7Xi/Qi and 120 (0x78) to 2000(0x7D0) for the 1D scanners (7Ci/Di/Pi/Mi & 8Ci)

… same 3 last fields for the subsequent tones until Number of Tones is reached

The Get request property uses only a byte value to request the configuration of a particular sound action.

The following is an example of an array that can be used for the Set request:

Word values

Description

SoundActionType.kGoodScanLocal

Configuration for the Good Scan Local Sound

0x0002

2 tones

SoundFrequency.kHigh

Tone 1: frequency High

0x00C8

Tone 1: duration 200ms

0x0064

Tone 1: pause 100ms

SoundFrequency.kLow

Tone 2: frequency Low

0x00C8

Tone 2: duration 200ms

0x0064

Tone 2: pause 100ms

The Get operation requires its property byte value to be set to the action the application would like to retrieve for the sound configuration.

The Get Complete operation returns an array of bytes with the first word as the sound action followed by two bytes of the number of tones, and then the six bytes required for each tone.

Format of the Get Complete Array:

Offset

Size

Description

0

2 bytes

Sound Action identifier

2

2 bytes

Number of tones

4

2 bytes

Tone 1: frequency

6

2 bytes

Tone 1: Duration

8

2 bytes

Tone 1: Pause

Repeat the last 6 bytes for the next tone

The Set operation follows the same principle with its property type set to an array, with the first word set to the action that needs to be modified, the following two bytes set to the number of tones that must be played when this action occurs, and followed by six bytes for each tone.

Format of the Set Array:

Offset

Size

Description

0

2 bytes

Sound Action identifier

2

2 bytes

Number of tones

4

2 bytes

Tone 1: frequency

6

2 bytes

Tone 1: Duration

8

2 bytes

Tone 1: Pause

Repeat the last 6 bytes for the next tone

Get

Get Complete

Set

Set Complete

None

Array

Array

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kTimersDevice

This property gets or sets the various Timers of the connected device.

There are three timers that can be modified. The first is the trigger lock out timer, which is the time the trigger is locked out after a scan.

If the device receives a confirmation from the host, it then unlocks the trigger, otherwise the trigger lock out timeout occurs and unlocks the trigger.

The other timers are used to know when to turn the device off when no activity is detected. These timers are dependent on the device connection state.

There is one timer when the device is in disconnected state and a second one for when the device is in a connected state.

When the timeout is reached the device turns itself off.

The first parameter of this property is a mask to indicate for which timer the values should be modified.

All the parameters are expressed in 16 bit words in big-endian format.

The following table describes the parameters format used in the property for the Set Operation and the Get Complete response:

Name

Size

Description

Timers Mask

2 bytes

Mask indicating which timer is involved in the following parameters. The mask can a combination of any of the following values: kSktCaptureTimerTriggerAutoLockTimeout kSktCaptureTimerPowerOffConnected kSktCaptureTimerPowerOffDisconnected

Trigger Lock out timer

2 bytes

Time in 1/4 second increments for the trigger to be locked out.

Disconnected auto off time

2 bytes

Time in minutes to leave power on when no activity is detected and there is no connection to any host.

Connected auto off time

2 bytes

Time in minutes to leave power on when no activity is detected while connected to a host.

Note

The Set operation cannot set the trigger lockout timer at the same time as the connected power off timer or disconnected power off timer. If the set operation has the timer mask set to kSktCaptureTimerTriggerAutoLockTimeout and any of the other values, the result will always fail with an invalid parameter error. Additionally, the highest trigger lockout timer value supported is 255, or 63.75 seconds. Any higher value will generate an invalid parameter error.

Get

Get Complete

Set

Set Complete

None

Array

Array

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kLocalAcknowledgmentDevice

This property is used to configure or retrieve the device local acknowledgment setting.

If the local acknowledgment is turned on, the device will acknowledge the decoded data.

If the local acknowledgment is turned off, the device won’t acknowledge the decoded data and the trigger button is locked until the host acknowledges the data or until the trigger lockout time has elapsed.

The host can acknowledge the decoded data by using the ICaptureProperty.PropId.kDataConfirmationDevice property.

Depending on how the Capture ICaptureProperty.PropId.kDataConfirmationMode is set, Capture can confirm the decoded data automatically.

Please refer to paragraph Data confirmation feature.

The local acknowledgment byte value is defined as follows:

Name

Description

ICaptureProperty.Values.DeviceDataAcknowledgment.kOff

Turn off the device local acknowledgment

ICaptureProperty.Values.DeviceDataAcknowledgment.kOn

Turn on the device local acknowledgment

Get

Get Complete

Set

Set Complete

Not applicable

No applicable

Byte

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kDataConfirmationDevice

This property acknowledges positively or negatively on decoded data.

This property is mostly used by the application when the Capture Data Confirmation Mode has been set to kSktCaptureDataConfirmationModeApp.

This property can be sent at any time by the application to make the device beep, flash or vibrate.

The value is a 32-bit value that can be defined using the following helper function: SocketMobile.Capture.Helper.DATACONFIRMATION(0, rumble, beep, led);

This function accepts 4 parameters.

The first one is reserved and should be set to 0.

The second one is the vibration and it can have the following values:

Value

Description

ICaptureProperty.Values.DataConfirmation.kRumbleNone

Don’t vibrate the device

ICaptureProperty.Values.DataConfirmation.kRumbleGood

Vibrate the device to notify a good action

ICaptureProperty.Values.DataConfirmation.kRumbleBad

Vibrate the device to notify an incorrect action.

The next parameter is to define the beep behavior and it can have one of the following values:

Value

Description

ICaptureProperty.Values.DataConfirmation.kBeepNone

Don’t play any sound

ICaptureProperty.Values.DataConfirmation.kBeepGood

Play the good sound

ICaptureProperty.Values.DataConfirmation.kBeepBad

Play the bad sound

The last parameter is to define the LED behavior and it can have one of the following values:

Value

Description

ICaptureProperty.Values.DataConfirmation.kLedNone

Don’t flash the LED

ICaptureProperty.Values.DataConfirmation.kLedGreen

Flash the LED in green

ICaptureProperty.Values.DataConfirmation.kLedRed

Flash the LED in red

Note

A flag indicating a good scan cannot be mixed with a flag indicating a bad scan otherwise an error ESKT_INVALID_PARAMETER (-18) will be generated. For example DataConfirmation.kRumbleBad cannot be used in conjunction with DataConfirmation.kBeepGood and DataConfirmation.kLedGreen. A “none” flag can be used in either case.

Get

Get Complete

Set

Set Complete

None

None

ULong

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kBatteryLevelDevice

This property retrieves the battery level of a connected device.

The battery level is described in a Ulong.

The battery information contained in this Ulong can be retrieved using a set of helper functions documented in the Capture Helper section. They include:

int Capture.Helper.BATTERY_GETMINLEVEL(long) int Capture.Helper.BATTERY_GETMAXLEVEL(long) int Capture.Helper.BATTERY_GETCURLEVEL(long)

Get

Get Complete

Set

Set Complete

None

ULong

Not applicable

Not applicable

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kLocalDecodeActionDevice

This property configures or retrieves the local decode action of the device.

The local decode action can be one or a combination of the following values:

Value

Description

ICaptureProperty.Values.LocalDecodeAction.kNone

No action required

ICaptureProperty.Values.LocalDecodeAction.kBeep

Beep when good decoded data are scanned

ICaptureProperty.Values.LocalDecodeAction. kFlash

Flash Green LED when good decoded data is scanned

ICaptureProperty.Values.LocalDecodeAction.kRumble

Vibrate when good decoded data is scanned

..note::

The vibration is not available on some older devices. It will be ignored if the device doesn’t support vibration.

Get

Get Complete

Set

Set Complete

None

Byte

Byte

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kBluetoothAddressDevice

This property can be used to retrieve the device Bluetooth address.

The Bluetooth device address is returned in an array of 6 bytes.

..note::

The 7 series v3.1 devices don’t support this property. An ESKT_NOTSUPPORTED error will be returned in the Get Complete event for these devices.

Get

Get Complete

Set

Set Complete

None

Array

Not applicable

Not applicable

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kStatisticCountersDevice

This property retrieves the statistic counters of the device.

The statistic counters can be different from one device type to another.

The first 2 bytes of the array returned in the Get Complete message indicates the number of counters returned in the array.

Each counter is composed by 2 long integers (4 bytes), the first long integer is the counter identifier and the second long integer is the actual counter value.

This array is described as follows:

Name

Size

Description

Count

2 bytes

Number of ID/Counter in the array

Counter ID

4 bytes

Represents the counter ID (see below)

Counter

4 bytes

Represents the actual counter

Counter ID

4 bytes

Represents the counter ID (see below)

Counter

4 bytes

Represents the actual counter

The following IDs are defined in the table below, note that not all items are available in all scanners and some are present but not used (e.g. the Ring ones on the CHS7 and CHS8 scanners):

Value

Description

ICaptureProperty.Values.Counters.kUnknown

Counter is unknown. This might be because a newer version of the device has implemented new counter.

ICaptureProperty.Values.Counters.kConnect

Counter represents the number of times a connection has been made.

ICaptureProperty.Values.Counters.kDisconnect

Counter represents the number of times a disconnection has been made.

ICaptureProperty.Values.Counters.kUnbond

Counter represents the number of times an unbond command has been made.

ICaptureProperty.Values.Counters.kFactoryReset

Counter represents the number of times the device went through a Factory reset.

ICaptureProperty.Values.Counters.kScans

Counter represents the number of times the device scans a barcode. (7Xi/Qi only)

ICaptureProperty.Values.Counters.kScanButtonUp

Counter represents the number of times the scan button has been released.

ICaptureProperty.Values.Counters.kScanButtonDown

Counter represents the number of times the scan button has been pressed.

ICaptureProperty.Values.Counters.kPowerButtonUp

Counter represents the number of times the power button has been released

ICaptureProperty.Values.Counters.kPowerButtonDown

Counter represents the number of time the power button has been released.

ICaptureProperty.Values.Counters.kPowerOnACTimeInMinutes

Counter represents the number of minutes the device has been powered on AC.

ICaptureProperty.Values.Counters.kPowerOnBatTimeInMinutes

Counter represents the number of minutes the device has been powered on battery.

ICaptureProperty.Values.Counters.kRfcommSend

Counter represents the number of times a Bluetooth RFCOMM packet has been sent.

ICaptureProperty.Values.Counters.kRfcommReceive

Counter represents the number of times a Bluetooth RFCOMM packet has been received.

ICaptureProperty.Values.Counters.kRfcommReceiveDiscarded

Counter represents the number of times a Bluetooth RFCOMM packet has been received and discarded.

ICaptureProperty.Values.Counters.kUartSend

Counter represents the number of times the UART sends a packet.

ICaptureProperty.Values.Counters.kUartReceive

Counter represents the number of times the UART receives a packet.

ICaptureProperty.Values.Counters.kButtonLeftPress

Counter represents the number of times the left button has been pressed on the Cordless Ring Scanner (CRS)

ICaptureProperty.Values.Counters.kButtonLeftRelease

Counter represents the number of times the left button has been released on the CRS

ICaptureProperty.Values.Counters.kButtonRightPress

Counter represents the number of times the right button has been pressed on the CRS

ICaptureProperty.Values.Counters.kButtonRightRelease

Counter represents the number of times the right button has been released on the CSR

ICaptureProperty.Values.Counters.kRingUnitDetachEvents

Counter represents the number of times the CRS Ring unit has been detached from the wrist unit

ICaptureProperty.Values.Counters.kRingUnitAttachEvents

Counter represents the number of times the CRS Ring unit has been atttached to the wrist unit

ICaptureProperty.Values.Counters.kDecodedBytes

Counter represents the number of bytes that have been decoded(7Xi/Qi/D750 only)

ICaptureProperty.Values.Counters.kAbnormalShutDowns

Counter represents the number of abnormal shutdowns(7Xi/Qi/D750 only)

ICaptureProperty.Values.Counters.kBatteryChargeCycles

Counter represents the number of times battery has gone through a charge/discharge cycle(7Xi/Qi/D750 only)

ICaptureProperty.Values.Counters.kBatteryChangeCount

Counter represents the number of times the battery has been changed (7Xi/Qi/D750 only)

ICaptureProperty.Values.Counters.kPowerOn

Number of times scanner has been powered on (8Ci only)

ICaptureProperty.Values.Counters.kPowerOff

Number of times scanner has been powered off (8Ci only)

ICaptureProperty.Values.Counters.kStandModeChange

Number of times scanner has changed stand mode (7Xi/7Qi/D750 only)

Get

Get Complete

Set

Set Complete

None

Array

Not applicable

Not applicable

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kRumbleConfigDevice

This property can be used to retrieve or to set the configuration of the vibration feature of the device.

Some older devices don’t support the vibration feature.

In that case an error (ESKT_NOTSUPPORTED) is generated if an application is trying to set or get this property.

A vibration has two configurable parameters; the On duration and the Off duration.

The On duration is the time in milliseconds the vibration is active, and the Off duration is the time in milliseconds the vibration is inactive.

There are four actions that can be configured with a vibration and they are described in the following table:

Value

Description

ICaptureProperty.Values.RumbleActionType.kGoodScan

Vibration action when a good scan occurs

ICaptureProperty.Values.RumbleActionType.kGoodScanLocal

Vibration action when the device locally acknowledges a good scan.

ICaptureProperty.Values.RumbleActionType.kBadScan

Vibration action when a bad scan occurs

ICaptureProperty.Values.RumbleActionType.kBadScanLocal

Vibration action when the device locally acknowledges a bad scan

The vibration configuration can be described as below:

Name

Size

Present

Description

Vibration Action

2 bytes

Get Complete and Set

Configuration of a particular Vibration action.

Number of Vibrations

2 bytes

Get Complete and Set

Define the number of Vibrations present in this configuration. The maximum number of Vibrations is 5.

On Duration

2 bytes

Get Complete and Set

Define the duration when the vibration is active. The On duration range is 50ms (0x32) to 32767ms (0x7FFF).

Off Duration

2 bytes

Get Complete and Set

Define the duration when the vibration is inactive. The Off duration range range is 50ms (0x32) to 32767ms (0x7FFF).

…same 2 last fields for the subsequent definitions until the number of vibrations is reached.

The Set request property uses a word (2 bytes) array to set the configuration of a particular vibration action. The first word of the array is the vibration action, the following word of the array is the number of vibrations, and for each vibration the following word is the time in milliseconds the device vibrates followed by a word for the time in milliseconds the devices does not vibrate.

Here is an example of the values that can be found in the word array of this ICaptureProperty.PropId.kRumbleConfigDevice property.

Word values

Description

ICaptureProperty.Values.RumbleActionType.kGoodScanLocal

Configuration for the Good Local Vibrations

0x0002

2 Vibrations

0x00C8

Vibration 1 On Duration: 200ms

0x0064

Vibration 1 Off Duration: 100ms

0x00C8

Vibration 2 On Duration: 200ms

0x0064

Vibration 2 Off Duration: 100ms

The Get request property uses only one byte value to request the configuration of a particular vibration action, and the Get Complete response contains a word array as defined above.

Get

Get Complete

Set

Set Complete

Byte

Array

Array

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kProfileConfigDevice

This property retrieves or set the current profile configuration of a device. The Profile Configuration can be described as shown in the following table:

Name

Size

Description

Profile

2 Bytes

ICaptureProperty.Values.Profile.kSelectHid for HID (Basic Mode) or ICaptureProperty.Values.Profile.kSelectSpp for SPP (Application Mode) (big-endian format)

Role

2 Bytes

ICaptureProperty.Values.ProfileConfig.kAcceptor for Acceptor or ICaptureProperty.Values.ProfileConfig.kInitiator (big-endian format)

Bluetooth Address

6 Bytes

6 bytes of Bluetooth address.

Class of Device

3 Bytes

3 bytes of Bluetooth Class Of Device (COD)

Extra Padding Byte

1 Byte

This padding byte is to make this array size even. Must be set to 0.

There is a constant value for the size of this array that can be used: ICaptureProperty.Values.ProfileConfig.kSize

The profile will take action only on the next connection.

The host can send a disconnect request with a parameter indicating the device should start its profile configuration.

By specifying a Bluetooth address of a host device in the initiator mode, will cause the device to connect to this host the next time it initiates a connection.

Get

Get Complete

Set

Set Complete

None

Array

Array

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kDisconnectDevice

This property can be used to disconnect the device. There are 2 modes of disconnection.

The start profile mode will disconnect the device and the device will then start the current profile.

The disable radio mode instructs the device to disconnect and set the radio into a low power mode.

In that mode the device cannot be discoverable or connectable.

This property has a byte value that needs to be set to one of these two modes.

Constant definitions exist to clearly identify these modes and they are described as shown below:

Value

Description

ICaptureProperty.Values.Disconnect.kStartProfile

Ask the device to disconnect and start its current selected profile.

ICaptureProperty.Values.Disconnect.kDisableRadio

Ask the device to disconnect and disable its radio.

Get

Get Complete

Set

Set Complete

Not applicable

Not applicable

Byte

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kDataStoreDevice

This property allows setting or getting data from the Data store in the device.

The benefit of this feature is to store information in the device itself that can be used by the host.

The data store has 16 storage locations, each identified by a key value of 0 to 15.

Each location can store anywhere from 0 to 64 bytes.

A data store is identified as shown in the table below:

Name

Size

Present

Description

Key

2 bytes

In Get, Set and Get complete

Contains the data store identifier from 0 to 15 (big-endian)

Length

2 bytes

In Set and Get Complete

Contains the size of the store (big-endian), max 64.

Data

Variable

In Set and Get Complete

Contains data of the store.

As described in the previous table, the Key field is the only field required for a Get request.

The key must be a value between 0 and 15.

The Data field might be empty in the Set request if and only if the Length is set to 0.

In that particular settings the data store corresponding to the key will be deleted.

The Data field can be filled with 0 and the Length field indicates the number of 0’s to write to the data store up to 64 bytes maximum.

Note

This feature is available in the entire 7 series of CHS model scanners however ONLY the 7X and 7XiQi models support all 16 storage locations while the 7C, 7Ci, 7Mi, 7Pi and 8Ci model scanners with a minimum firmware of 3.5 ONLY support one and that is key # 0. If you attempt a set or get outside of key # 0 for these scanners it will return ESKT_NOTSUPPORTED error message.

You can check the firmware version of the device using the kSktCapturePropIdVersionDevice property.

Get

Get Complete

Set

Set Complete

Array

Array

Array

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kNotificationsDevice

This property defines the notifications the device can send to the host.

Name

Description

ICaptureProperty.Values.Notifications.kScanButtonPress

Notify the host when the Scan button is pressed

ICaptureProperty.Values.Notifications.kScanButtonRelease

Notify the host when the Scan button is released. NOTE: This flag is not supported on 7 series version 3.2 or lower.

ICaptureProperty.Values.Notifications.kPowerButtonPress

Notify the host when the Power button is pressed.

ICaptureProperty.Values.Notifications.kPowerButtonRelease

Notify the host when the Power button is released.

ICaptureProperty.Values.Notifications.kPowerState

Notify the host when the Power state has changed. (The power state changes when the device is plugged into an AC power adapter or in a cradle.) NOTE: This flag is not supported on 7 series version 3.2 or lower.

ICaptureProperty.Values.Notifications.kBatteryLevelChange

Notify the host when the battery level has changed. NOTE: This flag is not supported on 7 series version 3.2 or lower.

Get

Get Complete

Set

Set Complete

None

Ulong

Ulong

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kConnectReasonDevice

This property retrieves the information on how the device is connected to the host.

The connect reasons are summarized in the following table:

Name

Value

Description

ICaptureProperty.Values.ConnectReason.kUnknown

0x00

Unknown reason

ICaptureProperty.Values.ConnectReason.kPowerOn

0x01

Device powered on

ICaptureProperty.Values.ConnectReason.kBarcode

0x02

Device scanned a connect barcode

ICaptureProperty.Values.ConnectReason.kUserAction

0x03

User press a button while device was in idle mode

ICaptureProperty.Values.ConnectReason.kHostChange

0x04

A host has changed the Device Role and the new Role has been activated

ICaptureProperty.Values.ConnectReason.kRetry

0x05

The device was disconnected accidentally and has reconnected

Note

This feature is only available in the 7Xi/Qi and D750 series, an ESKT_NOTSUPPORTED error is returned for the other series.

Get

Get Complete

Set

Set Complete

None

Byte

Not applicable

Not applicable

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kPowerStateDevice

This property retrieves the power state of a connected device.

The power state is described in a double word and can be retrieved using a helper function that is defined in the paragraph regarding the Power Event notification.

The power states can be described as follow:

Name | Description

ICaptureProperty.Values.PowerStates.kUnknown | The power state is unknown. Most likely a device
not supporting this feature such as earlier
version of CHS (v3.1)

ICaptureProperty.Values.PowerStates.kOnBattery

The device is currently running on battery.

ICaptureProperty.Values.PowerStates.kOnCradle

The device is currently running from the cradle.

ICaptureProperty.Values.PowerStates.kOnAc

The device is currently plugged to the AC power.

Get

Get Complete

Set

Set Complete

None

Ulong

Not applicable

Not applicable

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kStartUpRoleSPPDevice

This property retrieves or modifies the persistence of a device Serial Port Profile (SPP) role. The Series 7 scanners have their SPP role set to persistent by default.

If a scanner scans a connect barcode to connect to a host, then each time this scanner is powered on, it will try to connect to the last host.

This feature can be turned off using this property. If it is turned off, the scanner will need to scan a connect barcode each time it needs to connect to a host.

The scanner retry feature stays unchanged whatever the Start Up Role is.

This property parameter is a byte value.

There are two possible values for this property and they are defined as shown in this table:

Name

Value

Description

ICaptureProperty.Values.StartUpRoleSpp.kAcceptor

0x00

Not persistent, the scanner goes back to acceptor each time the scanner starts up.

ICaptureProperty.Values.StartUpRoleSpp.kLastRole

0x01

Persistent, the scanner uses the last role each time the scanner starts up

Note

This feature is only available in the 7Xi/Qi and D750 series, an ESKT_NOTSUPPORTED error is returned for the other series.

Get

Get Complete

Set

Set Complete

None

Byte

Byte

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kConnectionBeepConfigDevice

This property configures or retrieves the current configuration on how the scanner beeps when it connects to a host.

The scanner can automatically beep when it forms a SPP connection to the host.

By default the scanner doesn’t beep when it connects to a host in SPP mode, and instead Capture will send a data confirmation to the scanner to make it beep.

If the scanner is used without Capture in SPP mode, the connection beep can be configured using this property so the scanner beeps each time it connects.

This property value is a byte and here is a table that summarizes the 2 possible values used with this property:

Name

Value

Description

ICaptureProperty.Values.ConnectBeepConfig.kNoBeep

0x00

The scanner won’t automatically beep when it connects to the host, Capture if used, will make the scanner beep.

ICaptureProperty.Values.ConnectBeepConfig.kBeep

0x01

The scanner automatically beeps when it forms a SPP connection to a host.

Note

This feature is only available in the 7Xi/Qi and D750 series, an ESKT_NOTSUPPORTED error is returned for the other series.

Get

Get Complete

Set

Set Complete

None

Byte

Byte

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kFlashDevice

This property is used only with a SocketCam device. It turns the flash on or off for improving the barcode scanning operation using the device camera.

This property value is a byte and here is a table that summarizes the 2 possible values used with this property:

Name

Description

ICaptureProperty.Values.FlashDevice.kFlashOn

Turn the flash on when used in the Set operation or the flash is ON when retrieved in the Get Complete response.

ICaptureProperty.Values.FlashDevice.kFlashOff

Turn the flash off when used in the Set operation or the flash is OFF when retrieved in the Get Complete response.

Note

This feature is only available in the SocketCam scanner, an ESKT_NOTSUPPORTED error is returned for the other devices.

Get

Get Complete

Set

Set Complete

None

Byte

Byte

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kOverlayViewDevice

Note

THIS FEATURE IS AVAILABLE ONLY ON ANDROID AND IOS.

This property is used with the SocketCam feature. It gives a reference of the parent View to the Overlay View where the camera output can be displayed.

The Overlay view contains buttons for the flash, for canceling the trigger operation, or for making a rotation of the camera’s view.

This property has to be set before triggering a scan with the kSktCaptureTriggerDevice property.

The parameter of this property is a reference to a hash table object that contains one or more parameters depending on the platform this property is used with (Android or iOS, not supported in Windows).

The following table gives the list of hash key value and their meaning.

Name

Description

Value Type

ICaptureProperty.Values.OverlayViewDevice.kContext

Reference to the application context for Android or to the UIView Controller for iOS

Context reference for Android, and UIViewController for iOS device

ICaptureProperty.Values.OverlayViewDevice.kLayoutId

Reference to Layout ID of the view to display the view finder

Integer, Android only

ICaptureProperty.Values.OverlayViewDevice.kViewFinderId

Reference to the View Finder ID that is the rectangle where to look for a barcode

Integer, Android only and optional

ICaptureProperty.Values.OverlayViewDevice.kFlashButtonId

Reference to the button ID that can be used for controlling the flash

integer, Android only and optional

ICaptureProperty.Values.OverlayViewDevice.kCancelButton

Text to display for the Cancel button

String for Android NSString for iOS If not present “Cancel” text is by default

ICaptureProperty.Values.OverlayViewDevice.kFlashButton

Comma separated text for the Flash controls. This string defines 3 texts: the name of the control, the ON test and the OFF text. Example: “Flash,ON,OFF”

String for Android NSString for iOS. If not present, then no flash button is displayed If the number of comma separated fields is not 2 then an error ESKT_INVALIDPARAMETER is generated

ICaptureProperty.Values.OverlayViewDevice.kDirectionText

Text to display just beneath the viewfinder to give the user direction on how to scan a barcode using the viewfinder

String for Android NSString for iOS. If not present a default direction text in English is displayed. An error ESKT_INVALIDPARAMETER is generated if the string is more than 128 characters

ICaptureProperty.Values.OverlayViewDevice.kBackgroundColor

Change the overlay view background color using a string with this format: “rgb(128,128,128)”

iOS only. Default is light gray. It becomes black if the specified string format is incorrect.

ICaptureProperty.Values.OverlayViewDevice.kTextColor

Change the overlay view text color (for the direction text) using a string with this format: “rgb(128,128,128)”

iOS only. Default to black text

ICaptureProperty.Values.OverlayViewDevice.kCamera

Select the front or back camera by specifying “front” or “back”

iOS only. Default to back camera.

The Hash table is a pointer to a NSDictionary for iOS or to HashMap<String,Object> for Android.

This Hash table should be passed to the property Object field.

UI object is used to display the view taken by the camera during the scanning operation.

The Get parameter returns the reference of the same UI object used to display the view taken by the camera.

Get

Get Complete

Set

Set Complete

None

Object

Object

None

Capture Version

1.0.0 or higher

ICaptureProperty.PropId.kStandConfigDevice

This property configures the stand mode of the scanner. The stand configuration allows the scanner to trigger a barcode read without user intervention.

The various modes dictate the scanner behavior when it’s in the Charge Stand or used as mobile device.

This property has a Ulong parameter that contains the mode of the stand configuration.

The following table summarizes the possible modes.

Name

Value

Description

ICaptureProperty.Values.StandConfig.kMobileMode

0x00

Scanner always in trigger mode, hibernate is enabled - default mode -

ICaptureProperty.Values.StandConfig.kStandMode

0x01

Presentation mode, hibernate disabled, connection retries forever.

ICaptureProperty.Values.StandConfig.kDetectMode

0x02

Presentation mode on stand, hibernate disabled, off stand normal operation

ICaptureProperty.Values.StandConfig.kAutoMode

0x03

Presentation mode on stand, hibernate disabled, off stand stays in presentation until trigger is manually pressed. Returns to presentation mode when back in stand.

Mobile mode This is the default mode. In this mode the scanner works like any hand held barcode scanner. The reading of a barcode is accomplished by pressing the trigger button. The scanner will try to connect to the host upon startup, until a timeout occurs.

Stand mode In Stand mode, the scanner is configured in presentation mode. The presentation mode automatically triggers a barcode read when a contrast change is detected in front of the scanner without any other user intervention. In this mode the scanner will try indefinitely to connect to the host. It doesn’t have any timeout to shutdown or hibernate.

Detect mode The Detect mode requires a Charge Stand. When the scanner is in position in the stand it switches in presentation mode. A barcode can be automatically read just by presenting it in front of the scanner. The power off timer is disabled, and the scanner tries to connect to the host indefinitely.

Auto mode This mode is a mix of the Stand mode and the Mobile mode. It behaves as described in the Stand mode when the scanner is in position in the stand, and it behaves as described in the Mobile mode when the scanner is no longer in position in the stand and the user presses the trigger button. If the trigger button is never pressed while out of the stand, the scanner stays in presentation mode and automatically reads barcodes that are presented in front of it. As soon as the trigger button is pressed while the scanner is not in the stand, it switches to the Mobile mode. It switches back to the presentation mode as soon as it rests on the stand.

Note

This property works only with recent versions of the 7Xi/7Qi and D750 scanners. It returns an ESKT_NOTSUPPORTED error on the scanners that are older or a different model/series.

Get

Get Complete

Set

Set Complete

None

Ulong

Ulong

None

Capture Version

1.0.0 or higher