# CaptureSDK Properties Reference

Complete reference table of all CaptureSDK property IDs used for getting and setting device and SDK configuration. Available in C, C#, Dart, Java, Objective-C, and TypeScript. Properties control features like friendly name, battery level, symbology status, stand mode, trigger mode, data confirmation, SocketCam configuration, single partnership, device discovery, and more. Pass these IDs to getProperty and setProperty methods.

## Properties

See below the properties for each language.

## C

## List of properties types
## Defines the property value type. Properties can have value of different type or no value at all

| Type name | Description |
| :---------------- | :----- |
| kNone | for capture properties that don't have any value |
| kNotApplicable | for capture properties that don't have a value for either a get operation or a set operation or neither of them. |
| kByte | the property has a byte value |
| kUlong | the property has a unsigned long value |
| kArray | the property has a byte array value |
| kString | the property has a string value |
| kVersion | the property has a version structure as value (read only) |
| kDataSource | the property has a data source structure as value |
| kEnum | the property has an enum value |
| kObject | the property has an object as value |
| kLastType | the property type should not be equal or higher that kLast otherwise it means the SDK is not in sync with the actual version of Socket Mobile Companion running on the host |

## List of the properties
## Those properties are the ones used by CaptureSDK to get and set different types of values

| Property name | Capture or Device Property | Property Get type | Property Set type | Description |
| :---------------- | :----- |:----- | :----- | :----- |
| kAbort | Capture | kNotApplicable | kNone | Set to notify Capture that the client is shutting down gracefully. Capture will send device removal events followed by a terminate event. Once you receive the terminate event, it is safe to shut down Capture. |
| kVersion | Capture | kNone | kNotApplicable | Gets the Capture service version. |
| kInterfaceVersion | Capture | kNone | kNotApplicable | Gets the version of the firmware interface that Capture service supports. This can be useful for determining if the Capture service supports a particular hardware feature. |
| kConfiguration | Capture | kString | kString | property to set or get the Capture configuration |
| kDataConfirmationMode | Capture | kNone | kByte | Gets or sets the data confirmation mode. The data confirmation mode determines who acknowledges whether the data received was good or bad. |
| kDataConfirmationAction | Capture | kNone | kUlong | Gets or sets the data confirmation action. Data confirmation action determines how good or bad data is acknowledged. |
| kMonitorMode | Capture | kByte | kArray | Gets or sets the log level of various Capture service components (Only works on debug builds of the service). |
| kSocketCamStatus | Capture | kNone | kByte | property to get or set the SocketCam status |
| kVersionDevice | Device | kNone | kNotApplicable | Gets the firmware version of the device |
| kDeviceType | Device | kNone | kNotApplicable | Gets the model of the device |
| kDeviceSpecific | Device | kArray | kArray | Sends an arbitrary get or set command to the device |
| kDataSourceDevice | Device | kDataSource | kDataSource | property to get or set the data source status / information |
| kTriggerDevice | Device | kNotApplicable | kByte | Sets the trigger of the device - can start or stop a read and enable or disable the physical trigger button on the device. |
| kApplyConfigDevice | Device | kNotApplicable | kNone | property to apply a config to a Capture Device (not yet enabled) |
| kPreambleDevice | Device | kNone | kString | Gets or sets a preamble for data decoded by the device. When set, the preamble is added in front of the decoded data. |
| kPostambleDevice | Device | kNone | kString | Gets or sets a postamble for data decoded by the device. When set, the postamble is added to the end of the decoded data. |
| kCapabilitiesDevice | Device | kByte | kNotApplicable | property to get the Capture Device capabilities |
| kChangeIdDevice | Device | kNone | kNotApplicable | Gets the change id of the device. The change id is a checksum of all the engine settings - e.g. symbology settings, preamble, postamble, etc - and can be used to determine if the device configuration has been altered by another application or using a command barcode. |
| kDataFormatDevice | Device | kNone | kByte | property to get or set the Decoded Data Format of a Capture Device |
| kFriendlyNameDevice | Device | kNone | kString | Gets or sets the friendly name of the device. The friendly name is the name that appears in Bluetooth settings. |
| kSecurityModeDevice | Device | kNone | kByte | property to get or set the Capture Device Security Mode |
| kPinCodeDevice | Device | kNotApplicable | kString | property to get or set the Capture Device PIN code |
| kDeletePairingBondingDevice | Device | kNotApplicable | kByte | Set deletes pairing and bonding information off the device. Useful when preparing to pair the Capture device to a different host. |
| kRestoreFactoryDefaultsDevice | Device | kNotApplicable | kNone | Set resets all the settings on the device to their default values. |
| kSetPowerOffDevice | Device | kNotApplicable | kNone | Set turns the device off |
| kButtonsStatusDevice | Device | kNone | kNotApplicable | Gets the current state of each button on the device. Consider using kNotificationsDevice to subscribe to button events instead. |
| kSoundConfigDevice | Device | kByte | kArray | Gets or sets the sound configuration of the device. There are separate sound configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan sound configuration. |
| kTimersDevice | Device | kNone | kArray | Gets or sets the trigger lock and auto-off timers. The trigger lock determines how long the trigger remains locked after decoding data without receiving confirmation. There are two auto-off timers, one for when the device is connected to a host and one for when it is not. |
| kLocalAcknowledgmentDevice | Device | kNone | kByte | Gets or sets local device acknowledgement. When enabled, the device acknowledges decoded data as soon as it is decoded. When disabled, the device waits for the host to acknowledge decoded data and the trigger will be locked until acknowledgement is received or the trigger lock timeout has elapsed. |
| kDataConfirmationDevice | Device | kNotApplicable | kUlong | Sends an acknowledgement to the device. Acknowledgement can either be positive or negative - a.k.a. good scan or bad scan. |
| kBatteryLevelDevice | Device | kNone | kNotApplicable | Gets the current battery level of the device. Consider using  kNotificationsDevice to subscribe to battery level change events instead. |
| kLocalDecodeActionDevice | Device | kNone | kByte | Gets or sets the local decode action of the device. Determines how decoded data is acknowledged - i.e. with a beep, rumble, flash or some combination of all three. |
| kBluetoothAddressDevice | Device | kNone | kNotApplicable | Gets the Bluetooth address of the device |
| kStatisticCountersDevice | Device | kNone | kNotApplicable | Gets the statistics counters of the device. Counters record the absolute number of times a particular event has occurred. |
| kRumbleConfigDevice | Device | kByte | kArray | Gets or sets the rumble configuration of the device. There are separate rumble configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan rumble configuration. |
| kProfileConfigDevice | Device | kNone | kArray | property to get or set the Capture Device Profile Configuration |
| kDisconnectDevice | Device | kNotApplicable | kByte | Instructs the device to drop its connection. Note: After sending this command, the host will be unable to send any subsequent commands to this device. |
| kDataStoreDevice | Device | kArray | kArray | Gets or sets arbitrary bytes to store on the device. The device has 16 storage locations which can hold up to 64 bytes each. |
| kNotificationsDevice | Device | kNone | kUlong | Gets or sets subscriptions to various events from the device. Events that can be subscribed to include, trigger press/release, power button press/release, power state and battery level change. |
| kConnectReasonDevice | Device | kNone | kNotApplicable | property to get the Capture Device Connect reason |
| kPowerStateDevice | Device | kNone | kNotApplicable | Gets the current power state of the device. Consider using kNotificationsDevice to subscribe to power state events instead. |
| kStartUpRoleSPPDevice | Device | kNone | kByte | Gets or sets the reconnect behavior of the device when it is powered on in application mode. By default, the device will attempt to reconnect to the last host, but this feature can be turned off using this property. |
| kConnectionBeepConfigDevice | Device | kNone | kByte | property to get or set the Capture Device Connection Beep Configuration. |
| kFlashDevice | Device | kNone | kByte | Gets or sets the status of the flash on the SocketCam device. |
| kOverlayViewDevice | Device | kNone | kObject | property to get or set the Capture Device Overlay View (SocketCam only) |
| kStandConfigDevice | Device | kNone | kUlong | property to get or set the Capture Device Stand Configuration |
| kStartDiscovery | Device | kNotApplicable | kUlong | property to start a BLE discovery from a Device Manager |
| kFavorite | Device | kNone | kString | property to set or get the BLE favorites for a Device Manager |
| kUniqueDeviceIdentifier | Device | kString | kNotApplicable | property to get the BLE Unique Device Identifier that can be used to set favorite with |
| kPcScTagTransmit | Device | kArray | kArray | property to transmit through PC/SC an array of bytes often called APDU |
| kPcScCouplerControl | Device | kArray | kArray | property to control the PC/SC coupler device by passing an array of bytes often called APDU |
| kThemeSelectionDevice | Device | kNone | kArray | property to define the theme that is used for the different events: Ready, Read, Read Success, Read Failure UI |
| kThemeSelectionMaskDevice | Device | kNone | kArray | property to define the theme selection mask. It applies the theme selection on the given device(s) set with the mask |
| kLassoStatusDevice | Device | kNone | kByte | property to define if the Lasso feature is enabled or not |
| kLassoIdDevice | Device | kNotApplicable | kArray | property to define the Lasso Id for a device |
| kLassoLifeSpanDevice | Device | kNone | kUlong | property to define the Lasso life span for a device |
| kSinglePartnership | Capture | kNone | kArray | property to get or set a device's Single Partnership connection |
| kSinglePartnershipStamp | Capture | kNone | kNotApplicable | property to get a stamp from the host for Single Partnership connection |
| kResetSinglePartnershipDevice | Device | kNone | kNone | property to reset a device's Single Partnership connection |
| kConnectDiscoveredDevice | Device | kNotApplicable | kString | property to connect to a discovered BLE device with a Device Manager |
| kDisconnectDiscoveredDevice | Device | kNotApplicable | kString | property to disconnect from a discovered BLE device with a Device Manager |
| kAddDevice | Capture | kNotApplicable | kByte | property to add a Bluetooth device (Classic or Low Energy) |
| kRemoveDevice | Capture | kNotApplicable | kString | property to remove a Bluetooth device (Classic or Low Energy) |
| kResetDevice | Device | kNotApplicable | kNone | property to power cycle a Bluetooth LE device when on a power source (e.g. charging). Otherwise it will just power off the device |

## List of the properties values
## Those values are the ones used by CaptureSDK when using properties

**DataConfirmationMode** -  Data Confirmation Mode indicates what is  expected to the send the Data ACK back to the scanner

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|ModeOff | 0 |  use the device configuration (Local Confirmation or App)<br /> |
|ModeDevice | 1 |  the device confirms the decoded data locally<br /> |
|ModeCapture | 2 |  Capture confirms the decoded data as it receives them and there is one app<br /> |
|ModeApp | 3 |  the Application confirms the decoded data as it receives them<br /> |

**DeviceDataAcknowledgment** -  Device Data Acknowledgment mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Off | 0 |  the device won't locally acknowledge decoded data<br /> |
|On | 1 |  the device will locally acknowledge decoded data<br /> |

**SecurityMode** -  Security Mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  No security<br /> |
|Authentication | 1 |  communication protected by authentication<br /> |
|AuthenticationEncryption | 2 |  communication protected by authentication and encrytion<br /> |

**Trigger** -  trigger parameter

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Start | 1 |  start a read<br /> |
|Stop | 2 |  stop a read<br /> |
|Enable | 3 |  enable the trigger<br /> |
|Disable | 4 |  disable the trigger<br /> |
|ContinuousScan | 5 |  start a read in continuous<br /> |
|ContinuousScanUntilRead | 6 |  start a read in continuous until a code is read<br /> |

**DeletePairing** -  Delete the pairing of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Current | 0 |  delete the current pairing<br /> |
|All | 1 |  delete all the pairing of the device<br /> |

**SoundActionType** -  sound configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|GoodRead | 0 |  sound configuration for a good read action<br /> |
|GoodReadLocal | 1 |  sound configuration for a good read local action<br /> |
|BadRead | 2 |  sound configuration for a bad read action<br /> |
|BadReadLocal | 3 |  sound configuration for a bad read local action<br /> |

**SoundFrequency** -  Sound frequency configuration

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  no frequency<br /> |
|Low | 1 |  Low pitch frequency<br /> |
|Medium | 2 |  Medium pitch frequency<br /> |
|High | 3 |  High pitch frequency<br /> |

**RumbleActionType** -  Rumble configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|GoodRead | 0 |  Rumble configuration for a good read action<br /> |
|GoodReadLocal | 1 |  Rumble configuration for a good read local action<br /> |
|BadRead | 2 |  Rumble configuration for a bad read action<br /> |
|BadReadLocal | 3 |  Rumble configuration for a bad read local action<br /> |

**LocalDecodeAction** -  Define the action for a local decode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  no action<br /> |
|Beep | 1 |  Beep when a local decode occurs<br /> |
|Flash | 2 |  Flash the LED when a local decode occurs<br /> |
|Rumble | 4 |  Rumble when a local decode occurs<br /> |

**DataConfirmationLed** -  Define the LED for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  no LED<br /> |
|Green | 1 |  make the LED flash in green<br /> |
|Red | 2 |  make the LED flash in red<br /> |

**DataConfirmationBeep** -  Define the sound for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  no sound<br /> |
|Good | 1 |  short beep for success<br /> |
|Bad | 2 |  long beep for failure<br /> |

**DataConfirmationRumble** -  Define the rumble for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  no sound<br /> |
|Good | 1 |  short rumble for success<br /> |
|Bad | 2 |  long rumble for failure<br /> |

**Flash** -  Define the flash setting

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Off | 0 |  turn off the flash<br /> |
|On | 1 |  turn on the flash<br /> |

**SocketCam** -  Define the SocketCam experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Enable | 0 |  Enable SocketCam<br /> |
|Disable | 1 |  Disable SocketCam<br /> |
|NotSupported | 2 |  SocketCam is not supported, and cannot be enabled<br /> |

**PowerState** -  Define the possible power states

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Unknown | 0 |  The power state is unknown<br /> |
|OnBattery | 1 |  The power state is on battery<br /> |
|OnCradle | 2 |  The power state is on cradle<br /> |
|OnAc | 4 |  The power state in on AC<br /> |

**MonitorDbg** -  Define the monitor feature (DEBUG build only)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Level | 1 |  define the level for the debug traces<br /> |
|Channel | 2 |  define the output channel for the debug traces<br /> |
|FileLineLevel | 3 |  define the number of lines in the file<br /> |

**Counter** -  identifiers for the statistic counters

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Skip | -1 |  use for convenience only to skip a counter<br /> |
|Unknown | 0 |  unknow counter<br /> |
|Connect | 1 |  number of connections<br /> |
|Disconnect | 2 |  number of disconnections<br /> |
|Unbound | 3 |  number of unbound operation<br /> |
|FactoryReset | 4 |  number of reset to factory default<br /> |
|Reads | 5 |  number of reads (scans)<br /> |
|TriggerButtonUp | 6 |  number of trigger button released<br /> |
|TriggerButtonDown | 7 |  number of trigger button pressed<br /> |
|PowerButtonUp | 8 |  number of power button released<br /> |
|PowerButtonDown | 9 |  number of power button pressed<br /> |
|OnAcTimeInMinutes | 10 |  number of minutes in AC power<br /> |
|OnBatTimeInMinutes | 11 |  number of minutes on battery<br /> |
|RfcommSend | 12 |  number of RFCOMM sent (SSI only)<br /> |
|RfcommReceive | 13 |  number of RFCOMM received (SSI only)<br /> |
|RfcommReceiveDiscarded | 14 |  number of RFCOMM discarded (SSI only)<br /> |
|UartSend | 15 |  number of UART sent (SSI only)<br /> |
|UartReceive | 16 |  number of UART received (SSI only)<br /> |
|UartReceiveDiscarded | 17 |  number of UART discarded (SSI only)<br /> |
|ButtonLeftPress | 18 |  number of left button press (CRS only)<br /> |
|ButtonLeftRelease | 19 |  number of left button release (CRS only)<br /> |
|ButtonRightPress | 20 |  number of right button press (CRS only)<br /> |
|ButtonRightRelease | 21 |  number of right button release (CRS only)<br /> |
|RingUnitDetach | 22 |  number of ring unit detach (CRS only)<br /> |
|RingUnitAttach | 23 |  number of ring unit attach (CRS only)<br /> |
|DecodedBytes | 24 |  number of decoded bytes (7x only ISCI)<br /> |
|AbnormalShutdowns | 25 |  number of abnormal shutdowns (7x only ISCI)<br /> |
|BatteryChargeCycles | 26 |  number of battery charge cycles (7x only ISCI)<br /> |
|BatteryChargeCount | 27 |  number of battery charge count (7x only ISCI)<br /> |
|PowerOn | 28 |  number of power on (only 8Ci)<br /> |
|PowerOff | 29 |  number of power off (only 8Ci)<br /> |
|StandModeChange | 30 |  number of stand mode change (only 7X/Q 7630 and higher)<br /> |

**Disconnect** -  Disconnect parameters to instruct the device what to do after disconnection

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|StartProfile | 0 |  disconnect and then start the current profile<br /> |
|DisableRadio | 1 |  Disconnect and disable radio (low power)<br /> |
|MakeAvailable | 2 |  Disconnect a device and make it available for a new connection (for Bluetooth Low Energy device)<br /> |

**ProfileSelect** -  Select a profile for the device (None, SPP, HID, Reader, Coupler)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  The device is in acceptor mode, not trying to connect to any host<br /> |
|Spp | 1 |  The device is in App mode<br /> |
|Hid | 2 |  The device is in Basic mode, sometimes referred as Keyboard emulation<br /> |
|Reader | 3 |  The device is in Reader mode, for NFC devices<br /> |
|Coupler | 4 |  The device is in Coupler mode, for NFC devices<br /> |

**ProfileConfig** -  Configure a profile for the device (None, Acceptor, Initiator)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  The device is in either acceptor or initiator mode, meaning not even discoverable<br /> |
|Acceptor | 1 |  The device is discoverable and will accept any connection<br /> |
|Initiator | 2 |  The device initiates a connection to the Bluetooth address specified in the Profile Configuration<br /> |

**Notifications** -  Configuration masks for selecting the notifications the device should send to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|TriggerButtonPress | 1 |  The device sends a notification when the trigger button is pressed<br /> |
|TriggerButtonRelease | 2 |  The device sends a notification when the trigger button is released<br /> |
|PowerButtonPress | 4 |  The device sends a notification when the power button is pressed<br /> |
|PowerButtonRelease | 8 |  The device sends a notification when the power button is released<br /> |
|PowerState | 16 |  The device sends a notification when the power state changes (battery to AC or vice-versa) (not supported on all device)<br /> |
|BatteryLevelChange | 32 |  The device sends a notification when the battery level changed (not supported on all device)<br /> |

**Timer** -  Identifies the timers used in the device, (trigger lock, disconnected, connected)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|AutoLock | 1 |  The trigger button stays ineffective for the specified amount of time <br /> or until the device receives a data confirmation command.<br /> |
|PowerOffDisconnected | 2 |  This timer specifies the amount of time the device stays on while it is not connected to any host.<br /> |
|PowerOffConnected | 4 |  This timer specifies the amount of time the device stays on while it is connected to a host.<br /> |

**DataFormat** -  Identifies the data format the device should send the data to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Raw | 0 |  The device sends the data without any protocol overhead<br /> |
|Packet | 1 |  The device sends the data embedded in a protocol packet (default)<br /> |
|IdOnly | 2 |  The device sends only the RFID tag ID, (valid only for D600 NFC devices)<br /> |
|TagTypeAndId | 10 |  The device sends the tag type and RFID tag ID, (valid only for D600 NFC devices)<br /> |
|DataOnly | 4 |  The device sends only the tag data, (valid only for D600 NFC devices)<br /> |
|TagTypeAndData | 12 |  The device sends the tag type and the tag data, (valid only for D600 NFC devices)<br /> |

**TriggerMode** -  defines the operational mode of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|LocalOnly | 1 |  The device triggers a read only by pressing the trigger button<br /> |
|RemoteAndLocal | 2 |  The device triggers a read by pressing the trigger button or by receiving the trigger command<br /> |
|AutoLock | 3 |  the device waits for the host to unlock the trigger<br /> |
|NormalLock | 4 |  the device locks and unlocks the trigger locally (default)<br /> |
|Presentation | 5 |  The device triggers a read automatically without user intervention<br /> |

**ConnectReason** -  defines the reason as of how the device connects to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Unknown | 0 |  The device connects to the host from unknown reason<br /> |
|PowerOn | 1 |  The device connects to the host just after power on<br /> |
|Barcode | 2 |  The device connects to the host by reading the host address from a barcode<br /> |
|UserAction | 3 |  The device connects to the host by user action (usually a press on the trigger button)<br /> |
|HostChange | 4 |  The device connects to the host from a change of the host address in the profile configuration<br /> |
|Retry | 5 |  The device connects to the host after a retry (device coming back to the radio range)<br /> |

**StartUpRoleSpp** -  The start up role SPP defines the start up role when using the SPP profile.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Acceptor | 0 |  The device returns to acceptor mode, not initiating a connection to a host.<br /> |
|LastRole | 1 |  The device uses the last role configuration upon startup.<br /> |

**ConnectBeepConfig** -  The connect beep configuration allows to turn off or on the connection beep when the scanner connects

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|NoBeep | 0 |  The device won't beep upon connection to a host.<br /> |
|Beep | 1 |  The device beeps when connecting to the host.<br /> |

