@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,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSerial transport (Chrome/Edge, secure context). The `SerialPort` must be
|
|
3
|
+
* obtained by the app inside a user gesture (`navigator.serial.requestPort()`)
|
|
4
|
+
* and passed here — the SDK never triggers the permission picker itself.
|
|
5
|
+
*/
|
|
6
|
+
import { isDeviceInfo, listDepzDevicesFrom, openDeviceByDeviceSerial, openDeviceFrom, orderDevicesBySerial, } from "../discovery.js";
|
|
7
|
+
function navigatorSerial() {
|
|
8
|
+
const nav = globalThis.navigator;
|
|
9
|
+
return nav?.serial ?? null;
|
|
10
|
+
}
|
|
11
|
+
/** Feature-detect Web Serial support in the current environment. */
|
|
12
|
+
export function isWebSerialSupported() {
|
|
13
|
+
return navigatorSerial() !== null;
|
|
14
|
+
}
|
|
15
|
+
/** Previously-granted ports (survive page reloads per origin+device). */
|
|
16
|
+
export async function getGrantedPorts() {
|
|
17
|
+
const serial = navigatorSerial();
|
|
18
|
+
return serial ? serial.getPorts() : [];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Watch physical connect events; used by the firmware-update flow to
|
|
22
|
+
* re-acquire a device after it reboots. Returns an unsubscribe function.
|
|
23
|
+
*/
|
|
24
|
+
export function watchConnect(cb) {
|
|
25
|
+
const serial = navigatorSerial();
|
|
26
|
+
if (!serial)
|
|
27
|
+
return () => { };
|
|
28
|
+
const handler = (ev) => {
|
|
29
|
+
const port = ev.target;
|
|
30
|
+
if (port)
|
|
31
|
+
cb(port);
|
|
32
|
+
};
|
|
33
|
+
serial.addEventListener("connect", handler);
|
|
34
|
+
return () => serial.removeEventListener("connect", handler);
|
|
35
|
+
}
|
|
36
|
+
export class WebSerialTransport {
|
|
37
|
+
port;
|
|
38
|
+
info;
|
|
39
|
+
reader = null;
|
|
40
|
+
writer = null;
|
|
41
|
+
disconnectCbs = [];
|
|
42
|
+
disconnectHandler = null;
|
|
43
|
+
constructor(port) {
|
|
44
|
+
this.port = port;
|
|
45
|
+
const info = port.getInfo();
|
|
46
|
+
this.info = { usbVendorId: info.usbVendorId, usbProductId: info.usbProductId };
|
|
47
|
+
}
|
|
48
|
+
async open(opts) {
|
|
49
|
+
await this.port.open({ baudRate: opts?.baudRate ?? 115200 });
|
|
50
|
+
if (this.disconnectHandler === null && this.port.addEventListener) {
|
|
51
|
+
this.disconnectHandler = () => this.fireDisconnect();
|
|
52
|
+
this.port.addEventListener("disconnect", this.disconnectHandler);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async write(data) {
|
|
56
|
+
if (!this.port.writable)
|
|
57
|
+
throw new Error("port not writable (closed?)");
|
|
58
|
+
this.writer ??= this.port.writable.getWriter();
|
|
59
|
+
await this.writer.write(data);
|
|
60
|
+
}
|
|
61
|
+
async *readable() {
|
|
62
|
+
if (!this.port.readable)
|
|
63
|
+
throw new Error("port not readable (closed?)");
|
|
64
|
+
this.reader = this.port.readable.getReader();
|
|
65
|
+
try {
|
|
66
|
+
for (;;) {
|
|
67
|
+
const { value, done } = await this.reader.read();
|
|
68
|
+
if (done)
|
|
69
|
+
return;
|
|
70
|
+
if (value && value.length > 0)
|
|
71
|
+
yield value;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Read failure = cable yank / device reboot.
|
|
76
|
+
this.fireDisconnect();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
this.reader.releaseLock();
|
|
81
|
+
this.reader = null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async close() {
|
|
85
|
+
try {
|
|
86
|
+
await this.reader?.cancel();
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
/* already gone */
|
|
90
|
+
}
|
|
91
|
+
if (this.writer) {
|
|
92
|
+
try {
|
|
93
|
+
this.writer.releaseLock();
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
/* already gone */
|
|
97
|
+
}
|
|
98
|
+
this.writer = null;
|
|
99
|
+
}
|
|
100
|
+
if (this.disconnectHandler !== null) {
|
|
101
|
+
this.port.removeEventListener?.("disconnect", this.disconnectHandler);
|
|
102
|
+
this.disconnectHandler = null;
|
|
103
|
+
}
|
|
104
|
+
await this.port.close();
|
|
105
|
+
}
|
|
106
|
+
onDisconnect(cb) {
|
|
107
|
+
this.disconnectCbs.push(cb);
|
|
108
|
+
return () => {
|
|
109
|
+
this.disconnectCbs = this.disconnectCbs.filter((c) => c !== cb);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
fireDisconnect() {
|
|
113
|
+
const cbs = this.disconnectCbs;
|
|
114
|
+
this.disconnectCbs = [];
|
|
115
|
+
cbs.forEach((cb) => cb());
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// ── discovery (WebSerial) ─────────────────────────────────────────────────────
|
|
119
|
+
//
|
|
120
|
+
// WebSerial CANNOT enumerate the system's ports or read a port's USB iSerial:
|
|
121
|
+
// `navigator.serial.getPorts()` returns only ports the user has already
|
|
122
|
+
// granted (per origin+device), and `port.getInfo()` exposes just vid/pid.
|
|
123
|
+
//
|
|
124
|
+
// BUT the device serial is still reachable — over the PROTOCOL: probing a port
|
|
125
|
+
// (open → GET_SERIAL → close) yields `DeviceInfo.serialNumber`. So selection
|
|
126
|
+
// and ordering by serial ARE supported in the browser, at the cost of opening
|
|
127
|
+
// each granted port once. Selection is by DEVICE serial (not granted-port
|
|
128
|
+
// order), which matches Node — for programmed units USB iSerial == device
|
|
129
|
+
// serial. Explicit targets (a `WebSerialPortLike`, a granted-port path, or a
|
|
130
|
+
// `DeviceInfo`) open that exact port without a selection scan.
|
|
131
|
+
//
|
|
132
|
+
// The app must first obtain ports in a user gesture via
|
|
133
|
+
// `navigator.serial.requestPort()`; the SDK never opens the picker itself.
|
|
134
|
+
function grantedPortInfos(ports) {
|
|
135
|
+
const infos = [];
|
|
136
|
+
const byPath = new Map();
|
|
137
|
+
ports.forEach((port, i) => {
|
|
138
|
+
const path = `webserial:${i}`;
|
|
139
|
+
const usb = port.getInfo();
|
|
140
|
+
infos.push({ path, usbVid: usb.usbVendorId, usbPid: usb.usbProductId });
|
|
141
|
+
byPath.set(path, port);
|
|
142
|
+
});
|
|
143
|
+
return { infos, byPath };
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Probe the already-granted WebSerial ports and return the DEPZ devices among
|
|
147
|
+
* them, ordered by DEVICE serial (GET_SERIAL) — the USB iSerial is unavailable
|
|
148
|
+
* in the browser, so the serial is read over the protocol. By default every
|
|
149
|
+
* granted port is probed (`matchUsb: false`) since a granted port is
|
|
150
|
+
* user-curated; pass `matchUsb: true` to probe only known-DEPZ vid/pids.
|
|
151
|
+
*/
|
|
152
|
+
export async function listDepzDevices(opts = {}) {
|
|
153
|
+
const { infos, byPath } = grantedPortInfos(await getGrantedPorts());
|
|
154
|
+
const factory = (p) => new WebSerialTransport(byPath.get(p.path));
|
|
155
|
+
const found = await listDepzDevicesFrom(infos, factory, {
|
|
156
|
+
matchUsb: opts.matchUsb ?? false,
|
|
157
|
+
timeoutMs: opts.timeoutMs,
|
|
158
|
+
});
|
|
159
|
+
return orderDevicesBySerial(found);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Open the right sensor class for a granted WebSerial port.
|
|
163
|
+
*
|
|
164
|
+
* `target` is a `WebSerialPortLike` (typically fresh from
|
|
165
|
+
* `navigator.serial.requestPort()`), a granted-port path string / `DeviceInfo`
|
|
166
|
+
* from `listDepzDevices()`, a candidate index (number, ordered by device
|
|
167
|
+
* serial), or omitted for the smallest-serial DEPZ candidate. `opts.serial`
|
|
168
|
+
* selects the candidate whose device serial matches exactly. Selection probes
|
|
169
|
+
* the granted ports; explicit targets open directly. Throws
|
|
170
|
+
* `NoDepzDeviceError` when nothing matches.
|
|
171
|
+
*/
|
|
172
|
+
export async function openDevice(target, opts = {}) {
|
|
173
|
+
// A raw WebSerial port handed in directly (the usual requestPort() flow).
|
|
174
|
+
if (isWebSerialPort(target)) {
|
|
175
|
+
const port = target;
|
|
176
|
+
const usb = port.getInfo();
|
|
177
|
+
const info = { path: "webserial:direct", usbVid: usb.usbVendorId, usbPid: usb.usbProductId };
|
|
178
|
+
const factory = () => new WebSerialTransport(port);
|
|
179
|
+
return openDeviceFrom([info], factory, "webserial:direct", opts);
|
|
180
|
+
}
|
|
181
|
+
const { infos, byPath } = grantedPortInfos(await getGrantedPorts());
|
|
182
|
+
const factory = (p) => new WebSerialTransport(byPath.get(p.path));
|
|
183
|
+
// Explicit granted port (path string or DeviceInfo): open exactly it.
|
|
184
|
+
if (typeof target === "string" || isDeviceInfo(target)) {
|
|
185
|
+
return openDeviceFrom(infos, factory, target, opts);
|
|
186
|
+
}
|
|
187
|
+
// Default / index / serial: select by DEVICE serial (probes granted ports).
|
|
188
|
+
return openDeviceByDeviceSerial(infos, factory, target ?? null, opts);
|
|
189
|
+
}
|
|
190
|
+
function isWebSerialPort(t) {
|
|
191
|
+
return (typeof t === "object" &&
|
|
192
|
+
t !== null &&
|
|
193
|
+
typeof t.getInfo === "function" &&
|
|
194
|
+
typeof t.open === "function");
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=webserial.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webserial.js","sourceRoot":"","sources":["../../src/transport/webserial.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@depz/sensor-sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "TypeScript SDK for the DEPZ USB sensor line (SR04, VL53L8, BNO086) — WebSerial + Node",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"keywords": [
|
|
9
|
+
"depz",
|
|
10
|
+
"sensor",
|
|
11
|
+
"usb",
|
|
12
|
+
"webserial",
|
|
13
|
+
"serialport",
|
|
14
|
+
"vl53l8",
|
|
15
|
+
"bno086",
|
|
16
|
+
"hc-sr04",
|
|
17
|
+
"tof",
|
|
18
|
+
"imu"
|
|
19
|
+
],
|
|
20
|
+
"homepage": "https://github.com/depz-ai/depz-sensor-sdk-and-viewer",
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+https://github.com/depz-ai/depz-sensor-sdk-and-viewer.git",
|
|
24
|
+
"directory": "packages/depz-sensor-sdk-ts"
|
|
25
|
+
},
|
|
26
|
+
"bugs": {
|
|
27
|
+
"url": "https://github.com/depz-ai/depz-sensor-sdk-and-viewer/issues"
|
|
28
|
+
},
|
|
29
|
+
"main": "./dist/index.js",
|
|
30
|
+
"module": "./dist/index.js",
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"import": "./dist/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./web": {
|
|
38
|
+
"types": "./dist/transport/webserial.d.ts",
|
|
39
|
+
"import": "./dist/transport/webserial.js"
|
|
40
|
+
},
|
|
41
|
+
"./node": {
|
|
42
|
+
"types": "./dist/transport/node.d.ts",
|
|
43
|
+
"import": "./dist/transport/node.js"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"files": [
|
|
47
|
+
"dist",
|
|
48
|
+
"README.md"
|
|
49
|
+
],
|
|
50
|
+
"publishConfig": {
|
|
51
|
+
"access": "public"
|
|
52
|
+
},
|
|
53
|
+
"scripts": {
|
|
54
|
+
"build": "tsc -p tsconfig.build.json",
|
|
55
|
+
"prepublishOnly": "npm run build",
|
|
56
|
+
"test": "vitest run",
|
|
57
|
+
"typecheck": "tsc --noEmit",
|
|
58
|
+
"docs": "typedoc --out docs/.api-md && node scripts/merge-api-md.mjs docs/.api-md docs/api.md",
|
|
59
|
+
"docs:json": "typedoc --json docs/api.json --out docs/.api-json && node -e \"require('node:fs').rmSync('docs/.api-json',{recursive:true,force:true})\""
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"serialport": ""
|
|
63
|
+
},
|
|
64
|
+
"peerDependenciesMeta": {
|
|
65
|
+
"serialport": {
|
|
66
|
+
"optional": true
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@types/node": "^20",
|
|
71
|
+
"serialport": "^12.0.0",
|
|
72
|
+
"typedoc": "^0.28.20",
|
|
73
|
+
"typedoc-plugin-markdown": "^4.12.0",
|
|
74
|
+
"typescript": "^5.8.0",
|
|
75
|
+
"vitest": "^3.0.0"
|
|
76
|
+
}
|
|
77
|
+
}
|