@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,306 @@
1
+ /**
2
+ * uld/l0x — VL53L0X API 1.0.4: the ranging path. Async port of the Python
3
+ * `depz_sensor_sdk.vl53lx.uld.l0x` (vl53l0x_api.c / vl53l0x_api_core.c /
4
+ * vl53l0x_api_calibration.c): DataInit, StaticInit (reference SPADs from NVM
5
+ * + tuning settings), the timing-budget arithmetic, Start/StopMeasurement,
6
+ * GetRangingMeasurementData with its PAL range status (sigma estimate
7
+ * included), PerformRefCalibration, PerformRefSpadManagement, the offset and
8
+ * crosstalk calibrations and the ranging profiles of the four ST examples.
9
+ *
10
+ * Register sequences, integer widths and the deliberate overflows are kept as
11
+ * in C — do not "simplify" them. Arithmetic that can leave int32 goes through
12
+ * `arith.ts`; the sigma estimate (intermediates past 2^53) runs on BigInt.
13
+ *
14
+ * There is no ROI on this die.
15
+ */
16
+ import { SensorDriver, type BridgePlatform, type Measurement } from "./base.js";
17
+ export declare const L0X_API_VERSION: readonly [1, 0, 4];
18
+ export declare const SYSRANGE_START = 0;
19
+ export declare const SYSRANGE_MODE_SINGLESHOT = 0;
20
+ export declare const SYSRANGE_MODE_START_STOP = 1;
21
+ export declare const SYSRANGE_MODE_BACKTOBACK = 2;
22
+ export declare const SYSRANGE_MODE_TIMED = 4;
23
+ export declare const SYSTEM_SEQUENCE_CONFIG = 1;
24
+ export declare const SYSTEM_INTERMEASUREMENT_PERIOD = 4;
25
+ export declare const SYSTEM_RANGE_CONFIG = 9;
26
+ export declare const SYSTEM_INTERRUPT_CONFIG_GPIO = 10;
27
+ export declare const SYSTEM_INTERRUPT_CLEAR = 11;
28
+ export declare const SYSTEM_THRESH_HIGH = 12;
29
+ export declare const SYSTEM_THRESH_LOW = 14;
30
+ export declare const RESULT_INTERRUPT_STATUS = 19;
31
+ export declare const RESULT_RANGE_STATUS = 20;
32
+ export declare const CROSSTALK_COMPENSATION_PEAK_RATE_MCPS = 32;
33
+ export declare const ALGO_PART_TO_PART_RANGE_OFFSET_MM = 40;
34
+ export declare const ALGO_PHASECAL_CONFIG_TIMEOUT = 48;
35
+ export declare const GLOBAL_CONFIG_VCSEL_WIDTH = 50;
36
+ export declare const FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT = 68;
37
+ export declare const MSRC_CONFIG_TIMEOUT_MACROP = 70;
38
+ export declare const FINAL_RANGE_CONFIG_VALID_PHASE_LOW = 71;
39
+ export declare const FINAL_RANGE_CONFIG_VALID_PHASE_HIGH = 72;
40
+ export declare const DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD = 78;
41
+ export declare const DYNAMIC_SPAD_REF_EN_START_OFFSET = 79;
42
+ export declare const PRE_RANGE_CONFIG_VCSEL_PERIOD = 80;
43
+ export declare const PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI = 81;
44
+ export declare const PRE_RANGE_CONFIG_VALID_PHASE_LOW = 86;
45
+ export declare const PRE_RANGE_CONFIG_VALID_PHASE_HIGH = 87;
46
+ export declare const MSRC_CONFIG_CONTROL = 96;
47
+ export declare const PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT = 100;
48
+ export declare const FINAL_RANGE_CONFIG_VCSEL_PERIOD = 112;
49
+ export declare const FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI = 113;
50
+ export declare const POWER_MANAGEMENT_GO1_POWER_FORCE = 128;
51
+ export declare const GPIO_HV_MUX_ACTIVE_HIGH = 132;
52
+ export declare const SOFT_RESET_GO2_SOFT_RESET_N = 191;
53
+ export declare const GLOBAL_CONFIG_SPAD_ENABLES_REF_0 = 176;
54
+ export declare const GLOBAL_CONFIG_REF_EN_START_SELECT = 182;
55
+ export declare const IDENTIFICATION_MODEL_ID = 192;
56
+ export declare const OSC_CALIBRATE_VAL = 248;
57
+ export declare const ALGO_PHASECAL_LIM = 48;
58
+ export declare const RESULT_PEAK_SIGNAL_RATE_REF = 182;
59
+ /** One byte at 0xC0, unlike the 16-bit family. */
60
+ export declare const MODEL_ID_VL53L0X = 238;
61
+ export declare const DEVICEMODE_SINGLE_RANGING = 0;
62
+ export declare const DEVICEMODE_CONTINUOUS_RANGING = 1;
63
+ export declare const DEVICEMODE_CONTINUOUS_TIMED = 3;
64
+ export declare const GPIOFUNCTIONALITY_NEW_MEASURE_READY = 4;
65
+ export declare const SEQUENCESTEP_TCC = 0;
66
+ export declare const SEQUENCESTEP_DSS = 1;
67
+ export declare const SEQUENCESTEP_MSRC = 2;
68
+ export declare const SEQUENCESTEP_PRE_RANGE = 3;
69
+ export declare const SEQUENCESTEP_FINAL_RANGE = 4;
70
+ export declare const VCSEL_PERIOD_PRE_RANGE = 0;
71
+ export declare const VCSEL_PERIOD_FINAL_RANGE = 1;
72
+ export declare const CHECK_SIGMA_FINAL_RANGE = 0;
73
+ export declare const CHECK_SIGNAL_RATE_FINAL_RANGE = 1;
74
+ export declare const CHECK_SIGNAL_REF_CLIP = 2;
75
+ export declare const CHECK_RANGE_IGNORE_THRESHOLD = 3;
76
+ export declare const CHECK_SIGNAL_RATE_MSRC = 4;
77
+ export declare const CHECK_SIGNAL_RATE_PRE_RANGE = 5;
78
+ export declare const CHECK_NUMBER_OF_CHECKS = 6;
79
+ export declare const DEFAULT_MAX_LOOP = 2000;
80
+ /** 20 Mcps in 9.7 format, the ref-SPAD target. */
81
+ export declare const TARGET_REF_RATE = 2560;
82
+ export declare const SPEED_OF_LIGHT_IN_AIR = 2997;
83
+ export declare const REF_SPAD_BUFFER_SIZE = 6;
84
+ /**
85
+ * The ranging modes of the four ST examples: (signal Mcps, sigma mm, budget
86
+ * us, pre-range PCLK, final PCLK). 'default' is what StaticInit leaves.
87
+ */
88
+ export declare const L0X_MODE_DEFAULT = "default";
89
+ export declare const L0X_MODE_SETTINGS: ReadonlyMap<string, readonly [number, number, number, number, number]>;
90
+ /**
91
+ * DefaultTuningSettings[] (vl53l0x_tuning.h, "update 02/11/2015_v36"): a run
92
+ * of {count, address, count bytes...} records ended by a zero count.
93
+ */
94
+ export declare const DEFAULT_TUNING_SETTINGS: Uint8Array<ArrayBuffer>;
95
+ /** Dmax lookup table set up by DataInit, FixPoint16.16. */
96
+ export declare const DMAX_LUT_AMB_RATE_MCPS: readonly number[];
97
+ export declare const DMAX_LUT_DMAX_MM: readonly number[];
98
+ /** The block the MCU streams: RESULT_RANGE_STATUS .. 0x1F. */
99
+ export declare const L0X_RESULT_BLOCK_ADDR = 20;
100
+ export declare const L0X_RESULT_BLOCK_LEN = 12;
101
+ /** Two writes release this sensor's interrupt. */
102
+ export declare const L0X_CLEAR_STEPS: ReadonlyArray<readonly [number, number]>;
103
+ /** The only part of the family with 8-bit register addresses. */
104
+ export declare const L0X_ADDR_WIDTH = 1;
105
+ /** VL53L0X_GetRangeStatusString(). */
106
+ export declare const L0X_RANGE_STATUS_NAMES: Readonly<Record<number, string>>;
107
+ /** VL53L0X_isqrt() on BigInt — the bit-by-bit integer square root. */
108
+ export declare function isqrt(numIn: bigint): bigint;
109
+ export declare function decodeVcselPeriod(reg: number): number;
110
+ export declare function encodeVcselPeriod(pclks: number): number;
111
+ /** (LSByte * 2^MSByte) + 1 format. */
112
+ export declare function encodeTimeout(timeoutMacroClks: number): number;
113
+ export declare function decodeTimeout(encoded: number): number;
114
+ /** 2304 vclks per macro period, PLL period fixed at 1655 ps. */
115
+ export declare function calcMacroPeriodPs(vcselPeriodPclks: number): number;
116
+ export declare function calcTimeoutMclks(timeoutPeriodUs: number, vcselPeriodPclks: number): number;
117
+ export declare function calcTimeoutUs(timeoutPeriodMclks: number, vcselPeriodPclks: number): number;
118
+ /** Which quadrant a SPAD index falls in decides whether it is an aperture SPAD. */
119
+ export declare function isAperture(spadIndex: number): boolean;
120
+ /** → index of the next enabled bit at or after `curr`, or -1. */
121
+ export declare function getNextGoodSpad(goodSpadArray: ArrayLike<number>, size: number, curr: number): number;
122
+ /** VL53L0X_RangingMeasurementData_t, the fields this port fills. */
123
+ export interface RangingMeasurementData {
124
+ rangeStatus: number;
125
+ distanceMm: number;
126
+ rangeFractionalPart: number;
127
+ /** FixPoint16.16 Mcps. */
128
+ signalRateMcps: number;
129
+ ambientRateMcps: number;
130
+ /** 8.8 format. */
131
+ effectiveSpadRtnCount: number;
132
+ dmaxMm: number;
133
+ sigmaMm: number;
134
+ deviceRangeStatus: number;
135
+ }
136
+ export declare function l0xStatusText(status: number): string;
137
+ /** PALDevData / DeviceSpecificParameters — the state the C driver keeps. */
138
+ export interface L0xDeviceData {
139
+ ReadDataFromDeviceDone: number;
140
+ LinearityCorrectiveGain: number;
141
+ OscFrequencyMHz: number;
142
+ XTalkCompensationRateMegaCps: number;
143
+ XTalkCompensationEnable: number;
144
+ StopVariable: number;
145
+ SequenceConfig: number;
146
+ RangeFractionalEnable: number;
147
+ DeviceMode: number;
148
+ MeasurementTimingBudgetMicroSeconds: number;
149
+ Pin0GpioFunctionality: number;
150
+ ReferenceSpadCount: number;
151
+ ReferenceSpadType: number;
152
+ RefGoodSpadMap: number[];
153
+ RefSpadEnables: number[];
154
+ PreRangeVcselPulsePeriod: number;
155
+ FinalRangeVcselPulsePeriod: number;
156
+ PreRangeTimeoutMicroSecs: number;
157
+ FinalRangeTimeoutMicroSecs: number;
158
+ TargetRefRate: number;
159
+ LimitChecksEnable: number[];
160
+ LimitChecksValue: number[];
161
+ Part2PartOffsetAdjustmentNVMMicroMeter: number;
162
+ SignalRateMeasFixed400mm: number;
163
+ ModuleId: number;
164
+ Revision: number;
165
+ ProductId: string;
166
+ PartUIDUpper: number;
167
+ PartUIDLower: number;
168
+ }
169
+ /** Port of the VL53L0X API 1.0.4 ranging path. */
170
+ export declare class VL53L0X extends SensorDriver {
171
+ static readonly ADDR_WIDTH: number;
172
+ static readonly CLEAR_STEPS: ReadonlyArray<readonly [number, number]>;
173
+ /** No Fast Mode Plus on this die. */
174
+ static readonly MAX_KHZ: number;
175
+ static readonly SUPPORTS: ReadonlySet<string>;
176
+ static readonly MODES: readonly string[];
177
+ /** Below ~20 ms the enabled sequence steps no longer fit the budget. */
178
+ static readonly BUDGET_MS: readonly [number, number];
179
+ /** PALDevData — every field is written before it is read. */
180
+ readonly d: L0xDeviceData;
181
+ /** False when the NVM ref-SPAD record is out of range (static_init). */
182
+ refSpadsFromNvm: boolean;
183
+ /** Which of MODES is applied (the budget reads back rounded). */
184
+ private mode;
185
+ constructor(platform: BridgePlatform, part: string);
186
+ streamBlock(): [number, number];
187
+ decode(raw: Uint8Array): Measurement;
188
+ readMeasurement(): Promise<Measurement>;
189
+ modelId(): Promise<number>;
190
+ /** No firmware-status register: the model id answering says the die is up. */
191
+ waitBoot(timeoutS?: number): Promise<void>;
192
+ /** DataInit + StaticInit, and leave the sensor in continuous mode. */
193
+ sensorInit(): Promise<void>;
194
+ /** VL53L0X_ResetDevice(): pull the die through its soft reset. */
195
+ resetDevice(timeoutS?: number): Promise<void>;
196
+ /** VL53L0X_DataInit(). */
197
+ dataInit(): Promise<void>;
198
+ /** VL53L0X_StaticInit(): reference SPADs, tuning settings, GPIO. */
199
+ staticInit(): Promise<void>;
200
+ performSingleRefCalibration(vhvInitByte: number): Promise<void>;
201
+ /** VL53L0X_ref_calibration_io() in its read direction → [vhv, phase]. */
202
+ refCalibrationIoRead(vhvEnable: boolean, phaseEnable: boolean): Promise<[number, number]>;
203
+ /** VL53L0X_PerformRefCalibration(): VHV, then phase → [vhv, phase]. */
204
+ performRefCalibration(): Promise<[number, number]>;
205
+ deviceReadStrobe(): Promise<void>;
206
+ /**
207
+ * VL53L0X_get_info_from_device(): the fuse copy of the reference SPAD
208
+ * record (option 1), the product identification (option 2) and the part
209
+ * UID plus the factory offset (option 4).
210
+ */
211
+ getInfoFromDevice(option: number): Promise<void>;
212
+ /** VL53L0X_set_reference_spads(): apply the NVM record and verify it. */
213
+ setReferenceSpads(count: number, isApertureSpads: number): Promise<void>;
214
+ /** VL53L0X_load_tuning_settings(): {count, address, bytes...} records. */
215
+ loadTuningSettings(buffer: Uint8Array): Promise<void>;
216
+ /** VL53L0X_SetGpioConfig() for pin 0 in its ranging-interrupt role. */
217
+ setGpioConfig(functionality: number, polarityLow?: boolean): Promise<void>;
218
+ /** VL53L0X_ClearInterruptMask(): two writes, then confirm — up to three rounds. */
219
+ clearInterrupt(): Promise<void>;
220
+ getInterruptMaskStatus(): Promise<number>;
221
+ checkForDataReady(): Promise<boolean>;
222
+ /** → enabled flag per sequence step (indexed by SEQUENCESTEP_*). */
223
+ getSequenceStepEnables(): Promise<boolean[]>;
224
+ setSequenceStepEnable(step: number, enabled: number): Promise<void>;
225
+ getVcselPulsePeriod(periodType: number): Promise<number>;
226
+ getSequenceStepTimeout(step: number): Promise<number>;
227
+ setSequenceStepTimeout(step: number, timeoutUs: number): Promise<void>;
228
+ setMeasurementTimingBudget(budgetUs: number): Promise<void>;
229
+ getMeasurementTimingBudget(): Promise<number>;
230
+ setInterMeasurementPeriod(periodMs: number): Promise<void>;
231
+ getInterMeasurementPeriod(): Promise<number>;
232
+ /** Inter-measurement 0 = back-to-back continuous, else timed continuous. */
233
+ setRangeTiming(timingBudgetMs: number, interMeasurementMs: number): Promise<void>;
234
+ getRangeTiming(): Promise<[number, number]>;
235
+ setDeviceMode(mode: number): void;
236
+ /** The undocumented prologue of every VL53L0X_StartMeasurement(). */
237
+ armStopVariable(): Promise<void>;
238
+ /** VL53L0X_StartMeasurement() for the two continuous modes. */
239
+ startRanging(): Promise<void>;
240
+ /** VL53L0X_StopMeasurement(). */
241
+ stopRanging(): Promise<void>;
242
+ /** VL53L0X_PerformSingleRangingMeasurement(): one shot, start to finish. */
243
+ performSingleRangingMeasurement(): Promise<RangingMeasurementData>;
244
+ getResult(): Promise<RangingMeasurementData>;
245
+ /**
246
+ * VL53L0X_GetRangingMeasurementData() on the 12 bytes at 0x14. Pure
247
+ * arithmetic over the block and the cached device data.
248
+ */
249
+ parseResultBlock(raw: Uint8Array): RangingMeasurementData;
250
+ getTotalXtalkRate(data: RangingMeasurementData): bigint;
251
+ /** VL53L0X_calc_sigma_estimate(), FixPoint16.16 in and out (BigInt). */
252
+ calcSigmaEstimate(data: RangingMeasurementData): number;
253
+ /** VL53L0X_calc_dmax(): ambient-rate → max-range lookup, interpolated. */
254
+ calcDmax(ambRateMeas: number): number;
255
+ /** VL53L0X_get_pal_range_status(): device status plus the enabled limit checks. */
256
+ getPalRangeStatus(data: RangingMeasurementData): void;
257
+ /** VL53L0X_set_vcsel_pulse_period(). */
258
+ setVcselPulsePeriod(periodType: number, pclks: number): Promise<void>;
259
+ /** VL53L0X_perform_phase_calibration() with restore_config = 1. */
260
+ performPhaseCalibration(): Promise<void>;
261
+ /** Apply one of MODES: limits, budget and both VCSEL periods. */
262
+ setMode(name: string): Promise<void>;
263
+ getMode(): Promise<string>;
264
+ /** What the five registers a mode writes currently read back as. */
265
+ driverInfo(): Promise<Record<string, unknown>>;
266
+ /** 10.2-format register: stored in steps of 250 um. */
267
+ setOffsetUm(offsetUm: number): Promise<void>;
268
+ getOffsetUm(): Promise<number>;
269
+ setOffset(offsetMm: number): Promise<void>;
270
+ getOffset(): Promise<number>;
271
+ /** VL53L0X_perform_offset_calibration() → the offset in micrometres. */
272
+ performOffsetCalibration(calDistanceMm: number, nbSamples?: number): Promise<number>;
273
+ /** The family-wide contract: an offset in whole millimetres. */
274
+ calibrateOffset(targetDistMm: number, nbSamples?: number): Promise<number>;
275
+ /** VL53L0X_SetXTalkCompensationEnable(). */
276
+ setXtalkEnable(enable: number): Promise<void>;
277
+ /** VL53L0X_SetXTalkCompensationRateMegaCps(), FixPoint16.16 in. */
278
+ setXtalkRateMcps(rateMcps: number): Promise<void>;
279
+ getXtalkRateMcps(): Promise<number>;
280
+ /** The family-wide contract speaks kcps; the ULD speaks Mcps 16.16. */
281
+ setXtalk(xtalkKcps: number): Promise<void>;
282
+ getXtalk(): Promise<number>;
283
+ /** VL53L0X_perform_xtalk_calibration() → the rate in Mcps 16.16. */
284
+ performXtalkCalibration(calDistanceMm: number, nbSamples?: number): Promise<number>;
285
+ /** The family-wide contract: a crosstalk rate in kcps. */
286
+ calibrateXtalk(targetDistMm: number, nbSamples?: number): Promise<number>;
287
+ getReferenceSpads(): [number, number];
288
+ private setRefSpadMap;
289
+ private getRefSpadMap;
290
+ /** enable_ref_spads(): append good SPADs, apply and read back → next index. */
291
+ private enableRefSpads;
292
+ /** perform_ref_signal_measurement() → peak reference signal rate, 9.7. */
293
+ private performRefSignalMeasurement;
294
+ /** VL53L0X_perform_ref_spad_management() → [count, isAperture]. */
295
+ performRefSpadManagement(): Promise<[number, number]>;
296
+ private storeRefSpads;
297
+ setLimitCheckEnable(check: number, enable: number): Promise<void>;
298
+ setLimitCheckValue(check: number, value: number): Promise<void>;
299
+ getLimitCheckValue(check: number): Promise<number>;
300
+ }
301
+ /**
302
+ * RangingMeasurementData → the family-wide Measurement. The rates are
303
+ * FixPoint16.16 Mcps in the ULD and kcps everywhere else (× 1000/65536).
304
+ */
305
+ export declare function l0xAsMeasurement(r: RangingMeasurementData): Measurement;
306
+ //# sourceMappingURL=l0x.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"l0x.d.ts","sourceRoot":"","sources":["../../../../src/sensors/vl53lx/uld/l0x.ts"],"names":[],"mappings":"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"}