**StandConfig** -  The stand configuration defines the operational mode of the device when used with a stand.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Disabled | 0 |  Bluetooth Classic:<br /> Disabled the stand config property and sets the scanner as it is intended<br /> Bluetooth LE:<br /> Scanner does not switch to presentation mode<br /> |
|MobileMode | 1 |  Bluetooth Classic:<br /> Mobile mode Works like today existing firmware Engine is always in trigger mode Engine hibernate enabled<br /> Bluetooth LE:<br /> Identical to disabled mode<br /> |
|StandMode | 2 |  Bluetooth Classic:<br /> Stand mode Engine always in presentation mode Engine hibernate<br /> disabled Scanner turns on immediately Power timers disabled Connection retries forever<br /> Bluetooth LE:<br /> The device switches to presentation mode, always, in or out of the stand,<br /> |
|DetectMode | 3 |  Bluetooth Classic:<br /> Detect mode On stand engine in presentation mode On stand engine<br /> hibernate disabled On stand charging led state not show On stand<br /> scanner turns on immediately On stand power timers disabled On stand<br /> connection retries forever Off stand engine in level mode Off stand<br /> battery led state reported Off stand engine hibernate enabled Off stand<br /> power off timers running Off stand connection retries halt after max count<br /> Bluetooth LE:<br /> The device switches in or out of presentation mode when it's in or out respectively from the stand<br /> |
|AutoMode | 4 |  Bluetooth Classic:<br /> Auto mode On stand engine in presentation mode On stand engine hibernate<br /> disabled On stand charging led state not show On stand scanner turns on<br /> immediately On stand power timers disabled On stand connection retries<br /> forever Off stand does nothing, engine remains in presentation mode Off<br /> stand trigger press causes engine to enter level mode Engine in level<br /> mode battery led state reported Engine in level mode hibernate enabled<br /> Engine in level mode power off timers running Engine in level mode<br /> connection retries halt after max count<br /> Bluetooth LE:<br /> Same as DetectMode, but if you use the trigger button while it's out of the stand it switches to a normal trigger operation until it returns to the stand in which it switches to presentation mode.<br /> If it is removed from the stand it stays in presentation mode until the trigger is pressed at least once.<br /> |

**ButtonsState** -  The mask to apply for each button that is pressed

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Left | 1 |  The left button is pressed.<br /> |
|Right | 2 |  The right button is pressed.<br /> |
|Middle | 4 |  The middle button is pressed.<br /> |
|Power | 8 |  The power button is pressed.<br /> |
|RingDetach | 16 |  The Ring is detached from the wrist unit.<br /> |

**ThemeSelection** -  The mask to apply for each theme

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  No theme.<br /> |
|Health | 1 |  The Health theme.<br /> |
|Access | 2 |  The Access theme.<br /> |
|Value | 3 |  The Value theme.<br /> |
|Membership | 4 |  The Membership theme.<br /> |

**ThemeSelectionMask** -  Mask for the Theme selection property. It applies the theme selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Default | 1 |  Mask applied on the Default device<br /> |
|Nfc | 2 |  Mask applied on the Nfc device<br /> |
|DefaultNfc | 3 |  Mask applied on the Default and Nfc devices<br /> |
|Barcode | 4 |  Mask applied on the Barcode device<br /> |
|DefaultBarcode | 5 |  Mask applied on the Default and Barcode devices<br /> |
|NfcBarcode | 6 |  Mask applied on the Nfc and Barcode devices<br /> |
|All | 7 |  Mask applied on the Default, Nfc and Barcode devices<br /> |

**LassoDeviceStatus** -  Define the Lasso experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Disable | 0 |  Disable Lasso<br /> |
|Enable | 1 |  Enable Lasso<br /> |

**SinglePartnership** -  Define the Single Partnership experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Disable | 0 |  Disable Single Partnership<br /> |
|WebApi | 1 |  Get a Single Partnership through our Web API<br /> |
|WebUI | 2 |  Show a Single Partnership QRcode through our Web UI<br /> |
|Uuid | 3 |  Set your own Service UUID for a Single Partnership<br /> |
|WebUIPrompt | 4 |  Show a Single Partnership Web UI where you can input information about the device<br /> |
|DeviceId | 5 |  Set your own Device Id that will return a Single Partnership Web page with a QRcode to scan<br /> |

**BluetoothDiscoveryMode** -  The Bluetooth technology used to make a discovery of devices in the vicinity

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|BluetoothLowEnergy | 1 |  Discovery for Bluetooth LE devices such as S550, S370, S320, S721.<br /> |
|BluetoothClassic | 2 |  Discovery for Bluetooth Classic devices.<br /> |

**DecodeLocalActionSelectionMask** -  Mask for the Decode Local Action selection property. It applies the decode local action selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Good | 1 |  Mask applied on the Good local decode action result<br /> |
|Bad | 2 |  Mask applied on the Bad local decode action result<br /> |

## C#

## List of properties types
## Defines the property value type. Properties can have value of different type or no value at all

| Type name | Description |
| :---------------- | :----- |
| kNone | for capture properties that don't have any value |
| kNotApplicable | for capture properties that don't have a value for either a get operation or a set operation or neither of them. |
| kByte | the property has a byte value |
| kUlong | the property has a unsigned long value |
| kArray | the property has a byte array value |
| kString | the property has a string value |
| kVersion | the property has a version structure as value (read only) |
| kDataSource | the property has a data source structure as value |
| kEnum | the property has an enum value |
| kObject | the property has an object as value |
| kLastType | the property type should not be equal or higher that kLast otherwise it means the SDK is not in sync with the actual version of Socket Mobile Companion running on the host |

## List of the properties
## Those properties are the ones used by CaptureSDK to get and set different types of values

| Property name | Capture or Device Property | Property Get type | Property Set type | Description |
| :---------------- | :----- |:----- | :----- | :----- |
| kAbort | Capture | kNotApplicable | kNone | Set to notify Capture that the client is shutting down gracefully. Capture will send device removal events followed by a terminate event. Once you receive the terminate event, it is safe to shut down Capture. |
| kVersion | Capture | kNone | kNotApplicable | Gets the Capture service version. |
| kInterfaceVersion | Capture | kNone | kNotApplicable | Gets the version of the firmware interface that Capture service supports. This can be useful for determining if the Capture service supports a particular hardware feature. |
| kConfiguration | Capture | kString | kString | property to set or get the Capture configuration |
| kDataConfirmationMode | Capture | kNone | kByte | Gets or sets the data confirmation mode. The data confirmation mode determines who acknowledges whether the data received was good or bad. |
| kDataConfirmationAction | Capture | kNone | kUlong | Gets or sets the data confirmation action. Data confirmation action determines how good or bad data is acknowledged. |
| kMonitorMode | Capture | kByte | kArray | Gets or sets the log level of various Capture service components (Only works on debug builds of the service). |
| kSocketCamStatus | Capture | kNone | kByte | property to get or set the SocketCam status |
| kVersionDevice | Device | kNone | kNotApplicable | Gets the firmware version of the device |
| kDeviceType | Device | kNone | kNotApplicable | Gets the model of the device |
| kDeviceSpecific | Device | kArray | kArray | Sends an arbitrary get or set command to the device |
| kDataSourceDevice | Device | kDataSource | kDataSource | property to get or set the data source status / information |
| kTriggerDevice | Device | kNotApplicable | kByte | Sets the trigger of the device - can start or stop a read and enable or disable the physical trigger button on the device. |
| kApplyConfigDevice | Device | kNotApplicable | kNone | property to apply a config to a Capture Device (not yet enabled) |
| kPreambleDevice | Device | kNone | kString | Gets or sets a preamble for data decoded by the device. When set, the preamble is added in front of the decoded data. |
| kPostambleDevice | Device | kNone | kString | Gets or sets a postamble for data decoded by the device. When set, the postamble is added to the end of the decoded data. |
| kCapabilitiesDevice | Device | kByte | kNotApplicable | property to get the Capture Device capabilities |
| kChangeIdDevice | Device | kNone | kNotApplicable | Gets the change id of the device. The change id is a checksum of all the engine settings - e.g. symbology settings, preamble, postamble, etc - and can be used to determine if the device configuration has been altered by another application or using a command barcode. |
| kDataFormatDevice | Device | kNone | kByte | property to get or set the Decoded Data Format of a Capture Device |
| kFriendlyNameDevice | Device | kNone | kString | Gets or sets the friendly name of the device. The friendly name is the name that appears in Bluetooth settings. |
| kSecurityModeDevice | Device | kNone | kByte | property to get or set the Capture Device Security Mode |
| kPinCodeDevice | Device | kNotApplicable | kString | property to get or set the Capture Device PIN code |
| kDeletePairingBondingDevice | Device | kNotApplicable | kByte | Set deletes pairing and bonding information off the device. Useful when preparing to pair the Capture device to a different host. |
| kRestoreFactoryDefaultsDevice | Device | kNotApplicable | kNone | Set resets all the settings on the device to their default values. |
| kSetPowerOffDevice | Device | kNotApplicable | kNone | Set turns the device off |
| kButtonsStatusDevice | Device | kNone | kNotApplicable | Gets the current state of each button on the device. Consider using kNotificationsDevice to subscribe to button events instead. |
| kSoundConfigDevice | Device | kByte | kArray | Gets or sets the sound configuration of the device. There are separate sound configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan sound configuration. |
| kTimersDevice | Device | kNone | kArray | Gets or sets the trigger lock and auto-off timers. The trigger lock determines how long the trigger remains locked after decoding data without receiving confirmation. There are two auto-off timers, one for when the device is connected to a host and one for when it is not. |
| kLocalAcknowledgmentDevice | Device | kNone | kByte | Gets or sets local device acknowledgement. When enabled, the device acknowledges decoded data as soon as it is decoded. When disabled, the device waits for the host to acknowledge decoded data and the trigger will be locked until acknowledgement is received or the trigger lock timeout has elapsed. |
| kDataConfirmationDevice | Device | kNotApplicable | kUlong | Sends an acknowledgement to the device. Acknowledgement can either be positive or negative - a.k.a. good scan or bad scan. |
| kBatteryLevelDevice | Device | kNone | kNotApplicable | Gets the current battery level of the device. Consider using  kNotificationsDevice to subscribe to battery level change events instead. |
| kLocalDecodeActionDevice | Device | kNone | kByte | Gets or sets the local decode action of the device. Determines how decoded data is acknowledged - i.e. with a beep, rumble, flash or some combination of all three. |
| kBluetoothAddressDevice | Device | kNone | kNotApplicable | Gets the Bluetooth address of the device |
| kStatisticCountersDevice | Device | kNone | kNotApplicable | Gets the statistics counters of the device. Counters record the absolute number of times a particular event has occurred. |
| kRumbleConfigDevice | Device | kByte | kArray | Gets or sets the rumble configuration of the device. There are separate rumble configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan rumble configuration. |
| kProfileConfigDevice | Device | kNone | kArray | property to get or set the Capture Device Profile Configuration |
| kDisconnectDevice | Device | kNotApplicable | kByte | Instructs the device to drop its connection. Note: After sending this command, the host will be unable to send any subsequent commands to this device. |
| kDataStoreDevice | Device | kArray | kArray | Gets or sets arbitrary bytes to store on the device. The device has 16 storage locations which can hold up to 64 bytes each. |
| kNotificationsDevice | Device | kNone | kUlong | Gets or sets subscriptions to various events from the device. Events that can be subscribed to include, trigger press/release, power button press/release, power state and battery level change. |
| kConnectReasonDevice | Device | kNone | kNotApplicable | property to get the Capture Device Connect reason |
| kPowerStateDevice | Device | kNone | kNotApplicable | Gets the current power state of the device. Consider using kNotificationsDevice to subscribe to power state events instead. |
| kStartUpRoleSPPDevice | Device | kNone | kByte | Gets or sets the reconnect behavior of the device when it is powered on in application mode. By default, the device will attempt to reconnect to the last host, but this feature can be turned off using this property. |
| kConnectionBeepConfigDevice | Device | kNone | kByte | property to get or set the Capture Device Connection Beep Configuration. |
| kFlashDevice | Device | kNone | kByte | Gets or sets the status of the flash on the SocketCam device. |
| kOverlayViewDevice | Device | kNone | kObject | property to get or set the Capture Device Overlay View (SocketCam only) |
| kStandConfigDevice | Device | kNone | kUlong | property to get or set the Capture Device Stand Configuration |
| kStartDiscovery | Device | kNotApplicable | kUlong | property to start a BLE discovery from a Device Manager |
| kFavorite | Device | kNone | kString | property to set or get the BLE favorites for a Device Manager |
| kUniqueDeviceIdentifier | Device | kString | kNotApplicable | property to get the BLE Unique Device Identifier that can be used to set favorite with |
| kPcScTagTransmit | Device | kArray | kArray | property to transmit through PC/SC an array of bytes often called APDU |
| kPcScCouplerControl | Device | kArray | kArray | property to control the PC/SC coupler device by passing an array of bytes often called APDU |
| kThemeSelectionDevice | Device | kNone | kArray | property to define the theme that is used for the different events: Ready, Read, Read Success, Read Failure UI |
| kThemeSelectionMaskDevice | Device | kNone | kArray | property to define the theme selection mask. It applies the theme selection on the given device(s) set with the mask |
| kLassoStatusDevice | Device | kNone | kByte | property to define if the Lasso feature is enabled or not |
| kLassoIdDevice | Device | kNotApplicable | kArray | property to define the Lasso Id for a device |
| kLassoLifeSpanDevice | Device | kNone | kUlong | property to define the Lasso life span for a device |
| kSinglePartnership | Capture | kNone | kArray | property to get or set a device's Single Partnership connection |
| kSinglePartnershipStamp | Capture | kNone | kNotApplicable | property to get a stamp from the host for Single Partnership connection |
| kResetSinglePartnershipDevice | Device | kNone | kNone | property to reset a device's Single Partnership connection |
| kConnectDiscoveredDevice | Device | kNotApplicable | kString | property to connect to a discovered BLE device with a Device Manager |
| kDisconnectDiscoveredDevice | Device | kNotApplicable | kString | property to disconnect from a discovered BLE device with a Device Manager |
| kAddDevice | Capture | kNotApplicable | kByte | property to add a Bluetooth device (Classic or Low Energy) |
| kRemoveDevice | Capture | kNotApplicable | kString | property to remove a Bluetooth device (Classic or Low Energy) |
| kResetDevice | Device | kNotApplicable | kNone | property to power cycle a Bluetooth LE device when on a power source (e.g. charging). Otherwise it will just power off the device |

## List of the properties values
## Those values are the ones used by CaptureSDK when using properties

**DataConfirmationMode** -  Data Confirmation Mode indicates what is  expected to the send the Data ACK back to the scanner

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kModeOff | 0 |  use the device configuration (Local Confirmation or App)<br /> |
| kModeDevice | 1 |  the device confirms the decoded data locally<br /> |
| kModeCapture | 2 |  Capture confirms the decoded data as it receives them and there is one app<br /> |
| kModeApp | 3 |  the Application confirms the decoded data as it receives them<br /> |

**DeviceDataAcknowledgment** -  Device Data Acknowledgment mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kOff | 0 |  the device won't locally acknowledge decoded data<br /> |
| kOn | 1 |  the device will locally acknowledge decoded data<br /> |

**SecurityMode** -  Security Mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kNone | 0 |  No security<br /> |
| kAuthentication | 1 |  communication protected by authentication<br /> |
| kAuthenticationEncryption | 2 |  communication protected by authentication and encrytion<br /> |

**Trigger** -  trigger parameter

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kStart | 1 |  start a read<br /> |
| kStop | 2 |  stop a read<br /> |
| kEnable | 3 |  enable the trigger<br /> |
| kDisable | 4 |  disable the trigger<br /> |
| kContinuousScan | 5 |  start a read in continuous<br /> |
| kContinuousScanUntilRead | 6 |  start a read in continuous until a code is read<br /> |

**DeletePairing** -  Delete the pairing of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kCurrent | 0x00 |  delete the current pairing<br /> |
| kAll | 0x01 |  delete all the pairing of the device<br /> |

**SoundActionType** -  sound configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kGoodRead | 0 |  sound configuration for a good read action<br /> |
| kGoodReadLocal | 1 |  sound configuration for a good read local action<br /> |
| kBadRead | 2 |  sound configuration for a bad read action<br /> |
| kBadReadLocal | 3 |  sound configuration for a bad read local action<br /> |

**SoundFrequency** -  Sound frequency configuration

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kNone | 0 |  no frequency<br /> |
| kLow | 1 |  Low pitch frequency<br /> |
| kMedium | 2 |  Medium pitch frequency<br /> |
| kHigh | 3 |  High pitch frequency<br /> |

**RumbleActionType** -  Rumble configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kGoodRead | 0 |  Rumble configuration for a good read action<br /> |
| kGoodReadLocal | 1 |  Rumble configuration for a good read local action<br /> |
| kBadRead | 2 |  Rumble configuration for a bad read action<br /> |
| kBadReadLocal | 3 |  Rumble configuration for a bad read local action<br /> |

**LocalDecodeAction** -  Define the action for a local decode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kNone | 0 |  no action<br /> |
| kBeep | 1 |  Beep when a local decode occurs<br /> |
| kFlash | 2 |  Flash the LED when a local decode occurs<br /> |
| kRumble | 4 |  Rumble when a local decode occurs<br /> |

**DataConfirmationLed** -  Define the LED for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kNone | 0 |  no LED<br /> |
| kGreen | 1 |  make the LED flash in green<br /> |
| kRed | 2 |  make the LED flash in red<br /> |

**DataConfirmationBeep** -  Define the sound for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kNone | 0 |  no sound<br /> |
| kGood | 1 |  short beep for success<br /> |
| kBad | 2 |  long beep for failure<br /> |

**DataConfirmationRumble** -  Define the rumble for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kNone | 0 |  no sound<br /> |
| kGood | 1 |  short rumble for success<br /> |
| kBad | 2 |  long rumble for failure<br /> |

**Flash** -  Define the flash setting

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kOff | 0 |  turn off the flash<br /> |
| kOn | 1 |  turn on the flash<br /> |

**SocketCam** -  Define the SocketCam experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kEnable | 0 |  Enable SocketCam<br /> |
| kDisable | 1 |  Disable SocketCam<br /> |
| kNotSupported | 2 |  SocketCam is not supported, and cannot be enabled<br /> |

**PowerState** -  Define the possible power states

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kUnknown | 0x00 |  The power state is unknown<br /> |
| kOnBattery | 0x01 |  The power state is on battery<br /> |
| kOnCradle | 0x02 |  The power state is on cradle<br /> |
| kOnAc | 0x04 |  The power state in on AC<br /> |

**MonitorDbg** -  Define the monitor feature (DEBUG build only)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kLevel | 1 |  define the level for the debug traces<br /> |
| kChannel | 2 |  define the output channel for the debug traces<br /> |
| kFileLineLevel | 3 |  define the number of lines in the file<br /> |

**Counter** -  identifiers for the statistic counters

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kSkip | -1 |  use for convenience only to skip a counter<br /> |
| kUnknown | 0 |  unknow counter<br /> |
| kConnect | 1 |  number of connections<br /> |
| kDisconnect | 2 |  number of disconnections<br /> |
| kUnbound | 3 |  number of unbound operation<br /> |
| kFactoryReset | 4 |  number of reset to factory default<br /> |
| kReads | 5 |  number of reads (scans)<br /> |
| kTriggerButtonUp | 6 |  number of trigger button released<br /> |
| kTriggerButtonDown | 7 |  number of trigger button pressed<br /> |
| kPowerButtonUp | 8 |  number of power button released<br /> |
| kPowerButtonDown | 9 |  number of power button pressed<br /> |
| kOnAcTimeInMinutes | 10 |  number of minutes in AC power<br /> |
| kOnBatTimeInMinutes | 11 |  number of minutes on battery<br /> |
| kRfcommSend | 12 |  number of RFCOMM sent (SSI only)<br /> |
| kRfcommReceive | 13 |  number of RFCOMM received (SSI only)<br /> |
| kRfcommReceiveDiscarded | 14 |  number of RFCOMM discarded (SSI only)<br /> |
| kUartSend | 15 |  number of UART sent (SSI only)<br /> |
| kUartReceive | 16 |  number of UART received (SSI only)<br /> |
| kUartReceiveDiscarded | 17 |  number of UART discarded (SSI only)<br /> |
| kButtonLeftPress | 18 |  number of left button press (CRS only)<br /> |
| kButtonLeftRelease | 19 |  number of left button release (CRS only)<br /> |
| kButtonRightPress | 20 |  number of right button press (CRS only)<br /> |
| kButtonRightRelease | 21 |  number of right button release (CRS only)<br /> |
| kRingUnitDetach | 22 |  number of ring unit detach (CRS only)<br /> |
| kRingUnitAttach | 23 |  number of ring unit attach (CRS only)<br /> |
| kDecodedBytes | 24 |  number of decoded bytes (7x only ISCI)<br /> |
| kAbnormalShutdowns | 25 |  number of abnormal shutdowns (7x only ISCI)<br /> |
| kBatteryChargeCycles | 26 |  number of battery charge cycles (7x only ISCI)<br /> |
| kBatteryChargeCount | 27 |  number of battery charge count (7x only ISCI)<br /> |
| kPowerOn | 28 |  number of power on (only 8Ci)<br /> |
| kPowerOff | 29 |  number of power off (only 8Ci)<br /> |
| kStandModeChange | 30 |  number of stand mode change (only 7X/Q 7630 and higher)<br /> |

**Disconnect** -  Disconnect parameters to instruct the device what to do after disconnection

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kStartProfile | 0 |  disconnect and then start the current profile<br /> |
| kDisableRadio | 1 |  Disconnect and disable radio (low power)<br /> |
| kMakeAvailable | 2 |  Disconnect a device and make it available for a new connection (for Bluetooth Low Energy device)<br /> |

