@dg-kit/protocol 1.7.1 → 1.8.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/dist/base.d.ts +2 -4
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +17 -76
- package/dist/base.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +10 -2
- package/dist/constants.js.map +1 -1
- package/dist/gatt-utils.d.ts +7 -0
- package/dist/gatt-utils.d.ts.map +1 -1
- package/dist/gatt-utils.js +12 -0
- package/dist/gatt-utils.js.map +1 -1
- package/dist/opossum.d.ts +65 -10
- package/dist/opossum.d.ts.map +1 -1
- package/dist/opossum.js +155 -45
- package/dist/opossum.js.map +1 -1
- package/dist/paw-prints.d.ts.map +1 -1
- package/dist/paw-prints.js +17 -0
- package/dist/paw-prints.js.map +1 -1
- package/dist/tick-loop.d.ts +28 -0
- package/dist/tick-loop.d.ts.map +1 -0
- package/dist/tick-loop.js +76 -0
- package/dist/tick-loop.js.map +1 -0
- package/dist/v2.d.ts.map +1 -1
- package/dist/v2.js +8 -0
- package/dist/v2.js.map +1 -1
- package/dist/wave-cursor.d.ts +35 -0
- package/dist/wave-cursor.d.ts.map +1 -0
- package/dist/wave-cursor.js +40 -0
- package/dist/wave-cursor.js.map +1 -0
- package/package.json +2 -2
package/dist/base.d.ts
CHANGED
|
@@ -64,9 +64,8 @@ export declare abstract class BaseCoyoteProtocolAdapter implements WebBluetoothP
|
|
|
64
64
|
protected readonly burstRestores: Map<Channel, number>;
|
|
65
65
|
protected state: DeviceState;
|
|
66
66
|
protected batteryChar: BluetoothRemoteGATTCharacteristicLike | null;
|
|
67
|
-
private
|
|
68
|
-
private
|
|
69
|
-
private tickInFlight;
|
|
67
|
+
private readonly tickLoop;
|
|
68
|
+
private readonly waveCursor;
|
|
70
69
|
protected tickPaused: boolean;
|
|
71
70
|
protected suppressStaleStopStrengthNotifications: boolean;
|
|
72
71
|
subscribe(listener: StateListener): () => void;
|
|
@@ -102,7 +101,6 @@ export declare abstract class BaseCoyoteProtocolAdapter implements WebBluetoothP
|
|
|
102
101
|
protected emit(): void;
|
|
103
102
|
private startTickLoop;
|
|
104
103
|
private stopTickLoop;
|
|
105
|
-
private createTickWorker;
|
|
106
104
|
protected abstract disconnectProtocol(): Promise<void>;
|
|
107
105
|
abstract onConnected(context: WebBluetoothConnectionContext): Promise<void>;
|
|
108
106
|
protected abstract resetProtocolState(): void;
|
package/dist/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
package/dist/base.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { createEmptyDeviceState, } from '@dg-kit/core';
|
|
2
|
-
import { writeCharacteristicValue as writeCharacteristicValueShared } from './gatt-utils.js';
|
|
2
|
+
import { clampNumber, writeCharacteristicValue as writeCharacteristicValueShared, } from './gatt-utils.js';
|
|
3
|
+
import { ProtocolTickLoop } from './tick-loop.js';
|
|
4
|
+
import { WaveCursor } from './wave-cursor.js';
|
|
3
5
|
export const INACTIVE_FREQ = [0, 0, 0, 0];
|
|
4
6
|
export const INACTIVE_INT = [0, 0, 0, 101];
|
|
5
7
|
export const SILENT_WAVE_STEP = { freq: 10, int: 0 };
|
|
@@ -12,9 +14,11 @@ export class BaseCoyoteProtocolAdapter {
|
|
|
12
14
|
burstRestores = new Map();
|
|
13
15
|
state = createEmptyDeviceState();
|
|
14
16
|
batteryChar = null;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
tickLoop = new ProtocolTickLoop();
|
|
18
|
+
waveCursor = new WaveCursor((frame) => ({
|
|
19
|
+
freq: this.clamp(frame[0], SILENT_WAVE_STEP.freq, 240),
|
|
20
|
+
int: this.clamp(frame[1], 0, 100),
|
|
21
|
+
}));
|
|
18
22
|
tickPaused = false;
|
|
19
23
|
suppressStaleStopStrengthNotifications = false;
|
|
20
24
|
subscribe(listener) {
|
|
@@ -189,14 +193,13 @@ export class BaseCoyoteProtocolAdapter {
|
|
|
189
193
|
}
|
|
190
194
|
}
|
|
191
195
|
async onTick() {
|
|
192
|
-
|
|
196
|
+
// Reentrancy (never overlap two in-flight ticks) is handled by
|
|
197
|
+
// `this.tickLoop` itself; this only needs the adapter-specific
|
|
198
|
+
// pause/connected gate.
|
|
199
|
+
if (this.tickPaused || !this.state.connected) {
|
|
193
200
|
return;
|
|
194
201
|
}
|
|
195
|
-
this.tickInFlight = true;
|
|
196
202
|
try {
|
|
197
|
-
if (this.tickPaused || !this.state.connected) {
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
203
|
await this.performTick();
|
|
201
204
|
if (!this.tickPaused) {
|
|
202
205
|
this.emit();
|
|
@@ -205,44 +208,12 @@ export class BaseCoyoteProtocolAdapter {
|
|
|
205
208
|
catch {
|
|
206
209
|
// GATT disconnected mid-tick; suppress and let disconnect handler clean up.
|
|
207
210
|
}
|
|
208
|
-
finally {
|
|
209
|
-
this.tickInFlight = false;
|
|
210
|
-
}
|
|
211
211
|
}
|
|
212
212
|
async waitForTickIdle() {
|
|
213
|
-
|
|
214
|
-
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
215
|
-
}
|
|
213
|
+
await this.tickLoop.waitForIdle();
|
|
216
214
|
}
|
|
217
215
|
advanceWaveStep(channel) {
|
|
218
|
-
|
|
219
|
-
if (!current.active || !current.frames || current.frames.length === 0) {
|
|
220
|
-
return null;
|
|
221
|
-
}
|
|
222
|
-
const length = current.frames.length;
|
|
223
|
-
if (current.index >= length) {
|
|
224
|
-
if (current.loop) {
|
|
225
|
-
current.index = 0;
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
current.active = false;
|
|
229
|
-
return null;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
const frame = current.frames[current.index];
|
|
233
|
-
if (!frame) {
|
|
234
|
-
current.active = false;
|
|
235
|
-
return null;
|
|
236
|
-
}
|
|
237
|
-
current.index += 1;
|
|
238
|
-
if (current.index >= length && !current.loop) {
|
|
239
|
-
current.active = false;
|
|
240
|
-
}
|
|
241
|
-
const [rawFreq, rawInt] = frame;
|
|
242
|
-
return {
|
|
243
|
-
freq: this.clamp(rawFreq, SILENT_WAVE_STEP.freq, 240),
|
|
244
|
-
int: this.clamp(rawInt, 0, 100),
|
|
245
|
-
};
|
|
216
|
+
return this.waveCursor.advanceStep(this.waveState[channel]);
|
|
246
217
|
}
|
|
247
218
|
advanceWavePacket(channel) {
|
|
248
219
|
const first = this.advanceWaveStep(channel);
|
|
@@ -264,10 +235,7 @@ export class BaseCoyoteProtocolAdapter {
|
|
|
264
235
|
};
|
|
265
236
|
}
|
|
266
237
|
clamp(value, min, max) {
|
|
267
|
-
|
|
268
|
-
if (!Number.isFinite(number))
|
|
269
|
-
return min;
|
|
270
|
-
return Math.max(min, Math.min(max, Math.round(number)));
|
|
238
|
+
return clampNumber(value, min, max);
|
|
271
239
|
}
|
|
272
240
|
toInt(value, fallback = 0) {
|
|
273
241
|
const number = typeof value === 'number' ? value : Number(value);
|
|
@@ -298,37 +266,10 @@ export class BaseCoyoteProtocolAdapter {
|
|
|
298
266
|
}
|
|
299
267
|
}
|
|
300
268
|
startTickLoop() {
|
|
301
|
-
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
try {
|
|
305
|
-
this.tickWorker = this.createTickWorker();
|
|
306
|
-
this.tickWorker.onmessage = () => {
|
|
307
|
-
void this.onTick();
|
|
308
|
-
};
|
|
309
|
-
this.tickWorker.postMessage('start');
|
|
310
|
-
}
|
|
311
|
-
catch {
|
|
312
|
-
this.tickInterval = setInterval(() => {
|
|
313
|
-
void this.onTick();
|
|
314
|
-
}, 100);
|
|
315
|
-
}
|
|
269
|
+
this.tickLoop.start(() => this.onTick());
|
|
316
270
|
}
|
|
317
271
|
stopTickLoop() {
|
|
318
|
-
|
|
319
|
-
this.tickWorker.postMessage('stop');
|
|
320
|
-
this.tickWorker.terminate();
|
|
321
|
-
this.tickWorker = null;
|
|
322
|
-
}
|
|
323
|
-
if (this.tickInterval) {
|
|
324
|
-
clearInterval(this.tickInterval);
|
|
325
|
-
this.tickInterval = null;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
createTickWorker() {
|
|
329
|
-
const code = 'let timer;onmessage=(event)=>{if(event.data==="start"){if(timer)return;timer=setInterval(()=>postMessage(1),100);}else{clearInterval(timer);timer=null;}};';
|
|
330
|
-
const blob = new Blob([code], { type: 'application/javascript' });
|
|
331
|
-
return new Worker(URL.createObjectURL(blob));
|
|
272
|
+
this.tickLoop.stop();
|
|
332
273
|
}
|
|
333
274
|
}
|
|
334
275
|
//# sourceMappingURL=base.js.map
|
package/dist/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare const V3_LEGACY_SERVICE = "0000ff0a-0000-1000-8000-00805f9b34fb";
|
|
|
23
23
|
export declare const V3_LEGACY_NOTIFY_CHAR = "0000ff00-0000-1000-8000-00805f9b34fb";
|
|
24
24
|
export declare const V3_NORDIC_OTA_SERVICE = "f000ffc0-0451-4000-b000-000000000000";
|
|
25
25
|
export declare const V3_NORDIC_OTA_CHAR = "f000ffc2-0451-4000-b000-000000000000";
|
|
26
|
-
export declare const V3_HANDSHAKE_MTU =
|
|
26
|
+
export declare const V3_HANDSHAKE_MTU = 144;
|
|
27
27
|
export declare const COYOTE_REQUEST_DEVICE_OPTIONS: RequestDeviceOptionsLike;
|
|
28
28
|
/**
|
|
29
29
|
* Scan filter covering every known 47L12x-family device plus the legacy V2
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,aAAa,yCAAyC,CAAC;AACpE,eAAO,MAAM,cAAc,yCAAyC,CAAC;AACrE,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,eAAe,yCAAyC,CAAC;AAOtE,eAAO,MAAM,6BAA6B,WAAwB,CAAC;AACnE,eAAO,MAAM,wBAAwB,WAAW,CAAC;AACjD,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAGnD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AACnD,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,KAAG,MAAoD,CAAC;AAC5F,eAAO,MAAM,kBAAkB,QAAiB,CAAC;AACjD,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAC/C,eAAO,MAAM,cAAc,QAAiB,CAAC;AAC7C,eAAO,MAAM,cAAc,QAAiB,CAAC;AAC7C,eAAO,MAAM,kBAAkB,QAAiB,CAAC;AACjD,eAAO,MAAM,eAAe,QAAiB,CAAC;AAU9C,eAAO,MAAM,cAAc,yBAAsE,CAAC;AAClG,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AACxE,eAAO,MAAM,qBAAqB,yCAAyC,CAAC;AAC5E,eAAO,MAAM,qBAAqB,yCAAyC,CAAC;AAC5E,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,aAAa,yCAAyC,CAAC;AACpE,eAAO,MAAM,cAAc,yCAAyC,CAAC;AACrE,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,eAAe,yCAAyC,CAAC;AAOtE,eAAO,MAAM,6BAA6B,WAAwB,CAAC;AACnE,eAAO,MAAM,wBAAwB,WAAW,CAAC;AACjD,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAGnD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AACnD,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,KAAG,MAAoD,CAAC;AAC5F,eAAO,MAAM,kBAAkB,QAAiB,CAAC;AACjD,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAC/C,eAAO,MAAM,cAAc,QAAiB,CAAC;AAC7C,eAAO,MAAM,cAAc,QAAiB,CAAC;AAC7C,eAAO,MAAM,kBAAkB,QAAiB,CAAC;AACjD,eAAO,MAAM,eAAe,QAAiB,CAAC;AAU9C,eAAO,MAAM,cAAc,yBAAsE,CAAC;AAClG,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AACxE,eAAO,MAAM,qBAAqB,yCAAyC,CAAC;AAC5E,eAAO,MAAM,qBAAqB,yCAAyC,CAAC;AAC5E,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AAIzE,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,eAAO,MAAM,6BAA6B,EAAE,wBAc3C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,wBAc3C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,UAAU,GAAG,SAAS,CASxF"}
|
package/dist/constants.js
CHANGED
|
@@ -36,7 +36,10 @@ export const V3_LEGACY_SERVICE = '0000ff0a-0000-1000-8000-00805f9b34fb';
|
|
|
36
36
|
export const V3_LEGACY_NOTIFY_CHAR = '0000ff00-0000-1000-8000-00805f9b34fb';
|
|
37
37
|
export const V3_NORDIC_OTA_SERVICE = 'f000ffc0-0451-4000-b000-000000000000';
|
|
38
38
|
export const V3_NORDIC_OTA_CHAR = 'f000ffc2-0451-4000-b000-000000000000';
|
|
39
|
-
|
|
39
|
+
// The opossum doc recommends 144 specifically (vs. the 140 this library
|
|
40
|
+
// previously used); harmless to apply to the whole 47L12x family since
|
|
41
|
+
// requestMTU is a best-effort negotiation, not a hard requirement.
|
|
42
|
+
export const V3_HANDSHAKE_MTU = 144;
|
|
40
43
|
export const COYOTE_REQUEST_DEVICE_OPTIONS = {
|
|
41
44
|
filters: [
|
|
42
45
|
{ namePrefix: V3_DEVICE_NAME_PREFIX },
|
|
@@ -66,7 +69,12 @@ export const DG_LAB_REQUEST_DEVICE_OPTIONS = {
|
|
|
66
69
|
{ namePrefix: OPOSSUM_DEVICE_NAME_PREFIX },
|
|
67
70
|
{ namePrefix: V2_DEVICE_NAME_PREFIX },
|
|
68
71
|
],
|
|
69
|
-
optionalServices: [
|
|
72
|
+
optionalServices: [
|
|
73
|
+
V3_PRIMARY_SERVICE,
|
|
74
|
+
V3_BATTERY_SERVICE,
|
|
75
|
+
V2_PRIMARY_SERVICE,
|
|
76
|
+
V2_BATTERY_SERVICE,
|
|
77
|
+
],
|
|
70
78
|
};
|
|
71
79
|
/**
|
|
72
80
|
* Identify which 47L12x-family device (or the legacy V2 unit) a scanned/
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,kBAAkB;AAClB,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AACzE,MAAM,CAAC,MAAM,aAAa,GAAG,sCAAsC,CAAC;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,sCAAsC,CAAC;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,sCAAsC,CAAC;AAEtE,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,uEAAuE;AACvE,2CAA2C;AAC3C,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AACnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAEnD,kBAAkB;AAClB,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,OAAO,KAAK,8BAA8B,CAAC;AAC5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAE9C,6DAA6D;AAC7D,yEAAyE;AACzE,4EAA4E;AAC5E,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClG,MAAM,CAAC,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,sCAAsC,CAAC;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,sCAAsC,CAAC;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,MAAM,CAAC,MAAM,6BAA6B,GAA6B;IACrE,OAAO,EAAE;QACP,EAAE,UAAU,EAAE,qBAAqB,EAAE;QACrC,EAAE,UAAU,EAAE,qBAAqB,EAAE;QACrC,EAAE,UAAU,EAAE,qBAAqB,EAAE;KACtC;IACD,gBAAgB,EAAE;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB;QACjB,qBAAqB;KACtB;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAA6B;IACrE,OAAO,EAAE;QACP,EAAE,UAAU,EAAE,qBAAqB,EAAE;QACrC,EAAE,UAAU,EAAE,6BAA6B,EAAE;QAC7C,EAAE,UAAU,EAAE,wBAAwB,EAAE;QACxC,EAAE,UAAU,EAAE,0BAA0B,EAAE;QAC1C,EAAE,UAAU,EAAE,qBAAqB,EAAE;KACtC;IACD,gBAAgB,EAAE;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;KACnB;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA+B;IAC9D,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/D,IAAI,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/D,IAAI,OAAO,CAAC,UAAU,CAAC,6BAA6B,CAAC;QAAE,OAAO,YAAY,CAAC;IAC3E,IAAI,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAAE,OAAO,cAAc,CAAC;IACxE,IAAI,OAAO,CAAC,UAAU,CAAC,0BAA0B,CAAC;QAAE,OAAO,SAAS,CAAC;IACrE,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/gatt-utils.d.ts
CHANGED
|
@@ -40,6 +40,13 @@ export declare function performV3FamilyConnectHandshake(server: BluetoothRemoteG
|
|
|
40
40
|
* color picker would otherwise reach the wire unclamped).
|
|
41
41
|
*/
|
|
42
42
|
export declare function clampIndicatorColor(color: number): number;
|
|
43
|
+
/**
|
|
44
|
+
* Generic clamp-to-integer-range, non-finite input falling back to `min`.
|
|
45
|
+
* Shared by `BaseCoyoteProtocolAdapter` and `OpossumVibrateAdapter` — both
|
|
46
|
+
* clamp raw strength/waveform bytes the identical way before they reach the
|
|
47
|
+
* wire.
|
|
48
|
+
*/
|
|
49
|
+
export declare function clampNumber(value: number, min: number, max: number): number;
|
|
43
50
|
export interface SensorGattConnection {
|
|
44
51
|
writeChar: BluetoothRemoteGATTCharacteristicLike;
|
|
45
52
|
notifyChar: BluetoothRemoteGATTCharacteristicLike;
|
package/dist/gatt-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gatt-utils.d.ts","sourceRoot":"","sources":["../src/gatt-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAc/D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"gatt-utils.d.ts","sourceRoot":"","sources":["../src/gatt-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAc/D,OAAO,KAAK,EACV,qCAAqC,EACrC,6BAA6B,EAC9B,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,qCAAqC,EACrD,KAAK,EAAE,eAAe,GAAG,WAAW,EACpC,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,6BAA6B,EACrC,SAAS,EAAE,qCAAqC,GAC/C,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,qCAAqC,CAAC;IACjD,UAAU,EAAE,qCAAqC,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,6BAA6B,EACtC,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GACrC,OAAO,CAAC,oBAAoB,CAAC,CA4B/B;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qCAAqC,GAAG,IAAI,EACxD,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GACrC,OAAO,CAAC,IAAI,CAAC,CAQf"}
|
package/dist/gatt-utils.js
CHANGED
|
@@ -96,6 +96,18 @@ export function clampIndicatorColor(color) {
|
|
|
96
96
|
return 0;
|
|
97
97
|
return Math.max(0, Math.min(7, Math.round(value)));
|
|
98
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Generic clamp-to-integer-range, non-finite input falling back to `min`.
|
|
101
|
+
* Shared by `BaseCoyoteProtocolAdapter` and `OpossumVibrateAdapter` — both
|
|
102
|
+
* clamp raw strength/waveform bytes the identical way before they reach the
|
|
103
|
+
* wire.
|
|
104
|
+
*/
|
|
105
|
+
export function clampNumber(value, min, max) {
|
|
106
|
+
const number = Number(value);
|
|
107
|
+
if (!Number.isFinite(number))
|
|
108
|
+
return min;
|
|
109
|
+
return Math.max(min, Math.min(max, Math.round(number)));
|
|
110
|
+
}
|
|
99
111
|
/**
|
|
100
112
|
* Shared connect sequence for the sensor-family adapters (paw-prints,
|
|
101
113
|
* civet-edging): open the shared 0x180C write/notify characteristics, wire
|
package/dist/gatt-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gatt-utils.js","sourceRoot":"","sources":["../src/gatt-utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,aAAa,GACd,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"gatt-utils.js","sourceRoot":"","sources":["../src/gatt-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/opossum.d.ts
CHANGED
|
@@ -20,11 +20,22 @@
|
|
|
20
20
|
* advertised BLE name is assumed to be just `47L127000`
|
|
21
21
|
* (`OPOSSUM_DEVICE_NAME_PREFIX`), not literally starting with "Opossum".
|
|
22
22
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
23
|
+
* ## Why intensity alone never made the motor spin (fixed here)
|
|
24
|
+
*
|
|
25
|
+
* The doc's B3 command only sets a *displayed* "channel strength" (0-200,
|
|
26
|
+
* same scale as Coyote's strength) — the actual motor drive comes from B0,
|
|
27
|
+
* a 20-byte packet carrying 4×25ms amplitude samples (0-100) per channel
|
|
28
|
+
* that **must be re-sent every 100ms** to keep vibrating; the moment the
|
|
29
|
+
* stream stops, so does the motor. `setIntensity`/`vibrate_start` used to
|
|
30
|
+
* write B3 once and never touch B0 at all — the device updated its
|
|
31
|
+
* strength *state* but the motor never actually received a waveform to
|
|
32
|
+
* play. This adapter now drives an internal 100ms `ProtocolTickLoop`
|
|
33
|
+
* (started/stopped by `setIntensity`/`adjustIntensity`/`emergencyStop`
|
|
34
|
+
* whenever either channel's intensity crosses 0) that streams `writeWaveformFrame()`
|
|
35
|
+
* itself — `vibrate_start`'s external contract (fire-and-forget, no caller
|
|
36
|
+
* tick loop) is unchanged, it just actually works now.
|
|
26
37
|
*/
|
|
27
|
-
import type { Channel } from '@dg-kit/core';
|
|
38
|
+
import type { Channel, OpossumVibrationPatternName } from '@dg-kit/core';
|
|
28
39
|
import type { WebBluetoothConnectionContext } from './base.js';
|
|
29
40
|
export interface OpossumState {
|
|
30
41
|
connected: boolean;
|
|
@@ -40,15 +51,31 @@ export interface OpossumButtonEvent {
|
|
|
40
51
|
sequence: number;
|
|
41
52
|
pressed: Set<OpossumButton>;
|
|
42
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Named vibration-rhythm envelopes, each element a 0-100 amplitude sample
|
|
56
|
+
* covering 25ms (so a 40-element pattern spans one second), looped forever
|
|
57
|
+
* while a channel is running. Each B0 tick's actual byte is this envelope
|
|
58
|
+
* value scaled by the channel's current intensity (0-200 → 0-100 ceiling),
|
|
59
|
+
* so `pattern` (rhythm/shape) and `intensity` (how strong) compose
|
|
60
|
+
* independently — switching pattern doesn't change perceived peak strength.
|
|
61
|
+
* Kept as named presets rather than letting the LLM submit an arbitrary
|
|
62
|
+
* array: an LLM-generated envelope has no guardrail against e.g. a rapid
|
|
63
|
+
* 0↔100 alternation that reads as "intense" in the abstract but is
|
|
64
|
+
* unpleasant/startling on real skin.
|
|
65
|
+
*/
|
|
66
|
+
export declare const OPOSSUM_VIBRATION_PATTERNS: Record<OpossumVibrationPatternName, readonly number[]>;
|
|
43
67
|
type OpossumStateListener = (state: OpossumState) => void;
|
|
44
68
|
type OpossumButtonListener = (event: OpossumButtonEvent) => void;
|
|
45
69
|
export declare class OpossumVibrateAdapter {
|
|
46
70
|
private state;
|
|
47
71
|
private writeChar;
|
|
48
72
|
private notifyChar;
|
|
49
|
-
private batteryChar;
|
|
50
73
|
private readonly stateListeners;
|
|
51
74
|
private readonly buttonListeners;
|
|
75
|
+
private readonly tickLoop;
|
|
76
|
+
private readonly patternCursor;
|
|
77
|
+
private readonly patterns;
|
|
78
|
+
private readonly patternState;
|
|
52
79
|
onConnected(context: WebBluetoothConnectionContext): Promise<void>;
|
|
53
80
|
onDisconnected(): Promise<void>;
|
|
54
81
|
getState(): OpossumState;
|
|
@@ -56,7 +83,9 @@ export declare class OpossumVibrateAdapter {
|
|
|
56
83
|
onStateChanged(listener: OpossumStateListener): () => void;
|
|
57
84
|
/**
|
|
58
85
|
* 0xB3 direct intensity: A/B in 0-200, or 'unchanged' to leave that
|
|
59
|
-
* channel as-is (mapped to the 0xFF sentinel byte).
|
|
86
|
+
* channel as-is (mapped to the 0xFF sentinel byte). Starts/stops the
|
|
87
|
+
* internal B0 tick loop so the motor actually follows — see the file
|
|
88
|
+
* doc comment for why that's necessary.
|
|
60
89
|
*/
|
|
61
90
|
setIntensity(channelA: number | 'unchanged', channelB: number | 'unchanged'): Promise<void>;
|
|
62
91
|
/**
|
|
@@ -69,12 +98,22 @@ export declare class OpossumVibrateAdapter {
|
|
|
69
98
|
* delta instead of compounding.
|
|
70
99
|
*/
|
|
71
100
|
adjustIntensity(channel: Channel, delta: number): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Sets which named rhythm envelope a channel's B0 stream follows (see
|
|
103
|
+
* `OPOSSUM_VIBRATION_PATTERNS`). If the channel is currently running
|
|
104
|
+
* (intensity > 0), the new pattern takes over from its own beginning on
|
|
105
|
+
* the next tick — changing rhythm restarts the phase rather than
|
|
106
|
+
* splicing into wherever the old pattern's cursor happened to be, so the
|
|
107
|
+
* new rhythm is predictable. Does not touch intensity.
|
|
108
|
+
*/
|
|
109
|
+
setVibrationPattern(channel: Channel, pattern: readonly number[]): void;
|
|
72
110
|
/**
|
|
73
111
|
* 0xB0 vibration waveform. This is a single packet builder/writer — the
|
|
74
|
-
* device expects it re-sent (~every 100ms)
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
112
|
+
* device expects it re-sent (~every 100ms) to sustain a waveform effect.
|
|
113
|
+
* `setIntensity`/`adjustIntensity`/`emergencyStop` already drive this
|
|
114
|
+
* automatically via an internal tick loop; call this directly only for
|
|
115
|
+
* advanced one-off frames, and never concurrently with a running channel
|
|
116
|
+
* (intensity > 0) or writes will interleave/race with the internal loop.
|
|
78
117
|
*/
|
|
79
118
|
writeWaveformFrame(channelA: [number, number, number, number], channelB: [number, number, number, number]): Promise<void>;
|
|
80
119
|
/** 0x50 LED color + button-state-reporting toggle. */
|
|
@@ -85,10 +124,26 @@ export declare class OpossumVibrateAdapter {
|
|
|
85
124
|
* enumerates exactly 21 fixed preamble bytes; 1 (opcode) + 21 + 2 (A/B)
|
|
86
125
|
* is actually 24. Trusting the literal, unambiguous byte enumeration over
|
|
87
126
|
* the (likely miscounted) total-length label.
|
|
127
|
+
*
|
|
128
|
+
* The doc states the on-device screen only updates when the host
|
|
129
|
+
* actively pushes this after a B3 change — `setIntensity()` and the B3
|
|
130
|
+
* notification handler both call this so the screen and our own state
|
|
131
|
+
* never drift apart regardless of which side initiated the change.
|
|
88
132
|
*/
|
|
89
133
|
updateDisplay(channelA: number, channelB: number): Promise<void>;
|
|
90
134
|
/** Best-effort safety call: drive both channels to zero, ignore failures. */
|
|
91
135
|
emergencyStop(): Promise<void>;
|
|
136
|
+
private applyIntensity;
|
|
137
|
+
private resetPatternCursor;
|
|
138
|
+
private buildQuad;
|
|
139
|
+
private performTick;
|
|
140
|
+
/**
|
|
141
|
+
* Starts the B0 tick loop the moment either channel has intensity > 0,
|
|
142
|
+
* stops it (and writes one final explicit all-zero B0 frame — the same
|
|
143
|
+
* "don't just cease ticking, say stop" principle as Coyote's
|
|
144
|
+
* `emergencyStop`) once both channels are back at 0.
|
|
145
|
+
*/
|
|
146
|
+
private syncTickLoop;
|
|
92
147
|
private readonly handleNotification;
|
|
93
148
|
private write;
|
|
94
149
|
private clamp;
|
package/dist/opossum.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opossum.d.ts","sourceRoot":"","sources":["../src/opossum.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"opossum.d.ts","sourceRoot":"","sources":["../src/opossum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAY/D,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,uBAAuB,IAAI,YAAY,CAEtD;AAED,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,OAAO,GACP,MAAM,GACN,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAC;AAER,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC7B;AAiBD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,2BAA2B,EAAE,SAAS,MAAM,EAAE,CAa7F,CAAC;AAEF,KAAK,oBAAoB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAC1D,KAAK,qBAAqB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAEjE,qBAAa,qBAAqB;IAChC,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,UAAU,CAAsD;IAExE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAClE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IAEpE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;IACF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAGvB;IACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IAEI,WAAW,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAmClE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAerC,QAAQ,IAAI,YAAY;IAIxB,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI;IAO7D,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAO1D;;;;;OAKG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,GAAG,WAAW,EAC9B,QAAQ,EAAE,MAAM,GAAG,WAAW,GAC7B,OAAO,CAAC,IAAI,CAAC;IAehB;;;;;;;;OAQG;IACG,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrE;;;;;;;OAOG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAQvE;;;;;;;OAOG;IACG,kBAAkB,CACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC1C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC;IAchB,sDAAsD;IAChD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1E;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IActE,6EAA6E;IACvE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,SAAS;YAiBH,WAAW;IAKzB;;;;;OAKG;YACW,YAAY;IAa1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA0BjC;YAEY,KAAK;IAOnB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,eAAe;CAKxB"}
|
package/dist/opossum.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { clampIndicatorColor, clampNumber, connectSensorGatt, disconnectSensorGatt, writeCharacteristicValue, } from './gatt-utils.js';
|
|
2
|
+
import { ProtocolTickLoop } from './tick-loop.js';
|
|
3
|
+
import { WaveCursor, createEmptyWaveCursorState } from './wave-cursor.js';
|
|
3
4
|
export function createEmptyOpossumState() {
|
|
4
5
|
return { connected: false, battery: 0, intensityA: 0, intensityB: 0 };
|
|
5
6
|
}
|
|
@@ -17,42 +18,68 @@ const BUTTON_BITS = [
|
|
|
17
18
|
['G', 14],
|
|
18
19
|
['D', 15],
|
|
19
20
|
];
|
|
21
|
+
/**
|
|
22
|
+
* Named vibration-rhythm envelopes, each element a 0-100 amplitude sample
|
|
23
|
+
* covering 25ms (so a 40-element pattern spans one second), looped forever
|
|
24
|
+
* while a channel is running. Each B0 tick's actual byte is this envelope
|
|
25
|
+
* value scaled by the channel's current intensity (0-200 → 0-100 ceiling),
|
|
26
|
+
* so `pattern` (rhythm/shape) and `intensity` (how strong) compose
|
|
27
|
+
* independently — switching pattern doesn't change perceived peak strength.
|
|
28
|
+
* Kept as named presets rather than letting the LLM submit an arbitrary
|
|
29
|
+
* array: an LLM-generated envelope has no guardrail against e.g. a rapid
|
|
30
|
+
* 0↔100 alternation that reads as "intense" in the abstract but is
|
|
31
|
+
* unpleasant/startling on real skin.
|
|
32
|
+
*/
|
|
33
|
+
export const OPOSSUM_VIBRATION_PATTERNS = {
|
|
34
|
+
constant: [100],
|
|
35
|
+
pulse: [...Array(20).fill(100), ...Array(20).fill(0)],
|
|
36
|
+
wave: Array.from({ length: 40 }, (_, i) => Math.round(50 + 50 * Math.sin((i / 40) * 2 * Math.PI))),
|
|
37
|
+
ramp: Array.from({ length: 40 }, (_, i) => Math.round(((i + 1) / 40) * 100)),
|
|
38
|
+
heartbeat: [
|
|
39
|
+
...Array(6).fill(100),
|
|
40
|
+
...Array(6).fill(0),
|
|
41
|
+
...Array(6).fill(80),
|
|
42
|
+
...Array(30).fill(0),
|
|
43
|
+
],
|
|
44
|
+
};
|
|
20
45
|
export class OpossumVibrateAdapter {
|
|
21
46
|
state = createEmptyOpossumState();
|
|
22
47
|
writeChar = null;
|
|
23
48
|
notifyChar = null;
|
|
24
|
-
batteryChar = null;
|
|
25
49
|
stateListeners = new Set();
|
|
26
50
|
buttonListeners = new Set();
|
|
51
|
+
tickLoop = new ProtocolTickLoop();
|
|
52
|
+
patternCursor = new WaveCursor((frame) => clampNumber(frame, 0, 100));
|
|
53
|
+
patterns = {
|
|
54
|
+
A: OPOSSUM_VIBRATION_PATTERNS.constant,
|
|
55
|
+
B: OPOSSUM_VIBRATION_PATTERNS.constant,
|
|
56
|
+
};
|
|
57
|
+
patternState = {
|
|
58
|
+
A: createEmptyWaveCursorState(),
|
|
59
|
+
B: createEmptyWaveCursorState(),
|
|
60
|
+
};
|
|
27
61
|
async onConnected(context) {
|
|
28
62
|
try {
|
|
29
|
-
const
|
|
30
|
-
this.writeChar =
|
|
31
|
-
this.notifyChar =
|
|
32
|
-
await this.notifyChar.startNotifications();
|
|
33
|
-
this.notifyChar.addEventListener('characteristicvaluechanged', this.handleNotification);
|
|
34
|
-
await performV3FamilyConnectHandshake(context.server, this.writeChar);
|
|
35
|
-
let battery = 0;
|
|
36
|
-
try {
|
|
37
|
-
const batteryService = await context.server.getPrimaryService(V3_BATTERY_SERVICE);
|
|
38
|
-
this.batteryChar = await batteryService.getCharacteristic(V3_BATTERY_CHAR);
|
|
39
|
-
const value = await this.batteryChar.readValue();
|
|
40
|
-
battery = value.getUint8(0);
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
// Best-effort: some units don't expose (or fail to read) battery.
|
|
44
|
-
this.batteryChar = null;
|
|
45
|
-
battery = 0;
|
|
46
|
-
}
|
|
63
|
+
const connection = await connectSensorGatt(context, this.handleNotification);
|
|
64
|
+
this.writeChar = connection.writeChar;
|
|
65
|
+
this.notifyChar = connection.notifyChar;
|
|
47
66
|
this.state = {
|
|
48
67
|
connected: true,
|
|
49
|
-
deviceName:
|
|
50
|
-
address:
|
|
51
|
-
battery,
|
|
68
|
+
deviceName: connection.deviceName,
|
|
69
|
+
address: connection.address,
|
|
70
|
+
battery: connection.battery,
|
|
52
71
|
intensityA: 0,
|
|
53
72
|
intensityB: 0,
|
|
54
73
|
};
|
|
74
|
+
this.patterns.A = OPOSSUM_VIBRATION_PATTERNS.constant;
|
|
75
|
+
this.patterns.B = OPOSSUM_VIBRATION_PATTERNS.constant;
|
|
76
|
+
this.patternState.A = createEmptyWaveCursorState();
|
|
77
|
+
this.patternState.B = createEmptyWaveCursorState();
|
|
55
78
|
this.emitState();
|
|
79
|
+
// Connect-time handshake writes an LED-color+button-reporting packet
|
|
80
|
+
// that defaults button reporting OFF — without this, D0 (button)
|
|
81
|
+
// notifications never arrive at all.
|
|
82
|
+
await this.setLed(0x01, true);
|
|
56
83
|
}
|
|
57
84
|
catch (error) {
|
|
58
85
|
// Tear down the same way onDisconnected() does — if startNotifications()
|
|
@@ -65,18 +92,15 @@ export class OpossumVibrateAdapter {
|
|
|
65
92
|
}
|
|
66
93
|
}
|
|
67
94
|
async onDisconnected() {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
await this.notifyChar.stopNotifications();
|
|
72
|
-
}
|
|
73
|
-
catch {
|
|
74
|
-
// ignore best effort
|
|
75
|
-
}
|
|
76
|
-
}
|
|
95
|
+
this.tickLoop.stop();
|
|
96
|
+
await this.tickLoop.waitForIdle();
|
|
97
|
+
await disconnectSensorGatt(this.notifyChar, this.handleNotification);
|
|
77
98
|
this.writeChar = null;
|
|
78
99
|
this.notifyChar = null;
|
|
79
|
-
this.
|
|
100
|
+
this.patterns.A = OPOSSUM_VIBRATION_PATTERNS.constant;
|
|
101
|
+
this.patterns.B = OPOSSUM_VIBRATION_PATTERNS.constant;
|
|
102
|
+
this.patternState.A = createEmptyWaveCursorState();
|
|
103
|
+
this.patternState.B = createEmptyWaveCursorState();
|
|
80
104
|
this.state = createEmptyOpossumState();
|
|
81
105
|
this.emitState();
|
|
82
106
|
}
|
|
@@ -97,7 +121,9 @@ export class OpossumVibrateAdapter {
|
|
|
97
121
|
}
|
|
98
122
|
/**
|
|
99
123
|
* 0xB3 direct intensity: A/B in 0-200, or 'unchanged' to leave that
|
|
100
|
-
* channel as-is (mapped to the 0xFF sentinel byte).
|
|
124
|
+
* channel as-is (mapped to the 0xFF sentinel byte). Starts/stops the
|
|
125
|
+
* internal B0 tick loop so the motor actually follows — see the file
|
|
126
|
+
* doc comment for why that's necessary.
|
|
101
127
|
*/
|
|
102
128
|
async setIntensity(channelA, channelB) {
|
|
103
129
|
const byteA = channelA === 'unchanged' ? 0xff : this.clamp(channelA, 0, 200);
|
|
@@ -105,10 +131,12 @@ export class OpossumVibrateAdapter {
|
|
|
105
131
|
const packet = new Uint8Array([0xb3, byteA, byteB]);
|
|
106
132
|
await this.write(packet);
|
|
107
133
|
if (channelA !== 'unchanged')
|
|
108
|
-
this.
|
|
134
|
+
this.applyIntensity('A', byteA);
|
|
109
135
|
if (channelB !== 'unchanged')
|
|
110
|
-
this.
|
|
136
|
+
this.applyIntensity('B', byteB);
|
|
111
137
|
this.emitState();
|
|
138
|
+
await this.syncTickLoop();
|
|
139
|
+
await this.updateDisplay(this.state.intensityA, this.state.intensityB).catch(() => undefined);
|
|
112
140
|
}
|
|
113
141
|
/**
|
|
114
142
|
* Relative adjust for one channel, e.g. for a `vibrate_adjust` tool call.
|
|
@@ -129,12 +157,28 @@ export class OpossumVibrateAdapter {
|
|
|
129
157
|
await this.setIntensity('unchanged', next);
|
|
130
158
|
}
|
|
131
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Sets which named rhythm envelope a channel's B0 stream follows (see
|
|
162
|
+
* `OPOSSUM_VIBRATION_PATTERNS`). If the channel is currently running
|
|
163
|
+
* (intensity > 0), the new pattern takes over from its own beginning on
|
|
164
|
+
* the next tick — changing rhythm restarts the phase rather than
|
|
165
|
+
* splicing into wherever the old pattern's cursor happened to be, so the
|
|
166
|
+
* new rhythm is predictable. Does not touch intensity.
|
|
167
|
+
*/
|
|
168
|
+
setVibrationPattern(channel, pattern) {
|
|
169
|
+
this.patterns[channel] = pattern.length > 0 ? pattern : OPOSSUM_VIBRATION_PATTERNS.constant;
|
|
170
|
+
const running = (channel === 'A' ? this.state.intensityA : this.state.intensityB) > 0;
|
|
171
|
+
if (running) {
|
|
172
|
+
this.resetPatternCursor(channel);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
132
175
|
/**
|
|
133
176
|
* 0xB0 vibration waveform. This is a single packet builder/writer — the
|
|
134
|
-
* device expects it re-sent (~every 100ms)
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
177
|
+
* device expects it re-sent (~every 100ms) to sustain a waveform effect.
|
|
178
|
+
* `setIntensity`/`adjustIntensity`/`emergencyStop` already drive this
|
|
179
|
+
* automatically via an internal tick loop; call this directly only for
|
|
180
|
+
* advanced one-off frames, and never concurrently with a running channel
|
|
181
|
+
* (intensity > 0) or writes will interleave/race with the internal loop.
|
|
138
182
|
*/
|
|
139
183
|
async writeWaveformFrame(channelA, channelB) {
|
|
140
184
|
const packet = new Uint8Array(20);
|
|
@@ -164,6 +208,11 @@ export class OpossumVibrateAdapter {
|
|
|
164
208
|
* enumerates exactly 21 fixed preamble bytes; 1 (opcode) + 21 + 2 (A/B)
|
|
165
209
|
* is actually 24. Trusting the literal, unambiguous byte enumeration over
|
|
166
210
|
* the (likely miscounted) total-length label.
|
|
211
|
+
*
|
|
212
|
+
* The doc states the on-device screen only updates when the host
|
|
213
|
+
* actively pushes this after a B3 change — `setIntensity()` and the B3
|
|
214
|
+
* notification handler both call this so the screen and our own state
|
|
215
|
+
* never drift apart regardless of which side initiated the change.
|
|
167
216
|
*/
|
|
168
217
|
async updateDisplay(channelA, channelB) {
|
|
169
218
|
const preamble = [
|
|
@@ -187,6 +236,68 @@ export class OpossumVibrateAdapter {
|
|
|
187
236
|
// ignore best effort
|
|
188
237
|
}
|
|
189
238
|
}
|
|
239
|
+
applyIntensity(channel, next) {
|
|
240
|
+
const wasStopped = (channel === 'A' ? this.state.intensityA : this.state.intensityB) <= 0;
|
|
241
|
+
if (channel === 'A') {
|
|
242
|
+
this.state.intensityA = next;
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
this.state.intensityB = next;
|
|
246
|
+
}
|
|
247
|
+
// Only a genuine stopped→running transition restarts the pattern phase
|
|
248
|
+
// — an adjustIntensity() call while already running must not stutter
|
|
249
|
+
// the rhythm back to its start on every small step.
|
|
250
|
+
if (wasStopped && next > 0) {
|
|
251
|
+
this.resetPatternCursor(channel);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
resetPatternCursor(channel) {
|
|
255
|
+
this.patternState[channel] = {
|
|
256
|
+
frames: [...this.patterns[channel]],
|
|
257
|
+
index: 0,
|
|
258
|
+
loop: true,
|
|
259
|
+
active: true,
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
buildQuad(channel) {
|
|
263
|
+
const intensity = channel === 'A' ? this.state.intensityA : this.state.intensityB;
|
|
264
|
+
if (intensity <= 0)
|
|
265
|
+
return [0, 0, 0, 0];
|
|
266
|
+
// Intensity (0-200, same scale as Coyote strength) becomes the B0
|
|
267
|
+
// ceiling (0-100); the pattern's 0-100 envelope value is a percentage
|
|
268
|
+
// of that ceiling, so pattern and intensity compose independently.
|
|
269
|
+
const ceiling = intensity / 2;
|
|
270
|
+
const state = this.patternState[channel];
|
|
271
|
+
const quad = [];
|
|
272
|
+
for (let i = 0; i < 4; i++) {
|
|
273
|
+
const envelope = this.patternCursor.advanceStep(state) ?? 0;
|
|
274
|
+
quad.push(clampNumber((envelope / 100) * ceiling, 0, 100));
|
|
275
|
+
}
|
|
276
|
+
return quad;
|
|
277
|
+
}
|
|
278
|
+
async performTick() {
|
|
279
|
+
if (!this.writeChar)
|
|
280
|
+
return;
|
|
281
|
+
await this.writeWaveformFrame(this.buildQuad('A'), this.buildQuad('B'));
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Starts the B0 tick loop the moment either channel has intensity > 0,
|
|
285
|
+
* stops it (and writes one final explicit all-zero B0 frame — the same
|
|
286
|
+
* "don't just cease ticking, say stop" principle as Coyote's
|
|
287
|
+
* `emergencyStop`) once both channels are back at 0.
|
|
288
|
+
*/
|
|
289
|
+
async syncTickLoop() {
|
|
290
|
+
const shouldRun = this.state.intensityA > 0 || this.state.intensityB > 0;
|
|
291
|
+
if (shouldRun) {
|
|
292
|
+
this.tickLoop.start(() => this.performTick());
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
this.tickLoop.stop();
|
|
296
|
+
await this.tickLoop.waitForIdle();
|
|
297
|
+
if (this.writeChar) {
|
|
298
|
+
await this.writeWaveformFrame([0, 0, 0, 0], [0, 0, 0, 0]).catch(() => undefined);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
190
301
|
handleNotification = (event) => {
|
|
191
302
|
const target = event.target;
|
|
192
303
|
const value = target?.value;
|
|
@@ -197,6 +308,8 @@ export class OpossumVibrateAdapter {
|
|
|
197
308
|
this.state.intensityA = value.getUint8(1);
|
|
198
309
|
this.state.intensityB = value.getUint8(2);
|
|
199
310
|
this.emitState();
|
|
311
|
+
void this.syncTickLoop();
|
|
312
|
+
void this.updateDisplay(this.state.intensityA, this.state.intensityB).catch(() => undefined);
|
|
200
313
|
return;
|
|
201
314
|
}
|
|
202
315
|
if (opcode === 0xd0 && value.byteLength >= 4) {
|
|
@@ -218,10 +331,7 @@ export class OpossumVibrateAdapter {
|
|
|
218
331
|
await writeCharacteristicValue(this.writeChar, packet);
|
|
219
332
|
}
|
|
220
333
|
clamp(value, min, max) {
|
|
221
|
-
|
|
222
|
-
if (!Number.isFinite(number))
|
|
223
|
-
return min;
|
|
224
|
-
return Math.max(min, Math.min(max, Math.round(number)));
|
|
334
|
+
return clampNumber(value, min, max);
|
|
225
335
|
}
|
|
226
336
|
emitState() {
|
|
227
337
|
const snapshot = this.getState();
|
package/dist/opossum.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opossum.js","sourceRoot":"","sources":["../src/opossum.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opossum.js","sourceRoot":"","sources":["../src/opossum.ts"],"names":[],"mappings":"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"}
|
package/dist/paw-prints.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paw-prints.d.ts","sourceRoot":"","sources":["../src/paw-prints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAS1F,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3D;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAC3E,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAiBlE,qBAAa,sBAAuB,YAAW,yBAAyB,CAAC,gBAAgB,CAAC;IACxF,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,UAAU,CAAsD;IAExE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IACxE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IAE9D,WAAW,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"paw-prints.d.ts","sourceRoot":"","sources":["../src/paw-prints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAS1F,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3D;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAC3E,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAiBlE,qBAAa,sBAAuB,YAAW,yBAAyB,CAAC,gBAAgB,CAAC;IACxF,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,UAAU,CAAsD;IAExE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IACxE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IAE9D,WAAW,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAyClE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,QAAQ,IAAI,WAAW;IAIvB,SAAS,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAOzD,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,IAAI;IAO5D;;;;OAIG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjF,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAWjE,eAAe;IAmB7B,OAAO,CAAC,SAAS;YAOH,YAAY;IAO1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAoBjC;IAEF,OAAO,CAAC,YAAY;CA8ErB"}
|
package/dist/paw-prints.js
CHANGED
|
@@ -56,6 +56,15 @@ export class PawPrintsSensorAdapter {
|
|
|
56
56
|
battery: connection.battery,
|
|
57
57
|
};
|
|
58
58
|
this.emitState();
|
|
59
|
+
// The doc requires this write immediately after connecting ("建议先设置
|
|
60
|
+
// 无任何触发模式") — without it the device may proactively drop the BLE
|
|
61
|
+
// connection on its own. Deliberately not best-effort like the V3
|
|
62
|
+
// handshake steps: if this fails, the connection genuinely isn't in
|
|
63
|
+
// the state the device requires, so surfacing the failure (rolling
|
|
64
|
+
// back via the catch block below, like any other step here) is more
|
|
65
|
+
// honest than reporting a successful connection the device is about
|
|
66
|
+
// to drop anyway.
|
|
67
|
+
await this.configureTrigger(0x00, 0x01);
|
|
59
68
|
}
|
|
60
69
|
catch (error) {
|
|
61
70
|
await this.resetConnection(false);
|
|
@@ -142,6 +151,14 @@ export class PawPrintsSensorAdapter {
|
|
|
142
151
|
const reading = this.parseReading(value);
|
|
143
152
|
if (!reading)
|
|
144
153
|
return;
|
|
154
|
+
// The device has no dedicated battery service (0x180A read at connect
|
|
155
|
+
// time is best-effort and often unavailable) — 0x51 status messages are
|
|
156
|
+
// the actual ongoing battery source, so fold them into state here or the
|
|
157
|
+
// UI's battery reading stays frozen at whatever connect-time guessed.
|
|
158
|
+
if (reading.type === 'status') {
|
|
159
|
+
this.state = { ...this.state, battery: reading.battery };
|
|
160
|
+
this.emitState();
|
|
161
|
+
}
|
|
145
162
|
for (const listener of this.readingListeners) {
|
|
146
163
|
listener(reading);
|
|
147
164
|
}
|
package/dist/paw-prints.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paw-prints.js","sourceRoot":"","sources":["../src/paw-prints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,sBAAsB,EAAoB,MAAM,cAAc,CAAC;AAExE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AA4BzB,4BAA4B;AAC5B,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,gCAAgC;AAChC,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,MAAM,OAAO,sBAAsB;IACzB,KAAK,GAAgB,sBAAsB,EAAE,CAAC;IAC9C,SAAS,GAAiD,IAAI,CAAC;IAC/D,UAAU,GAAiD,IAAI,CAAC;IAEvD,gBAAgB,GAAG,IAAI,GAAG,EAA4B,CAAC;IACvD,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEpE,KAAK,CAAC,WAAW,CAAC,OAAsC;QACtD,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAElC,sEAAsE;QACtE,oEAAoE;QACpE,wEAAwE;QACxE,mEAAmE;QACnE,+BAA+B;QAC/B,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,sBAAsB,EAAE;YAC3B,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;YACrC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE;SACjC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7E,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG;gBACX,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;aAC5B,CAAC;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"paw-prints.js","sourceRoot":"","sources":["../src/paw-prints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared 100ms tick-loop primitive: runs `callback` roughly every 100ms via
|
|
3
|
+
* a Web Worker timer (immune to a backgrounded tab's `setInterval`
|
|
4
|
+
* throttling) with a plain `setInterval` fallback when Workers aren't
|
|
5
|
+
* available (e.g. some Tauri WebViews, or `new Blob()`/`URL.createObjectURL`
|
|
6
|
+
* unsupported). Guarantees no re-entrant overlap: if `callback` is still
|
|
7
|
+
* running when the next tick fires, that tick is skipped rather than
|
|
8
|
+
* queued or run concurrently.
|
|
9
|
+
*
|
|
10
|
+
* Extracted from `BaseCoyoteProtocolAdapter` (the mechanism was originally
|
|
11
|
+
* inline there) so `OpossumVibrateAdapter`'s vibration-pattern tick can
|
|
12
|
+
* reuse the identical Worker/fallback/reentrancy behavior — both device
|
|
13
|
+
* families need the exact same "keep streaming a B0-shaped packet every
|
|
14
|
+
* 100ms, survive backgrounding, never overlap writes" guarantee.
|
|
15
|
+
*/
|
|
16
|
+
export declare class ProtocolTickLoop {
|
|
17
|
+
private worker;
|
|
18
|
+
private interval;
|
|
19
|
+
private inFlight;
|
|
20
|
+
/** No-op if already running (matches the pre-extraction behavior). */
|
|
21
|
+
start(callback: () => Promise<void>): void;
|
|
22
|
+
stop(): void;
|
|
23
|
+
/** Resolves once any in-flight `callback` invocation has finished. */
|
|
24
|
+
waitForIdle(): Promise<void>;
|
|
25
|
+
private runOnce;
|
|
26
|
+
private createWorker;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=tick-loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tick-loop.d.ts","sourceRoot":"","sources":["../src/tick-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,QAAQ,CAAS;IAEzB,sEAAsE;IACtE,KAAK,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAkB1C,IAAI,IAAI,IAAI;IAYZ,sEAAsE;IAChE,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;YAMpB,OAAO;IAcrB,OAAO,CAAC,YAAY;CAMrB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared 100ms tick-loop primitive: runs `callback` roughly every 100ms via
|
|
3
|
+
* a Web Worker timer (immune to a backgrounded tab's `setInterval`
|
|
4
|
+
* throttling) with a plain `setInterval` fallback when Workers aren't
|
|
5
|
+
* available (e.g. some Tauri WebViews, or `new Blob()`/`URL.createObjectURL`
|
|
6
|
+
* unsupported). Guarantees no re-entrant overlap: if `callback` is still
|
|
7
|
+
* running when the next tick fires, that tick is skipped rather than
|
|
8
|
+
* queued or run concurrently.
|
|
9
|
+
*
|
|
10
|
+
* Extracted from `BaseCoyoteProtocolAdapter` (the mechanism was originally
|
|
11
|
+
* inline there) so `OpossumVibrateAdapter`'s vibration-pattern tick can
|
|
12
|
+
* reuse the identical Worker/fallback/reentrancy behavior — both device
|
|
13
|
+
* families need the exact same "keep streaming a B0-shaped packet every
|
|
14
|
+
* 100ms, survive backgrounding, never overlap writes" guarantee.
|
|
15
|
+
*/
|
|
16
|
+
export class ProtocolTickLoop {
|
|
17
|
+
worker = null;
|
|
18
|
+
interval = null;
|
|
19
|
+
inFlight = false;
|
|
20
|
+
/** No-op if already running (matches the pre-extraction behavior). */
|
|
21
|
+
start(callback) {
|
|
22
|
+
if (this.worker || this.interval) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const fire = () => {
|
|
26
|
+
void this.runOnce(callback);
|
|
27
|
+
};
|
|
28
|
+
try {
|
|
29
|
+
this.worker = this.createWorker();
|
|
30
|
+
this.worker.onmessage = fire;
|
|
31
|
+
this.worker.postMessage('start');
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
this.interval = setInterval(fire, 100);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
stop() {
|
|
38
|
+
if (this.worker) {
|
|
39
|
+
this.worker.postMessage('stop');
|
|
40
|
+
this.worker.terminate();
|
|
41
|
+
this.worker = null;
|
|
42
|
+
}
|
|
43
|
+
if (this.interval) {
|
|
44
|
+
clearInterval(this.interval);
|
|
45
|
+
this.interval = null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Resolves once any in-flight `callback` invocation has finished. */
|
|
49
|
+
async waitForIdle() {
|
|
50
|
+
while (this.inFlight) {
|
|
51
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async runOnce(callback) {
|
|
55
|
+
if (this.inFlight)
|
|
56
|
+
return;
|
|
57
|
+
this.inFlight = true;
|
|
58
|
+
try {
|
|
59
|
+
await callback();
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// A thrown callback error must not kill the loop — the next tick
|
|
63
|
+
// should still fire. Callers are expected to handle/log their own
|
|
64
|
+
// per-tick failures (e.g. a disconnected GATT write).
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
this.inFlight = false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
createWorker() {
|
|
71
|
+
const code = 'let timer;onmessage=(event)=>{if(event.data==="start"){if(timer)return;timer=setInterval(()=>postMessage(1),100);}else{clearInterval(timer);timer=null;}};';
|
|
72
|
+
const blob = new Blob([code], { type: 'application/javascript' });
|
|
73
|
+
return new Worker(URL.createObjectURL(blob));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=tick-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tick-loop.js","sourceRoot":"","sources":["../src/tick-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,gBAAgB;IACnB,MAAM,GAAkB,IAAI,CAAC;IAC7B,QAAQ,GAA0C,IAAI,CAAC;IACvD,QAAQ,GAAG,KAAK,CAAC;IAEzB,sEAAsE;IACtE,KAAK,CAAC,QAA6B;QACjC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,QAA6B;QACjD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;YACjE,kEAAkE;YAClE,sDAAsD;QACxD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,MAAM,IAAI,GACR,4JAA4J,CAAC;QAC/J,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAClE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
package/dist/v2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../src/v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAS5C,OAAO,EAAE,yBAAyB,EAAE,KAAK,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,YAAY,CAAC;AAExE,qBAAa,uBAAwB,SAAQ,yBAAyB;IACpE,SAAS,CAAC,cAAc,EAAE,qCAAqC,GAAG,IAAI,CAAQ;IAC9E,SAAS,CAAC,WAAW,EAAE,qCAAqC,GAAG,IAAI,CAAQ;IAC3E,SAAS,CAAC,WAAW,EAAE,qCAAqC,GAAG,IAAI,CAAQ;IAC3E,SAAS,CAAC,WAAW,SAAK;IAC1B,SAAS,CAAC,WAAW,SAAK;IAEpB,WAAW,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;cA8CxD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBnD,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAMpC,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAKzC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAWpE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;cAQ/C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;cAgD5B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;cAMpC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../src/v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAS5C,OAAO,EAAE,yBAAyB,EAAE,KAAK,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,YAAY,CAAC;AAExE,qBAAa,uBAAwB,SAAQ,yBAAyB;IACpE,SAAS,CAAC,cAAc,EAAE,qCAAqC,GAAG,IAAI,CAAQ;IAC9E,SAAS,CAAC,WAAW,EAAE,qCAAqC,GAAG,IAAI,CAAQ;IAC3E,SAAS,CAAC,WAAW,EAAE,qCAAqC,GAAG,IAAI,CAAQ;IAC3E,SAAS,CAAC,WAAW,SAAK;IAC1B,SAAS,CAAC,WAAW,SAAK;IAEpB,WAAW,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;cA8CxD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBnD,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAMpC,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAKzC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAWpE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;cAQ/C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;cAgD5B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;cAMpC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBzD,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,aAAa;IAUrB,QAAQ,CAAC,4BAA4B,GAAI,OAAO,KAAK,KAAG,IAAI,CAkB1D;CACH"}
|
package/dist/v2.js
CHANGED
|
@@ -138,6 +138,14 @@ export class CoyoteV2ProtocolAdapter extends BaseCoyoteProtocolAdapter {
|
|
|
138
138
|
// ignore best effort
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
+
// NOTE (unverified, do not "fix" without a real V2 device): the V3 doc's
|
|
142
|
+
// own migration note says "与 V2 协议不同的是,数据无需进行大小端转换"
|
|
143
|
+
// ("unlike V2, this data needs no endian conversion"), implying V2's
|
|
144
|
+
// 3-byte packed values are expected little-endian on the wire. Both
|
|
145
|
+
// encoders below emit big-endian (most-significant byte first). This is
|
|
146
|
+
// long-standing, presumably-working behavior with no V2 hardware
|
|
147
|
+
// available this session to confirm either reading against — flagged
|
|
148
|
+
// here rather than changed.
|
|
141
149
|
encodeV2Strength(a, b) {
|
|
142
150
|
const valueA = Math.round((this.clamp(a, 0, 200) * 2047) / 200);
|
|
143
151
|
const valueB = Math.round((this.clamp(b, 0, 200) * 2047) / 200);
|
package/dist/v2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2.js","sourceRoot":"","sources":["../src/v2.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"v2.js","sourceRoot":"","sources":["../src/v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared per-channel frame-queue stepping mechanics: index/loop/deactivate
|
|
3
|
+
* bookkeeping for a queue that gets consumed one 25ms slot at a time.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from `BaseCoyoteProtocolAdapter.advanceWaveStep` (the logic was
|
|
6
|
+
* originally inline there, operating directly on `ChannelWaveState`) so
|
|
7
|
+
* `OpossumVibrateAdapter`'s vibration-pattern cursor can reuse the identical
|
|
8
|
+
* indexing/looping/deactivation mechanics — both device families step a
|
|
9
|
+
* per-channel frame queue at the same 25ms grid, they just clamp/transform
|
|
10
|
+
* each raw frame differently (Coyote: `[freq,int]` tuple → clamped
|
|
11
|
+
* `WaveStep`; Opossum: a plain 0-100 number, transform is just clamping).
|
|
12
|
+
*
|
|
13
|
+
* Deliberately does NOT own quad-assembly (bundling 4 steps into one 100ms
|
|
14
|
+
* B0 write) — Coyote's `advanceWavePacket` has protocol-specific "channel
|
|
15
|
+
* disable" sentinel behavior on a short/empty queue that doesn't generalize,
|
|
16
|
+
* so quad-assembly stays in each caller.
|
|
17
|
+
*/
|
|
18
|
+
export interface WaveCursorState<TFrame> {
|
|
19
|
+
frames: TFrame[] | null;
|
|
20
|
+
index: number;
|
|
21
|
+
loop: boolean;
|
|
22
|
+
active: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare function createEmptyWaveCursorState<TFrame>(): WaveCursorState<TFrame>;
|
|
25
|
+
export declare class WaveCursor<TFrame, TStep = TFrame> {
|
|
26
|
+
private readonly transform;
|
|
27
|
+
constructor(transform: (frame: TFrame) => TStep);
|
|
28
|
+
/**
|
|
29
|
+
* Returns the current frame (transformed) and advances the index, or
|
|
30
|
+
* `null` once the queue is exhausted (marking `state.active = false` for
|
|
31
|
+
* a non-looping queue, or immediately for an empty/inactive one).
|
|
32
|
+
*/
|
|
33
|
+
advanceStep(state: WaveCursorState<TFrame>): TStep | null;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=wave-cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wave-cursor.d.ts","sourceRoot":"","sources":["../src/wave-cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,eAAe,CAAC,MAAM;IACrC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,0BAA0B,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,CAAC,CAE5E;AAED,qBAAa,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK;IAEhE;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI;CA4B1D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export function createEmptyWaveCursorState() {
|
|
2
|
+
return { frames: null, index: 0, loop: false, active: false };
|
|
3
|
+
}
|
|
4
|
+
export class WaveCursor {
|
|
5
|
+
transform;
|
|
6
|
+
constructor(transform) {
|
|
7
|
+
this.transform = transform;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Returns the current frame (transformed) and advances the index, or
|
|
11
|
+
* `null` once the queue is exhausted (marking `state.active = false` for
|
|
12
|
+
* a non-looping queue, or immediately for an empty/inactive one).
|
|
13
|
+
*/
|
|
14
|
+
advanceStep(state) {
|
|
15
|
+
if (!state.active || !state.frames || state.frames.length === 0) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const length = state.frames.length;
|
|
19
|
+
if (state.index >= length) {
|
|
20
|
+
if (state.loop) {
|
|
21
|
+
state.index = 0;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
state.active = false;
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const frame = state.frames[state.index];
|
|
29
|
+
if (!frame) {
|
|
30
|
+
state.active = false;
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
state.index += 1;
|
|
34
|
+
if (state.index >= length && !state.loop) {
|
|
35
|
+
state.active = false;
|
|
36
|
+
}
|
|
37
|
+
return this.transform(frame);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=wave-cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wave-cursor.js","sourceRoot":"","sources":["../src/wave-cursor.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,0BAA0B;IACxC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,SAAmC;QAAnC,cAAS,GAAT,SAAS,CAA0B;IAAG,CAAC;IAEpE;;;;OAIG;IACH,WAAW,CAAC,KAA8B;QACxC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBACrB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACjB,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACzC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dg-kit/protocol",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "DG-Lab Coyote V2 / V3 BLE protocol adapters (transport-agnostic)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "0xNullAI",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"access": "public"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@dg-kit/core": "1.
|
|
30
|
+
"@dg-kit/core": "1.8.0"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
33
|
"build": "tsc -p tsconfig.json",
|