@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.
Files changed (130) hide show
  1. package/README.md +69 -0
  2. package/dist/dataset.d.ts +93 -0
  3. package/dist/dataset.d.ts.map +1 -0
  4. package/dist/dataset.js +253 -0
  5. package/dist/dataset.js.map +1 -0
  6. package/dist/device/device.d.ts +185 -0
  7. package/dist/device/device.d.ts.map +1 -0
  8. package/dist/device/device.js +421 -0
  9. package/dist/device/device.js.map +1 -0
  10. package/dist/device/link.d.ts +62 -0
  11. package/dist/device/link.d.ts.map +1 -0
  12. package/dist/device/link.js +130 -0
  13. package/dist/device/link.js.map +1 -0
  14. package/dist/discovery.d.ts +109 -0
  15. package/dist/discovery.d.ts.map +1 -0
  16. package/dist/discovery.js +281 -0
  17. package/dist/discovery.js.map +1 -0
  18. package/dist/errors.d.ts +39 -0
  19. package/dist/errors.d.ts.map +1 -0
  20. package/dist/errors.js +69 -0
  21. package/dist/errors.js.map +1 -0
  22. package/dist/index.d.ts +42 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +31 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/protocol/bno086.d.ts +36 -0
  27. package/dist/protocol/bno086.d.ts.map +1 -0
  28. package/dist/protocol/bno086.js +38 -0
  29. package/dist/protocol/bno086.js.map +1 -0
  30. package/dist/protocol/common.d.ts +103 -0
  31. package/dist/protocol/common.d.ts.map +1 -0
  32. package/dist/protocol/common.js +121 -0
  33. package/dist/protocol/common.js.map +1 -0
  34. package/dist/protocol/crc.d.ts +17 -0
  35. package/dist/protocol/crc.d.ts.map +1 -0
  36. package/dist/protocol/crc.js +55 -0
  37. package/dist/protocol/crc.js.map +1 -0
  38. package/dist/protocol/framing.d.ts +65 -0
  39. package/dist/protocol/framing.d.ts.map +1 -0
  40. package/dist/protocol/framing.js +152 -0
  41. package/dist/protocol/framing.js.map +1 -0
  42. package/dist/protocol/fwdepz.d.ts +21 -0
  43. package/dist/protocol/fwdepz.d.ts.map +1 -0
  44. package/dist/protocol/fwdepz.js +46 -0
  45. package/dist/protocol/fwdepz.js.map +1 -0
  46. package/dist/protocol/identity.d.ts +14 -0
  47. package/dist/protocol/identity.d.ts.map +1 -0
  48. package/dist/protocol/identity.js +28 -0
  49. package/dist/protocol/identity.js.map +1 -0
  50. package/dist/protocol/sr04.d.ts +38 -0
  51. package/dist/protocol/sr04.d.ts.map +1 -0
  52. package/dist/protocol/sr04.js +58 -0
  53. package/dist/protocol/sr04.js.map +1 -0
  54. package/dist/protocol/usb-ids.d.ts +60 -0
  55. package/dist/protocol/usb-ids.d.ts.map +1 -0
  56. package/dist/protocol/usb-ids.js +79 -0
  57. package/dist/protocol/usb-ids.js.map +1 -0
  58. package/dist/protocol/vl53l8.d.ts +59 -0
  59. package/dist/protocol/vl53l8.d.ts.map +1 -0
  60. package/dist/protocol/vl53l8.js +116 -0
  61. package/dist/protocol/vl53l8.js.map +1 -0
  62. package/dist/sensors/bno086/bno086.d.ts +197 -0
  63. package/dist/sensors/bno086/bno086.d.ts.map +1 -0
  64. package/dist/sensors/bno086/bno086.js +543 -0
  65. package/dist/sensors/bno086/bno086.js.map +1 -0
  66. package/dist/sensors/bno086/reports.d.ts +289 -0
  67. package/dist/sensors/bno086/reports.d.ts.map +1 -0
  68. package/dist/sensors/bno086/reports.js +397 -0
  69. package/dist/sensors/bno086/reports.js.map +1 -0
  70. package/dist/sensors/bno086/sh2.d.ts +307 -0
  71. package/dist/sensors/bno086/sh2.d.ts.map +1 -0
  72. package/dist/sensors/bno086/sh2.js +480 -0
  73. package/dist/sensors/bno086/sh2.js.map +1 -0
  74. package/dist/sensors/bno086/shtp.d.ts +98 -0
  75. package/dist/sensors/bno086/shtp.d.ts.map +1 -0
  76. package/dist/sensors/bno086/shtp.js +205 -0
  77. package/dist/sensors/bno086/shtp.js.map +1 -0
  78. package/dist/sensors/sr04.d.ts +65 -0
  79. package/dist/sensors/sr04.d.ts.map +1 -0
  80. package/dist/sensors/sr04.js +121 -0
  81. package/dist/sensors/sr04.js.map +1 -0
  82. package/dist/sensors/vl53l8/assets/ch.d.ts +16 -0
  83. package/dist/sensors/vl53l8/assets/ch.d.ts.map +1 -0
  84. package/dist/sensors/vl53l8/assets/ch.js +22 -0
  85. package/dist/sensors/vl53l8/assets/ch.js.map +1 -0
  86. package/dist/sensors/vl53l8/assets/cx.d.ts +16 -0
  87. package/dist/sensors/vl53l8/assets/cx.d.ts.map +1 -0
  88. package/dist/sensors/vl53l8/assets/cx.js +22 -0
  89. package/dist/sensors/vl53l8/assets/cx.js.map +1 -0
  90. package/dist/sensors/vl53l8/assets/decode.d.ts +7 -0
  91. package/dist/sensors/vl53l8/assets/decode.d.ts.map +1 -0
  92. package/dist/sensors/vl53l8/assets/decode.js +35 -0
  93. package/dist/sensors/vl53l8/assets/decode.js.map +1 -0
  94. package/dist/sensors/vl53l8/assets/index.d.ts +19 -0
  95. package/dist/sensors/vl53l8/assets/index.d.ts.map +1 -0
  96. package/dist/sensors/vl53l8/assets/index.js +11 -0
  97. package/dist/sensors/vl53l8/assets/index.js.map +1 -0
  98. package/dist/sensors/vl53l8/cnh.d.ts +113 -0
  99. package/dist/sensors/vl53l8/cnh.d.ts.map +1 -0
  100. package/dist/sensors/vl53l8/cnh.js +299 -0
  101. package/dist/sensors/vl53l8/cnh.js.map +1 -0
  102. package/dist/sensors/vl53l8/uld.d.ts +346 -0
  103. package/dist/sensors/vl53l8/uld.d.ts.map +1 -0
  104. package/dist/sensors/vl53l8/uld.js +1388 -0
  105. package/dist/sensors/vl53l8/uld.js.map +1 -0
  106. package/dist/sensors/vl53l8/vl53l8.d.ts +182 -0
  107. package/dist/sensors/vl53l8/vl53l8.d.ts.map +1 -0
  108. package/dist/sensors/vl53l8/vl53l8.js +411 -0
  109. package/dist/sensors/vl53l8/vl53l8.js.map +1 -0
  110. package/dist/transport/loopback.d.ts +18 -0
  111. package/dist/transport/loopback.d.ts.map +1 -0
  112. package/dist/transport/loopback.js +53 -0
  113. package/dist/transport/loopback.js.map +1 -0
  114. package/dist/transport/node.d.ts +51 -0
  115. package/dist/transport/node.d.ts.map +1 -0
  116. package/dist/transport/node.js +123 -0
  117. package/dist/transport/node.js.map +1 -0
  118. package/dist/transport/replay.d.ts +68 -0
  119. package/dist/transport/replay.d.ts.map +1 -0
  120. package/dist/transport/replay.js +196 -0
  121. package/dist/transport/replay.js.map +1 -0
  122. package/dist/transport/types.d.ts +23 -0
  123. package/dist/transport/types.d.ts.map +1 -0
  124. package/dist/transport/types.js +7 -0
  125. package/dist/transport/types.js.map +1 -0
  126. package/dist/transport/webserial.d.ts +69 -0
  127. package/dist/transport/webserial.d.ts.map +1 -0
  128. package/dist/transport/webserial.js +196 -0
  129. package/dist/transport/webserial.js.map +1 -0
  130. 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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"}