**ProfileSelect** -  Select a profile for the device (None, SPP, HID, Reader, Coupler)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kNone | 0 |  The device is in acceptor mode, not trying to connect to any host<br /> |
| kSpp | 1 |  The device is in App mode<br /> |
| kHid | 2 |  The device is in Basic mode, sometimes referred as Keyboard emulation<br /> |
| kReader | 3 |  The device is in Reader mode, for NFC devices<br /> |
| kCoupler | 4 |  The device is in Coupler mode, for NFC devices<br /> |

**ProfileConfig** -  Configure a profile for the device (None, Acceptor, Initiator)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kNone | 0 |  The device is in either acceptor or initiator mode, meaning not even discoverable<br /> |
| kAcceptor | 1 |  The device is discoverable and will accept any connection<br /> |
| kInitiator | 2 |  The device initiates a connection to the Bluetooth address specified in the Profile Configuration<br /> |
| kSize | 2 + // Profile 2 + // Role (Acceptor/Initiator) 6 + // Bluetooth Address 3 + // Class of Device (COD) 1 // to make the size even | size of the Profile Config data array |

**Notifications** -  Configuration masks for selecting the notifications the device should send to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kTriggerButtonPress | 1 &lt;&lt; 0 |  The device sends a notification when the trigger button is pressed<br /> |
| kTriggerButtonRelease | 1 &lt;&lt; 1 |  The device sends a notification when the trigger button is released<br /> |
| kPowerButtonPress | 1 &lt;&lt; 2 |  The device sends a notification when the power button is pressed<br /> |
| kPowerButtonRelease | 1 &lt;&lt; 3 |  The device sends a notification when the power button is released<br /> |
| kPowerState | 1 &lt;&lt; 4 |  The device sends a notification when the power state changes (battery to AC or vice-versa) (not supported on all device)<br /> |
| kBatteryLevelChange | 1 &lt;&lt; 5 |  The device sends a notification when the battery level changed (not supported on all device)<br /> |

**Timer** -  Identifies the timers used in the device, (trigger lock, disconnected, connected)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kAutoLock | 1 |  The trigger button stays ineffective for the specified amount of time <br /> or until the device receives a data confirmation command.<br /> |
| kPowerOffDisconnected | 2 |  This timer specifies the amount of time the device stays on while it is not connected to any host.<br /> |
| kPowerOffConnected | 4 |  This timer specifies the amount of time the device stays on while it is connected to a host.<br /> |

**DataFormat** -  Identifies the data format the device should send the data to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kRaw | 0 |  The device sends the data without any protocol overhead<br /> |
| kPacket | 1 |  The device sends the data embedded in a protocol packet (default)<br /> |
| kIdOnly | 2 |  The device sends only the RFID tag ID, (valid only for D600 NFC devices)<br /> |
| kTagTypeAndId | 10 |  The device sends the tag type and RFID tag ID, (valid only for D600 NFC devices)<br /> |
| kDataOnly | 4 |  The device sends only the tag data, (valid only for D600 NFC devices)<br /> |
| kTagTypeAndData | 12 |  The device sends the tag type and the tag data, (valid only for D600 NFC devices)<br /> |

**TriggerMode** -  defines the operational mode of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kLocalOnly | 1 |  The device triggers a read only by pressing the trigger button<br /> |
| kRemoteAndLocal | 2 |  The device triggers a read by pressing the trigger button or by receiving the trigger command<br /> |
| kAutoLock | 3 |  the device waits for the host to unlock the trigger<br /> |
| kNormalLock | 4 |  the device locks and unlocks the trigger locally (default)<br /> |
| kPresentation | 5 |  The device triggers a read automatically without user intervention<br /> |

**ConnectReason** -  defines the reason as of how the device connects to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kUnknown | 0 |  The device connects to the host from unknown reason<br /> |
| kPowerOn | 1 |  The device connects to the host just after power on<br /> |
| kBarcode | 2 |  The device connects to the host by reading the host address from a barcode<br /> |
| kUserAction | 3 |  The device connects to the host by user action (usually a press on the trigger button)<br /> |
| kHostChange | 4 |  The device connects to the host from a change of the host address in the profile configuration<br /> |
| kRetry | 5 |  The device connects to the host after a retry (device coming back to the radio range)<br /> |

**StartUpRoleSpp** -  The start up role SPP defines the start up role when using the SPP profile.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kAcceptor | 0 |  The device returns to acceptor mode, not initiating a connection to a host.<br /> |
| kLastRole | 1 |  The device uses the last role configuration upon startup.<br /> |

**ConnectBeepConfig** -  The connect beep configuration allows to turn off or on the connection beep when the scanner connects

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kNoBeep | 0 |  The device won't beep upon connection to a host.<br /> |
| kBeep | 1 |  The device beeps when connecting to the host.<br /> |

**StandConfig** -  The stand configuration defines the operational mode of the device when used with a stand.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kDisabled | 0 |  Bluetooth Classic:<br /> Disabled the stand config property and sets the scanner as it is intended<br /> Bluetooth LE:<br /> Scanner does not switch to presentation mode<br /> |
| kMobileMode | 1 |  Bluetooth Classic:<br /> Mobile mode Works like today existing firmware Engine is always in trigger mode Engine hibernate enabled<br /> Bluetooth LE:<br /> Identical to disabled mode<br /> |
| kStandMode | 2 |  Bluetooth Classic:<br /> Stand mode Engine always in presentation mode Engine hibernate<br /> disabled Scanner turns on immediately Power timers disabled Connection retries forever<br /> Bluetooth LE:<br /> The device switches to presentation mode, always, in or out of the stand,<br /> |
| kDetectMode | 3 |  Bluetooth Classic:<br /> Detect mode On stand engine in presentation mode On stand engine<br /> hibernate disabled On stand charging led state not show On stand<br /> scanner turns on immediately On stand power timers disabled On stand<br /> connection retries forever Off stand engine in level mode Off stand<br /> battery led state reported Off stand engine hibernate enabled Off stand<br /> power off timers running Off stand connection retries halt after max count<br /> Bluetooth LE:<br /> The device switches in or out of presentation mode when it's in or out respectively from the stand<br /> |
| kAutoMode | 4 |  Bluetooth Classic:<br /> Auto mode On stand engine in presentation mode On stand engine hibernate<br /> disabled On stand charging led state not show On stand scanner turns on<br /> immediately On stand power timers disabled On stand connection retries<br /> forever Off stand does nothing, engine remains in presentation mode Off<br /> stand trigger press causes engine to enter level mode Engine in level<br /> mode battery led state reported Engine in level mode hibernate enabled<br /> Engine in level mode power off timers running Engine in level mode<br /> connection retries halt after max count<br /> Bluetooth LE:<br /> Same as DetectMode, but if you use the trigger button while it's out of the stand it switches to a normal trigger operation until it returns to the stand in which it switches to presentation mode.<br /> If it is removed from the stand it stays in presentation mode until the trigger is pressed at least once.<br /> |

**ButtonsState** -  The mask to apply for each button that is pressed

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kLeft | 1 |  The left button is pressed.<br /> |
| kRight | 2 |  The right button is pressed.<br /> |
| kMiddle | 4 |  The middle button is pressed.<br /> |
| kPower | 8 |  The power button is pressed.<br /> |
| kRingDetach | 16 |  The Ring is detached from the wrist unit.<br /> |

**ThemeSelection** -  The mask to apply for each theme

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kNone | 0 |  No theme.<br /> |
| kHealth | 1 |  The Health theme.<br /> |
| kAccess | 2 |  The Access theme.<br /> |
| kValue | 3 |  The Value theme.<br /> |
| kMembership | 4 |  The Membership theme.<br /> |

**ThemeSelectionMask** -  Mask for the Theme selection property. It applies the theme selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kDefault | 1 |  Mask applied on the Default device<br /> |
| kNfc | 2 |  Mask applied on the Nfc device<br /> |
| kDefaultNfc | 3 |  Mask applied on the Default and Nfc devices<br /> |
| kBarcode | 4 |  Mask applied on the Barcode device<br /> |
| kDefaultBarcode | 5 |  Mask applied on the Default and Barcode devices<br /> |
| kNfcBarcode | 6 |  Mask applied on the Nfc and Barcode devices<br /> |
| kAll | 7 |  Mask applied on the Default, Nfc and Barcode devices<br /> |

**LassoDeviceStatus** -  Define the Lasso experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kDisable | 0 |  Disable Lasso<br /> |
| kEnable | 1 |  Enable Lasso<br /> |

**SinglePartnership** -  Define the Single Partnership experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kDisable | 0 |  Disable Single Partnership<br /> |
| kWebApi | 1 |  Get a Single Partnership through our Web API<br /> |
| kWebUI | 2 |  Show a Single Partnership QRcode through our Web UI<br /> |
| kUuid | 3 |  Set your own Service UUID for a Single Partnership<br /> |
| kWebUIPrompt | 4 |  Show a Single Partnership Web UI where you can input information about the device<br /> |
| kDeviceId | 5 |  Set your own Device Id that will return a Single Partnership Web page with a QRcode to scan<br /> |

**BluetoothDiscoveryMode** -  The Bluetooth technology used to make a discovery of devices in the vicinity

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kBluetoothLowEnergy | 1 |  Discovery for Bluetooth LE devices such as S550, S370, S320, S721.<br /> |
| kBluetoothClassic | 2 |  Discovery for Bluetooth Classic devices.<br /> |

**DecodeLocalActionSelectionMask** -  Mask for the Decode Local Action selection property. It applies the decode local action selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
| kGood | 1 |  Mask applied on the Good local decode action result<br /> |
| kBad | 2 |  Mask applied on the Bad local decode action result<br /> |

## Dart

## List of properties types
## Defines the property value type. Properties can have value of different type or no value at all

| Type name | Description |
| :---------------- | :----- |
| none | for capture properties that don't have any value |
| notApplicable | for capture properties that don't have a value for either a get operation or a set operation or neither of them. |
| byte | the property has a byte value |
| ulong | the property has a unsigned long value |
| array | the property has a byte array value |
| string | the property has a string value |
| version | the property has a version structure as value (read only) |
| dataSource | the property has a data source structure as value |
| Enum | the property has an enum value |
| object | the property has an object as value |
| lastType | the property type should not be equal or higher that kLast otherwise it means the SDK is not in sync with the actual version of Socket Mobile Companion running on the host |

## List of the properties
## Those properties are the ones used by CaptureSDK to get and set different types of values

| Property name | Capture or Device Property | Property Get type | Property Set type | Description |
| :---------------- | :----- |:----- | :----- | :----- |
| abort | Capture | notApplicable | none | Set to notify Capture that the client is shutting down gracefully. Capture will send device removal events followed by a terminate event. Once you receive the terminate event, it is safe to shut down Capture. |
| version | Capture | none | notApplicable | Gets the Capture service version. |
| interfaceVersion | Capture | none | notApplicable | Gets the version of the firmware interface that Capture service supports. This can be useful for determining if the Capture service supports a particular hardware feature. |
| configuration | Capture | string | string | property to set or get the Capture configuration |
| dataConfirmationMode | Capture | none | byte | Gets or sets the data confirmation mode. The data confirmation mode determines who acknowledges whether the data received was good or bad. |
| dataConfirmationAction | Capture | none | ulong | Gets or sets the data confirmation action. Data confirmation action determines how good or bad data is acknowledged. |
| monitorMode | Capture | byte | array | Gets or sets the log level of various Capture service components (Only works on debug builds of the service). |
| socketCamStatus | Capture | none | byte | property to get or set the SocketCam status |
| versionDevice | Device | none | notApplicable | Gets the firmware version of the device |
| deviceType | Device | none | notApplicable | Gets the model of the device |
| deviceSpecific | Device | array | array | Sends an arbitrary get or set command to the device |
| dataSourceDevice | Device | dataSource | dataSource | property to get or set the data source status / information |
| triggerDevice | Device | notApplicable | byte | Sets the trigger of the device - can start or stop a read and enable or disable the physical trigger button on the device. |
| applyConfigDevice | Device | notApplicable | none | property to apply a config to a Capture Device (not yet enabled) |
| preambleDevice | Device | none | string | Gets or sets a preamble for data decoded by the device. When set, the preamble is added in front of the decoded data. |
| postambleDevice | Device | none | string | Gets or sets a postamble for data decoded by the device. When set, the postamble is added to the end of the decoded data. |
| capabilitiesDevice | Device | byte | notApplicable | property to get the Capture Device capabilities |
| changeIdDevice | Device | none | notApplicable | Gets the change id of the device. The change id is a checksum of all the engine settings - e.g. symbology settings, preamble, postamble, etc - and can be used to determine if the device configuration has been altered by another application or using a command barcode. |
| dataFormatDevice | Device | none | byte | property to get or set the Decoded Data Format of a Capture Device |
| friendlyNameDevice | Device | none | string | Gets or sets the friendly name of the device. The friendly name is the name that appears in Bluetooth settings. |
| securityModeDevice | Device | none | byte | property to get or set the Capture Device Security Mode |
| pinCodeDevice | Device | notApplicable | string | property to get or set the Capture Device PIN code |
| deletePairingBondingDevice | Device | notApplicable | byte | Set deletes pairing and bonding information off the device. Useful when preparing to pair the Capture device to a different host. |
| restoreFactoryDefaultsDevice | Device | notApplicable | none | Set resets all the settings on the device to their default values. |
| setPowerOffDevice | Device | notApplicable | none | Set turns the device off |
| buttonsStatusDevice | Device | none | notApplicable | Gets the current state of each button on the device. Consider using kNotificationsDevice to subscribe to button events instead. |
| soundConfigDevice | Device | byte | array | Gets or sets the sound configuration of the device. There are separate sound configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan sound configuration. |
| timersDevice | Device | none | array | Gets or sets the trigger lock and auto-off timers. The trigger lock determines how long the trigger remains locked after decoding data without receiving confirmation. There are two auto-off timers, one for when the device is connected to a host and one for when it is not. |
| localAcknowledgmentDevice | Device | none | byte | Gets or sets local device acknowledgement. When enabled, the device acknowledges decoded data as soon as it is decoded. When disabled, the device waits for the host to acknowledge decoded data and the trigger will be locked until acknowledgement is received or the trigger lock timeout has elapsed. |
| dataConfirmationDevice | Device | notApplicable | ulong | Sends an acknowledgement to the device. Acknowledgement can either be positive or negative - a.k.a. good scan or bad scan. |
| batteryLevelDevice | Device | none | notApplicable | Gets the current battery level of the device. Consider using  kNotificationsDevice to subscribe to battery level change events instead. |
| localDecodeActionDevice | Device | none | byte | Gets or sets the local decode action of the device. Determines how decoded data is acknowledged - i.e. with a beep, rumble, flash or some combination of all three. |
| bluetoothAddressDevice | Device | none | notApplicable | Gets the Bluetooth address of the device |
| statisticCountersDevice | Device | none | notApplicable | Gets the statistics counters of the device. Counters record the absolute number of times a particular event has occurred. |
| rumbleConfigDevice | Device | byte | array | Gets or sets the rumble configuration of the device. There are separate rumble configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan rumble configuration. |
| profileConfigDevice | Device | none | array | property to get or set the Capture Device Profile Configuration |
| disconnectDevice | Device | notApplicable | byte | Instructs the device to drop its connection. Note: After sending this command, the host will be unable to send any subsequent commands to this device. |
| dataStoreDevice | Device | array | array | Gets or sets arbitrary bytes to store on the device. The device has 16 storage locations which can hold up to 64 bytes each. |
| notificationsDevice | Device | none | ulong | Gets or sets subscriptions to various events from the device. Events that can be subscribed to include, trigger press/release, power button press/release, power state and battery level change. |
| connectReasonDevice | Device | none | notApplicable | property to get the Capture Device Connect reason |
| powerStateDevice | Device | none | notApplicable | Gets the current power state of the device. Consider using kNotificationsDevice to subscribe to power state events instead. |
| startUpRoleSPPDevice | Device | none | byte | Gets or sets the reconnect behavior of the device when it is powered on in application mode. By default, the device will attempt to reconnect to the last host, but this feature can be turned off using this property. |
| connectionBeepConfigDevice | Device | none | byte | property to get or set the Capture Device Connection Beep Configuration. |
| flashDevice | Device | none | byte | Gets or sets the status of the flash on the SocketCam device. |
| overlayViewDevice | Device | none | object | property to get or set the Capture Device Overlay View (SocketCam only) |
| standConfigDevice | Device | none | ulong | property to get or set the Capture Device Stand Configuration |
| startDiscovery | Device | notApplicable | ulong | property to start a BLE discovery from a Device Manager |
| favorite | Device | none | string | property to set or get the BLE favorites for a Device Manager |
| uniqueDeviceIdentifier | Device | string | notApplicable | property to get the BLE Unique Device Identifier that can be used to set favorite with |
| pcScTagTransmit | Device | array | array | property to transmit through PC/SC an array of bytes often called APDU |
| pcScCouplerControl | Device | array | array | property to control the PC/SC coupler device by passing an array of bytes often called APDU |
| themeSelectionDevice | Device | none | array | property to define the theme that is used for the different events: Ready, Read, Read Success, Read Failure UI |
| themeSelectionMaskDevice | Device | none | array | property to define the theme selection mask. It applies the theme selection on the given device(s) set with the mask |
| lassoStatusDevice | Device | none | byte | property to define if the Lasso feature is enabled or not |
| lassoIdDevice | Device | notApplicable | array | property to define the Lasso Id for a device |
| lassoLifeSpanDevice | Device | none | ulong | property to define the Lasso life span for a device |
| singlePartnership | Capture | none | array | property to get or set a device's Single Partnership connection |
| singlePartnershipStamp | Capture | none | notApplicable | property to get a stamp from the host for Single Partnership connection |
| resetSinglePartnershipDevice | Device | none | none | property to reset a device's Single Partnership connection |
| connectDiscoveredDevice | Device | notApplicable | string | property to connect to a discovered BLE device with a Device Manager |
| disconnectDiscoveredDevice | Device | notApplicable | string | property to disconnect from a discovered BLE device with a Device Manager |
| addDevice | Capture | notApplicable | byte | property to add a Bluetooth device (Classic or Low Energy) |
| removeDevice | Capture | notApplicable | string | property to remove a Bluetooth device (Classic or Low Energy) |
| resetDevice | Device | notApplicable | none | property to power cycle a Bluetooth LE device when on a power source (e.g. charging). Otherwise it will just power off the device |

## List of the properties values
## Those values are the ones used by CaptureSDK when using properties

**DataConfirmationMode** -  Data Confirmation Mode indicates what is  expected to the send the Data ACK back to the scanner

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|modeOff | 0 |  use the device configuration (Local Confirmation or App)<br /> |
|modeDevice | 1 |  the device confirms the decoded data locally<br /> |
|modeCapture | 2 |  Capture confirms the decoded data as it receives them and there is one app<br /> |
|modeApp | 3 |  the Application confirms the decoded data as it receives them<br /> |

**DeviceDataAcknowledgment** -  Device Data Acknowledgment mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|off | 0 |  the device won't locally acknowledge decoded data<br /> |
|on | 1 |  the device will locally acknowledge decoded data<br /> |

**SecurityMode** -  Security Mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  No security<br /> |
|authentication | 1 |  communication protected by authentication<br /> |
|authenticationEncryption | 2 |  communication protected by authentication and encrytion<br /> |

**Trigger** -  trigger parameter

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|start | 1 |  start a read<br /> |
|stop | 2 |  stop a read<br /> |
|enable | 3 |  enable the trigger<br /> |
|disable | 4 |  disable the trigger<br /> |
|continuousScan | 5 |  start a read in continuous<br /> |
|continuousScanUntilRead | 6 |  start a read in continuous until a code is read<br /> |

**DeletePairing** -  Delete the pairing of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|current | 0 |  delete the current pairing<br /> |
|all | 1 |  delete all the pairing of the device<br /> |

**SoundActionType** -  sound configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|goodRead | 0 |  sound configuration for a good read action<br /> |
|goodReadLocal | 1 |  sound configuration for a good read local action<br /> |
|badRead | 2 |  sound configuration for a bad read action<br /> |
|badReadLocal | 3 |  sound configuration for a bad read local action<br /> |

**SoundFrequency** -  Sound frequency configuration

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  no frequency<br /> |
|low | 1 |  Low pitch frequency<br /> |
|medium | 2 |  Medium pitch frequency<br /> |
|high | 3 |  High pitch frequency<br /> |

**RumbleActionType** -  Rumble configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|goodRead | 0 |  Rumble configuration for a good read action<br /> |
|goodReadLocal | 1 |  Rumble configuration for a good read local action<br /> |
|badRead | 2 |  Rumble configuration for a bad read action<br /> |
|badReadLocal | 3 |  Rumble configuration for a bad read local action<br /> |

**LocalDecodeAction** -  Define the action for a local decode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  no action<br /> |
|beep | 1 |  Beep when a local decode occurs<br /> |
|flash | 2 |  Flash the LED when a local decode occurs<br /> |
|rumble | 4 |  Rumble when a local decode occurs<br /> |

**DataConfirmationLed** -  Define the LED for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  no LED<br /> |
|green | 1 |  make the LED flash in green<br /> |
|red | 2 |  make the LED flash in red<br /> |

**DataConfirmationBeep** -  Define the sound for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  no sound<br /> |
|good | 1 |  short beep for success<br /> |
|bad | 2 |  long beep for failure<br /> |

