@neurodevs/ndx-native 2.0.6 → 4.0.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 +6 -1
- package/build/__tests__/impl/LibndxAdapter.test.js +48 -6
- package/build/__tests__/impl/LibndxAdapter.test.js.map +1 -1
- package/build/impl/LibndxAdapter.d.ts +20 -8
- package/build/impl/LibndxAdapter.js +40 -12
- package/build/impl/LibndxAdapter.js.map +1 -1
- package/build/testDoubles/Libndx/FakeLibndx.d.ts +3 -3
- package/build/testDoubles/Libndx/FakeLibndx.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/impl/LibndxAdapter.test.ts +61 -14
- package/src/impl/LibndxAdapter.ts +77 -28
- package/src/testDoubles/Libndx/FakeLibndx.ts +3 -3
|
@@ -6,12 +6,13 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
6
6
|
private static fakeBindings;
|
|
7
7
|
private static koffiLoadPath?;
|
|
8
8
|
private static koffiFuncSignatures?;
|
|
9
|
+
private static koffiStructCalls?;
|
|
9
10
|
private static readonly bleDeviceUuid;
|
|
10
11
|
private static readonly bleCharacteristicUuid;
|
|
11
12
|
private static readonly bleValueToWrite;
|
|
12
13
|
private static readonly ftdiSerialNumber;
|
|
14
|
+
private static readonly charCallbacks;
|
|
13
15
|
private static readonly callsToCreateBle;
|
|
14
|
-
private static readonly onDataCallback;
|
|
15
16
|
private static readonly callsToStartBle;
|
|
16
17
|
private static readonly callsToWriteBle;
|
|
17
18
|
private static readonly callsToReadRssi;
|
|
@@ -26,6 +27,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
26
27
|
protected static throwsWhenBindingsFailToLoad(): Promise<void>;
|
|
27
28
|
protected static callsKoffiLoadWithLibndxPath(): Promise<void>;
|
|
28
29
|
protected static registersExpectedKoffiFuncSignatures(): Promise<void>;
|
|
30
|
+
protected static registersCharCallbackStruct(): Promise<void>;
|
|
29
31
|
protected static getInstanceReturnsASingleton(): Promise<void>;
|
|
30
32
|
protected static canSetInstance(): void;
|
|
31
33
|
protected static createBleBackendCallsBindingWithExpectedArgs(): Promise<void>;
|
|
@@ -62,6 +64,9 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
62
64
|
private static resetCallsToFakeBindings;
|
|
63
65
|
private static clearAndFakeFfi;
|
|
64
66
|
private static fakeKoffiRegister;
|
|
67
|
+
private static fakeKoffiPointer;
|
|
68
|
+
private static fakeKoffiProto;
|
|
69
|
+
private static fakeKoffiStruct;
|
|
65
70
|
private static fakeKoffiLoad;
|
|
66
71
|
private static get failedToLoadError();
|
|
67
72
|
private static resetInstance;
|
|
@@ -15,12 +15,19 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
15
15
|
static fakeBindings;
|
|
16
16
|
static koffiLoadPath;
|
|
17
17
|
static koffiFuncSignatures;
|
|
18
|
+
static koffiStructCalls;
|
|
18
19
|
static bleDeviceUuid = this.generateId();
|
|
19
20
|
static bleCharacteristicUuid = this.generateId();
|
|
20
21
|
static bleValueToWrite = this.generateId();
|
|
21
22
|
static ftdiSerialNumber = this.generateId();
|
|
23
|
+
static charCallbacks = [
|
|
24
|
+
{
|
|
25
|
+
charUuid: this.generateId(),
|
|
26
|
+
charName: this.generateId(),
|
|
27
|
+
onData: (_data, _length, _timestamp) => { },
|
|
28
|
+
},
|
|
29
|
+
];
|
|
22
30
|
static callsToCreateBle = [];
|
|
23
|
-
static onDataCallback = (_data, _length, _timestamp) => { };
|
|
24
31
|
static callsToStartBle = [];
|
|
25
32
|
static callsToWriteBle = [];
|
|
26
33
|
static callsToReadRssi = [];
|
|
@@ -55,7 +62,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
55
62
|
static async registersExpectedKoffiFuncSignatures() {
|
|
56
63
|
assert.isEqualDeep(this.koffiFuncSignatures, [
|
|
57
64
|
'str create_ble_backend(str config)',
|
|
58
|
-
'str start_ble_backend(str uuid,
|
|
65
|
+
'str start_ble_backend(str uuid, CharCallback *callbacks, int num_callbacks)',
|
|
59
66
|
'str write_ble_characteristic(str uuid, str charUuid, str value)',
|
|
60
67
|
'str read_ble_rssi(str uuid)',
|
|
61
68
|
'str stop_ble_backend(str uuid)',
|
|
@@ -66,6 +73,18 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
66
73
|
'str destroy_ftdi_backend(str serial)',
|
|
67
74
|
], 'Did not register expected koffi func signatures!');
|
|
68
75
|
}
|
|
76
|
+
static async registersCharCallbackStruct() {
|
|
77
|
+
assert.isEqualDeep(this.koffiStructCalls, [
|
|
78
|
+
{
|
|
79
|
+
name: 'CharCallback',
|
|
80
|
+
fields: {
|
|
81
|
+
charUuid: 'str',
|
|
82
|
+
charName: 'str',
|
|
83
|
+
onData: {},
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
], 'Did not register CharCallback struct with expected fields!');
|
|
87
|
+
}
|
|
69
88
|
static async getInstanceReturnsASingleton() {
|
|
70
89
|
assert.isEqual(LibndxAdapter.getInstance(), LibndxAdapter.getInstance());
|
|
71
90
|
}
|
|
@@ -86,7 +105,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
86
105
|
static async startBleBackendCallsBindingWithExpectedArgs() {
|
|
87
106
|
this.startBleBackend();
|
|
88
107
|
assert.isEqual(this.callsToStartBle[0].uuid, this.bleDeviceUuid, 'startBleBackend did not pass expected uuid to binding!');
|
|
89
|
-
assert.
|
|
108
|
+
assert.isEqualDeep(this.callsToStartBle[0].charCallbacks, this.charCallbacks, 'startBleBackend did not pass expected charCallbacks to binding!');
|
|
90
109
|
}
|
|
91
110
|
static async startBleBackendReturnsJsonString() {
|
|
92
111
|
const raw = this.startBleBackend();
|
|
@@ -177,13 +196,13 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
177
196
|
static startBleBackend() {
|
|
178
197
|
return this.instance.startBleBackend({
|
|
179
198
|
deviceUuid: this.bleDeviceUuid,
|
|
180
|
-
|
|
199
|
+
charCallbacks: this.charCallbacks,
|
|
181
200
|
});
|
|
182
201
|
}
|
|
183
202
|
static writeBleCharacteristic() {
|
|
184
203
|
return this.instance.writeBleCharacteristic({
|
|
185
204
|
deviceUuid: this.bleDeviceUuid,
|
|
186
|
-
|
|
205
|
+
charUuid: this.bleCharacteristicUuid,
|
|
187
206
|
value: this.bleValueToWrite,
|
|
188
207
|
});
|
|
189
208
|
}
|
|
@@ -229,7 +248,10 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
229
248
|
return JSON.stringify({});
|
|
230
249
|
},
|
|
231
250
|
start_ble_backend: (args) => {
|
|
232
|
-
this.callsToStartBle.push({
|
|
251
|
+
this.callsToStartBle.push({
|
|
252
|
+
uuid: args[0],
|
|
253
|
+
charCallbacks: args[1],
|
|
254
|
+
});
|
|
233
255
|
return JSON.stringify({});
|
|
234
256
|
},
|
|
235
257
|
write_ble_characteristic: (args) => {
|
|
@@ -280,12 +302,29 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
280
302
|
static clearAndFakeFfi() {
|
|
281
303
|
delete this.koffiLoadPath;
|
|
282
304
|
this.koffiFuncSignatures = [];
|
|
305
|
+
this.koffiStructCalls = [];
|
|
306
|
+
LibndxAdapter.resetKoffiCache();
|
|
283
307
|
this.fakeKoffiLoad();
|
|
284
308
|
this.fakeKoffiRegister();
|
|
309
|
+
this.fakeKoffiProto();
|
|
310
|
+
this.fakeKoffiPointer();
|
|
311
|
+
this.fakeKoffiStruct();
|
|
285
312
|
}
|
|
286
313
|
static fakeKoffiRegister() {
|
|
287
314
|
LibndxAdapter.koffiRegister = (fn) => fn;
|
|
288
315
|
}
|
|
316
|
+
static fakeKoffiPointer() {
|
|
317
|
+
LibndxAdapter.koffiPointer = (() => ({}));
|
|
318
|
+
}
|
|
319
|
+
static fakeKoffiProto() {
|
|
320
|
+
LibndxAdapter.koffiProto = (() => ({}));
|
|
321
|
+
}
|
|
322
|
+
static fakeKoffiStruct() {
|
|
323
|
+
LibndxAdapter.koffiStruct = ((name, fields) => {
|
|
324
|
+
this.koffiStructCalls.push({ name, fields });
|
|
325
|
+
return {};
|
|
326
|
+
});
|
|
327
|
+
}
|
|
289
328
|
static fakeKoffiLoad() {
|
|
290
329
|
LibndxAdapter.koffiLoad = (path) => {
|
|
291
330
|
this.koffiLoadPath = path;
|
|
@@ -341,6 +380,9 @@ __decorate([
|
|
|
341
380
|
__decorate([
|
|
342
381
|
test()
|
|
343
382
|
], LibndxAdapterTest, "registersExpectedKoffiFuncSignatures", null);
|
|
383
|
+
__decorate([
|
|
384
|
+
test()
|
|
385
|
+
], LibndxAdapterTest, "registersCharCallbackStruct", null);
|
|
344
386
|
__decorate([
|
|
345
387
|
test()
|
|
346
388
|
], LibndxAdapterTest, "getInstanceReturnsASingleton", 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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"}
|
|
@@ -3,21 +3,28 @@ export default class LibndxAdapter implements Libndx {
|
|
|
3
3
|
static Class?: LibndxConstructor;
|
|
4
4
|
static koffiLoad: typeof koffi.load;
|
|
5
5
|
static koffiRegister: typeof koffi.register;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
static koffiStruct: typeof koffi.struct;
|
|
7
|
+
static koffiProto: typeof koffi.proto;
|
|
8
|
+
static koffiPointer: typeof koffi.pointer;
|
|
9
|
+
private static charCallbackProto?;
|
|
10
|
+
private static charCallbackStruct?;
|
|
11
|
+
private static getCharCallbackProto;
|
|
12
|
+
private static getCharCallbackStruct;
|
|
8
13
|
private static instance?;
|
|
9
14
|
private libndxPath;
|
|
10
15
|
private bindings;
|
|
16
|
+
private registeredCallbacks;
|
|
11
17
|
protected constructor(options?: LibndxAdapterOptions);
|
|
12
18
|
static getInstance(options?: LibndxAdapterOptions): Libndx;
|
|
13
19
|
static setInstance(instance: Libndx): void;
|
|
14
20
|
static resetInstance(): void;
|
|
21
|
+
static resetKoffiCache(): void;
|
|
15
22
|
private tryToLoadBindings;
|
|
16
23
|
private defineBindings;
|
|
17
24
|
private throwFailedToLoadLibndx;
|
|
18
25
|
createBleBackend(options: BleBackendOptions): string;
|
|
19
26
|
startBleBackend(options: StartBleBackendOptions): string;
|
|
20
|
-
writeBleCharacteristic(options:
|
|
27
|
+
writeBleCharacteristic(options: WriteBleCharacteristicOptions): string;
|
|
21
28
|
readBleRssi(options: BleBackendOptions): string;
|
|
22
29
|
stopBleBackend(options: BleBackendOptions): string;
|
|
23
30
|
destroyBleBackend(options: BleBackendOptions): string;
|
|
@@ -29,7 +36,7 @@ export default class LibndxAdapter implements Libndx {
|
|
|
29
36
|
export interface Libndx {
|
|
30
37
|
createBleBackend(options: BleBackendOptions): string;
|
|
31
38
|
startBleBackend(options: StartBleBackendOptions): string;
|
|
32
|
-
writeBleCharacteristic(options:
|
|
39
|
+
writeBleCharacteristic(options: WriteBleCharacteristicOptions): string;
|
|
33
40
|
readBleRssi(options: BleBackendOptions): string;
|
|
34
41
|
stopBleBackend(options: BleBackendOptions): string;
|
|
35
42
|
destroyBleBackend(options: BleBackendOptions): string;
|
|
@@ -46,19 +53,24 @@ export interface BleBackendOptions {
|
|
|
46
53
|
deviceUuid: string;
|
|
47
54
|
}
|
|
48
55
|
export interface StartBleBackendOptions extends BleBackendOptions {
|
|
49
|
-
|
|
56
|
+
charCallbacks: CharacteristicCallback[];
|
|
50
57
|
}
|
|
51
|
-
export interface
|
|
58
|
+
export interface WriteBleCharacteristicOptions {
|
|
52
59
|
deviceUuid: string;
|
|
53
|
-
|
|
60
|
+
charUuid: string;
|
|
54
61
|
value: string;
|
|
55
62
|
}
|
|
63
|
+
export interface CharacteristicCallback {
|
|
64
|
+
charUuid: string;
|
|
65
|
+
charName?: string;
|
|
66
|
+
onData: (data: Buffer, length: number, timestamp: number) => void;
|
|
67
|
+
}
|
|
56
68
|
export interface FtdiBackendOptions {
|
|
57
69
|
serialNumber: string;
|
|
58
70
|
}
|
|
59
71
|
export interface LibndxBindings {
|
|
60
72
|
create_ble_backend(args: [string]): string;
|
|
61
|
-
start_ble_backend(args: [string, unknown]): string;
|
|
73
|
+
start_ble_backend(args: [string, unknown, number]): string;
|
|
62
74
|
write_ble_characteristic(args: [string, string, string]): string;
|
|
63
75
|
read_ble_rssi(args: [string]): string;
|
|
64
76
|
stop_ble_backend(args: [string]): string;
|
|
@@ -3,16 +3,32 @@ export default class LibndxAdapter {
|
|
|
3
3
|
static Class;
|
|
4
4
|
static koffiLoad = koffi.load.bind(koffi);
|
|
5
5
|
static koffiRegister = koffi.register.bind(koffi);
|
|
6
|
-
static
|
|
7
|
-
static
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
static koffiStruct = koffi.struct.bind(koffi);
|
|
7
|
+
static koffiProto = koffi.proto.bind(koffi);
|
|
8
|
+
static koffiPointer = koffi.pointer.bind(koffi);
|
|
9
|
+
static charCallbackProto;
|
|
10
|
+
static charCallbackStruct;
|
|
11
|
+
static getCharCallbackProto() {
|
|
12
|
+
if (!this.charCallbackProto) {
|
|
13
|
+
this.charCallbackProto = LibndxAdapter.koffiProto('void CharCallbackFn(uint8 *data, int length, double timestamp)');
|
|
10
14
|
}
|
|
11
|
-
return this.
|
|
15
|
+
return this.charCallbackProto;
|
|
16
|
+
}
|
|
17
|
+
static getCharCallbackStruct() {
|
|
18
|
+
if (!this.charCallbackStruct) {
|
|
19
|
+
this.getCharCallbackProto();
|
|
20
|
+
this.charCallbackStruct = LibndxAdapter.koffiStruct('CharCallback', {
|
|
21
|
+
charUuid: 'str',
|
|
22
|
+
charName: 'str',
|
|
23
|
+
onData: LibndxAdapter.koffiPointer(this.charCallbackProto),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return this.charCallbackStruct;
|
|
12
27
|
}
|
|
13
28
|
static instance;
|
|
14
29
|
libndxPath;
|
|
15
30
|
bindings;
|
|
31
|
+
registeredCallbacks = [];
|
|
16
32
|
constructor(options) {
|
|
17
33
|
const { libndxPath = '/opt/local/lib/libndx.dylib' } = options ?? {};
|
|
18
34
|
this.libndxPath = libndxPath;
|
|
@@ -30,6 +46,10 @@ export default class LibndxAdapter {
|
|
|
30
46
|
static resetInstance() {
|
|
31
47
|
delete this.instance;
|
|
32
48
|
}
|
|
49
|
+
static resetKoffiCache() {
|
|
50
|
+
delete this.charCallbackProto;
|
|
51
|
+
delete this.charCallbackStruct;
|
|
52
|
+
}
|
|
33
53
|
tryToLoadBindings() {
|
|
34
54
|
try {
|
|
35
55
|
this.defineBindings();
|
|
@@ -39,14 +59,14 @@ export default class LibndxAdapter {
|
|
|
39
59
|
}
|
|
40
60
|
}
|
|
41
61
|
defineBindings() {
|
|
42
|
-
LibndxAdapter.
|
|
62
|
+
LibndxAdapter.getCharCallbackStruct();
|
|
43
63
|
const lib = LibndxAdapter.koffiLoad(this.libndxPath);
|
|
44
64
|
const wrap1 = (f) => (args) => f(args[0]);
|
|
45
|
-
const wrap2 = (f) => (args) => f(args[0], args[1]);
|
|
46
65
|
const wrap3 = (f) => (args) => f(args[0], args[1], args[2]);
|
|
66
|
+
const wrapStartBle = (f) => (args) => f(args[0], args[1], args[2]);
|
|
47
67
|
this.bindings = {
|
|
48
68
|
create_ble_backend: wrap1(lib.func('str create_ble_backend(str config)')),
|
|
49
|
-
start_ble_backend:
|
|
69
|
+
start_ble_backend: wrapStartBle(lib.func('str start_ble_backend(str uuid, CharCallback *callbacks, int num_callbacks)')),
|
|
50
70
|
write_ble_characteristic: wrap3(lib.func('str write_ble_characteristic(str uuid, str charUuid, str value)')),
|
|
51
71
|
read_ble_rssi: wrap1(lib.func('str read_ble_rssi(str uuid)')),
|
|
52
72
|
stop_ble_backend: wrap1(lib.func('str stop_ble_backend(str uuid)')),
|
|
@@ -84,12 +104,20 @@ export default class LibndxAdapter {
|
|
|
84
104
|
return this.bindings.create_ble_backend([configJson]);
|
|
85
105
|
}
|
|
86
106
|
startBleBackend(options) {
|
|
87
|
-
const { deviceUuid,
|
|
88
|
-
|
|
89
|
-
|
|
107
|
+
const { deviceUuid, charCallbacks } = options;
|
|
108
|
+
this.registeredCallbacks = charCallbacks.map(({ charUuid, charName, onData }) => ({
|
|
109
|
+
charUuid,
|
|
110
|
+
charName,
|
|
111
|
+
onData: LibndxAdapter.koffiRegister(onData, LibndxAdapter.koffiPointer(LibndxAdapter.getCharCallbackProto())),
|
|
112
|
+
}));
|
|
113
|
+
return this.bindings.start_ble_backend([
|
|
114
|
+
deviceUuid,
|
|
115
|
+
this.registeredCallbacks,
|
|
116
|
+
this.registeredCallbacks.length,
|
|
117
|
+
]);
|
|
90
118
|
}
|
|
91
119
|
writeBleCharacteristic(options) {
|
|
92
|
-
const { deviceUuid, characteristicUuid, value } = options;
|
|
120
|
+
const { deviceUuid, charUuid: characteristicUuid, value } = options;
|
|
93
121
|
return this.bindings.write_ble_characteristic([
|
|
94
122
|
deviceUuid,
|
|
95
123
|
characteristicUuid,
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"LibndxAdapter.js","sourceRoot":"","sources":["../../src/impl/LibndxAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { BleBackendOptions,
|
|
1
|
+
import { BleBackendOptions, WriteBleCharacteristicOptions, FtdiBackendOptions, Libndx, LibndxAdapterOptions, StartBleBackendOptions } from '../../impl/LibndxAdapter.js';
|
|
2
2
|
export default class FakeLibndx implements Libndx {
|
|
3
3
|
static callsToConstructor: (LibndxAdapterOptions | undefined)[];
|
|
4
4
|
static callsToCreateBleBackend: BleBackendOptions[];
|
|
5
5
|
static callsToStartBleBackend: StartBleBackendOptions[];
|
|
6
|
-
static callsToWriteBle:
|
|
6
|
+
static callsToWriteBle: WriteBleCharacteristicOptions[];
|
|
7
7
|
static callsToStopBleBacked: BleBackendOptions[];
|
|
8
8
|
static callsToDestroyBleBackend: BleBackendOptions[];
|
|
9
9
|
static callsToGetRssiBleBackend: BleBackendOptions[];
|
|
@@ -15,7 +15,7 @@ export default class FakeLibndx implements Libndx {
|
|
|
15
15
|
constructor(options?: LibndxAdapterOptions);
|
|
16
16
|
createBleBackend(options: BleBackendOptions): string;
|
|
17
17
|
startBleBackend(options: StartBleBackendOptions): string;
|
|
18
|
-
writeBleCharacteristic(options:
|
|
18
|
+
writeBleCharacteristic(options: WriteBleCharacteristicOptions): string;
|
|
19
19
|
readBleRssi(options: BleBackendOptions): string;
|
|
20
20
|
stopBleBackend(options: BleBackendOptions): string;
|
|
21
21
|
destroyBleBackend(options: BleBackendOptions): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeLibndx.js","sourceRoot":"","sources":["../../../src/testDoubles/Libndx/FakeLibndx.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,OAAO,UAAU;IACpB,MAAM,CAAC,kBAAkB,GAAyC,EAAE,CAAA;IACpE,MAAM,CAAC,uBAAuB,GAAwB,EAAE,CAAA;IACxD,MAAM,CAAC,sBAAsB,GAA6B,EAAE,CAAA;IAC5D,MAAM,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"FakeLibndx.js","sourceRoot":"","sources":["../../../src/testDoubles/Libndx/FakeLibndx.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/ndx-native",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Native Node.js adapters for LSL, XDF, and LabRecorder",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@neurodevs/eslint-config-ndx": "^1.0.1",
|
|
45
45
|
"@neurodevs/generate-id": "^1.1.2",
|
|
46
|
-
"@neurodevs/node-tdd": "^
|
|
46
|
+
"@neurodevs/node-tdd": "^3.0.1",
|
|
47
47
|
"@neurodevs/prettier-config-ndx": "^1.0.2",
|
|
48
48
|
"typescript": "^5.9.3"
|
|
49
49
|
},
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { test, assert } from '@neurodevs/node-tdd'
|
|
2
2
|
|
|
3
3
|
import LibndxAdapter, {
|
|
4
|
+
CharacteristicCallback,
|
|
4
5
|
Libndx,
|
|
5
6
|
LibndxBindings,
|
|
6
7
|
} from '../../impl/LibndxAdapter.js'
|
|
@@ -15,6 +16,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
15
16
|
|
|
16
17
|
private static koffiLoadPath?: string
|
|
17
18
|
private static koffiFuncSignatures?: string[]
|
|
19
|
+
private static koffiStructCalls?: { name: string; fields: object }[]
|
|
18
20
|
|
|
19
21
|
private static readonly bleDeviceUuid = this.generateId()
|
|
20
22
|
private static readonly bleCharacteristicUuid = this.generateId()
|
|
@@ -22,20 +24,24 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
22
24
|
|
|
23
25
|
private static readonly ftdiSerialNumber = this.generateId()
|
|
24
26
|
|
|
27
|
+
private static readonly charCallbacks = [
|
|
28
|
+
{
|
|
29
|
+
charUuid: this.generateId(),
|
|
30
|
+
charName: this.generateId(),
|
|
31
|
+
onData: (_data: Buffer, _length: number, _timestamp: number) => {},
|
|
32
|
+
},
|
|
33
|
+
]
|
|
34
|
+
|
|
25
35
|
private static readonly callsToCreateBle: string[][] = []
|
|
26
|
-
private static readonly onDataCallback = (
|
|
27
|
-
_data: Buffer,
|
|
28
|
-
_length: number,
|
|
29
|
-
_timestamp: number
|
|
30
|
-
) => {}
|
|
31
36
|
private static readonly callsToStartBle: {
|
|
32
37
|
uuid: string
|
|
33
|
-
|
|
38
|
+
charCallbacks: CharacteristicCallback[]
|
|
34
39
|
}[] = []
|
|
35
40
|
private static readonly callsToWriteBle: string[][] = []
|
|
36
41
|
private static readonly callsToReadRssi: string[][] = []
|
|
37
42
|
private static readonly callsToStopBle: string[][] = []
|
|
38
43
|
private static readonly callsToDestroyBle: string[][] = []
|
|
44
|
+
|
|
39
45
|
private static readonly callsToCreateFtdi: string[][] = []
|
|
40
46
|
private static readonly callsToStartFtdi: string[][] = []
|
|
41
47
|
private static readonly callsToStopFtdi: string[][] = []
|
|
@@ -88,7 +94,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
88
94
|
this.koffiFuncSignatures,
|
|
89
95
|
[
|
|
90
96
|
'str create_ble_backend(str config)',
|
|
91
|
-
'str start_ble_backend(str uuid,
|
|
97
|
+
'str start_ble_backend(str uuid, CharCallback *callbacks, int num_callbacks)',
|
|
92
98
|
'str write_ble_characteristic(str uuid, str charUuid, str value)',
|
|
93
99
|
'str read_ble_rssi(str uuid)',
|
|
94
100
|
'str stop_ble_backend(str uuid)',
|
|
@@ -102,6 +108,24 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
102
108
|
)
|
|
103
109
|
}
|
|
104
110
|
|
|
111
|
+
@test()
|
|
112
|
+
protected static async registersCharCallbackStruct() {
|
|
113
|
+
assert.isEqualDeep(
|
|
114
|
+
this.koffiStructCalls,
|
|
115
|
+
[
|
|
116
|
+
{
|
|
117
|
+
name: 'CharCallback',
|
|
118
|
+
fields: {
|
|
119
|
+
charUuid: 'str',
|
|
120
|
+
charName: 'str',
|
|
121
|
+
onData: {},
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
'Did not register CharCallback struct with expected fields!'
|
|
126
|
+
)
|
|
127
|
+
}
|
|
128
|
+
|
|
105
129
|
@test()
|
|
106
130
|
protected static async getInstanceReturnsASingleton() {
|
|
107
131
|
assert.isEqual(LibndxAdapter.getInstance(), LibndxAdapter.getInstance())
|
|
@@ -143,10 +167,10 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
143
167
|
'startBleBackend did not pass expected uuid to binding!'
|
|
144
168
|
)
|
|
145
169
|
|
|
146
|
-
assert.
|
|
147
|
-
this.callsToStartBle[0].
|
|
148
|
-
this.
|
|
149
|
-
'startBleBackend did not pass expected
|
|
170
|
+
assert.isEqualDeep(
|
|
171
|
+
this.callsToStartBle[0].charCallbacks,
|
|
172
|
+
this.charCallbacks,
|
|
173
|
+
'startBleBackend did not pass expected charCallbacks to binding!'
|
|
150
174
|
)
|
|
151
175
|
}
|
|
152
176
|
|
|
@@ -329,14 +353,14 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
329
353
|
private static startBleBackend() {
|
|
330
354
|
return this.instance.startBleBackend({
|
|
331
355
|
deviceUuid: this.bleDeviceUuid,
|
|
332
|
-
|
|
356
|
+
charCallbacks: this.charCallbacks,
|
|
333
357
|
})
|
|
334
358
|
}
|
|
335
359
|
|
|
336
360
|
private static writeBleCharacteristic() {
|
|
337
361
|
return this.instance.writeBleCharacteristic({
|
|
338
362
|
deviceUuid: this.bleDeviceUuid,
|
|
339
|
-
|
|
363
|
+
charUuid: this.bleCharacteristicUuid,
|
|
340
364
|
value: this.bleValueToWrite,
|
|
341
365
|
})
|
|
342
366
|
}
|
|
@@ -390,7 +414,10 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
390
414
|
return JSON.stringify({})
|
|
391
415
|
},
|
|
392
416
|
start_ble_backend: (args: any) => {
|
|
393
|
-
this.callsToStartBle.push({
|
|
417
|
+
this.callsToStartBle.push({
|
|
418
|
+
uuid: args[0],
|
|
419
|
+
charCallbacks: args[1],
|
|
420
|
+
})
|
|
394
421
|
return JSON.stringify({})
|
|
395
422
|
},
|
|
396
423
|
write_ble_characteristic: (args) => {
|
|
@@ -443,14 +470,34 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
443
470
|
private static clearAndFakeFfi() {
|
|
444
471
|
delete this.koffiLoadPath
|
|
445
472
|
this.koffiFuncSignatures = []
|
|
473
|
+
this.koffiStructCalls = []
|
|
474
|
+
LibndxAdapter.resetKoffiCache()
|
|
446
475
|
this.fakeKoffiLoad()
|
|
447
476
|
this.fakeKoffiRegister()
|
|
477
|
+
this.fakeKoffiProto()
|
|
478
|
+
this.fakeKoffiPointer()
|
|
479
|
+
this.fakeKoffiStruct()
|
|
448
480
|
}
|
|
449
481
|
|
|
450
482
|
private static fakeKoffiRegister() {
|
|
451
483
|
LibndxAdapter.koffiRegister = (fn) => fn as any
|
|
452
484
|
}
|
|
453
485
|
|
|
486
|
+
private static fakeKoffiPointer() {
|
|
487
|
+
LibndxAdapter.koffiPointer = (() => ({})) as any
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
private static fakeKoffiProto() {
|
|
491
|
+
LibndxAdapter.koffiProto = (() => ({})) as any
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
private static fakeKoffiStruct() {
|
|
495
|
+
LibndxAdapter.koffiStruct = ((name: string, fields: object) => {
|
|
496
|
+
this.koffiStructCalls!.push({ name, fields })
|
|
497
|
+
return {} as any
|
|
498
|
+
}) as any
|
|
499
|
+
}
|
|
500
|
+
|
|
454
501
|
private static fakeKoffiLoad() {
|
|
455
502
|
LibndxAdapter.koffiLoad = (path) => {
|
|
456
503
|
this.koffiLoadPath = path as string
|
|
@@ -2,24 +2,44 @@ import koffi from 'koffi'
|
|
|
2
2
|
|
|
3
3
|
export default class LibndxAdapter implements Libndx {
|
|
4
4
|
public static Class?: LibndxConstructor
|
|
5
|
-
public static koffiLoad
|
|
5
|
+
public static koffiLoad = koffi.load.bind(koffi)
|
|
6
6
|
public static koffiRegister = koffi.register.bind(koffi)
|
|
7
|
+
public static koffiStruct = koffi.struct.bind(koffi)
|
|
8
|
+
public static koffiProto = koffi.proto.bind(koffi)
|
|
9
|
+
public static koffiPointer: typeof koffi.pointer = koffi.pointer.bind(koffi)
|
|
7
10
|
|
|
8
|
-
private static
|
|
11
|
+
private static charCallbackProto?: ReturnType<typeof koffi.proto>
|
|
12
|
+
private static charCallbackStruct?: ReturnType<typeof koffi.struct>
|
|
9
13
|
|
|
10
|
-
private static
|
|
11
|
-
if (!this.
|
|
12
|
-
this.
|
|
13
|
-
'void
|
|
14
|
+
private static getCharCallbackProto() {
|
|
15
|
+
if (!this.charCallbackProto) {
|
|
16
|
+
this.charCallbackProto = LibndxAdapter.koffiProto(
|
|
17
|
+
'void CharCallbackFn(uint8 *data, int length, double timestamp)'
|
|
14
18
|
)
|
|
15
19
|
}
|
|
16
|
-
return this.
|
|
20
|
+
return this.charCallbackProto
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
private static getCharCallbackStruct() {
|
|
24
|
+
if (!this.charCallbackStruct) {
|
|
25
|
+
this.getCharCallbackProto()
|
|
26
|
+
this.charCallbackStruct = LibndxAdapter.koffiStruct(
|
|
27
|
+
'CharCallback',
|
|
28
|
+
{
|
|
29
|
+
charUuid: 'str',
|
|
30
|
+
charName: 'str',
|
|
31
|
+
onData: LibndxAdapter.koffiPointer(this.charCallbackProto!),
|
|
32
|
+
}
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
return this.charCallbackStruct
|
|
17
36
|
}
|
|
18
37
|
|
|
19
38
|
private static instance?: Libndx
|
|
20
39
|
|
|
21
40
|
private libndxPath: string
|
|
22
41
|
private bindings!: LibndxBindings
|
|
42
|
+
private registeredCallbacks: unknown[] = []
|
|
23
43
|
|
|
24
44
|
protected constructor(options?: LibndxAdapterOptions) {
|
|
25
45
|
const { libndxPath = '/opt/local/lib/libndx.dylib' } = options ?? {}
|
|
@@ -44,6 +64,11 @@ export default class LibndxAdapter implements Libndx {
|
|
|
44
64
|
delete this.instance
|
|
45
65
|
}
|
|
46
66
|
|
|
67
|
+
public static resetKoffiCache() {
|
|
68
|
+
delete this.charCallbackProto
|
|
69
|
+
delete this.charCallbackStruct
|
|
70
|
+
}
|
|
71
|
+
|
|
47
72
|
private tryToLoadBindings() {
|
|
48
73
|
try {
|
|
49
74
|
this.defineBindings()
|
|
@@ -53,28 +78,30 @@ export default class LibndxAdapter implements Libndx {
|
|
|
53
78
|
}
|
|
54
79
|
|
|
55
80
|
private defineBindings() {
|
|
56
|
-
LibndxAdapter.
|
|
81
|
+
LibndxAdapter.getCharCallbackStruct()
|
|
57
82
|
const lib = LibndxAdapter.koffiLoad(this.libndxPath)
|
|
58
83
|
|
|
59
84
|
const wrap1 = (f: (a: string) => string) => (args: [string]) =>
|
|
60
85
|
f(args[0])
|
|
61
86
|
|
|
62
|
-
const wrap2 =
|
|
63
|
-
(f: (a: string, b: unknown) => string) =>
|
|
64
|
-
(args: [string, unknown]) =>
|
|
65
|
-
f(args[0], args[1])
|
|
66
|
-
|
|
67
87
|
const wrap3 =
|
|
68
88
|
(f: (a: string, b: string, c: string) => string) =>
|
|
69
89
|
(args: [string, string, string]) =>
|
|
70
90
|
f(args[0], args[1], args[2])
|
|
71
91
|
|
|
92
|
+
const wrapStartBle =
|
|
93
|
+
(f: (a: string, b: unknown, c: number) => string) =>
|
|
94
|
+
(args: [string, unknown, number]) =>
|
|
95
|
+
f(args[0], args[1], args[2])
|
|
96
|
+
|
|
72
97
|
this.bindings = {
|
|
73
98
|
create_ble_backend: wrap1(
|
|
74
99
|
lib.func('str create_ble_backend(str config)')
|
|
75
100
|
),
|
|
76
|
-
start_ble_backend:
|
|
77
|
-
lib.func(
|
|
101
|
+
start_ble_backend: wrapStartBle(
|
|
102
|
+
lib.func(
|
|
103
|
+
'str start_ble_backend(str uuid, CharCallback *callbacks, int num_callbacks)'
|
|
104
|
+
)
|
|
78
105
|
),
|
|
79
106
|
write_ble_characteristic: wrap3(
|
|
80
107
|
lib.func(
|
|
@@ -128,21 +155,36 @@ export default class LibndxAdapter implements Libndx {
|
|
|
128
155
|
public createBleBackend(options: BleBackendOptions) {
|
|
129
156
|
const { deviceUuid } = options
|
|
130
157
|
const configJson = JSON.stringify({ uuid: deviceUuid })
|
|
158
|
+
|
|
131
159
|
return this.bindings.create_ble_backend([configJson])
|
|
132
160
|
}
|
|
133
161
|
|
|
134
162
|
public startBleBackend(options: StartBleBackendOptions) {
|
|
135
|
-
const { deviceUuid,
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
onData
|
|
139
|
-
|
|
163
|
+
const { deviceUuid, charCallbacks } = options
|
|
164
|
+
|
|
165
|
+
this.registeredCallbacks = charCallbacks.map(
|
|
166
|
+
({ charUuid, charName, onData }) => ({
|
|
167
|
+
charUuid,
|
|
168
|
+
charName,
|
|
169
|
+
onData: LibndxAdapter.koffiRegister(
|
|
170
|
+
onData,
|
|
171
|
+
LibndxAdapter.koffiPointer(
|
|
172
|
+
LibndxAdapter.getCharCallbackProto()!
|
|
173
|
+
)
|
|
174
|
+
),
|
|
175
|
+
})
|
|
140
176
|
)
|
|
141
|
-
|
|
177
|
+
|
|
178
|
+
return this.bindings.start_ble_backend([
|
|
179
|
+
deviceUuid,
|
|
180
|
+
this.registeredCallbacks,
|
|
181
|
+
this.registeredCallbacks.length,
|
|
182
|
+
])
|
|
142
183
|
}
|
|
143
184
|
|
|
144
|
-
public writeBleCharacteristic(options:
|
|
145
|
-
const { deviceUuid, characteristicUuid, value } = options
|
|
185
|
+
public writeBleCharacteristic(options: WriteBleCharacteristicOptions) {
|
|
186
|
+
const { deviceUuid, charUuid: characteristicUuid, value } = options
|
|
187
|
+
|
|
146
188
|
return this.bindings.write_ble_characteristic([
|
|
147
189
|
deviceUuid,
|
|
148
190
|
characteristicUuid,
|
|
@@ -168,6 +210,7 @@ export default class LibndxAdapter implements Libndx {
|
|
|
168
210
|
public createFtdiBackend(options: FtdiBackendOptions) {
|
|
169
211
|
const { serialNumber } = options
|
|
170
212
|
const configJson = JSON.stringify({ serialNumber })
|
|
213
|
+
|
|
171
214
|
return this.bindings.create_ftdi_backend([configJson])
|
|
172
215
|
}
|
|
173
216
|
|
|
@@ -190,7 +233,7 @@ export default class LibndxAdapter implements Libndx {
|
|
|
190
233
|
export interface Libndx {
|
|
191
234
|
createBleBackend(options: BleBackendOptions): string
|
|
192
235
|
startBleBackend(options: StartBleBackendOptions): string
|
|
193
|
-
writeBleCharacteristic(options:
|
|
236
|
+
writeBleCharacteristic(options: WriteBleCharacteristicOptions): string
|
|
194
237
|
readBleRssi(options: BleBackendOptions): string
|
|
195
238
|
stopBleBackend(options: BleBackendOptions): string
|
|
196
239
|
destroyBleBackend(options: BleBackendOptions): string
|
|
@@ -211,22 +254,28 @@ export interface BleBackendOptions {
|
|
|
211
254
|
}
|
|
212
255
|
|
|
213
256
|
export interface StartBleBackendOptions extends BleBackendOptions {
|
|
214
|
-
|
|
257
|
+
charCallbacks: CharacteristicCallback[]
|
|
215
258
|
}
|
|
216
259
|
|
|
217
|
-
export interface
|
|
260
|
+
export interface WriteBleCharacteristicOptions {
|
|
218
261
|
deviceUuid: string
|
|
219
|
-
|
|
262
|
+
charUuid: string
|
|
220
263
|
value: string
|
|
221
264
|
}
|
|
222
265
|
|
|
266
|
+
export interface CharacteristicCallback {
|
|
267
|
+
charUuid: string
|
|
268
|
+
charName?: string
|
|
269
|
+
onData: (data: Buffer, length: number, timestamp: number) => void
|
|
270
|
+
}
|
|
271
|
+
|
|
223
272
|
export interface FtdiBackendOptions {
|
|
224
273
|
serialNumber: string
|
|
225
274
|
}
|
|
226
275
|
|
|
227
276
|
export interface LibndxBindings {
|
|
228
277
|
create_ble_backend(args: [string]): string
|
|
229
|
-
start_ble_backend(args: [string, unknown]): string
|
|
278
|
+
start_ble_backend(args: [string, unknown, number]): string
|
|
230
279
|
write_ble_characteristic(args: [string, string, string]): string
|
|
231
280
|
read_ble_rssi(args: [string]): string
|
|
232
281
|
stop_ble_backend(args: [string]): string
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BleBackendOptions,
|
|
3
|
-
|
|
3
|
+
WriteBleCharacteristicOptions,
|
|
4
4
|
FtdiBackendOptions,
|
|
5
5
|
Libndx,
|
|
6
6
|
LibndxAdapterOptions,
|
|
@@ -11,7 +11,7 @@ export default class FakeLibndx implements Libndx {
|
|
|
11
11
|
public static callsToConstructor: (LibndxAdapterOptions | undefined)[] = []
|
|
12
12
|
public static callsToCreateBleBackend: BleBackendOptions[] = []
|
|
13
13
|
public static callsToStartBleBackend: StartBleBackendOptions[] = []
|
|
14
|
-
public static callsToWriteBle:
|
|
14
|
+
public static callsToWriteBle: WriteBleCharacteristicOptions[] = []
|
|
15
15
|
public static callsToStopBleBacked: BleBackendOptions[] = []
|
|
16
16
|
public static callsToDestroyBleBackend: BleBackendOptions[] = []
|
|
17
17
|
public static callsToGetRssiBleBackend: BleBackendOptions[] = []
|
|
@@ -36,7 +36,7 @@ export default class FakeLibndx implements Libndx {
|
|
|
36
36
|
return FakeLibndx.fakeResult
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
public writeBleCharacteristic(options:
|
|
39
|
+
public writeBleCharacteristic(options: WriteBleCharacteristicOptions) {
|
|
40
40
|
FakeLibndx.callsToWriteBle.push(options)
|
|
41
41
|
return FakeLibndx.fakeResult
|
|
42
42
|
}
|