UNPKG

socketmobile-capturejs

Version:

Socket Mobile Capture JS NPM package for Socket Mobile barcode scanner and NFC Reader/Writer products

1,314 lines (1,280 loc) 116 kB
/* CaptureJS version 2.0.2.0 2026/02/25 23:15:13 © 2026 Socket Mobile, inc. */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["SocketMobile"] = factory(); else root["SocketMobile"] = factory(); })(self, () => { return /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "./ts/capture.ts": /*!***********************!*\ !*** ./ts/capture.ts ***! \***********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _transport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transport */ "./ts/transport.ts"); /* harmony import */ var _jsonRpc__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jsonRpc */ "./ts/jsonRpc.ts"); /* harmony import */ var _gen_eventIds__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./gen/eventIds */ "./ts/gen/eventIds.ts"); /* harmony import */ var _gen_errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./gen/errors */ "./ts/gen/errors.ts"); const ERRMSG_NO_TRANSPORT = 'no transport, is this initialized?'; const DEFAULT_HOST = "http://127.0.0.1:18481"; class Capture { constructor(log) { this.host = DEFAULT_HOST; this.rpcId = 0; this.logger = log; } open(appInfo, eventNotification, options) { if (options) { this.transport = options.transport || _transport__WEBPACK_IMPORTED_MODULE_0__["default"].getTransport(this.logger); this.host = options.host || DEFAULT_HOST; } else { // this is done here for transport lazy loading this.transport = _transport__WEBPACK_IMPORTED_MODULE_0__["default"].getTransport(this.logger); } return this.transport.open(this.host, (event) => { return this.notification(event); }) .then(transportHandle => { const jsonRpc = new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcRequest(this.getJsonRpcId(), 'openclient', { appId: appInfo.appId, developerId: appInfo.developerId, appKey: appInfo.appKey }); this.onEventNotification = eventNotification; this.transportHandle = transportHandle.handle; return this.transport.send(transportHandle.handle, jsonRpc); }) .then(response => { if (response.result && response.result.handle) { this.clientOrDeviceHandle = response.result.handle; return _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_NOERROR; } else { const res = response; if (res.error) { const { error } = res; throw (new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcError(0, error.code, error.message)); } else { throw (new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcError(0, _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_COMMUNICATIONERROR, "There was an error during communication.")); } } }); } close() { if (this.transport) { const jsonRpc = new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcRequest(this.getJsonRpcId(), 'close', { handle: this.clientOrDeviceHandle }); return this.transport.send(this.transportHandle, jsonRpc) .then(() => { if (this.rootCapture === undefined) { return this.transport.close(this.transportHandle) .then(() => { this.transport = null; this.clientOrDeviceHandle = null; this.transportHandle = 0; return _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_NOERROR; }); } this.rootCapture = undefined; return _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_NOERROR; }); } return Promise.reject({ error: _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_ALREADYDONE }); } openDevice(guid, capture) { if (typeof capture === 'undefined' || capture === null) { return Promise.reject({ error: _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_INVALIDPARAMETER }); } this.rootCapture = capture; this.transport = capture.transport; this.transportHandle = capture.transportHandle; if (this.transport) { const openRequest = new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcRequest(this.getJsonRpcId(), 'opendevice', { handle: this.rootCapture.clientOrDeviceHandle, guid }); return this.transport.send(this.transportHandle, openRequest) .then((response) => { if (response.result && response.result.handle) { this.clientOrDeviceHandle = response.result.handle; return _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_NOERROR; } else { if (response.error) { const { error } = response; throw (new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcError(0, error.code, error.message)); } else { throw (new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcError(0, _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_COMMUNICATIONERROR, "There was an error during communication.")); } } }); } return Promise.reject({ error: _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_NOTINITIALIZED }); } getProperty(property) { if (this.transport) { return this.transport.send(this.transportHandle, new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcRequest(this.getJsonRpcId(), 'getproperty', { property, handle: this.clientOrDeviceHandle })) .then(response => { if (response.result) { if (this.clientOrDeviceHandle != response.result.handle) { console.log("Warning the response handle does not match with the handle of the request"); } const propertyResponse = response.result.property; return Promise.resolve(propertyResponse); } const rsp = response; return Promise.reject(rsp.error); }); } return Promise.reject(new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcError(0, _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_NOTINITIALIZED, ERRMSG_NO_TRANSPORT)); } setProperty(property) { if (this.transport) { return this.transport.send(this.transportHandle, new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcRequest(this.getJsonRpcId(), 'setproperty', { property, handle: this.clientOrDeviceHandle })) .then(response => { if (response.result) { const propertyResponse = response.result.property; return Promise.resolve(propertyResponse); } const rsp = response; return Promise.reject(rsp); }); } return Promise.reject(new _jsonRpc__WEBPACK_IMPORTED_MODULE_1__.JRpcError(0, _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_NOTINITIALIZED, ERRMSG_NO_TRANSPORT)); } notification(jsonRpc, handle) { const unifiedJsonResult = this.unifyResultInEvents(jsonRpc); if (jsonRpc && this.onEventNotification) { this.onEventNotification(unifiedJsonResult.event, unifiedJsonResult.handle); } } unifyResultInEvents(jsonRpc) { var _a; let res = jsonRpc.result; if (jsonRpc.result && JSON.stringify(jsonRpc.result) != '{}') { if (res.event) { let value = res.event.value; if (typeof value === 'object' && !Array.isArray(value) && value !== null) { // updating only if the value type is an object containing properties-times it can just be a string, etc.-and // checking if the result is already in the event, if so, keep it. // If it is in the event value (android as of 08/15/24), if so use that value. // If there is no result present anywhere in the if (typeof res.event.result === 'undefined') { res.event.result = (_a = value.result) !== null && _a !== void 0 ? _a : 0; } } else { res.event.result = 0; } // below is the case for closing socketcam view // it is registered as an empty scan with no name, id === 0, and data.length === 0 if (value && res.event.type === _gen_eventIds__WEBPACK_IMPORTED_MODULE_2__.CaptureEventTypes.DecodedData) { if ((value === null || value === void 0 ? void 0 : value.id) === 0 && (value === null || value === void 0 ? void 0 : value.name.length) === 0 && (value === null || value === void 0 ? void 0 : value.data.length) === 0) { res.event.result = _gen_errors__WEBPACK_IMPORTED_MODULE_3__["default"].ESKT_CANCEL; } } } } else { // in some cases the JsonRpc spec calls for an empty/event-less value in the jsonRpc.result. res = jsonRpc.result; } return res; } getJsonRpcId() { let self = this; if (this.rootCapture) { self = this.rootCapture; } return self.rpcId++; } } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Capture); /***/ }), /***/ "./ts/captureEvents.ts": /*!*****************************!*\ !*** ./ts/captureEvents.ts ***! \*****************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ CaptureEvent: () => (/* binding */ CaptureEvent) /* harmony export */ }); class CaptureEvent { constructor(id, type, result = 0, value) { this.id = id; this.type = type; this.result = result; if (value) { this.value = value; } } } /***/ }), /***/ "./ts/captureProperty.ts": /*!*******************************!*\ !*** ./ts/captureProperty.ts ***! \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ CaptureProperty) /* harmony export */ }); class CaptureProperty { constructor(id, type, value) { this.id = id; this.type = type; this.value = value; } } /***/ }), /***/ "./ts/gen/dataSources.ts": /*!*******************************!*\ !*** ./ts/gen/dataSources.ts ***! \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ CaptureDataSourceFlags: () => (/* binding */ CaptureDataSourceFlags), /* harmony export */ CaptureDataSourceID: () => (/* binding */ CaptureDataSourceID), /* harmony export */ CaptureDataSourceStatus: () => (/* binding */ CaptureDataSourceStatus) /* harmony export */ }); // dataSource.ts // This file is generated when calling npm run update // // class CaptureDataSourceID { } // the data source ID is not specified or initialized CaptureDataSourceID.NotSpecified = 0; // the barcode symbology for Australia post CaptureDataSourceID.SymbologyAustraliaPost = 1; // the barcode symbology Aztec CaptureDataSourceID.SymbologyAztec = 2; // the barcode symbology Bookland EAN CaptureDataSourceID.SymbologyBooklandEan = 3; // the barcode symbology for British post CaptureDataSourceID.SymbologyBritishPost = 4; // the barcode symbology for Canada post CaptureDataSourceID.SymbologyCanadaPost = 5; // the barcode symbology Chinese 2 of 5 CaptureDataSourceID.SymbologyChinese2of5 = 6; // the barcode symbology Codabar CaptureDataSourceID.SymbologyCodabar = 7; // the barcode symbology Codablock A CaptureDataSourceID.SymbologyCodablockA = 8; // the barcode symbology Codablock F CaptureDataSourceID.SymbologyCodablockF = 9; // the barcode symbology Code 11 CaptureDataSourceID.SymbologyCode11 = 10; // the barcode symbology Code 39 CaptureDataSourceID.SymbologyCode39 = 11; // the barcode symbology Code 39 Extended CaptureDataSourceID.SymbologyCode39Extended = 12; // the barcode symbology Code 39 Trioptic CaptureDataSourceID.SymbologyCode39Trioptic = 13; // the barcode symbology Code 93 CaptureDataSourceID.SymbologyCode93 = 14; // the barcode symbology Code 128 CaptureDataSourceID.SymbologyCode128 = 15; // the barcode symbology DataMatrix CaptureDataSourceID.SymbologyDataMatrix = 16; // the barcode symbology for Dutch post CaptureDataSourceID.SymbologyDutchPost = 17; // the barcode symbology EAN 8 CaptureDataSourceID.SymbologyEan8 = 18; // the barcode symbology EAN 13 CaptureDataSourceID.SymbologyEan13 = 19; // the barcode symbology EAN 128 CaptureDataSourceID.SymbologyEan128 = 20; // the barcode symbology EAN 128 Irregular CaptureDataSourceID.SymbologyEan128Irregular = 21; // the barcode symbology EAN UCC Composite AB CaptureDataSourceID.SymbologyEanUccCompositeAB = 22; // the barcode symbology EAN UCC Composite C CaptureDataSourceID.SymbologyEanUccCompositeC = 23; // the barcode symbology GS1 Databar CaptureDataSourceID.SymbologyGs1Databar = 24; // the barcode symbology GS1 Databar Limited CaptureDataSourceID.SymbologyGs1DatabarLimited = 25; // the barcode symbology GS1 Databar Expanded CaptureDataSourceID.SymbologyGs1DatabarExpanded = 26; // the barcode symbology Interleaved 2 of 5 CaptureDataSourceID.SymbologyInterleaved2of5 = 27; // the barcode symbology ISBT 128 CaptureDataSourceID.SymbologyIsbt128 = 28; // the barcode symbology for Japan post CaptureDataSourceID.SymbologyJapanPost = 29; // the barcode symbology Matrix 2 of 5 CaptureDataSourceID.SymbologyMatrix2of5 = 30; // the barcode symbology Maxi Code CaptureDataSourceID.SymbologyMaxicode = 31; // the barcode symbology MSI CaptureDataSourceID.SymbologyMsi = 32; // the barcode symbology PDF 417 CaptureDataSourceID.SymbologyPdf417 = 33; // the barcode symbology PDF 417 Micro CaptureDataSourceID.SymbologyPdf417Micro = 34; // the barcode symbology Planet CaptureDataSourceID.SymbologyPlanet = 35; // the barcode symbology Plessey CaptureDataSourceID.SymbologyPlessey = 36; // the barcode symbology Postnet CaptureDataSourceID.SymbologyPostnet = 37; // the barcode symbology QR Code CaptureDataSourceID.SymbologyQRCode = 38; // the barcode symbology Standard 2 of 5 CaptureDataSourceID.SymbologyStandard2of5 = 39; // the barcode symbology Telepen CaptureDataSourceID.SymbologyTelepen = 40; // the barcode symbology TLC 39 CaptureDataSourceID.SymbologyTlc39 = 41; // the barcode symbology UPC A CaptureDataSourceID.SymbologyUpcA = 42; // the barcode symbology UPC E0 CaptureDataSourceID.SymbologyUpcE0 = 43; // the barcode symbology UPC E1 CaptureDataSourceID.SymbologyUpcE1 = 44; // the barcode symbology USPS Intelligent Mail CaptureDataSourceID.SymbologyUspsIntelligentMail = 45; // the barcode symbology Direct Part Marking CaptureDataSourceID.SymbologyDirectPartMarking = 46; // the barcode symbology Han Xin CaptureDataSourceID.SymbologyHanXin = 47; // the barcode symbology DotCode CaptureDataSourceID.SymbologyDotCode = 48; // the barcode symbology Digimarc CaptureDataSourceID.SymbologyDigimarc = 49; // the barcode symbology Korea Post CaptureDataSourceID.SymbologyKoreaPost = 50; // the barcode symbology Micro QR Code CaptureDataSourceID.SymbologyMicroQRCode = 51; // the last barcode symbology ID, not an actual barcode symbology CaptureDataSourceID.LastSymbologyID = 52; // the RFID Tag Type ISO 14443 A CaptureDataSourceID.TagTypeISO14443TypeA = 256; // the RFID Tag Type ISO 14443 B CaptureDataSourceID.TagTypeISO14443TypeB = 257; // the RFID Tag Type Felica CaptureDataSourceID.TagTypeFelica = 258; // the RFID Tag Type ISO 15693 CaptureDataSourceID.TagTypeISO15693 = 259; // the RFID Tag Type NXPI Code 1 CaptureDataSourceID.TagTypeNXPICODE1 = 260; // the RFID Tag Type Inside Secure Pico Tag CaptureDataSourceID.TagTypeInsideSecurePicoTag = 261; // the RFID Tag Type Innovision Topaz Jewel CaptureDataSourceID.TagTypeInnovisionTopazJewel = 262; // the RFID Tag Type Thin Film NFC Barcode CaptureDataSourceID.TagTypeThinfilmNFCBarcode = 263; // the RFID Tag Type ST Micro Electronics SR CaptureDataSourceID.TagTypeSTMicroElectronicsSR = 264; // the RFID Tag Type ASK CTS 256B or CTS 512B CaptureDataSourceID.TagTypeASKCTS256BOrCTS512B = 265; // the RFID Tag Type NFC Forum CaptureDataSourceID.TagTypeNFCForum = 266; // the RFID Tag Type Innovatron Radio Protocol CaptureDataSourceID.TagTypeInnovatronRadioProtocol = 267; // the last RFID tag type, not an actual tag type CaptureDataSourceID.TagTypeLastTagType = 268; ; class CaptureDataSourceFlags { } // the data source contains a status CaptureDataSourceFlags.Status = 1; // the data source contains some parameters CaptureDataSourceFlags.Param = 2; ; class CaptureDataSourceStatus { } // the data source status by default CaptureDataSourceStatus.Default = -1; // the data source status is disabled CaptureDataSourceStatus.Disable = 0; // the data source status is enabled CaptureDataSourceStatus.Enable = 1; // the data source is not supported CaptureDataSourceStatus.NotSupported = 2; ; /***/ }), /***/ "./ts/gen/deviceTypes.ts": /*!*******************************!*\ !*** ./ts/gen/deviceTypes.ts ***! \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ CaptureDeviceType: () => (/* binding */ CaptureDeviceType), /* harmony export */ CaptureDeviceTypeClass: () => (/* binding */ CaptureDeviceTypeClass), /* harmony export */ CaptureDeviceTypeFunction: () => (/* binding */ CaptureDeviceTypeFunction), /* harmony export */ CaptureDeviceTypeInterface: () => (/* binding */ CaptureDeviceTypeInterface) /* harmony export */ }); //deviceTypes.ts //This file is generated when calling npm run update // // class CaptureDeviceTypeClass { } ///<summary> /// the class is a device /// value: 0 (0x00000) ///</summary> CaptureDeviceTypeClass.DeviceClass = 0; ///<summary> /// the class is a device manager /// value: 1 (0x00001) ///</summary> CaptureDeviceTypeClass.DeviceManagerClass = 1; ; class CaptureDeviceTypeInterface { } ///<summary> /// no interface /// value: 0 (0x00000) ///</summary> CaptureDeviceTypeInterface.None = 0; ///<summary> /// SD interface /// value: 1 (0x00001) ///</summary> CaptureDeviceTypeInterface.SD = 1; ///<summary> /// CF interface /// value: 2 (0x00002) ///</summary> CaptureDeviceTypeInterface.CF = 2; ///<summary> /// Bluetooth interface /// value: 3 (0x00003) ///</summary> CaptureDeviceTypeInterface.Bluetooth = 3; ///<summary> /// Serial interface /// value: 4 (0x00004) ///</summary> CaptureDeviceTypeInterface.Serial = 4; ///<summary> /// Bluetooth Low Energy interface /// value: 5 (0x00005) ///</summary> CaptureDeviceTypeInterface.Ble = 5; ///<summary> /// NFC /// value: 6 (0x00006) ///</summary> CaptureDeviceTypeInterface.NFC = 6; ; class CaptureDeviceType { } //no device type (initial value) //value: 0 (0x00000) CaptureDeviceType.None = 0; //Model 7 //value: 196609 (0x30001) CaptureDeviceType.Scanner7 = 196609; //Model 7X //value: 196610 (0x30002) CaptureDeviceType.Scanner7x = 196610; //Model 7Xi //value: 196612 (0x30004) CaptureDeviceType.Scanner7xi = 196612; //Model 9 CRS //value: 196611 (0x30003) CaptureDeviceType.Scanner9 = 196611; //SocketCam C820 //value: 5 (0x00005) CaptureDeviceType.SocketCamC820 = 5; //SocketCam C860 //value: 29 (0x0001D) CaptureDeviceType.SocketCamC860 = 29; //Model S800 //value: 196614 (0x30006) CaptureDeviceType.ScannerS800 = 196614; //Model S820 //value: 196634 (0x3001A) CaptureDeviceType.ScannerS820 = 196634; //Model S850 //value: 196615 (0x30007) CaptureDeviceType.ScannerS850 = 196615; //Model S840 //value: 196616 (0x30008) CaptureDeviceType.ScannerS840 = 196616; //Model D700 //value: 196617 (0x30009) CaptureDeviceType.ScannerD700 = 196617; //Model D720 //value: 196633 (0x30019) CaptureDeviceType.ScannerD720 = 196633; //Model D730 //value: 196618 (0x3000A) CaptureDeviceType.ScannerD730 = 196618; //Model D740 //value: 196619 (0x3000B) CaptureDeviceType.ScannerD740 = 196619; //Model D750 //value: 196620 (0x3000C) CaptureDeviceType.ScannerD750 = 196620; //Model D760 //value: 196621 (0x3000D) CaptureDeviceType.ScannerD760 = 196621; //Model S700 //value: 196622 (0x3000E) CaptureDeviceType.ScannerS700 = 196622; //Model S720 //value: 196632 (0x30018) CaptureDeviceType.ScannerS720 = 196632; //Model S730 //value: 196623 (0x3000F) CaptureDeviceType.ScannerS730 = 196623; //Model S740 //value: 196624 (0x30010) CaptureDeviceType.ScannerS740 = 196624; //Model S750 //value: 196625 (0x30011) CaptureDeviceType.ScannerS750 = 196625; //Model S760 //value: 196626 (0x30012) CaptureDeviceType.ScannerS760 = 196626; //Model S860 //value: 196627 (0x30013) CaptureDeviceType.ScannerS860 = 196627; //Model D790 //value: 196628 (0x30014) CaptureDeviceType.ScannerD790 = 196628; //Model D600 //value: 327701 (0x50015) CaptureDeviceType.ScannerD600 = 327701; //Model S550 //value: 327702 (0x50016) CaptureDeviceType.ScannerS550 = 327702; //Model S370 - Barcode scanner //value: 327963 (0x5011B) CaptureDeviceType.ScannerS370 = 327963; //Model S370 - NFC Reader/Writer //value: 329243 (0x5061B) CaptureDeviceType.NFCS370 = 329243; //Model S320 //value: 327964 (0x5011C) CaptureDeviceType.ScannerS320 = 327964; //NFC Tag //value: 393239 (0x60017) CaptureDeviceType.NFCTag = 393239; //Model M930 //value: 196894 (0x3011E) CaptureDeviceType.ScannerM930 = 196894; //Model M940 //value: 196895 (0x3011F) CaptureDeviceType.ScannerM940 = 196895; //Model D761 //value: 196896 (0x30120) CaptureDeviceType.DeviceD761 = 196896; //Model D762 //value: 196897 (0x30121) CaptureDeviceType.DeviceD762 = 196897; //Model D763 //value: 327970 (0x50122) CaptureDeviceType.DeviceD763 = 327970; //Model D764 //value: 196899 (0x30123) CaptureDeviceType.DeviceD764 = 196899; //Model D765 //value: 196900 (0x30124) CaptureDeviceType.DeviceD765 = 196900; //Model D751 - NFC Reader/Writer //value: 329253 (0x50625) CaptureDeviceType.DeviceD751 = 329253; //Model M942 //value: 327974 (0x50126) CaptureDeviceType.DeviceM942 = 327974; //Model M963 //value: 327975 (0x50127) CaptureDeviceType.DeviceM963 = 327975; //Model XS663 //value: 327976 (0x50128) CaptureDeviceType.DeviceXS663 = 327976; //Model S721 //value: 327977 (0x50129) CaptureDeviceType.DeviceS721 = 327977; //Model S741 //value: 327978 (0x5012A) CaptureDeviceType.DeviceS741 = 327978; //Bluetooth device type unknown by this version of Capture //value: 196651 (0x3002B) CaptureDeviceType.BtUnknown = 196651; //device manager for controlling BLE //value: 17104897 (0x1050001) CaptureDeviceType.DeviceManagerBle = 17104897; //Ble device type unknown by this version of Capture //value: 329771 (0x5082B) CaptureDeviceType.BleUnknown = 329771; ; class CaptureDeviceTypeFunction { } ///<summary> /// legacy device /// value: 0 (0x00000) ///</summary> CaptureDeviceTypeFunction.Legacy = 0; ///<summary> /// Barcode scanner function for this device /// value: 1 (0x00001) ///</summary> CaptureDeviceTypeFunction.Scanner = 1; ///<summary> /// NFC reader function for this device /// value: 2 (0x00002) ///</summary> CaptureDeviceTypeFunction.NFCReader = 2; ///<summary> /// NFC writer function for this device /// value: 4 (0x00004) ///</summary> CaptureDeviceTypeFunction.NFCWriter = 4; ///<summary> /// Unknown function for this device /// value: 8 (0x00008) ///</summary> CaptureDeviceTypeFunction.Unknown = 8; ; /***/ }), /***/ "./ts/gen/errors.ts": /*!**************************!*\ !*** ./ts/gen/errors.ts ***! \**************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ SktErrors) /* harmony export */ }); //errors.ts //This file is generated when calling npm run update // // class SktErrors { } /// <summary> /// The Lasso feature is disabled /// </summary> SktErrors.ESKT_LASSODISABLED = 8; /// <summary> /// This operation is deprecated /// </summary> SktErrors.ESKT_DEPRECATED = 7; /// <summary> /// No data present /// </summary> SktErrors.ESKT_NODATA = 6; /// <summary> /// The object has been created /// </summary> SktErrors.ESKT_CREATED = 5; /// <summary> /// This operation is still pending /// </summary> SktErrors.ESKT_STILLPENDING = 4; /// <summary> /// This operation is pending /// </summary> SktErrors.ESKT_PENDING = 3; /// <summary> /// This operation is already complete /// </summary> SktErrors.ESKT_ALREADYDONE = 2; /// <summary> /// The wait timed out /// </summary> SktErrors.ESKT_WAITTIMEOUT = 1; /// <summary> /// There is no error /// </summary> SktErrors.ESKT_NOERROR = 0; /// <summary> /// At least one test has failed /// </summary> SktErrors.ESKT_TESTFAILED = -1; /// <summary> /// There is not enough memory to complete the operation /// </summary> SktErrors.ESKT_NOTENOUGHMEMORY = -2; /// <summary> /// A lock cannot be created /// </summary> SktErrors.ESKT_UNABLECREATELOCK = -3; /// <summary> /// Unable to lock a shared resource /// </summary> SktErrors.ESKT_UNABLELOCK = -4; /// <summary> /// Unable to unlock a shared resource /// </summary> SktErrors.ESKT_UNABLEUNLOCK = -5; /// <summary> /// Unable to remove an item from a list because the list is empty /// </summary> SktErrors.ESKT_LISTEMPTY = -6; /// <summary> /// An event cannot be created /// </summary> SktErrors.ESKT_UNABLECREATEEVENT = -7; /// <summary> /// Unable to set an event /// </summary> SktErrors.ESKT_UNABLESETEVENT = -8; /// <summary> /// Unable to reset an event /// </summary> SktErrors.ESKT_UNABLERESETEVENT = -9; /// <summary> /// The event is not created /// </summary> SktErrors.ESKT_EVENTNOTCREATED = -10; /// <summary> /// The provided handle is invalid /// </summary> SktErrors.ESKT_INVALIDHANDLE = -11; /// <summary> /// A thread cannot be created /// </summary> SktErrors.ESKT_UNABLECREATETHREAD = -12; /// <summary> /// The thread is already created /// </summary> SktErrors.ESKT_THREADALREADYCREATED = -13; /// <summary> /// The thread is still running /// </summary> SktErrors.ESKT_THREADSTILLRUNNING = -14; /// <summary> /// This operation is not supported /// </summary> SktErrors.ESKT_NOTSUPPORTED = -15; /// <summary> /// The previous operation is not completed /// </summary> SktErrors.ESKT_PENDINGOPERATIONNOTCOMPLETED = -16; /// <summary> /// The item cannot be found /// </summary> SktErrors.ESKT_NOTFOUND = -17; /// <summary> /// The provided parameter is invalid /// </summary> SktErrors.ESKT_INVALIDPARAMETER = -18; /// <summary> /// Trying to use an object that is not yet initialized /// </summary> SktErrors.ESKT_NOTINITIALIZED = -19; /// <summary> /// The timeout value is out of range /// </summary> SktErrors.ESKT_TIMEOUTOUTOFRANGE = -20; /// <summary> /// The object cannot be initialized /// </summary> SktErrors.ESKT_UNABLEINITIALIZE = -21; /// <summary> /// The object cannot be un-initialized /// </summary> SktErrors.ESKT_UNABLEDEINITIALIZE = -22; /// <summary> /// The configuration is unknown /// </summary> SktErrors.ESKT_UNKNOWNCONFIGURATION = -23; /// <summary> /// The configuration is invalid /// </summary> SktErrors.ESKT_INVALIDCONFIGURATION = -24; /// <summary> /// Creating or adding an item that already exists /// </summary> SktErrors.ESKT_ALREADYEXISTING = -25; /// <summary> /// The provided buffer is too small /// </summary> SktErrors.ESKT_BUFFERTOOSMALL = -26; /// <summary> /// The specified device cannot be opened /// </summary> SktErrors.ESKT_UNABLEOPENDEVICE = -27; /// <summary> /// The specified device cannot be configured /// </summary> SktErrors.ESKT_UNABLECONFIGUREDEVICE = -28; /// <summary> /// The string cannot be converted /// </summary> SktErrors.ESKT_UNABLECONVERTSTRING = -29; /// <summary> /// The specified string cannot be copied /// </summary> SktErrors.ESKT_UNABLECOPYSTRING = -30; /// <summary> /// The specified device is not open /// </summary> SktErrors.ESKT_DEVICENOTOPEN = -31; /// <summary> /// The specified item is not available /// </summary> SktErrors.ESKT_NOTAVAILABLE = -32; /// <summary> /// The specified file cannot be written /// </summary> SktErrors.ESKT_UNABLEWRITEFILE = -33; /// <summary> /// The specified file cannot be read /// </summary> SktErrors.ESKT_UNABLEREADFILE = -34; /// <summary> /// The wait has failed /// </summary> SktErrors.ESKT_WAITFAILED = -35; /// <summary> /// The specified checksum is invalid /// </summary> SktErrors.ESKT_INVALIDCHECKSUM = -36; /// <summary> /// This command has been denied /// </summary> SktErrors.ESKT_COMMANDDENIED = -37; /// <summary> /// There was an error during communication /// </summary> SktErrors.ESKT_COMMUNICATIONERROR = -38; /// <summary> /// An unexpected command has been received /// </summary> SktErrors.ESKT_RECEIVEUNEXPECTEDCOMMAND = -39; /// <summary> /// The GUID cannot be created /// </summary> SktErrors.ESKT_UNABLECREATEGUID = -40; /// <summary> /// The specified value is invalid /// </summary> SktErrors.ESKT_INVALIDVALUE = -41; /// <summary> /// The request has timed out /// </summary> SktErrors.ESKT_REQUESTTIMEDOUT = -42; /// <summary> /// The operation is invalid /// </summary> SktErrors.ESKT_INVALIDOPERATION = -43; /// <summary> /// The protocol used is not the correct one /// </summary> SktErrors.ESKT_WRONGPROTOCOL = -44; /// <summary> /// The queue has been reset /// </summary> SktErrors.ESKT_QUEUERESETED = -45; /// <summary> /// The data size exceeeds maximum transmission unit /// </summary> SktErrors.ESKT_EXCEEDINGMTUSIZE = -46; /// <summary> /// The listener thread has nothing to listen to /// </summary> SktErrors.ESKT_NOTHINGTOLISTEN = -47; /// <summary> /// The current version is outdated /// </summary> SktErrors.ESKT_OUTDATEDVERSION = -48; /// <summary> /// The XML tag is invalid /// </summary> SktErrors.ESKT_INVALIDXMLTAG = -49; /// <summary> /// Cannot register for HID change notifications /// </summary> SktErrors.ESKT_UNABLEREGISTERFORHIDCHANGES = -50; /// <summary> /// The message cannot be retrieved /// </summary> SktErrors.ESKT_UNABLERETRIEVEMESSAGE = -51; /// <summary> /// There is a syntax error /// </summary> SktErrors.ESKT_SYNTAXERROR = -52; /// <summary> /// The specified file cannot be opened /// </summary> SktErrors.ESKT_UNABLEOPENFILE = -53; /// <summary> /// The file path cannot be retrieved /// </summary> SktErrors.ESKT_UNABLERETRIEVEPATH = -54; /// <summary> /// The specified directory cannot be created /// </summary> SktErrors.ESKT_UNABLECREATEDIRECTORY = -55; /// <summary> /// The specified file cannot be deleted /// </summary> SktErrors.ESKT_UNABLEDELETEFILE = -56; /// <summary> /// The specified directory cannot be deleted /// </summary> SktErrors.ESKT_UNABLEDELETEDIRECTORY = -57; /// <summary> /// The modem status cannot be read /// </summary> SktErrors.ESKT_UNABLEREADMODEMSTATUS = -60; /// <summary> /// The Class of Devices cannot be retrieved /// </summary> SktErrors.ESKT_UNABLEGETCLASSDEVICES = -61; /// <summary> /// The device interface cannot be retrieved /// </summary> SktErrors.ESKT_UNABLEGETDEVICEINTERFACE = -62; /// <summary> /// The specified file or device cannot be found /// </summary> SktErrors.ESKT_FILENOTFOUND = -63; /// <summary> /// The specified file or device is not accessible /// </summary> SktErrors.ESKT_FILEACCESSDENIED = -64; /// <summary> /// The HID information cannot be read /// </summary> SktErrors.ESKT_UNABLEREADHIDINFO = -70; /// <summary> /// The number of parameters is incorrect /// </summary> SktErrors.ESKT_INCORRECTNUMBEROFPARAMETERS = -84; /// <summary> /// The specified format is invalid /// </summary> SktErrors.ESKT_INVALIDFORMAT = -85; /// <summary> /// The version is invalid /// </summary> SktErrors.ESKT_INVALIDVERSION = -86; /// <summary> /// The service does not respond /// </summary> SktErrors.ESKT_SERVICENOTCOMMUNICATING = -87; /// <summary> /// The Lasso Id is expired /// </summary> SktErrors.ESKT_LASSOIDEXPIRED = -88; /// <summary> /// The Lasso Id does not match /// </summary> SktErrors.ESKT_LASSOIDTNOTMATCHING = -89; /// <summary> /// The device already has a Lasso Id /// </summary> SktErrors.ESKT_LASSOIDALREADYSET = -90; /// <summary> /// This operation has been canceled /// </summary> SktErrors.ESKT_CANCEL = -91; /// <summary> /// The operation has expired /// </summary> SktErrors.ESKT_EXPIRED = -92; /// <summary> /// The AppInfo information is invalid /// </summary> SktErrors.ESKT_INVALIDAPPINFO = -93; /// <summary> /// BLE operation failed /// </summary> SktErrors.ESKT_BLEGATT = -94; /// <summary> /// Auto-discovery is in progress /// </summary> SktErrors.ESKT_FAVORITENOTEMPTY = -95; /// <summary> /// Location permission is required to complete the operation /// </summary> SktErrors.ESKT_LOCATIONPERMISSIONMISSING = -96; /// <summary> /// The requested operation cannot be completed /// </summary> SktErrors.ESKT_UNABLETOCOMPLETEOPERATION = -97; /// <summary> /// Location service is disabled /// </summary> SktErrors.ESKT_LOCATIONSERVICEDISABLED = -98; /// <summary> /// Bluetooth permission is not granted /// </summary> SktErrors.ESKT_BLUETOOTHPERMISSIONMISSING = -99; ; /***/ }), /***/ "./ts/gen/eventIds.ts": /*!****************************!*\ !*** ./ts/gen/eventIds.ts ***! \****************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ CaptureEventIds: () => (/* binding */ CaptureEventIds), /* harmony export */ CaptureEventTypes: () => (/* binding */ CaptureEventTypes) /* harmony export */ }); //eventIds.ts //This file is generated when calling npm run update // // var CaptureEventIds; (function (CaptureEventIds) { // Capture has not been correctly initialized after its first open. // Type: kNone CaptureEventIds[CaptureEventIds["NotInitialized"] = 0] = "NotInitialized"; // Event when a device has connected or is present. // Type: kDeviceInfo CaptureEventIds[CaptureEventIds["DeviceArrival"] = 1] = "DeviceArrival"; // Event when a device is no longer present. // Type: kDeviceInfo CaptureEventIds[CaptureEventIds["DeviceRemoval"] = 2] = "DeviceRemoval"; // Event when Capture is terminated. // Type: kUlong CaptureEventIds[CaptureEventIds["Terminate"] = 3] = "Terminate"; // Event when Capture had an error. // Type: kUlong CaptureEventIds[CaptureEventIds["Error"] = 4] = "Error"; // Event when Capture has some decoded data available. // Type: kDecodedData CaptureEventIds[CaptureEventIds["DecodedData"] = 5] = "DecodedData"; // Event when a device sends a power change notification. // Type: kUlong CaptureEventIds[CaptureEventIds["Power"] = 6] = "Power"; // Event when the device button status has changed. // Type: kUlong CaptureEventIds[CaptureEventIds["Buttons"] = 7] = "Buttons"; // Event when the battery Level has changed. // Type: kUlong CaptureEventIds[CaptureEventIds["BatteryLevel"] = 8] = "BatteryLevel"; // Event when the communication listener thread has started. // Type: kUlong CaptureEventIds[CaptureEventIds["ListenerStarted"] = 9] = "ListenerStarted"; // Event when a device ownership has changed. // Type: kString CaptureEventIds[CaptureEventIds["DeviceOwnership"] = 10] = "DeviceOwnership"; // Event when the Device Manager (BLE) is present. // Type: kDeviceInfo CaptureEventIds[CaptureEventIds["DeviceManagerArrival"] = 11] = "DeviceManagerArrival"; // Event when the Device Manager (BLE) is gone. // Type: kDeviceInfo CaptureEventIds[CaptureEventIds["DeviceManagerRemoval"] = 12] = "DeviceManagerRemoval"; // A device has been discovered. // Type: kDeviceInfo CaptureEventIds[CaptureEventIds["DeviceDiscovered"] = 13] = "DeviceDiscovered"; // The device discovery has ended. // Type: kNone CaptureEventIds[CaptureEventIds["DiscoveryEnd"] = 14] = "DiscoveryEnd"; // Event when a CaptureSDK log trace is generated. // Type: kString CaptureEventIds[CaptureEventIds["LogTrace"] = 21] = "LogTrace"; // The Last Event should always be the last ID in the list of possible events. // Type: kNone CaptureEventIds[CaptureEventIds["LastID"] = 22] = "LastID"; })(CaptureEventIds || (CaptureEventIds = {})); ; var CaptureEventTypes; (function (CaptureEventTypes) { // For capture events that don't have any value. CaptureEventTypes[CaptureEventTypes["None"] = 0] = "None"; // The event has a byte value. CaptureEventTypes[CaptureEventTypes["Byte"] = 1] = "Byte"; // The event has a unsigned long value. CaptureEventTypes[CaptureEventTypes["Ulong"] = 2] = "Ulong"; // The event has a byte array value. CaptureEventTypes[CaptureEventTypes["Array"] = 3] = "Array"; // The event has a string value. CaptureEventTypes[CaptureEventTypes["String"] = 4] = "String"; // The event has a decoded data structure as value. CaptureEventTypes[CaptureEventTypes["DecodedData"] = 5] = "DecodedData"; // The event has a device info structure as value (read only). CaptureEventTypes[CaptureEventTypes["DeviceInfo"] = 6] = "DeviceInfo"; // The event has an object structure (array, map, dictionary) as value (read only). CaptureEventTypes[CaptureEventTypes["Object"] = 7] = "Object"; // The event type should not be equal or higher that kLastID otherwise // it means the SDK is not in sync with the actual version of Socket // Mobile Companion running on the host. CaptureEventTypes[CaptureEventTypes["LastID"] = 8] = "LastID"; })(CaptureEventTypes || (CaptureEventTypes = {})); ; /***/ }), /***/ "./ts/gen/propertyIdsTypes.ts": /*!************************************!*\ !*** ./ts/gen/propertyIdsTypes.ts ***! \************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ CapturePropertyIds: () => (/* binding */ CapturePropertyIds), /* harmony export */ CapturePropertyTypes: () => (/* binding */ CapturePropertyTypes) /* harmony export */ }); //PropertyIdsTypes.ts //This file is generated when calling npm run update // // var CapturePropertyIds; (function (CapturePropertyIds) { // 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. // Device: False Get Type: NotApplicable Set Type: None CapturePropertyIds[CapturePropertyIds["Abort"] = -2146435072] = "Abort"; // Gets the Capture service version. // Device: False Get Type: None Set Type: NotApplicable CapturePropertyIds[CapturePropertyIds["Version"] = -2147418111] = "Version"; // 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. // Device: False Get Type: None Set Type: NotApplicable CapturePropertyIds[CapturePropertyIds["InterfaceVersion"] = -2147418112] = "InterfaceVersion"; // property to set or get the Capture configuration // Device: False Get Type: String Set Type: String CapturePropertyIds[CapturePropertyIds["Configuration"] = -2141913085] = "Configuration"; // Gets or sets the data confirmation mode. The data confirmation mode // determines who acknowledges whether the data received was good or // bad. // Device: False Get Type: None Set Type: Byte CapturePropertyIds[CapturePropertyIds["DataConfirmationMode"] = -2147352572] = "DataConfirmationMode"; // Gets or sets the data confirmation action. Data confirmation action // determines how good or bad data is acknowledged. // Device: False Get Type: None Set Type: Ulong CapturePropertyIds[CapturePropertyIds["DataConfirmationAction"] = -2147287035] = "DataConfirmationAction"; // Gets or sets the log level of various Capture service components // (Only works on debug builds of the service). // Device: False Get Type: Byte Set Type: Array CapturePropertyIds[CapturePropertyIds["MonitorMode"] = -2145124346] = "MonitorMode"; // property to get or set the SocketCam status // Device: False Get Type: None Set Type: Byte CapturePropertyIds[CapturePropertyIds["SocketCamStatus"] = -2147352569] = "SocketCamStatus"; // Gets the firmware version of the device // Device: True Get Type: None Set Type: NotApplicable CapturePropertyIds[CapturePropertyIds["VersionDevice"] = 65536] = "VersionDevice"; // Gets the model of the device // Device: True Get Type: None Set Type: NotApplicable CapturePropertyIds[CapturePropertyIds["DeviceType"] = 65538] = "DeviceType"; // Sends an arbitrary get or set command to the device // Device: True Get Type: Array Set Type: Array CapturePropertyIds[CapturePropertyIds["DeviceSpecific"] = 4456451] = "DeviceSpecific"; // property to get or set the data source status / information // Device: True Get Type: DataSource Set Type: DataSource CapturePropertyIds[CapturePropertyIds["DataSourceDevice"] = 7798788] = "DataSourceDevice"; // Sets the trigger of the device - can start or stop a read and // enable or disable the physical trigger button on the device. // Device: True Get Type: NotApplicable Set Type: Byte CapturePropertyIds[CapturePropertyIds["TriggerDevice"] = 1179653] = "TriggerDevice"; // property to apply a config to a Capture Device (not yet enabled) // Device: True Get Type: NotApplicable Set Type: None CapturePropertyIds[CapturePropertyIds["ApplyConfigDevice"] = 1048582] = "ApplyConfigDevice"; // Gets or sets a preamble for data decoded by the device. When set, // the preamble is added in front of the decoded data. // Device: True Get Type: None Set Type: String CapturePropertyIds[CapturePropertyIds["PreambleDevice"] = 327687] = "PreambleDevice"; // 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: True Get Type: None Set Type: String CapturePropertyIds[CapturePropertyIds["PostambleDevice"] = 327688] = "PostambleDevice"; // property to get the Capture Device capabilities // Device: True Get Type: Byte Set Type: NotApplicable CapturePropertyIds[CapturePropertyIds["CapabilitiesDevice"] = 2162697] = "CapabilitiesDevice"; // 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: True Get Type: None Set Type: NotApplicable CapturePropertyIds[CapturePropertyIds["ChangeIdDevice"] = 65546] = "ChangeIdDevice"; // property to get or set the Decoded Data Format of a Capture Device // Device: True Get Type: None Set Type: Byte CapturePropertyIds[CapturePropertyIds["DataFormatDevice"] = 131083] = "DataFormatDevice"; // Gets or sets the friendly name of the device. The friendly name is // the name that appears in Bluetooth settings. // Device: True Get Type: None Set Type: String CapturePropertyIds[CapturePropertyIds["FriendlyNameDevice"] = 327936] = "FriendlyNameDevice"; // property to get or set the Capture Device Security Mode // Device: True Get Type: None Set Type: Byte CapturePropertyIds[CapturePropertyIds["SecurityModeDevice"] = 131329] = "SecurityModeDevice"; // property to get or set the Capture Device PIN code // Device: True Get Type: NotApplicable Set Type: String CapturePropertyIds[CapturePropertyIds["PinCodeDevice"] = 1376514] = "PinCodeDevice"; // Set deletes pairing and bonding information off the device. Useful // when preparing to pair the Capture device to a different host. // Device: True Get Type: NotApplicable Set Type: Byte CapturePropertyIds[CapturePropertyIds["DeletePairingBondingDevice"] = 1179907] = "DeletePairingBondingDevice"; // Set resets all the settings on the device to their default values. // Device: True Get Type: NotApplicable Set Type: None CapturePropertyIds[CapturePropertyIds["RestoreFactoryDefaultsDevice"] = 1048836] = "RestoreFactoryDefaultsDevice"; // Set turns the device off // Device: True Get Type: NotApplicable Set Type: None CapturePropertyIds[CapturePropertyIds["SetPowerOffDevice"] = 1048837] = "SetPowerOffDevice"; // Gets the current state of each button on the device. Consider using // kNotificationsDevice to subscribe to button events instead. // Device: True Get Type: None Set Type: NotApplicable CapturePropertyIds[CapturePropertyIds["ButtonsStatusDevice"] = 65792] = "ButtonsStatusDevice"; // 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: True Get Type: Byte Set Type: Array CapturePropertyIds[CapturePropertyIds["SoundConfigDevice"] = 2359559] = "SoundConfigDevice"; // 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: True Get Type: None Set Type: Array CapturePropertyIds[CapturePropertyIds["TimersDevice"] = 262408] = "TimersDevice"; // 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: True Get Type: None Set Type: Byte CapturePropertyIds[CapturePropertyIds["LocalAcknowledgmentDevice"] = 131337] = "LocalAcknowledgmentDevice"; // Sends an acknowledgement to the device. Acknowledgement can either // be positive or negative - a.k.a. good scan or bad scan. // Device: True Get Type: NotApplicable Set Type: Ulong CapturePropertyIds[CapturePropertyIds["DataConfirmationDevice"] = 1245450] = "DataConfirmationDevice"; // Gets the current battery level of the device. Consider using // kNotificationsDevice to subscribe to battery level change events // instead. // Device: True Get Type: None Set Type: NotApplicable CapturePropertyIds[CapturePropertyIds["BatteryLevelDevice"] = 65803] = "BatteryLevelDevice"; // 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: True Get Type: None Set Type: Byte CapturePropertyIds[CapturePropertyIds["LocalDecodeActionDevice"] = 131340] = "LocalDecodeActionDevice"; // Gets the Bluetooth address of the device // Device: True Get Type: None Set Type: NotApplicable CapturePropertyIds[CapturePropertyIds["BluetoothAddressDevice"] = 65805] = "BluetoothAddressDevice"; // Gets the statistics counters of the device. Counters record the // absolute number of times a particular event has occurred. // Device: True Get Type: None Set Type: NotApplicable CapturePropertyIds[CapturePropertyIds["StatisticCountersDevice"] = 65806] = "StatisticCountersDevice"; // 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: True Get Type: Byte Set Type: Array CapturePropertyIds[CapturePropertyIds["RumbleConf