**DataConfirmationRumble** -  Define the rumble for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  no sound<br /> |
|good | 1 |  short rumble for success<br /> |
|bad | 2 |  long rumble for failure<br /> |

**Flash** -  Define the flash setting

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|off | 0 |  turn off the flash<br /> |
|on | 1 |  turn on the flash<br /> |

**SocketCam** -  Define the SocketCam experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|enable | 0 |  Enable SocketCam<br /> |
|disable | 1 |  Disable SocketCam<br /> |
|notSupported | 2 |  SocketCam is not supported, and cannot be enabled<br /> |

**PowerState** -  Define the possible power states

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|unknown | 0 |  The power state is unknown<br /> |
|onBattery | 1 |  The power state is on battery<br /> |
|onCradle | 2 |  The power state is on cradle<br /> |
|onAc | 4 |  The power state in on AC<br /> |

**MonitorDbg** -  Define the monitor feature (DEBUG build only)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|level | 1 |  define the level for the debug traces<br /> |
|channel | 2 |  define the output channel for the debug traces<br /> |
|fileLineLevel | 3 |  define the number of lines in the file<br /> |

**Counter** -  identifiers for the statistic counters

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|skip | -1 |  use for convenience only to skip a counter<br /> |
|unknown | 0 |  unknow counter<br /> |
|connect | 1 |  number of connections<br /> |
|disconnect | 2 |  number of disconnections<br /> |
|unbound | 3 |  number of unbound operation<br /> |
|factoryReset | 4 |  number of reset to factory default<br /> |
|reads | 5 |  number of reads (scans)<br /> |
|triggerButtonUp | 6 |  number of trigger button released<br /> |
|triggerButtonDown | 7 |  number of trigger button pressed<br /> |
|powerButtonUp | 8 |  number of power button released<br /> |
|powerButtonDown | 9 |  number of power button pressed<br /> |
|onAcTimeInMinutes | 10 |  number of minutes in AC power<br /> |
|onBatTimeInMinutes | 11 |  number of minutes on battery<br /> |
|rfcommSend | 12 |  number of RFCOMM sent (SSI only)<br /> |
|rfcommReceive | 13 |  number of RFCOMM received (SSI only)<br /> |
|rfcommReceiveDiscarded | 14 |  number of RFCOMM discarded (SSI only)<br /> |
|uartSend | 15 |  number of UART sent (SSI only)<br /> |
|uartReceive | 16 |  number of UART received (SSI only)<br /> |
|uartReceiveDiscarded | 17 |  number of UART discarded (SSI only)<br /> |
|buttonLeftPress | 18 |  number of left button press (CRS only)<br /> |
|buttonLeftRelease | 19 |  number of left button release (CRS only)<br /> |
|buttonRightPress | 20 |  number of right button press (CRS only)<br /> |
|buttonRightRelease | 21 |  number of right button release (CRS only)<br /> |
|ringUnitDetach | 22 |  number of ring unit detach (CRS only)<br /> |
|ringUnitAttach | 23 |  number of ring unit attach (CRS only)<br /> |
|decodedBytes | 24 |  number of decoded bytes (7x only ISCI)<br /> |
|abnormalShutdowns | 25 |  number of abnormal shutdowns (7x only ISCI)<br /> |
|batteryChargeCycles | 26 |  number of battery charge cycles (7x only ISCI)<br /> |
|batteryChargeCount | 27 |  number of battery charge count (7x only ISCI)<br /> |
|powerOn | 28 |  number of power on (only 8Ci)<br /> |
|powerOff | 29 |  number of power off (only 8Ci)<br /> |
|standModeChange | 30 |  number of stand mode change (only 7X/Q 7630 and higher)<br /> |

**Disconnect** -  Disconnect parameters to instruct the device what to do after disconnection

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|startProfile | 0 |  disconnect and then start the current profile<br /> |
|disableRadio | 1 |  Disconnect and disable radio (low power)<br /> |
|makeAvailable | 2 |  Disconnect a device and make it available for a new connection (for Bluetooth Low Energy device)<br /> |

**ProfileSelect** -  Select a profile for the device (None, SPP, HID, Reader, Coupler)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  The device is in acceptor mode, not trying to connect to any host<br /> |
|spp | 1 |  The device is in App mode<br /> |
|hid | 2 |  The device is in Basic mode, sometimes referred as Keyboard emulation<br /> |
|reader | 3 |  The device is in Reader mode, for NFC devices<br /> |
|coupler | 4 |  The device is in Coupler mode, for NFC devices<br /> |

**ProfileConfig** -  Configure a profile for the device (None, Acceptor, Initiator)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  The device is in either acceptor or initiator mode, meaning not even discoverable<br /> |
|acceptor | 1 |  The device is discoverable and will accept any connection<br /> |
|initiator | 2 |  The device initiates a connection to the Bluetooth address specified in the Profile Configuration<br /> |

**Notifications** -  Configuration masks for selecting the notifications the device should send to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|triggerButtonPress | 1 |  The device sends a notification when the trigger button is pressed<br /> |
|triggerButtonRelease | 2 |  The device sends a notification when the trigger button is released<br /> |
|powerButtonPress | 4 |  The device sends a notification when the power button is pressed<br /> |
|powerButtonRelease | 8 |  The device sends a notification when the power button is released<br /> |
|powerState | 16 |  The device sends a notification when the power state changes (battery to AC or vice-versa) (not supported on all device)<br /> |
|batteryLevelChange | 32 |  The device sends a notification when the battery level changed (not supported on all device)<br /> |

**Timer** -  Identifies the timers used in the device, (trigger lock, disconnected, connected)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|autoLock | 1 |  The trigger button stays ineffective for the specified amount of time <br /> or until the device receives a data confirmation command.<br /> |
|powerOffDisconnected | 2 |  This timer specifies the amount of time the device stays on while it is not connected to any host.<br /> |
|powerOffConnected | 4 |  This timer specifies the amount of time the device stays on while it is connected to a host.<br /> |

**DataFormat** -  Identifies the data format the device should send the data to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|raw | 0 |  The device sends the data without any protocol overhead<br /> |
|packet | 1 |  The device sends the data embedded in a protocol packet (default)<br /> |
|idOnly | 2 |  The device sends only the RFID tag ID, (valid only for D600 NFC devices)<br /> |
|tagTypeAndId | 10 |  The device sends the tag type and RFID tag ID, (valid only for D600 NFC devices)<br /> |
|dataOnly | 4 |  The device sends only the tag data, (valid only for D600 NFC devices)<br /> |
|tagTypeAndData | 12 |  The device sends the tag type and the tag data, (valid only for D600 NFC devices)<br /> |

**TriggerMode** -  defines the operational mode of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|localOnly | 1 |  The device triggers a read only by pressing the trigger button<br /> |
|remoteAndLocal | 2 |  The device triggers a read by pressing the trigger button or by receiving the trigger command<br /> |
|autoLock | 3 |  the device waits for the host to unlock the trigger<br /> |
|normalLock | 4 |  the device locks and unlocks the trigger locally (default)<br /> |
|presentation | 5 |  The device triggers a read automatically without user intervention<br /> |

**ConnectReason** -  defines the reason as of how the device connects to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|unknown | 0 |  The device connects to the host from unknown reason<br /> |
|powerOn | 1 |  The device connects to the host just after power on<br /> |
|barcode | 2 |  The device connects to the host by reading the host address from a barcode<br /> |
|userAction | 3 |  The device connects to the host by user action (usually a press on the trigger button)<br /> |
|hostChange | 4 |  The device connects to the host from a change of the host address in the profile configuration<br /> |
|retry | 5 |  The device connects to the host after a retry (device coming back to the radio range)<br /> |

**StartUpRoleSpp** -  The start up role SPP defines the start up role when using the SPP profile.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|acceptor | 0 |  The device returns to acceptor mode, not initiating a connection to a host.<br /> |
|lastRole | 1 |  The device uses the last role configuration upon startup.<br /> |

**ConnectBeepConfig** -  The connect beep configuration allows to turn off or on the connection beep when the scanner connects

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|noBeep | 0 |  The device won't beep upon connection to a host.<br /> |
|beep | 1 |  The device beeps when connecting to the host.<br /> |

**StandConfig** -  The stand configuration defines the operational mode of the device when used with a stand.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|disabled | 0 |  Bluetooth Classic:<br /> Disabled the stand config property and sets the scanner as it is intended<br /> Bluetooth LE:<br /> Scanner does not switch to presentation mode<br /> |
|mobileMode | 1 |  Bluetooth Classic:<br /> Mobile mode Works like today existing firmware Engine is always in trigger mode Engine hibernate enabled<br /> Bluetooth LE:<br /> Identical to disabled mode<br /> |
|standMode | 2 |  Bluetooth Classic:<br /> Stand mode Engine always in presentation mode Engine hibernate<br /> disabled Scanner turns on immediately Power timers disabled Connection retries forever<br /> Bluetooth LE:<br /> The device switches to presentation mode, always, in or out of the stand,<br /> |
|detectMode | 3 |  Bluetooth Classic:<br /> Detect mode On stand engine in presentation mode On stand engine<br /> hibernate disabled On stand charging led state not show On stand<br /> scanner turns on immediately On stand power timers disabled On stand<br /> connection retries forever Off stand engine in level mode Off stand<br /> battery led state reported Off stand engine hibernate enabled Off stand<br /> power off timers running Off stand connection retries halt after max count<br /> Bluetooth LE:<br /> The device switches in or out of presentation mode when it's in or out respectively from the stand<br /> |
|autoMode | 4 |  Bluetooth Classic:<br /> Auto mode On stand engine in presentation mode On stand engine hibernate<br /> disabled On stand charging led state not show On stand scanner turns on<br /> immediately On stand power timers disabled On stand connection retries<br /> forever Off stand does nothing, engine remains in presentation mode Off<br /> stand trigger press causes engine to enter level mode Engine in level<br /> mode battery led state reported Engine in level mode hibernate enabled<br /> Engine in level mode power off timers running Engine in level mode<br /> connection retries halt after max count<br /> Bluetooth LE:<br /> Same as DetectMode, but if you use the trigger button while it's out of the stand it switches to a normal trigger operation until it returns to the stand in which it switches to presentation mode.<br /> If it is removed from the stand it stays in presentation mode until the trigger is pressed at least once.<br /> |

**ButtonsState** -  The mask to apply for each button that is pressed

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|left | 1 |  The left button is pressed.<br /> |
|right | 2 |  The right button is pressed.<br /> |
|middle | 4 |  The middle button is pressed.<br /> |
|power | 8 |  The power button is pressed.<br /> |
|ringDetach | 16 |  The Ring is detached from the wrist unit.<br /> |

**ThemeSelection** -  The mask to apply for each theme

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  No theme.<br /> |
|health | 1 |  The Health theme.<br /> |
|access | 2 |  The Access theme.<br /> |
|value | 3 |  The Value theme.<br /> |
|membership | 4 |  The Membership theme.<br /> |

**ThemeSelectionMask** -  Mask for the Theme selection property. It applies the theme selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|default | 1 |  Mask applied on the Default device<br /> |
|nfc | 2 |  Mask applied on the Nfc device<br /> |
|defaultNfc | 3 |  Mask applied on the Default and Nfc devices<br /> |
|barcode | 4 |  Mask applied on the Barcode device<br /> |
|defaultBarcode | 5 |  Mask applied on the Default and Barcode devices<br /> |
|nfcBarcode | 6 |  Mask applied on the Nfc and Barcode devices<br /> |
|all | 7 |  Mask applied on the Default, Nfc and Barcode devices<br /> |

**LassoDeviceStatus** -  Define the Lasso experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|disable | 0 |  Disable Lasso<br /> |
|enable | 1 |  Enable Lasso<br /> |

**SinglePartnership** -  Define the Single Partnership experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|disable | 0 |  Disable Single Partnership<br /> |
|webApi | 1 |  Get a Single Partnership through our Web API<br /> |
|webUI | 2 |  Show a Single Partnership QRcode through our Web UI<br /> |
|uuid | 3 |  Set your own Service UUID for a Single Partnership<br /> |
|webUIPrompt | 4 |  Show a Single Partnership Web UI where you can input information about the device<br /> |
|deviceId | 5 |  Set your own Device Id that will return a Single Partnership Web page with a QRcode to scan<br /> |

**BluetoothDiscoveryMode** -  The Bluetooth technology used to make a discovery of devices in the vicinity

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|bluetoothLowEnergy | 1 |  Discovery for Bluetooth LE devices such as S550, S370, S320, S721.<br /> |
|bluetoothClassic | 2 |  Discovery for Bluetooth Classic devices.<br /> |

**DecodeLocalActionSelectionMask** -  Mask for the Decode Local Action selection property. It applies the decode local action selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|good | 1 |  Mask applied on the Good local decode action result<br /> |
|bad | 2 |  Mask applied on the Bad local decode action result<br /> |

## Java

## List of properties types
## Defines the property value type. Properties can have value of different type or no value at all

| Type name | Description |
| :---------------- | :----- |
| TYPE_NONE | for capture properties that don't have any value |
| TYPE_NOT_APPLICABLE | for capture properties that don't have a value for either a get operation or a set operation or neither of them. |
| TYPE_BYTE | the property has a byte value |
| TYPE_LONG | the property has a unsigned long value |
| TYPE_ARRAY | the property has a byte array value |
| TYPE_STRING | the property has a string value |
| TYPE_VERSION | the property has a version structure as value (read only) |
| TYPE_DATA_SOURCE | the property has a data source structure as value |
| TYPE_ENUM | the property has an enum value |
| TYPE_OBJECT | the property has an object as value |
| TYPE_LAST_TYPE | the property type should not be equal or higher that kLast otherwise it means the SDK is not in sync with the actual version of Socket Mobile Companion running on the host |

## List of the properties
## Those properties are the ones used by CaptureSDK to get and set different types of values

| Property name | Capture or Device Property | Property Get type | Property Set type | Description |
| :---------------- | :----- |:----- | :----- | :----- |
| ABORT | Capture | TYPE_NOT_APPLICABLE | TYPE_NONE | Set to notify Capture that the client is shutting down gracefully. Capture will send device removal events followed by a terminate event. Once you receive the terminate event, it is safe to shut down Capture. |
| CAPTURE_VERSION | Capture | TYPE_NONE | TYPE_NOT_APPLICABLE | Gets the Capture service version. |
| INTERFACE_VERSION | Capture | TYPE_NONE | TYPE_NOT_APPLICABLE | Gets the version of the firmware interface that Capture service supports. This can be useful for determining if the Capture service supports a particular hardware feature. |
| CONFIGURATION | Capture | TYPE_STRING | TYPE_STRING | property to set or get the Capture configuration |
| DATA_CONFIRMATION_MODE | Capture | TYPE_NONE | TYPE_BYTE | Gets or sets the data confirmation mode. The data confirmation mode determines who acknowledges whether the data received was good or bad. |
| DATA_CONFIRMATION_ACTION | Capture | TYPE_NONE | TYPE_LONG | Gets or sets the data confirmation action. Data confirmation action determines how good or bad data is acknowledged. |
| MONITOR_MODE | Capture | TYPE_BYTE | TYPE_ARRAY | Gets or sets the log level of various Capture service components (Only works on debug builds of the service). |
| SOCKETCAM_STATUS | Capture | TYPE_NONE | TYPE_BYTE | property to get or set the SocketCam status |
| DEVICE_VERSION | Device | TYPE_NONE | TYPE_NOT_APPLICABLE | Gets the firmware version of the device |
| DEVICE_TYPE | Device | TYPE_NONE | TYPE_NOT_APPLICABLE | Gets the model of the device |
| DEVICE_SPECIFIC | Device | TYPE_ARRAY | TYPE_ARRAY | Sends an arbitrary get or set command to the device |
| DEVICE_DATA_SOURCE | Device | TYPE_DATA_SOURCE | TYPE_DATA_SOURCE | property to get or set the data source status / information |
| DEVICE_TRIGGER | Device | TYPE_NOT_APPLICABLE | TYPE_BYTE | Sets the trigger of the device - can start or stop a read and enable or disable the physical trigger button on the device. |
| DEVICE_APPLY_CONFIG | Device | TYPE_NOT_APPLICABLE | TYPE_NONE | property to apply a config to a Capture Device (not yet enabled) |
| DEVICE_PREAMBLE | Device | TYPE_NONE | TYPE_STRING | Gets or sets a preamble for data decoded by the device. When set, the preamble is added in front of the decoded data. |
| DEVICE_POSTAMBLE | Device | TYPE_NONE | TYPE_STRING | Gets or sets a postamble for data decoded by the device. When set, the postamble is added to the end of the decoded data. |
| DEVICE_CAPABILITIES | Device | TYPE_BYTE | TYPE_NOT_APPLICABLE | property to get the Capture Device capabilities |
| DEVICE_CHANGE_ID | Device | TYPE_NONE | TYPE_NOT_APPLICABLE | Gets the change id of the device. The change id is a checksum of all the engine settings - e.g. symbology settings, preamble, postamble, etc - and can be used to determine if the device configuration has been altered by another application or using a command barcode. |
| DEVICE_DATA_FORMAT | Device | TYPE_NONE | TYPE_BYTE | property to get or set the Decoded Data Format of a Capture Device |
| DEVICE_FRIENDLY_NAME | Device | TYPE_NONE | TYPE_STRING | Gets or sets the friendly name of the device. The friendly name is the name that appears in Bluetooth settings. |
| DEVICE_SECURITY_MODE | Device | TYPE_NONE | TYPE_BYTE | property to get or set the Capture Device Security Mode |
| DEVICE_PIN_CODE | Device | TYPE_NOT_APPLICABLE | TYPE_STRING | property to get or set the Capture Device PIN code |
| DEVICE_DELETE_PAIRING_BONDING | Device | TYPE_NOT_APPLICABLE | TYPE_BYTE | Set deletes pairing and bonding information off the device. Useful when preparing to pair the Capture device to a different host. |
| DEVICE_RESTORE_FACTORY_DEFAULTS | Device | TYPE_NOT_APPLICABLE | TYPE_NONE | Set resets all the settings on the device to their default values. |
| DEVICE_SET_POWER_OFF | Device | TYPE_NOT_APPLICABLE | TYPE_NONE | Set turns the device off |
| DEVICE_BUTTONS_STATUS | Device | TYPE_NONE | TYPE_NOT_APPLICABLE | Gets the current state of each button on the device. Consider using kNotificationsDevice to subscribe to button events instead. |
| DEVICE_SOUND_CONFIG | Device | TYPE_BYTE | TYPE_ARRAY | Gets or sets the sound configuration of the device. There are separate sound configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan sound configuration. |
| DEVICE_TIMERS | Device | TYPE_NONE | TYPE_ARRAY | Gets or sets the trigger lock and auto-off timers. The trigger lock determines how long the trigger remains locked after decoding data without receiving confirmation. There are two auto-off timers, one for when the device is connected to a host and one for when it is not. |
| DEVICE_LOCAL_ACKNOWLEDGMENT | Device | TYPE_NONE | TYPE_BYTE | Gets or sets local device acknowledgement. When enabled, the device acknowledges decoded data as soon as it is decoded. When disabled, the device waits for the host to acknowledge decoded data and the trigger will be locked until acknowledgement is received or the trigger lock timeout has elapsed. |
| DEVICE_DATA_CONFIRMATION | Device | TYPE_NOT_APPLICABLE | TYPE_LONG | Sends an acknowledgement to the device. Acknowledgement can either be positive or negative - a.k.a. good scan or bad scan. |
| DEVICE_BATTERY_LEVEL | Device | TYPE_NONE | TYPE_NOT_APPLICABLE | Gets the current battery level of the device. Consider using  kNotificationsDevice to subscribe to battery level change events instead. |
| DEVICE_LOCAL_DECODE_ACTION | Device | TYPE_NONE | TYPE_BYTE | Gets or sets the local decode action of the device. Determines how decoded data is acknowledged - i.e. with a beep, rumble, flash or some combination of all three. |
| DEVICE_BLUETOOTH_ADDRESS | Device | TYPE_NONE | TYPE_NOT_APPLICABLE | Gets the Bluetooth address of the device |
| DEVICE_STATISTIC_COUNTERS | Device | TYPE_NONE | TYPE_NOT_APPLICABLE | Gets the statistics counters of the device. Counters record the absolute number of times a particular event has occurred. |
| DEVICE_RUMBLE_CONFIG | Device | TYPE_BYTE | TYPE_ARRAY | Gets or sets the rumble configuration of the device. There are separate rumble configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan rumble configuration. |
| DEVICE_PROFILE_CONFIG | Device | TYPE_NONE | TYPE_ARRAY | property to get or set the Capture Device Profile Configuration |
| DEVICE_DISCONNECT | Device | TYPE_NOT_APPLICABLE | TYPE_BYTE | Instructs the device to drop its connection. Note: After sending this command, the host will be unable to send any subsequent commands to this device. |
| DEVICE_DATA_STORE | Device | TYPE_ARRAY | TYPE_ARRAY | Gets or sets arbitrary bytes to store on the device. The device has 16 storage locations which can hold up to 64 bytes each. |
| DEVICE_NOTIFICATIONS | Device | TYPE_NONE | TYPE_LONG | Gets or sets subscriptions to various events from the device. Events that can be subscribed to include, trigger press/release, power button press/release, power state and battery level change. |
| DEVICE_CONNECT_REASON | Device | TYPE_NONE | TYPE_NOT_APPLICABLE | property to get the Capture Device Connect reason |
| DEVICE_POWER_STATE | Device | TYPE_NONE | TYPE_NOT_APPLICABLE | Gets the current power state of the device. Consider using kNotificationsDevice to subscribe to power state events instead. |
| DEVICE_START_UP_ROLE_S_P_P | Device | TYPE_NONE | TYPE_BYTE | Gets or sets the reconnect behavior of the device when it is powered on in application mode. By default, the device will attempt to reconnect to the last host, but this feature can be turned off using this property. |
| DEVICE_CONNECTION_BEEP_CONFIG | Device | TYPE_NONE | TYPE_BYTE | property to get or set the Capture Device Connection Beep Configuration. |
| DEVICE_FLASH | Device | TYPE_NONE | TYPE_BYTE | Gets or sets the status of the flash on the SocketCam device. |
| DEVICE_OVERLAY_VIEW | Device | TYPE_NONE | TYPE_OBJECT | property to get or set the Capture Device Overlay View (SocketCam only) |
| DEVICE_STAND_CONFIG | Device | TYPE_NONE | TYPE_LONG | property to get or set the Capture Device Stand Configuration |
| START_DISCOVERY | Device | TYPE_NOT_APPLICABLE | TYPE_LONG | property to start a BLE discovery from a Device Manager |
| FAVORITE | Device | TYPE_NONE | TYPE_STRING | property to set or get the BLE favorites for a Device Manager |
| UNIQUE_DEVICE_IDENTIFIER | Device | TYPE_STRING | TYPE_NOT_APPLICABLE | property to get the BLE Unique Device Identifier that can be used to set favorite with |
| PC_SC_TAG_TRANSMIT | Device | TYPE_ARRAY | TYPE_ARRAY | property to transmit through PC/SC an array of bytes often called APDU |
| PC_SC_COUPLER_CONTROL | Device | TYPE_ARRAY | TYPE_ARRAY | property to control the PC/SC coupler device by passing an array of bytes often called APDU |
| DEVICE_THEME_SELECTION | Device | TYPE_NONE | TYPE_ARRAY | property to define the theme that is used for the different events: Ready, Read, Read Success, Read Failure UI |
| DEVICE_THEME_SELECTION_MASK | Device | TYPE_NONE | TYPE_ARRAY | property to define the theme selection mask. It applies the theme selection on the given device(s) set with the mask |
| DEVICE_LASSO_STATUS | Device | TYPE_NONE | TYPE_BYTE | property to define if the Lasso feature is enabled or not |
| DEVICE_LASSO_ID | Device | TYPE_NOT_APPLICABLE | TYPE_ARRAY | property to define the Lasso Id for a device |
| DEVICE_LASSO_LIFE_SPAN | Device | TYPE_NONE | TYPE_LONG | property to define the Lasso life span for a device |
| SINGLE_PARTNERSHIP | Capture | TYPE_NONE | TYPE_ARRAY | property to get or set a device's Single Partnership connection |
| SINGLE_PARTNERSHIP_STAMP | Capture | TYPE_NONE | TYPE_NOT_APPLICABLE | property to get a stamp from the host for Single Partnership connection |
| DEVICE_RESET_SINGLE_PARTNERSHIP | Device | TYPE_NONE | TYPE_NONE | property to reset a device's Single Partnership connection |
| DEVICE_CONNECT_DISCOVERED | Device | TYPE_NOT_APPLICABLE | TYPE_STRING | property to connect to a discovered BLE device with a Device Manager |
| DEVICE_DISCONNECT_DISCOVERED | Device | TYPE_NOT_APPLICABLE | TYPE_STRING | property to disconnect from a discovered BLE device with a Device Manager |
| DEVICE_ADD | Capture | TYPE_NOT_APPLICABLE | TYPE_BYTE | property to add a Bluetooth device (Classic or Low Energy) |
| DEVICE_REMOVE | Capture | TYPE_NOT_APPLICABLE | TYPE_STRING | property to remove a Bluetooth device (Classic or Low Energy) |
| DEVICE_RESET | Device | TYPE_NOT_APPLICABLE | TYPE_NONE | property to power cycle a Bluetooth LE device when on a power source (e.g. charging). Otherwise it will just power off the device |

