@depz/sensor-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -0
- package/dist/dataset.d.ts +93 -0
- package/dist/dataset.d.ts.map +1 -0
- package/dist/dataset.js +253 -0
- package/dist/dataset.js.map +1 -0
- package/dist/device/device.d.ts +185 -0
- package/dist/device/device.d.ts.map +1 -0
- package/dist/device/device.js +421 -0
- package/dist/device/device.js.map +1 -0
- package/dist/device/link.d.ts +62 -0
- package/dist/device/link.d.ts.map +1 -0
- package/dist/device/link.js +130 -0
- package/dist/device/link.js.map +1 -0
- package/dist/discovery.d.ts +109 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +281 -0
- package/dist/discovery.js.map +1 -0
- package/dist/errors.d.ts +39 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +69 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/protocol/bno086.d.ts +36 -0
- package/dist/protocol/bno086.d.ts.map +1 -0
- package/dist/protocol/bno086.js +38 -0
- package/dist/protocol/bno086.js.map +1 -0
- package/dist/protocol/common.d.ts +103 -0
- package/dist/protocol/common.d.ts.map +1 -0
- package/dist/protocol/common.js +121 -0
- package/dist/protocol/common.js.map +1 -0
- package/dist/protocol/crc.d.ts +17 -0
- package/dist/protocol/crc.d.ts.map +1 -0
- package/dist/protocol/crc.js +55 -0
- package/dist/protocol/crc.js.map +1 -0
- package/dist/protocol/framing.d.ts +65 -0
- package/dist/protocol/framing.d.ts.map +1 -0
- package/dist/protocol/framing.js +152 -0
- package/dist/protocol/framing.js.map +1 -0
- package/dist/protocol/fwdepz.d.ts +21 -0
- package/dist/protocol/fwdepz.d.ts.map +1 -0
- package/dist/protocol/fwdepz.js +46 -0
- package/dist/protocol/fwdepz.js.map +1 -0
- package/dist/protocol/identity.d.ts +14 -0
- package/dist/protocol/identity.d.ts.map +1 -0
- package/dist/protocol/identity.js +28 -0
- package/dist/protocol/identity.js.map +1 -0
- package/dist/protocol/sr04.d.ts +38 -0
- package/dist/protocol/sr04.d.ts.map +1 -0
- package/dist/protocol/sr04.js +58 -0
- package/dist/protocol/sr04.js.map +1 -0
- package/dist/protocol/usb-ids.d.ts +60 -0
- package/dist/protocol/usb-ids.d.ts.map +1 -0
- package/dist/protocol/usb-ids.js +79 -0
- package/dist/protocol/usb-ids.js.map +1 -0
- package/dist/protocol/vl53l8.d.ts +59 -0
- package/dist/protocol/vl53l8.d.ts.map +1 -0
- package/dist/protocol/vl53l8.js +116 -0
- package/dist/protocol/vl53l8.js.map +1 -0
- package/dist/sensors/bno086/bno086.d.ts +197 -0
- package/dist/sensors/bno086/bno086.d.ts.map +1 -0
- package/dist/sensors/bno086/bno086.js +543 -0
- package/dist/sensors/bno086/bno086.js.map +1 -0
- package/dist/sensors/bno086/reports.d.ts +289 -0
- package/dist/sensors/bno086/reports.d.ts.map +1 -0
- package/dist/sensors/bno086/reports.js +397 -0
- package/dist/sensors/bno086/reports.js.map +1 -0
- package/dist/sensors/bno086/sh2.d.ts +307 -0
- package/dist/sensors/bno086/sh2.d.ts.map +1 -0
- package/dist/sensors/bno086/sh2.js +480 -0
- package/dist/sensors/bno086/sh2.js.map +1 -0
- package/dist/sensors/bno086/shtp.d.ts +98 -0
- package/dist/sensors/bno086/shtp.d.ts.map +1 -0
- package/dist/sensors/bno086/shtp.js +205 -0
- package/dist/sensors/bno086/shtp.js.map +1 -0
- package/dist/sensors/sr04.d.ts +65 -0
- package/dist/sensors/sr04.d.ts.map +1 -0
- package/dist/sensors/sr04.js +121 -0
- package/dist/sensors/sr04.js.map +1 -0
- package/dist/sensors/vl53l8/assets/ch.d.ts +16 -0
- package/dist/sensors/vl53l8/assets/ch.d.ts.map +1 -0
- package/dist/sensors/vl53l8/assets/ch.js +22 -0
- package/dist/sensors/vl53l8/assets/ch.js.map +1 -0
- package/dist/sensors/vl53l8/assets/cx.d.ts +16 -0
- package/dist/sensors/vl53l8/assets/cx.d.ts.map +1 -0
- package/dist/sensors/vl53l8/assets/cx.js +22 -0
- package/dist/sensors/vl53l8/assets/cx.js.map +1 -0
- package/dist/sensors/vl53l8/assets/decode.d.ts +7 -0
- package/dist/sensors/vl53l8/assets/decode.d.ts.map +1 -0
- package/dist/sensors/vl53l8/assets/decode.js +35 -0
- package/dist/sensors/vl53l8/assets/decode.js.map +1 -0
- package/dist/sensors/vl53l8/assets/index.d.ts +19 -0
- package/dist/sensors/vl53l8/assets/index.d.ts.map +1 -0
- package/dist/sensors/vl53l8/assets/index.js +11 -0
- package/dist/sensors/vl53l8/assets/index.js.map +1 -0
- package/dist/sensors/vl53l8/cnh.d.ts +113 -0
- package/dist/sensors/vl53l8/cnh.d.ts.map +1 -0
- package/dist/sensors/vl53l8/cnh.js +299 -0
- package/dist/sensors/vl53l8/cnh.js.map +1 -0
- package/dist/sensors/vl53l8/uld.d.ts +346 -0
- package/dist/sensors/vl53l8/uld.d.ts.map +1 -0
- package/dist/sensors/vl53l8/uld.js +1388 -0
- package/dist/sensors/vl53l8/uld.js.map +1 -0
- package/dist/sensors/vl53l8/vl53l8.d.ts +182 -0
- package/dist/sensors/vl53l8/vl53l8.d.ts.map +1 -0
- package/dist/sensors/vl53l8/vl53l8.js +411 -0
- package/dist/sensors/vl53l8/vl53l8.js.map +1 -0
- package/dist/transport/loopback.d.ts +18 -0
- package/dist/transport/loopback.d.ts.map +1 -0
- package/dist/transport/loopback.js +53 -0
- package/dist/transport/loopback.js.map +1 -0
- package/dist/transport/node.d.ts +51 -0
- package/dist/transport/node.d.ts.map +1 -0
- package/dist/transport/node.js +123 -0
- package/dist/transport/node.js.map +1 -0
- package/dist/transport/replay.d.ts +68 -0
- package/dist/transport/replay.d.ts.map +1 -0
- package/dist/transport/replay.js +196 -0
- package/dist/transport/replay.js.map +1 -0
- package/dist/transport/types.d.ts +23 -0
- package/dist/transport/types.d.ts.map +1 -0
- package/dist/transport/types.js +7 -0
- package/dist/transport/types.js.map +1 -0
- package/dist/transport/webserial.d.ts +69 -0
- package/dist/transport/webserial.d.ts.map +1 -0
- package/dist/transport/webserial.js +196 -0
- package/dist/transport/webserial.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BNO086 9-axis IMU: SHTP + SH-2 host stack over the firmware pass-through
|
|
3
|
+
* bridge (contracts/05_SENSOR_BNO086.md).
|
|
4
|
+
*
|
|
5
|
+
* The MCU only shuttles raw SHTP frames (SEND_SHTP_PACKET / RPT_DATA); the
|
|
6
|
+
* whole sensor-hub protocol runs here. Per ERRATA E2 the bridge ACKs every
|
|
7
|
+
* send with RPT_STATUS immediately and *all* inbound SHTP arrives as
|
|
8
|
+
* RPT_DATA(cmd=0x00) — correlation happens at the SH-2 layer only.
|
|
9
|
+
*
|
|
10
|
+
* Mirrors the Python reference `depz_sensor_sdk.bno086.Bno086`.
|
|
11
|
+
*/
|
|
12
|
+
import { DepzDevice, StreamQueue, type DeviceOptions } from "../../device/device.js";
|
|
13
|
+
import type { PacketEvent } from "../../protocol/framing.js";
|
|
14
|
+
import type { SerialTransport } from "../../transport/types.js";
|
|
15
|
+
import { type Report } from "./reports.js";
|
|
16
|
+
import { OscillatorType, type Counts, type ErrorRecord, type FeatureResponse, type ProductId, type SensorMetadata } from "./sh2.js";
|
|
17
|
+
export declare const RATE_LOW_FACTOR = 0.9;
|
|
18
|
+
export declare const RATE_HIGH_FACTOR = 2.1;
|
|
19
|
+
/** ME calibration enables as reported by the sensor. */
|
|
20
|
+
export interface CalibrationConfig {
|
|
21
|
+
accel: boolean;
|
|
22
|
+
gyro: boolean;
|
|
23
|
+
mag: boolean;
|
|
24
|
+
planar: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface Bno086Options extends DeviceOptions {
|
|
27
|
+
/** SEND_SHTP_PACKET attempts before giving up (default 5). */
|
|
28
|
+
busyRetries?: number;
|
|
29
|
+
/** ERR_BUSY backoff; >= 200 ms per the bridge spec (tests inject less). */
|
|
30
|
+
busyBackoffMs?: number;
|
|
31
|
+
}
|
|
32
|
+
export interface EnableOptions {
|
|
33
|
+
/** Alternative to `hz`: exact report interval in µs. */
|
|
34
|
+
intervalUs?: number;
|
|
35
|
+
batchUs?: number;
|
|
36
|
+
sensitivity?: number;
|
|
37
|
+
flags?: number;
|
|
38
|
+
cfgWord?: number;
|
|
39
|
+
/** Read back the granted rate via Get Feature (default true). */
|
|
40
|
+
verify?: boolean;
|
|
41
|
+
timeoutMs?: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* BNO086 device: enable SH-2 sensors, stream typed reports.
|
|
45
|
+
*
|
|
46
|
+
* Typical use:
|
|
47
|
+
*
|
|
48
|
+
* const imu = new Bno086(transport);
|
|
49
|
+
* await imu.open();
|
|
50
|
+
* await imu.enable(SensorId.RotationVector, 100);
|
|
51
|
+
* for await (const r of imu.reports()) { ... }
|
|
52
|
+
*
|
|
53
|
+
* Callbacks run on the read-pump context — never await blocking device
|
|
54
|
+
* methods (enable/tare/...) from inside one.
|
|
55
|
+
*/
|
|
56
|
+
export declare class Bno086 extends DepzDevice {
|
|
57
|
+
/** SEND_SHTP_PACKET attempts before giving up. */
|
|
58
|
+
busyRetries: number;
|
|
59
|
+
/** >= 200 ms per the bridge spec (contract 05 §2). */
|
|
60
|
+
busyBackoffMs: number;
|
|
61
|
+
private shtp;
|
|
62
|
+
private txChain;
|
|
63
|
+
private reportCbs;
|
|
64
|
+
private reportQueues;
|
|
65
|
+
private controlWaiters;
|
|
66
|
+
private cmdSeq;
|
|
67
|
+
private resetResolvers;
|
|
68
|
+
private advertisementChunks;
|
|
69
|
+
private features;
|
|
70
|
+
constructor(transport: SerialTransport, opts?: Bno086Options);
|
|
71
|
+
protected handleReport(pkt: PacketEvent): boolean;
|
|
72
|
+
private dispatchCargo;
|
|
73
|
+
private emitReport;
|
|
74
|
+
/**
|
|
75
|
+
* Frame `payload` and push it through SEND_SHTP_PACKET.
|
|
76
|
+
*
|
|
77
|
+
* ERR_BUSY (both MCU TX slots full) backs off `busyBackoffMs` and
|
|
78
|
+
* retransmits, up to `busyRetries` attempts (contract 05 §2). Sends are
|
|
79
|
+
* serialized (single opcode, single wire).
|
|
80
|
+
*/
|
|
81
|
+
private sendShtp;
|
|
82
|
+
/**
|
|
83
|
+
* Register a control-channel waiter for `rid`, run `send`, and let
|
|
84
|
+
* `handler` decide when the exchange finishes. Correlation is purely
|
|
85
|
+
* SH-2-level (report ID + handler predicate).
|
|
86
|
+
*/
|
|
87
|
+
private controlExchange;
|
|
88
|
+
/** Send a control-channel payload and wait for one matching response. */
|
|
89
|
+
private controlRequest;
|
|
90
|
+
private nextCmdSeq;
|
|
91
|
+
/**
|
|
92
|
+
* SH-2 Command Request; correlates the response on (command, commandSeq)
|
|
93
|
+
* when the command produces one.
|
|
94
|
+
*/
|
|
95
|
+
private command;
|
|
96
|
+
/**
|
|
97
|
+
* Send a Command Request and gather every Command Response correlated on
|
|
98
|
+
* (command, commandSeq) until `collect(resp, acc)` returns true. Used by
|
|
99
|
+
* multi-message commands (Errors, Counts) where the hub streams several
|
|
100
|
+
* 0xF1 responses with an incrementing responseSeq.
|
|
101
|
+
*/
|
|
102
|
+
private commandCollect;
|
|
103
|
+
/**
|
|
104
|
+
* Hard-reset the sensor via nRST (0x32) and wait for the executable
|
|
105
|
+
* channel's reset-complete. All SHTP state (seq counters, partial cargos)
|
|
106
|
+
* and cached features restart from zero.
|
|
107
|
+
*/
|
|
108
|
+
hardwareReset(timeoutMs?: number): Promise<void>;
|
|
109
|
+
/** Pulse WAKE (PS0): wakes the sensor from sleep, no state loss. */
|
|
110
|
+
wake(): Promise<void>;
|
|
111
|
+
/** Raw SHTP channel-0 advertisement bytes seen since open/reset. */
|
|
112
|
+
get advertisement(): Uint8Array;
|
|
113
|
+
/** Product ID Request/Response round trip (first responding subsystem). */
|
|
114
|
+
productId(timeoutMs?: number): Promise<ProductId>;
|
|
115
|
+
/**
|
|
116
|
+
* Enable `sensor` at the requested rate via Set Feature (0xFD).
|
|
117
|
+
*
|
|
118
|
+
* Give either `hz` or `opts.intervalUs`. The hub rounds to its 1 kHz/2^n
|
|
119
|
+
* grid; with `verify` (default) the granted rate is read back via Get
|
|
120
|
+
* Feature and a result outside 0.9–2.1× the request emits a console
|
|
121
|
+
* warning (contract 05 §7 — warn, never throw). Resolves with the
|
|
122
|
+
* FeatureResponse (null when `verify: false`).
|
|
123
|
+
*/
|
|
124
|
+
enable(sensor: number, hz?: number, opts?: EnableOptions): Promise<FeatureResponse | null>;
|
|
125
|
+
/** Disable `sensor` (Set Feature with interval 0). */
|
|
126
|
+
disable(sensor: number): Promise<void>;
|
|
127
|
+
/** Get Feature Request/Response round trip for `sensor`. */
|
|
128
|
+
getFeature(sensor: number, timeoutMs?: number): Promise<FeatureResponse>;
|
|
129
|
+
enableRotationVector(hz?: number, opts?: EnableOptions): Promise<FeatureResponse | null>;
|
|
130
|
+
enableGameRotationVector(hz?: number, opts?: EnableOptions): Promise<FeatureResponse | null>;
|
|
131
|
+
enableAccelerometer(hz?: number, opts?: EnableOptions): Promise<FeatureResponse | null>;
|
|
132
|
+
enableGyroscope(hz?: number, opts?: EnableOptions): Promise<FeatureResponse | null>;
|
|
133
|
+
enableMagnetometer(hz?: number, opts?: EnableOptions): Promise<FeatureResponse | null>;
|
|
134
|
+
enableLinearAcceleration(hz?: number, opts?: EnableOptions): Promise<FeatureResponse | null>;
|
|
135
|
+
enableGravity(hz?: number, opts?: EnableOptions): Promise<FeatureResponse | null>;
|
|
136
|
+
enableGyroIntegratedRv(hz?: number, opts?: EnableOptions): Promise<FeatureResponse | null>;
|
|
137
|
+
/**
|
|
138
|
+
* Subscribe to typed sensor reports (read-pump context; do not block).
|
|
139
|
+
* `sensors` filters by SensorId. Returns an unsubscribe fn.
|
|
140
|
+
*/
|
|
141
|
+
onReport(cb: (r: Report) => void, sensors?: Iterable<number> | number | null): () => void;
|
|
142
|
+
/**
|
|
143
|
+
* Async iterator over typed reports — bounded, drop-oldest (contract 07
|
|
144
|
+
* §3). Subscribes eagerly — reports emitted after this call are never
|
|
145
|
+
* missed.
|
|
146
|
+
*/
|
|
147
|
+
reports(sensors?: Iterable<number> | number | null, maxsize?: number): StreamQueue<Report>;
|
|
148
|
+
/** Tare the selected axes against `basis` (no response per SH-2). */
|
|
149
|
+
tareNow(axes?: number, basis?: number): Promise<void>;
|
|
150
|
+
/** Persist the current tare into FRS (no response per SH-2). */
|
|
151
|
+
persistTare(): Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* Set the runtime reorientation quaternion (Q14 on the wire; all zeros
|
|
154
|
+
* clears). No response per SH-2.
|
|
155
|
+
*/
|
|
156
|
+
setReorientation(x: number, y: number, z: number, w: number): Promise<void>;
|
|
157
|
+
/** Configure ME calibration; rejects with Sh2Error on non-zero status. */
|
|
158
|
+
setCalibration(config?: {
|
|
159
|
+
accel?: boolean;
|
|
160
|
+
gyro?: boolean;
|
|
161
|
+
mag?: boolean;
|
|
162
|
+
planar?: boolean;
|
|
163
|
+
}, timeoutMs?: number): Promise<void>;
|
|
164
|
+
/** Read back which ME calibrations are running. */
|
|
165
|
+
getCalibration(timeoutMs?: number): Promise<CalibrationConfig>;
|
|
166
|
+
/** Save the dynamic calibration data to flash (DCD Save Now). */
|
|
167
|
+
saveDcd(timeoutMs?: number): Promise<void>;
|
|
168
|
+
/** Enable/disable the hub's periodic DCD autosave (no response). */
|
|
169
|
+
configurePeriodicDcd(enable: boolean): Promise<void>;
|
|
170
|
+
/** Read a whole FRS record; resolves with its 32-bit words. */
|
|
171
|
+
frsRead(recordId: number, timeoutMs?: number): Promise<number[]>;
|
|
172
|
+
/** Write a whole FRS record (word list); rejects with Sh2Error on failure. */
|
|
173
|
+
frsWrite(recordId: number, words: Iterable<number>, timeoutMs?: number): Promise<void>;
|
|
174
|
+
/** Read + parse the sensor's FRS metadata record. */
|
|
175
|
+
getMetadata(sensor: number, timeoutMs?: number): Promise<SensorMetadata>;
|
|
176
|
+
/** Get Oscillator Type (command 0x0A). r[0] is the type directly. */
|
|
177
|
+
getOscillatorType(timeoutMs?: number): Promise<OscillatorType>;
|
|
178
|
+
/**
|
|
179
|
+
* Clear the in-RAM dynamic calibration and reset the sensor (command 0x0B).
|
|
180
|
+
* There is no command response — the hub resets, so this waits for the
|
|
181
|
+
* executable reset-complete like hardwareReset().
|
|
182
|
+
*/
|
|
183
|
+
clearDcdAndReset(timeoutMs?: number): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Read the error queue (command 0x01), filtered to `severity` or greater.
|
|
186
|
+
* Records stream until one with source == 255 (no more).
|
|
187
|
+
*/
|
|
188
|
+
getErrors(severity?: number, timeoutMs?: number): Promise<ErrorRecord[]>;
|
|
189
|
+
/**
|
|
190
|
+
* Read a sensor's event counts (command 0x02). The hub answers with two
|
|
191
|
+
* responses (responseSeq 0 then 1).
|
|
192
|
+
*/
|
|
193
|
+
getCounts(sensor: number, timeoutMs?: number): Promise<Counts>;
|
|
194
|
+
/** Clear a sensor's event counts (command 0x02, subcommand 1). */
|
|
195
|
+
clearCounts(sensor: number, timeoutMs?: number): Promise<void>;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=bno086.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bno086.d.ts","sourceRoot":"","sources":["../../../src/sensors/bno086/bno086.ts"],"names":[],"mappings":"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"}
|