@iotize/device-com-ble.cordova 3.2.1 → 3.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +174 -177
- package/bundles/iotize-device-com-ble.cordova.umd.js +102 -69
- package/bundles/iotize-device-com-ble.cordova.umd.js.map +1 -1
- package/bundles/iotize-device-com-ble.cordova.umd.min.js +16 -0
- package/bundles/iotize-device-com-ble.cordova.umd.min.js.map +1 -0
- package/esm2015/lib/ble-com-protocol.js +10 -10
- package/esm2015/lib/ble-com-protocol.js.map +1 -1
- package/esm2015/lib/cordova-ble-error.js +11 -2
- package/esm2015/lib/cordova-ble-error.js.map +1 -1
- package/esm2015/lib/cordova-interface.js.map +1 -1
- package/esm2015/lib/cordova-service-adapter.js +15 -14
- package/esm2015/lib/cordova-service-adapter.js.map +1 -1
- package/esm2015/lib/cordova-service-adapter.metadata.json +1 -1
- package/esm2015/lib/definitions.js +0 -2
- package/esm2015/lib/definitions.js.map +1 -1
- package/esm2015/lib/iotize-ble-cordova-plugin.js +59 -51
- package/esm2015/lib/iotize-ble-cordova-plugin.js.map +1 -1
- package/esm2015/lib/iotize-ble-cordova-plugin.metadata.json +1 -1
- package/esm2015/lib/iotize-ble-cordova-plugin.ngsummary.json +1 -1
- package/esm2015/lib/logger.js +1 -1
- package/esm2015/lib/logger.js.map +1 -1
- package/esm2015/lib/scanner.js +14 -12
- package/esm2015/lib/scanner.js.map +1 -1
- package/esm2015/lib/scanner.metadata.json +1 -1
- package/esm2015/lib/utility.js +1 -1
- package/esm2015/lib/utility.js.map +1 -1
- package/esm2015/public_api.js +4 -4
- package/esm2015/public_api.js.map +1 -1
- package/fesm2015/iotize-device-com-ble.cordova.js +93 -74
- package/fesm2015/iotize-device-com-ble.cordova.js.map +1 -1
- package/iotize-device-com-ble.cordova.metadata.json +1 -1
- package/lib/ble-com-protocol.d.ts +4 -4
- package/lib/cordova-ble-error.d.ts +12 -3
- package/lib/cordova-service-adapter.d.ts +1 -1
- package/lib/definitions.d.ts +1 -1
- package/lib/iotize-ble-cordova-plugin.d.ts +4 -3
- package/lib/scanner.d.ts +4 -4
- package/package.json +1 -1
- package/plugin.xml +66 -63
- package/public_api.d.ts +5 -5
- package/src/android/.gradle/4.8.1/fileHashes/fileHashes.bin +0 -0
- package/src/android/.gradle/4.8.1/fileHashes/fileHashes.lock +0 -0
- package/src/android/build.gradle +1 -0
- package/src/android/src/ble/BLECom.java +559 -558
- package/src/ios/BLECom.swift +732 -732
- package/src/windows/IoTizeBLE.pdb +0 -0
- package/src/windows/IoTizeBLE.pri +0 -0
- package/src/windows/iotize-ble-com.js +159 -179
- package/www/plugin.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ble-com-protocol.js","sourceRoot":"","sources":["../../../../../src/lib/ble-com-protocol.ts"],"names":[],"mappings":";;;;;;;;;AAAA,EAAE;AACF,mEAAmE;AACnE,EAAE;AACF,uBAAuB;AACvB,6CAA6C;AAC7C,EAAE;AACF,OAAO,EAKL,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAc,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAUlD,YACU,QAAgB,EACxB,kBAAuC,EACvB,yBAAkD;QAElE,KAAK,EAAE,CAAC;QAJA,aAAQ,GAAR,QAAQ,CAAQ;QAER,8BAAyB,GAAzB,yBAAyB,CAAyB;QAGlE,IAAI,kBAAkB,EAAE;YACtB,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;SACtC;IACH,CAAC;IApBD;;;;OAIG;IACH,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,yBAAyB,IAAI,yBAAyB,EAAE,CAAC;IACvE,CAAC;IAeD,QAAQ,CAAC,OAAmC;QAC1C,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,eAAe;aACxB,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC5C,IAAI,CACH,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,EACF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,eAAe,CAAC,SAAS,CAAC,EACtD,KAAK,EAAE,CACR,CAAC;IACN,CAAC;IAED,WAAW,CAAC,OAAsC;QAChD,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;IAEK,KAAK,CAAC,IAAgB;;YAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;KAAA;IAEK,IAAI;;YACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;KAAA;IAED,IAAI,CACF,IAAgB,EAChB,OAAgC;QAEhC,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC;CACF","sourcesContent":["//\
|
|
1
|
+
{"version":3,"file":"ble-com-protocol.js","sourceRoot":"","sources":["../../../../../src/lib/ble-com-protocol.ts"],"names":[],"mappings":";;;;;;;;;AAAA,EAAE;AACF,mEAAmE;AACnE,EAAE;AACF,uBAAuB;AACvB,6CAA6C;AAC7C,EAAE;AACF,OAAO,EAKL,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAc,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAUlD,YACU,QAAgB,EACxB,kBAAuC,EACvB,yBAAkD;QAElE,KAAK,EAAE,CAAC;QAJA,aAAQ,GAAR,QAAQ,CAAQ;QAER,8BAAyB,GAAzB,yBAAyB,CAAyB;QAGlE,IAAI,kBAAkB,EAAE;YACtB,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;SACtC;IACH,CAAC;IApBD;;;;OAIG;IACH,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,yBAAyB,IAAI,yBAAyB,EAAE,CAAC;IACvE,CAAC;IAeD,QAAQ,CAAC,OAAmC;QAC1C,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,eAAe;aACxB,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC5C,IAAI,CACH,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,EACF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,eAAe,CAAC,SAAS,CAAC,EACtD,KAAK,EAAE,CACR,CAAC;IACN,CAAC;IAED,WAAW,CAAC,OAAsC;QAChD,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;IAEK,KAAK,CAAC,IAAgB;;YAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;KAAA;IAEK,IAAI;;YACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;KAAA;IAED,IAAI,CACF,IAAgB,EAChB,OAAgC;QAEhC,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC;CACF","sourcesContent":["//\n// Copyright 2018 IoTize SAS Inc. Licensed under the MIT license.\n//\n// ble-com-protocol.ts\n// device-com-ble.cordova BLE Cordova Plugin\n//\nimport {\n ComProtocolConnectOptions,\n ComProtocolDisconnectOptions,\n ComProtocolOptions,\n ComProtocolSendOptions,\n ConnectionState,\n} from \"@iotize/tap/protocol/api\";\nimport { QueueComProtocol } from \"@iotize/tap/protocol/core\";\nimport { defer, Observable } from \"rxjs\";\nimport { filter, first, tap } from \"rxjs/operators\";\nimport { IoTizeBleCordovaPlugin } from \"./iotize-ble-cordova-plugin\";\nimport { debug } from \"./logger\";\nimport { getIoTizeBleCordovaPlugin } from \"./utility\";\n\nexport class BLEComProtocol extends QueueComProtocol {\n /**\n * Lazy reference to iotizeBLE.\n * We don't want to reference iotizeBLE in constructor as it may be referenced\n * before cordova plugin is loaded\n */\n private get pluginInterface(): IoTizeBleCordovaPlugin {\n return this.cordovaInterfaceOverwrite || getIoTizeBleCordovaPlugin();\n }\n\n constructor(\n private deviceId: string,\n comProtocolOptions?: ComProtocolOptions,\n public readonly cordovaInterfaceOverwrite?: IoTizeBleCordovaPlugin\n ) {\n super();\n if (comProtocolOptions) {\n this.options = comProtocolOptions;\n } else {\n this.options.connect.timeout = 60000;\n }\n }\n\n _connect(options?: ComProtocolConnectOptions): Observable<any> {\n debug(\"_connect\", options);\n return this.pluginInterface\n .connectAndDiscoverTapServices(this.deviceId)\n .pipe(\n tap((state) => {\n this.setConnectionState(state);\n }),\n filter((state) => state === ConnectionState.CONNECTED),\n first()\n );\n }\n\n _disconnect(options?: ComProtocolDisconnectOptions): Observable<any> {\n debug(\"_disconnect\", options);\n return defer(() => this.pluginInterface.disConnect(this.deviceId));\n }\n\n async write(data: Uint8Array): Promise<any> {\n throw new Error(\"Method not implemented.\");\n }\n\n async read(): Promise<Uint8Array> {\n throw new Error(\"Method not implemented.\");\n }\n\n send(\n data: Uint8Array,\n options?: ComProtocolSendOptions\n ): Observable<Uint8Array> {\n return defer(() => this.pluginInterface.send(this.deviceId, data));\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CodeError } from
|
|
1
|
+
import { CodeError } from '@iotize/common/error';
|
|
2
2
|
export class CordovaBLEError extends CodeError {
|
|
3
3
|
static invalidErrorResult(errObject) {
|
|
4
4
|
return new CordovaBLEError(`Internal error: ble cordova plugin returned an unexpected error object`, CordovaBLEError.Code.InternalError);
|
|
@@ -10,7 +10,7 @@ export class CordovaBLEError extends CodeError {
|
|
|
10
10
|
return new CordovaBLEError(`Internal error: native call returned an invalid data type. ${cause.message}`, CordovaBLEError.Code.InternalError);
|
|
11
11
|
}
|
|
12
12
|
static isValidErrorCode(code) {
|
|
13
|
-
return
|
|
13
|
+
return code in CordovaBLEError.Code;
|
|
14
14
|
}
|
|
15
15
|
static iotizeBLEMissing() {
|
|
16
16
|
return new CordovaBLEError(`iotizeBLE global variable does not exist. Are you sure app is running inside a Cordova application ?`, CordovaBLEError.Code.InternalError);
|
|
@@ -22,6 +22,15 @@ export class CordovaBLEError extends CodeError {
|
|
|
22
22
|
(function (Code) {
|
|
23
23
|
Code["InternalError"] = "CordovaBLEErrorInternalError";
|
|
24
24
|
Code["IllegalArgument"] = "CordovaBLEErrorIllegalArgument";
|
|
25
|
+
Code["BLENotAvailable"] = "CordovaBLEErrorBLENotAvailable";
|
|
26
|
+
Code["InvalidMacAddress"] = "InvalidMacAddressInvalidMacAddress";
|
|
27
|
+
Code["ConnectionError"] = "CordovaBLEErrorConnectionError";
|
|
28
|
+
Code["RequestError"] = "CordovaBLEErrorRequestError";
|
|
29
|
+
Code["LocationServiceDisabled"] = "CordovaBLEErrorLocationServiceDisabled";
|
|
30
|
+
Code["DisconnectError"] = "CordovaBLEErrorDisconnectError";
|
|
31
|
+
Code["IllegalAction"] = "CordovaBLEErrorIllegalAction";
|
|
32
|
+
Code["NotConnectedError"] = "CordovaBLEErrorNotConnectedError";
|
|
33
|
+
Code["StatusCodeError"] = "CordovaBLEErrorStatusCodeError";
|
|
25
34
|
})(Code = CordovaBLEError.Code || (CordovaBLEError.Code = {}));
|
|
26
35
|
})(CordovaBLEError || (CordovaBLEError = {}));
|
|
27
36
|
//# sourceMappingURL=cordova-ble-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cordova-ble-error.js","sourceRoot":"","sources":["../../../../../src/lib/cordova-ble-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,OAAO,eAAgB,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"cordova-ble-error.js","sourceRoot":"","sources":["../../../../../src/lib/cordova-ble-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,MAAM,CAAC,kBAAkB,CAAC,SAGzB;QACC,OAAO,IAAI,eAAe,CACxB,wEAAwE,EACxE,eAAe,CAAC,IAAI,CAAC,aAAa,CACnC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,SAGvB;QACC,OAAO,IAAI,eAAe,CACxB,qEAAqE,SAAS,CAAC,IAAI,iBAAiB,SAAS,CAAC,OAAO,EAAE,EACvH,eAAe,CAAC,IAAI,CAAC,aAAa,CACnC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,MAAW,EAAE,KAAY;QACtD,OAAO,IAAI,eAAe,CACxB,8DAA8D,KAAK,CAAC,OAAO,EAAE,EAC7E,eAAe,CAAC,IAAI,CAAC,aAAa,CACnC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,IAAY;QAEZ,OAAO,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,gBAAgB;QACrB,OAAO,IAAI,eAAe,CACxB,sGAAsG,EACtG,eAAe,CAAC,IAAI,CAAC,aAAa,CACnC,CAAC;IACJ,CAAC;CACF;AAED,0BAA0B;AAC1B,WAAiB,eAAe;IAC9B,IAAY,IAYX;IAZD,WAAY,IAAI;QACd,sDAA8C,CAAA;QAC9C,0DAAkD,CAAA;QAClD,0DAAkD,CAAA;QAClD,gEAAwD,CAAA;QACxD,0DAAkD,CAAA;QAClD,oDAA4C,CAAA;QAC5C,0EAAkE,CAAA;QAClE,0DAAkD,CAAA;QAClD,sDAA8C,CAAA;QAC9C,8DAAsD,CAAA;QACtD,0DAAkD,CAAA;IACpD,CAAC,EAZW,IAAI,GAAJ,oBAAI,KAAJ,oBAAI,QAYf;AACH,CAAC,EAdgB,eAAe,KAAf,eAAe,QAc/B","sourcesContent":["import { CodeError } from '@iotize/common/error';\n\nexport class CordovaBLEError extends CodeError {\n static invalidErrorResult(errObject: {\n code?: string | undefined;\n message?: string | undefined;\n }): CordovaBLEError {\n return new CordovaBLEError(\n `Internal error: ble cordova plugin returned an unexpected error object`,\n CordovaBLEError.Code.InternalError\n );\n }\n\n static invalidErrorCode(errObject: {\n code?: string | undefined;\n message?: string | undefined;\n }): CordovaBLEError {\n return new CordovaBLEError(\n `Internal error: ble cordova plugin returned an invalid error code ${errObject.code} with message ${errObject.message}`,\n CordovaBLEError.Code.InternalError\n );\n }\n\n static invalidNativeCallResult(result: any, cause: Error): CordovaBLEError {\n return new CordovaBLEError(\n `Internal error: native call returned an invalid data type. ${cause.message}`,\n CordovaBLEError.Code.InternalError\n );\n }\n\n static isValidErrorCode(\n code: string\n ): code is keyof typeof CordovaBLEError.Code {\n return code in CordovaBLEError.Code;\n }\n\n static iotizeBLEMissing() {\n return new CordovaBLEError(\n `iotizeBLE global variable does not exist. Are you sure app is running inside a Cordova application ?`,\n CordovaBLEError.Code.InternalError\n );\n }\n}\n\n/* istanbul ignore next */\nexport namespace CordovaBLEError {\n export enum Code {\n InternalError = 'CordovaBLEErrorInternalError',\n IllegalArgument = 'CordovaBLEErrorIllegalArgument',\n BLENotAvailable = 'CordovaBLEErrorBLENotAvailable',\n InvalidMacAddress = 'InvalidMacAddressInvalidMacAddress',\n ConnectionError = 'CordovaBLEErrorConnectionError',\n RequestError = 'CordovaBLEErrorRequestError',\n LocationServiceDisabled = 'CordovaBLEErrorLocationServiceDisabled',\n DisconnectError = 'CordovaBLEErrorDisconnectError',\n IllegalAction = 'CordovaBLEErrorIllegalAction',\n NotConnectedError = 'CordovaBLEErrorNotConnectedError',\n StatusCodeError = 'CordovaBLEErrorStatusCodeError',\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cordova-interface.js","sourceRoot":"","sources":["../../../../../src/lib/cordova-interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface CordovaInterface {\
|
|
1
|
+
{"version":3,"file":"cordova-interface.js","sourceRoot":"","sources":["../../../../../src/lib/cordova-interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface CordovaInterface {\n exec<T>(\n success: SuccessCallback<T>,\n error: ErrorCallback,\n className: string,\n action: string,\n ...args: any[]\n ): void;\n}\n\nexport type ErrorCallback = (err: Error) => void;\n\nexport type SuccessCallback<T> = (data: T) => void;\n"]}
|
|
@@ -8,9 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { ConnectionState } from "@iotize/tap/protocol/api";
|
|
11
|
-
import { BleComError } from "@iotize/tap/protocol/ble/common";
|
|
11
|
+
import { BleComError, } from "@iotize/tap/protocol/ble/common";
|
|
12
12
|
import { BehaviorSubject } from "rxjs";
|
|
13
|
-
import { distinctUntilChanged, filter, first, map, shareReplay } from "rxjs/operators";
|
|
13
|
+
import { distinctUntilChanged, filter, first, map, shareReplay, } from "rxjs/operators";
|
|
14
14
|
import { getIoTizeBleCordovaPlugin } from "./utility";
|
|
15
15
|
export class CordovaPeripheralAdapter {
|
|
16
16
|
constructor(deviceId, cordovaPlugin = getIoTizeBleCordovaPlugin()) {
|
|
@@ -22,7 +22,7 @@ export class CordovaPeripheralAdapter {
|
|
|
22
22
|
return this._stateChange.asObservable().pipe(distinctUntilChanged());
|
|
23
23
|
}
|
|
24
24
|
get name() {
|
|
25
|
-
// TODO device name ?
|
|
25
|
+
// TODO device name ?
|
|
26
26
|
return this.id;
|
|
27
27
|
}
|
|
28
28
|
get id() {
|
|
@@ -37,7 +37,7 @@ export class CordovaPeripheralAdapter {
|
|
|
37
37
|
const result = {};
|
|
38
38
|
if (serviceUUIDs) {
|
|
39
39
|
for (const uuid of serviceUUIDs) {
|
|
40
|
-
const servicDefinition = this.serviceListCache.find(def => def.uuid === uuid);
|
|
40
|
+
const servicDefinition = this.serviceListCache.find((def) => def.uuid === uuid);
|
|
41
41
|
if (servicDefinition) {
|
|
42
42
|
result[uuid] = new CordovaServiceAdapter(servicDefinition, this);
|
|
43
43
|
}
|
|
@@ -55,13 +55,14 @@ export class CordovaPeripheralAdapter {
|
|
|
55
55
|
var _a;
|
|
56
56
|
return __awaiter(this, void 0, void 0, function* () {
|
|
57
57
|
(_a = this.connectionStateSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
58
|
-
const connectObservable = this.cordovaPlugin
|
|
59
|
-
|
|
60
|
-
.
|
|
58
|
+
const connectObservable = this.cordovaPlugin
|
|
59
|
+
.connect(this.deviceId)
|
|
60
|
+
.pipe(shareReplay());
|
|
61
|
+
this.connectionStateSubscription = connectObservable.subscribe((state) => {
|
|
61
62
|
this._stateChange.next(state);
|
|
62
63
|
});
|
|
63
64
|
yield connectObservable
|
|
64
|
-
.pipe(filter(state => state === ConnectionState.CONNECTED), first())
|
|
65
|
+
.pipe(filter((state) => state === ConnectionState.CONNECTED), first())
|
|
65
66
|
.toPromise();
|
|
66
67
|
});
|
|
67
68
|
}
|
|
@@ -86,7 +87,7 @@ export class CordovaPeripheralAdapter {
|
|
|
86
87
|
if (!this.serviceListCache) {
|
|
87
88
|
yield this.discoverServices([uuid]);
|
|
88
89
|
}
|
|
89
|
-
const serviceDefinition = this.serviceListCache.find(s => s.uuid === uuid);
|
|
90
|
+
const serviceDefinition = this.serviceListCache.find((s) => s.uuid === uuid);
|
|
90
91
|
if (!serviceDefinition) {
|
|
91
92
|
throw BleComError.serviceNotFound(uuid);
|
|
92
93
|
}
|
|
@@ -105,7 +106,7 @@ export class CordovaServiceAdapter {
|
|
|
105
106
|
getCharacteristic(charcUUID) {
|
|
106
107
|
var _a;
|
|
107
108
|
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
-
const characteristicDescription = (_a = this.config.characteristics) === null || _a === void 0 ? void 0 : _a.find(c => c.uuid === charcUUID);
|
|
109
|
+
const characteristicDescription = (_a = this.config.characteristics) === null || _a === void 0 ? void 0 : _a.find((c) => c.uuid === charcUUID);
|
|
109
110
|
if (!characteristicDescription) {
|
|
110
111
|
throw BleComError.charcacteristicNotFound(charcUUID);
|
|
111
112
|
}
|
|
@@ -117,7 +118,7 @@ export class CordovaServiceAdapter {
|
|
|
117
118
|
if (!this.config.characteristics) {
|
|
118
119
|
return [];
|
|
119
120
|
}
|
|
120
|
-
return this.config.characteristics.map(c => new CordovaCharacteristicAdapter(this, c));
|
|
121
|
+
return this.config.characteristics.map((c) => new CordovaCharacteristicAdapter(this, c));
|
|
121
122
|
});
|
|
122
123
|
}
|
|
123
124
|
}
|
|
@@ -133,9 +134,9 @@ export class CordovaCharacteristicAdapter {
|
|
|
133
134
|
return this.config.properties;
|
|
134
135
|
}
|
|
135
136
|
get data() {
|
|
136
|
-
return this.setupDataStreamIfRequired().pipe(map(data => ({
|
|
137
|
+
return this.setupDataStreamIfRequired().pipe(map((data) => ({
|
|
137
138
|
data,
|
|
138
|
-
isNotification: true
|
|
139
|
+
isNotification: true,
|
|
139
140
|
})));
|
|
140
141
|
}
|
|
141
142
|
get deviceId() {
|
|
@@ -159,7 +160,7 @@ export class CordovaCharacteristicAdapter {
|
|
|
159
160
|
if (!this.config.descriptors) {
|
|
160
161
|
return [];
|
|
161
162
|
}
|
|
162
|
-
return this.config.descriptors.map(descriptor => new CordovaDescriptorAdapter(descriptor, this));
|
|
163
|
+
return this.config.descriptors.map((descriptor) => new CordovaDescriptorAdapter(descriptor, this));
|
|
163
164
|
});
|
|
164
165
|
}
|
|
165
166
|
write(data, writeWithoutResponse) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cordova-service-adapter.js","sourceRoot":"","sources":["../../../../../src/lib/cordova-service-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConnectionState } from \"@iotize/tap/protocol/api\";\r\nimport { CharacteristicAdapterInterface, PeripheralAdapterInterface, ServiceAdapterInterface, DescriptorAdapterInterface, BleComError, CharacteristicProperties } from \"@iotize/tap/protocol/ble/common\";\r\nimport { BehaviorSubject, Observable, Subscription } from \"rxjs\";\r\nimport { distinctUntilChanged, filter, first, map, shareReplay } from \"rxjs/operators\";\r\nimport { CharacteristicDescription, DescriptorDescription, ServiceDescription, ServiceList } from \"./definitions\";\r\nimport { IoTizeBleCordovaPlugin } from './iotize-ble-cordova-plugin';\r\nimport { getIoTizeBleCordovaPlugin } from \"./utility\";\r\n\r\nexport class CordovaPeripheralAdapter implements PeripheralAdapterInterface<CordovaServiceAdapter> {\r\n\r\n private _stateChange = new BehaviorSubject<ConnectionState>(ConnectionState.DISCONNECTED);\r\n private connectionStateSubscription?: Subscription;\r\n private serviceListCache?: ServiceList;\r\n\r\n get stateChange() {\r\n return this._stateChange.asObservable().pipe(distinctUntilChanged());\r\n }\r\n\r\n get name() {\r\n // TODO device name ? \r\n return this.id;\r\n }\r\n\r\n get id() {\r\n return this.deviceId;\r\n }\r\n\r\n constructor(\r\n public readonly deviceId: string,\r\n public readonly cordovaPlugin: IoTizeBleCordovaPlugin = getIoTizeBleCordovaPlugin()) {\r\n\r\n }\r\n\r\n get state(): string {\r\n return ConnectionState[this._stateChange.value];\r\n }\r\n\r\n async discoverServices<Key extends string = string>(serviceUUIDs?: Key[]): Promise<Partial<Record<Key, CordovaServiceAdapter>>> {\r\n this.serviceListCache = await this.cordovaPlugin.discoverServices(this.deviceId);\r\n const result: Partial<Record<Key, CordovaServiceAdapter>> = {};\r\n if (serviceUUIDs) {\r\n for (const uuid of serviceUUIDs) {\r\n const servicDefinition = this.serviceListCache.find(def => def.uuid === uuid);\r\n if (servicDefinition) {\r\n result[uuid] = new CordovaServiceAdapter(servicDefinition, this);\r\n }\r\n }\r\n }\r\n else {\r\n for (const serviceDefinition of this.serviceListCache) {\r\n result[serviceDefinition.uuid as Key] = new CordovaServiceAdapter(serviceDefinition, this);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n async connect(): Promise<void> {\r\n this.connectionStateSubscription?.unsubscribe();\r\n const connectObservable = this.cordovaPlugin.connect(this.deviceId).pipe(shareReplay());\r\n this.connectionStateSubscription = connectObservable\r\n .subscribe(state => {\r\n this._stateChange.next(state);\r\n });\r\n await connectObservable\r\n .pipe(\r\n filter(state => state === ConnectionState.CONNECTED),\r\n first()\r\n )\r\n .toPromise();\r\n }\r\n\r\n async disconnect(): Promise<void> {\r\n await this.cordovaPlugin.disConnect(this.deviceId);\r\n this._stateChange.next(ConnectionState.DISCONNECTED);\r\n this.connectionStateSubscription?.unsubscribe();\r\n }\r\n\r\n async close(): Promise<void> {\r\n await this.cordovaPlugin.close(this.deviceId);\r\n this._stateChange.next(ConnectionState.DISCONNECTED);\r\n this.connectionStateSubscription?.unsubscribe();\r\n }\r\n\r\n async getService(uuid: string): Promise<CordovaServiceAdapter> {\r\n if (!this.serviceListCache) {\r\n await this.discoverServices([uuid]);\r\n }\r\n const serviceDefinition = this.serviceListCache!.find(s => s.uuid === uuid);\r\n if (!serviceDefinition) {\r\n throw BleComError.serviceNotFound(uuid);\r\n }\r\n return new CordovaServiceAdapter(serviceDefinition, this);\r\n }\r\n\r\n}\r\n\r\n\r\nexport class CordovaServiceAdapter implements ServiceAdapterInterface {\r\n\r\n get uuid() {\r\n return this.config.uuid;\r\n }\r\n\r\n constructor(private readonly config: ServiceDescription, public readonly peripheral: CordovaPeripheralAdapter) {\r\n\r\n }\r\n\r\n async getCharacteristic(charcUUID: string): Promise<CordovaCharacteristicAdapter> {\r\n const characteristicDescription = this.config.characteristics?.find(c => c.uuid === charcUUID);\r\n if (!characteristicDescription) {\r\n throw BleComError.charcacteristicNotFound(charcUUID);\r\n }\r\n return new CordovaCharacteristicAdapter(this, characteristicDescription);\r\n }\r\n\r\n async getCharacteristics(): Promise<CordovaCharacteristicAdapter[]> {\r\n if (!this.config.characteristics) {\r\n return [];\r\n }\r\n return this.config.characteristics.map(c => new CordovaCharacteristicAdapter(this, c));\r\n }\r\n\r\n}\r\n\r\nexport class CordovaCharacteristicAdapter implements CharacteristicAdapterInterface {\r\n private _dataStream?: Observable<Uint8Array>;\r\n\r\n get uuid() {\r\n return this.config.uuid;\r\n }\r\n\r\n constructor(public readonly service: CordovaServiceAdapter, public readonly config: CharacteristicDescription) {\r\n }\r\n \r\n get properties(): CharacteristicProperties {\r\n return this.config.properties;\r\n }\r\n\r\n get data(): Observable<{ data: Uint8Array; isNotification: boolean; }> {\r\n return this.setupDataStreamIfRequired().pipe(\r\n map(data => ({\r\n data,\r\n isNotification: true\r\n }))\r\n )\r\n }\r\n\r\n protected get deviceId() {\r\n return this.service.peripheral.deviceId;\r\n }\r\n\r\n protected get pluginInterface() {\r\n return this.service.peripheral.cordovaPlugin;\r\n }\r\n\r\n async read(): Promise<Uint8Array> {\r\n return this.pluginInterface.characteristicReadValue(\r\n this.deviceId,\r\n this.service.uuid,\r\n this.uuid\r\n );\r\n }\r\n\r\n async getDescriptor(): Promise<CordovaDescriptorAdapter> {\r\n throw new Error(`Not implemented yet`);\r\n }\r\n\r\n async getDescriptors(): Promise<DescriptorAdapterInterface[]> {\r\n if (!this.config.descriptors) {\r\n return [];\r\n }\r\n return this.config.descriptors.map(descriptor => new CordovaDescriptorAdapter(descriptor, this));\r\n }\r\n\r\n async write(data: Uint8Array, writeWithoutResponse: boolean): Promise<Uint8Array> {\r\n if (writeWithoutResponse) {\r\n await this.pluginInterface.characteristicWriteWithoutResponse(\r\n this.deviceId,\r\n this.service.uuid,\r\n this.uuid,\r\n data\r\n );\r\n }\r\n else {\r\n await this.pluginInterface.characteristicWrite(\r\n this.deviceId,\r\n this.service.uuid,\r\n this.uuid,\r\n data\r\n )\r\n }\r\n return data;\r\n }\r\n\r\n async enableNotifications(enabled?: boolean): Promise<void> {\r\n if (enabled) {\r\n this.setupDataStreamIfRequired();\r\n await this.pluginInterface.characteristicStartNotification(\r\n this.deviceId,\r\n this.service.uuid,\r\n this.uuid\r\n );\r\n }\r\n else {\r\n await this.pluginInterface.characteristicStopNotification(\r\n this.deviceId,\r\n this.service.uuid,\r\n this.uuid\r\n )\r\n }\r\n }\r\n\r\n setupDataStreamIfRequired() {\r\n if (!this._dataStream) {\r\n this._dataStream = this.pluginInterface.characteristicChanged(\r\n this.deviceId,\r\n this.service.uuid,\r\n this.uuid\r\n );\r\n }\r\n return this._dataStream;\r\n }\r\n\r\n}\r\n\r\nexport class CordovaDescriptorAdapter implements DescriptorAdapterInterface {\r\n\r\n get uuid() {\r\n return this.config.uuid;\r\n }\r\n\r\n constructor(public readonly config: DescriptorDescription, public readonly characteristic: CordovaCharacteristicAdapter) { }\r\n\r\n async readValue(): Promise<Uint8Array> {\r\n throw new Error(`Reading descriptor value is not implemented yet`);\r\n }\r\n\r\n async writeValue(data: Uint8Array): Promise<void> {\r\n throw new Error(`Writing descriptor value is not implemented yet`);\r\n }\r\n\r\n}"]}
|
|
1
|
+
{"version":3,"file":"cordova-service-adapter.js","sourceRoot":"","sources":["../../../../../src/lib/cordova-service-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConnectionState } from \"@iotize/tap/protocol/api\";\nimport {\n CharacteristicAdapterInterface,\n PeripheralAdapterInterface,\n ServiceAdapterInterface,\n DescriptorAdapterInterface,\n BleComError,\n CharacteristicProperties,\n} from \"@iotize/tap/protocol/ble/common\";\nimport { BehaviorSubject, Observable, Subscription } from \"rxjs\";\nimport {\n distinctUntilChanged,\n filter,\n first,\n map,\n shareReplay,\n} from \"rxjs/operators\";\nimport {\n CharacteristicDescription,\n DescriptorDescription,\n ServiceDescription,\n ServiceList,\n} from \"./definitions\";\nimport { IoTizeBleCordovaPlugin } from \"./iotize-ble-cordova-plugin\";\nimport { getIoTizeBleCordovaPlugin } from \"./utility\";\n\nexport class CordovaPeripheralAdapter\n implements PeripheralAdapterInterface<CordovaServiceAdapter>\n{\n private _stateChange = new BehaviorSubject<ConnectionState>(\n ConnectionState.DISCONNECTED\n );\n private connectionStateSubscription?: Subscription;\n private serviceListCache?: ServiceList;\n\n get stateChange() {\n return this._stateChange.asObservable().pipe(distinctUntilChanged());\n }\n\n get name() {\n // TODO device name ?\n return this.id;\n }\n\n get id() {\n return this.deviceId;\n }\n\n constructor(\n public readonly deviceId: string,\n public readonly cordovaPlugin: IoTizeBleCordovaPlugin = getIoTizeBleCordovaPlugin()\n ) {}\n\n get state(): string {\n return ConnectionState[this._stateChange.value];\n }\n\n async discoverServices<Key extends string = string>(\n serviceUUIDs?: Key[]\n ): Promise<Partial<Record<Key, CordovaServiceAdapter>>> {\n this.serviceListCache = await this.cordovaPlugin.discoverServices(\n this.deviceId\n );\n const result: Partial<Record<Key, CordovaServiceAdapter>> = {};\n if (serviceUUIDs) {\n for (const uuid of serviceUUIDs) {\n const servicDefinition = this.serviceListCache.find(\n (def) => def.uuid === uuid\n );\n if (servicDefinition) {\n result[uuid] = new CordovaServiceAdapter(servicDefinition, this);\n }\n }\n } else {\n for (const serviceDefinition of this.serviceListCache) {\n result[serviceDefinition.uuid as Key] = new CordovaServiceAdapter(\n serviceDefinition,\n this\n );\n }\n }\n return result;\n }\n\n async connect(): Promise<void> {\n this.connectionStateSubscription?.unsubscribe();\n const connectObservable = this.cordovaPlugin\n .connect(this.deviceId)\n .pipe(shareReplay());\n this.connectionStateSubscription = connectObservable.subscribe((state) => {\n this._stateChange.next(state);\n });\n await connectObservable\n .pipe(\n filter((state) => state === ConnectionState.CONNECTED),\n first()\n )\n .toPromise();\n }\n\n async disconnect(): Promise<void> {\n await this.cordovaPlugin.disConnect(this.deviceId);\n this._stateChange.next(ConnectionState.DISCONNECTED);\n this.connectionStateSubscription?.unsubscribe();\n }\n\n async close(): Promise<void> {\n await this.cordovaPlugin.close(this.deviceId);\n this._stateChange.next(ConnectionState.DISCONNECTED);\n this.connectionStateSubscription?.unsubscribe();\n }\n\n async getService(uuid: string): Promise<CordovaServiceAdapter> {\n if (!this.serviceListCache) {\n await this.discoverServices([uuid]);\n }\n const serviceDefinition = this.serviceListCache!.find(\n (s) => s.uuid === uuid\n );\n if (!serviceDefinition) {\n throw BleComError.serviceNotFound(uuid);\n }\n return new CordovaServiceAdapter(serviceDefinition, this);\n }\n}\n\nexport class CordovaServiceAdapter implements ServiceAdapterInterface {\n get uuid() {\n return this.config.uuid;\n }\n\n constructor(\n private readonly config: ServiceDescription,\n public readonly peripheral: CordovaPeripheralAdapter\n ) {}\n\n async getCharacteristic(\n charcUUID: string\n ): Promise<CordovaCharacteristicAdapter> {\n const characteristicDescription = this.config.characteristics?.find(\n (c) => c.uuid === charcUUID\n );\n if (!characteristicDescription) {\n throw BleComError.charcacteristicNotFound(charcUUID);\n }\n return new CordovaCharacteristicAdapter(this, characteristicDescription);\n }\n\n async getCharacteristics(): Promise<CordovaCharacteristicAdapter[]> {\n if (!this.config.characteristics) {\n return [];\n }\n return this.config.characteristics.map(\n (c) => new CordovaCharacteristicAdapter(this, c)\n );\n }\n}\n\nexport class CordovaCharacteristicAdapter\n implements CharacteristicAdapterInterface\n{\n private _dataStream?: Observable<Uint8Array>;\n\n get uuid() {\n return this.config.uuid;\n }\n\n constructor(\n public readonly service: CordovaServiceAdapter,\n public readonly config: CharacteristicDescription\n ) {}\n\n get properties(): CharacteristicProperties {\n return this.config.properties;\n }\n\n get data(): Observable<{ data: Uint8Array; isNotification: boolean }> {\n return this.setupDataStreamIfRequired().pipe(\n map((data) => ({\n data,\n isNotification: true,\n }))\n );\n }\n\n protected get deviceId() {\n return this.service.peripheral.deviceId;\n }\n\n protected get pluginInterface() {\n return this.service.peripheral.cordovaPlugin;\n }\n\n async read(): Promise<Uint8Array> {\n return this.pluginInterface.characteristicReadValue(\n this.deviceId,\n this.service.uuid,\n this.uuid\n );\n }\n\n async getDescriptor(): Promise<CordovaDescriptorAdapter> {\n throw new Error(`Not implemented yet`);\n }\n\n async getDescriptors(): Promise<DescriptorAdapterInterface[]> {\n if (!this.config.descriptors) {\n return [];\n }\n return this.config.descriptors.map(\n (descriptor) => new CordovaDescriptorAdapter(descriptor, this)\n );\n }\n\n async write(\n data: Uint8Array,\n writeWithoutResponse: boolean\n ): Promise<Uint8Array> {\n if (writeWithoutResponse) {\n await this.pluginInterface.characteristicWriteWithoutResponse(\n this.deviceId,\n this.service.uuid,\n this.uuid,\n data\n );\n } else {\n await this.pluginInterface.characteristicWrite(\n this.deviceId,\n this.service.uuid,\n this.uuid,\n data\n );\n }\n return data;\n }\n\n async enableNotifications(enabled?: boolean): Promise<void> {\n if (enabled) {\n this.setupDataStreamIfRequired();\n await this.pluginInterface.characteristicStartNotification(\n this.deviceId,\n this.service.uuid,\n this.uuid\n );\n } else {\n await this.pluginInterface.characteristicStopNotification(\n this.deviceId,\n this.service.uuid,\n this.uuid\n );\n }\n }\n\n setupDataStreamIfRequired() {\n if (!this._dataStream) {\n this._dataStream = this.pluginInterface.characteristicChanged(\n this.deviceId,\n this.service.uuid,\n this.uuid\n );\n }\n return this._dataStream;\n }\n}\n\nexport class CordovaDescriptorAdapter implements DescriptorAdapterInterface {\n get uuid() {\n return this.config.uuid;\n }\n\n constructor(\n public readonly config: DescriptorDescription,\n public readonly characteristic: CordovaCharacteristicAdapter\n ) {}\n\n async readValue(): Promise<Uint8Array> {\n throw new Error(`Reading descriptor value is not implemented yet`);\n }\n\n async writeValue(data: Uint8Array): Promise<void> {\n throw new Error(`Writing descriptor value is not implemented yet`);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"CordovaPeripheralAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"./iotize-ble-cordova-plugin","name":"IoTizeBleCordovaPlugin","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"CordovaPeripheralAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"./iotize-ble-cordova-plugin","name":"IoTizeBleCordovaPlugin","line":50,"character":35}]}],"discoverServices":[{"__symbolic":"method"}],"connect":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"getService":[{"__symbolic":"method"}]}},"CordovaServiceAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./definitions","name":"ServiceDescription","line":132,"character":29},{"__symbolic":"reference","name":"CordovaPeripheralAdapter"}]}],"getCharacteristic":[{"__symbolic":"method"}],"getCharacteristics":[{"__symbolic":"method"}]}},"CordovaCharacteristicAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CordovaServiceAdapter"},{"__symbolic":"reference","module":"./definitions","name":"CharacteristicDescription","line":169,"character":28}]}],"read":[{"__symbolic":"method"}],"getDescriptor":[{"__symbolic":"method"}],"getDescriptors":[{"__symbolic":"method"}],"write":[{"__symbolic":"method"}],"enableNotifications":[{"__symbolic":"method"}],"setupDataStreamIfRequired":[{"__symbolic":"method"}]}},"CordovaDescriptorAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./definitions","name":"DescriptorDescription","line":271,"character":28},{"__symbolic":"reference","name":"CordovaCharacteristicAdapter"}]}],"readValue":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}]}}}}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../../src/lib/definitions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../../src/lib/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import { CharacteristicProperties } from \"@iotize/tap/protocol/ble/common\";\n\nexport interface CordovaBLEScanResult {\n name: string;\n address: string;\n rssi?: number;\n}\n\n/**\n * @deprecated\n * use CordovaBLEScanResult instead\n */\nexport type DiscoveredDeviceType = CordovaBLEScanResult;\n\nexport interface RequestDeviceOptions {\n filters: BluetoothLEScanFilter[];\n // optionalServices?: BluetoothServiceUUID[] | undefined;\n // optionalManufacturerData?: number[] | undefined;\n}\n\ninterface BluetoothLEScanFilter {\n // readonly name?: string | undefined;\n // readonly namePrefix?: string | undefined;\n readonly services?: BluetoothServiceUUID[] | undefined;\n // readonly manufacturerData?: BluetoothManufacturerDataFilter[] | undefined;\n // readonly serviceData?: BluetoothServiceDataFilter[] | undefined;\n}\n\ntype BluetoothServiceUUID = string;\n\ntype BluetoothCharacteristicUUID = string;\n\ntype BluetoothDescriptorUUID = string;\n\nexport interface ServiceDescription {\n uuid: BluetoothServiceUUID;\n characteristics?: CharacteristicList;\n [key: string]: any;\n}\n\nexport type ServiceList = ServiceDescription[];\n\nexport interface CharacteristicDescription {\n uuid: BluetoothCharacteristicUUID;\n descriptors?: DescriptorList;\n properties: CharacteristicProperties;\n [key: string]: any;\n}\n\nexport type CharacteristicList = CharacteristicDescription[];\n\nexport interface DescriptorDescription {\n uuid: BluetoothDescriptorUUID;\n [key: string]: any;\n}\n\nexport type DescriptorList = DescriptorDescription[];\n"]}
|
|
@@ -7,12 +7,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { bufferToHexString, hexStringToBuffer as hexStringToBufferCore } from "@iotize/common/byte-converter";
|
|
10
|
+
import { bufferToHexString, hexStringToBuffer as hexStringToBufferCore, } from "@iotize/common/byte-converter";
|
|
11
11
|
import { safeEnumValue } from "@iotize/common/utility";
|
|
12
12
|
import { ConnectionState } from "@iotize/tap/protocol/api";
|
|
13
|
-
import { Subject } from "rxjs";
|
|
13
|
+
import { Subject, defer } from "rxjs";
|
|
14
|
+
import { switchMap } from "rxjs/operators";
|
|
14
15
|
import { map } from "rxjs/operators";
|
|
15
|
-
import { CordovaBLEError } from
|
|
16
|
+
import { CordovaBLEError } from "./cordova-ble-error";
|
|
16
17
|
function hexStringToBuffer(str) {
|
|
17
18
|
try {
|
|
18
19
|
return hexStringToBufferCore(str);
|
|
@@ -23,113 +24,120 @@ function hexStringToBuffer(str) {
|
|
|
23
24
|
}
|
|
24
25
|
export class IoTizeBleCordovaPlugin {
|
|
25
26
|
checkAvailable() {
|
|
26
|
-
return this.execSingleResult(
|
|
27
|
+
return this.execSingleResult("checkAvailable", []);
|
|
27
28
|
}
|
|
28
29
|
requestEnableBle() {
|
|
29
|
-
return this.execSingleResult(
|
|
30
|
+
return this.execSingleResult("enable", []);
|
|
30
31
|
}
|
|
31
32
|
startScan(requestDeviceOptions) {
|
|
32
|
-
return this.execMultipleResult(
|
|
33
|
-
JSON.stringify(requestDeviceOptions)
|
|
33
|
+
return this.execMultipleResult("startScan", [
|
|
34
|
+
JSON.stringify(requestDeviceOptions),
|
|
34
35
|
]);
|
|
35
36
|
}
|
|
36
37
|
stopScan() {
|
|
37
|
-
return this.execSingleResult(
|
|
38
|
+
return this.execSingleResult("stopScan", []);
|
|
39
|
+
}
|
|
40
|
+
connect(deviceId, enableBleIfNot = true) {
|
|
41
|
+
return this.askBleEnable(enableBleIfNot).pipe(switchMap(() => {
|
|
42
|
+
return this.execMultipleResult("connect", [deviceId]).pipe(map((state) => {
|
|
43
|
+
if (!(state in ConnectionState)) {
|
|
44
|
+
console.warn(`Plugin native code returned an invalid connection state: "${state}".`);
|
|
45
|
+
}
|
|
46
|
+
return safeEnumValue(ConnectionState, state);
|
|
47
|
+
}));
|
|
48
|
+
}));
|
|
38
49
|
}
|
|
39
|
-
|
|
40
|
-
return this
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
50
|
+
askBleEnable(askEnable) {
|
|
51
|
+
return defer(() => __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
if (askEnable) {
|
|
53
|
+
if (!(yield this.checkAvailable())) {
|
|
54
|
+
yield this.requestEnableBle();
|
|
55
|
+
}
|
|
44
56
|
}
|
|
45
|
-
return safeEnumValue(ConnectionState, state);
|
|
46
57
|
}));
|
|
47
58
|
}
|
|
48
59
|
requestMTU(deviceId, mtu) {
|
|
49
|
-
return this.execSingleResult(
|
|
50
|
-
}
|
|
51
|
-
connectAndDiscoverTapServices(deviceId) {
|
|
52
|
-
return this.
|
|
53
|
-
.pipe(map(state => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
return this.execSingleResult("requestMTU", [deviceId, mtu]);
|
|
61
|
+
}
|
|
62
|
+
connectAndDiscoverTapServices(deviceId, enableBleIfNot = true) {
|
|
63
|
+
return this.askBleEnable(enableBleIfNot).pipe(switchMap(() => {
|
|
64
|
+
return this.execMultipleResult("connectAndDiscoverTapServices", [deviceId]).pipe(map((state) => {
|
|
65
|
+
if (!(state in ConnectionState)) {
|
|
66
|
+
console.warn(`Plugin native code returned an invalid connection state: "${state}".`);
|
|
67
|
+
}
|
|
68
|
+
return safeEnumValue(ConnectionState, state);
|
|
69
|
+
}));
|
|
58
70
|
}));
|
|
59
71
|
}
|
|
60
72
|
disConnect(deviceId) {
|
|
61
|
-
return this.execSingleResult(
|
|
73
|
+
return this.execSingleResult("disConnect", [deviceId]);
|
|
62
74
|
}
|
|
63
75
|
close(deviceId) {
|
|
64
|
-
return this.execSingleResult(
|
|
76
|
+
return this.execSingleResult("close", [deviceId]);
|
|
65
77
|
}
|
|
66
78
|
isConnected(deviceId) {
|
|
67
|
-
return this.execSingleResult(
|
|
79
|
+
return this.execSingleResult("isConnected", [deviceId]);
|
|
68
80
|
}
|
|
69
81
|
send(deviceId, data) {
|
|
70
82
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
const hexString = yield this.execSingleResult(
|
|
83
|
+
const hexString = yield this.execSingleResult("sendRequest", [
|
|
84
|
+
deviceId,
|
|
85
|
+
bufferToHexString(data),
|
|
86
|
+
]);
|
|
72
87
|
return hexStringToBuffer(hexString);
|
|
73
88
|
});
|
|
74
89
|
}
|
|
75
90
|
getLastError() {
|
|
76
|
-
return this.execSingleResult(
|
|
91
|
+
return this.execSingleResult("getLastError", []);
|
|
77
92
|
}
|
|
78
93
|
characteristicStartNotification(deviceId, serviceId, characId) {
|
|
79
|
-
return this.execSingleResult(
|
|
94
|
+
return this.execSingleResult("characteristicStartNotification", [
|
|
80
95
|
deviceId,
|
|
81
96
|
serviceId,
|
|
82
|
-
characId
|
|
97
|
+
characId,
|
|
83
98
|
]);
|
|
84
99
|
}
|
|
85
100
|
characteristicChanged(deviceId, serviceId, characId) {
|
|
86
|
-
return this.execMultipleResult(
|
|
101
|
+
return this.execMultipleResult("characteristicChanged", [
|
|
87
102
|
deviceId,
|
|
88
103
|
serviceId,
|
|
89
|
-
characId
|
|
90
|
-
])
|
|
91
|
-
.pipe(map(hexString => {
|
|
104
|
+
characId,
|
|
105
|
+
]).pipe(map((hexString) => {
|
|
92
106
|
return hexStringToBuffer(hexString);
|
|
93
107
|
}));
|
|
94
108
|
}
|
|
95
109
|
characteristicStopNotification(deviceId, serviceId, characId) {
|
|
96
|
-
return this.execSingleResult(
|
|
110
|
+
return this.execSingleResult("characteristicStopNotification", [
|
|
97
111
|
deviceId,
|
|
98
112
|
serviceId,
|
|
99
|
-
characId
|
|
113
|
+
characId,
|
|
100
114
|
]);
|
|
101
115
|
}
|
|
102
116
|
characteristicReadValue(deviceId, serviceId, characId) {
|
|
103
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
-
const hexString = yield this.execSingleResult(
|
|
105
|
-
deviceId,
|
|
106
|
-
serviceId,
|
|
107
|
-
characId
|
|
108
|
-
]);
|
|
118
|
+
const hexString = yield this.execSingleResult("characteristicRead", [deviceId, serviceId, characId]);
|
|
109
119
|
return hexStringToBuffer(hexString);
|
|
110
120
|
});
|
|
111
121
|
}
|
|
112
122
|
characteristicWrite(deviceId, serviceId, characId, data) {
|
|
113
|
-
return this.execSingleResult(
|
|
123
|
+
return this.execSingleResult("characteristicWrite", [
|
|
114
124
|
deviceId,
|
|
115
125
|
serviceId,
|
|
116
126
|
characId,
|
|
117
|
-
bufferToHexString(data)
|
|
127
|
+
bufferToHexString(data),
|
|
118
128
|
]);
|
|
119
129
|
}
|
|
120
130
|
characteristicWriteWithoutResponse(deviceId, serviceId, characId, data) {
|
|
121
|
-
return this.execSingleResult(
|
|
131
|
+
return this.execSingleResult("characteristicWriteWithoutResponse", [
|
|
122
132
|
deviceId,
|
|
123
133
|
serviceId,
|
|
124
134
|
characId,
|
|
125
|
-
bufferToHexString(data)
|
|
135
|
+
bufferToHexString(data),
|
|
126
136
|
]);
|
|
127
137
|
}
|
|
128
138
|
discoverServices(deviceId) {
|
|
129
139
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
const services = yield this.execSingleResult(
|
|
131
|
-
deviceId
|
|
132
|
-
]);
|
|
140
|
+
const services = yield this.execSingleResult("discoverServices", [deviceId]);
|
|
133
141
|
return services;
|
|
134
142
|
});
|
|
135
143
|
}
|
|
@@ -137,7 +145,7 @@ export class IoTizeBleCordovaPlugin {
|
|
|
137
145
|
return new Promise((resolve, reject) => {
|
|
138
146
|
cordova.exec(resolve, (errObject) => {
|
|
139
147
|
reject(objectErrorToError(errObject));
|
|
140
|
-
},
|
|
148
|
+
}, "BLECom", methodName, args);
|
|
141
149
|
});
|
|
142
150
|
}
|
|
143
151
|
execMultipleResult(methodName, args) {
|
|
@@ -146,12 +154,12 @@ export class IoTizeBleCordovaPlugin {
|
|
|
146
154
|
subject.next(data);
|
|
147
155
|
}, (err) => {
|
|
148
156
|
subject.error(objectErrorToError(err));
|
|
149
|
-
},
|
|
157
|
+
}, "BLECom", methodName, args);
|
|
150
158
|
return subject.asObservable();
|
|
151
159
|
}
|
|
152
160
|
}
|
|
153
161
|
function objectErrorToError(errObject) {
|
|
154
|
-
if (typeof errObject !==
|
|
162
|
+
if (typeof errObject !== "object" || !errObject.code || !errObject.message) {
|
|
155
163
|
return CordovaBLEError.invalidErrorResult(errObject);
|
|
156
164
|
}
|
|
157
165
|
if (!CordovaBLEError.isValidErrorCode(errObject.code)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iotize-ble-cordova-plugin.js","sourceRoot":"","sources":["../../../../../src/lib/iotize-ble-cordova-plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import { bufferToHexString, hexStringToBuffer as hexStringToBufferCore} from \"@iotize/common/byte-converter\";\r\nimport { safeEnumValue } from \"@iotize/common/utility\";\r\nimport { ConnectionState } from \"@iotize/tap/protocol/api\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { CordovaInterface } from \"./cordova-interface\";\r\nimport { CordovaBLEScanResult, RequestDeviceOptions, ServiceList } from \"./definitions\";\r\nimport { CordovaBLEError } from './cordova-ble-error';\r\n\r\n\r\nfunction hexStringToBuffer(str: string): Uint8Array {\r\n try {\r\n return hexStringToBufferCore(str);\r\n }\r\n catch (err) {\r\n throw CordovaBLEError.invalidNativeCallResult(str, err as Error);\r\n }\r\n}\r\n\r\ndeclare var cordova: CordovaInterface;\r\n\r\nexport class IoTizeBleCordovaPlugin {\r\n\r\n checkAvailable(): Promise<boolean> {\r\n return this.execSingleResult<boolean>('checkAvailable', []);\r\n }\r\n\r\n requestEnableBle(): Promise<'OK'> {\r\n return this.execSingleResult<'OK'>('enable', []);\r\n }\r\n\r\n startScan(requestDeviceOptions: RequestDeviceOptions | undefined): Observable<CordovaBLEScanResult | \"Ok\"> {\r\n return this.execMultipleResult<CordovaBLEScanResult | \"Ok\">('startScan', [\r\n JSON.stringify(requestDeviceOptions)\r\n ]);\r\n }\r\n\r\n stopScan() {\r\n return this.execSingleResult<'OK'>('stopScan', []);\r\n }\r\n\r\n connect(deviceId: string): Observable<ConnectionState> {\r\n return this.execMultipleResult<string>('connect', [deviceId])\r\n .pipe(\r\n map(state => {\r\n if (!(state in ConnectionState)) {\r\n console.warn(`Plugin native code returned an invalid connection state: \"${state}\".`);\r\n }\r\n return safeEnumValue(ConnectionState, state);\r\n })\r\n );\r\n }\r\n\r\n requestMTU(deviceId: string, mtu: number) {\r\n return this.execSingleResult<'OK'>('requestMTU', [deviceId, mtu]);\r\n }\r\n \r\n connectAndDiscoverTapServices(deviceId: string): Observable<ConnectionState> {\r\n return this.execMultipleResult<string>('connectAndDiscoverTapServices', [deviceId])\r\n .pipe(\r\n map(state => {\r\n if (!(state in ConnectionState)) {\r\n console.warn(`Plugin native code returned an invalid connection state: \"${state}\".`);\r\n }\r\n return safeEnumValue(ConnectionState, state);\r\n })\r\n );\r\n }\r\n\r\n disConnect(deviceId: string) {\r\n return this.execSingleResult<'OK'>('disConnect', [deviceId]);\r\n }\r\n\r\n close(deviceId: string) {\r\n return this.execSingleResult<'OK'>('close', [deviceId]);\r\n }\r\n\r\n isConnected(deviceId: string) {\r\n return this.execSingleResult<boolean>('isConnected', [deviceId]);\r\n }\r\n\r\n async send(deviceId: string, data: Uint8Array) {\r\n const hexString = await this.execSingleResult<string>('sendRequest', [deviceId, bufferToHexString(data)]);\r\n return hexStringToBuffer(hexString);\r\n }\r\n\r\n getLastError() {\r\n return this.execSingleResult<string>('getLastError', []);\r\n }\r\n\r\n characteristicStartNotification(deviceId: string, serviceId: string, characId: string) {\r\n return this.execSingleResult<'OK'>('characteristicStartNotification', [\r\n deviceId,\r\n serviceId,\r\n characId\r\n ]);\r\n }\r\n\r\n characteristicChanged(deviceId: string, serviceId: string, characId: string): Observable<Uint8Array> {\r\n return this.execMultipleResult<string>('characteristicChanged', [\r\n deviceId,\r\n serviceId,\r\n characId\r\n ])\r\n .pipe(\r\n map(hexString => {\r\n return hexStringToBuffer(hexString)\r\n })\r\n );\r\n }\r\n\r\n characteristicStopNotification(deviceId: string, serviceId: string, characId: string) {\r\n return this.execSingleResult<'OK'>('characteristicStopNotification', [\r\n deviceId,\r\n serviceId,\r\n characId\r\n ]);\r\n }\r\n\r\n async characteristicReadValue(deviceId: string, serviceId: string, characId: string): Promise<Uint8Array> {\r\n const hexString = await this.execSingleResult<string>('characteristicRead', [\r\n deviceId,\r\n serviceId,\r\n characId\r\n ]);\r\n return hexStringToBuffer(hexString);\r\n }\r\n\r\n characteristicWrite(deviceId: string, serviceId: string, characId: string, data: Uint8Array) {\r\n return this.execSingleResult<'OK'>('characteristicWrite', [\r\n deviceId,\r\n serviceId,\r\n characId,\r\n bufferToHexString(data)\r\n ]);\r\n }\r\n\r\n characteristicWriteWithoutResponse(deviceId: string, serviceId: string, characId: string, data: Uint8Array) {\r\n return this.execSingleResult<'OK'>('characteristicWriteWithoutResponse', [\r\n deviceId,\r\n serviceId,\r\n characId,\r\n bufferToHexString(data)\r\n ]);\r\n }\r\n\r\n async discoverServices(deviceId: string): Promise<ServiceList> {\r\n const services = await this.execSingleResult<ServiceList>('discoverServices', [\r\n deviceId\r\n ]);\r\n return services;\r\n }\r\n\r\n private execSingleResult<T extends string | void | boolean | Object>(methodName: string, args: any[]): Promise<T> {\r\n return new Promise<T>((resolve, reject) => {\r\n cordova.exec(resolve, (errObject: { code?: string; message?: string }) => {\r\n reject(objectErrorToError(errObject));\r\n }, 'BLECom', methodName, args);\r\n });\r\n }\r\n\r\n\r\n private execMultipleResult<T>(methodName: string, args: any[]): Observable<T> {\r\n const subject = new Subject<T>();\r\n cordova.exec<T>((data) => {\r\n subject.next(data);\r\n }, (err) => {\r\n subject.error(objectErrorToError(err))\r\n }, 'BLECom', methodName, args);\r\n return subject.asObservable();\r\n }\r\n\r\n}\r\n\r\n\r\nfunction objectErrorToError(errObject: { code?: string; message?: string }) {\r\n if (typeof errObject !== 'object' || !errObject.code || !errObject.message) {\r\n return CordovaBLEError.invalidErrorResult(errObject);\r\n }\r\n if (!CordovaBLEError.isValidErrorCode(errObject.code)) {\r\n return CordovaBLEError.invalidErrorCode(errObject);\r\n }\r\n return new CordovaBLEError(\r\n errObject.message,\r\n CordovaBLEError.Code[errObject.code]\r\n );\r\n}"]}
|
|
1
|
+
{"version":3,"file":"iotize-ble-cordova-plugin.js","sourceRoot":"","sources":["../../../../../src/lib/iotize-ble-cordova-plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n bufferToHexString,\n hexStringToBuffer as hexStringToBufferCore,\n} from \"@iotize/common/byte-converter\";\nimport { safeEnumValue } from \"@iotize/common/utility\";\nimport { ConnectionState } from \"@iotize/tap/protocol/api\";\nimport { Observable, Subject, defer } from \"rxjs\";\nimport { switchMap } from \"rxjs/operators\";\nimport { map } from \"rxjs/operators\";\nimport { CordovaInterface } from \"./cordova-interface\";\nimport {\n CordovaBLEScanResult,\n RequestDeviceOptions,\n ServiceList,\n} from \"./definitions\";\nimport { CordovaBLEError } from \"./cordova-ble-error\";\n\nfunction hexStringToBuffer(str: string): Uint8Array {\n try {\n return hexStringToBufferCore(str);\n } catch (err) {\n throw CordovaBLEError.invalidNativeCallResult(str, err as Error);\n }\n}\n\ndeclare var cordova: CordovaInterface;\n\nexport class IoTizeBleCordovaPlugin {\n checkAvailable(): Promise<boolean> {\n return this.execSingleResult<boolean>(\"checkAvailable\", []);\n }\n\n requestEnableBle(): Promise<\"OK\"> {\n return this.execSingleResult<\"OK\">(\"enable\", []);\n }\n\n startScan(\n requestDeviceOptions: RequestDeviceOptions | undefined\n ): Observable<CordovaBLEScanResult | \"Ok\"> {\n return this.execMultipleResult<CordovaBLEScanResult | \"Ok\">(\"startScan\", [\n JSON.stringify(requestDeviceOptions),\n ]);\n }\n\n stopScan() {\n return this.execSingleResult<\"OK\">(\"stopScan\", []);\n }\n\n connect(\n deviceId: string,\n enableBleIfNot: boolean = true\n ): Observable<ConnectionState> {\n return this.askBleEnable(enableBleIfNot).pipe(\n switchMap(() => {\n return this.execMultipleResult<string>(\"connect\", [deviceId]).pipe(\n map((state) => {\n if (!(state in ConnectionState)) {\n console.warn(\n `Plugin native code returned an invalid connection state: \"${state}\".`\n );\n }\n return safeEnumValue(ConnectionState, state);\n })\n );\n })\n );\n }\n\n askBleEnable(askEnable: boolean): Observable<void> {\n return defer(async () => {\n if (askEnable) {\n if (!(await this.checkAvailable())) {\n await this.requestEnableBle();\n }\n }\n });\n }\n\n requestMTU(deviceId: string, mtu: number) {\n return this.execSingleResult<\"OK\">(\"requestMTU\", [deviceId, mtu]);\n }\n\n connectAndDiscoverTapServices(\n deviceId: string,\n enableBleIfNot: boolean = true\n ): Observable<ConnectionState> {\n return this.askBleEnable(enableBleIfNot).pipe(\n switchMap(() => {\n return this.execMultipleResult<string>(\n \"connectAndDiscoverTapServices\",\n [deviceId]\n ).pipe(\n map((state) => {\n if (!(state in ConnectionState)) {\n console.warn(\n `Plugin native code returned an invalid connection state: \"${state}\".`\n );\n }\n return safeEnumValue(ConnectionState, state);\n })\n );\n })\n );\n }\n\n disConnect(deviceId: string) {\n return this.execSingleResult<\"OK\">(\"disConnect\", [deviceId]);\n }\n\n close(deviceId: string) {\n return this.execSingleResult<\"OK\">(\"close\", [deviceId]);\n }\n\n isConnected(deviceId: string) {\n return this.execSingleResult<boolean>(\"isConnected\", [deviceId]);\n }\n\n async send(deviceId: string, data: Uint8Array) {\n const hexString = await this.execSingleResult<string>(\"sendRequest\", [\n deviceId,\n bufferToHexString(data),\n ]);\n return hexStringToBuffer(hexString);\n }\n\n getLastError() {\n return this.execSingleResult<string>(\"getLastError\", []);\n }\n\n characteristicStartNotification(\n deviceId: string,\n serviceId: string,\n characId: string\n ) {\n return this.execSingleResult<\"OK\">(\"characteristicStartNotification\", [\n deviceId,\n serviceId,\n characId,\n ]);\n }\n\n characteristicChanged(\n deviceId: string,\n serviceId: string,\n characId: string\n ): Observable<Uint8Array> {\n return this.execMultipleResult<string>(\"characteristicChanged\", [\n deviceId,\n serviceId,\n characId,\n ]).pipe(\n map((hexString) => {\n return hexStringToBuffer(hexString);\n })\n );\n }\n\n characteristicStopNotification(\n deviceId: string,\n serviceId: string,\n characId: string\n ) {\n return this.execSingleResult<\"OK\">(\"characteristicStopNotification\", [\n deviceId,\n serviceId,\n characId,\n ]);\n }\n\n async characteristicReadValue(\n deviceId: string,\n serviceId: string,\n characId: string\n ): Promise<Uint8Array> {\n const hexString = await this.execSingleResult<string>(\n \"characteristicRead\",\n [deviceId, serviceId, characId]\n );\n return hexStringToBuffer(hexString);\n }\n\n characteristicWrite(\n deviceId: string,\n serviceId: string,\n characId: string,\n data: Uint8Array\n ) {\n return this.execSingleResult<\"OK\">(\"characteristicWrite\", [\n deviceId,\n serviceId,\n characId,\n bufferToHexString(data),\n ]);\n }\n\n characteristicWriteWithoutResponse(\n deviceId: string,\n serviceId: string,\n characId: string,\n data: Uint8Array\n ) {\n return this.execSingleResult<\"OK\">(\"characteristicWriteWithoutResponse\", [\n deviceId,\n serviceId,\n characId,\n bufferToHexString(data),\n ]);\n }\n\n async discoverServices(deviceId: string): Promise<ServiceList> {\n const services = await this.execSingleResult<ServiceList>(\n \"discoverServices\",\n [deviceId]\n );\n return services;\n }\n\n private execSingleResult<T extends string | void | boolean | Object>(\n methodName: string,\n args: any[]\n ): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n cordova.exec(\n resolve,\n (errObject: { code?: string; message?: string }) => {\n reject(objectErrorToError(errObject));\n },\n \"BLECom\",\n methodName,\n args\n );\n });\n }\n\n private execMultipleResult<T>(\n methodName: string,\n args: any[]\n ): Observable<T> {\n const subject = new Subject<T>();\n cordova.exec<T>(\n (data) => {\n subject.next(data);\n },\n (err) => {\n subject.error(objectErrorToError(err));\n },\n \"BLECom\",\n methodName,\n args\n );\n return subject.asObservable();\n }\n}\n\nfunction objectErrorToError(errObject: { code?: string; message?: string }) {\n if (typeof errObject !== \"object\" || !errObject.code || !errObject.message) {\n return CordovaBLEError.invalidErrorResult(errObject);\n }\n if (!CordovaBLEError.isValidErrorCode(errObject.code)) {\n return CordovaBLEError.invalidErrorCode(errObject);\n }\n return new CordovaBLEError(\n errObject.message,\n CordovaBLEError.Code[errObject.code]\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"IoTizeBleCordovaPlugin":{"__symbolic":"class","members":{"checkAvailable":[{"__symbolic":"method"}],"requestEnableBle":[{"__symbolic":"method"}],"startScan":[{"__symbolic":"method"}],"stopScan":[{"__symbolic":"method"}],"connect":[{"__symbolic":"method"}],"requestMTU":[{"__symbolic":"method"}],"connectAndDiscoverTapServices":[{"__symbolic":"method"}],"disConnect":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"isConnected":[{"__symbolic":"method"}],"send":[{"__symbolic":"method"}],"getLastError":[{"__symbolic":"method"}],"characteristicStartNotification":[{"__symbolic":"method"}],"characteristicChanged":[{"__symbolic":"method"}],"characteristicStopNotification":[{"__symbolic":"method"}],"characteristicReadValue":[{"__symbolic":"method"}],"characteristicWrite":[{"__symbolic":"method"}],"characteristicWriteWithoutResponse":[{"__symbolic":"method"}],"discoverServices":[{"__symbolic":"method"}],"execSingleResult":[{"__symbolic":"method"}],"execMultipleResult":[{"__symbolic":"method"}]}}}}]
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"IoTizeBleCordovaPlugin":{"__symbolic":"class","members":{"checkAvailable":[{"__symbolic":"method"}],"requestEnableBle":[{"__symbolic":"method"}],"startScan":[{"__symbolic":"method"}],"stopScan":[{"__symbolic":"method"}],"connect":[{"__symbolic":"method"}],"askBleEnable":[{"__symbolic":"method"}],"requestMTU":[{"__symbolic":"method"}],"connectAndDiscoverTapServices":[{"__symbolic":"method"}],"disConnect":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"isConnected":[{"__symbolic":"method"}],"send":[{"__symbolic":"method"}],"getLastError":[{"__symbolic":"method"}],"characteristicStartNotification":[{"__symbolic":"method"}],"characteristicChanged":[{"__symbolic":"method"}],"characteristicStopNotification":[{"__symbolic":"method"}],"characteristicReadValue":[{"__symbolic":"method"}],"characteristicWrite":[{"__symbolic":"method"}],"characteristicWriteWithoutResponse":[{"__symbolic":"method"}],"discoverServices":[{"__symbolic":"method"}],"execSingleResult":[{"__symbolic":"method"}],"execMultipleResult":[{"__symbolic":"method"}]}}}}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"checkAvailable":[{"__symbolic":"method"}],"requestEnableBle":[{"__symbolic":"method"}],"startScan":[{"__symbolic":"method"}],"stopScan":[{"__symbolic":"method"}],"connect":[{"__symbolic":"method"}],"requestMTU":[{"__symbolic":"method"}],"connectAndDiscoverTapServices":[{"__symbolic":"method"}],"disConnect":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"isConnected":[{"__symbolic":"method"}],"send":[{"__symbolic":"method"}],"getLastError":[{"__symbolic":"method"}],"characteristicStartNotification":[{"__symbolic":"method"}],"characteristicChanged":[{"__symbolic":"method"}],"characteristicStopNotification":[{"__symbolic":"method"}],"characteristicReadValue":[{"__symbolic":"method"}],"characteristicWrite":[{"__symbolic":"method"}],"characteristicWriteWithoutResponse":[{"__symbolic":"method"}],"discoverServices":[{"__symbolic":"method"}],"execSingleResult":[{"__symbolic":"method"}],"execMultipleResult":[{"__symbolic":"method"}]}}}],"symbols":[{"__symbol":0,"name":"IoTizeBleCordovaPlugin","filePath":"./iotize-ble-cordova-plugin"}]}
|
|
1
|
+
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"checkAvailable":[{"__symbolic":"method"}],"requestEnableBle":[{"__symbolic":"method"}],"startScan":[{"__symbolic":"method"}],"stopScan":[{"__symbolic":"method"}],"connect":[{"__symbolic":"method"}],"askBleEnable":[{"__symbolic":"method"}],"requestMTU":[{"__symbolic":"method"}],"connectAndDiscoverTapServices":[{"__symbolic":"method"}],"disConnect":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"isConnected":[{"__symbolic":"method"}],"send":[{"__symbolic":"method"}],"getLastError":[{"__symbolic":"method"}],"characteristicStartNotification":[{"__symbolic":"method"}],"characteristicChanged":[{"__symbolic":"method"}],"characteristicStopNotification":[{"__symbolic":"method"}],"characteristicReadValue":[{"__symbolic":"method"}],"characteristicWrite":[{"__symbolic":"method"}],"characteristicWriteWithoutResponse":[{"__symbolic":"method"}],"discoverServices":[{"__symbolic":"method"}],"execSingleResult":[{"__symbolic":"method"}],"execMultipleResult":[{"__symbolic":"method"}]}}}],"symbols":[{"__symbol":0,"name":"IoTizeBleCordovaPlugin","filePath":"./iotize-ble-cordova-plugin"}]}
|
package/esm2015/lib/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC,gCAAgC,CAAC,CAAC","sourcesContent":["import { createDebugger } from
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC,gCAAgC,CAAC,CAAC","sourcesContent":["import { createDebugger } from \"@iotize/common/debug\";\n\nexport const debug = createDebugger(`@iotize/device-com-ble.cordova`);\n"]}
|