## Objective-C

## List of properties types
## Defines the property value type. Properties can have value of different type or no value at all

| Type name | Description |
| :---------------- | :----- |
| SKTCapturePropertyTypeNone | for capture properties that don't have any value |
| SKTCapturePropertyTypeNotApplicable | for capture properties that don't have a value for either a get operation or a set operation or neither of them. |
| SKTCapturePropertyTypeByte | the property has a byte value |
| SKTCapturePropertyTypeUlong | the property has a unsigned long value |
| SKTCapturePropertyTypeArray | the property has a byte array value |
| SKTCapturePropertyTypeString | the property has a string value |
| SKTCapturePropertyTypeVersion | the property has a version structure as value (read only) |
| SKTCapturePropertyTypeDataSource | the property has a data source structure as value |
| SKTCapturePropertyTypeEnum | the property has an enum value |
| SKTCapturePropertyTypeObject | the property has an object as value |
| SKTCapturePropertyTypeLastType | the property type should not be equal or higher that kLast otherwise it means the SDK is not in sync with the actual version of Socket Mobile Companion running on the host |

## List of the properties
## Those properties are the ones used by CaptureSDK to get and set different types of values

| Property name | Capture or Device Property | Property Get type | Property Set type | Description |
| :---------------- | :----- |:----- | :----- | :----- |
| SKTCapturePropertyIDAbort | Capture | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeNone | Set to notify Capture that the client is shutting down gracefully. Capture will send device removal events followed by a terminate event. Once you receive the terminate event, it is safe to shut down Capture. |
| SKTCapturePropertyIDVersion | Capture | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | Gets the Capture service version. |
| SKTCapturePropertyIDInterfaceVersion | Capture | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | Gets the version of the firmware interface that Capture service supports. This can be useful for determining if the Capture service supports a particular hardware feature. |
| SKTCapturePropertyIDConfiguration | Capture | SKTCapturePropertyTypeString | SKTCapturePropertyTypeString | property to set or get the Capture configuration |
| SKTCapturePropertyIDDataConfirmationMode | Capture | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeByte | Gets or sets the data confirmation mode. The data confirmation mode determines who acknowledges whether the data received was good or bad. |
| SKTCapturePropertyIDDataConfirmationAction | Capture | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeUlong | Gets or sets the data confirmation action. Data confirmation action determines how good or bad data is acknowledged. |
| SKTCapturePropertyIDMonitorMode | Capture | SKTCapturePropertyTypeByte | SKTCapturePropertyTypeArray | Gets or sets the log level of various Capture service components (Only works on debug builds of the service). |
| SKTCapturePropertyIDSocketCamStatus | Capture | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeByte | property to get or set the SocketCam status |
| SKTCapturePropertyIDVersionDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | Gets the firmware version of the device |
| SKTCapturePropertyIDDeviceType | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | Gets the model of the device |
| SKTCapturePropertyIDDeviceSpecific | Device | SKTCapturePropertyTypeArray | SKTCapturePropertyTypeArray | Sends an arbitrary get or set command to the device |
| SKTCapturePropertyIDDataSourceDevice | Device | SKTCapturePropertyTypeDataSource | SKTCapturePropertyTypeDataSource | property to get or set the data source status / information |
| SKTCapturePropertyIDTriggerDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeByte | Sets the trigger of the device - can start or stop a read and enable or disable the physical trigger button on the device. |
| SKTCapturePropertyIDApplyConfigDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeNone | property to apply a config to a Capture Device (not yet enabled) |
| SKTCapturePropertyIDPreambleDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeString | Gets or sets a preamble for data decoded by the device. When set, the preamble is added in front of the decoded data. |
| SKTCapturePropertyIDPostambleDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeString | Gets or sets a postamble for data decoded by the device. When set, the postamble is added to the end of the decoded data. |
| SKTCapturePropertyIDCapabilitiesDevice | Device | SKTCapturePropertyTypeByte | SKTCapturePropertyTypeNotApplicable | property to get the Capture Device capabilities |
| SKTCapturePropertyIDChangeIdDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | Gets the change id of the device. The change id is a checksum of all the engine settings - e.g. symbology settings, preamble, postamble, etc - and can be used to determine if the device configuration has been altered by another application or using a command barcode. |
| SKTCapturePropertyIDDataFormatDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeByte | property to get or set the Decoded Data Format of a Capture Device |
| SKTCapturePropertyIDFriendlyNameDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeString | Gets or sets the friendly name of the device. The friendly name is the name that appears in Bluetooth settings. |
| SKTCapturePropertyIDSecurityModeDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeByte | property to get or set the Capture Device Security Mode |
| SKTCapturePropertyIDPinCodeDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeString | property to get or set the Capture Device PIN code |
| SKTCapturePropertyIDDeletePairingBondingDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeByte | Set deletes pairing and bonding information off the device. Useful when preparing to pair the Capture device to a different host. |
| SKTCapturePropertyIDRestoreFactoryDefaultsDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeNone | Set resets all the settings on the device to their default values. |
| SKTCapturePropertyIDSetPowerOffDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeNone | Set turns the device off |
| SKTCapturePropertyIDButtonsStatusDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | Gets the current state of each button on the device. Consider using kNotificationsDevice to subscribe to button events instead. |
| SKTCapturePropertyIDSoundConfigDevice | Device | SKTCapturePropertyTypeByte | SKTCapturePropertyTypeArray | Gets or sets the sound configuration of the device. There are separate sound configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan sound configuration. |
| SKTCapturePropertyIDTimersDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeArray | Gets or sets the trigger lock and auto-off timers. The trigger lock determines how long the trigger remains locked after decoding data without receiving confirmation. There are two auto-off timers, one for when the device is connected to a host and one for when it is not. |
| SKTCapturePropertyIDLocalAcknowledgmentDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeByte | Gets or sets local device acknowledgement. When enabled, the device acknowledges decoded data as soon as it is decoded. When disabled, the device waits for the host to acknowledge decoded data and the trigger will be locked until acknowledgement is received or the trigger lock timeout has elapsed. |
| SKTCapturePropertyIDDataConfirmationDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeUlong | Sends an acknowledgement to the device. Acknowledgement can either be positive or negative - a.k.a. good scan or bad scan. |
| SKTCapturePropertyIDBatteryLevelDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | Gets the current battery level of the device. Consider using  kNotificationsDevice to subscribe to battery level change events instead. |
| SKTCapturePropertyIDLocalDecodeActionDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeByte | Gets or sets the local decode action of the device. Determines how decoded data is acknowledged - i.e. with a beep, rumble, flash or some combination of all three. |
| SKTCapturePropertyIDBluetoothAddressDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | Gets the Bluetooth address of the device |
| SKTCapturePropertyIDStatisticCountersDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | Gets the statistics counters of the device. Counters record the absolute number of times a particular event has occurred. |
| SKTCapturePropertyIDRumbleConfigDevice | Device | SKTCapturePropertyTypeByte | SKTCapturePropertyTypeArray | Gets or sets the rumble configuration of the device. There are separate rumble configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan rumble configuration. |
| SKTCapturePropertyIDProfileConfigDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeArray | property to get or set the Capture Device Profile Configuration |
| SKTCapturePropertyIDDisconnectDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeByte | Instructs the device to drop its connection. Note: After sending this command, the host will be unable to send any subsequent commands to this device. |
| SKTCapturePropertyIDDataStoreDevice | Device | SKTCapturePropertyTypeArray | SKTCapturePropertyTypeArray | Gets or sets arbitrary bytes to store on the device. The device has 16 storage locations which can hold up to 64 bytes each. |
| SKTCapturePropertyIDNotificationsDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeUlong | Gets or sets subscriptions to various events from the device. Events that can be subscribed to include, trigger press/release, power button press/release, power state and battery level change. |
| SKTCapturePropertyIDConnectReasonDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | property to get the Capture Device Connect reason |
| SKTCapturePropertyIDPowerStateDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | Gets the current power state of the device. Consider using kNotificationsDevice to subscribe to power state events instead. |
| SKTCapturePropertyIDStartUpRoleSPPDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeByte | Gets or sets the reconnect behavior of the device when it is powered on in application mode. By default, the device will attempt to reconnect to the last host, but this feature can be turned off using this property. |
| SKTCapturePropertyIDConnectionBeepConfigDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeByte | property to get or set the Capture Device Connection Beep Configuration. |
| SKTCapturePropertyIDFlashDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeByte | Gets or sets the status of the flash on the SocketCam device. |
| SKTCapturePropertyIDOverlayViewDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeObject | property to get or set the Capture Device Overlay View (SocketCam only) |
| SKTCapturePropertyIDStandConfigDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeUlong | property to get or set the Capture Device Stand Configuration |
| SKTCapturePropertyIDStartDiscovery | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeUlong | property to start a BLE discovery from a Device Manager |
| SKTCapturePropertyIDFavorite | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeString | property to set or get the BLE favorites for a Device Manager |
| SKTCapturePropertyIDUniqueDeviceIdentifier | Device | SKTCapturePropertyTypeString | SKTCapturePropertyTypeNotApplicable | property to get the BLE Unique Device Identifier that can be used to set favorite with |
| SKTCapturePropertyIDPcScTagTransmit | Device | SKTCapturePropertyTypeArray | SKTCapturePropertyTypeArray | property to transmit through PC/SC an array of bytes often called APDU |
| SKTCapturePropertyIDPcScCouplerControl | Device | SKTCapturePropertyTypeArray | SKTCapturePropertyTypeArray | property to control the PC/SC coupler device by passing an array of bytes often called APDU |
| SKTCapturePropertyIDThemeSelectionDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeArray | property to define the theme that is used for the different events: Ready, Read, Read Success, Read Failure UI |
| SKTCapturePropertyIDThemeSelectionMaskDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeArray | property to define the theme selection mask. It applies the theme selection on the given device(s) set with the mask |
| SKTCapturePropertyIDLassoStatusDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeByte | property to define if the Lasso feature is enabled or not |
| SKTCapturePropertyIDLassoIdDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeArray | property to define the Lasso Id for a device |
| SKTCapturePropertyIDLassoLifeSpanDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeUlong | property to define the Lasso life span for a device |
| SKTCapturePropertyIDSinglePartnership | Capture | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeArray | property to get or set a device's Single Partnership connection |
| SKTCapturePropertyIDSinglePartnershipStamp | Capture | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNotApplicable | property to get a stamp from the host for Single Partnership connection |
| SKTCapturePropertyIDResetSinglePartnershipDevice | Device | SKTCapturePropertyTypeNone | SKTCapturePropertyTypeNone | property to reset a device's Single Partnership connection |
| SKTCapturePropertyIDConnectDiscoveredDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeString | property to connect to a discovered BLE device with a Device Manager |
| SKTCapturePropertyIDDisconnectDiscoveredDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeString | property to disconnect from a discovered BLE device with a Device Manager |
| SKTCapturePropertyIDAddDevice | Capture | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeByte | property to add a Bluetooth device (Classic or Low Energy) |
| SKTCapturePropertyIDRemoveDevice | Capture | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeString | property to remove a Bluetooth device (Classic or Low Energy) |
| SKTCapturePropertyIDResetDevice | Device | SKTCapturePropertyTypeNotApplicable | SKTCapturePropertyTypeNone | property to power cycle a Bluetooth LE device when on a power source (e.g. charging). Otherwise it will just power off the device |

## List of the properties values
## Those values are the ones used by CaptureSDK when using properties

**DataConfirmationMode** -  Data Confirmation Mode indicates what is  expected to the send the Data ACK back to the scanner

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureDataConfirmationModeModeOff | 0 |  use the device configuration (Local Confirmation or App)<br /> |
|SKTCaptureDataConfirmationModeModeDevice | 1 |  the device confirms the decoded data locally<br /> |
|SKTCaptureDataConfirmationModeModeCapture | 2 |  Capture confirms the decoded data as it receives them and there is one app<br /> |
|SKTCaptureDataConfirmationModeModeApp | 3 |  the Application confirms the decoded data as it receives them<br /> |

**DeviceDataAcknowledgment** -  Device Data Acknowledgment mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureDeviceDataAcknowledgmentOff | 0 |  the device won't locally acknowledge decoded data<br /> |
|SKTCaptureDeviceDataAcknowledgmentOn | 1 |  the device will locally acknowledge decoded data<br /> |

**SecurityMode** -  Security Mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureSecurityModeNone | 0 |  No security<br /> |
|SKTCaptureSecurityModeAuthentication | 1 |  communication protected by authentication<br /> |
|SKTCaptureSecurityModeAuthenticationEncryption | 2 |  communication protected by authentication and encrytion<br /> |

**Trigger** -  trigger parameter

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureTriggerStart | 1 |  start a read<br /> |
|SKTCaptureTriggerStop | 2 |  stop a read<br /> |
|SKTCaptureTriggerEnable | 3 |  enable the trigger<br /> |
|SKTCaptureTriggerDisable | 4 |  disable the trigger<br /> |
|SKTCaptureTriggerContinuousScan | 5 |  start a read in continuous<br /> |
|SKTCaptureTriggerContinuousScanUntilRead | 6 |  start a read in continuous until a code is read<br /> |

**DeletePairing** -  Delete the pairing of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureDeletePairingCurrent | 0 |  delete the current pairing<br /> |
|SKTCaptureDeletePairingAll | 1 |  delete all the pairing of the device<br /> |

**SoundActionType** -  sound configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureSoundActionTypeGoodRead | 0 |  sound configuration for a good read action<br /> |
|SKTCaptureSoundActionTypeGoodReadLocal | 1 |  sound configuration for a good read local action<br /> |
|SKTCaptureSoundActionTypeBadRead | 2 |  sound configuration for a bad read action<br /> |
|SKTCaptureSoundActionTypeBadReadLocal | 3 |  sound configuration for a bad read local action<br /> |

**SoundFrequency** -  Sound frequency configuration

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureSoundFrequencyNone | 0 |  no frequency<br /> |
|SKTCaptureSoundFrequencyLow | 1 |  Low pitch frequency<br /> |
|SKTCaptureSoundFrequencyMedium | 2 |  Medium pitch frequency<br /> |
|SKTCaptureSoundFrequencyHigh | 3 |  High pitch frequency<br /> |

**RumbleActionType** -  Rumble configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureRumbleActionTypeGoodRead | 0 |  Rumble configuration for a good read action<br /> |
|SKTCaptureRumbleActionTypeGoodReadLocal | 1 |  Rumble configuration for a good read local action<br /> |
|SKTCaptureRumbleActionTypeBadRead | 2 |  Rumble configuration for a bad read action<br /> |
|SKTCaptureRumbleActionTypeBadReadLocal | 3 |  Rumble configuration for a bad read local action<br /> |

**LocalDecodeAction** -  Define the action for a local decode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureLocalDecodeActionNone | 0 |  no action<br /> |
|SKTCaptureLocalDecodeActionBeep | 1 |  Beep when a local decode occurs<br /> |
|SKTCaptureLocalDecodeActionFlash | 2 |  Flash the LED when a local decode occurs<br /> |
|SKTCaptureLocalDecodeActionRumble | 4 |  Rumble when a local decode occurs<br /> |

**DataConfirmationLed** -  Define the LED for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureDataConfirmationLedNone | 0 |  no LED<br /> |
|SKTCaptureDataConfirmationLedGreen | 1 |  make the LED flash in green<br /> |
|SKTCaptureDataConfirmationLedRed | 2 |  make the LED flash in red<br /> |

**DataConfirmationBeep** -  Define the sound for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureDataConfirmationBeepNone | 0 |  no sound<br /> |
|SKTCaptureDataConfirmationBeepGood | 1 |  short beep for success<br /> |
|SKTCaptureDataConfirmationBeepBad | 2 |  long beep for failure<br /> |

**DataConfirmationRumble** -  Define the rumble for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureDataConfirmationRumbleNone | 0 |  no sound<br /> |
|SKTCaptureDataConfirmationRumbleGood | 1 |  short rumble for success<br /> |
|SKTCaptureDataConfirmationRumbleBad | 2 |  long rumble for failure<br /> |

**Flash** -  Define the flash setting

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureFlashOff | 0 |  turn off the flash<br /> |
|SKTCaptureFlashOn | 1 |  turn on the flash<br /> |

**SocketCam** -  Define the SocketCam experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureSocketCamEnable | 0 |  Enable SocketCam<br /> |
|SKTCaptureSocketCamDisable | 1 |  Disable SocketCam<br /> |
|SKTCaptureSocketCamNotSupported | 2 |  SocketCam is not supported, and cannot be enabled<br /> |

**PowerState** -  Define the possible power states

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCapturePowerStateUnknown | 0 |  The power state is unknown<br /> |
|SKTCapturePowerStateOnBattery | 1 |  The power state is on battery<br /> |
|SKTCapturePowerStateOnCradle | 2 |  The power state is on cradle<br /> |
|SKTCapturePowerStateOnAc | 4 |  The power state in on AC<br /> |

**MonitorDbg** -  Define the monitor feature (DEBUG build only)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureMonitorDbgLevel | 1 |  define the level for the debug traces<br /> |
|SKTCaptureMonitorDbgChannel | 2 |  define the output channel for the debug traces<br /> |
|SKTCaptureMonitorDbgFileLineLevel | 3 |  define the number of lines in the file<br /> |

