@depz/sensor-sdk 0.2.1 → 0.3.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 (166) hide show
  1. package/README.md +13 -5
  2. package/dist/dataset.d.ts.map +1 -1
  3. package/dist/dataset.js +66 -2
  4. package/dist/dataset.js.map +1 -1
  5. package/dist/device/device.d.ts +6 -0
  6. package/dist/device/device.d.ts.map +1 -1
  7. package/dist/device/device.js +29 -6
  8. package/dist/device/device.js.map +1 -1
  9. package/dist/discovery.d.ts.map +1 -1
  10. package/dist/discovery.js +25 -2
  11. package/dist/discovery.js.map +1 -1
  12. package/dist/index.d.ts +21 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +16 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/protocol/bno055.d.ts +101 -0
  17. package/dist/protocol/bno055.d.ts.map +1 -0
  18. package/dist/protocol/bno055.js +105 -0
  19. package/dist/protocol/bno055.js.map +1 -0
  20. package/dist/protocol/identity.d.ts +1 -1
  21. package/dist/protocol/identity.d.ts.map +1 -1
  22. package/dist/protocol/identity.js +6 -0
  23. package/dist/protocol/identity.js.map +1 -1
  24. package/dist/protocol/vl53l7.d.ts +77 -0
  25. package/dist/protocol/vl53l7.d.ts.map +1 -0
  26. package/dist/protocol/vl53l7.js +99 -0
  27. package/dist/protocol/vl53l7.js.map +1 -0
  28. package/dist/protocol/vl53lx.d.ts +72 -0
  29. package/dist/protocol/vl53lx.d.ts.map +1 -0
  30. package/dist/protocol/vl53lx.js +87 -0
  31. package/dist/protocol/vl53lx.js.map +1 -0
  32. package/dist/sensors/bno055/bno055.d.ts +207 -0
  33. package/dist/sensors/bno055/bno055.d.ts.map +1 -0
  34. package/dist/sensors/bno055/bno055.js +547 -0
  35. package/dist/sensors/bno055/bno055.js.map +1 -0
  36. package/dist/sensors/bno055/regs.d.ts +271 -0
  37. package/dist/sensors/bno055/regs.d.ts.map +1 -0
  38. package/dist/sensors/bno055/regs.js +366 -0
  39. package/dist/sensors/bno055/regs.js.map +1 -0
  40. package/dist/sensors/bno086/bno086.d.ts +15 -0
  41. package/dist/sensors/bno086/bno086.d.ts.map +1 -1
  42. package/dist/sensors/bno086/bno086.js +43 -1
  43. package/dist/sensors/bno086/bno086.js.map +1 -1
  44. package/dist/sensors/bno086/sh2.d.ts.map +1 -1
  45. package/dist/sensors/bno086/sh2.js +5 -2
  46. package/dist/sensors/bno086/sh2.js.map +1 -1
  47. package/dist/sensors/reg-bridge.d.ts +35 -0
  48. package/dist/sensors/reg-bridge.d.ts.map +1 -0
  49. package/dist/sensors/reg-bridge.js +44 -0
  50. package/dist/sensors/reg-bridge.js.map +1 -0
  51. package/dist/sensors/vl53l4/vl53l4.d.ts.map +1 -1
  52. package/dist/sensors/vl53l4/vl53l4.js +18 -30
  53. package/dist/sensors/vl53l4/vl53l4.js.map +1 -1
  54. package/dist/sensors/vl53l7/vl53l7.d.ts +97 -0
  55. package/dist/sensors/vl53l7/vl53l7.d.ts.map +1 -0
  56. package/dist/sensors/vl53l7/vl53l7.js +138 -0
  57. package/dist/sensors/vl53l7/vl53l7.js.map +1 -0
  58. package/dist/sensors/vl53l8/assets/index.d.ts +5 -1
  59. package/dist/sensors/vl53l8/assets/index.d.ts.map +1 -1
  60. package/dist/sensors/vl53l8/assets/index.js +7 -1
  61. package/dist/sensors/vl53l8/assets/index.js.map +1 -1
  62. package/dist/sensors/vl53l8/assets/l7ch.d.ts +12 -0
  63. package/dist/sensors/vl53l8/assets/l7ch.d.ts.map +1 -0
  64. package/dist/sensors/vl53l8/assets/l7ch.js +18 -0
  65. package/dist/sensors/vl53l8/assets/l7ch.js.map +1 -0
  66. package/dist/sensors/vl53l8/assets/l7cx.d.ts +14 -0
  67. package/dist/sensors/vl53l8/assets/l7cx.d.ts.map +1 -0
  68. package/dist/sensors/vl53l8/assets/l7cx.js +20 -0
  69. package/dist/sensors/vl53l8/assets/l7cx.js.map +1 -0
  70. package/dist/sensors/vl53l8/cnh.d.ts +4 -3
  71. package/dist/sensors/vl53l8/cnh.d.ts.map +1 -1
  72. package/dist/sensors/vl53l8/cnh.js +4 -3
  73. package/dist/sensors/vl53l8/cnh.js.map +1 -1
  74. package/dist/sensors/vl53l8/uld.d.ts +50 -9
  75. package/dist/sensors/vl53l8/uld.d.ts.map +1 -1
  76. package/dist/sensors/vl53l8/uld.js +241 -35
  77. package/dist/sensors/vl53l8/uld.js.map +1 -1
  78. package/dist/sensors/vl53l8/vl53l8.d.ts +8 -3
  79. package/dist/sensors/vl53l8/vl53l8.d.ts.map +1 -1
  80. package/dist/sensors/vl53l8/vl53l8.js +41 -39
  81. package/dist/sensors/vl53l8/vl53l8.js.map +1 -1
  82. package/dist/sensors/vl53lx/decode.d.ts +70 -0
  83. package/dist/sensors/vl53lx/decode.d.ts.map +1 -0
  84. package/dist/sensors/vl53lx/decode.js +108 -0
  85. package/dist/sensors/vl53lx/decode.js.map +1 -0
  86. package/dist/sensors/vl53lx/uld/arith.d.ts +23 -0
  87. package/dist/sensors/vl53lx/uld/arith.d.ts.map +1 -0
  88. package/dist/sensors/vl53lx/uld/arith.js +42 -0
  89. package/dist/sensors/vl53lx/uld/arith.js.map +1 -0
  90. package/dist/sensors/vl53lx/uld/bare/core.d.ts +345 -0
  91. package/dist/sensors/vl53lx/uld/bare/core.d.ts.map +1 -0
  92. package/dist/sensors/vl53lx/uld/bare/core.js +1085 -0
  93. package/dist/sensors/vl53lx/uld/bare/core.js.map +1 -0
  94. package/dist/sensors/vl53lx/uld/bare/driver.d.ts +91 -0
  95. package/dist/sensors/vl53lx/uld/bare/driver.d.ts.map +1 -0
  96. package/dist/sensors/vl53lx/uld/bare/driver.js +206 -0
  97. package/dist/sensors/vl53lx/uld/bare/driver.js.map +1 -0
  98. package/dist/sensors/vl53lx/uld/bare/hist.d.ts +180 -0
  99. package/dist/sensors/vl53lx/uld/bare/hist.d.ts.map +1 -0
  100. package/dist/sensors/vl53lx/uld/bare/hist.js +949 -0
  101. package/dist/sensors/vl53lx/uld/bare/hist.js.map +1 -0
  102. package/dist/sensors/vl53lx/uld/bare/image.d.ts +53 -0
  103. package/dist/sensors/vl53lx/uld/bare/image.d.ts.map +1 -0
  104. package/dist/sensors/vl53lx/uld/bare/image.js +108 -0
  105. package/dist/sensors/vl53lx/uld/bare/image.js.map +1 -0
  106. package/dist/sensors/vl53lx/uld/bare/imath.d.ts +39 -0
  107. package/dist/sensors/vl53lx/uld/bare/imath.d.ts.map +1 -0
  108. package/dist/sensors/vl53lx/uld/bare/imath.js +99 -0
  109. package/dist/sensors/vl53lx/uld/bare/imath.js.map +1 -0
  110. package/dist/sensors/vl53lx/uld/bare/index.d.ts +22 -0
  111. package/dist/sensors/vl53lx/uld/bare/index.d.ts.map +1 -0
  112. package/dist/sensors/vl53lx/uld/bare/index.js +22 -0
  113. package/dist/sensors/vl53lx/uld/bare/index.js.map +1 -0
  114. package/dist/sensors/vl53lx/uld/bare/nvm.d.ts +85 -0
  115. package/dist/sensors/vl53lx/uld/bare/nvm.d.ts.map +1 -0
  116. package/dist/sensors/vl53lx/uld/bare/nvm.js +148 -0
  117. package/dist/sensors/vl53lx/uld/bare/nvm.js.map +1 -0
  118. package/dist/sensors/vl53lx/uld/bare/regs.d.ts +54 -0
  119. package/dist/sensors/vl53lx/uld/bare/regs.d.ts.map +1 -0
  120. package/dist/sensors/vl53lx/uld/bare/regs.js +496 -0
  121. package/dist/sensors/vl53lx/uld/bare/regs.js.map +1 -0
  122. package/dist/sensors/vl53lx/uld/bare/tuning.d.ts +15 -0
  123. package/dist/sensors/vl53lx/uld/bare/tuning.d.ts.map +1 -0
  124. package/dist/sensors/vl53lx/uld/bare/tuning.js +303 -0
  125. package/dist/sensors/vl53lx/uld/bare/tuning.js.map +1 -0
  126. package/dist/sensors/vl53lx/uld/base.d.ts +129 -0
  127. package/dist/sensors/vl53lx/uld/base.d.ts.map +1 -0
  128. package/dist/sensors/vl53lx/uld/base.js +166 -0
  129. package/dist/sensors/vl53lx/uld/base.js.map +1 -0
  130. package/dist/sensors/vl53lx/uld/l0x.d.ts +306 -0
  131. package/dist/sensors/vl53lx/uld/l0x.d.ts.map +1 -0
  132. package/dist/sensors/vl53lx/uld/l0x.js +1492 -0
  133. package/dist/sensors/vl53lx/uld/l0x.js.map +1 -0
  134. package/dist/sensors/vl53lx/uld/l1.d.ts +69 -0
  135. package/dist/sensors/vl53lx/uld/l1.d.ts.map +1 -0
  136. package/dist/sensors/vl53lx/uld/l1.js +262 -0
  137. package/dist/sensors/vl53lx/uld/l1.js.map +1 -0
  138. package/dist/sensors/vl53lx/uld/l3.d.ts +25 -0
  139. package/dist/sensors/vl53lx/uld/l3.d.ts.map +1 -0
  140. package/dist/sensors/vl53lx/uld/l3.js +51 -0
  141. package/dist/sensors/vl53lx/uld/l3.js.map +1 -0
  142. package/dist/sensors/vl53lx/uld/l4.d.ts +22 -0
  143. package/dist/sensors/vl53lx/uld/l4.d.ts.map +1 -0
  144. package/dist/sensors/vl53lx/uld/l4.js +99 -0
  145. package/dist/sensors/vl53lx/uld/l4.js.map +1 -0
  146. package/dist/sensors/vl53lx/uld/link.d.ts +42 -0
  147. package/dist/sensors/vl53lx/uld/link.d.ts.map +1 -0
  148. package/dist/sensors/vl53lx/uld/link.js +28 -0
  149. package/dist/sensors/vl53lx/uld/link.js.map +1 -0
  150. package/dist/sensors/vl53lx/uld/registry.d.ts +68 -0
  151. package/dist/sensors/vl53lx/uld/registry.d.ts.map +1 -0
  152. package/dist/sensors/vl53lx/uld/registry.js +139 -0
  153. package/dist/sensors/vl53lx/uld/registry.js.map +1 -0
  154. package/dist/sensors/vl53lx/uld/vl53l1-die.d.ts +172 -0
  155. package/dist/sensors/vl53lx/uld/vl53l1-die.d.ts.map +1 -0
  156. package/dist/sensors/vl53lx/uld/vl53l1-die.js +431 -0
  157. package/dist/sensors/vl53lx/uld/vl53l1-die.js.map +1 -0
  158. package/dist/sensors/vl53lx/vl53lx.d.ts +323 -0
  159. package/dist/sensors/vl53lx/vl53lx.d.ts.map +1 -0
  160. package/dist/sensors/vl53lx/vl53lx.js +688 -0
  161. package/dist/sensors/vl53lx/vl53lx.js.map +1 -0
  162. package/dist/transport/webserial.d.ts +4 -0
  163. package/dist/transport/webserial.d.ts.map +1 -1
  164. package/dist/transport/webserial.js +58 -12
  165. package/dist/transport/webserial.js.map +1 -1
  166. package/package.json +9 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hist.js","sourceRoot":"","sources":["../../../../../src/sensors/vl53lx/uld/bare/hist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * uld/bare/image — the device state the BareDriver keeps, and how it moves.
