@neurodevs/ndx-native 6.0.2 → 6.1.0
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/build/__tests__/impl/LibndxAdapter.test.d.ts +7 -0
- package/build/__tests__/impl/LibndxAdapter.test.js +55 -0
- package/build/__tests__/impl/LibndxAdapter.test.js.map +1 -1
- package/build/impl/LibndxAdapter.d.ts +13 -4
- package/build/impl/LibndxAdapter.js +49 -30
- package/build/impl/LibndxAdapter.js.map +1 -1
- package/build/testDoubles/Libndx/FakeLibndx.d.ts +3 -1
- package/build/testDoubles/Libndx/FakeLibndx.js +6 -0
- package/build/testDoubles/Libndx/FakeLibndx.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/impl/LibndxAdapter.test.ts +89 -0
- package/src/impl/LibndxAdapter.ts +88 -43
- package/src/testDoubles/Libndx/FakeLibndx.ts +8 -0
|
@@ -15,6 +15,8 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
15
15
|
private static readonly ftdiSerialNumber;
|
|
16
16
|
private static readonly charCallbacks;
|
|
17
17
|
private static readonly successfulResult;
|
|
18
|
+
private static readonly bleNamePrefix;
|
|
19
|
+
private static readonly callsToDiscoverBle;
|
|
18
20
|
private static readonly callsToCreateBle;
|
|
19
21
|
private static readonly callsToStartBle;
|
|
20
22
|
private static readonly callsToWriteBle;
|
|
@@ -30,9 +32,13 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
30
32
|
protected static registersExpectedKoffiFuncSignatures(): Promise<void>;
|
|
31
33
|
protected static registersCharCallbackStruct(): Promise<void>;
|
|
32
34
|
protected static registersOnRssiProtoBeforeLoadingBindings(): Promise<void>;
|
|
35
|
+
protected static registersOnDiscoveredProtoBeforeLoadingBindings(): Promise<void>;
|
|
33
36
|
protected static onConnectedReceivesPeripheral(): Promise<void>;
|
|
34
37
|
protected static getInstanceReturnsASingleton(): Promise<void>;
|
|
35
38
|
protected static canSetInstance(): void;
|
|
39
|
+
protected static discoverBleUuidCallsBindingWithExpectedArgs(): Promise<void>;
|
|
40
|
+
protected static discoverBleUuidReturnsJson(): Promise<void>;
|
|
41
|
+
protected static discoverBleUuidInvokesOnDiscoveredWithUuid(): Promise<void>;
|
|
36
42
|
protected static createBleBackendCallsBindingWithExpectedArgs(): Promise<void>;
|
|
37
43
|
protected static createBleBackendReturnsJson(): Promise<void>;
|
|
38
44
|
protected static startBleBackendCallsBindingWithExpectedArgs(): Promise<void>;
|
|
@@ -50,6 +56,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
50
56
|
protected static startFtdiBackendReturnsJson(): Promise<void>;
|
|
51
57
|
protected static stopFtdiBackendCallsBindingWithExpectedArgs(): Promise<void>;
|
|
52
58
|
protected static stopFtdiBackendReturnsJson(): Promise<void>;
|
|
59
|
+
private static discoverBleUuid;
|
|
53
60
|
private static createBleBackend;
|
|
54
61
|
private static startBleBackend;
|
|
55
62
|
private static writeBleCharacteristic;
|
|
@@ -30,6 +30,8 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
30
30
|
},
|
|
31
31
|
];
|
|
32
32
|
static successfulResult = { status: 200 };
|
|
33
|
+
static bleNamePrefix = this.generateId();
|
|
34
|
+
static callsToDiscoverBle = [];
|
|
33
35
|
static callsToCreateBle = [];
|
|
34
36
|
static callsToStartBle = [];
|
|
35
37
|
static callsToWriteBle = [];
|
|
@@ -62,6 +64,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
62
64
|
}
|
|
63
65
|
static async registersExpectedKoffiFuncSignatures() {
|
|
64
66
|
assert.isEqualDeep(this.koffiFuncSignatures, [
|
|
67
|
+
'str discover_ble_uuid(str name_prefix, OnDiscoveredFn *on_discovered)',
|
|
65
68
|
'str create_ble_backend(str config)',
|
|
66
69
|
'str start_ble_backend(str uuid, OnConnectedFn *on_connected, CharCallback *callbacks, int num_callbacks)',
|
|
67
70
|
'str write_ble_characteristic(str uuid, str charUuid, str value)',
|
|
@@ -90,6 +93,12 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
90
93
|
assert.isAbove(onRssiProtoIdx, -1, 'Did not register OnRssiFn proto before loading bindings!');
|
|
91
94
|
assert.isBelow(onRssiProtoIdx, firstFuncIdx + this.koffiProtoCalls.length, 'OnRssiFn proto must be registered before bindings are loaded!');
|
|
92
95
|
}
|
|
96
|
+
static async registersOnDiscoveredProtoBeforeLoadingBindings() {
|
|
97
|
+
const onDiscoveredProtoIdx = this.koffiProtoCalls.findIndex((s) => s.includes('OnDiscoveredFn'));
|
|
98
|
+
const firstFuncIdx = this.koffiFuncSignatures.findIndex((s) => s.includes('OnDiscoveredFn'));
|
|
99
|
+
assert.isAbove(onDiscoveredProtoIdx, -1, 'Did not register OnDiscoveredFn proto before loading bindings!');
|
|
100
|
+
assert.isBelow(onDiscoveredProtoIdx, firstFuncIdx + this.koffiProtoCalls.length, 'OnDiscoveredFn proto must be registered before bindings are loaded!');
|
|
101
|
+
}
|
|
93
102
|
static async onConnectedReceivesPeripheral() {
|
|
94
103
|
let received = undefined;
|
|
95
104
|
this.startBleBackend((peripheral) => {
|
|
@@ -108,6 +117,26 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
108
117
|
LibndxAdapter.setInstance(fake);
|
|
109
118
|
assert.isEqual(LibndxAdapter.getInstance(), fake);
|
|
110
119
|
}
|
|
120
|
+
static async discoverBleUuidCallsBindingWithExpectedArgs() {
|
|
121
|
+
this.discoverBleUuid();
|
|
122
|
+
assert.isEqual(this.callsToDiscoverBle[0].namePrefix, this.bleNamePrefix, 'discoverBleUuid did not pass expected namePrefix to binding!');
|
|
123
|
+
assert.isFunction(this.callsToDiscoverBle[0].onDiscovered, 'discoverBleUuid did not pass an onDiscovered callback to the binding!');
|
|
124
|
+
}
|
|
125
|
+
static async discoverBleUuidReturnsJson() {
|
|
126
|
+
const json = this.discoverBleUuid();
|
|
127
|
+
assert.isEqualDeep(json, this.successfulResult, 'discoverBleUuid did not return a JSON string!');
|
|
128
|
+
}
|
|
129
|
+
static async discoverBleUuidInvokesOnDiscoveredWithUuid() {
|
|
130
|
+
let received;
|
|
131
|
+
this.discoverBleUuid((uuid) => {
|
|
132
|
+
received = uuid;
|
|
133
|
+
});
|
|
134
|
+
const discoveredUuid = this.generateId();
|
|
135
|
+
const registeredOnDiscovered = this.callsToDiscoverBle[0]
|
|
136
|
+
.onDiscovered;
|
|
137
|
+
registeredOnDiscovered(discoveredUuid);
|
|
138
|
+
assert.isEqual(received, discoveredUuid, 'onDiscovered was not invoked with discovered uuid!');
|
|
139
|
+
}
|
|
111
140
|
static async createBleBackendCallsBindingWithExpectedArgs() {
|
|
112
141
|
this.createBleBackend();
|
|
113
142
|
assert.isEqualDeep(this.callsToCreateBle[0][0], JSON.stringify({ uuid: this.bleDeviceUuid }), 'createBleBackend did not call binding with expected args!');
|
|
@@ -192,6 +221,12 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
192
221
|
const json = this.stopFtdiBackend();
|
|
193
222
|
assert.isEqualDeep(json, this.successfulResult, 'stopFtdiBackend did not return a JSON string!');
|
|
194
223
|
}
|
|
224
|
+
static discoverBleUuid(onDiscovered) {
|
|
225
|
+
return this.instance.discoverBleUuid({
|
|
226
|
+
namePrefix: this.bleNamePrefix,
|
|
227
|
+
onDiscovered: onDiscovered ?? (() => { }),
|
|
228
|
+
});
|
|
229
|
+
}
|
|
195
230
|
static createBleBackend() {
|
|
196
231
|
return this.instance.createBleBackend({
|
|
197
232
|
deviceUuid: this.bleDeviceUuid,
|
|
@@ -240,6 +275,13 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
240
275
|
}
|
|
241
276
|
static FakeBindings() {
|
|
242
277
|
return {
|
|
278
|
+
discover_ble_uuid: (args) => {
|
|
279
|
+
this.callsToDiscoverBle.push({
|
|
280
|
+
namePrefix: args[0],
|
|
281
|
+
onDiscovered: args[1],
|
|
282
|
+
});
|
|
283
|
+
return JSON.stringify(this.successfulResult);
|
|
284
|
+
},
|
|
243
285
|
create_ble_backend: (args) => {
|
|
244
286
|
this.callsToCreateBle.push(args);
|
|
245
287
|
return JSON.stringify(this.successfulResult);
|
|
@@ -283,6 +325,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
283
325
|
};
|
|
284
326
|
}
|
|
285
327
|
static resetCallsToFakeBindings() {
|
|
328
|
+
this.callsToDiscoverBle.length = 0;
|
|
286
329
|
this.callsToCreateBle.length = 0;
|
|
287
330
|
this.callsToStartBle.length = 0;
|
|
288
331
|
this.callsToStopBle.length = 0;
|
|
@@ -382,6 +425,9 @@ __decorate([
|
|
|
382
425
|
__decorate([
|
|
383
426
|
test()
|
|
384
427
|
], LibndxAdapterTest, "registersOnRssiProtoBeforeLoadingBindings", null);
|
|
428
|
+
__decorate([
|
|
429
|
+
test()
|
|
430
|
+
], LibndxAdapterTest, "registersOnDiscoveredProtoBeforeLoadingBindings", null);
|
|
385
431
|
__decorate([
|
|
386
432
|
test()
|
|
387
433
|
], LibndxAdapterTest, "onConnectedReceivesPeripheral", null);
|
|
@@ -391,6 +437,15 @@ __decorate([
|
|
|
391
437
|
__decorate([
|
|
392
438
|
test()
|
|
393
439
|
], LibndxAdapterTest, "canSetInstance", null);
|
|
440
|
+
__decorate([
|
|
441
|
+
test()
|
|
442
|
+
], LibndxAdapterTest, "discoverBleUuidCallsBindingWithExpectedArgs", null);
|
|
443
|
+
__decorate([
|
|
444
|
+
test()
|
|
445
|
+
], LibndxAdapterTest, "discoverBleUuidReturnsJson", null);
|
|
446
|
+
__decorate([
|
|
447
|
+
test()
|
|
448
|
+
], LibndxAdapterTest, "discoverBleUuidInvokesOnDiscoveredWithUuid", null);
|
|
394
449
|
__decorate([
|
|
395
450
|
test()
|
|
396
451
|
], LibndxAdapterTest, "createBleBackendCallsBindingWithExpectedArgs", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibndxAdapter.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LibndxAdapter.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LibndxAdapter.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LibndxAdapter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,9 @@ export default class LibndxAdapter implements Libndx {
|
|
|
8
8
|
static koffiPointer: typeof koffi.pointer;
|
|
9
9
|
private static charCallbackProto?;
|
|
10
10
|
private static charCallbackStruct?;
|
|
11
|
+
private static onDiscoveredProto?;
|
|
11
12
|
private static onConnectedProto?;
|
|
12
13
|
private static onRssiProto?;
|
|
13
|
-
private static getCharCallbackProto;
|
|
14
|
-
private static getOnConnectedProto;
|
|
15
|
-
private static getOnRssiProto;
|
|
16
|
-
private static getCharCallbackStruct;
|
|
17
14
|
private static instance?;
|
|
18
15
|
private libndxPath;
|
|
19
16
|
private bindings;
|
|
@@ -26,6 +23,7 @@ export default class LibndxAdapter implements Libndx {
|
|
|
26
23
|
private tryToLoadBindings;
|
|
27
24
|
private defineBindings;
|
|
28
25
|
private throwFailedToLoadLibndx;
|
|
26
|
+
discoverBleUuid(options: DiscoverBleUuidOptions): any;
|
|
29
27
|
createBleBackend(options: BleBackendOptions): any;
|
|
30
28
|
startBleBackend(options: StartBleBackendOptions): any;
|
|
31
29
|
writeBleCharacteristic(options: WriteBleCharacteristicOptions): any;
|
|
@@ -34,8 +32,14 @@ export default class LibndxAdapter implements Libndx {
|
|
|
34
32
|
createFtdiBackend(options: FtdiBackendOptions): any;
|
|
35
33
|
startFtdiBackend(options: FtdiBackendOptions): any;
|
|
36
34
|
stopFtdiBackend(options: FtdiBackendOptions): any;
|
|
35
|
+
private static getCharCallbackProto;
|
|
36
|
+
private static getOnConnectedProto;
|
|
37
|
+
private static getOnRssiProto;
|
|
38
|
+
private static getOnDiscoveredProto;
|
|
39
|
+
private static getCharCallbackStruct;
|
|
37
40
|
}
|
|
38
41
|
export interface Libndx {
|
|
42
|
+
discoverBleUuid(options: DiscoverBleUuidOptions): NativeResult;
|
|
39
43
|
createBleBackend(options: BleBackendOptions): NativeResult;
|
|
40
44
|
startBleBackend(options: StartBleBackendOptions): NativeResult;
|
|
41
45
|
writeBleCharacteristic(options: WriteBleCharacteristicOptions): NativeResult;
|
|
@@ -49,6 +53,10 @@ export type LibndxConstructor = new (options?: LibndxAdapterOptions) => Libndx;
|
|
|
49
53
|
export interface LibndxAdapterOptions {
|
|
50
54
|
libndxPath?: string;
|
|
51
55
|
}
|
|
56
|
+
export interface DiscoverBleUuidOptions {
|
|
57
|
+
namePrefix: string;
|
|
58
|
+
onDiscovered: (uuid: string) => void;
|
|
59
|
+
}
|
|
52
60
|
export interface BleBackendOptions {
|
|
53
61
|
deviceUuid: string;
|
|
54
62
|
}
|
|
@@ -74,6 +82,7 @@ export interface FtdiBackendOptions {
|
|
|
74
82
|
serialNumber: string;
|
|
75
83
|
}
|
|
76
84
|
export interface LibndxBindings {
|
|
85
|
+
discover_ble_uuid(args: [string, unknown]): string;
|
|
77
86
|
create_ble_backend(args: [string]): string;
|
|
78
87
|
start_ble_backend(args: [string, unknown, unknown, number]): string;
|
|
79
88
|
write_ble_characteristic(args: [string, string, string]): string;
|
|
@@ -8,37 +8,9 @@ export default class LibndxAdapter {
|
|
|
8
8
|
static koffiPointer = koffi.pointer.bind(koffi);
|
|
9
9
|
static charCallbackProto;
|
|
10
10
|
static charCallbackStruct;
|
|
11
|
+
static onDiscoveredProto;
|
|
11
12
|
static onConnectedProto;
|
|
12
13
|
static onRssiProto;
|
|
13
|
-
static getCharCallbackProto() {
|
|
14
|
-
if (!this.charCallbackProto) {
|
|
15
|
-
this.charCallbackProto = LibndxAdapter.koffiProto('void CharCallbackFn(uint8 *data, int length, double timestamp)');
|
|
16
|
-
}
|
|
17
|
-
return this.charCallbackProto;
|
|
18
|
-
}
|
|
19
|
-
static getOnConnectedProto() {
|
|
20
|
-
if (!this.onConnectedProto) {
|
|
21
|
-
this.onConnectedProto = LibndxAdapter.koffiProto('void OnConnectedFn(str uuid, str name)');
|
|
22
|
-
}
|
|
23
|
-
return this.onConnectedProto;
|
|
24
|
-
}
|
|
25
|
-
static getOnRssiProto() {
|
|
26
|
-
if (!this.onRssiProto) {
|
|
27
|
-
this.onRssiProto = LibndxAdapter.koffiProto('void OnRssiFn(int rssi)');
|
|
28
|
-
}
|
|
29
|
-
return this.onRssiProto;
|
|
30
|
-
}
|
|
31
|
-
static getCharCallbackStruct() {
|
|
32
|
-
if (!this.charCallbackStruct) {
|
|
33
|
-
this.getCharCallbackProto();
|
|
34
|
-
this.charCallbackStruct = LibndxAdapter.koffiStruct('CharCallback', {
|
|
35
|
-
charUuid: 'str',
|
|
36
|
-
charName: 'str',
|
|
37
|
-
onData: LibndxAdapter.koffiPointer(this.charCallbackProto),
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return this.charCallbackStruct;
|
|
41
|
-
}
|
|
42
14
|
static instance;
|
|
43
15
|
libndxPath;
|
|
44
16
|
bindings;
|
|
@@ -63,6 +35,7 @@ export default class LibndxAdapter {
|
|
|
63
35
|
static resetKoffiCache() {
|
|
64
36
|
delete this.charCallbackProto;
|
|
65
37
|
delete this.charCallbackStruct;
|
|
38
|
+
delete this.onDiscoveredProto;
|
|
66
39
|
delete this.onConnectedProto;
|
|
67
40
|
delete this.onRssiProto;
|
|
68
41
|
}
|
|
@@ -75,15 +48,18 @@ export default class LibndxAdapter {
|
|
|
75
48
|
}
|
|
76
49
|
}
|
|
77
50
|
defineBindings() {
|
|
51
|
+
LibndxAdapter.getCharCallbackStruct();
|
|
52
|
+
LibndxAdapter.getOnDiscoveredProto();
|
|
78
53
|
LibndxAdapter.getOnConnectedProto();
|
|
79
54
|
LibndxAdapter.getOnRssiProto();
|
|
80
|
-
LibndxAdapter.getCharCallbackStruct();
|
|
81
55
|
const lib = LibndxAdapter.koffiLoad(this.libndxPath);
|
|
82
56
|
const wrap1 = (f) => (args) => f(args[0]);
|
|
83
57
|
const wrap3 = (f) => (args) => f(args[0], args[1], args[2]);
|
|
84
58
|
const wrapStartBle = (f) => (args) => f(args[0], args[1], args[2], args[3]);
|
|
85
59
|
const wrapSetBleRssiInterval = (f) => (args) => f(args[0], args[1], args[2]);
|
|
60
|
+
const wrapDiscoverBleUuid = (f) => (args) => f(args[0], args[1]);
|
|
86
61
|
this.bindings = {
|
|
62
|
+
discover_ble_uuid: wrapDiscoverBleUuid(lib.func('str discover_ble_uuid(str name_prefix, OnDiscoveredFn *on_discovered)')),
|
|
87
63
|
create_ble_backend: wrap1(lib.func('str create_ble_backend(str config)')),
|
|
88
64
|
start_ble_backend: wrapStartBle(lib.func('str start_ble_backend(str uuid, OnConnectedFn *on_connected, CharCallback *callbacks, int num_callbacks)')),
|
|
89
65
|
write_ble_characteristic: wrap3(lib.func('str write_ble_characteristic(str uuid, str charUuid, str value)')),
|
|
@@ -115,6 +91,14 @@ export default class LibndxAdapter {
|
|
|
115
91
|
\n
|
|
116
92
|
`.replace(/\s+/g, ''));
|
|
117
93
|
}
|
|
94
|
+
discoverBleUuid(options) {
|
|
95
|
+
const { namePrefix, onDiscovered } = options;
|
|
96
|
+
const registeredOnDiscovered = LibndxAdapter.koffiRegister(onDiscovered, LibndxAdapter.koffiPointer(LibndxAdapter.getOnDiscoveredProto()));
|
|
97
|
+
return JSON.parse(this.bindings.discover_ble_uuid([
|
|
98
|
+
namePrefix,
|
|
99
|
+
registeredOnDiscovered,
|
|
100
|
+
]));
|
|
101
|
+
}
|
|
118
102
|
createBleBackend(options) {
|
|
119
103
|
const { deviceUuid } = options;
|
|
120
104
|
const configJson = JSON.stringify({ uuid: deviceUuid });
|
|
@@ -169,5 +153,40 @@ export default class LibndxAdapter {
|
|
|
169
153
|
const { serialNumber } = options;
|
|
170
154
|
return JSON.parse(this.bindings.stop_ftdi_backend([serialNumber]));
|
|
171
155
|
}
|
|
156
|
+
static getCharCallbackProto() {
|
|
157
|
+
if (!this.charCallbackProto) {
|
|
158
|
+
this.charCallbackProto = LibndxAdapter.koffiProto('void CharCallbackFn(uint8 *data, int length, double timestamp)');
|
|
159
|
+
}
|
|
160
|
+
return this.charCallbackProto;
|
|
161
|
+
}
|
|
162
|
+
static getOnConnectedProto() {
|
|
163
|
+
if (!this.onConnectedProto) {
|
|
164
|
+
this.onConnectedProto = LibndxAdapter.koffiProto('void OnConnectedFn(str uuid, str name)');
|
|
165
|
+
}
|
|
166
|
+
return this.onConnectedProto;
|
|
167
|
+
}
|
|
168
|
+
static getOnRssiProto() {
|
|
169
|
+
if (!this.onRssiProto) {
|
|
170
|
+
this.onRssiProto = LibndxAdapter.koffiProto('void OnRssiFn(int rssi)');
|
|
171
|
+
}
|
|
172
|
+
return this.onRssiProto;
|
|
173
|
+
}
|
|
174
|
+
static getOnDiscoveredProto() {
|
|
175
|
+
if (!this.onDiscoveredProto) {
|
|
176
|
+
this.onDiscoveredProto = LibndxAdapter.koffiProto('void OnDiscoveredFn(str uuid)');
|
|
177
|
+
}
|
|
178
|
+
return this.onDiscoveredProto;
|
|
179
|
+
}
|
|
180
|
+
static getCharCallbackStruct() {
|
|
181
|
+
if (!this.charCallbackStruct) {
|
|
182
|
+
this.getCharCallbackProto();
|
|
183
|
+
this.charCallbackStruct = LibndxAdapter.koffiStruct('CharCallback', {
|
|
184
|
+
charUuid: 'str',
|
|
185
|
+
charName: 'str',
|
|
186
|
+
onData: LibndxAdapter.koffiPointer(this.charCallbackProto),
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
return this.charCallbackStruct;
|
|
190
|
+
}
|
|
172
191
|
}
|
|
173
192
|
//# sourceMappingURL=LibndxAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibndxAdapter.js","sourceRoot":"","sources":["../../src/impl/LibndxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,OAAO,OAAO,aAAa;IACvB,MAAM,CAAC,KAAK,CAAoB;IAChC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,CAAC,YAAY,GAAyB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEpE,MAAM,CAAC,iBAAiB,CAAiC;IACzD,MAAM,CAAC,kBAAkB,CAAkC;IAC3D,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"LibndxAdapter.js","sourceRoot":"","sources":["../../src/impl/LibndxAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { BleBackendOptions, WriteBleCharacteristicOptions, FtdiBackendOptions, Libndx, LibndxAdapterOptions, StartBleBackendOptions, NativeResult, BleRssiOptions } from '../../impl/LibndxAdapter.js';
|
|
1
|
+
import { BleBackendOptions, WriteBleCharacteristicOptions, FtdiBackendOptions, Libndx, LibndxAdapterOptions, StartBleBackendOptions, NativeResult, BleRssiOptions, DiscoverBleUuidOptions } from '../../impl/LibndxAdapter.js';
|
|
2
2
|
export default class FakeLibndx implements Libndx {
|
|
3
3
|
static callsToConstructor: (LibndxAdapterOptions | undefined)[];
|
|
4
|
+
static callsToDiscoverBleUuid: DiscoverBleUuidOptions[];
|
|
4
5
|
static callsToCreateBleBackend: BleBackendOptions[];
|
|
5
6
|
static callsToStartBleBackend: StartBleBackendOptions[];
|
|
6
7
|
static callsToWriteBleCharacteristic: WriteBleCharacteristicOptions[];
|
|
@@ -11,6 +12,7 @@ export default class FakeLibndx implements Libndx {
|
|
|
11
12
|
static callsToStopFtdiBackend: FtdiBackendOptions[];
|
|
12
13
|
static fakeResult: NativeResult;
|
|
13
14
|
constructor(options?: LibndxAdapterOptions);
|
|
15
|
+
discoverBleUuid(options: DiscoverBleUuidOptions): NativeResult;
|
|
14
16
|
createBleBackend(options: BleBackendOptions): NativeResult;
|
|
15
17
|
startBleBackend(options: StartBleBackendOptions): NativeResult;
|
|
16
18
|
writeBleCharacteristic(options: WriteBleCharacteristicOptions): NativeResult;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export default class FakeLibndx {
|
|
2
2
|
static callsToConstructor = [];
|
|
3
|
+
static callsToDiscoverBleUuid = [];
|
|
3
4
|
static callsToCreateBleBackend = [];
|
|
4
5
|
static callsToStartBleBackend = [];
|
|
5
6
|
static callsToWriteBleCharacteristic = [];
|
|
@@ -12,6 +13,10 @@ export default class FakeLibndx {
|
|
|
12
13
|
constructor(options) {
|
|
13
14
|
FakeLibndx.callsToConstructor.push(options);
|
|
14
15
|
}
|
|
16
|
+
discoverBleUuid(options) {
|
|
17
|
+
FakeLibndx.callsToDiscoverBleUuid.push(options);
|
|
18
|
+
return FakeLibndx.fakeResult;
|
|
19
|
+
}
|
|
15
20
|
createBleBackend(options) {
|
|
16
21
|
FakeLibndx.callsToCreateBleBackend.push(options);
|
|
17
22
|
return FakeLibndx.fakeResult;
|
|
@@ -46,6 +51,7 @@ export default class FakeLibndx {
|
|
|
46
51
|
}
|
|
47
52
|
static resetTestDouble() {
|
|
48
53
|
FakeLibndx.callsToConstructor = [];
|
|
54
|
+
FakeLibndx.callsToDiscoverBleUuid = [];
|
|
49
55
|
FakeLibndx.callsToCreateBleBackend = [];
|
|
50
56
|
FakeLibndx.callsToStartBleBackend = [];
|
|
51
57
|
FakeLibndx.callsToWriteBleCharacteristic = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeLibndx.js","sourceRoot":"","sources":["../../../src/testDoubles/Libndx/FakeLibndx.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FakeLibndx.js","sourceRoot":"","sources":["../../../src/testDoubles/Libndx/FakeLibndx.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -37,6 +37,12 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
37
37
|
|
|
38
38
|
private static readonly successfulResult = { status: 200 }
|
|
39
39
|
|
|
40
|
+
private static readonly bleNamePrefix = this.generateId()
|
|
41
|
+
|
|
42
|
+
private static readonly callsToDiscoverBle: {
|
|
43
|
+
namePrefix: string
|
|
44
|
+
onDiscovered: unknown
|
|
45
|
+
}[] = []
|
|
40
46
|
private static readonly callsToCreateBle: string[][] = []
|
|
41
47
|
private static readonly callsToStartBle: {
|
|
42
48
|
uuid: string
|
|
@@ -101,6 +107,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
101
107
|
assert.isEqualDeep(
|
|
102
108
|
this.koffiFuncSignatures,
|
|
103
109
|
[
|
|
110
|
+
'str discover_ble_uuid(str name_prefix, OnDiscoveredFn *on_discovered)',
|
|
104
111
|
'str create_ble_backend(str config)',
|
|
105
112
|
'str start_ble_backend(str uuid, OnConnectedFn *on_connected, CharCallback *callbacks, int num_callbacks)',
|
|
106
113
|
'str write_ble_characteristic(str uuid, str charUuid, str value)',
|
|
@@ -152,6 +159,26 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
152
159
|
)
|
|
153
160
|
}
|
|
154
161
|
|
|
162
|
+
@test()
|
|
163
|
+
protected static async registersOnDiscoveredProtoBeforeLoadingBindings() {
|
|
164
|
+
const onDiscoveredProtoIdx = this.koffiProtoCalls!.findIndex((s) =>
|
|
165
|
+
s.includes('OnDiscoveredFn')
|
|
166
|
+
)
|
|
167
|
+
const firstFuncIdx = this.koffiFuncSignatures!.findIndex((s) =>
|
|
168
|
+
s.includes('OnDiscoveredFn')
|
|
169
|
+
)
|
|
170
|
+
assert.isAbove(
|
|
171
|
+
onDiscoveredProtoIdx,
|
|
172
|
+
-1,
|
|
173
|
+
'Did not register OnDiscoveredFn proto before loading bindings!'
|
|
174
|
+
)
|
|
175
|
+
assert.isBelow(
|
|
176
|
+
onDiscoveredProtoIdx,
|
|
177
|
+
firstFuncIdx + this.koffiProtoCalls!.length,
|
|
178
|
+
'OnDiscoveredFn proto must be registered before bindings are loaded!'
|
|
179
|
+
)
|
|
180
|
+
}
|
|
181
|
+
|
|
155
182
|
@test()
|
|
156
183
|
protected static async onConnectedReceivesPeripheral() {
|
|
157
184
|
let received: NativePeripheral | undefined = undefined
|
|
@@ -187,6 +214,53 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
187
214
|
assert.isEqual(LibndxAdapter.getInstance(), fake)
|
|
188
215
|
}
|
|
189
216
|
|
|
217
|
+
@test()
|
|
218
|
+
protected static async discoverBleUuidCallsBindingWithExpectedArgs() {
|
|
219
|
+
this.discoverBleUuid()
|
|
220
|
+
|
|
221
|
+
assert.isEqual(
|
|
222
|
+
this.callsToDiscoverBle[0].namePrefix,
|
|
223
|
+
this.bleNamePrefix,
|
|
224
|
+
'discoverBleUuid did not pass expected namePrefix to binding!'
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
assert.isFunction(
|
|
228
|
+
this.callsToDiscoverBle[0].onDiscovered,
|
|
229
|
+
'discoverBleUuid did not pass an onDiscovered callback to the binding!'
|
|
230
|
+
)
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
@test()
|
|
234
|
+
protected static async discoverBleUuidReturnsJson() {
|
|
235
|
+
const json = this.discoverBleUuid()
|
|
236
|
+
|
|
237
|
+
assert.isEqualDeep(
|
|
238
|
+
json,
|
|
239
|
+
this.successfulResult,
|
|
240
|
+
'discoverBleUuid did not return a JSON string!'
|
|
241
|
+
)
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
@test()
|
|
245
|
+
protected static async discoverBleUuidInvokesOnDiscoveredWithUuid() {
|
|
246
|
+
let received: string | undefined
|
|
247
|
+
|
|
248
|
+
this.discoverBleUuid((uuid: string) => {
|
|
249
|
+
received = uuid
|
|
250
|
+
})
|
|
251
|
+
|
|
252
|
+
const discoveredUuid = this.generateId()
|
|
253
|
+
const registeredOnDiscovered = this.callsToDiscoverBle[0]
|
|
254
|
+
.onDiscovered as (uuid: string) => void
|
|
255
|
+
registeredOnDiscovered(discoveredUuid)
|
|
256
|
+
|
|
257
|
+
assert.isEqual(
|
|
258
|
+
received,
|
|
259
|
+
discoveredUuid,
|
|
260
|
+
'onDiscovered was not invoked with discovered uuid!'
|
|
261
|
+
)
|
|
262
|
+
}
|
|
263
|
+
|
|
190
264
|
@test()
|
|
191
265
|
protected static async createBleBackendCallsBindingWithExpectedArgs() {
|
|
192
266
|
this.createBleBackend()
|
|
@@ -401,6 +475,13 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
401
475
|
)
|
|
402
476
|
}
|
|
403
477
|
|
|
478
|
+
private static discoverBleUuid(onDiscovered?: (uuid: string) => void) {
|
|
479
|
+
return this.instance.discoverBleUuid({
|
|
480
|
+
namePrefix: this.bleNamePrefix,
|
|
481
|
+
onDiscovered: onDiscovered ?? (() => {}),
|
|
482
|
+
})
|
|
483
|
+
}
|
|
484
|
+
|
|
404
485
|
private static createBleBackend() {
|
|
405
486
|
return this.instance.createBleBackend({
|
|
406
487
|
deviceUuid: this.bleDeviceUuid,
|
|
@@ -459,6 +540,13 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
459
540
|
|
|
460
541
|
private static FakeBindings(): LibndxBindings {
|
|
461
542
|
return {
|
|
543
|
+
discover_ble_uuid: (args: any) => {
|
|
544
|
+
this.callsToDiscoverBle.push({
|
|
545
|
+
namePrefix: args[0],
|
|
546
|
+
onDiscovered: args[1],
|
|
547
|
+
})
|
|
548
|
+
return JSON.stringify(this.successfulResult)
|
|
549
|
+
},
|
|
462
550
|
create_ble_backend: (args) => {
|
|
463
551
|
this.callsToCreateBle.push(args)
|
|
464
552
|
return JSON.stringify(this.successfulResult)
|
|
@@ -503,6 +591,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
503
591
|
}
|
|
504
592
|
|
|
505
593
|
private static resetCallsToFakeBindings() {
|
|
594
|
+
this.callsToDiscoverBle.length = 0
|
|
506
595
|
this.callsToCreateBle.length = 0
|
|
507
596
|
this.callsToStartBle.length = 0
|
|
508
597
|
this.callsToStopBle.length = 0
|
|
@@ -10,51 +10,10 @@ export default class LibndxAdapter implements Libndx {
|
|
|
10
10
|
|
|
11
11
|
private static charCallbackProto?: ReturnType<typeof koffi.proto>
|
|
12
12
|
private static charCallbackStruct?: ReturnType<typeof koffi.struct>
|
|
13
|
+
private static onDiscoveredProto?: ReturnType<typeof koffi.proto>
|
|
13
14
|
private static onConnectedProto?: ReturnType<typeof koffi.proto>
|
|
14
15
|
private static onRssiProto?: ReturnType<typeof koffi.proto>
|
|
15
16
|
|
|
16
|
-
private static getCharCallbackProto() {
|
|
17
|
-
if (!this.charCallbackProto) {
|
|
18
|
-
this.charCallbackProto = LibndxAdapter.koffiProto(
|
|
19
|
-
'void CharCallbackFn(uint8 *data, int length, double timestamp)'
|
|
20
|
-
)
|
|
21
|
-
}
|
|
22
|
-
return this.charCallbackProto
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
private static getOnConnectedProto() {
|
|
26
|
-
if (!this.onConnectedProto) {
|
|
27
|
-
this.onConnectedProto = LibndxAdapter.koffiProto(
|
|
28
|
-
'void OnConnectedFn(str uuid, str name)'
|
|
29
|
-
)
|
|
30
|
-
}
|
|
31
|
-
return this.onConnectedProto
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
private static getOnRssiProto() {
|
|
35
|
-
if (!this.onRssiProto) {
|
|
36
|
-
this.onRssiProto = LibndxAdapter.koffiProto(
|
|
37
|
-
'void OnRssiFn(int rssi)'
|
|
38
|
-
)
|
|
39
|
-
}
|
|
40
|
-
return this.onRssiProto
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
private static getCharCallbackStruct() {
|
|
44
|
-
if (!this.charCallbackStruct) {
|
|
45
|
-
this.getCharCallbackProto()
|
|
46
|
-
this.charCallbackStruct = LibndxAdapter.koffiStruct(
|
|
47
|
-
'CharCallback',
|
|
48
|
-
{
|
|
49
|
-
charUuid: 'str',
|
|
50
|
-
charName: 'str',
|
|
51
|
-
onData: LibndxAdapter.koffiPointer(this.charCallbackProto!),
|
|
52
|
-
}
|
|
53
|
-
)
|
|
54
|
-
}
|
|
55
|
-
return this.charCallbackStruct
|
|
56
|
-
}
|
|
57
|
-
|
|
58
17
|
private static instance?: Libndx
|
|
59
18
|
|
|
60
19
|
private libndxPath: string
|
|
@@ -87,6 +46,7 @@ export default class LibndxAdapter implements Libndx {
|
|
|
87
46
|
public static resetKoffiCache() {
|
|
88
47
|
delete this.charCallbackProto
|
|
89
48
|
delete this.charCallbackStruct
|
|
49
|
+
delete this.onDiscoveredProto
|
|
90
50
|
delete this.onConnectedProto
|
|
91
51
|
delete this.onRssiProto
|
|
92
52
|
}
|
|
@@ -100,9 +60,10 @@ export default class LibndxAdapter implements Libndx {
|
|
|
100
60
|
}
|
|
101
61
|
|
|
102
62
|
private defineBindings() {
|
|
63
|
+
LibndxAdapter.getCharCallbackStruct()
|
|
64
|
+
LibndxAdapter.getOnDiscoveredProto()
|
|
103
65
|
LibndxAdapter.getOnConnectedProto()
|
|
104
66
|
LibndxAdapter.getOnRssiProto()
|
|
105
|
-
LibndxAdapter.getCharCallbackStruct()
|
|
106
67
|
const lib = LibndxAdapter.koffiLoad(this.libndxPath)
|
|
107
68
|
|
|
108
69
|
const wrap1 = (f: (a: string) => string) => (args: [string]) =>
|
|
@@ -123,7 +84,17 @@ export default class LibndxAdapter implements Libndx {
|
|
|
123
84
|
(args: [string, number, unknown]) =>
|
|
124
85
|
f(args[0], args[1], args[2])
|
|
125
86
|
|
|
87
|
+
const wrapDiscoverBleUuid =
|
|
88
|
+
(f: (a: string, b: unknown) => string) =>
|
|
89
|
+
(args: [string, unknown]) =>
|
|
90
|
+
f(args[0], args[1])
|
|
91
|
+
|
|
126
92
|
this.bindings = {
|
|
93
|
+
discover_ble_uuid: wrapDiscoverBleUuid(
|
|
94
|
+
lib.func(
|
|
95
|
+
'str discover_ble_uuid(str name_prefix, OnDiscoveredFn *on_discovered)'
|
|
96
|
+
)
|
|
97
|
+
),
|
|
127
98
|
create_ble_backend: wrap1(
|
|
128
99
|
lib.func('str create_ble_backend(str config)')
|
|
129
100
|
),
|
|
@@ -179,6 +150,22 @@ export default class LibndxAdapter implements Libndx {
|
|
|
179
150
|
)
|
|
180
151
|
}
|
|
181
152
|
|
|
153
|
+
public discoverBleUuid(options: DiscoverBleUuidOptions) {
|
|
154
|
+
const { namePrefix, onDiscovered } = options
|
|
155
|
+
|
|
156
|
+
const registeredOnDiscovered = LibndxAdapter.koffiRegister(
|
|
157
|
+
onDiscovered,
|
|
158
|
+
LibndxAdapter.koffiPointer(LibndxAdapter.getOnDiscoveredProto()!)
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
return JSON.parse(
|
|
162
|
+
this.bindings.discover_ble_uuid([
|
|
163
|
+
namePrefix,
|
|
164
|
+
registeredOnDiscovered,
|
|
165
|
+
])
|
|
166
|
+
)
|
|
167
|
+
}
|
|
168
|
+
|
|
182
169
|
public createBleBackend(options: BleBackendOptions) {
|
|
183
170
|
const { deviceUuid } = options
|
|
184
171
|
const configJson = JSON.stringify({ uuid: deviceUuid })
|
|
@@ -267,9 +254,61 @@ export default class LibndxAdapter implements Libndx {
|
|
|
267
254
|
const { serialNumber } = options
|
|
268
255
|
return JSON.parse(this.bindings.stop_ftdi_backend([serialNumber]))
|
|
269
256
|
}
|
|
257
|
+
|
|
258
|
+
private static getCharCallbackProto() {
|
|
259
|
+
if (!this.charCallbackProto) {
|
|
260
|
+
this.charCallbackProto = LibndxAdapter.koffiProto(
|
|
261
|
+
'void CharCallbackFn(uint8 *data, int length, double timestamp)'
|
|
262
|
+
)
|
|
263
|
+
}
|
|
264
|
+
return this.charCallbackProto
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
private static getOnConnectedProto() {
|
|
268
|
+
if (!this.onConnectedProto) {
|
|
269
|
+
this.onConnectedProto = LibndxAdapter.koffiProto(
|
|
270
|
+
'void OnConnectedFn(str uuid, str name)'
|
|
271
|
+
)
|
|
272
|
+
}
|
|
273
|
+
return this.onConnectedProto
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
private static getOnRssiProto() {
|
|
277
|
+
if (!this.onRssiProto) {
|
|
278
|
+
this.onRssiProto = LibndxAdapter.koffiProto(
|
|
279
|
+
'void OnRssiFn(int rssi)'
|
|
280
|
+
)
|
|
281
|
+
}
|
|
282
|
+
return this.onRssiProto
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
private static getOnDiscoveredProto() {
|
|
286
|
+
if (!this.onDiscoveredProto) {
|
|
287
|
+
this.onDiscoveredProto = LibndxAdapter.koffiProto(
|
|
288
|
+
'void OnDiscoveredFn(str uuid)'
|
|
289
|
+
)
|
|
290
|
+
}
|
|
291
|
+
return this.onDiscoveredProto
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
private static getCharCallbackStruct() {
|
|
295
|
+
if (!this.charCallbackStruct) {
|
|
296
|
+
this.getCharCallbackProto()
|
|
297
|
+
this.charCallbackStruct = LibndxAdapter.koffiStruct(
|
|
298
|
+
'CharCallback',
|
|
299
|
+
{
|
|
300
|
+
charUuid: 'str',
|
|
301
|
+
charName: 'str',
|
|
302
|
+
onData: LibndxAdapter.koffiPointer(this.charCallbackProto!),
|
|
303
|
+
}
|
|
304
|
+
)
|
|
305
|
+
}
|
|
306
|
+
return this.charCallbackStruct
|
|
307
|
+
}
|
|
270
308
|
}
|
|
271
309
|
|
|
272
310
|
export interface Libndx {
|
|
311
|
+
discoverBleUuid(options: DiscoverBleUuidOptions): NativeResult
|
|
273
312
|
createBleBackend(options: BleBackendOptions): NativeResult
|
|
274
313
|
startBleBackend(options: StartBleBackendOptions): NativeResult
|
|
275
314
|
writeBleCharacteristic(options: WriteBleCharacteristicOptions): NativeResult
|
|
@@ -286,6 +325,11 @@ export interface LibndxAdapterOptions {
|
|
|
286
325
|
libndxPath?: string
|
|
287
326
|
}
|
|
288
327
|
|
|
328
|
+
export interface DiscoverBleUuidOptions {
|
|
329
|
+
namePrefix: string
|
|
330
|
+
onDiscovered: (uuid: string) => void
|
|
331
|
+
}
|
|
332
|
+
|
|
289
333
|
export interface BleBackendOptions {
|
|
290
334
|
deviceUuid: string
|
|
291
335
|
}
|
|
@@ -317,6 +361,7 @@ export interface FtdiBackendOptions {
|
|
|
317
361
|
}
|
|
318
362
|
|
|
319
363
|
export interface LibndxBindings {
|
|
364
|
+
discover_ble_uuid(args: [string, unknown]): string
|
|
320
365
|
create_ble_backend(args: [string]): string
|
|
321
366
|
start_ble_backend(args: [string, unknown, unknown, number]): string
|
|
322
367
|
write_ble_characteristic(args: [string, string, string]): string
|
|
@@ -7,10 +7,12 @@ import {
|
|
|
7
7
|
StartBleBackendOptions,
|
|
8
8
|
NativeResult,
|
|
9
9
|
BleRssiOptions,
|
|
10
|
+
DiscoverBleUuidOptions,
|
|
10
11
|
} from '../../impl/LibndxAdapter.js'
|
|
11
12
|
|
|
12
13
|
export default class FakeLibndx implements Libndx {
|
|
13
14
|
public static callsToConstructor: (LibndxAdapterOptions | undefined)[] = []
|
|
15
|
+
public static callsToDiscoverBleUuid: DiscoverBleUuidOptions[] = []
|
|
14
16
|
public static callsToCreateBleBackend: BleBackendOptions[] = []
|
|
15
17
|
public static callsToStartBleBackend: StartBleBackendOptions[] = []
|
|
16
18
|
public static callsToWriteBleCharacteristic: WriteBleCharacteristicOptions[] =
|
|
@@ -27,6 +29,11 @@ export default class FakeLibndx implements Libndx {
|
|
|
27
29
|
FakeLibndx.callsToConstructor.push(options)
|
|
28
30
|
}
|
|
29
31
|
|
|
32
|
+
public discoverBleUuid(options: DiscoverBleUuidOptions) {
|
|
33
|
+
FakeLibndx.callsToDiscoverBleUuid.push(options)
|
|
34
|
+
return FakeLibndx.fakeResult
|
|
35
|
+
}
|
|
36
|
+
|
|
30
37
|
public createBleBackend(options: BleBackendOptions) {
|
|
31
38
|
FakeLibndx.callsToCreateBleBackend.push(options)
|
|
32
39
|
return FakeLibndx.fakeResult
|
|
@@ -69,6 +76,7 @@ export default class FakeLibndx implements Libndx {
|
|
|
69
76
|
|
|
70
77
|
public static resetTestDouble() {
|
|
71
78
|
FakeLibndx.callsToConstructor = []
|
|
79
|
+
FakeLibndx.callsToDiscoverBleUuid = []
|
|
72
80
|
FakeLibndx.callsToCreateBleBackend = []
|
|
73
81
|
FakeLibndx.callsToStartBleBackend = []
|
|
74
82
|
FakeLibndx.callsToWriteBleCharacteristic = []
|