**Counter** -  identifiers for the statistic counters

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureCounterSkip | -1 |  use for convenience only to skip a counter<br /> |
|SKTCaptureCounterUnknown | 0 |  unknow counter<br /> |
|SKTCaptureCounterConnect | 1 |  number of connections<br /> |
|SKTCaptureCounterDisconnect | 2 |  number of disconnections<br /> |
|SKTCaptureCounterUnbound | 3 |  number of unbound operation<br /> |
|SKTCaptureCounterFactoryReset | 4 |  number of reset to factory default<br /> |
|SKTCaptureCounterReads | 5 |  number of reads (scans)<br /> |
|SKTCaptureCounterTriggerButtonUp | 6 |  number of trigger button released<br /> |
|SKTCaptureCounterTriggerButtonDown | 7 |  number of trigger button pressed<br /> |
|SKTCaptureCounterPowerButtonUp | 8 |  number of power button released<br /> |
|SKTCaptureCounterPowerButtonDown | 9 |  number of power button pressed<br /> |
|SKTCaptureCounterOnAcTimeInMinutes | 10 |  number of minutes in AC power<br /> |
|SKTCaptureCounterOnBatTimeInMinutes | 11 |  number of minutes on battery<br /> |
|SKTCaptureCounterRfcommSend | 12 |  number of RFCOMM sent (SSI only)<br /> |
|SKTCaptureCounterRfcommReceive | 13 |  number of RFCOMM received (SSI only)<br /> |
|SKTCaptureCounterRfcommReceiveDiscarded | 14 |  number of RFCOMM discarded (SSI only)<br /> |
|SKTCaptureCounterUartSend | 15 |  number of UART sent (SSI only)<br /> |
|SKTCaptureCounterUartReceive | 16 |  number of UART received (SSI only)<br /> |
|SKTCaptureCounterUartReceiveDiscarded | 17 |  number of UART discarded (SSI only)<br /> |
|SKTCaptureCounterButtonLeftPress | 18 |  number of left button press (CRS only)<br /> |
|SKTCaptureCounterButtonLeftRelease | 19 |  number of left button release (CRS only)<br /> |
|SKTCaptureCounterButtonRightPress | 20 |  number of right button press (CRS only)<br /> |
|SKTCaptureCounterButtonRightRelease | 21 |  number of right button release (CRS only)<br /> |
|SKTCaptureCounterRingUnitDetach | 22 |  number of ring unit detach (CRS only)<br /> |
|SKTCaptureCounterRingUnitAttach | 23 |  number of ring unit attach (CRS only)<br /> |
|SKTCaptureCounterDecodedBytes | 24 |  number of decoded bytes (7x only ISCI)<br /> |
|SKTCaptureCounterAbnormalShutdowns | 25 |  number of abnormal shutdowns (7x only ISCI)<br /> |
|SKTCaptureCounterBatteryChargeCycles | 26 |  number of battery charge cycles (7x only ISCI)<br /> |
|SKTCaptureCounterBatteryChargeCount | 27 |  number of battery charge count (7x only ISCI)<br /> |
|SKTCaptureCounterPowerOn | 28 |  number of power on (only 8Ci)<br /> |
|SKTCaptureCounterPowerOff | 29 |  number of power off (only 8Ci)<br /> |
|SKTCaptureCounterStandModeChange | 30 |  number of stand mode change (only 7X/Q 7630 and higher)<br /> |

**Disconnect** -  Disconnect parameters to instruct the device what to do after disconnection

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureDisconnectStartProfile | 0 |  disconnect and then start the current profile<br /> |
|SKTCaptureDisconnectDisableRadio | 1 |  Disconnect and disable radio (low power)<br /> |
|SKTCaptureDisconnectMakeAvailable | 2 |  Disconnect a device and make it available for a new connection (for Bluetooth Low Energy device)<br /> |

**ProfileSelect** -  Select a profile for the device (None, SPP, HID, Reader, Coupler)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureProfileSelectNone | 0 |  The device is in acceptor mode, not trying to connect to any host<br /> |
|SKTCaptureProfileSelectSpp | 1 |  The device is in App mode<br /> |
|SKTCaptureProfileSelectHid | 2 |  The device is in Basic mode, sometimes referred as Keyboard emulation<br /> |
|SKTCaptureProfileSelectReader | 3 |  The device is in Reader mode, for NFC devices<br /> |
|SKTCaptureProfileSelectCoupler | 4 |  The device is in Coupler mode, for NFC devices<br /> |

**ProfileConfig** -  Configure a profile for the device (None, Acceptor, Initiator)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureProfileConfigNone | 0 |  The device is in either acceptor or initiator mode, meaning not even discoverable<br /> |
|SKTCaptureProfileConfigAcceptor | 1 |  The device is discoverable and will accept any connection<br /> |
|SKTCaptureProfileConfigInitiator | 2 |  The device initiates a connection to the Bluetooth address specified in the Profile Configuration<br /> |

**Notifications** -  Configuration masks for selecting the notifications the device should send to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureNotificationsTriggerButtonPress | 1 |  The device sends a notification when the trigger button is pressed<br /> |
|SKTCaptureNotificationsTriggerButtonRelease | 2 |  The device sends a notification when the trigger button is released<br /> |
|SKTCaptureNotificationsPowerButtonPress | 4 |  The device sends a notification when the power button is pressed<br /> |
|SKTCaptureNotificationsPowerButtonRelease | 8 |  The device sends a notification when the power button is released<br /> |
|SKTCaptureNotificationsPowerState | 16 |  The device sends a notification when the power state changes (battery to AC or vice-versa) (not supported on all device)<br /> |
|SKTCaptureNotificationsBatteryLevelChange | 32 |  The device sends a notification when the battery level changed (not supported on all device)<br /> |

**Timer** -  Identifies the timers used in the device, (trigger lock, disconnected, connected)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureTimerAutoLock | 1 |  The trigger button stays ineffective for the specified amount of time <br /> or until the device receives a data confirmation command.<br /> |
|SKTCaptureTimerPowerOffDisconnected | 2 |  This timer specifies the amount of time the device stays on while it is not connected to any host.<br /> |
|SKTCaptureTimerPowerOffConnected | 4 |  This timer specifies the amount of time the device stays on while it is connected to a host.<br /> |

**DataFormat** -  Identifies the data format the device should send the data to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureDataFormatRaw | 0 |  The device sends the data without any protocol overhead<br /> |
|SKTCaptureDataFormatPacket | 1 |  The device sends the data embedded in a protocol packet (default)<br /> |
|SKTCaptureDataFormatIdOnly | 2 |  The device sends only the RFID tag ID, (valid only for D600 NFC devices)<br /> |
|SKTCaptureDataFormatTagTypeAndId | 10 |  The device sends the tag type and RFID tag ID, (valid only for D600 NFC devices)<br /> |
|SKTCaptureDataFormatDataOnly | 4 |  The device sends only the tag data, (valid only for D600 NFC devices)<br /> |
|SKTCaptureDataFormatTagTypeAndData | 12 |  The device sends the tag type and the tag data, (valid only for D600 NFC devices)<br /> |

**TriggerMode** -  defines the operational mode of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureTriggerModeLocalOnly | 1 |  The device triggers a read only by pressing the trigger button<br /> |
|SKTCaptureTriggerModeRemoteAndLocal | 2 |  The device triggers a read by pressing the trigger button or by receiving the trigger command<br /> |
|SKTCaptureTriggerModeAutoLock | 3 |  the device waits for the host to unlock the trigger<br /> |
|SKTCaptureTriggerModeNormalLock | 4 |  the device locks and unlocks the trigger locally (default)<br /> |
|SKTCaptureTriggerModePresentation | 5 |  The device triggers a read automatically without user intervention<br /> |

**ConnectReason** -  defines the reason as of how the device connects to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureConnectReasonUnknown | 0 |  The device connects to the host from unknown reason<br /> |
|SKTCaptureConnectReasonPowerOn | 1 |  The device connects to the host just after power on<br /> |
|SKTCaptureConnectReasonBarcode | 2 |  The device connects to the host by reading the host address from a barcode<br /> |
|SKTCaptureConnectReasonUserAction | 3 |  The device connects to the host by user action (usually a press on the trigger button)<br /> |
|SKTCaptureConnectReasonHostChange | 4 |  The device connects to the host from a change of the host address in the profile configuration<br /> |
|SKTCaptureConnectReasonRetry | 5 |  The device connects to the host after a retry (device coming back to the radio range)<br /> |

**StartUpRoleSpp** -  The start up role SPP defines the start up role when using the SPP profile.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureStartUpRoleSppAcceptor | 0 |  The device returns to acceptor mode, not initiating a connection to a host.<br /> |
|SKTCaptureStartUpRoleSppLastRole | 1 |  The device uses the last role configuration upon startup.<br /> |

**ConnectBeepConfig** -  The connect beep configuration allows to turn off or on the connection beep when the scanner connects

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureConnectBeepConfigNoBeep | 0 |  The device won't beep upon connection to a host.<br /> |
|SKTCaptureConnectBeepConfigBeep | 1 |  The device beeps when connecting to the host.<br /> |

**StandConfig** -  The stand configuration defines the operational mode of the device when used with a stand.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureStandConfigDisabled | 0 |  Bluetooth Classic:<br /> Disabled the stand config property and sets the scanner as it is intended<br /> Bluetooth LE:<br /> Scanner does not switch to presentation mode<br /> |
|SKTCaptureStandConfigMobileMode | 1 |  Bluetooth Classic:<br /> Mobile mode Works like today existing firmware Engine is always in trigger mode Engine hibernate enabled<br /> Bluetooth LE:<br /> Identical to disabled mode<br /> |
|SKTCaptureStandConfigStandMode | 2 |  Bluetooth Classic:<br /> Stand mode Engine always in presentation mode Engine hibernate<br /> disabled Scanner turns on immediately Power timers disabled Connection retries forever<br /> Bluetooth LE:<br /> The device switches to presentation mode, always, in or out of the stand,<br /> |
|SKTCaptureStandConfigDetectMode | 3 |  Bluetooth Classic:<br /> Detect mode On stand engine in presentation mode On stand engine<br /> hibernate disabled On stand charging led state not show On stand<br /> scanner turns on immediately On stand power timers disabled On stand<br /> connection retries forever Off stand engine in level mode Off stand<br /> battery led state reported Off stand engine hibernate enabled Off stand<br /> power off timers running Off stand connection retries halt after max count<br /> Bluetooth LE:<br /> The device switches in or out of presentation mode when it's in or out respectively from the stand<br /> |
|SKTCaptureStandConfigAutoMode | 4 |  Bluetooth Classic:<br /> Auto mode On stand engine in presentation mode On stand engine hibernate<br /> disabled On stand charging led state not show On stand scanner turns on<br /> immediately On stand power timers disabled On stand connection retries<br /> forever Off stand does nothing, engine remains in presentation mode Off<br /> stand trigger press causes engine to enter level mode Engine in level<br /> mode battery led state reported Engine in level mode hibernate enabled<br /> Engine in level mode power off timers running Engine in level mode<br /> connection retries halt after max count<br /> Bluetooth LE:<br /> Same as DetectMode, but if you use the trigger button while it's out of the stand it switches to a normal trigger operation until it returns to the stand in which it switches to presentation mode.<br /> If it is removed from the stand it stays in presentation mode until the trigger is pressed at least once.<br /> |

**ButtonsState** -  The mask to apply for each button that is pressed

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureButtonsStateLeft | 0x01 |  The left button is pressed.<br /> |
|SKTCaptureButtonsStateRight | 0x02 |  The right button is pressed.<br /> |
|SKTCaptureButtonsStateMiddle | 0x04 |  The middle button is pressed.<br /> |
|SKTCaptureButtonsStatePower | 0x08 |  The power button is pressed.<br /> |
|SKTCaptureButtonsStateRingDetach | 0x16 |  The Ring is detached from the wrist unit.<br /> |

**ThemeSelection** -  The mask to apply for each theme

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureThemeSelectionNone | 0 |  No theme.<br /> |
|SKTCaptureThemeSelectionHealth | 1 |  The Health theme.<br /> |
|SKTCaptureThemeSelectionAccess | 2 |  The Access theme.<br /> |
|SKTCaptureThemeSelectionValue | 3 |  The Value theme.<br /> |
|SKTCaptureThemeSelectionMembership | 4 |  The Membership theme.<br /> |

**ThemeSelectionMask** -  Mask for the Theme selection property. It applies the theme selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureThemeSelectionMaskDefault | 0x01 |  Mask applied on the Default device<br /> |
|SKTCaptureThemeSelectionMaskNfc | 0x02 |  Mask applied on the Nfc device<br /> |
|SKTCaptureThemeSelectionMaskDefaultNfc | 0x03 |  Mask applied on the Default and Nfc devices<br /> |
|SKTCaptureThemeSelectionMaskBarcode | 0x04 |  Mask applied on the Barcode device<br /> |
|SKTCaptureThemeSelectionMaskDefaultBarcode | 0x05 |  Mask applied on the Default and Barcode devices<br /> |
|SKTCaptureThemeSelectionMaskNfcBarcode | 0x06 |  Mask applied on the Nfc and Barcode devices<br /> |
|SKTCaptureThemeSelectionMaskAll | 0x07 |  Mask applied on the Default, Nfc and Barcode devices<br /> |

**LassoDeviceStatus** -  Define the Lasso experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureLassoDeviceStatusDisable | 0 |  Disable Lasso<br /> |
|SKTCaptureLassoDeviceStatusEnable | 1 |  Enable Lasso<br /> |

**SinglePartnership** -  Define the Single Partnership experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureSinglePartnershipDisable | 0 |  Disable Single Partnership<br /> |
|SKTCaptureSinglePartnershipWebApi | 1 |  Get a Single Partnership through our Web API<br /> |
|SKTCaptureSinglePartnershipWebUI | 2 |  Show a Single Partnership QRcode through our Web UI<br /> |
|SKTCaptureSinglePartnershipUuid | 3 |  Set your own Service UUID for a Single Partnership<br /> |
|SKTCaptureSinglePartnershipWebUIPrompt | 4 |  Show a Single Partnership Web UI where you can input information about the device<br /> |
|SKTCaptureSinglePartnershipDeviceId | 5 |  Set your own Device Id that will return a Single Partnership Web page with a QRcode to scan<br /> |

**BluetoothDiscoveryMode** -  The Bluetooth technology used to make a discovery of devices in the vicinity

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureBluetoothDiscoveryModeBluetoothLowEnergy | 0x01 |  Discovery for Bluetooth LE devices such as S550, S370, S320, S721.<br /> |
|SKTCaptureBluetoothDiscoveryModeBluetoothClassic | 0x02 |  Discovery for Bluetooth Classic devices.<br /> |

**DecodeLocalActionSelectionMask** -  Mask for the Decode Local Action selection property. It applies the decode local action selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|SKTCaptureDecodeLocalActionSelectionMaskGood | 0x01 |  Mask applied on the Good local decode action result<br /> |
|SKTCaptureDecodeLocalActionSelectionMaskBad | 0x02 |  Mask applied on the Bad local decode action result<br /> |

## Swift

## List of properties types
## Defines the property value type. Properties can have value of different type or no value at all

| Type name | Description |
| :---------------- | :----- |
| none | for capture properties that don't have any value |
| notApplicable | for capture properties that don't have a value for either a get operation or a set operation or neither of them. |
| byte | the property has a byte value |
| ulong | the property has a unsigned long value |
| array | the property has a byte array value |
| string | the property has a string value |
| version | the property has a version structure as value (read only) |
| dataSource | the property has a data source structure as value |
| Enum | the property has an enum value |
| object | the property has an object as value |
| lastType | the property type should not be equal or higher that kLast otherwise it means the SDK is not in sync with the actual version of Socket Mobile Companion running on the host |

## List of the properties
## Those properties are the ones used by CaptureSDK to get and set different types of values

| Property name | Capture or Device Property | Property Get type | Property Set type | Description |
| :---------------- | :----- |:----- | :----- | :----- |
| abort | Capture | notApplicable | none | Set to notify Capture that the client is shutting down gracefully. Capture will send device removal events followed by a terminate event. Once you receive the terminate event, it is safe to shut down Capture. |
| version | Capture | none | notApplicable | Gets the Capture service version. |
| interfaceVersion | Capture | none | notApplicable | Gets the version of the firmware interface that Capture service supports. This can be useful for determining if the Capture service supports a particular hardware feature. |
| configuration | Capture | string | string | property to set or get the Capture configuration |
| dataConfirmationMode | Capture | none | byte | Gets or sets the data confirmation mode. The data confirmation mode determines who acknowledges whether the data received was good or bad. |
| dataConfirmationAction | Capture | none | ulong | Gets or sets the data confirmation action. Data confirmation action determines how good or bad data is acknowledged. |
| monitorMode | Capture | byte | array | Gets or sets the log level of various Capture service components (Only works on debug builds of the service). |
| socketCamStatus | Capture | none | byte | property to get or set the SocketCam status |
| versionDevice | Device | none | notApplicable | Gets the firmware version of the device |
| deviceType | Device | none | notApplicable | Gets the model of the device |
| deviceSpecific | Device | array | array | Sends an arbitrary get or set command to the device |
| dataSourceDevice | Device | dataSource | dataSource | property to get or set the data source status / information |
| triggerDevice | Device | notApplicable | byte | Sets the trigger of the device - can start or stop a read and enable or disable the physical trigger button on the device. |
| applyConfigDevice | Device | notApplicable | none | property to apply a config to a Capture Device (not yet enabled) |
| preambleDevice | Device | none | string | Gets or sets a preamble for data decoded by the device. When set, the preamble is added in front of the decoded data. |
| postambleDevice | Device | none | string | Gets or sets a postamble for data decoded by the device. When set, the postamble is added to the end of the decoded data. |
| capabilitiesDevice | Device | byte | notApplicable | property to get the Capture Device capabilities |
| changeIdDevice | Device | none | notApplicable | Gets the change id of the device. The change id is a checksum of all the engine settings - e.g. symbology settings, preamble, postamble, etc - and can be used to determine if the device configuration has been altered by another application or using a command barcode. |
| dataFormatDevice | Device | none | byte | property to get or set the Decoded Data Format of a Capture Device |
| friendlyNameDevice | Device | none | string | Gets or sets the friendly name of the device. The friendly name is the name that appears in Bluetooth settings. |
| securityModeDevice | Device | none | byte | property to get or set the Capture Device Security Mode |
| pinCodeDevice | Device | notApplicable | string | property to get or set the Capture Device PIN code |
| deletePairingBondingDevice | Device | notApplicable | byte | Set deletes pairing and bonding information off the device. Useful when preparing to pair the Capture device to a different host. |
| restoreFactoryDefaultsDevice | Device | notApplicable | none | Set resets all the settings on the device to their default values. |
| setPowerOffDevice | Device | notApplicable | none | Set turns the device off |
| buttonsStatusDevice | Device | none | notApplicable | Gets the current state of each button on the device. Consider using kNotificationsDevice to subscribe to button events instead. |
| soundConfigDevice | Device | byte | array | Gets or sets the sound configuration of the device. There are separate sound configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan sound configuration. |
| timersDevice | Device | none | array | Gets or sets the trigger lock and auto-off timers. The trigger lock determines how long the trigger remains locked after decoding data without receiving confirmation. There are two auto-off timers, one for when the device is connected to a host and one for when it is not. |
| localAcknowledgmentDevice | Device | none | byte | Gets or sets local device acknowledgement. When enabled, the device acknowledges decoded data as soon as it is decoded. When disabled, the device waits for the host to acknowledge decoded data and the trigger will be locked until acknowledgement is received or the trigger lock timeout has elapsed. |
| dataConfirmationDevice | Device | notApplicable | ulong | Sends an acknowledgement to the device. Acknowledgement can either be positive or negative - a.k.a. good scan or bad scan. |
| batteryLevelDevice | Device | none | notApplicable | Gets the current battery level of the device. Consider using  kNotificationsDevice to subscribe to battery level change events instead. |
| localDecodeActionDevice | Device | none | byte | Gets or sets the local decode action of the device. Determines how decoded data is acknowledged - i.e. with a beep, rumble, flash or some combination of all three. |
| bluetoothAddressDevice | Device | none | notApplicable | Gets the Bluetooth address of the device |
| statisticCountersDevice | Device | none | notApplicable | Gets the statistics counters of the device. Counters record the absolute number of times a particular event has occurred. |
| rumbleConfigDevice | Device | byte | array | Gets or sets the rumble configuration of the device. There are separate rumble configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan rumble configuration. |
| profileConfigDevice | Device | none | array | property to get or set the Capture Device Profile Configuration |
| disconnectDevice | Device | notApplicable | byte | Instructs the device to drop its connection. Note: After sending this command, the host will be unable to send any subsequent commands to this device. |
| dataStoreDevice | Device | array | array | Gets or sets arbitrary bytes to store on the device. The device has 16 storage locations which can hold up to 64 bytes each. |
| notificationsDevice | Device | none | ulong | Gets or sets subscriptions to various events from the device. Events that can be subscribed to include, trigger press/release, power button press/release, power state and battery level change. |
| connectReasonDevice | Device | none | notApplicable | property to get the Capture Device Connect reason |
| powerStateDevice | Device | none | notApplicable | Gets the current power state of the device. Consider using kNotificationsDevice to subscribe to power state events instead. |
| startUpRoleSPPDevice | Device | none | byte | Gets or sets the reconnect behavior of the device when it is powered on in application mode. By default, the device will attempt to reconnect to the last host, but this feature can be turned off using this property. |
| connectionBeepConfigDevice | Device | none | byte | property to get or set the Capture Device Connection Beep Configuration. |
| flashDevice | Device | none | byte | Gets or sets the status of the flash on the SocketCam device. |
| overlayViewDevice | Device | none | object | property to get or set the Capture Device Overlay View (SocketCam only) |
| standConfigDevice | Device | none | ulong | property to get or set the Capture Device Stand Configuration |
| startDiscovery | Device | notApplicable | ulong | property to start a BLE discovery from a Device Manager |
| favorite | Device | none | string | property to set or get the BLE favorites for a Device Manager |
| uniqueDeviceIdentifier | Device | string | notApplicable | property to get the BLE Unique Device Identifier that can be used to set favorite with |
| pcScTagTransmit | Device | array | array | property to transmit through PC/SC an array of bytes often called APDU |
| pcScCouplerControl | Device | array | array | property to control the PC/SC coupler device by passing an array of bytes often called APDU |
| themeSelectionDevice | Device | none | array | property to define the theme that is used for the different events: Ready, Read, Read Success, Read Failure UI |
| themeSelectionMaskDevice | Device | none | array | property to define the theme selection mask. It applies the theme selection on the given device(s) set with the mask |
| lassoStatusDevice | Device | none | byte | property to define if the Lasso feature is enabled or not |
| lassoIdDevice | Device | notApplicable | array | property to define the Lasso Id for a device |
| lassoLifeSpanDevice | Device | none | ulong | property to define the Lasso life span for a device |
| singlePartnership | Capture | none | array | property to get or set a device's Single Partnership connection |
| singlePartnershipStamp | Capture | none | notApplicable | property to get a stamp from the host for Single Partnership connection |
| resetSinglePartnershipDevice | Device | none | none | property to reset a device's Single Partnership connection |
| connectDiscoveredDevice | Device | notApplicable | string | property to connect to a discovered BLE device with a Device Manager |
| disconnectDiscoveredDevice | Device | notApplicable | string | property to disconnect from a discovered BLE device with a Device Manager |
| addDevice | Capture | notApplicable | byte | property to add a Bluetooth device (Classic or Low Energy) |
| removeDevice | Capture | notApplicable | string | property to remove a Bluetooth device (Classic or Low Energy) |
| resetDevice | Device | notApplicable | none | property to power cycle a Bluetooth LE device when on a power source (e.g. charging). Otherwise it will just power off the device |

