@neurodevs/ndx-native 2.0.0 → 2.0.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/.vscode/launch.json +3 -1
- package/.vscode/settings.json +1 -2
- package/.vscode/tasks.json +6 -31
- package/build/__tests__/impl/LibndxAdapter.test.d.ts +7 -8
- package/build/__tests__/impl/LibndxAdapter.test.js +46 -88
- package/build/__tests__/impl/LibndxAdapter.test.js.map +1 -1
- package/build/impl/LibndxAdapter.d.ts +10 -9
- package/build/impl/LibndxAdapter.js +25 -72
- package/build/impl/LibndxAdapter.js.map +1 -1
- package/package.json +8 -17
- package/src/__tests__/impl/LibndxAdapter.test.ts +72 -96
- package/src/impl/LibndxAdapter.ts +67 -79
- package/tsconfig.json +1 -1
- package/.regressionproof.json +0 -7
- package/build/.spruce/settings.json +0 -11
- package/src/.spruce/settings.json +0 -11
package/.vscode/launch.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "1.0.0",
|
|
3
3
|
"configurations": [
|
|
4
4
|
{
|
|
5
5
|
"type": "node",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"runtimeArgs": [
|
|
18
18
|
"--inspect-brk",
|
|
19
19
|
"--trace-warnings",
|
|
20
|
+
"--experimental-vm-modules",
|
|
20
21
|
"${workspaceFolder}/node_modules/.bin/jest",
|
|
21
22
|
"${fileBasenameNoExtension}",
|
|
22
23
|
"--detectOpenHandles"
|
|
@@ -33,6 +34,7 @@
|
|
|
33
34
|
"runtimeArgs": [
|
|
34
35
|
"--inspect-brk",
|
|
35
36
|
"--trace-warnings",
|
|
37
|
+
"--experimental-vm-modules",
|
|
36
38
|
"${workspaceFolder}/node_modules/.bin/jest"
|
|
37
39
|
],
|
|
38
40
|
"cwd": "${workspaceFolder}",
|
package/.vscode/settings.json
CHANGED
package/.vscode/tasks.json
CHANGED
|
@@ -22,16 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"label": "test.file",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"test",
|
|
28
|
-
"--inspect",
|
|
29
|
-
"5200",
|
|
30
|
-
"--pattern",
|
|
31
|
-
"${fileBasenameNoExtension}",
|
|
32
|
-
"--watchMode",
|
|
33
|
-
"standard"
|
|
34
|
-
],
|
|
25
|
+
"type": "shell",
|
|
26
|
+
"command": "node node_modules/@neurodevs/node-tdd/build/workspace/testRunner.cli.js --pattern \"${fileBasenameNoExtension}\" --watchMode standard --inspect 5200",
|
|
35
27
|
"promptOnClose": false,
|
|
36
28
|
"group": {
|
|
37
29
|
"kind": "test",
|
|
@@ -45,8 +37,8 @@
|
|
|
45
37
|
},
|
|
46
38
|
{
|
|
47
39
|
"label": "test.reporter",
|
|
48
|
-
"
|
|
49
|
-
"
|
|
40
|
+
"type": "shell",
|
|
41
|
+
"command": "node node_modules/@neurodevs/node-tdd/build/workspace/testRunner.cli.js --watchMode standard",
|
|
50
42
|
"promptOnClose": false,
|
|
51
43
|
"group": "test",
|
|
52
44
|
"runOptions": {
|
|
@@ -56,19 +48,8 @@
|
|
|
56
48
|
"panel": "shared",
|
|
57
49
|
"focus": true,
|
|
58
50
|
"reveal": "always"
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
{
|
|
62
|
-
"label": "spruce",
|
|
63
|
-
"type": "shell",
|
|
64
|
-
"command": "spruce ${input:spruceCommand}",
|
|
65
|
-
"problemMatcher": [],
|
|
66
|
-
"presentation": {
|
|
67
|
-
"reveal": "always",
|
|
68
|
-
"focus": true,
|
|
69
|
-
"panel": "new",
|
|
70
|
-
"clear": false
|
|
71
|
-
}
|
|
51
|
+
},
|
|
52
|
+
"problemMatcher": []
|
|
72
53
|
},
|
|
73
54
|
{
|
|
74
55
|
"label": "shell",
|
|
@@ -96,12 +77,6 @@
|
|
|
96
77
|
}
|
|
97
78
|
],
|
|
98
79
|
"inputs": [
|
|
99
|
-
{
|
|
100
|
-
"id": "spruceCommand",
|
|
101
|
-
"description": "spruce command",
|
|
102
|
-
"default": "create.test",
|
|
103
|
-
"type": "promptString"
|
|
104
|
-
},
|
|
105
80
|
{
|
|
106
81
|
"id": "command",
|
|
107
82
|
"description": "command",
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
2
|
-
import { define } from 'ffi-rs';
|
|
3
2
|
export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
4
|
-
static ffiRsDefine: typeof define;
|
|
5
3
|
private static instance;
|
|
6
4
|
private static libndxPath;
|
|
7
5
|
private static shouldThrowWhenLoadingBindings;
|
|
8
6
|
private static fakeBindings;
|
|
9
|
-
private static
|
|
10
|
-
private static
|
|
7
|
+
private static koffiLoadPath?;
|
|
8
|
+
private static koffiFuncSignatures?;
|
|
11
9
|
private static readonly bleDeviceUuid;
|
|
12
10
|
private static readonly bleCharacteristicUuid;
|
|
13
11
|
private static readonly bleValueToWrite;
|
|
14
12
|
private static readonly ftdiSerialNumber;
|
|
15
13
|
private static readonly callsToCreateBle;
|
|
14
|
+
private static readonly onDataCallback;
|
|
16
15
|
private static readonly callsToStartBle;
|
|
17
16
|
private static readonly callsToWriteBle;
|
|
18
17
|
private static readonly callsToReadRssi;
|
|
@@ -25,8 +24,8 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
25
24
|
protected static beforeEach(): Promise<void>;
|
|
26
25
|
protected static createsInstance(): Promise<void>;
|
|
27
26
|
protected static throwsWhenBindingsFailToLoad(): Promise<void>;
|
|
28
|
-
protected static
|
|
29
|
-
protected static
|
|
27
|
+
protected static callsKoffiLoadWithLibndxPath(): Promise<void>;
|
|
28
|
+
protected static registersExpectedKoffiFuncSignatures(): Promise<void>;
|
|
30
29
|
protected static getInstanceReturnsASingleton(): Promise<void>;
|
|
31
30
|
protected static canSetInstance(): void;
|
|
32
31
|
protected static createBleBackendCallsBindingWithExpectedArgs(): Promise<void>;
|
|
@@ -62,8 +61,8 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
62
61
|
private static FakeBindings;
|
|
63
62
|
private static resetCallsToFakeBindings;
|
|
64
63
|
private static clearAndFakeFfi;
|
|
65
|
-
private static
|
|
66
|
-
private static
|
|
64
|
+
private static fakeKoffiRegister;
|
|
65
|
+
private static fakeKoffiLoad;
|
|
67
66
|
private static get failedToLoadError();
|
|
68
67
|
private static resetInstance;
|
|
69
68
|
private static LibndxAdapter;
|
|
@@ -7,21 +7,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { test, assert } from '@neurodevs/node-tdd';
|
|
8
8
|
import LibndxAdapter from '../../impl/LibndxAdapter.js';
|
|
9
9
|
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
10
|
-
import { DataType, define } from 'ffi-rs';
|
|
11
10
|
import FakeLibndx from '../../testDoubles/Libndx/FakeLibndx.js';
|
|
12
11
|
export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
13
|
-
static ffiRsDefine = define;
|
|
14
12
|
static instance;
|
|
15
13
|
static libndxPath = '/opt/local/lib/libndx.dylib';
|
|
16
14
|
static shouldThrowWhenLoadingBindings;
|
|
17
15
|
static fakeBindings;
|
|
18
|
-
static
|
|
19
|
-
static
|
|
16
|
+
static koffiLoadPath;
|
|
17
|
+
static koffiFuncSignatures;
|
|
20
18
|
static bleDeviceUuid = this.generateId();
|
|
21
19
|
static bleCharacteristicUuid = this.generateId();
|
|
22
20
|
static bleValueToWrite = this.generateId();
|
|
23
21
|
static ftdiSerialNumber = this.generateId();
|
|
24
22
|
static callsToCreateBle = [];
|
|
23
|
+
static onDataCallback = (_data, _timestamp) => { };
|
|
25
24
|
static callsToStartBle = [];
|
|
26
25
|
static callsToWriteBle = [];
|
|
27
26
|
static callsToReadRssi = [];
|
|
@@ -50,69 +49,22 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
50
49
|
const actual = (err.message ?? err.stack).replace(/\s+/g, '');
|
|
51
50
|
assert.isEqual(actual, this.failedToLoadError, 'Did not receive the expected error!');
|
|
52
51
|
}
|
|
53
|
-
static async
|
|
54
|
-
assert.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
paramsType: [DataType.String],
|
|
70
|
-
},
|
|
71
|
-
write_ble_characteristic: {
|
|
72
|
-
library: 'ndx',
|
|
73
|
-
retType: DataType.String,
|
|
74
|
-
paramsType: [
|
|
75
|
-
DataType.String,
|
|
76
|
-
DataType.String,
|
|
77
|
-
DataType.String,
|
|
78
|
-
],
|
|
79
|
-
},
|
|
80
|
-
read_ble_rssi: {
|
|
81
|
-
library: 'ndx',
|
|
82
|
-
retType: DataType.String,
|
|
83
|
-
paramsType: [DataType.String],
|
|
84
|
-
},
|
|
85
|
-
stop_ble_backend: {
|
|
86
|
-
library: 'ndx',
|
|
87
|
-
retType: DataType.String,
|
|
88
|
-
paramsType: [DataType.String],
|
|
89
|
-
},
|
|
90
|
-
destroy_ble_backend: {
|
|
91
|
-
library: 'ndx',
|
|
92
|
-
retType: DataType.String,
|
|
93
|
-
paramsType: [DataType.String],
|
|
94
|
-
},
|
|
95
|
-
create_ftdi_backend: {
|
|
96
|
-
library: 'ndx',
|
|
97
|
-
retType: DataType.String,
|
|
98
|
-
paramsType: [DataType.String],
|
|
99
|
-
},
|
|
100
|
-
start_ftdi_backend: {
|
|
101
|
-
library: 'ndx',
|
|
102
|
-
retType: DataType.String,
|
|
103
|
-
paramsType: [DataType.String],
|
|
104
|
-
},
|
|
105
|
-
stop_ftdi_backend: {
|
|
106
|
-
library: 'ndx',
|
|
107
|
-
retType: DataType.String,
|
|
108
|
-
paramsType: [DataType.String],
|
|
109
|
-
},
|
|
110
|
-
destroy_ftdi_backend: {
|
|
111
|
-
library: 'ndx',
|
|
112
|
-
retType: DataType.String,
|
|
113
|
-
paramsType: [DataType.String],
|
|
114
|
-
},
|
|
115
|
-
}, 'Did not pass valid options to ffiRsDefine!');
|
|
52
|
+
static async callsKoffiLoadWithLibndxPath() {
|
|
53
|
+
assert.isEqual(this.koffiLoadPath, this.libndxPath, 'Did not call koffiLoad with the expected library path!');
|
|
54
|
+
}
|
|
55
|
+
static async registersExpectedKoffiFuncSignatures() {
|
|
56
|
+
assert.isEqualDeep(this.koffiFuncSignatures, [
|
|
57
|
+
'str create_ble_backend(str config)',
|
|
58
|
+
'str start_ble_backend(str uuid, DataCallback *cb)',
|
|
59
|
+
'str write_ble_characteristic(str uuid, str charUuid, str value)',
|
|
60
|
+
'str read_ble_rssi(str uuid)',
|
|
61
|
+
'str stop_ble_backend(str uuid)',
|
|
62
|
+
'str destroy_ble_backend(str uuid)',
|
|
63
|
+
'str create_ftdi_backend(str config)',
|
|
64
|
+
'str start_ftdi_backend(str serial)',
|
|
65
|
+
'str stop_ftdi_backend(str serial)',
|
|
66
|
+
'str destroy_ftdi_backend(str serial)',
|
|
67
|
+
], 'Did not register expected koffi func signatures!');
|
|
116
68
|
}
|
|
117
69
|
static async getInstanceReturnsASingleton() {
|
|
118
70
|
assert.isEqual(LibndxAdapter.getInstance(), LibndxAdapter.getInstance());
|
|
@@ -133,7 +85,8 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
133
85
|
}
|
|
134
86
|
static async startBleBackendCallsBindingWithExpectedArgs() {
|
|
135
87
|
this.startBleBackend();
|
|
136
|
-
assert.isEqual(this.callsToStartBle[0]
|
|
88
|
+
assert.isEqual(this.callsToStartBle[0].uuid, this.bleDeviceUuid, 'startBleBackend did not pass expected uuid to binding!');
|
|
89
|
+
assert.isEqual(this.callsToStartBle[0].onData, this.onDataCallback, 'startBleBackend did not pass expected callback to binding!');
|
|
137
90
|
}
|
|
138
91
|
static async startBleBackendReturnsJsonString() {
|
|
139
92
|
const raw = this.startBleBackend();
|
|
@@ -224,6 +177,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
224
177
|
static startBleBackend() {
|
|
225
178
|
return this.instance.startBleBackend({
|
|
226
179
|
deviceUuid: this.bleDeviceUuid,
|
|
180
|
+
onData: this.onDataCallback,
|
|
227
181
|
});
|
|
228
182
|
}
|
|
229
183
|
static writeBleCharacteristic() {
|
|
@@ -275,7 +229,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
275
229
|
return JSON.stringify({});
|
|
276
230
|
},
|
|
277
231
|
start_ble_backend: (args) => {
|
|
278
|
-
this.callsToStartBle.push(args);
|
|
232
|
+
this.callsToStartBle.push({ uuid: args[0], onData: args[1] });
|
|
279
233
|
return JSON.stringify({});
|
|
280
234
|
},
|
|
281
235
|
write_ble_characteristic: (args) => {
|
|
@@ -324,25 +278,29 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
324
278
|
this.callsToDestroyFtdi.length = 0;
|
|
325
279
|
}
|
|
326
280
|
static clearAndFakeFfi() {
|
|
327
|
-
delete this.
|
|
328
|
-
|
|
329
|
-
this.
|
|
330
|
-
this.
|
|
331
|
-
}
|
|
332
|
-
static
|
|
333
|
-
LibndxAdapter.
|
|
334
|
-
|
|
281
|
+
delete this.koffiLoadPath;
|
|
282
|
+
this.koffiFuncSignatures = [];
|
|
283
|
+
this.fakeKoffiLoad();
|
|
284
|
+
this.fakeKoffiRegister();
|
|
285
|
+
}
|
|
286
|
+
static fakeKoffiRegister() {
|
|
287
|
+
LibndxAdapter.koffiRegister = (fn) => fn;
|
|
288
|
+
}
|
|
289
|
+
static fakeKoffiLoad() {
|
|
290
|
+
LibndxAdapter.koffiLoad = (path) => {
|
|
291
|
+
this.koffiLoadPath = path;
|
|
292
|
+
return {
|
|
293
|
+
func: (sig) => {
|
|
294
|
+
this.koffiFuncSignatures.push(sig);
|
|
295
|
+
if (this.shouldThrowWhenLoadingBindings) {
|
|
296
|
+
throw new Error(this.fakeErrorMessage);
|
|
297
|
+
}
|
|
298
|
+
const name = sig.match(/\w+\s+(\w+)\s*\(/)[1];
|
|
299
|
+
return (...args) => this.fakeBindings[name](args);
|
|
300
|
+
},
|
|
301
|
+
};
|
|
335
302
|
};
|
|
336
303
|
}
|
|
337
|
-
static fakeFfiRsDefine() {
|
|
338
|
-
LibndxAdapter.ffiRsDefine = ((options) => {
|
|
339
|
-
this.ffiRsDefineOptions = options;
|
|
340
|
-
if (this.shouldThrowWhenLoadingBindings) {
|
|
341
|
-
throw new Error(this.fakeErrorMessage);
|
|
342
|
-
}
|
|
343
|
-
return this.fakeBindings;
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
304
|
static get failedToLoadError() {
|
|
347
305
|
return `
|
|
348
306
|
\n -----------------------------------
|
|
@@ -379,10 +337,10 @@ __decorate([
|
|
|
379
337
|
], LibndxAdapterTest, "throwsWhenBindingsFailToLoad", null);
|
|
380
338
|
__decorate([
|
|
381
339
|
test()
|
|
382
|
-
], LibndxAdapterTest, "
|
|
340
|
+
], LibndxAdapterTest, "callsKoffiLoadWithLibndxPath", null);
|
|
383
341
|
__decorate([
|
|
384
342
|
test()
|
|
385
|
-
], LibndxAdapterTest, "
|
|
343
|
+
], LibndxAdapterTest, "registersExpectedKoffiFuncSignatures", null);
|
|
386
344
|
__decorate([
|
|
387
345
|
test()
|
|
388
346
|
], 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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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import koffi from 'koffi';
|
|
2
2
|
export default class LibndxAdapter implements Libndx {
|
|
3
3
|
static Class?: LibndxConstructor;
|
|
4
|
-
static
|
|
5
|
-
static
|
|
4
|
+
static koffiLoad: typeof koffi.load;
|
|
5
|
+
static koffiRegister: typeof koffi.register;
|
|
6
|
+
private static readonly dataCallbackProto;
|
|
6
7
|
private static instance?;
|
|
7
8
|
private libndxPath;
|
|
8
9
|
private bindings;
|
|
@@ -11,11 +12,10 @@ export default class LibndxAdapter implements Libndx {
|
|
|
11
12
|
static setInstance(instance: Libndx): void;
|
|
12
13
|
static resetInstance(): void;
|
|
13
14
|
private tryToLoadBindings;
|
|
14
|
-
private openLibndx;
|
|
15
15
|
private defineBindings;
|
|
16
16
|
private throwFailedToLoadLibndx;
|
|
17
17
|
createBleBackend(options: BleBackendOptions): string;
|
|
18
|
-
startBleBackend(options:
|
|
18
|
+
startBleBackend(options: StartBleBackendOptions): string;
|
|
19
19
|
writeBleCharacteristic(options: BleWriteOptions): string;
|
|
20
20
|
readBleRssi(options: BleBackendOptions): string;
|
|
21
21
|
stopBleBackend(options: BleBackendOptions): string;
|
|
@@ -24,12 +24,10 @@ export default class LibndxAdapter implements Libndx {
|
|
|
24
24
|
startFtdiBackend(options: FtdiBackendOptions): string;
|
|
25
25
|
stopFtdiBackend(options: FtdiBackendOptions): string;
|
|
26
26
|
destroyFtdiBackend(options: FtdiBackendOptions): string;
|
|
27
|
-
private get ffiRsOpen();
|
|
28
|
-
private get ffiRsDefine();
|
|
29
27
|
}
|
|
30
28
|
export interface Libndx {
|
|
31
29
|
createBleBackend(options: BleBackendOptions): string;
|
|
32
|
-
startBleBackend(options:
|
|
30
|
+
startBleBackend(options: StartBleBackendOptions): string;
|
|
33
31
|
writeBleCharacteristic(options: BleWriteOptions): string;
|
|
34
32
|
readBleRssi(options: BleBackendOptions): string;
|
|
35
33
|
stopBleBackend(options: BleBackendOptions): string;
|
|
@@ -46,6 +44,9 @@ export interface LibndxAdapterOptions {
|
|
|
46
44
|
export interface BleBackendOptions {
|
|
47
45
|
deviceUuid: string;
|
|
48
46
|
}
|
|
47
|
+
export interface StartBleBackendOptions extends BleBackendOptions {
|
|
48
|
+
onData: (data: Buffer, timestamp: number) => void;
|
|
49
|
+
}
|
|
49
50
|
export interface BleWriteOptions {
|
|
50
51
|
deviceUuid: string;
|
|
51
52
|
characteristicUuid: string;
|
|
@@ -56,7 +57,7 @@ export interface FtdiBackendOptions {
|
|
|
56
57
|
}
|
|
57
58
|
export interface LibndxBindings {
|
|
58
59
|
create_ble_backend(args: [string]): string;
|
|
59
|
-
start_ble_backend(args: [string]): string;
|
|
60
|
+
start_ble_backend(args: [string, unknown]): string;
|
|
60
61
|
write_ble_characteristic(args: [string, string, string]): string;
|
|
61
62
|
read_ble_rssi(args: [string]): string;
|
|
62
63
|
stop_ble_backend(args: [string]): string;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import koffi from 'koffi';
|
|
2
2
|
export default class LibndxAdapter {
|
|
3
3
|
static Class;
|
|
4
|
-
static
|
|
5
|
-
static
|
|
4
|
+
static koffiLoad = koffi.load.bind(koffi);
|
|
5
|
+
static koffiRegister = koffi.register.bind(koffi);
|
|
6
|
+
static dataCallbackProto = koffi.proto('void DataCallback(uint8 *data, int length, double timestamp)');
|
|
6
7
|
static instance;
|
|
7
8
|
libndxPath;
|
|
8
9
|
bindings;
|
|
@@ -25,77 +26,34 @@ export default class LibndxAdapter {
|
|
|
25
26
|
}
|
|
26
27
|
tryToLoadBindings() {
|
|
27
28
|
try {
|
|
28
|
-
this.openLibndx();
|
|
29
29
|
this.defineBindings();
|
|
30
30
|
}
|
|
31
31
|
catch (err) {
|
|
32
32
|
this.throwFailedToLoadLibndx(err);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
openLibndx() {
|
|
36
|
-
this.ffiRsOpen({
|
|
37
|
-
library: 'ndx',
|
|
38
|
-
path: this.libndxPath,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
35
|
defineBindings() {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
start_ble_backend:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
read_ble_rssi: {
|
|
59
|
-
library: 'ndx',
|
|
60
|
-
retType: DataType.String,
|
|
61
|
-
paramsType: [DataType.String],
|
|
62
|
-
},
|
|
63
|
-
stop_ble_backend: {
|
|
64
|
-
library: 'ndx',
|
|
65
|
-
retType: DataType.String,
|
|
66
|
-
paramsType: [DataType.String],
|
|
67
|
-
},
|
|
68
|
-
destroy_ble_backend: {
|
|
69
|
-
library: 'ndx',
|
|
70
|
-
retType: DataType.String,
|
|
71
|
-
paramsType: [DataType.String],
|
|
72
|
-
},
|
|
73
|
-
create_ftdi_backend: {
|
|
74
|
-
library: 'ndx',
|
|
75
|
-
retType: DataType.String,
|
|
76
|
-
paramsType: [DataType.String],
|
|
77
|
-
},
|
|
78
|
-
start_ftdi_backend: {
|
|
79
|
-
library: 'ndx',
|
|
80
|
-
retType: DataType.String,
|
|
81
|
-
paramsType: [DataType.String],
|
|
82
|
-
},
|
|
83
|
-
stop_ftdi_backend: {
|
|
84
|
-
library: 'ndx',
|
|
85
|
-
retType: DataType.String,
|
|
86
|
-
paramsType: [DataType.String],
|
|
87
|
-
},
|
|
88
|
-
destroy_ftdi_backend: {
|
|
89
|
-
library: 'ndx',
|
|
90
|
-
retType: DataType.String,
|
|
91
|
-
paramsType: [DataType.String],
|
|
92
|
-
},
|
|
93
|
-
});
|
|
36
|
+
const lib = LibndxAdapter.koffiLoad(this.libndxPath);
|
|
37
|
+
const wrap1 = (f) => (args) => f(args[0]);
|
|
38
|
+
const wrap2 = (f) => (args) => f(args[0], args[1]);
|
|
39
|
+
const wrap3 = (f) => (args) => f(args[0], args[1], args[2]);
|
|
40
|
+
this.bindings = {
|
|
41
|
+
create_ble_backend: wrap1(lib.func('str create_ble_backend(str config)')),
|
|
42
|
+
start_ble_backend: wrap2(lib.func('str start_ble_backend(str uuid, DataCallback *cb)')),
|
|
43
|
+
write_ble_characteristic: wrap3(lib.func('str write_ble_characteristic(str uuid, str charUuid, str value)')),
|
|
44
|
+
read_ble_rssi: wrap1(lib.func('str read_ble_rssi(str uuid)')),
|
|
45
|
+
stop_ble_backend: wrap1(lib.func('str stop_ble_backend(str uuid)')),
|
|
46
|
+
destroy_ble_backend: wrap1(lib.func('str destroy_ble_backend(str uuid)')),
|
|
47
|
+
create_ftdi_backend: wrap1(lib.func('str create_ftdi_backend(str config)')),
|
|
48
|
+
start_ftdi_backend: wrap1(lib.func('str start_ftdi_backend(str serial)')),
|
|
49
|
+
stop_ftdi_backend: wrap1(lib.func('str stop_ftdi_backend(str serial)')),
|
|
50
|
+
destroy_ftdi_backend: wrap1(lib.func('str destroy_ftdi_backend(str serial)')),
|
|
51
|
+
};
|
|
94
52
|
}
|
|
95
53
|
throwFailedToLoadLibndx(err) {
|
|
96
54
|
throw new Error(`
|
|
97
55
|
\n -----------------------------------
|
|
98
|
-
\n Failed to load libndx! Tried to load from:
|
|
56
|
+
\n Failed to load libndx! Tried to load from:
|
|
99
57
|
\n ${this.libndxPath}
|
|
100
58
|
\n Instructions to save your day (on MacOS):
|
|
101
59
|
\n 1. git clone https://github.com/neurodevs/libndx.git
|
|
@@ -103,7 +61,7 @@ export default class LibndxAdapter {
|
|
|
103
61
|
\n 3. sudo cp build/libndx.dylib /opt/local/lib/
|
|
104
62
|
\n 4. Try whatever you were doing again!
|
|
105
63
|
\n Modify step 3 for your OS if you are not on MacOS.
|
|
106
|
-
\n If you're still unsure, ask an LLM with this error and your OS.
|
|
64
|
+
\n If you're still unsure, ask an LLM with this error and your OS.
|
|
107
65
|
\n You could also post an issue on the repo:
|
|
108
66
|
\n https://github.com/neurodevs/ndx-native/issues
|
|
109
67
|
\n Good luck!
|
|
@@ -119,8 +77,9 @@ export default class LibndxAdapter {
|
|
|
119
77
|
return this.bindings.create_ble_backend([configJson]);
|
|
120
78
|
}
|
|
121
79
|
startBleBackend(options) {
|
|
122
|
-
const { deviceUuid } = options;
|
|
123
|
-
|
|
80
|
+
const { deviceUuid, onData } = options;
|
|
81
|
+
const cb = LibndxAdapter.koffiRegister(onData, koffi.pointer(LibndxAdapter.dataCallbackProto));
|
|
82
|
+
return this.bindings.start_ble_backend([deviceUuid, cb]);
|
|
124
83
|
}
|
|
125
84
|
writeBleCharacteristic(options) {
|
|
126
85
|
const { deviceUuid, characteristicUuid, value } = options;
|
|
@@ -159,11 +118,5 @@ export default class LibndxAdapter {
|
|
|
159
118
|
const { serialNumber } = options;
|
|
160
119
|
return this.bindings.destroy_ftdi_backend([serialNumber]);
|
|
161
120
|
}
|
|
162
|
-
get ffiRsOpen() {
|
|
163
|
-
return LibndxAdapter.ffiRsOpen;
|
|
164
|
-
}
|
|
165
|
-
get ffiRsDefine() {
|
|
166
|
-
return LibndxAdapter.ffiRsDefine;
|
|
167
|
-
}
|
|
168
121
|
}
|
|
169
122
|
//# sourceMappingURL=LibndxAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibndxAdapter.js","sourceRoot":"","sources":["../../src/impl/LibndxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LibndxAdapter.js","sourceRoot":"","sources":["../../src/impl/LibndxAdapter.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": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Native Node.js adapters for LSL, XDF, and LabRecorder",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"main": "build/index.js",
|
|
22
22
|
"scripts": {
|
|
23
23
|
"build.ci": "yarn run build.tsc && yarn run lint",
|
|
24
|
-
"build.dev": "yarn run build.tsc --sourceMap ; yarn run fix.lint ; prettier --write .",
|
|
24
|
+
"build.dev": "yarn run build.tsc --sourceMap ; yarn run fix.lint ; prettier --write . --log-level warn",
|
|
25
25
|
"build.copy-files": "mkdir -p build && rsync -avzq --exclude='*.ts' ./src/ ./build/",
|
|
26
26
|
"build.tsc": "yarn run build.copy-files && tsc",
|
|
27
27
|
"clean": "yarn run clean.build",
|
|
@@ -37,32 +37,23 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@neurodevs/node-mangled-names": "^1.0.1",
|
|
40
|
-
"ffi-rs": "^1.3.
|
|
40
|
+
"ffi-rs": "^1.3.2",
|
|
41
|
+
"koffi": "^3.0.1"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"@neurodevs/eslint-config-ndx": "^1.0.1",
|
|
44
45
|
"@neurodevs/generate-id": "^1.1.2",
|
|
45
|
-
"@neurodevs/node-tdd": "^
|
|
46
|
+
"@neurodevs/node-tdd": "^1.1.2",
|
|
46
47
|
"@neurodevs/prettier-config-ndx": "^1.0.2",
|
|
47
|
-
"@regressionproof/cli": "^0.9.4",
|
|
48
|
-
"@regressionproof/jest-reporter": "^0.9.4",
|
|
49
|
-
"jest": "^30.2.0",
|
|
50
|
-
"jest-circus": "^30.2.0",
|
|
51
|
-
"prettier": "^3.8.1",
|
|
52
|
-
"tsc-watch": "^7.2.0",
|
|
53
48
|
"typescript": "^5.9.3"
|
|
54
49
|
},
|
|
55
50
|
"jest": {
|
|
56
|
-
"testRunner": "jest-circus/runner",
|
|
57
|
-
"maxWorkers": 4,
|
|
58
|
-
"testTimeout": 5000,
|
|
59
51
|
"testEnvironment": "node",
|
|
52
|
+
"testRunner": "jest-circus/runner",
|
|
60
53
|
"testMatch": [
|
|
61
54
|
"<rootDir>/build/__tests__/**/*.test.js?(x)"
|
|
62
55
|
],
|
|
63
|
-
"
|
|
64
|
-
|
|
65
|
-
"@regressionproof/jest-reporter"
|
|
66
|
-
]
|
|
56
|
+
"testTimeout": 5000,
|
|
57
|
+
"maxWorkers": 4
|
|
67
58
|
}
|
|
68
59
|
}
|
|
@@ -5,20 +5,16 @@ import LibndxAdapter, {
|
|
|
5
5
|
LibndxBindings,
|
|
6
6
|
} from '../../impl/LibndxAdapter.js'
|
|
7
7
|
import AbstractPackageTest from '../AbstractPackageTest.js'
|
|
8
|
-
import { DataType, define, OpenParams } from 'ffi-rs'
|
|
9
|
-
import { FfiRsDefineOptions } from '../../types.js'
|
|
10
8
|
import FakeLibndx from '../../testDoubles/Libndx/FakeLibndx.js'
|
|
11
9
|
|
|
12
10
|
export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
13
|
-
public static ffiRsDefine = define
|
|
14
|
-
|
|
15
11
|
private static instance: Libndx
|
|
16
12
|
private static libndxPath = '/opt/local/lib/libndx.dylib'
|
|
17
13
|
private static shouldThrowWhenLoadingBindings: boolean
|
|
18
14
|
private static fakeBindings: LibndxBindings
|
|
19
15
|
|
|
20
|
-
private static
|
|
21
|
-
private static
|
|
16
|
+
private static koffiLoadPath?: string
|
|
17
|
+
private static koffiFuncSignatures?: string[]
|
|
22
18
|
|
|
23
19
|
private static readonly bleDeviceUuid = this.generateId()
|
|
24
20
|
private static readonly bleCharacteristicUuid = this.generateId()
|
|
@@ -27,7 +23,14 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
27
23
|
private static readonly ftdiSerialNumber = this.generateId()
|
|
28
24
|
|
|
29
25
|
private static readonly callsToCreateBle: string[][] = []
|
|
30
|
-
private static readonly
|
|
26
|
+
private static readonly onDataCallback = (
|
|
27
|
+
_data: Buffer,
|
|
28
|
+
_timestamp: number
|
|
29
|
+
) => {}
|
|
30
|
+
private static readonly callsToStartBle: {
|
|
31
|
+
uuid: string
|
|
32
|
+
onData: (data: Buffer, timestamp: number) => void
|
|
33
|
+
}[] = []
|
|
31
34
|
private static readonly callsToWriteBle: string[][] = []
|
|
32
35
|
private static readonly callsToReadRssi: string[][] = []
|
|
33
36
|
private static readonly callsToStopBle: string[][] = []
|
|
@@ -70,74 +73,31 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
70
73
|
}
|
|
71
74
|
|
|
72
75
|
@test()
|
|
73
|
-
protected static async
|
|
74
|
-
assert.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
protected static async callsKoffiLoadWithLibndxPath() {
|
|
77
|
+
assert.isEqual(
|
|
78
|
+
this.koffiLoadPath,
|
|
79
|
+
this.libndxPath,
|
|
80
|
+
'Did not call koffiLoad with the expected library path!'
|
|
81
|
+
)
|
|
78
82
|
}
|
|
79
83
|
|
|
80
84
|
@test()
|
|
81
|
-
protected static async
|
|
85
|
+
protected static async registersExpectedKoffiFuncSignatures() {
|
|
82
86
|
assert.isEqualDeep(
|
|
83
|
-
this.
|
|
84
|
-
|
|
85
|
-
create_ble_backend
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
retType: DataType.String,
|
|
98
|
-
paramsType: [
|
|
99
|
-
DataType.String,
|
|
100
|
-
DataType.String,
|
|
101
|
-
DataType.String,
|
|
102
|
-
],
|
|
103
|
-
},
|
|
104
|
-
read_ble_rssi: {
|
|
105
|
-
library: 'ndx',
|
|
106
|
-
retType: DataType.String,
|
|
107
|
-
paramsType: [DataType.String],
|
|
108
|
-
},
|
|
109
|
-
stop_ble_backend: {
|
|
110
|
-
library: 'ndx',
|
|
111
|
-
retType: DataType.String,
|
|
112
|
-
paramsType: [DataType.String],
|
|
113
|
-
},
|
|
114
|
-
destroy_ble_backend: {
|
|
115
|
-
library: 'ndx',
|
|
116
|
-
retType: DataType.String,
|
|
117
|
-
paramsType: [DataType.String],
|
|
118
|
-
},
|
|
119
|
-
create_ftdi_backend: {
|
|
120
|
-
library: 'ndx',
|
|
121
|
-
retType: DataType.String,
|
|
122
|
-
paramsType: [DataType.String],
|
|
123
|
-
},
|
|
124
|
-
start_ftdi_backend: {
|
|
125
|
-
library: 'ndx',
|
|
126
|
-
retType: DataType.String,
|
|
127
|
-
paramsType: [DataType.String],
|
|
128
|
-
},
|
|
129
|
-
stop_ftdi_backend: {
|
|
130
|
-
library: 'ndx',
|
|
131
|
-
retType: DataType.String,
|
|
132
|
-
paramsType: [DataType.String],
|
|
133
|
-
},
|
|
134
|
-
destroy_ftdi_backend: {
|
|
135
|
-
library: 'ndx',
|
|
136
|
-
retType: DataType.String,
|
|
137
|
-
paramsType: [DataType.String],
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
'Did not pass valid options to ffiRsDefine!'
|
|
87
|
+
this.koffiFuncSignatures,
|
|
88
|
+
[
|
|
89
|
+
'str create_ble_backend(str config)',
|
|
90
|
+
'str start_ble_backend(str uuid, DataCallback *cb)',
|
|
91
|
+
'str write_ble_characteristic(str uuid, str charUuid, str value)',
|
|
92
|
+
'str read_ble_rssi(str uuid)',
|
|
93
|
+
'str stop_ble_backend(str uuid)',
|
|
94
|
+
'str destroy_ble_backend(str uuid)',
|
|
95
|
+
'str create_ftdi_backend(str config)',
|
|
96
|
+
'str start_ftdi_backend(str serial)',
|
|
97
|
+
'str stop_ftdi_backend(str serial)',
|
|
98
|
+
'str destroy_ftdi_backend(str serial)',
|
|
99
|
+
],
|
|
100
|
+
'Did not register expected koffi func signatures!'
|
|
141
101
|
)
|
|
142
102
|
}
|
|
143
103
|
|
|
@@ -177,9 +137,15 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
177
137
|
this.startBleBackend()
|
|
178
138
|
|
|
179
139
|
assert.isEqual(
|
|
180
|
-
this.callsToStartBle[0]
|
|
140
|
+
this.callsToStartBle[0].uuid,
|
|
181
141
|
this.bleDeviceUuid,
|
|
182
|
-
'startBleBackend did not
|
|
142
|
+
'startBleBackend did not pass expected uuid to binding!'
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
assert.isEqual(
|
|
146
|
+
this.callsToStartBle[0].onData,
|
|
147
|
+
this.onDataCallback,
|
|
148
|
+
'startBleBackend did not pass expected callback to binding!'
|
|
183
149
|
)
|
|
184
150
|
}
|
|
185
151
|
|
|
@@ -362,6 +328,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
362
328
|
private static startBleBackend() {
|
|
363
329
|
return this.instance.startBleBackend({
|
|
364
330
|
deviceUuid: this.bleDeviceUuid,
|
|
331
|
+
onData: this.onDataCallback,
|
|
365
332
|
})
|
|
366
333
|
}
|
|
367
334
|
|
|
@@ -421,8 +388,8 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
421
388
|
this.callsToCreateBle.push(args)
|
|
422
389
|
return JSON.stringify({})
|
|
423
390
|
},
|
|
424
|
-
start_ble_backend: (args) => {
|
|
425
|
-
this.callsToStartBle.push(args)
|
|
391
|
+
start_ble_backend: (args: any) => {
|
|
392
|
+
this.callsToStartBle.push({ uuid: args[0], onData: args[1] })
|
|
426
393
|
return JSON.stringify({})
|
|
427
394
|
},
|
|
428
395
|
write_ble_characteristic: (args) => {
|
|
@@ -473,30 +440,39 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
473
440
|
}
|
|
474
441
|
|
|
475
442
|
private static clearAndFakeFfi() {
|
|
476
|
-
delete this.
|
|
477
|
-
|
|
478
|
-
this.
|
|
479
|
-
this.
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
private static
|
|
483
|
-
LibndxAdapter.
|
|
484
|
-
|
|
443
|
+
delete this.koffiLoadPath
|
|
444
|
+
this.koffiFuncSignatures = []
|
|
445
|
+
this.fakeKoffiLoad()
|
|
446
|
+
this.fakeKoffiRegister()
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
private static fakeKoffiRegister() {
|
|
450
|
+
LibndxAdapter.koffiRegister = (fn) => fn as any
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
private static fakeKoffiLoad() {
|
|
454
|
+
LibndxAdapter.koffiLoad = (path) => {
|
|
455
|
+
this.koffiLoadPath = path as string
|
|
456
|
+
return {
|
|
457
|
+
func: (sig: string) => {
|
|
458
|
+
this.koffiFuncSignatures!.push(sig)
|
|
459
|
+
|
|
460
|
+
if (this.shouldThrowWhenLoadingBindings) {
|
|
461
|
+
throw new Error(this.fakeErrorMessage)
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
const name = sig.match(
|
|
465
|
+
/\w+\s+(\w+)\s*\(/
|
|
466
|
+
)![1] as keyof LibndxBindings
|
|
467
|
+
return (...args: unknown[]) =>
|
|
468
|
+
(this.fakeBindings[name] as (a: unknown) => string)(
|
|
469
|
+
args
|
|
470
|
+
)
|
|
471
|
+
},
|
|
472
|
+
} as any
|
|
485
473
|
}
|
|
486
474
|
}
|
|
487
475
|
|
|
488
|
-
private static fakeFfiRsDefine() {
|
|
489
|
-
LibndxAdapter.ffiRsDefine = ((options) => {
|
|
490
|
-
this.ffiRsDefineOptions = options
|
|
491
|
-
|
|
492
|
-
if (this.shouldThrowWhenLoadingBindings) {
|
|
493
|
-
throw new Error(this.fakeErrorMessage)
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
return this.fakeBindings as any
|
|
497
|
-
}) as typeof define
|
|
498
|
-
}
|
|
499
|
-
|
|
500
476
|
private static get failedToLoadError() {
|
|
501
477
|
return `
|
|
502
478
|
\n -----------------------------------
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import koffi from 'koffi'
|
|
2
2
|
|
|
3
3
|
export default class LibndxAdapter implements Libndx {
|
|
4
4
|
public static Class?: LibndxConstructor
|
|
5
|
-
public static
|
|
6
|
-
public static
|
|
5
|
+
public static koffiLoad: typeof koffi.load = koffi.load.bind(koffi)
|
|
6
|
+
public static koffiRegister = koffi.register.bind(koffi)
|
|
7
|
+
|
|
8
|
+
private static readonly dataCallbackProto = koffi.proto(
|
|
9
|
+
'void DataCallback(uint8 *data, int length, double timestamp)'
|
|
10
|
+
)
|
|
7
11
|
|
|
8
12
|
private static instance?: Libndx
|
|
9
13
|
|
|
@@ -35,80 +39,65 @@ export default class LibndxAdapter implements Libndx {
|
|
|
35
39
|
|
|
36
40
|
private tryToLoadBindings() {
|
|
37
41
|
try {
|
|
38
|
-
this.openLibndx()
|
|
39
42
|
this.defineBindings()
|
|
40
43
|
} catch (err: unknown) {
|
|
41
44
|
this.throwFailedToLoadLibndx(err as Error)
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
|
|
45
|
-
private openLibndx() {
|
|
46
|
-
this.ffiRsOpen({
|
|
47
|
-
library: 'ndx',
|
|
48
|
-
path: this.libndxPath,
|
|
49
|
-
})
|
|
50
|
-
}
|
|
51
|
-
|
|
52
48
|
private defineBindings() {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
},
|
|
99
|
-
destroy_ftdi_backend: {
|
|
100
|
-
library: 'ndx',
|
|
101
|
-
retType: DataType.String,
|
|
102
|
-
paramsType: [DataType.String],
|
|
103
|
-
},
|
|
104
|
-
}) as LibndxBindings
|
|
49
|
+
const lib = LibndxAdapter.koffiLoad(this.libndxPath)
|
|
50
|
+
|
|
51
|
+
const wrap1 = (f: (a: string) => string) => (args: [string]) =>
|
|
52
|
+
f(args[0])
|
|
53
|
+
|
|
54
|
+
const wrap2 =
|
|
55
|
+
(f: (a: string, b: unknown) => string) =>
|
|
56
|
+
(args: [string, unknown]) =>
|
|
57
|
+
f(args[0], args[1])
|
|
58
|
+
|
|
59
|
+
const wrap3 =
|
|
60
|
+
(f: (a: string, b: string, c: string) => string) =>
|
|
61
|
+
(args: [string, string, string]) =>
|
|
62
|
+
f(args[0], args[1], args[2])
|
|
63
|
+
|
|
64
|
+
this.bindings = {
|
|
65
|
+
create_ble_backend: wrap1(
|
|
66
|
+
lib.func('str create_ble_backend(str config)')
|
|
67
|
+
),
|
|
68
|
+
start_ble_backend: wrap2(
|
|
69
|
+
lib.func('str start_ble_backend(str uuid, DataCallback *cb)')
|
|
70
|
+
),
|
|
71
|
+
write_ble_characteristic: wrap3(
|
|
72
|
+
lib.func(
|
|
73
|
+
'str write_ble_characteristic(str uuid, str charUuid, str value)'
|
|
74
|
+
)
|
|
75
|
+
),
|
|
76
|
+
read_ble_rssi: wrap1(lib.func('str read_ble_rssi(str uuid)')),
|
|
77
|
+
stop_ble_backend: wrap1(lib.func('str stop_ble_backend(str uuid)')),
|
|
78
|
+
destroy_ble_backend: wrap1(
|
|
79
|
+
lib.func('str destroy_ble_backend(str uuid)')
|
|
80
|
+
),
|
|
81
|
+
create_ftdi_backend: wrap1(
|
|
82
|
+
lib.func('str create_ftdi_backend(str config)')
|
|
83
|
+
),
|
|
84
|
+
start_ftdi_backend: wrap1(
|
|
85
|
+
lib.func('str start_ftdi_backend(str serial)')
|
|
86
|
+
),
|
|
87
|
+
stop_ftdi_backend: wrap1(
|
|
88
|
+
lib.func('str stop_ftdi_backend(str serial)')
|
|
89
|
+
),
|
|
90
|
+
destroy_ftdi_backend: wrap1(
|
|
91
|
+
lib.func('str destroy_ftdi_backend(str serial)')
|
|
92
|
+
),
|
|
93
|
+
}
|
|
105
94
|
}
|
|
106
95
|
|
|
107
96
|
private throwFailedToLoadLibndx(err: Error) {
|
|
108
97
|
throw new Error(
|
|
109
98
|
`
|
|
110
99
|
\n -----------------------------------
|
|
111
|
-
\n Failed to load libndx! Tried to load from:
|
|
100
|
+
\n Failed to load libndx! Tried to load from:
|
|
112
101
|
\n ${this.libndxPath}
|
|
113
102
|
\n Instructions to save your day (on MacOS):
|
|
114
103
|
\n 1. git clone https://github.com/neurodevs/libndx.git
|
|
@@ -116,7 +105,7 @@ export default class LibndxAdapter implements Libndx {
|
|
|
116
105
|
\n 3. sudo cp build/libndx.dylib /opt/local/lib/
|
|
117
106
|
\n 4. Try whatever you were doing again!
|
|
118
107
|
\n Modify step 3 for your OS if you are not on MacOS.
|
|
119
|
-
\n If you're still unsure, ask an LLM with this error and your OS.
|
|
108
|
+
\n If you're still unsure, ask an LLM with this error and your OS.
|
|
120
109
|
\n You could also post an issue on the repo:
|
|
121
110
|
\n https://github.com/neurodevs/ndx-native/issues
|
|
122
111
|
\n Good luck!
|
|
@@ -134,14 +123,17 @@ export default class LibndxAdapter implements Libndx {
|
|
|
134
123
|
return this.bindings.create_ble_backend([configJson])
|
|
135
124
|
}
|
|
136
125
|
|
|
137
|
-
public startBleBackend(options:
|
|
138
|
-
const { deviceUuid } = options
|
|
139
|
-
|
|
126
|
+
public startBleBackend(options: StartBleBackendOptions) {
|
|
127
|
+
const { deviceUuid, onData } = options
|
|
128
|
+
const cb = LibndxAdapter.koffiRegister(
|
|
129
|
+
onData,
|
|
130
|
+
koffi.pointer(LibndxAdapter.dataCallbackProto)
|
|
131
|
+
)
|
|
132
|
+
return this.bindings.start_ble_backend([deviceUuid, cb])
|
|
140
133
|
}
|
|
141
134
|
|
|
142
135
|
public writeBleCharacteristic(options: BleWriteOptions) {
|
|
143
136
|
const { deviceUuid, characteristicUuid, value } = options
|
|
144
|
-
|
|
145
137
|
return this.bindings.write_ble_characteristic([
|
|
146
138
|
deviceUuid,
|
|
147
139
|
characteristicUuid,
|
|
@@ -184,19 +176,11 @@ export default class LibndxAdapter implements Libndx {
|
|
|
184
176
|
const { serialNumber } = options
|
|
185
177
|
return this.bindings.destroy_ftdi_backend([serialNumber])
|
|
186
178
|
}
|
|
187
|
-
|
|
188
|
-
private get ffiRsOpen() {
|
|
189
|
-
return LibndxAdapter.ffiRsOpen
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
private get ffiRsDefine() {
|
|
193
|
-
return LibndxAdapter.ffiRsDefine
|
|
194
|
-
}
|
|
195
179
|
}
|
|
196
180
|
|
|
197
181
|
export interface Libndx {
|
|
198
182
|
createBleBackend(options: BleBackendOptions): string
|
|
199
|
-
startBleBackend(options:
|
|
183
|
+
startBleBackend(options: StartBleBackendOptions): string
|
|
200
184
|
writeBleCharacteristic(options: BleWriteOptions): string
|
|
201
185
|
readBleRssi(options: BleBackendOptions): string
|
|
202
186
|
stopBleBackend(options: BleBackendOptions): string
|
|
@@ -217,6 +201,10 @@ export interface BleBackendOptions {
|
|
|
217
201
|
deviceUuid: string
|
|
218
202
|
}
|
|
219
203
|
|
|
204
|
+
export interface StartBleBackendOptions extends BleBackendOptions {
|
|
205
|
+
onData: (data: Buffer, timestamp: number) => void
|
|
206
|
+
}
|
|
207
|
+
|
|
220
208
|
export interface BleWriteOptions {
|
|
221
209
|
deviceUuid: string
|
|
222
210
|
characteristicUuid: string
|
|
@@ -229,7 +217,7 @@ export interface FtdiBackendOptions {
|
|
|
229
217
|
|
|
230
218
|
export interface LibndxBindings {
|
|
231
219
|
create_ble_backend(args: [string]): string
|
|
232
|
-
start_ble_backend(args: [string]): string
|
|
220
|
+
start_ble_backend(args: [string, unknown]): string
|
|
233
221
|
write_ble_characteristic(args: [string, string, string]): string
|
|
234
222
|
read_ble_rssi(args: [string]): string
|
|
235
223
|
stop_ble_backend(args: [string]): string
|
package/tsconfig.json
CHANGED
package/.regressionproof.json
DELETED