3
+ * Mirror of the Python `depz_sensor_sdk.vl53lx.uld.bare.image`.
4
+ *
5
+ * The C driver holds one struct per register block inside
6
+ * `VL53LX_LLDriverData_t` and never reads a configuration register on its own:
7
+ * it edits the struct, then pushes whole blocks. Ranging start is the extreme
8
+ * case — `VL53LX_init_and_start_range()` writes 0x0001..0x0087 in a single
9
+ * 135-byte transfer. Block moves keep the USB round trips where the C driver
10
+ * has them.
11
+ *
12
+ * The blocks are almost contiguous: static_nvm ends at 0x000C and customer_nvm
13
+ * starts at 0x000D. The C driver zeroes the whole buffer first and drops each
14
+ * block at its own offset, so the reserved byte goes out as 0x00;
15
+ * `pushRange()` does the same, for the same bytes on the wire.
16
+ */
17
+ import type { BridgePlatform } from "../base.js";
18
+ import { RegBlock, type BlockName } from "./regs.js";
19
+ /** The blocks `init_and_start_range` pushes, in address order. */
20
+ export declare const RANGE_START_BLOCKS: readonly BlockName[];
21
+ /**
22
+ * The device's register image, block by block. Blocks are reached as
23
+ * properties under their C name minus the type suffix:
24
+ * `img.static_config.v.dss_config__target_total_rate_mcps`. Editing a field
25
+ * only touches the host copy; `push()` is what reaches the sensor.
26
+ */
27
+ export declare class DeviceImage {
28
+ readonly p: BridgePlatform;
29
+ readonly blocks: Record<BlockName, RegBlock>;
30
+ constructor(p: BridgePlatform);
31
+ get static_nvm_managed(): RegBlock;
32
+ get customer_nvm_managed(): RegBlock;
33
+ get static_config(): RegBlock;
34
+ get general_config(): RegBlock;
35
+ get timing_config(): RegBlock;
36
+ get dynamic_config(): RegBlock;
37
+ get system_control(): RegBlock;
38
+ get system_results(): RegBlock;
39
+ get core_results(): RegBlock;
40
+ get debug_results(): RegBlock;
41
+ get nvm_copy_data(): RegBlock;
42
+ /** Read one block off the sensor into the image. */
43
+ pull(name: BlockName): Promise<RegBlock>;
44
+ /** Write one block from the image to the sensor. */
45
+ push(name: BlockName): Promise<void>;
46
+ /** [base, total size] covering the named blocks, reserved bytes included. */
47
+ static span(names: readonly BlockName[]): [number, number];
48
+ pullRange(names: readonly BlockName[]): Promise<void>;
49
+ pushRange(names: readonly BlockName[]): Promise<void>;
50
+ /** Every field of the named blocks (default: all), one per line. */
51
+ dump(names?: readonly BlockName[]): string;
52
+ }
53
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../../../src/sensors/vl53lx/uld/bare/image.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAuB,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAE1E,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,EAAE,SAAS,SAAS,EAQlD,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,WAAW;IAGV,QAAQ,CAAC,CAAC,EAAE,cAAc;IAFtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAExB,CAAC,EAAE,cAAc;IAMtC,IAAI,kBAAkB,IAAI,QAAQ,CAA2C;IAC7E,IAAI,oBAAoB,IAAI,QAAQ,CAA6C;IACjF,IAAI,aAAa,IAAI,QAAQ,CAAsC;IACnE,IAAI,cAAc,IAAI,QAAQ,CAAuC;IACrE,IAAI,aAAa,IAAI,QAAQ,CAAsC;IACnE,IAAI,cAAc,IAAI,QAAQ,CAAuC;IACrE,IAAI,cAAc,IAAI,QAAQ,CAAuC;IACrE,IAAI,cAAc,IAAI,QAAQ,CAAuC;IACrE,IAAI,YAAY,IAAI,QAAQ,CAAqC;IACjE,IAAI,aAAa,IAAI,QAAQ,CAAsC;IACnE,IAAI,aAAa,IAAI,QAAQ,CAAsC;IAGnE,oDAAoD;IAC9C,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK9C,oDAAoD;IAC9C,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1C,6EAA6E;IAC7E,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAMpD,SAAS,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD,SAAS,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3D,oEAAoE;IACpE,IAAI,CAAC,KAAK,GAAE,SAAS,SAAS,EAAgB,GAAG,MAAM;CAWxD"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * uld/bare/image — the device state the BareDriver keeps, and how it moves.
3
+ * Mirror of the Python `depz_sensor_sdk.vl53lx.uld.bare.image`.
4
+ *
5
+ * The C driver holds one struct per register block inside
6
+ * `VL53LX_LLDriverData_t` and never reads a configuration register on its own:
7
+ * it edits the struct, then pushes whole blocks. Ranging start is the extreme
8
+ * case — `VL53LX_init_and_start_range()` writes 0x0001..0x0087 in a single
9
+ * 135-byte transfer. Block moves keep the USB round trips where the C driver
10
+ * has them.
11
+ *
12
+ * The blocks are almost contiguous: static_nvm ends at 0x000C and customer_nvm
13
+ * starts at 0x000D. The C driver zeroes the whole buffer first and drops each
14
+ * block at its own offset, so the reserved byte goes out as 0x00;
15
+ * `pushRange()` does the same, for the same bytes on the wire.
16
+ */
17
+ import { BLOCKS, BLOCK_NAMES, RegBlock } from "./regs.js";
18
+ /** The blocks `init_and_start_range` pushes, in address order. */
19
+ export const RANGE_START_BLOCKS = [
20
+ "static_nvm_managed",
21
+ "customer_nvm_managed",
22
+ "static_config",
23
+ "general_config",
24
+ "timing_config",
25
+ "dynamic_config",
26
+ "system_control",
27
+ ];
28
+ /**
29
+ * The device's register image, block by block. Blocks are reached as
30
+ * properties under their C name minus the type suffix:
31
+ * `img.static_config.v.dss_config__target_total_rate_mcps`. Editing a field
32
+ * only touches the host copy; `push()` is what reaches the sensor.
33
+ */
34
+ export class DeviceImage {
35
+ p;
36
+ blocks;
37
+ constructor(p) {
38
+ this.p = p;
39
+ const blocks = {};
40
+ for (const name of BLOCK_NAMES)
41
+ blocks[name] = new RegBlock(name);
42
+ this.blocks = blocks;
43
+ }
44
+ get static_nvm_managed() { return this.blocks.static_nvm_managed; }
45
+ get customer_nvm_managed() { return this.blocks.customer_nvm_managed; }
46
+ get static_config() { return this.blocks.static_config; }
47
+ get general_config() { return this.blocks.general_config; }
48
+ get timing_config() { return this.blocks.timing_config; }
49
+ get dynamic_config() { return this.blocks.dynamic_config; }
50
+ get system_control() { return this.blocks.system_control; }
51
+ get system_results() { return this.blocks.system_results; }
52
+ get core_results() { return this.blocks.core_results; }
53
+ get debug_results() { return this.blocks.debug_results; }
54
+ get nvm_copy_data() { return this.blocks.nvm_copy_data; }
55
+ // ── one block ──
56
+ /** Read one block off the sensor into the image. */
57
+ async pull(name) {
58
+ const blk = this.blocks[name];
59
+ return blk.decode(await this.p.rdMulti(blk.base, blk.size));
60
+ }
61
+ /** Write one block from the image to the sensor. */
62
+ async push(name) {
63
+ const blk = this.blocks[name];
64
+ if (!BLOCKS[name].writable)
65
+ throw new Error(`${name} is read-only`);
66
+ await this.p.wrMulti(blk.base, blk.encode());
67
+ }
68
+ // ── a run of blocks, as one transfer ──
69
+ /** [base, total size] covering the named blocks, reserved bytes included. */
70
+ static span(names) {
71
+ const base = Math.min(...names.map((n) => BLOCKS[n].base));
72
+ const end = Math.max(...names.map((n) => BLOCKS[n].base + BLOCKS[n].size));
73
+ return [base, end - base];
74
+ }
75
+ async pullRange(names) {
76
+ const [base, size] = DeviceImage.span(names);
77
+ const raw = await this.p.rdMulti(base, size);
78
+ for (const name of names) {
79
+ const blk = this.blocks[name];
80
+ const off = blk.base - base;
81
+ blk.decode(raw.subarray(off, off + blk.size));
82
+ }
83
+ }
84
+ async pushRange(names) {
85
+ const [base, size] = DeviceImage.span(names);
86
+ const buf = new Uint8Array(size);
87
+ for (const name of names) {
88
+ if (!BLOCKS[name].writable)
89
+ throw new Error(`${name} is read-only`);
90
+ const blk = this.blocks[name];
91
+ buf.set(blk.encode(), blk.base - base);
92
+ }
93
+ await this.p.wrMulti(base, buf);
94
+ }
95
+ // ── diagnostics ──
96
+ /** Every field of the named blocks (default: all), one per line. */
97
+ dump(names = BLOCK_NAMES) {
98
+ const lines = [];
99
+ for (const name of names) {
100
+ const blk = this.blocks[name];
101
+ lines.push(`--- ${name} @ 0x${blk.base.toString(16).toUpperCase().padStart(4, "0")} (${blk.size} B)`);
102
+ for (const [field, value] of blk.items())
103
+ lines.push(` ${field.padEnd(52)} ${value}`);
104
+ }
105
+ return lines.join("\n");
106
+ }
107
+ }
108
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../../src/sensors/vl53lx/uld/bare/image.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * uld/bare/imath — Python integer semantics on JS numbers, for the BareDriver
3
+ * port. The Python reference (itself a port of ST's C) relies on arbitrary
4
+ * precision ints, `//` flooring, `%` taking the sign of the divisor, and `<<`
5
+ * / `>>` that never wrap. JS `<<`/`>>` are 32-bit and `/` is float, so every
6
+ * such expression in core.ts / hist.ts goes through these helpers.
7
+ *
8
+ * Exactness: for integers |a| < 2^53 and b != 0, `Math.floor(a / b)` and
9
+ * `Math.trunc(a / b)` are exact (the float quotient cannot round across an
10
+ * integer unless |a| exceeds 2^53). Expressions that can leave that range —
11
+ * the sigma estimate, the event-consistency scaler, the per-SPAD rate — are
12
+ * done in BigInt where they are used.
13
+ *
14
+ * Division or modulo by zero throws, as Python raises ZeroDivisionError.
15
+ */
16
+ export declare class ZeroDivisionError extends Error {
17
+ }
18
+ /** Python `a // b` (floor). */
19
+ export declare function floorDiv(a: number, b: number): number;
20
+ /** Python `a % b` (sign of the divisor). */
21
+ export declare function pymod(a: number, b: number): number;
22
+ /** C `/` on integers: truncates towards zero (hist.py `cdiv`). */
23
+ export declare function cdiv(a: number, b: number): number;
24
+ /** Python `a << n` without the 32-bit wrap. */
25
+ export declare function shl(a: number, n: number): number;
26
+ /** Python `a >> n` (floors, also for negatives) without the 32-bit wrap. */
27
+ export declare function shr(a: number, n: number): number;
28
+ /** `math.isqrt` on a non-negative safe integer. */
29
+ export declare function isqrtNum(n: number): number;
30
+ /** `math.isqrt` on a non-negative BigInt. */
31
+ export declare function isqrtBig(n: bigint): bigint;
32
+ /** Python `abs` / `min` / `max` on BigInt. */
33
+ export declare function babs(a: bigint): bigint;
34
+ export declare function bmin(a: bigint, b: bigint): bigint;
35
+ /** C-style truncating division on BigInt — BigInt `/` already truncates. */
36
+ export declare function bcdiv(a: bigint, b: bigint): bigint;
37
+ /** Python `//` on BigInt (floor). */
38
+ export declare function bfloorDiv(a: bigint, b: bigint): bigint;
39
+ //# sourceMappingURL=imath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imath.d.ts","sourceRoot":"","sources":["../../../../../src/sensors/vl53lx/uld/bare/imath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAM/C,+BAA+B;AAC/B,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,4CAA4C;AAC5C,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED,kEAAkE;AAClE,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,+CAA+C;AAC/C,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,4EAA4E;AAC5E,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,mDAAmD;AACnD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAM1C;AAED,6CAA6C;AAC7C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAc1C;AAED,8CAA8C;AAC9C,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtC;AACD,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,4EAA4E;AAC5E,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAItD"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * uld/bare/imath — Python integer semantics on JS numbers, for the BareDriver
3
+ * port. The Python reference (itself a port of ST's C) relies on arbitrary
4
+ * precision ints, `//` flooring, `%` taking the sign of the divisor, and `<<`
5
+ * / `>>` that never wrap. JS `<<`/`>>` are 32-bit and `/` is float, so every
6
+ * such expression in core.ts / hist.ts goes through these helpers.
7
+ *
8
+ * Exactness: for integers |a| < 2^53 and b != 0, `Math.floor(a / b)` and
9
+ * `Math.trunc(a / b)` are exact (the float quotient cannot round across an
10
+ * integer unless |a| exceeds 2^53). Expressions that can leave that range —
11
+ * the sigma estimate, the event-consistency scaler, the per-SPAD rate — are
12
+ * done in BigInt where they are used.
13
+ *
14
+ * Division or modulo by zero throws, as Python raises ZeroDivisionError.
15
+ */
16
+ export class ZeroDivisionError extends Error {
17
+ }
18
+ function checkDivisor(b) {
19
+ if (b === 0)
20
+ throw new ZeroDivisionError("integer division or modulo by zero");
21
+ }
22
+ /** Python `a // b` (floor). */
23
+ export function floorDiv(a, b) {
24
+ checkDivisor(b);
25
+ return Math.floor(a / b);
26
+ }
27
+ /** Python `a % b` (sign of the divisor). */
28
+ export function pymod(a, b) {
29
+ checkDivisor(b);
30
+ const r = a % b;
31
+ return r !== 0 && r < 0 !== b < 0 ? r + b : r;
32
+ }
33
+ /** C `/` on integers: truncates towards zero (hist.py `cdiv`). */
34
+ export function cdiv(a, b) {
35
+ checkDivisor(b);
36
+ return Math.trunc(a / b);
37
+ }
38
+ /** Python `a << n` without the 32-bit wrap. */
39
+ export function shl(a, n) {
40
+ return a * 2 ** n;
41
+ }
42
+ /** Python `a >> n` (floors, also for negatives) without the 32-bit wrap. */
43
+ export function shr(a, n) {
44
+ return Math.floor(a / 2 ** n);
45
+ }
46
+ /** `math.isqrt` on a non-negative safe integer. */
47
+ export function isqrtNum(n) {
48
+ if (n < 0)
49
+ throw new RangeError("isqrt() argument must be nonnegative");
50
+ let r = Math.floor(Math.sqrt(n));
51
+ while (r * r > n)
52
+ r--;
53
+ while ((r + 1) * (r + 1) <= n)
54
+ r++;
55
+ return r;
56
+ }
57
+ /** `math.isqrt` on a non-negative BigInt. */
58
+ export function isqrtBig(n) {
59
+ if (n < 0n)
60
+ throw new RangeError("isqrt() argument must be nonnegative");
61
+ if (n < 2n)
62
+ return n;
63
+ // Newton from a float seed, then settle.
64
+ let x = BigInt(Math.floor(Math.sqrt(Number(n))));
65
+ if (x === 0n)
66
+ x = 1n;
67
+ for (;;) {
68
+ const y = (x + n / x) >> 1n;
69
+ if (y >= x)
70
+ break;
71
+ x = y;
72
+ }
73
+ while (x * x > n)
74
+ x--;
75
+ while ((x + 1n) * (x + 1n) <= n)
76
+ x++;
77
+ return x;
78
+ }
79
+ /** Python `abs` / `min` / `max` on BigInt. */
80
+ export function babs(a) {
81
+ return a < 0n ? -a : a;
82
+ }
83
+ export function bmin(a, b) {
84
+ return a < b ? a : b;
85
+ }
86
+ /** C-style truncating division on BigInt — BigInt `/` already truncates. */
87
+ export function bcdiv(a, b) {
88
+ if (b === 0n)
89
+ throw new ZeroDivisionError("integer division or modulo by zero");
90
+ return a / b;
91
+ }
92
+ /** Python `//` on BigInt (floor). */
93
+ export function bfloorDiv(a, b) {
94
+ if (b === 0n)
95
+ throw new ZeroDivisionError("integer division or modulo by zero");
96
+ const q = a / b;
97
+ return (a % b !== 0n) && ((a < 0n) !== (b < 0n)) ? q - 1n : q;
98
+ }
99
+ //# sourceMappingURL=imath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imath.js","sourceRoot":"","sources":["../../../../../src/sensors/vl53lx/uld/bare/imath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * uld/bare — ST's VL53LX Bare Driver on the host (histogram mode), for
3
+ * VL53L1CX / L1CB / L3CX / L4CX. Mirror of the Python
4
+ * `depz_sensor_sdk.vl53lx.uld.bare` package:
5
+ *
6
+ * regs.ts register blocks and their codec (generated table)
7
+ * image.ts DeviceImage — the blocks that make up the device state
8
+ * nvm.ts NvmReader — the factory calibration outside the registers
9
+ * tuning.ts ST's tuning parameters (generated table)
10
+ * core.ts BareDriver — presets, timing maths, ranging cycle, the frame
11
+ * hist.ts post-processing — 24 bins into targets, host only
12
+ * driver.ts VL53LX — the SensorDriver the device class talks to
13
+ * imath.ts Python integer semantics on JS numbers
14
+ */
15
+ export { DeviceImage } from "./image.js";
16
+ export { NvmReader } from "./nvm.js";
17
+ export { BLOCKS, RegBlock } from "./regs.js";
18
+ export { TUNING, DEFAULTS } from "./tuning.js";
19
+ export { BareDriver, HistogramBinData } from "./core.js";
20
+ export { processData, toMeasurement, FrameHistory } from "./hist.js";
21
+ export { VL53LX } from "./driver.js";
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/sensors/vl53lx/uld/bare/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * uld/bare — ST's VL53LX Bare Driver on the host (histogram mode), for
3
+ * VL53L1CX / L1CB / L3CX / L4CX. Mirror of the Python
4
+ * `depz_sensor_sdk.vl53lx.uld.bare` package:
5
+ *
6
+ * regs.ts register blocks and their codec (generated table)
7
+ * image.ts DeviceImage — the blocks that make up the device state
8
+ * nvm.ts NvmReader — the factory calibration outside the registers
9
+ * tuning.ts ST's tuning parameters (generated table)
10
+ * core.ts BareDriver — presets, timing maths, ranging cycle, the frame
11
+ * hist.ts post-processing — 24 bins into targets, host only
12
+ * driver.ts VL53LX — the SensorDriver the device class talks to
13
+ * imath.ts Python integer semantics on JS numbers
14
+ */
15
+ export { DeviceImage } from "./image.js";
16
+ export { NvmReader } from "./nvm.js";
17
+ export { BLOCKS, RegBlock } from "./regs.js";
18
+ export { TUNING, DEFAULTS } from "./tuning.js";
19
+ export { BareDriver, HistogramBinData } from "./core.js";
20
+ export { processData, toMeasurement, FrameHistory } from "./hist.js";
21
+ export { VL53LX } from "./driver.js";
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/sensors/vl53lx/uld/bare/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * uld/bare/nvm — the raw NVM, which the register blocks do not cover.
3
+ * Mirror of the Python `depz_sensor_sdk.vl53lx.uld.bare.nvm`.
4
+ *
5
+ * Part of the factory calibration never appears in the register map: the
6
+ * optical centre, the 5x5 peak-rate map, the mode-mitigation offset
7
+ * calibration and the FMT range results. To get at them the driver stops the
8
+ * firmware, powers the NVM array and clocks words out of it one at a time —
9
+ * four writes and a read per 32-bit word. That cost is why this reads regions,
10
+ * not the whole array.
11
+ *
12
+ * Every region is wrapped in its own enable/disable pair (as
13
+ * `VL53LX_read_nvm_raw_data()` does): the sensor must not be left with its
14
+ * firmware stopped by an exception in the middle of a multi-region read.
15
+ *
16
+ * Reference: vl53lx_nvm.c, vl53lx_nvm_map.h.
17
+ */
18
+ import type { BridgePlatform } from "../base.js";
19
+ import type { DeviceImage } from "./image.js";
20
+ export declare const POWER_MANAGEMENT__GO1_POWER_FORCE = 131;
21
+ export declare const FIRMWARE__ENABLE = 133;
22
+ export declare const RANGING_CORE__CLK_CTRL1 = 1667;
23
+ export declare const RANGING_CORE__NVM_CTRL__MODE = 1920;
24
+ export declare const RANGING_CORE__NVM_CTRL__PDN = 1921;
25
+ export declare const RANGING_CORE__NVM_CTRL__READN = 1923;
26
+ export declare const RANGING_CORE__NVM_CTRL__PULSE_WIDTH_MSB = 1924;
27
+ export declare const RANGING_CORE__NVM_CTRL__DATAOUT_MMM = 1936;
28
+ export declare const RANGING_CORE__NVM_CTRL__ADDR = 1940;
29
+ export declare const NVM_POWER_UP_DELAY_US = 50;
30
+ export declare const NVM_READ_TRIGGER_DELAY_US = 5;
31
+ export declare const ENABLE_POWERFORCE_SETTLING_TIME_US = 250;
32
+ export declare const NVM_CTRL_PULSE_WIDTH = 4;
33
+ export type NvmRegion = readonly [number, number];
34
+ export declare const FMT_OPTICAL_CENTRE: NvmRegion;
35
+ export declare const FMT_CAL_PEAK_RATE_MAP: NvmRegion;
36
+ export declare const FMT_ADDITIONAL_OFFSET_CAL: NvmRegion;
37
+ export declare const FMT_RANGE_RESULTS__140MM_DARK: NvmRegion;
38
+ export declare const PEAK_RATE_MAP_WIDTH = 5;
39
+ export declare const PEAK_RATE_MAP_HEIGHT = 5;
40
+ export declare const PEAK_RATE_MAP_SAMPLES: number;
41
+ export interface OpticalCentre {
42
+ x_centre: number;
43
+ y_centre: number;
44
+ }
45
+ export interface CalPeakRateMap {
46
+ cal_distance_mm: number;
47
+ cal_reflectance_pc: number;
48
+ max_samples: number;
49
+ width: number;
50
+ height: number;
51
+ peak_rate_mcps: number[];
52
+ }
53
+ export interface AdditionalOffsetCalData {
54
+ result__mm_inner_actual_effective_spads: number;
55
+ result__mm_outer_actual_effective_spads: number;
56
+ result__mm_inner_peak_signal_count_rtn_mcps: number;
57
+ result__mm_outer_peak_signal_count_rtn_mcps: number;
58
+ }
59
+ export interface FmtRangeData {
60
+ result__actual_effective_rtn_spads: number;
61
+ ref_spad_array__num_requested_ref_spads: number;
62
+ ref_spad_array__ref_location: number;
63
+ result__peak_signal_count_rate_rtn_mcps: number;
64
+ result__ambient_count_rate_rtn_mcps: number;
65
+ result__peak_signal_count_rate_ref_mcps: number;
66
+ result__ambient_count_rate_ref_mcps: number;
67
+ measured_distance_mm: number;
68
+ measured_distance_stdev_mm: number;
69
+ }
70
+ /** Raw NVM access. Holds no state between reads — the sensor does. */
71
+ export declare class NvmReader {
72
+ readonly p: BridgePlatform;
73
+ readonly img: DeviceImage;
74
+ constructor(p: BridgePlatform, img: DeviceImage);
75
+ private enable;
76
+ private disable;
77
+ private readWords;
78
+ /** [byte index, byte size] → the bytes. Both must be word-aligned. */
79
+ readRegion(region: NvmRegion): Promise<Uint8Array>;
80
+ opticalCentre(): Promise<OpticalCentre>;
81
+ calPeakRateMap(): Promise<CalPeakRateMap>;
82
+ additionalOffsetCalData(): Promise<AdditionalOffsetCalData>;
83
+ fmtRangeResults(region?: NvmRegion): Promise<FmtRangeData>;
84
+ }
85
+ //# sourceMappingURL=nvm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nvm.d.ts","sourceRoot":"","sources":["../../../../../src/sensors/vl53lx/uld/bare/nvm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,eAAO,MAAM,iCAAiC,MAAS,CAAC;AACxD,eAAO,MAAM,gBAAgB,MAAS,CAAC;AACvC,eAAO,MAAM,uBAAuB,OAAS,CAAC;AAC9C,eAAO,MAAM,4BAA4B,OAAS,CAAC;AACnD,eAAO,MAAM,2BAA2B,OAAS,CAAC;AAClD,eAAO,MAAM,6BAA6B,OAAS,CAAC;AACpD,eAAO,MAAM,uCAAuC,OAAS,CAAC;AAC9D,eAAO,MAAM,mCAAmC,OAAS,CAAC;AAC1D,eAAO,MAAM,4BAA4B,OAAS,CAAC;AAGnD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,kCAAkC,MAAM,CAAC;AACtD,eAAO,MAAM,oBAAoB,IAAS,CAAC;AAG3C,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,eAAO,MAAM,kBAAkB,EAAE,SAAuB,CAAC;AACzD,eAAO,MAAM,qBAAqB,EAAE,SAAwB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,EAAE,SAAuB,CAAC;AAChE,eAAO,MAAM,6BAA6B,EAAE,SAAwB,CAAC;AAErE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,qBAAqB,QAA6C,CAAC;AAGhF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,uCAAuC,EAAE,MAAM,CAAC;IAChD,uCAAuC,EAAE,MAAM,CAAC;IAChD,2CAA2C,EAAE,MAAM,CAAC;IACpD,2CAA2C,EAAE,MAAM,CAAC;CACrD;AAED,MAAM,WAAW,YAAY;IAC3B,kCAAkC,EAAE,MAAM,CAAC;IAC3C,uCAAuC,EAAE,MAAM,CAAC;IAChD,4BAA4B,EAAE,MAAM,CAAC;IACrC,uCAAuC,EAAE,MAAM,CAAC;IAChD,mCAAmC,EAAE,MAAM,CAAC;IAC5C,uCAAuC,EAAE,MAAM,CAAC;IAChD,mCAAmC,EAAE,MAAM,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAMD,sEAAsE;AACtE,qBAAa,SAAS;IAElB,QAAQ,CAAC,CAAC,EAAE,cAAc;IAC1B,QAAQ,CAAC,GAAG,EAAE,WAAW;gBADhB,CAAC,EAAE,cAAc,EACjB,GAAG,EAAE,WAAW;YAIb,MAAM;YAgBN,OAAO;YAUP,SAAS;IAcvB,sEAAsE;IAChE,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBlD,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;IAczC,uBAAuB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAU3D,eAAe,CAAC,MAAM,GAAE,SAAyC,GAAG,OAAO,CAAC,YAAY,CAAC;CAchG"}