## List of the properties values
## Those values are the ones used by CaptureSDK when using properties

**DataConfirmationMode** -  Data Confirmation Mode indicates what is  expected to the send the Data ACK back to the scanner

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|modeOff | 0 |  use the device configuration (Local Confirmation or App)<br /> |
|modeDevice | 1 |  the device confirms the decoded data locally<br /> |
|modeCapture | 2 |  Capture confirms the decoded data as it receives them and there is one app<br /> |
|modeApp | 3 |  the Application confirms the decoded data as it receives them<br /> |

**DeviceDataAcknowledgment** -  Device Data Acknowledgment mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|off | 0 |  the device won't locally acknowledge decoded data<br /> |
|on | 1 |  the device will locally acknowledge decoded data<br /> |

**SecurityMode** -  Security Mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  No security<br /> |
|authentication | 1 |  communication protected by authentication<br /> |
|authenticationEncryption | 2 |  communication protected by authentication and encrytion<br /> |

**Trigger** -  trigger parameter

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|start | 1 |  start a read<br /> |
|stop | 2 |  stop a read<br /> |
|enable | 3 |  enable the trigger<br /> |
|disable | 4 |  disable the trigger<br /> |
|continuousScan | 5 |  start a read in continuous<br /> |
|continuousScanUntilRead | 6 |  start a read in continuous until a code is read<br /> |

**DeletePairing** -  Delete the pairing of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|current | 0 |  delete the current pairing<br /> |
|all | 1 |  delete all the pairing of the device<br /> |

**SoundActionType** -  sound configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|goodRead | 0 |  sound configuration for a good read action<br /> |
|goodReadLocal | 1 |  sound configuration for a good read local action<br /> |
|badRead | 2 |  sound configuration for a bad read action<br /> |
|badReadLocal | 3 |  sound configuration for a bad read local action<br /> |

**SoundFrequency** -  Sound frequency configuration

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  no frequency<br /> |
|low | 1 |  Low pitch frequency<br /> |
|medium | 2 |  Medium pitch frequency<br /> |
|high | 3 |  High pitch frequency<br /> |

**RumbleActionType** -  Rumble configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|goodRead | 0 |  Rumble configuration for a good read action<br /> |
|goodReadLocal | 1 |  Rumble configuration for a good read local action<br /> |
|badRead | 2 |  Rumble configuration for a bad read action<br /> |
|badReadLocal | 3 |  Rumble configuration for a bad read local action<br /> |

**LocalDecodeAction** -  Define the action for a local decode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  no action<br /> |
|beep | 1 |  Beep when a local decode occurs<br /> |
|flash | 2 |  Flash the LED when a local decode occurs<br /> |
|rumble | 4 |  Rumble when a local decode occurs<br /> |

**DataConfirmationLed** -  Define the LED for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  no LED<br /> |
|green | 1 |  make the LED flash in green<br /> |
|red | 2 |  make the LED flash in red<br /> |

**DataConfirmationBeep** -  Define the sound for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  no sound<br /> |
|good | 1 |  short beep for success<br /> |
|bad | 2 |  long beep for failure<br /> |

**DataConfirmationRumble** -  Define the rumble for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  no sound<br /> |
|good | 1 |  short rumble for success<br /> |
|bad | 2 |  long rumble for failure<br /> |

**Flash** -  Define the flash setting

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|off | 0 |  turn off the flash<br /> |
|on | 1 |  turn on the flash<br /> |

**SocketCam** -  Define the SocketCam experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|enable | 0 |  Enable SocketCam<br /> |
|disable | 1 |  Disable SocketCam<br /> |
|notSupported | 2 |  SocketCam is not supported, and cannot be enabled<br /> |

**PowerState** -  Define the possible power states

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|unknown | 0 |  The power state is unknown<br /> |
|onBattery | 1 |  The power state is on battery<br /> |
|onCradle | 2 |  The power state is on cradle<br /> |
|onAc | 4 |  The power state in on AC<br /> |

**MonitorDbg** -  Define the monitor feature (DEBUG build only)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|level | 1 |  define the level for the debug traces<br /> |
|channel | 2 |  define the output channel for the debug traces<br /> |
|fileLineLevel | 3 |  define the number of lines in the file<br /> |

**Counter** -  identifiers for the statistic counters

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|skip | -1 |  use for convenience only to skip a counter<br /> |
|unknown | 0 |  unknow counter<br /> |
|connect | 1 |  number of connections<br /> |
|disconnect | 2 |  number of disconnections<br /> |
|unbound | 3 |  number of unbound operation<br /> |
|factoryReset | 4 |  number of reset to factory default<br /> |
|reads | 5 |  number of reads (scans)<br /> |
|triggerButtonUp | 6 |  number of trigger button released<br /> |
|triggerButtonDown | 7 |  number of trigger button pressed<br /> |
|powerButtonUp | 8 |  number of power button released<br /> |
|powerButtonDown | 9 |  number of power button pressed<br /> |
|onAcTimeInMinutes | 10 |  number of minutes in AC power<br /> |
|onBatTimeInMinutes | 11 |  number of minutes on battery<br /> |
|rfcommSend | 12 |  number of RFCOMM sent (SSI only)<br /> |
|rfcommReceive | 13 |  number of RFCOMM received (SSI only)<br /> |
|rfcommReceiveDiscarded | 14 |  number of RFCOMM discarded (SSI only)<br /> |
|uartSend | 15 |  number of UART sent (SSI only)<br /> |
|uartReceive | 16 |  number of UART received (SSI only)<br /> |
|uartReceiveDiscarded | 17 |  number of UART discarded (SSI only)<br /> |
|buttonLeftPress | 18 |  number of left button press (CRS only)<br /> |
|buttonLeftRelease | 19 |  number of left button release (CRS only)<br /> |
|buttonRightPress | 20 |  number of right button press (CRS only)<br /> |
|buttonRightRelease | 21 |  number of right button release (CRS only)<br /> |
|ringUnitDetach | 22 |  number of ring unit detach (CRS only)<br /> |
|ringUnitAttach | 23 |  number of ring unit attach (CRS only)<br /> |
|decodedBytes | 24 |  number of decoded bytes (7x only ISCI)<br /> |
|abnormalShutdowns | 25 |  number of abnormal shutdowns (7x only ISCI)<br /> |
|batteryChargeCycles | 26 |  number of battery charge cycles (7x only ISCI)<br /> |
|batteryChargeCount | 27 |  number of battery charge count (7x only ISCI)<br /> |
|powerOn | 28 |  number of power on (only 8Ci)<br /> |
|powerOff | 29 |  number of power off (only 8Ci)<br /> |
|standModeChange | 30 |  number of stand mode change (only 7X/Q 7630 and higher)<br /> |

**Disconnect** -  Disconnect parameters to instruct the device what to do after disconnection

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|startProfile | 0 |  disconnect and then start the current profile<br /> |
|disableRadio | 1 |  Disconnect and disable radio (low power)<br /> |
|makeAvailable | 2 |  Disconnect a device and make it available for a new connection (for Bluetooth Low Energy device)<br /> |

**ProfileSelect** -  Select a profile for the device (None, SPP, HID, Reader, Coupler)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  The device is in acceptor mode, not trying to connect to any host<br /> |
|spp | 1 |  The device is in App mode<br /> |
|hid | 2 |  The device is in Basic mode, sometimes referred as Keyboard emulation<br /> |
|reader | 3 |  The device is in Reader mode, for NFC devices<br /> |
|coupler | 4 |  The device is in Coupler mode, for NFC devices<br /> |

**ProfileConfig** -  Configure a profile for the device (None, Acceptor, Initiator)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  The device is in either acceptor or initiator mode, meaning not even discoverable<br /> |
|acceptor | 1 |  The device is discoverable and will accept any connection<br /> |
|initiator | 2 |  The device initiates a connection to the Bluetooth address specified in the Profile Configuration<br /> |

**Notifications** -  Configuration masks for selecting the notifications the device should send to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|triggerButtonPress | 1 |  The device sends a notification when the trigger button is pressed<br /> |
|triggerButtonRelease | 2 |  The device sends a notification when the trigger button is released<br /> |
|powerButtonPress | 4 |  The device sends a notification when the power button is pressed<br /> |
|powerButtonRelease | 8 |  The device sends a notification when the power button is released<br /> |
|powerState | 16 |  The device sends a notification when the power state changes (battery to AC or vice-versa) (not supported on all device)<br /> |
|batteryLevelChange | 32 |  The device sends a notification when the battery level changed (not supported on all device)<br /> |

**Timer** -  Identifies the timers used in the device, (trigger lock, disconnected, connected)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|autoLock | 1 |  The trigger button stays ineffective for the specified amount of time <br /> or until the device receives a data confirmation command.<br /> |
|powerOffDisconnected | 2 |  This timer specifies the amount of time the device stays on while it is not connected to any host.<br /> |
|powerOffConnected | 4 |  This timer specifies the amount of time the device stays on while it is connected to a host.<br /> |

**DataFormat** -  Identifies the data format the device should send the data to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|raw | 0 |  The device sends the data without any protocol overhead<br /> |
|packet | 1 |  The device sends the data embedded in a protocol packet (default)<br /> |
|idOnly | 2 |  The device sends only the RFID tag ID, (valid only for D600 NFC devices)<br /> |
|tagTypeAndId | 10 |  The device sends the tag type and RFID tag ID, (valid only for D600 NFC devices)<br /> |
|dataOnly | 4 |  The device sends only the tag data, (valid only for D600 NFC devices)<br /> |
|tagTypeAndData | 12 |  The device sends the tag type and the tag data, (valid only for D600 NFC devices)<br /> |

**TriggerMode** -  defines the operational mode of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|localOnly | 1 |  The device triggers a read only by pressing the trigger button<br /> |
|remoteAndLocal | 2 |  The device triggers a read by pressing the trigger button or by receiving the trigger command<br /> |
|autoLock | 3 |  the device waits for the host to unlock the trigger<br /> |
|normalLock | 4 |  the device locks and unlocks the trigger locally (default)<br /> |
|presentation | 5 |  The device triggers a read automatically without user intervention<br /> |

**ConnectReason** -  defines the reason as of how the device connects to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|unknown | 0 |  The device connects to the host from unknown reason<br /> |
|powerOn | 1 |  The device connects to the host just after power on<br /> |
|barcode | 2 |  The device connects to the host by reading the host address from a barcode<br /> |
|userAction | 3 |  The device connects to the host by user action (usually a press on the trigger button)<br /> |
|hostChange | 4 |  The device connects to the host from a change of the host address in the profile configuration<br /> |
|retry | 5 |  The device connects to the host after a retry (device coming back to the radio range)<br /> |

**StartUpRoleSpp** -  The start up role SPP defines the start up role when using the SPP profile.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|acceptor | 0 |  The device returns to acceptor mode, not initiating a connection to a host.<br /> |
|lastRole | 1 |  The device uses the last role configuration upon startup.<br /> |

**ConnectBeepConfig** -  The connect beep configuration allows to turn off or on the connection beep when the scanner connects

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|noBeep | 0 |  The device won't beep upon connection to a host.<br /> |
|beep | 1 |  The device beeps when connecting to the host.<br /> |

**StandConfig** -  The stand configuration defines the operational mode of the device when used with a stand.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|disabled | 0 |  Bluetooth Classic:<br /> Disabled the stand config property and sets the scanner as it is intended<br /> Bluetooth LE:<br /> Scanner does not switch to presentation mode<br /> |
|mobileMode | 1 |  Bluetooth Classic:<br /> Mobile mode Works like today existing firmware Engine is always in trigger mode Engine hibernate enabled<br /> Bluetooth LE:<br /> Identical to disabled mode<br /> |
|standMode | 2 |  Bluetooth Classic:<br /> Stand mode Engine always in presentation mode Engine hibernate<br /> disabled Scanner turns on immediately Power timers disabled Connection retries forever<br /> Bluetooth LE:<br /> The device switches to presentation mode, always, in or out of the stand,<br /> |
|detectMode | 3 |  Bluetooth Classic:<br /> Detect mode On stand engine in presentation mode On stand engine<br /> hibernate disabled On stand charging led state not show On stand<br /> scanner turns on immediately On stand power timers disabled On stand<br /> connection retries forever Off stand engine in level mode Off stand<br /> battery led state reported Off stand engine hibernate enabled Off stand<br /> power off timers running Off stand connection retries halt after max count<br /> Bluetooth LE:<br /> The device switches in or out of presentation mode when it's in or out respectively from the stand<br /> |
|autoMode | 4 |  Bluetooth Classic:<br /> Auto mode On stand engine in presentation mode On stand engine hibernate<br /> disabled On stand charging led state not show On stand scanner turns on<br /> immediately On stand power timers disabled On stand connection retries<br /> forever Off stand does nothing, engine remains in presentation mode Off<br /> stand trigger press causes engine to enter level mode Engine in level<br /> mode battery led state reported Engine in level mode hibernate enabled<br /> Engine in level mode power off timers running Engine in level mode<br /> connection retries halt after max count<br /> Bluetooth LE:<br /> Same as DetectMode, but if you use the trigger button while it's out of the stand it switches to a normal trigger operation until it returns to the stand in which it switches to presentation mode.<br /> If it is removed from the stand it stays in presentation mode until the trigger is pressed at least once.<br /> |

**ButtonsState** -  The mask to apply for each button that is pressed

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|left | 1 |  The left button is pressed.<br /> |
|right | 2 |  The right button is pressed.<br /> |
|middle | 4 |  The middle button is pressed.<br /> |
|power | 8 |  The power button is pressed.<br /> |
|ringDetach | 16 |  The Ring is detached from the wrist unit.<br /> |

**ThemeSelection** -  The mask to apply for each theme

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|none | 0 |  No theme.<br /> |
|health | 1 |  The Health theme.<br /> |
|access | 2 |  The Access theme.<br /> |
|value | 3 |  The Value theme.<br /> |
|membership | 4 |  The Membership theme.<br /> |

**ThemeSelectionMask** -  Mask for the Theme selection property. It applies the theme selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|default | 1 |  Mask applied on the Default device<br /> |
|nfc | 2 |  Mask applied on the Nfc device<br /> |
|defaultNfc | 3 |  Mask applied on the Default and Nfc devices<br /> |
|barcode | 4 |  Mask applied on the Barcode device<br /> |
|defaultBarcode | 5 |  Mask applied on the Default and Barcode devices<br /> |
|nfcBarcode | 6 |  Mask applied on the Nfc and Barcode devices<br /> |
|all | 7 |  Mask applied on the Default, Nfc and Barcode devices<br /> |

**LassoDeviceStatus** -  Define the Lasso experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|disable | 0 |  Disable Lasso<br /> |
|enable | 1 |  Enable Lasso<br /> |

**SinglePartnership** -  Define the Single Partnership experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|disable | 0 |  Disable Single Partnership<br /> |
|webApi | 1 |  Get a Single Partnership through our Web API<br /> |
|webUI | 2 |  Show a Single Partnership QRcode through our Web UI<br /> |
|uuid | 3 |  Set your own Service UUID for a Single Partnership<br /> |
|webUIPrompt | 4 |  Show a Single Partnership Web UI where you can input information about the device<br /> |
|deviceId | 5 |  Set your own Device Id that will return a Single Partnership Web page with a QRcode to scan<br /> |

**BluetoothDiscoveryMode** -  The Bluetooth technology used to make a discovery of devices in the vicinity

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|bluetoothLowEnergy | 1 |  Discovery for Bluetooth LE devices such as S550, S370, S320, S721.<br /> |
|bluetoothClassic | 2 |  Discovery for Bluetooth Classic devices.<br /> |

**DecodeLocalActionSelectionMask** -  Mask for the Decode Local Action selection property. It applies the decode local action selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|good | 1 |  Mask applied on the Good local decode action result<br /> |
|bad | 2 |  Mask applied on the Bad local decode action result<br /> |

## TypeScript

## List of properties types
## Defines the property value type. Properties can have value of different type or no value at all

| Type name | Description |
| :---------------- | :----- |
| None | for capture properties that don't have any value |
| NotApplicable | for capture properties that don't have a value for either a get operation or a set operation or neither of them. |
| Byte | the property has a byte value |
| Ulong | the property has a unsigned long value |
| Array | the property has a byte array value |
| String | the property has a string value |
| Version | the property has a version structure as value (read only) |
| DataSource | the property has a data source structure as value |
| Enum | the property has an enum value |
| Object | the property has an object as value |
| LastType | the property type should not be equal or higher that kLast otherwise it means the SDK is not in sync with the actual version of Socket Mobile Companion running on the host |

## List of the properties
## Those properties are the ones used by CaptureSDK to get and set different types of values

