@neurodevs/node-lsl 23.1.0 → 23.1.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.
Files changed (38) hide show
  1. package/build/__tests__/AbstractPackageTest.js +0 -1
  2. package/build/__tests__/AbstractPackageTest.js.map +1 -1
  3. package/build/__tests__/impl/BleGattController.test.d.ts +4 -0
  4. package/build/__tests__/impl/BleGattController.test.js +27 -5
  5. package/build/__tests__/impl/BleGattController.test.js.map +1 -1
  6. package/build/__tests__/impl/LslStreamInlet.test.d.ts +4 -5
  7. package/build/__tests__/impl/LslStreamInlet.test.js +37 -58
  8. package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
  9. package/build/impl/LslStreamInfo.d.ts +3 -3
  10. package/build/impl/LslStreamInfo.js.map +1 -1
  11. package/build/impl/LslStreamInlet.d.ts +9 -39
  12. package/build/impl/LslStreamInlet.js +23 -151
  13. package/build/impl/LslStreamInlet.js.map +1 -1
  14. package/build/impl/LslStreamOutlet.d.ts +3 -3
  15. package/build/impl/LslStreamOutlet.js.map +1 -1
  16. package/build/impl/clocks/WindowedClockRegressor.d.ts +2 -2
  17. package/build/impl/clocks/WindowedClockRegressor.js.map +1 -1
  18. package/build/impl/controllers/BleGattController.d.ts +21 -12
  19. package/build/impl/controllers/BleGattController.js +22 -30
  20. package/build/impl/controllers/BleGattController.js.map +1 -1
  21. package/build/testDoubles/BleGatt/FakeBleGatt.d.ts +3 -2
  22. package/build/testDoubles/BleGatt/FakeBleGatt.js +6 -4
  23. package/build/testDoubles/BleGatt/FakeBleGatt.js.map +1 -1
  24. package/build/testDoubles/BleGatt/SpyBleGatt.d.ts +1 -1
  25. package/build/testDoubles/BleGatt/SpyBleGatt.js +2 -2
  26. package/build/testDoubles/BleGatt/SpyBleGatt.js.map +1 -1
  27. package/build/testDoubles/LslOutlet/FakeLslOutlet.d.ts +1 -1
  28. package/package.json +3 -4
  29. package/src/__tests__/AbstractPackageTest.ts +0 -2
  30. package/src/__tests__/impl/BleGattController.test.ts +48 -6
  31. package/src/__tests__/impl/LslStreamInlet.test.ts +45 -86
  32. package/src/impl/LslStreamInfo.ts +3 -3
  33. package/src/impl/LslStreamInlet.ts +38 -218
  34. package/src/impl/LslStreamOutlet.ts +3 -3
  35. package/src/impl/clocks/WindowedClockRegressor.ts +1 -1
  36. package/src/impl/controllers/BleGattController.ts +35 -37
  37. package/src/testDoubles/BleGatt/FakeBleGatt.ts +9 -6
  38. package/src/testDoubles/BleGatt/SpyBleGatt.ts +2 -2
