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.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.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 |