@neurodevs/node-lsl 20.0.0 → 22.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/README.md +6 -6
- package/build/__tests__/AbstractPackageTest.d.ts +2 -1
- package/build/__tests__/AbstractPackageTest.js +9 -7
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/{BleDeviceController.test.d.ts → BleGattController.test.d.ts} +3 -3
- package/build/__tests__/impl/{BleDeviceController.test.js → BleGattController.test.js} +65 -65
- package/build/__tests__/impl/BleGattController.test.js.map +1 -0
- package/build/__tests__/impl/BleObserverController.test.d.ts +22 -0
- package/build/__tests__/impl/BleObserverController.test.js +112 -0
- package/build/__tests__/impl/BleObserverController.test.js.map +1 -0
- package/build/__tests__/impl/{LslEventMarkerEmitter.test.d.ts → LslEventMarkerOutlet.test.d.ts} +3 -3
- package/build/__tests__/impl/{LslEventMarkerEmitter.test.js → LslEventMarkerOutlet.test.js} +35 -36
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +1 -0
- package/build/__tests__/impl/LslJsonOutlet.test.d.ts +14 -0
- package/build/__tests__/impl/LslJsonOutlet.test.js +118 -0
- package/build/__tests__/impl/LslJsonOutlet.test.js.map +1 -0
- package/build/__tests__/impl/LslStreamInfo.test.js +0 -1
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInlet.test.js +0 -1
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamOutlet.test.js +0 -1
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js +0 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
- package/build/__tests__/impl/UsbDeviceController.test.js.map +1 -1
- package/build/impl/{LslEventMarkerEmitter.d.ts → LslEventMarkerOutlet.d.ts} +6 -6
- package/build/impl/{LslEventMarkerEmitter.js → LslEventMarkerOutlet.js} +2 -2
- package/build/impl/LslEventMarkerOutlet.js.map +1 -0
- package/build/impl/LslJsonOutlet.d.ts +33 -0
- package/build/impl/LslJsonOutlet.js +44 -0
- package/build/impl/LslJsonOutlet.js.map +1 -0
- package/build/impl/LslStreamOutlet.d.ts +3 -4
- package/build/impl/controllers/{BleDeviceController.d.ts → BleGattController.d.ts} +10 -10
- package/build/impl/controllers/{BleDeviceController.js → BleGattController.js} +18 -18
- package/build/impl/controllers/BleGattController.js.map +1 -0
- package/build/impl/controllers/BleObserverController.d.ts +24 -0
- package/build/impl/controllers/BleObserverController.js +49 -0
- package/build/impl/controllers/BleObserverController.js.map +1 -0
- package/build/impl/controllers/UsbDeviceController.d.ts +9 -9
- package/build/impl/controllers/UsbDeviceController.js +7 -7
- package/build/impl/controllers/UsbDeviceController.js.map +1 -1
- package/build/index.d.ts +24 -16
- package/build/index.js +29 -19
- package/build/index.js.map +1 -1
- package/build/scripts/runEventMarkerOutlet.js +12 -0
- package/build/scripts/runEventMarkerOutlet.js.map +1 -0
- package/build/scripts/runMuse.js +2 -2
- package/build/scripts/runMuse.js.map +1 -1
- package/build/testDoubles/{BleController/FakeBleController.d.ts → BleGatt/FakeBleGatt.d.ts} +6 -6
- package/build/testDoubles/{BleController/FakeBleController.js → BleGatt/FakeBleGatt.js} +8 -8
- package/build/testDoubles/BleGatt/FakeBleGatt.js.map +1 -0
- package/build/testDoubles/{BleController/SpyBleController.d.ts → BleGatt/SpyBleGatt.d.ts} +4 -4
- package/build/testDoubles/{BleController/SpyBleController.js → BleGatt/SpyBleGatt.js} +3 -3
- package/build/testDoubles/BleGatt/SpyBleGatt.js.map +1 -0
- package/build/testDoubles/BleObserver/FakeBleObserver.d.ts +10 -0
- package/build/testDoubles/BleObserver/FakeBleObserver.js +20 -0
- package/build/testDoubles/BleObserver/FakeBleObserver.js.map +1 -0
- package/build/testDoubles/{LslEmitter/FakeLslEmitter.d.ts → EventMarkerOutlet/FakeEventMarkerOutlet.d.ts} +2 -2
- package/build/testDoubles/{LslEmitter/FakeLslEmitter.js → EventMarkerOutlet/FakeEventMarkerOutlet.js} +7 -7
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/{LslEmitter/SpyLslEmitter.d.ts → EventMarkerOutlet/SpyEventMarkerOutlet.d.ts} +3 -3
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js +23 -0
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/{LslEmitter/ThrowingLslEmitter.d.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts} +2 -2
- package/build/testDoubles/{LslEmitter/ThrowingLslEmitter.js → EventMarkerOutlet/ThrowingEventMarkerOutlet.js} +2 -2
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/JsonOutlet/FakeJsonOutlet.d.ts +10 -0
- package/build/testDoubles/JsonOutlet/FakeJsonOutlet.js +20 -0
- package/build/testDoubles/JsonOutlet/FakeJsonOutlet.js.map +1 -0
- package/build/testDoubles/UsbDevice/FakeUsbDevice.d.ts +12 -0
- package/build/testDoubles/UsbDevice/FakeUsbDevice.js +25 -0
- package/build/testDoubles/UsbDevice/FakeUsbDevice.js.map +1 -0
- package/package.json +3 -3
- package/src/__tests__/AbstractPackageTest.ts +9 -7
- package/src/__tests__/impl/{BleDeviceController.test.ts → BleGattController.test.ts} +43 -43
- package/src/__tests__/impl/BleObserverController.test.ts +158 -0
- package/src/__tests__/impl/{LslEventMarkerEmitter.test.ts → LslEventMarkerOutlet.test.ts} +20 -19
- package/src/__tests__/impl/LslJsonOutlet.test.ts +135 -0
- package/src/__tests__/impl/LslStreamInfo.test.ts +0 -1
- package/src/__tests__/impl/LslStreamInlet.test.ts +0 -1
- package/src/__tests__/impl/LslStreamOutlet.test.ts +0 -1
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +0 -1
- package/src/__tests__/impl/UsbDeviceController.test.ts +2 -2
- package/src/impl/{LslEventMarkerEmitter.ts → LslEventMarkerOutlet.ts} +8 -6
- package/src/impl/LslJsonOutlet.ts +87 -0
- package/src/impl/LslStreamOutlet.ts +7 -5
- package/src/impl/controllers/{BleDeviceController.ts → BleGattController.ts} +23 -28
- package/src/impl/controllers/BleObserverController.ts +85 -0
- package/src/impl/controllers/UsbDeviceController.ts +14 -16
- package/src/index.ts +40 -24
- package/src/scripts/{runLslEmitter.ts → runEventMarkerOutlet.ts} +5 -5
- package/src/scripts/runMuse.ts +2 -2
- package/src/testDoubles/{BleController/FakeBleController.ts → BleGatt/FakeBleGatt.ts} +14 -14
- package/src/testDoubles/{BleController/SpyBleController.ts → BleGatt/SpyBleGatt.ts} +5 -5
- package/src/testDoubles/BleObserver/FakeBleObserver.ts +28 -0
- package/src/testDoubles/{LslEmitter/FakeLslEmitter.ts → EventMarkerOutlet/FakeEventMarkerOutlet.ts} +8 -8
- package/src/testDoubles/{LslEmitter/SpyLslEmitter.ts → EventMarkerOutlet/SpyEventMarkerOutlet.ts} +7 -7
- package/src/testDoubles/{LslEmitter/ThrowingLslEmitter.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.ts} +3 -3
- package/src/testDoubles/JsonOutlet/FakeJsonOutlet.ts +25 -0
- package/src/testDoubles/UsbDevice/FakeUsbDevice.ts +34 -0
- package/build/__tests__/impl/BleDeviceController.test.js.map +0 -1
- package/build/__tests__/impl/LslEventMarkerEmitter.test.js.map +0 -1
- package/build/impl/LslEventMarkerEmitter.js.map +0 -1
- package/build/impl/controllers/BleDeviceController.js.map +0 -1
- package/build/scripts/runLslEmitter.js +0 -12
- package/build/scripts/runLslEmitter.js.map +0 -1
- package/build/testDoubles/BleController/FakeBleController.js.map +0 -1
- package/build/testDoubles/BleController/SpyBleController.js.map +0 -1
- package/build/testDoubles/LslEmitter/FakeLslEmitter.js.map +0 -1
- package/build/testDoubles/LslEmitter/SpyLslEmitter.js +0 -23
- package/build/testDoubles/LslEmitter/SpyLslEmitter.js.map +0 -1
- package/build/testDoubles/LslEmitter/ThrowingLslEmitter.js.map +0 -1
- package/build/testDoubles/UsbController/FakeUsbController.d.ts +0 -12
- package/build/testDoubles/UsbController/FakeUsbController.js +0 -25
- package/build/testDoubles/UsbController/FakeUsbController.js.map +0 -1
- package/src/testDoubles/UsbController/FakeUsbController.ts +0 -34
- /package/build/scripts/{runLslEmitter.d.ts → runEventMarkerOutlet.d.ts} +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LslOutlet } from './LslStreamOutlet.js';
|
|
2
|
+
export default class LslJsonOutlet implements JsonOutlet {
|
|
3
|
+
static Class?: JsonOutletConstructor;
|
|
4
|
+
static backupIdCounter: number;
|
|
5
|
+
private outlet;
|
|
6
|
+
private maxBytesPerSample?;
|
|
7
|
+
protected constructor(outlet: LslOutlet, maxBytesPerSample?: number);
|
|
8
|
+
static Create(options?: JsonOutletOptions): Promise<JsonOutlet>;
|
|
9
|
+
pushJson(data: Json): void;
|
|
10
|
+
private throwIfPayloadTooLarge;
|
|
11
|
+
destroy(): void;
|
|
12
|
+
private static LslStreamOutlet;
|
|
13
|
+
}
|
|
14
|
+
export interface JsonOutlet {
|
|
15
|
+
pushJson(data: Json): void;
|
|
16
|
+
destroy(): void;
|
|
17
|
+
}
|
|
18
|
+
export type Json = Record<string, unknown>;
|
|
19
|
+
export type JsonOutletConstructor = new (outlet: LslOutlet, maxBytesPerSample?: number) => JsonOutlet;
|
|
20
|
+
export interface JsonOutletOptions {
|
|
21
|
+
name?: string;
|
|
22
|
+
type?: string;
|
|
23
|
+
sourceId?: string;
|
|
24
|
+
channelName?: string;
|
|
25
|
+
sampleRateHz?: number;
|
|
26
|
+
chunkSize?: number;
|
|
27
|
+
maxBufferedMs?: number;
|
|
28
|
+
maxBytesPerSample?: number;
|
|
29
|
+
manufacturer?: string;
|
|
30
|
+
units?: string;
|
|
31
|
+
waitAfterConstructionMs?: number;
|
|
32
|
+
}
|
|
33
|
+
export type JsonOutletConstructorOptions = Omit<JsonOutletOptions, 'waitAfterConstructionMs'>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import LslStreamOutlet from './LslStreamOutlet.js';
|
|
2
|
+
export default class LslJsonOutlet {
|
|
3
|
+
static Class;
|
|
4
|
+
static backupIdCounter = 0;
|
|
5
|
+
outlet;
|
|
6
|
+
maxBytesPerSample;
|
|
7
|
+
constructor(outlet, maxBytesPerSample) {
|
|
8
|
+
this.outlet = outlet;
|
|
9
|
+
this.maxBytesPerSample = maxBytesPerSample;
|
|
10
|
+
}
|
|
11
|
+
static async Create(options) {
|
|
12
|
+
const outlet = await this.LslStreamOutlet(options);
|
|
13
|
+
return new (this.Class ?? this)(outlet, options?.maxBytesPerSample);
|
|
14
|
+
}
|
|
15
|
+
pushJson(data) {
|
|
16
|
+
const json = JSON.stringify(data);
|
|
17
|
+
this.throwIfPayloadTooLarge(json);
|
|
18
|
+
this.outlet.pushSample([json]);
|
|
19
|
+
}
|
|
20
|
+
throwIfPayloadTooLarge(json) {
|
|
21
|
+
const totalBytes = Buffer.byteLength(json);
|
|
22
|
+
if (this.maxBytesPerSample && totalBytes > this.maxBytesPerSample) {
|
|
23
|
+
throw new Error(`Payload of ${totalBytes} bytes exceeds maxBytesPerSample of ${this.maxBytesPerSample}!`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
destroy() {
|
|
27
|
+
this.outlet.destroy();
|
|
28
|
+
}
|
|
29
|
+
static LslStreamOutlet(options) {
|
|
30
|
+
this.backupIdCounter++;
|
|
31
|
+
const { channelName, maxBytesPerSample: _, ...rest } = options ?? {};
|
|
32
|
+
return LslStreamOutlet.Create({
|
|
33
|
+
name: `JSON (json-${this.backupIdCounter})`,
|
|
34
|
+
type: 'JSON',
|
|
35
|
+
sourceId: `json-${this.backupIdCounter}`,
|
|
36
|
+
channelNames: [channelName ?? 'JSON'],
|
|
37
|
+
channelFormat: 'string',
|
|
38
|
+
sampleRateHz: 0,
|
|
39
|
+
chunkSize: 1,
|
|
40
|
+
...rest,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=LslJsonOutlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LslJsonOutlet.js","sourceRoot":"","sources":["../../src/impl/LslJsonOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,eAA8B,MAAM,sBAAsB,CAAA;AAEjE,MAAM,CAAC,OAAO,OAAO,aAAa;IACvB,MAAM,CAAC,KAAK,CAAwB;IACpC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAA;IAEzB,MAAM,CAAW;IACjB,iBAAiB,CAAS;IAElC,YAAsB,MAAiB,EAAE,iBAA0B;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IAC9C,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAA2B;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IACvE,CAAC;IAEM,QAAQ,CAAC,IAAU;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAClC,CAAC;IAEO,sBAAsB,CAAC,IAAY;QACvC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAE1C,IAAI,IAAI,CAAC,iBAAiB,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CACX,cAAc,UAAU,uCAAuC,IAAI,CAAC,iBAAiB,GAAG,CAC3F,CAAA;QACL,CAAC;IACL,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,OAA2B;QACtD,IAAI,CAAC,eAAe,EAAE,CAAA;QAEtB,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QAEpE,OAAO,eAAe,CAAC,MAAM,CAAC;YAC1B,IAAI,EAAE,cAAc,IAAI,CAAC,eAAe,GAAG;YAC3C,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,QAAQ,IAAI,CAAC,eAAe,EAAE;YACxC,YAAY,EAAE,CAAC,WAAW,IAAI,MAAM,CAAC;YACrC,aAAa,EAAE,QAAQ;YACvB,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,CAAC;YACZ,GAAG,IAAI;SACV,CAAC,CAAA;IACN,CAAC"}
|
|
@@ -48,10 +48,7 @@ export interface LslOutlet {
|
|
|
48
48
|
readonly manufacturer: string;
|
|
49
49
|
}
|
|
50
50
|
export type LslOutletConstructor = new (options: LslOutletOptions) => LslOutlet;
|
|
51
|
-
export interface LslOutletOptions
|
|
52
|
-
waitAfterConstructionMs?: number;
|
|
53
|
-
}
|
|
54
|
-
export interface LslOutletConstructorOptions {
|
|
51
|
+
export interface LslOutletOptions {
|
|
55
52
|
name: string;
|
|
56
53
|
type: string;
|
|
57
54
|
sourceId: string;
|
|
@@ -62,4 +59,6 @@ export interface LslOutletConstructorOptions {
|
|
|
62
59
|
maxBufferedMs?: number;
|
|
63
60
|
manufacturer?: string;
|
|
64
61
|
units?: string;
|
|
62
|
+
waitAfterConstructionMs?: number;
|
|
65
63
|
}
|
|
64
|
+
export type LslOutletConstructorOptions = Omit<LslOutletOptions, 'waitAfterConstructionMs'>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Libndx, NativePeripheral } from '@neurodevs/ndx-native';
|
|
2
|
-
export default class
|
|
3
|
-
static Class?:
|
|
2
|
+
export default class BleGattController implements BleGatt {
|
|
3
|
+
static Class?: BleGattConstructor;
|
|
4
4
|
static setTimeout: typeof setTimeout;
|
|
5
5
|
static waitAfterMs: number;
|
|
6
6
|
private static _ndx?;
|
|
@@ -14,15 +14,15 @@ export default class BleDeviceController implements BleController {
|
|
|
14
14
|
private deviceNamePrefix?;
|
|
15
15
|
private deviceName?;
|
|
16
16
|
private onConnected?;
|
|
17
|
-
protected constructor(options:
|
|
18
|
-
static Create(options:
|
|
17
|
+
protected constructor(options: BleGattOptions);
|
|
18
|
+
static Create(options: BleGattOptions): BleGattController | BleGatt;
|
|
19
19
|
connect(): Promise<void>;
|
|
20
20
|
private discoverUuid;
|
|
21
21
|
private waitForDiscoveredUuid;
|
|
22
|
-
private
|
|
22
|
+
private createBleGattBackend;
|
|
23
23
|
private throwIfError;
|
|
24
|
-
private
|
|
25
|
-
private
|
|
24
|
+
private startBleGattRssiPolling;
|
|
25
|
+
private startBleGattBackend;
|
|
26
26
|
private waitForOnConnected;
|
|
27
27
|
private waitToDiscoverServices;
|
|
28
28
|
writeCharacteristic(charUuid: CharacteristicUuid, value: string): Promise<void>;
|
|
@@ -32,7 +32,7 @@ export default class BleDeviceController implements BleController {
|
|
|
32
32
|
get name(): string;
|
|
33
33
|
private get ndx();
|
|
34
34
|
}
|
|
35
|
-
export interface
|
|
35
|
+
export interface BleGatt {
|
|
36
36
|
uuid: string;
|
|
37
37
|
name: string;
|
|
38
38
|
connect(): Promise<void>;
|
|
@@ -40,7 +40,7 @@ export interface BleController {
|
|
|
40
40
|
writeCharacteristic(charUuid: CharacteristicUuid, value: string): Promise<void>;
|
|
41
41
|
disconnect(): Promise<void>;
|
|
42
42
|
}
|
|
43
|
-
export type
|
|
43
|
+
export type BleGattOptions = {
|
|
44
44
|
charCallbacks: CharacteristicCallbacks;
|
|
45
45
|
onConnected?: (peripheral: NativePeripheral) => void;
|
|
46
46
|
rssiIntervalMs?: number;
|
|
@@ -51,7 +51,7 @@ export type BleControllerOptions = {
|
|
|
51
51
|
deviceUuid?: string;
|
|
52
52
|
deviceNamePrefix: string;
|
|
53
53
|
});
|
|
54
|
-
export type
|
|
54
|
+
export type BleGattConstructor = new (options: BleGattOptions) => BleGatt;
|
|
55
55
|
export type CharacteristicCallbacks = {
|
|
56
56
|
charUuid: string;
|
|
57
57
|
charName?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LibndxAdapter } from '@neurodevs/ndx-native';
|
|
2
|
-
export default class
|
|
2
|
+
export default class BleGattController {
|
|
3
3
|
static Class;
|
|
4
4
|
static setTimeout = setTimeout;
|
|
5
5
|
static waitAfterMs = 1000;
|
|
@@ -36,11 +36,11 @@ export default class BleDeviceController {
|
|
|
36
36
|
if (!this.deviceUuid) {
|
|
37
37
|
await this.discoverUuid();
|
|
38
38
|
}
|
|
39
|
-
this.
|
|
40
|
-
this.
|
|
39
|
+
this.createBleGattBackend();
|
|
40
|
+
this.startBleGattBackend();
|
|
41
41
|
await this.waitForOnConnected();
|
|
42
42
|
await this.waitToDiscoverServices();
|
|
43
|
-
this.
|
|
43
|
+
this.startBleGattRssiPolling();
|
|
44
44
|
}
|
|
45
45
|
async discoverUuid() {
|
|
46
46
|
const { status, error } = this.ndx.discoverBleUuid({
|
|
@@ -59,14 +59,14 @@ export default class BleDeviceController {
|
|
|
59
59
|
resolve();
|
|
60
60
|
}
|
|
61
61
|
else {
|
|
62
|
-
|
|
62
|
+
BleGattController.setTimeout(checkDiscovered, 100);
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
checkDiscovered();
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
|
|
69
|
-
const { status, error } = this.ndx.
|
|
68
|
+
createBleGattBackend() {
|
|
69
|
+
const { status, error } = this.ndx.createBleGattBackend({
|
|
70
70
|
deviceUuid: this.uuid,
|
|
71
71
|
});
|
|
72
72
|
this.throwIfError(status, error);
|
|
@@ -76,9 +76,9 @@ export default class BleDeviceController {
|
|
|
76
76
|
throw new Error(`${status} error: ${error ?? 'Unknown error'}`);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
|
|
79
|
+
startBleGattRssiPolling() {
|
|
80
80
|
if (this.rssiIntervalMs) {
|
|
81
|
-
this.ndx.
|
|
81
|
+
this.ndx.startBleGattRssiPolling({
|
|
82
82
|
deviceUuid: this.uuid,
|
|
83
83
|
intervalMs: this.rssiIntervalMs,
|
|
84
84
|
onRssi: (rssi) => {
|
|
@@ -87,8 +87,8 @@ export default class BleDeviceController {
|
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
-
|
|
91
|
-
const { status, error } = this.ndx.
|
|
90
|
+
startBleGattBackend() {
|
|
91
|
+
const { status, error } = this.ndx.startBleGattBackend({
|
|
92
92
|
deviceUuid: this.uuid,
|
|
93
93
|
onConnected: (peripheral) => {
|
|
94
94
|
const { name } = peripheral;
|
|
@@ -108,17 +108,17 @@ export default class BleDeviceController {
|
|
|
108
108
|
resolve();
|
|
109
109
|
}
|
|
110
110
|
else {
|
|
111
|
-
|
|
111
|
+
BleGattController.setTimeout(checkConnected, 100);
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
114
|
checkConnected();
|
|
115
115
|
});
|
|
116
116
|
}
|
|
117
117
|
async waitToDiscoverServices() {
|
|
118
|
-
await new Promise((resolve) =>
|
|
118
|
+
await new Promise((resolve) => BleGattController.setTimeout(resolve, BleGattController.waitAfterMs));
|
|
119
119
|
}
|
|
120
120
|
async writeCharacteristic(charUuid, value) {
|
|
121
|
-
const { status, error } = this.ndx.
|
|
121
|
+
const { status, error } = this.ndx.writeBleGattChar({
|
|
122
122
|
deviceUuid: this.uuid,
|
|
123
123
|
charUuid,
|
|
124
124
|
value,
|
|
@@ -126,7 +126,7 @@ export default class BleDeviceController {
|
|
|
126
126
|
this.throwIfError(status, error);
|
|
127
127
|
}
|
|
128
128
|
async subscribeCharacteristics(charCallbacks) {
|
|
129
|
-
const { status, error } = this.ndx.
|
|
129
|
+
const { status, error } = this.ndx.registerBleGattCharCallbacks({
|
|
130
130
|
deviceUuid: this.uuid,
|
|
131
131
|
charCallbacks,
|
|
132
132
|
});
|
|
@@ -134,7 +134,7 @@ export default class BleDeviceController {
|
|
|
134
134
|
this.charCallbacks = [...this.charCallbacks, ...charCallbacks];
|
|
135
135
|
}
|
|
136
136
|
async disconnect() {
|
|
137
|
-
const { status, error } = this.ndx.
|
|
137
|
+
const { status, error } = this.ndx.stopBleGattBackend({
|
|
138
138
|
deviceUuid: this.uuid,
|
|
139
139
|
});
|
|
140
140
|
this.throwIfError(status, error);
|
|
@@ -147,7 +147,7 @@ export default class BleDeviceController {
|
|
|
147
147
|
return this.deviceName ?? 'N/A';
|
|
148
148
|
}
|
|
149
149
|
get ndx() {
|
|
150
|
-
return
|
|
150
|
+
return BleGattController.ndx;
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
|
-
//# sourceMappingURL=
|
|
153
|
+
//# sourceMappingURL=BleGattController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BleGattController.js","sourceRoot":"","sources":["../../../src/impl/controllers/BleGattController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export default class BleObserverController implements BleObserver {
|
|
2
|
+
static Class?: BleObserverConstructor;
|
|
3
|
+
private readonly deviceUuid;
|
|
4
|
+
private readonly onAdvertisement?;
|
|
5
|
+
private readonly ndx;
|
|
6
|
+
protected constructor(options: BleObserverOptions);
|
|
7
|
+
static Create(options: BleObserverOptions): BleObserver;
|
|
8
|
+
startObserving(): Promise<void>;
|
|
9
|
+
private createBleObserverBackend;
|
|
10
|
+
private startBleObserverBackend;
|
|
11
|
+
stopObserving(): Promise<void>;
|
|
12
|
+
private stopBleObserverBackend;
|
|
13
|
+
private throwIfError;
|
|
14
|
+
}
|
|
15
|
+
export interface BleObserver {
|
|
16
|
+
startObserving(): Promise<void>;
|
|
17
|
+
stopObserving(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export type BleObserverConstructor = new (options: BleObserverOptions) => BleObserver;
|
|
20
|
+
export type BleObserverOptions = {
|
|
21
|
+
deviceUuid: string;
|
|
22
|
+
onAdvertisement?: OnAdvertisement;
|
|
23
|
+
};
|
|
24
|
+
export type OnAdvertisement = (data: Buffer, length: number, timestampSec: number) => void;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { LibndxAdapter } from '@neurodevs/ndx-native';
|
|
2
|
+
export default class BleObserverController {
|
|
3
|
+
static Class;
|
|
4
|
+
deviceUuid;
|
|
5
|
+
onAdvertisement;
|
|
6
|
+
ndx = LibndxAdapter.getInstance();
|
|
7
|
+
constructor(options) {
|
|
8
|
+
const { deviceUuid, onAdvertisement } = options;
|
|
9
|
+
this.deviceUuid = deviceUuid ?? '';
|
|
10
|
+
this.onAdvertisement = onAdvertisement;
|
|
11
|
+
}
|
|
12
|
+
static Create(options) {
|
|
13
|
+
return new (this.Class ?? this)(options);
|
|
14
|
+
}
|
|
15
|
+
async startObserving() {
|
|
16
|
+
this.createBleObserverBackend();
|
|
17
|
+
this.startBleObserverBackend();
|
|
18
|
+
}
|
|
19
|
+
createBleObserverBackend() {
|
|
20
|
+
const { status, error } = this.ndx.createBleObserverBackend({
|
|
21
|
+
deviceUuid: this.deviceUuid,
|
|
22
|
+
});
|
|
23
|
+
this.throwIfError(status, error);
|
|
24
|
+
}
|
|
25
|
+
startBleObserverBackend() {
|
|
26
|
+
const { status, error } = this.ndx.startBleObserverBackend({
|
|
27
|
+
deviceUuid: this.deviceUuid,
|
|
28
|
+
onAdvertisement: (data, length, timestampSec) => {
|
|
29
|
+
this.onAdvertisement?.(data, length, timestampSec);
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
this.throwIfError(status, error);
|
|
33
|
+
}
|
|
34
|
+
async stopObserving() {
|
|
35
|
+
this.stopBleObserverBackend();
|
|
36
|
+
}
|
|
37
|
+
stopBleObserverBackend() {
|
|
38
|
+
const { status, error } = this.ndx.stopBleObserverBackend({
|
|
39
|
+
deviceUuid: this.deviceUuid,
|
|
40
|
+
});
|
|
41
|
+
this.throwIfError(status, error);
|
|
42
|
+
}
|
|
43
|
+
throwIfError(status, error) {
|
|
44
|
+
if (status !== 200) {
|
|
45
|
+
throw new Error(`${status} error: ${error ?? 'Unknown error'}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=BleObserverController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BleObserverController.js","sourceRoot":"","sources":["../../../src/impl/controllers/BleObserverController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAC/B,MAAM,CAAC,KAAK,CAAyB;IAE3B,UAAU,CAAQ;IAClB,eAAe,CAAkB;IACjC,GAAG,GAAG,aAAa,CAAC,WAAW,EAAE,CAAA;IAElD,YAAsB,OAA2B;QAC7C,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,OAAO,CAAA;QAE/C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAA2B;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAC/B,IAAI,CAAC,uBAAuB,EAAE,CAAA;IAClC,CAAC;IAEO,wBAAwB;QAC5B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC;YACxD,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAA;QAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC;IAEO,uBAAuB;QAC3B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC;YACvD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,CACb,IAAY,EACZ,MAAc,EACd,YAAoB,EACtB,EAAE;gBACA,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;YACtD,CAAC;SACJ,CAAC,CAAA;QAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,IAAI,CAAC,sBAAsB,EAAE,CAAA;IACjC,CAAC;IAEO,sBAAsB;QAC1B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACtD,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAA;QAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC;IAEO,YAAY,CAAC,MAAc,EAAE,KAAyB;QAC1D,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,WAAW,KAAK,IAAI,eAAe,EAAE,CAAC,CAAA;QACnE,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export default class UsbDeviceController implements
|
|
2
|
-
static Class?:
|
|
1
|
+
export default class UsbDeviceController implements UsbDevice {
|
|
2
|
+
static Class?: UsbDeviceConstructor;
|
|
3
3
|
private onData;
|
|
4
4
|
private serialNumber;
|
|
5
5
|
private ndx;
|
|
6
|
-
protected constructor(options:
|
|
7
|
-
static Create(options:
|
|
6
|
+
protected constructor(options: UsbDeviceOptions);
|
|
7
|
+
static Create(options: UsbDeviceOptions): UsbDevice;
|
|
8
8
|
connect(): Promise<void>;
|
|
9
|
-
private get
|
|
10
|
-
private get
|
|
9
|
+
private get usbDeviceOptions();
|
|
10
|
+
private get startUsbDeviceOptions();
|
|
11
11
|
writeUsb(value: string): Promise<void>;
|
|
12
12
|
disconnect(): Promise<void>;
|
|
13
13
|
}
|
|
14
|
-
export interface
|
|
14
|
+
export interface UsbDevice {
|
|
15
15
|
connect(): Promise<void>;
|
|
16
16
|
writeUsb(value: string): Promise<void>;
|
|
17
17
|
disconnect(): Promise<void>;
|
|
18
18
|
}
|
|
19
|
-
export interface
|
|
19
|
+
export interface UsbDeviceOptions {
|
|
20
20
|
onData: (data: Buffer, length: number, timestampSec: number) => void;
|
|
21
21
|
serialNumber?: string;
|
|
22
22
|
}
|
|
23
|
-
export type
|
|
23
|
+
export type UsbDeviceConstructor = new (options?: UsbDeviceOptions) => UsbDevice;
|
|
@@ -13,28 +13,28 @@ export default class UsbDeviceController {
|
|
|
13
13
|
return new (this.Class ?? this)(options);
|
|
14
14
|
}
|
|
15
15
|
async connect() {
|
|
16
|
-
this.ndx.createUsbBackend(this.
|
|
17
|
-
this.ndx.startUsbBackend(this.
|
|
16
|
+
this.ndx.createUsbBackend(this.usbDeviceOptions);
|
|
17
|
+
this.ndx.startUsbBackend(this.startUsbDeviceOptions);
|
|
18
18
|
}
|
|
19
|
-
get
|
|
19
|
+
get usbDeviceOptions() {
|
|
20
20
|
return {
|
|
21
21
|
serialNumber: this.serialNumber,
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
get
|
|
24
|
+
get startUsbDeviceOptions() {
|
|
25
25
|
return {
|
|
26
|
-
...this.
|
|
26
|
+
...this.usbDeviceOptions,
|
|
27
27
|
onData: this.onData,
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
async writeUsb(value) {
|
|
31
31
|
this.ndx.writeUsbBackend({
|
|
32
|
-
...this.
|
|
32
|
+
...this.usbDeviceOptions,
|
|
33
33
|
value,
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
async disconnect() {
|
|
37
|
-
this.ndx.stopUsbBackend(this.
|
|
37
|
+
this.ndx.stopUsbBackend(this.usbDeviceOptions);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
//# sourceMappingURL=UsbDeviceController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsbDeviceController.js","sourceRoot":"","sources":["../../../src/impl/controllers/UsbDeviceController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC7B,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"UsbDeviceController.js","sourceRoot":"","sources":["../../../src/impl/controllers/UsbDeviceController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC7B,MAAM,CAAC,KAAK,CAAuB;IAElC,MAAM,CAA8D;IACpE,YAAY,CAAQ;IAEpB,GAAG,GAAG,aAAa,CAAC,WAAW,EAAE,CAAA;IAEzC,YAAsB,OAAyB;QAC3C,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QAE9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAA;IAC1C,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAAyB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAChD,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACxD,CAAC;IAED,IAAY,gBAAgB;QACxB,OAAO;YACH,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAA;IACL,CAAC;IAED,IAAY,qBAAqB;QAC7B,OAAO;YACH,GAAG,IAAI,CAAC,gBAAgB;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC/B,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;YACrB,GAAG,IAAI,CAAC,gBAAgB;YACxB,KAAK;SACR,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAClD,CAAC;CACJ"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,27 +1,35 @@
|
|
|
1
|
+
export { default as BleObserverController } from './impl/controllers/BleObserverController.js';
|
|
2
|
+
export * from './impl/controllers/BleObserverController.js';
|
|
3
|
+
export { default as FakeBleObserver } from './testDoubles/BleObserver/FakeBleObserver.js';
|
|
4
|
+
export * from './testDoubles/BleObserver/FakeBleObserver.js';
|
|
1
5
|
export { default as WindowedClockRegressor } from './impl/clocks/WindowedClockRegressor.js';
|
|
2
6
|
export * from './impl/clocks/WindowedClockRegressor.js';
|
|
3
7
|
export { default as FakeClockRegressor } from './testDoubles/ClockRegressor/FakeClockRegressor.js';
|
|
4
8
|
export * from './testDoubles/ClockRegressor/FakeClockRegressor.js';
|
|
5
|
-
export { default as
|
|
6
|
-
export * from './impl/controllers/
|
|
7
|
-
export { default as
|
|
8
|
-
export * from './testDoubles/
|
|
9
|
-
export { default as
|
|
10
|
-
export * from './testDoubles/
|
|
9
|
+
export { default as BleGattController } from './impl/controllers/BleGattController.js';
|
|
10
|
+
export * from './impl/controllers/BleGattController.js';
|
|
11
|
+
export { default as SpyBleGatt } from './testDoubles/BleGatt/SpyBleGatt.js';
|
|
12
|
+
export * from './testDoubles/BleGatt/SpyBleGatt.js';
|
|
13
|
+
export { default as FakeBleGatt } from './testDoubles/BleGatt/FakeBleGatt.js';
|
|
14
|
+
export * from './testDoubles/BleGatt/FakeBleGatt.js';
|
|
15
|
+
export { default as LslEventMarkerOutlet } from './impl/LslEventMarkerOutlet.js';
|
|
16
|
+
export * from './impl/LslEventMarkerOutlet.js';
|
|
17
|
+
export { default as SpyEventMarkerOutlet } from './testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js';
|
|
18
|
+
export * from './testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js';
|
|
19
|
+
export { default as FakeEventMarkerOutlet } from './testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js';
|
|
20
|
+
export * from './testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js';
|
|
21
|
+
export { default as ThrowingEventMarkerOutlet } from './testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js';
|
|
22
|
+
export * from './testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js';
|
|
23
|
+
export { default as LslJsonOutlet } from './impl/LslJsonOutlet.js';
|
|
24
|
+
export * from './impl/LslJsonOutlet.js';
|
|
25
|
+
export { default as FakeJsonOutlet } from './testDoubles/JsonOutlet/FakeJsonOutlet.js';
|
|
26
|
+
export * from './testDoubles/JsonOutlet/FakeJsonOutlet.js';
|
|
11
27
|
export { default as LslWebSocketBridge } from './impl/LslWebSocketBridge.js';
|
|
12
28
|
export * from './impl/LslWebSocketBridge.js';
|
|
13
29
|
export { default as SpyLslWsBridge } from './testDoubles/LslWsBridge/SpyLslWsBridge.js';
|
|
14
30
|
export * from './testDoubles/LslWsBridge/SpyLslWsBridge.js';
|
|
15
31
|
export { default as FakeLslWsBridge } from './testDoubles/LslWsBridge/FakeLslWsBridge.js';
|
|
16
32
|
export * from './testDoubles/LslWsBridge/FakeLslWsBridge.js';
|
|
17
|
-
export { default as LslEventMarkerEmitter } from './impl/LslEventMarkerEmitter.js';
|
|
18
|
-
export * from './impl/LslEventMarkerEmitter.js';
|
|
19
|
-
export { default as SpyLslEmitter } from './testDoubles/LslEmitter/SpyLslEmitter.js';
|
|
20
|
-
export * from './testDoubles/LslEmitter/SpyLslEmitter.js';
|
|
21
|
-
export { default as FakeLslEmitter } from './testDoubles/LslEmitter/FakeLslEmitter.js';
|
|
22
|
-
export * from './testDoubles/LslEmitter/FakeLslEmitter.js';
|
|
23
|
-
export { default as ThrowingLslEmitter } from './testDoubles/LslEmitter/ThrowingLslEmitter.js';
|
|
24
|
-
export * from './testDoubles/LslEmitter/ThrowingLslEmitter.js';
|
|
25
33
|
export { default as LslStreamInfo } from './impl/LslStreamInfo.js';
|
|
26
34
|
export * from './impl/LslStreamInfo.js';
|
|
27
35
|
export { default as SpyLslInfo } from './testDoubles/LslInfo/SpyLslInfo.js';
|
|
@@ -41,8 +49,8 @@ export * from './testDoubles/LslOutlet/FakeLslOutlet.js';
|
|
|
41
49
|
export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions.js';
|
|
42
50
|
export { default as UsbDeviceController } from './impl/controllers/UsbDeviceController.js';
|
|
43
51
|
export * from './impl/controllers/UsbDeviceController.js';
|
|
44
|
-
export { default as
|
|
45
|
-
export * from './testDoubles/
|
|
52
|
+
export { default as FakeUsbDevice } from './testDoubles/UsbDevice/FakeUsbDevice.js';
|
|
53
|
+
export * from './testDoubles/UsbDevice/FakeUsbDevice.js';
|
|
46
54
|
export { default as FakeWebSocket } from './testDoubles/WebSockets/FakeWebSocket.js';
|
|
47
55
|
export * from './testDoubles/WebSockets/FakeWebSocket.js';
|
|
48
56
|
export { default as FakeWebSocketServer } from './testDoubles/WebSockets/FakeWebSocketServer.js';
|
package/build/index.js
CHANGED
|
@@ -1,15 +1,34 @@
|
|
|
1
|
+
// BleObserver
|
|
2
|
+
export { default as BleObserverController } from './impl/controllers/BleObserverController.js';
|
|
3
|
+
export * from './impl/controllers/BleObserverController.js';
|
|
4
|
+
export { default as FakeBleObserver } from './testDoubles/BleObserver/FakeBleObserver.js';
|
|
5
|
+
export * from './testDoubles/BleObserver/FakeBleObserver.js';
|
|
1
6
|
// ClockRegressor
|
|
2
7
|
export { default as WindowedClockRegressor } from './impl/clocks/WindowedClockRegressor.js';
|
|
3
8
|
export * from './impl/clocks/WindowedClockRegressor.js';
|
|
4
9
|
export { default as FakeClockRegressor } from './testDoubles/ClockRegressor/FakeClockRegressor.js';
|
|
5
10
|
export * from './testDoubles/ClockRegressor/FakeClockRegressor.js';
|
|
6
|
-
//
|
|
7
|
-
export { default as
|
|
8
|
-
export * from './impl/controllers/
|
|
9
|
-
export { default as
|
|
10
|
-
export * from './testDoubles/
|
|
11
|
-
export { default as
|
|
12
|
-
export * from './testDoubles/
|
|
11
|
+
// BleGatt
|
|
12
|
+
export { default as BleGattController } from './impl/controllers/BleGattController.js';
|
|
13
|
+
export * from './impl/controllers/BleGattController.js';
|
|
14
|
+
export { default as SpyBleGatt } from './testDoubles/BleGatt/SpyBleGatt.js';
|
|
15
|
+
export * from './testDoubles/BleGatt/SpyBleGatt.js';
|
|
16
|
+
export { default as FakeBleGatt } from './testDoubles/BleGatt/FakeBleGatt.js';
|
|
17
|
+
export * from './testDoubles/BleGatt/FakeBleGatt.js';
|
|
18
|
+
// EventMarkerOutlet
|
|
19
|
+
export { default as LslEventMarkerOutlet } from './impl/LslEventMarkerOutlet.js';
|
|
20
|
+
export * from './impl/LslEventMarkerOutlet.js';
|
|
21
|
+
export { default as SpyEventMarkerOutlet } from './testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js';
|
|
22
|
+
export * from './testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js';
|
|
23
|
+
export { default as FakeEventMarkerOutlet } from './testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js';
|
|
24
|
+
export * from './testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js';
|
|
25
|
+
export { default as ThrowingEventMarkerOutlet } from './testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js';
|
|
26
|
+
export * from './testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js';
|
|
27
|
+
// JsonOutlet
|
|
28
|
+
export { default as LslJsonOutlet } from './impl/LslJsonOutlet.js';
|
|
29
|
+
export * from './impl/LslJsonOutlet.js';
|
|
30
|
+
export { default as FakeJsonOutlet } from './testDoubles/JsonOutlet/FakeJsonOutlet.js';
|
|
31
|
+
export * from './testDoubles/JsonOutlet/FakeJsonOutlet.js';
|
|
13
32
|
// LslWsBridge
|
|
14
33
|
export { default as LslWebSocketBridge } from './impl/LslWebSocketBridge.js';
|
|
15
34
|
export * from './impl/LslWebSocketBridge.js';
|
|
@@ -17,15 +36,6 @@ export { default as SpyLslWsBridge } from './testDoubles/LslWsBridge/SpyLslWsBri
|
|
|
17
36
|
export * from './testDoubles/LslWsBridge/SpyLslWsBridge.js';
|
|
18
37
|
export { default as FakeLslWsBridge } from './testDoubles/LslWsBridge/FakeLslWsBridge.js';
|
|
19
38
|
export * from './testDoubles/LslWsBridge/FakeLslWsBridge.js';
|
|
20
|
-
// LslEmitter
|
|
21
|
-
export { default as LslEventMarkerEmitter } from './impl/LslEventMarkerEmitter.js';
|
|
22
|
-
export * from './impl/LslEventMarkerEmitter.js';
|
|
23
|
-
export { default as SpyLslEmitter } from './testDoubles/LslEmitter/SpyLslEmitter.js';
|
|
24
|
-
export * from './testDoubles/LslEmitter/SpyLslEmitter.js';
|
|
25
|
-
export { default as FakeLslEmitter } from './testDoubles/LslEmitter/FakeLslEmitter.js';
|
|
26
|
-
export * from './testDoubles/LslEmitter/FakeLslEmitter.js';
|
|
27
|
-
export { default as ThrowingLslEmitter } from './testDoubles/LslEmitter/ThrowingLslEmitter.js';
|
|
28
|
-
export * from './testDoubles/LslEmitter/ThrowingLslEmitter.js';
|
|
29
39
|
// LslInfo
|
|
30
40
|
export { default as LslStreamInfo } from './impl/LslStreamInfo.js';
|
|
31
41
|
export * from './impl/LslStreamInfo.js';
|
|
@@ -46,11 +56,11 @@ export * from './impl/LslStreamOutlet.js';
|
|
|
46
56
|
export { default as FakeLslOutlet } from './testDoubles/LslOutlet/FakeLslOutlet.js';
|
|
47
57
|
export * from './testDoubles/LslOutlet/FakeLslOutlet.js';
|
|
48
58
|
export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions.js';
|
|
49
|
-
//
|
|
59
|
+
// UsbDevice
|
|
50
60
|
export { default as UsbDeviceController } from './impl/controllers/UsbDeviceController.js';
|
|
51
61
|
export * from './impl/controllers/UsbDeviceController.js';
|
|
52
|
-
export { default as
|
|
53
|
-
export * from './testDoubles/
|
|
62
|
+
export { default as FakeUsbDevice } from './testDoubles/UsbDevice/FakeUsbDevice.js';
|
|
63
|
+
export * from './testDoubles/UsbDevice/FakeUsbDevice.js';
|
|
54
64
|
// WebSockets
|
|
55
65
|
export { default as FakeWebSocket } from './testDoubles/WebSockets/FakeWebSocket.js';
|
|
56
66
|
export * from './testDoubles/WebSockets/FakeWebSocket.js';
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AAEjB,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAA;AAC3F,cAAc,yCAAyC,CAAA;AAEvD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,oDAAoD,CAAA;AAClG,cAAc,oDAAoD,CAAA;AAElE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAC9F,cAAc,6CAA6C,CAAA;AAE3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8CAA8C,CAAA;AACzF,cAAc,8CAA8C,CAAA;AAE5D,iBAAiB;AAEjB,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAA;AAC3F,cAAc,yCAAyC,CAAA;AAEvD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,oDAAoD,CAAA;AAClG,cAAc,oDAAoD,CAAA;AAElE,UAAU;AAEV,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AACtF,cAAc,yCAAyC,CAAA;AAEvD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAC3E,cAAc,qCAAqC,CAAA;AAEnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAC7E,cAAc,sCAAsC,CAAA;AAEpD,oBAAoB;AAEpB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAChF,cAAc,gCAAgC,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yDAAyD,CAAA;AACzG,cAAc,yDAAyD,CAAA;AAEvE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0DAA0D,CAAA;AAC3G,cAAc,0DAA0D,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,8DAA8D,CAAA;AACnH,cAAc,8DAA8D,CAAA;AAE5E,aAAa;AAEb,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,cAAc,4CAA4C,CAAA;AAE1D,cAAc;AAEd,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAC5E,cAAc,8BAA8B,CAAA;AAE5C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6CAA6C,CAAA;AACvF,cAAc,6CAA6C,CAAA;AAE3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8CAA8C,CAAA;AACzF,cAAc,8CAA8C,CAAA;AAE5D,UAAU;AAEV,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAC3E,cAAc,qCAAqC,CAAA;AAEnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAC7E,cAAc,sCAAsC,CAAA;AAEpD,WAAW;AAEX,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACpE,cAAc,0BAA0B,CAAA;AAExC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAC9E,cAAc,uCAAuC,CAAA;AAErD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAChF,cAAc,wCAAwC,CAAA;AAEtD,YAAY;AAEZ,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAA;AACtE,cAAc,2BAA2B,CAAA;AAEzC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0CAA0C,CAAA;AACnF,cAAc,0CAA0C,CAAA;AAExD,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,8CAA8C,CAAA;AAErG,YAAY;AAEZ,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC1F,cAAc,2CAA2C,CAAA;AAEzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0CAA0C,CAAA;AACnF,cAAc,0CAA0C,CAAA;AAExD,aAAa;AAEb,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACpF,cAAc,2CAA2C,CAAA;AAEzD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AAChG,cAAc,iDAAiD,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import LslEventMarkerOutlet from '../impl/LslEventMarkerOutlet.js';
|
|
2
|
+
const outlet = await LslEventMarkerOutlet.Create();
|
|
3
|
+
const markers = [
|
|
4
|
+
{ name: 'phase-1-begin', waitAfterMs: 100 },
|
|
5
|
+
{ name: 'phase-1-end', waitAfterMs: 100 },
|
|
6
|
+
{ name: 'never-reached-marker', waitAfterMs: 100 },
|
|
7
|
+
];
|
|
8
|
+
void outlet.emitMany(markers);
|
|
9
|
+
await new Promise((resolve) => setTimeout(resolve, 250));
|
|
10
|
+
outlet.interrupt();
|
|
11
|
+
outlet.destroy();
|
|
12
|
+
//# sourceMappingURL=runEventMarkerOutlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runEventMarkerOutlet.js","sourceRoot":"","sources":["../../src/scripts/runEventMarkerOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,iCAAiC,CAAA;AAElE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,CAAA;AAElD,MAAM,OAAO,GAAG;IACZ,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,EAAE;IAC3C,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE;IACzC,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,GAAG,EAAE;CACrD,CAAA;AAED,KAAK,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AAE7B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AAExD,MAAM,CAAC,SAAS,EAAE,CAAA;AAClB,MAAM,CAAC,OAAO,EAAE,CAAA"}
|
package/build/scripts/runMuse.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import koffi from 'koffi';
|
|
2
|
-
import
|
|
2
|
+
import BleGattController from '../impl/controllers/BleGattController.js';
|
|
3
3
|
const MUSE_CHARACTERISTIC_UUIDS = {
|
|
4
4
|
CONTROL: '273E0001-4C4D-454D-96BE-F03BAC821358',
|
|
5
5
|
TELEMETRY: '273E000B-4C4D-454D-96BE-F03BAC821358',
|
|
@@ -25,7 +25,7 @@ const charCallbacks = Object.entries(MUSE_CHARACTERISTIC_UUIDS).map(([name, uuid
|
|
|
25
25
|
},
|
|
26
26
|
};
|
|
27
27
|
});
|
|
28
|
-
const muse =
|
|
28
|
+
const muse = BleGattController.Create({
|
|
29
29
|
deviceUuid: 'CA6A61B7-B7A8-AF24-3C9E-04A6A5012554',
|
|
30
30
|
charCallbacks,
|
|
31
31
|
rssiIntervalMs: 1000,
|