| Property name | Capture or Device Property | Property Get type | Property Set type | Description |
| :---------------- | :----- |:----- | :----- | :----- |
| Abort | Capture | NotApplicable | None | Set to notify Capture that the client is shutting down gracefully. Capture will send device removal events followed by a terminate event. Once you receive the terminate event, it is safe to shut down Capture. |
| Version | Capture | None | NotApplicable | Gets the Capture service version. |
| InterfaceVersion | Capture | None | NotApplicable | Gets the version of the firmware interface that Capture service supports. This can be useful for determining if the Capture service supports a particular hardware feature. |
| Configuration | Capture | String | String | property to set or get the Capture configuration |
| DataConfirmationMode | Capture | None | Byte | Gets or sets the data confirmation mode. The data confirmation mode determines who acknowledges whether the data received was good or bad. |
| DataConfirmationAction | Capture | None | Ulong | Gets or sets the data confirmation action. Data confirmation action determines how good or bad data is acknowledged. |
| MonitorMode | Capture | Byte | Array | Gets or sets the log level of various Capture service components (Only works on debug builds of the service). |
| SocketCamStatus | Capture | None | Byte | property to get or set the SocketCam status |
| VersionDevice | Device | None | NotApplicable | Gets the firmware version of the device |
| DeviceType | Device | None | NotApplicable | Gets the model of the device |
| DeviceSpecific | Device | Array | Array | Sends an arbitrary get or set command to the device |
| DataSourceDevice | Device | DataSource | DataSource | property to get or set the data source status / information |
| TriggerDevice | Device | NotApplicable | Byte | Sets the trigger of the device - can start or stop a read and enable or disable the physical trigger button on the device. |
| ApplyConfigDevice | Device | NotApplicable | None | property to apply a config to a Capture Device (not yet enabled) |
| PreambleDevice | Device | None | String | Gets or sets a preamble for data decoded by the device. When set, the preamble is added in front of the decoded data. |
| PostambleDevice | Device | None | String | Gets or sets a postamble for data decoded by the device. When set, the postamble is added to the end of the decoded data. |
| CapabilitiesDevice | Device | Byte | NotApplicable | property to get the Capture Device capabilities |
| ChangeIdDevice | Device | None | NotApplicable | Gets the change id of the device. The change id is a checksum of all the engine settings - e.g. symbology settings, preamble, postamble, etc - and can be used to determine if the device configuration has been altered by another application or using a command barcode. |
| DataFormatDevice | Device | None | Byte | property to get or set the Decoded Data Format of a Capture Device |
| FriendlyNameDevice | Device | None | String | Gets or sets the friendly name of the device. The friendly name is the name that appears in Bluetooth settings. |
| SecurityModeDevice | Device | None | Byte | property to get or set the Capture Device Security Mode |
| PinCodeDevice | Device | NotApplicable | String | property to get or set the Capture Device PIN code |
| DeletePairingBondingDevice | Device | NotApplicable | Byte | Set deletes pairing and bonding information off the device. Useful when preparing to pair the Capture device to a different host. |
| RestoreFactoryDefaultsDevice | Device | NotApplicable | None | Set resets all the settings on the device to their default values. |
| SetPowerOffDevice | Device | NotApplicable | None | Set turns the device off |
| ButtonsStatusDevice | Device | None | NotApplicable | Gets the current state of each button on the device. Consider using kNotificationsDevice to subscribe to button events instead. |
| SoundConfigDevice | Device | Byte | Array | Gets or sets the sound configuration of the device. There are separate sound configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan sound configuration. |
| TimersDevice | Device | None | Array | Gets or sets the trigger lock and auto-off timers. The trigger lock determines how long the trigger remains locked after decoding data without receiving confirmation. There are two auto-off timers, one for when the device is connected to a host and one for when it is not. |
| LocalAcknowledgmentDevice | Device | None | Byte | Gets or sets local device acknowledgement. When enabled, the device acknowledges decoded data as soon as it is decoded. When disabled, the device waits for the host to acknowledge decoded data and the trigger will be locked until acknowledgement is received or the trigger lock timeout has elapsed. |
| DataConfirmationDevice | Device | NotApplicable | Ulong | Sends an acknowledgement to the device. Acknowledgement can either be positive or negative - a.k.a. good scan or bad scan. |
| BatteryLevelDevice | Device | None | NotApplicable | Gets the current battery level of the device. Consider using  kNotificationsDevice to subscribe to battery level change events instead. |
| LocalDecodeActionDevice | Device | None | Byte | Gets or sets the local decode action of the device. Determines how decoded data is acknowledged - i.e. with a beep, rumble, flash or some combination of all three. |
| BluetoothAddressDevice | Device | None | NotApplicable | Gets the Bluetooth address of the device |
| StatisticCountersDevice | Device | None | NotApplicable | Gets the statistics counters of the device. Counters record the absolute number of times a particular event has occurred. |
| RumbleConfigDevice | Device | Byte | Array | Gets or sets the rumble configuration of the device. There are separate rumble configurations for when a good scan is acknowledged locally (by the Capture device) and when it is acknowledged by the host. The same applies to the bad scan rumble configuration. |
| ProfileConfigDevice | Device | None | Array | property to get or set the Capture Device Profile Configuration |
| DisconnectDevice | Device | NotApplicable | Byte | Instructs the device to drop its connection. Note: After sending this command, the host will be unable to send any subsequent commands to this device. |
| DataStoreDevice | Device | Array | Array | Gets or sets arbitrary bytes to store on the device. The device has 16 storage locations which can hold up to 64 bytes each. |
| NotificationsDevice | Device | None | Ulong | Gets or sets subscriptions to various events from the device. Events that can be subscribed to include, trigger press/release, power button press/release, power state and battery level change. |
| ConnectReasonDevice | Device | None | NotApplicable | property to get the Capture Device Connect reason |
| PowerStateDevice | Device | None | NotApplicable | Gets the current power state of the device. Consider using kNotificationsDevice to subscribe to power state events instead. |
| StartUpRoleSPPDevice | Device | None | Byte | Gets or sets the reconnect behavior of the device when it is powered on in application mode. By default, the device will attempt to reconnect to the last host, but this feature can be turned off using this property. |
| ConnectionBeepConfigDevice | Device | None | Byte | property to get or set the Capture Device Connection Beep Configuration. |
| FlashDevice | Device | None | Byte | Gets or sets the status of the flash on the SocketCam device. |
| OverlayViewDevice | Device | None | Object | property to get or set the Capture Device Overlay View (SocketCam only) |
| StandConfigDevice | Device | None | Ulong | property to get or set the Capture Device Stand Configuration |
| StartDiscovery | Device | NotApplicable | Ulong | property to start a BLE discovery from a Device Manager |
| Favorite | Device | None | String | property to set or get the BLE favorites for a Device Manager |
| UniqueDeviceIdentifier | Device | String | NotApplicable | property to get the BLE Unique Device Identifier that can be used to set favorite with |
| PcScTagTransmit | Device | Array | Array | property to transmit through PC/SC an array of bytes often called APDU |
| PcScCouplerControl | Device | Array | Array | property to control the PC/SC coupler device by passing an array of bytes often called APDU |
| ThemeSelectionDevice | Device | None | Array | property to define the theme that is used for the different events: Ready, Read, Read Success, Read Failure UI |
| ThemeSelectionMaskDevice | Device | None | Array | property to define the theme selection mask. It applies the theme selection on the given device(s) set with the mask |
| LassoStatusDevice | Device | None | Byte | property to define if the Lasso feature is enabled or not |
| LassoIdDevice | Device | NotApplicable | Array | property to define the Lasso Id for a device |
| LassoLifeSpanDevice | Device | None | Ulong | property to define the Lasso life span for a device |
| SinglePartnership | Capture | None | Array | property to get or set a device's Single Partnership connection |
| SinglePartnershipStamp | Capture | None | NotApplicable | property to get a stamp from the host for Single Partnership connection |
| ResetSinglePartnershipDevice | Device | None | None | property to reset a device's Single Partnership connection |
| ConnectDiscoveredDevice | Device | NotApplicable | String | property to connect to a discovered BLE device with a Device Manager |
| DisconnectDiscoveredDevice | Device | NotApplicable | String | property to disconnect from a discovered BLE device with a Device Manager |
| AddDevice | Capture | NotApplicable | Byte | property to add a Bluetooth device (Classic or Low Energy) |
| RemoveDevice | Capture | NotApplicable | String | property to remove a Bluetooth device (Classic or Low Energy) |
| ResetDevice | Device | NotApplicable | None | property to power cycle a Bluetooth LE device when on a power source (e.g. charging). Otherwise it will just power off the device |

## List of the properties values
## Those values are the ones used by CaptureSDK when using properties

**DataConfirmationMode** -  Data Confirmation Mode indicates what is  expected to the send the Data ACK back to the scanner

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|ModeOff | 0 |  use the device configuration (Local Confirmation or App)<br /> |
|ModeDevice | 1 |  the device confirms the decoded data locally<br /> |
|ModeCapture | 2 |  Capture confirms the decoded data as it receives them and there is one app<br /> |
|ModeApp | 3 |  the Application confirms the decoded data as it receives them<br /> |

**DeviceDataAcknowledgment** -  Device Data Acknowledgment mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Off | 0 |  the device won't locally acknowledge decoded data<br /> |
|On | 1 |  the device will locally acknowledge decoded data<br /> |

**SecurityMode** -  Security Mode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  No security<br /> |
|Authentication | 1 |  communication protected by authentication<br /> |
|AuthenticationEncryption | 2 |  communication protected by authentication and encrytion<br /> |

**Trigger** -  trigger parameter

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Start | 1 |  start a read<br /> |
|Stop | 2 |  stop a read<br /> |
|Enable | 3 |  enable the trigger<br /> |
|Disable | 4 |  disable the trigger<br /> |
|ContinuousScan | 5 |  start a read in continuous<br /> |
|ContinuousScanUntilRead | 6 |  start a read in continuous until a code is read<br /> |

**DeletePairing** -  Delete the pairing of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Current | 0 |  delete the current pairing<br /> |
|All | 1 |  delete all the pairing of the device<br /> |

**SoundActionType** -  sound configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|GoodRead | 0 |  sound configuration for a good read action<br /> |
|GoodReadLocal | 1 |  sound configuration for a good read local action<br /> |
|BadRead | 2 |  sound configuration for a bad read action<br /> |
|BadReadLocal | 3 |  sound configuration for a bad read local action<br /> |

**SoundFrequency** -  Sound frequency configuration

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  no frequency<br /> |
|Low | 1 |  Low pitch frequency<br /> |
|Medium | 2 |  Medium pitch frequency<br /> |
|High | 3 |  High pitch frequency<br /> |

**RumbleActionType** -  Rumble configuration for the a type of action

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|GoodRead | 0 |  Rumble configuration for a good read action<br /> |
|GoodReadLocal | 1 |  Rumble configuration for a good read local action<br /> |
|BadRead | 2 |  Rumble configuration for a bad read action<br /> |
|BadReadLocal | 3 |  Rumble configuration for a bad read local action<br /> |

**LocalDecodeAction** -  Define the action for a local decode

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  no action<br /> |
|Beep | 1 |  Beep when a local decode occurs<br /> |
|Flash | 2 |  Flash the LED when a local decode occurs<br /> |
|Rumble | 4 |  Rumble when a local decode occurs<br /> |

**DataConfirmationLed** -  Define the LED for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  no LED<br /> |
|Green | 1 |  make the LED flash in green<br /> |
|Red | 2 |  make the LED flash in red<br /> |

**DataConfirmationBeep** -  Define the sound for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  no sound<br /> |
|Good | 1 |  short beep for success<br /> |
|Bad | 2 |  long beep for failure<br /> |

**DataConfirmationRumble** -  Define the rumble for data confirmation

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  no sound<br /> |
|Good | 1 |  short rumble for success<br /> |
|Bad | 2 |  long rumble for failure<br /> |

**Flash** -  Define the flash setting

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Off | 0 |  turn off the flash<br /> |
|On | 1 |  turn on the flash<br /> |

**SocketCam** -  Define the SocketCam experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Enable | 0 |  Enable SocketCam<br /> |
|Disable | 1 |  Disable SocketCam<br /> |
|NotSupported | 2 |  SocketCam is not supported, and cannot be enabled<br /> |

**PowerState** -  Define the possible power states

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Unknown | 0 |  The power state is unknown<br /> |
|OnBattery | 1 |  The power state is on battery<br /> |
|OnCradle | 2 |  The power state is on cradle<br /> |
|OnAc | 4 |  The power state in on AC<br /> |

**MonitorDbg** -  Define the monitor feature (DEBUG build only)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Level | 1 |  define the level for the debug traces<br /> |
|Channel | 2 |  define the output channel for the debug traces<br /> |
|FileLineLevel | 3 |  define the number of lines in the file<br /> |

**Counter** -  identifiers for the statistic counters

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Skip | -1 |  use for convenience only to skip a counter<br /> |
|Unknown | 0 |  unknow counter<br /> |
|Connect | 1 |  number of connections<br /> |
|Disconnect | 2 |  number of disconnections<br /> |
|Unbound | 3 |  number of unbound operation<br /> |
|FactoryReset | 4 |  number of reset to factory default<br /> |
|Reads | 5 |  number of reads (scans)<br /> |
|TriggerButtonUp | 6 |  number of trigger button released<br /> |
|TriggerButtonDown | 7 |  number of trigger button pressed<br /> |
|PowerButtonUp | 8 |  number of power button released<br /> |
|PowerButtonDown | 9 |  number of power button pressed<br /> |
|OnAcTimeInMinutes | 10 |  number of minutes in AC power<br /> |
|OnBatTimeInMinutes | 11 |  number of minutes on battery<br /> |
|RfcommSend | 12 |  number of RFCOMM sent (SSI only)<br /> |
|RfcommReceive | 13 |  number of RFCOMM received (SSI only)<br /> |
|RfcommReceiveDiscarded | 14 |  number of RFCOMM discarded (SSI only)<br /> |
|UartSend | 15 |  number of UART sent (SSI only)<br /> |
|UartReceive | 16 |  number of UART received (SSI only)<br /> |
|UartReceiveDiscarded | 17 |  number of UART discarded (SSI only)<br /> |
|ButtonLeftPress | 18 |  number of left button press (CRS only)<br /> |
|ButtonLeftRelease | 19 |  number of left button release (CRS only)<br /> |
|ButtonRightPress | 20 |  number of right button press (CRS only)<br /> |
|ButtonRightRelease | 21 |  number of right button release (CRS only)<br /> |
|RingUnitDetach | 22 |  number of ring unit detach (CRS only)<br /> |
|RingUnitAttach | 23 |  number of ring unit attach (CRS only)<br /> |
|DecodedBytes | 24 |  number of decoded bytes (7x only ISCI)<br /> |
|AbnormalShutdowns | 25 |  number of abnormal shutdowns (7x only ISCI)<br /> |
|BatteryChargeCycles | 26 |  number of battery charge cycles (7x only ISCI)<br /> |
|BatteryChargeCount | 27 |  number of battery charge count (7x only ISCI)<br /> |
|PowerOn | 28 |  number of power on (only 8Ci)<br /> |
|PowerOff | 29 |  number of power off (only 8Ci)<br /> |
|StandModeChange | 30 |  number of stand mode change (only 7X/Q 7630 and higher)<br /> |

**Disconnect** -  Disconnect parameters to instruct the device what to do after disconnection

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|StartProfile | 0 |  disconnect and then start the current profile<br /> |
|DisableRadio | 1 |  Disconnect and disable radio (low power)<br /> |
|MakeAvailable | 2 |  Disconnect a device and make it available for a new connection (for Bluetooth Low Energy device)<br /> |

**ProfileSelect** -  Select a profile for the device (None, SPP, HID, Reader, Coupler)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  The device is in acceptor mode, not trying to connect to any host<br /> |
|Spp | 1 |  The device is in App mode<br /> |
|Hid | 2 |  The device is in Basic mode, sometimes referred as Keyboard emulation<br /> |
|Reader | 3 |  The device is in Reader mode, for NFC devices<br /> |
|Coupler | 4 |  The device is in Coupler mode, for NFC devices<br /> |

**ProfileConfig** -  Configure a profile for the device (None, Acceptor, Initiator)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  The device is in either acceptor or initiator mode, meaning not even discoverable<br /> |
|Acceptor | 1 |  The device is discoverable and will accept any connection<br /> |
|Initiator | 2 |  The device initiates a connection to the Bluetooth address specified in the Profile Configuration<br /> |

**Notifications** -  Configuration masks for selecting the notifications the device should send to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|TriggerButtonPress | 1 |  The device sends a notification when the trigger button is pressed<br /> |
|TriggerButtonRelease | 2 |  The device sends a notification when the trigger button is released<br /> |
|PowerButtonPress | 4 |  The device sends a notification when the power button is pressed<br /> |
|PowerButtonRelease | 8 |  The device sends a notification when the power button is released<br /> |
|PowerState | 16 |  The device sends a notification when the power state changes (battery to AC or vice-versa) (not supported on all device)<br /> |
|BatteryLevelChange | 32 |  The device sends a notification when the battery level changed (not supported on all device)<br /> |

**Timer** -  Identifies the timers used in the device, (trigger lock, disconnected, connected)

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|AutoLock | 1 |  The trigger button stays ineffective for the specified amount of time <br /> or until the device receives a data confirmation command.<br /> |
|PowerOffDisconnected | 2 |  This timer specifies the amount of time the device stays on while it is not connected to any host.<br /> |
|PowerOffConnected | 4 |  This timer specifies the amount of time the device stays on while it is connected to a host.<br /> |

**DataFormat** -  Identifies the data format the device should send the data to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Raw | 0 |  The device sends the data without any protocol overhead<br /> |
|Packet | 1 |  The device sends the data embedded in a protocol packet (default)<br /> |
|IdOnly | 2 |  The device sends only the RFID tag ID, (valid only for D600 NFC devices)<br /> |
|TagTypeAndId | 10 |  The device sends the tag type and RFID tag ID, (valid only for D600 NFC devices)<br /> |
|DataOnly | 4 |  The device sends only the tag data, (valid only for D600 NFC devices)<br /> |
|TagTypeAndData | 12 |  The device sends the tag type and the tag data, (valid only for D600 NFC devices)<br /> |

**TriggerMode** -  defines the operational mode of the device

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|LocalOnly | 1 |  The device triggers a read only by pressing the trigger button<br /> |
|RemoteAndLocal | 2 |  The device triggers a read by pressing the trigger button or by receiving the trigger command<br /> |
|AutoLock | 3 |  the device waits for the host to unlock the trigger<br /> |
|NormalLock | 4 |  the device locks and unlocks the trigger locally (default)<br /> |
|Presentation | 5 |  The device triggers a read automatically without user intervention<br /> |

**ConnectReason** -  defines the reason as of how the device connects to the host

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Unknown | 0 |  The device connects to the host from unknown reason<br /> |
|PowerOn | 1 |  The device connects to the host just after power on<br /> |
|Barcode | 2 |  The device connects to the host by reading the host address from a barcode<br /> |
|UserAction | 3 |  The device connects to the host by user action (usually a press on the trigger button)<br /> |
|HostChange | 4 |  The device connects to the host from a change of the host address in the profile configuration<br /> |
|Retry | 5 |  The device connects to the host after a retry (device coming back to the radio range)<br /> |

**StartUpRoleSpp** -  The start up role SPP defines the start up role when using the SPP profile.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Acceptor | 0 |  The device returns to acceptor mode, not initiating a connection to a host.<br /> |
|LastRole | 1 |  The device uses the last role configuration upon startup.<br /> |

**ConnectBeepConfig** -  The connect beep configuration allows to turn off or on the connection beep when the scanner connects

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|NoBeep | 0 |  The device won't beep upon connection to a host.<br /> |
|Beep | 1 |  The device beeps when connecting to the host.<br /> |

**StandConfig** -  The stand configuration defines the operational mode of the device when used with a stand.

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Disabled | 0 |  Bluetooth Classic:<br /> Disabled the stand config property and sets the scanner as it is intended<br /> Bluetooth LE:<br /> Scanner does not switch to presentation mode<br /> |
|MobileMode | 1 |  Bluetooth Classic:<br /> Mobile mode Works like today existing firmware Engine is always in trigger mode Engine hibernate enabled<br /> Bluetooth LE:<br /> Identical to disabled mode<br /> |
|StandMode | 2 |  Bluetooth Classic:<br /> Stand mode Engine always in presentation mode Engine hibernate<br /> disabled Scanner turns on immediately Power timers disabled Connection retries forever<br /> Bluetooth LE:<br /> The device switches to presentation mode, always, in or out of the stand,<br /> |
|DetectMode | 3 |  Bluetooth Classic:<br /> Detect mode On stand engine in presentation mode On stand engine<br /> hibernate disabled On stand charging led state not show On stand<br /> scanner turns on immediately On stand power timers disabled On stand<br /> connection retries forever Off stand engine in level mode Off stand<br /> battery led state reported Off stand engine hibernate enabled Off stand<br /> power off timers running Off stand connection retries halt after max count<br /> Bluetooth LE:<br /> The device switches in or out of presentation mode when it's in or out respectively from the stand<br /> |
|AutoMode | 4 |  Bluetooth Classic:<br /> Auto mode On stand engine in presentation mode On stand engine hibernate<br /> disabled On stand charging led state not show On stand scanner turns on<br /> immediately On stand power timers disabled On stand connection retries<br /> forever Off stand does nothing, engine remains in presentation mode Off<br /> stand trigger press causes engine to enter level mode Engine in level<br /> mode battery led state reported Engine in level mode hibernate enabled<br /> Engine in level mode power off timers running Engine in level mode<br /> connection retries halt after max count<br /> Bluetooth LE:<br /> Same as DetectMode, but if you use the trigger button while it's out of the stand it switches to a normal trigger operation until it returns to the stand in which it switches to presentation mode.<br /> If it is removed from the stand it stays in presentation mode until the trigger is pressed at least once.<br /> |

**ButtonsState** -  The mask to apply for each button that is pressed

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Left | 1 |  The left button is pressed.<br /> |
|Right | 2 |  The right button is pressed.<br /> |
|Middle | 4 |  The middle button is pressed.<br /> |
|Power | 8 |  The power button is pressed.<br /> |
|RingDetach | 16 |  The Ring is detached from the wrist unit.<br /> |

**ThemeSelection** -  The mask to apply for each theme

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|None | 0 |  No theme.<br /> |
|Health | 1 |  The Health theme.<br /> |
|Access | 2 |  The Access theme.<br /> |
|Value | 3 |  The Value theme.<br /> |
|Membership | 4 |  The Membership theme.<br /> |

**ThemeSelectionMask** -  Mask for the Theme selection property. It applies the theme selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Default | 1 |  Mask applied on the Default device<br /> |
|Nfc | 2 |  Mask applied on the Nfc device<br /> |
|DefaultNfc | 3 |  Mask applied on the Default and Nfc devices<br /> |
|Barcode | 4 |  Mask applied on the Barcode device<br /> |
|DefaultBarcode | 5 |  Mask applied on the Default and Barcode devices<br /> |
|NfcBarcode | 6 |  Mask applied on the Nfc and Barcode devices<br /> |
|All | 7 |  Mask applied on the Default, Nfc and Barcode devices<br /> |

**LassoDeviceStatus** -  Define the Lasso experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Disable | 0 |  Disable Lasso<br /> |
|Enable | 1 |  Enable Lasso<br /> |

**SinglePartnership** -  Define the Single Partnership experience

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Disable | 0 |  Disable Single Partnership<br /> |
|WebApi | 1 |  Get a Single Partnership through our Web API<br /> |
|WebUI | 2 |  Show a Single Partnership QRcode through our Web UI<br /> |
|Uuid | 3 |  Set your own Service UUID for a Single Partnership<br /> |
|WebUIPrompt | 4 |  Show a Single Partnership Web UI where you can input information about the device<br /> |
|DeviceId | 5 |  Set your own Device Id that will return a Single Partnership Web page with a QRcode to scan<br /> |

**BluetoothDiscoveryMode** -  The Bluetooth technology used to make a discovery of devices in the vicinity

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|BluetoothLowEnergy | 1 |  Discovery for Bluetooth LE devices such as S550, S370, S320, S721.<br /> |
|BluetoothClassic | 2 |  Discovery for Bluetooth Classic devices.<br /> |

**DecodeLocalActionSelectionMask** -  Mask for the Decode Local Action selection property. It applies the decode local action selection on the given device(s) set with the mask

| Value name | Value | Description |
| :---------------- | :----- | :----- |
|Good | 1 |  Mask applied on the Good local decode action result<br /> |
|Bad | 2 |  Mask applied on the Bad local decode action result<br /> |