@@ -1,11 +1,8 @@
1
- import { handleLslError, LiblslAdapter, } from '@neurodevs/ndx-native';
2
- import { unwrapPointer, createPointer, DataType, freePointer, PointerType, } from 'ffi-rs';
1
+ import { LiblslAdapter } from '@neurodevs/ndx-native';
3
2
  export default class LslStreamInlet {
4
3
  static Class;
5
4
  static waitAfterOpenStreamMs = 100;
6
5
  static lsl = LiblslAdapter.getInstance();
7
- static handleLslError = handleLslError;
8
- static freePointer = freePointer;
9
6
  isRunning = false;
10
7
  sourceId;
11
8
  chunkSize;
@@ -17,25 +14,9 @@ export default class LslStreamInlet {
17
14
  onData;
18
15
  infoHandle;
19
16
  inletHandle;
20
- channelCount;
21
17
  pullMethod;
22
- sampleBuffer;
23
- sampleBufferRef;
24
- sampleBufferPtr;
25
- timestampBuffer;
26
- timestampBufferRef;
27
- timestampBufferPtr;
28
- pullErrorBuffer;
29
- pullErrorBufferRef;
30
- pullErrorBufferPtr;
31
- openStreamErrorBuffer;
32
- openStreamErrorBufferRef;
33
- openStreamErrorBufferPtr;
34
18
  sixMinutesInMs = 360 * 1000;
35
19
  aboutOneYearInMs = 32000000 * 1000;
36
- bytesPerFloat = 4;
37
- bytesPerDouble = 8;
38
- bytesPerI32 = 4;
39
20
  constructor(options, onData) {
40
21
  const { sourceId, chunkSize, maxBufferedMs, pullTimeoutMs, openStreamTimeoutMs, waitBetweenPullsMs, flushInletOnStop, } = options ?? {};
41
22
  this.sourceId = sourceId;
@@ -46,6 +27,7 @@ export default class LslStreamInlet {
46
27
  this.waitBetweenPullsMs = waitBetweenPullsMs ?? 1;
47
28
  this.flushInletOnStop = flushInletOnStop ?? true;
48
29
  this.onData = onData;
30
+ this.pullMethod = (chunkSize === 1 ? this.pullSample : this.pullChunk).bind(this);
49
31
  }
50
32
  static async Create(options, onData) {
51
33
  return new (this.Class ?? this)(options, onData);
@@ -62,9 +44,6 @@ export default class LslStreamInlet {
62
44
  async createInlet() {
63
45
  this.infoHandle = this.resolveInfoHandle();
64
46
  this.inletHandle = this.doCreateInlet();
65
- this.channelCount = this.getChannelCount();
66
- this.allocateWritableBuffers();
67
- this.setPullMethod();
68
47
  this.openStream();
69
48
  }
70
49
  resolveInfoHandle() {
@@ -93,106 +72,13 @@ export default class LslStreamInlet {
93
72
  return this.lsl.createInlet({
94
73
  infoHandle: this.infoHandle,
95
74
  maxBufferedMs: this.maxBufferedMs,
75
+ chunkSize: this.chunkSize,
96
76
  });
97
77
  }
98
- getChannelCount() {
99
- return this.lsl.getChannelCount({ infoHandle: this.infoHandle });
100
- }
101
- allocateWritableBuffers() {
102
- this.allocateDataBuffer();
103
- this.allocateTimestampBuffer();
104
- this.allocatePullErrorBuffer();
105
- this.allocateOpenStreamErrorBuffer();
106
- }
107
- allocateDataBuffer() {
108
- this.sampleBuffer = Buffer.alloc(this.channelCount * this.chunkSize * this.bytesPerFloat);
109
- this.sampleBufferRef = createPointer({
110
- paramsType: [DataType.U8Array],
111
- paramsValue: [this.sampleBuffer],
112
- });
113
- this.sampleBufferPtr = unwrapPointer(this.sampleBufferRef)[0];
114
- }
115
- allocateTimestampBuffer() {
116
- this.timestampBuffer = Buffer.alloc(this.chunkSize * this.bytesPerDouble);
117
- this.timestampBufferRef = createPointer({
118
- paramsType: [DataType.U8Array],
119
- paramsValue: [this.timestampBuffer],
120
- });
121
- this.timestampBufferPtr = unwrapPointer(this.timestampBufferRef)[0];
122
- }
123
- allocatePullErrorBuffer() {
124
- this.pullErrorBuffer = Buffer.alloc(this.bytesPerI32);
125
- this.pullErrorBufferRef = createPointer({
126
- paramsType: [DataType.U8Array],
127
- paramsValue: [this.pullErrorBuffer],
128
- });
129
- this.pullErrorBufferPtr = unwrapPointer(this.pullErrorBufferRef)[0];
130
- }
131
- allocateOpenStreamErrorBuffer() {
132
- this.openStreamErrorBuffer = Buffer.alloc(this.bytesPerI32);
133
- this.openStreamErrorBufferRef = createPointer({
134
- paramsType: [DataType.U8Array],
135
- paramsValue: [this.openStreamErrorBuffer],
136
- });
137
- this.openStreamErrorBufferPtr = unwrapPointer(this.openStreamErrorBufferRef)[0];
138
- }
139
- setPullMethod() {
140
- this.pullMethod =
141
- this.chunkSize === 1 ? this.pullSample : this.pullChunk;
142
- }
143
- pullSample = () => {
144
- const timestampSec = this.doPullsample();
145
- if (timestampSec > 0) {
146
- return {
147
- samples: this.readSamplesFromBuffer(),
148
- timestamps: [timestampSec],
149
- };
150
- }
151
- return { samples: undefined, timestamps: undefined };
152
- };
153
- doPullsample() {
154
- return this.lsl.pullSample({
155
- inletHandle: this.inletHandle,
156
- sampleBufferPtr: this.sampleBufferPtr,
157
- sampleBufferElements: this.channelCount,
158
- timeoutMs: this.pullTimeoutMs,
159
- errorCodePtr: this.pullErrorBufferPtr,
160
- });
161
- }
162
- readSamplesFromBuffer() {
163
- const floats = new Float32Array(this.sampleBuffer.buffer, this.sampleBuffer.byteOffset, this.chunkSize * this.channelCount);
164
- return Array.from(floats);
165
- }
166
- pullChunk = () => {
167
- const firstTimestampSec = this.doPullChunk();
168
- if (firstTimestampSec > 0) {
169
- return {
170
- samples: this.readSamplesFromBuffer(),
171
- timestamps: this.readTimestampsFromBuffer(),
172
- };
173
- }
174
- return { samples: undefined, timestamps: undefined };
175
- };
176
- doPullChunk() {
177
- return this.lsl.pullChunk({
178
- inletHandle: this.inletHandle,
179
- sampleBufferPtr: this.sampleBufferPtr,
180
- sampleBufferElements: this.chunkSize * this.channelCount,
181
- timestampBufferPtr: this.timestampBufferPtr,
182
- timestampBufferElements: this.chunkSize,
183
- timeoutMs: this.pullTimeoutMs,
184
- errorCodePtr: this.pullErrorBufferPtr,
185
- });
186
- }
187
- readTimestampsFromBuffer() {
188
- const doubles = new Float64Array(this.timestampBuffer.buffer, this.timestampBuffer.byteOffset, this.chunkSize);
189
- return Array.from(doubles);
190
- }
191
78
  openStream() {
192
79
  this.lsl.openStream({
193
80
  inletHandle: this.inletHandle,
194
81
  timeoutMs: this.openStreamTimeoutMs,
195
- errorCodePtr: this.openStreamErrorBufferPtr,
196
82
  });
197
83
  }
198
84
  async pullLoop() {
@@ -202,15 +88,22 @@ export default class LslStreamInlet {
202
88
  }
203
89
  }
204
90
  async pullDataOnce() {
205
- const { samples, timestamps } = this.pullMethod();
206
- this.handleLslErrorIfPresent();
207
- if (samples && timestamps) {
208
- this.onData(samples, timestamps);
91
+ const pulled = this.pullMethod();
92
+ if (pulled) {
93
+ this.onData(pulled.samples, pulled.timestamps);
209
94
  }
210
95
  }
211
- handleLslErrorIfPresent() {
212
- const errorCode = this.pullErrorBuffer.readInt32LE();
213
- this.handleLslError(errorCode);
96
+ pullSample() {
97
+ return this.lsl.pullSample(this.pullOptions);
98
+ }
99
+ pullChunk() {
100
+ return this.lsl.pullChunk(this.pullOptions);
101
+ }
102
+ get pullOptions() {
103
+ return {
104
+ inletHandle: this.inletHandle,
105
+ timeoutMs: this.pullTimeoutMs,
106
+ };
214
107
  }
215
108
  async waitBetweenPulls() {
216
109
  await new Promise((r) => setTimeout(r, this.waitBetweenPullsMs));
@@ -232,37 +125,16 @@ export default class LslStreamInlet {
232
125
  if (this.isRunning) {
233
126
  this.stopPulling();
234
127
  }
235
- this.doDestroyInlet();
236
- this.freeNativePointers();
237
- }
238
- doDestroyInlet() {
239
- this.lsl.destroyInlet({ inletHandle: this.inletHandle });
128
+ this.destroyInletIfCreated();
240
129
  }
241
- freeNativePointers() {
242
- this.freePointer({
243
- paramsType: [
244
- DataType.U8Array,
245
- DataType.U8Array,
246
- DataType.U8Array,
247
- DataType.U8Array,
248
- ],
249
- paramsValue: [
250
- this.openStreamErrorBufferPtr,
251
- this.sampleBufferPtr,
252
- this.timestampBufferPtr,
253
- this.pullErrorBufferPtr,
254
- ],
255
- pointerType: PointerType.CPointer,
256
- });
130
+ destroyInletIfCreated() {
131
+ if (this.inletHandle) {
132
+ this.lsl.destroyInlet({ inletHandle: this.inletHandle });
133
+ delete this.inletHandle;
134
+ }
257
135
  }
258
136
  get lsl() {
259
137
  return LslStreamInlet.lsl;
260
138
  }
261
- get handleLslError() {
262
- return LslStreamInlet.handleLslError;
263
- }
264
- get freePointer() {
265
- return LslStreamInlet.freePointer;
266
- }
267
139
  }
268
140
  //# sourceMappingURL=LslStreamInlet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LslStreamInlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamInlet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LslStreamInlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamInlet.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE9E,MAAM,CAAC,OAAO,OAAO,cAAc;IACxB,MAAM,CAAC,KAAK,CAAsB;IAClC,MAAM,CAAC,qBAAqB,GAAG,GAAG,CAAA;IAClC,MAAM,CAAC,GAAG,GAAG,aAAa,CAAC,WAAW,EAAE,CAAA;IAExC,SAAS,GAAG,KAAK,CAAA;IAEhB,QAAQ,CAAQ;IAChB,SAAS,CAAQ;IACjB,aAAa,CAAQ;IACrB,aAAa,CAAQ;IACrB,mBAAmB,CAAQ;IAC3B,kBAAkB,CAAQ;IAC1B,gBAAgB,CAAS;IACzB,MAAM,CAAgB;IAEtB,UAAU,CAAa;IACvB,WAAW,CAAc;IACzB,UAAU,CAA8B;IAE/B,cAAc,GAAG,GAAG,GAAG,IAAI,CAAA;IAC3B,gBAAgB,GAAG,QAAQ,GAAG,IAAI,CAAA;IAEnD,YAAsB,OAAwB,EAAE,MAAsB;QAClE,MAAM,EACF,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACnB,GAAG,OAAO,IAAI,EAAE,CAAA;QAEjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC,cAAc,CAAA;QACzD,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,IAAI,IAAI,CAAC,gBAAgB,CAAA;QACvE,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,IAAI,CAAC,CAAA;QACjD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,CAAA;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAEpB,IAAI,CAAC,UAAU,GAAG,CACd,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CACtB,OAAwB,EACxB,MAAsB;QAEtB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACpD,CAAC;IAEM,KAAK,CAAC,YAAY;QACrB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;YAChE,OAAM;QACV,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACxB,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAA;IACxB,CAAC;IAEO,KAAK,CAAC,WAAW;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAEvC,IAAI,CAAC,UAAU,EAAE,CAAA;IACrB,CAAC;IAEO,iBAAiB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC7B,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,wBAAwB,EAAE,CAAA;QACnC,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC;IAEO,aAAa;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YAC1B,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC,CAAA;IACN,CAAC;IAEO,kBAAkB;QACtB,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;IACrE,CAAC;IAEO,wBAAwB;QAC5B,OAAO,CAAC,IAAI,CACR,uCAAuC,IAAI,CAAC,QAAQ,yBAAyB,CAChF,CAAA;IACL,CAAC;IAEO,aAAa;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YACxB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAA;IACN,CAAC;IAEO,UAAU;QACd,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAChB,WAAW,EAAE,IAAI,CAAC,WAAY;YAC9B,SAAS,EAAE,IAAI,CAAC,mBAAmB;SACtC,CAAC,CAAA;IACN,CAAC;IAEO,KAAK,CAAC,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YACzB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACjC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAEhC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;IACL,CAAC;IAEO,UAAU;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC;IAEO,SAAS;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC/C,CAAC;IAED,IAAY,WAAW;QACnB,OAAO;YACH,WAAW,EAAE,IAAI,CAAC,WAAY;YAC9B,SAAS,EAAE,IAAI,CAAC,aAAa;SAChC,CAAA;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACpE,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAY,EAAE,CAAC,CAAA;IAC3D,CAAC;IAEM,WAAW;QACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAA;QACrB,CAAC;IACL,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAY,EAAE,CAAC,CAAA;IAC5D,CAAC;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,EAAE,CAAA;QACtB,CAAC;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAChC,CAAC;IAEO,qBAAqB;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACxD,OAAO,IAAI,CAAC,WAAW,CAAA;QAC3B,CAAC;IACL,CAAC;IAED,IAAY,GAAG;QACX,OAAO,cAAc,CAAC,GAAG,CAAA;IAC7B,CAAC"}
@@ -7,7 +7,7 @@ export default class LslStreamOutlet implements LslOutlet {
7
7
  readonly name: string;
8
8
  readonly type: string;
9
9
  readonly sourceId: string;
10
- readonly channelNames: string[];
10
+ readonly channelNames: readonly string[];
11
11
  readonly channelFormat: ChannelFormat;
12
12
  readonly channelCount: number;
13
13
  readonly sampleRateHz: number;
@@ -38,7 +38,7 @@ export interface LslOutlet {
38
38
  readonly name: string;
39
39
  readonly type: string;
40
40
  readonly sourceId: string;
41
- readonly channelNames: string[];
41
+ readonly channelNames: readonly string[];
42
42
  readonly channelCount: number;
43
43
  readonly channelFormat: ChannelFormat;
44
44
  readonly sampleRateHz: number;
@@ -52,7 +52,7 @@ export interface LslOutletOptions {
52
52
  name: string;
53
53
  type: string;
54
54
  sourceId: string;
55
- channelNames: string[];
55
+ channelNames: readonly string[];
56
56
  channelFormat: ChannelFormat;
57
57
  sampleRateHz: number;
58
58
  chunkSize: number;
@@ -1 +1 @@
1
- {"version":3,"file":"LslStreamOutlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamOutlet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LslStreamOutlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamOutlet.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@ export default class WindowedClockRegressor implements ClockRegressor {
6
6
  private readonly history;
7
7
  private slope;
8
8
  protected constructor(nominalHz: number, options?: WindowedClockRegressorOptions);
9
- static Create(nominalHz: number, options?: WindowedClockRegressorOptions): WindowedClockRegressor | ClockRegressor;
10
- deriveTimestamps(deviceTime: number, earliestLslTime: number, chunkSize: number): any[];
9
+ static Create(nominalHz: number, options?: WindowedClockRegressorOptions): ClockRegressor;
10
+ deriveTimestamps(deviceTime: number, earliestLslTime: number, chunkSize: number): number[];
11
11
  private anchorTimeFor;
12
12
  private throwIfDeviceTimeDoesNotIncrease;
13
13
  private pruneHistoryOutsideWindow;
@@ -1 +1 @@
1
- {"version":3,"file":"WindowedClockRegressor.js","sourceRoot":"","sources":["../../../src/impl/clocks/WindowedClockRegressor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WindowedClockRegressor.js","sourceRoot":"","sources":["../../../src/impl/clocks/WindowedClockRegressor.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAChC,MAAM,CAAC,KAAK,CAA4B;IAE9B,SAAS,CAAQ;IACjB,YAAY,CAAQ;IACpB,mBAAmB,GAAG,EAAE,CAAA;IACxB,OAAO,GAGlB,EAAE,CAAA;IAEA,KAAK,GAAG,CAAC,CAAA,CAAC,qCAAqC;IAEvD,YACI,SAAiB,EACjB,OAAuC;QAEvC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QAEjE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAEM,MAAM,CAAC,MAAM,CAChB,SAAiB,EACjB,OAAuC;QAEvC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAEM,gBAAgB,CACnB,UAAkB,EAClB,eAAuB,EACvB,SAAiB;QAEjB,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAA;QAEjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAA;QAClD,IAAI,CAAC,yBAAyB,EAAE,CAAA;QAChC,IAAI,CAAC,UAAU,EAAE,CAAA;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAE7C,MAAM,UAAU,GAAa,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;YACvC,MAAM,gBAAgB,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAA;YACxD,MAAM,aAAa,GAAG,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAA;YAEnD,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,aAAa,CAAA;QAC1C,CAAC;QAED,OAAO,UAAU,CAAA;IACrB,CAAC;IAEO,aAAa,CAAC,UAAkB;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAA;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAA;QAErC,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,CAAA;IACpD,CAAC;IAEO,gCAAgC,CAAC,UAAkB;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAElD,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACX,kBAAkB,UAAU,qDAAqD,IAAI,CAAC,UAAU,oHAAoH,CACvN,CAAA;QACL,CAAC;IACL,CAAC;IAEO,yBAAyB;QAC7B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACpE,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,YAAY,CAAA;QAEzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC;YACpE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACxB,CAAC;IACL,CAAC;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAM;QACV,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAA;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAA;QAErC,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,WAAW,GAAG,CAAC,CAAA;QAEnB,KAAK,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,CAAA;YAEpC,SAAS,IAAI,SAAS,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC,CAAA;YAClD,WAAW,IAAI,SAAS,GAAG,SAAS,CAAA;QACxC,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;IACxC,CAAC;IAED,IAAY,qBAAqB;QAC7B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,UAAU,EACzC,CAAC,CACJ,CAAA;QACD,OAAO,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IAChD,CAAC;IAED,IAAY,kBAAkB;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,eAAe,EACnD,CAAC,CACJ,CAAA;QACD,OAAO,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IAC7C,CAAC;CACJ"}
@@ -1,21 +1,17 @@
1
- import { Libndx, NativePeripheral } from '@neurodevs/ndx-native';
1
+ import { NativePeripheral } from '@neurodevs/ndx-native';
2
2
  export default class BleGattController implements BleGatt {
3
3
  static Class?: BleGattConstructor;
4
4
  static setTimeout: typeof setTimeout;
5
5
  static waitAfterMs: number;
6
- private static _ndx?;
7
- static get ndx(): Libndx;
8
- static set ndx(value: Libndx);
9
6
  protected charCallbacks: CharacteristicCallbacks;
10
7
  protected rssiIntervalMs?: number;
11
- protected connected: boolean;
8
+ protected state: BleGattState;
12
9
  protected log: Console;
13
- private deviceUuid?;
14
10
  private deviceNamePrefix?;
15
- private deviceName?;
16
11
  private onConnected?;
12
+ private readonly ndx;
17
13
  protected constructor(options: BleGattOptions);
18
- static Create(options: BleGattOptions): BleGattController | BleGatt;
14
+ static Create(options: BleGattOptions): BleGatt;
19
15
  connect(): Promise<void>;
20
16
  private discoverUuid;
21
17
  private waitForDiscoveredUuid;
@@ -30,11 +26,11 @@ export default class BleGattController implements BleGatt {
30
26
  disconnect(): Promise<void>;
31
27
  get uuid(): string;
32
28
  get name(): string;
33
- private get ndx();
29
+ private requireUuid;
34
30
  }
35
31
  export interface BleGatt {
36
- uuid: string;
37
- name: string;
32
+ readonly uuid: string;
33
+ readonly name: string;
38
34
  connect(): Promise<void>;
39
35
  subscribeCharacteristics(charCallbacks: CharacteristicCallbacks): Promise<void>;
40
36
  writeCharacteristic(charUuid: CharacteristicUuid, value: string): Promise<void>;
@@ -52,7 +48,20 @@ export type BleGattOptions = {
52
48
  deviceNamePrefix: string;
53
49
  });
54
50
  export type BleGattConstructor = new (options: BleGattOptions) => BleGatt;
55
- export type CharacteristicCallbacks = {
51
+ export type BleGattState = {
52
+ status: 'disconnected';
53
+ uuid?: string;
54
+ name?: string;
55
+ } | {
56
+ status: 'connecting';
57
+ uuid: string;
58
+ name?: string;
59
+ } | {
60
+ status: 'connected';
61
+ uuid: string;
62
+ name: string;
63
+ };
64
+ export type CharacteristicCallbacks = readonly {
56
65
  charUuid: string;
57
66
  charName?: string;
58
67
  onData: (data: Buffer, length: number, timestampSec: number) => void;
@@ -3,27 +3,16 @@ export default class BleGattController {
3
3
  static Class;
4
4
  static setTimeout = setTimeout;
5
5
  static waitAfterMs = 1000;
6
- static _ndx;
7
- static get ndx() {
8
- if (!this._ndx) {
9
- this._ndx = LibndxAdapter.getInstance();
10
- }
11
- return this._ndx;
12
- }
13
- static set ndx(value) {
14
- this._ndx = value;
15
- }
16
6
  charCallbacks;
17
7
  rssiIntervalMs;
18
- connected = false;
8
+ state = { status: 'disconnected' };
19
9
  log = console;
20
- deviceUuid;
21
10
  deviceNamePrefix;
22
- deviceName;
23
11
  onConnected;
12
+ ndx = LibndxAdapter.getInstance();
24
13
  constructor(options) {
25
14
  const { deviceUuid, deviceNamePrefix, charCallbacks, onConnected, rssiIntervalMs, } = options;
26
- this.deviceUuid = deviceUuid;
15
+ this.state = { status: 'disconnected', uuid: deviceUuid };
27
16
  this.deviceNamePrefix = deviceNamePrefix;
28
17
  this.charCallbacks = charCallbacks;
29
18
  this.onConnected = onConnected;
@@ -33,9 +22,10 @@ export default class BleGattController {
33
22
  return new (this.Class ?? this)(options);
34
23
  }
35
24
  async connect() {
36
- if (!this.deviceUuid) {
25
+ if (!this.state.uuid) {
37
26
  await this.discoverUuid();
38
27
  }
28
+ this.state = { status: 'connecting', uuid: this.uuid };
39
29
  this.createBleGattBackend();
40
30
  this.startBleGattBackend();
41
31
  await this.waitForOnConnected();
@@ -46,7 +36,7 @@ export default class BleGattController {
46
36
  const { status, error } = this.ndx.discoverBleUuid({
47
37
  namePrefix: this.deviceNamePrefix,
48
38
  onDiscovered: (uuid) => {
49
- this.deviceUuid = uuid;
39
+ this.state = { status: 'disconnected', uuid };
50
40
  },
51
41
  });
52
42
  this.throwIfError(status, error);
@@ -55,7 +45,7 @@ export default class BleGattController {
55
45
  async waitForDiscoveredUuid() {
56
46
  await new Promise((resolve) => {
57
47
  const checkDiscovered = () => {
58
- if (this.deviceUuid) {
48
+ if (this.uuid) {
59
49
  resolve();
60
50
  }
61
51
  else {
@@ -92,19 +82,18 @@ export default class BleGattController {
92
82
  deviceUuid: this.uuid,
93
83
  onConnected: (peripheral) => {
94
84
  const { name } = peripheral;
95
- this.deviceName = name;
96
- this.connected = true;
85
+ this.state = { status: 'connected', uuid: this.uuid, name };
97
86
  this.log.info(`Connected to device ${this.uuid}!`);
98
87
  this.onConnected?.(peripheral);
99
88
  },
100
- charCallbacks: this.charCallbacks,
89
+ charCallbacks: [...this.charCallbacks],
101
90
  });
102
91
  this.throwIfError(status, error);
103
92
  }
104
93
  async waitForOnConnected() {
105
94
  await new Promise((resolve) => {
106
95
  const checkConnected = () => {
107
- if (this.connected) {
96
+ if (this.state.status === 'connected') {
108
97
  resolve();
109
98
  }
110
99
  else {
@@ -119,7 +108,7 @@ export default class BleGattController {
119
108
  }
120
109
  async writeCharacteristic(charUuid, value) {
121
110
  const { status, error } = this.ndx.writeBleGattChar({
122
- deviceUuid: this.uuid,
111
+ deviceUuid: this.requireUuid(),
123
112
  charUuid,
124
113
  value,
125
114
  });
@@ -127,27 +116,30 @@ export default class BleGattController {
127
116
  }
128
117
  async subscribeCharacteristics(charCallbacks) {
129
118
  const { status, error } = this.ndx.registerBleGattCharCallbacks({
130
- deviceUuid: this.uuid,
131
- charCallbacks,
119
+ deviceUuid: this.requireUuid(),
120
+ charCallbacks: [...charCallbacks],
132
121
  });
133
122
  this.throwIfError(status, error);
134
123
  this.charCallbacks = [...this.charCallbacks, ...charCallbacks];
135
124
  }
136
125
  async disconnect() {
137
126
  const { status, error } = this.ndx.stopBleGattBackend({
138
- deviceUuid: this.uuid,
127
+ deviceUuid: this.requireUuid(),
139
128
  });
140
129
  this.throwIfError(status, error);
141
- this.connected = false;
130
+ this.state = { status: 'disconnected', uuid: this.state.uuid };
142
131
  }
143
132
  get uuid() {
144
- return this.deviceUuid ?? '';
133
+ return this.state.uuid ?? '';
145
134
  }
146
135
  get name() {
147
- return this.deviceName ?? 'N/A';
136
+ return this.state.name ?? 'N/A';
148
137
  }
149
- get ndx() {
150
- return BleGattController.ndx;
138
+ requireUuid() {
139
+ if (!this.uuid) {
140
+ throw new Error('Device uuid is not resolved yet! Must either pass as option to Create or call connect() first.');
141
+ }
142
+ return this.uuid;
151
143
  }
152
144
  }
153
145
  //# sourceMappingURL=BleGattController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BleGattController.js","sourceRoot":"","sources":["../../../src/impl/controllers/BleGattController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BleGattController.js","sourceRoot":"","sources":["../../../src/impl/controllers/BleGattController.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,9 @@ export default class FakeBleGatt implements BleGatt {
10
10
  static numCallsToDisconnect: number;
11
11
  static fakeCharacteristics: Record<string, unknown>;
12
12
  static fakeName: string;
13
- private _uuid;
14
- private _name;
13
+ static fakeDiscoveredUuid: string;
14
+ private _uuid?;
15
+ private _name?;
15
16
  constructor(options?: BleGattOptions);
16
17
  connect(): Promise<void>;
17
18
  writeCharacteristic(characteristicUuid: string, value: string): Promise<void>;
@@ -7,16 +7,18 @@ export default class FakeBleGatt {
7
7
  static numCallsToDisconnect = 0;
8
8
  static fakeCharacteristics = {};
9
9
  static fakeName = `fake-${generateId()}`;
10
+ static fakeDiscoveredUuid = `fake-uuid-${generateId()}`;
10
11
  _uuid;
11
12
  _name;
12
13
  constructor(options) {
13
14
  const { deviceUuid } = options ?? {};
14
- this._uuid = deviceUuid ?? generateId();
15
- this._name = FakeBleGatt.fakeName;
15
+ this._uuid = deviceUuid;
16
16
  FakeBleGatt.callsToConstructor.push(options);
17
17
  }
18
18
  async connect() {
19
19
  FakeBleGatt.numCallsToConnect++;
20
+ this._uuid = this._uuid ?? FakeBleGatt.fakeDiscoveredUuid;
21
+ this._name = FakeBleGatt.fakeName;
20
22
  }
21
23
  async writeCharacteristic(characteristicUuid, value) {
22
24
  FakeBleGatt.callsToWriteCharacteristic.push({
@@ -31,10 +33,10 @@ export default class FakeBleGatt {
31
33
  FakeBleGatt.numCallsToDisconnect++;
32
34
  }
33
35
  get uuid() {
34
- return this._uuid;
36
+ return this._uuid ?? '';
35
37
  }
36
38
  get name() {
37
- return this._name;
39
+ return this._name ?? 'N/A';
38
40
  }
39
41
  static resetTestDouble() {
40
42
  this.callsToConstructor = [];
@@ -1 +1 @@
1
- {"version":3,"file":"FakeBleGatt.js","sourceRoot":"","sources":["../../../src/testDoubles/BleGatt/FakeBleGatt.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAO/C,MAAM,CAAC,OAAO,OAAO,WAAW;IACrB,MAAM,CAAC,kBAAkB,GAAmC,EAAE,CAAA;IAE9D,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,MAAM,CAAC,0BAA0B,GAGlC,EAAE,CAAA;IAED,MAAM,CAAC,+BAA+B,GACzC,EAAE,CAAA;IAEC,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAE/B,MAAM,CAAC,mBAAmB,GAA4B,EAAE,CAAA;IACxD,MAAM,CAAC,QAAQ,GAAG,QAAQ,UAAU,EAAE,EAAE,CAAA;IAEvC,KAAK,CAAQ;IACb,KAAK,CAAQ;IAErB,YAAmB,OAAwB;QACvC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QAEpC,IAAI,CAAC,KAAK,GAAG,UAAU,IAAI,UAAU,EAAE,CAAA;QACvC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAA;QAEjC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,WAAW,CAAC,iBAAiB,EAAE,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC5B,kBAA0B,EAC1B,KAAa;QAEb,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC;YACxC,kBAAkB;YAClB,KAAK;SACR,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,wBAAwB,CACjC,aAAsC;QAEtC,WAAW,CAAC,+BAA+B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACnE,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,WAAW,CAAC,oBAAoB,EAAE,CAAA;IACtC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;QAC1B,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAA;QACpC,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAA;QACzC,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAA;IACjC,CAAC"}
1
+ {"version":3,"file":"FakeBleGatt.js","sourceRoot":"","sources":["../../../src/testDoubles/BleGatt/FakeBleGatt.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAO/C,MAAM,CAAC,OAAO,OAAO,WAAW;IACrB,MAAM,CAAC,kBAAkB,GAAmC,EAAE,CAAA;IAE9D,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,MAAM,CAAC,0BAA0B,GAGlC,EAAE,CAAA;IAED,MAAM,CAAC,+BAA+B,GACzC,EAAE,CAAA;IAEC,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAE/B,MAAM,CAAC,mBAAmB,GAA4B,EAAE,CAAA;IACxD,MAAM,CAAC,QAAQ,GAAG,QAAQ,UAAU,EAAE,EAAE,CAAA;IACxC,MAAM,CAAC,kBAAkB,GAAG,aAAa,UAAU,EAAE,EAAE,CAAA;IAEtD,KAAK,CAAS;IACd,KAAK,CAAS;IAEtB,YAAmB,OAAwB;QACvC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QAEpC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAA;QAEvB,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,WAAW,CAAC,iBAAiB,EAAE,CAAA;QAE/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,kBAAkB,CAAA;QACzD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAA;IACrC,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC5B,kBAA0B,EAC1B,KAAa;QAEb,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC;YACxC,kBAAkB;YAClB,KAAK;SACR,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,wBAAwB,CACjC,aAAsC;QAEtC,WAAW,CAAC,+BAA+B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACnE,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,WAAW,CAAC,oBAAoB,EAAE,CAAA;IACtC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;IAC3B,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;QAC1B,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAA;QACpC,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAA;QACzC,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAA;IACjC,CAAC"}
@@ -6,7 +6,7 @@ export default class SpyBleGatt extends BleGattController {
6
6
  constructor(options: BleGattOptions);
7
7
  getCharacteristicCallbacks(): import("../../impl/controllers/BleGattController.js").CharacteristicCallbacks;
8
8
  getRssiIntervalMs(): number | undefined;
9
- getConnected(): boolean;
9
+ getState(): import("../../impl/controllers/BleGattController.js").BleGattState;
10
10
  setLogInfoSpy(): void;
11
11
  setLogWarnSpy(): void;
12
12
  setLogErrorSpy(): void;
@@ -12,8 +12,8 @@ export default class SpyBleGatt extends BleGattController {
12
12
  getRssiIntervalMs() {
13
13
  return this.rssiIntervalMs;
14
14
  }
15
- getConnected() {
16
- return this.connected;
15
+ getState() {
16
+ return this.state;
17
17
  }
18
18
  setLogInfoSpy() {
19
19
  this.infoLogs = [];