@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.
- package/README.md +13 -5
- package/dist/dataset.d.ts.map +1 -1
- package/dist/dataset.js +66 -2
- package/dist/dataset.js.map +1 -1
- package/dist/device/device.d.ts +6 -0
- package/dist/device/device.d.ts.map +1 -1
- package/dist/device/device.js +29 -6
- package/dist/device/device.js.map +1 -1
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +25 -2
- package/dist/discovery.js.map +1 -1
- package/dist/index.d.ts +21 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/protocol/bno055.d.ts +101 -0
- package/dist/protocol/bno055.d.ts.map +1 -0
- package/dist/protocol/bno055.js +105 -0
- package/dist/protocol/bno055.js.map +1 -0
- package/dist/protocol/identity.d.ts +1 -1
- package/dist/protocol/identity.d.ts.map +1 -1
- package/dist/protocol/identity.js +6 -0
- package/dist/protocol/identity.js.map +1 -1
- package/dist/protocol/vl53l7.d.ts +77 -0
- package/dist/protocol/vl53l7.d.ts.map +1 -0
- package/dist/protocol/vl53l7.js +99 -0
- package/dist/protocol/vl53l7.js.map +1 -0
- package/dist/protocol/vl53lx.d.ts +72 -0
- package/dist/protocol/vl53lx.d.ts.map +1 -0
- package/dist/protocol/vl53lx.js +87 -0
- package/dist/protocol/vl53lx.js.map +1 -0
- package/dist/sensors/bno055/bno055.d.ts +207 -0
- package/dist/sensors/bno055/bno055.d.ts.map +1 -0
- package/dist/sensors/bno055/bno055.js +547 -0
- package/dist/sensors/bno055/bno055.js.map +1 -0
- package/dist/sensors/bno055/regs.d.ts +271 -0
- package/dist/sensors/bno055/regs.d.ts.map +1 -0
- package/dist/sensors/bno055/regs.js +366 -0
- package/dist/sensors/bno055/regs.js.map +1 -0
- package/dist/sensors/bno086/bno086.d.ts +15 -0
- package/dist/sensors/bno086/bno086.d.ts.map +1 -1
- package/dist/sensors/bno086/bno086.js +43 -1
- package/dist/sensors/bno086/bno086.js.map +1 -1
- package/dist/sensors/bno086/sh2.d.ts.map +1 -1
- package/dist/sensors/bno086/sh2.js +5 -2
- package/dist/sensors/bno086/sh2.js.map +1 -1
- package/dist/sensors/reg-bridge.d.ts +35 -0
- package/dist/sensors/reg-bridge.d.ts.map +1 -0
- package/dist/sensors/reg-bridge.js +44 -0
- package/dist/sensors/reg-bridge.js.map +1 -0
- package/dist/sensors/vl53l4/vl53l4.d.ts.map +1 -1
- package/dist/sensors/vl53l4/vl53l4.js +18 -30
- package/dist/sensors/vl53l4/vl53l4.js.map +1 -1
- package/dist/sensors/vl53l7/vl53l7.d.ts +97 -0
- package/dist/sensors/vl53l7/vl53l7.d.ts.map +1 -0
- package/dist/sensors/vl53l7/vl53l7.js +138 -0
- package/dist/sensors/vl53l7/vl53l7.js.map +1 -0
- package/dist/sensors/vl53l8/assets/index.d.ts +5 -1
- package/dist/sensors/vl53l8/assets/index.d.ts.map +1 -1
- package/dist/sensors/vl53l8/assets/index.js +7 -1
- package/dist/sensors/vl53l8/assets/index.js.map +1 -1
- package/dist/sensors/vl53l8/assets/l7ch.d.ts +12 -0
- package/dist/sensors/vl53l8/assets/l7ch.d.ts.map +1 -0
- package/dist/sensors/vl53l8/assets/l7ch.js +18 -0
- package/dist/sensors/vl53l8/assets/l7ch.js.map +1 -0
- package/dist/sensors/vl53l8/assets/l7cx.d.ts +14 -0
- package/dist/sensors/vl53l8/assets/l7cx.d.ts.map +1 -0
- package/dist/sensors/vl53l8/assets/l7cx.js +20 -0
- package/dist/sensors/vl53l8/assets/l7cx.js.map +1 -0
- package/dist/sensors/vl53l8/cnh.d.ts +4 -3
- package/dist/sensors/vl53l8/cnh.d.ts.map +1 -1
- package/dist/sensors/vl53l8/cnh.js +4 -3
- package/dist/sensors/vl53l8/cnh.js.map +1 -1
- package/dist/sensors/vl53l8/uld.d.ts +50 -9
- package/dist/sensors/vl53l8/uld.d.ts.map +1 -1
- package/dist/sensors/vl53l8/uld.js +241 -35
- package/dist/sensors/vl53l8/uld.js.map +1 -1
- package/dist/sensors/vl53l8/vl53l8.d.ts +8 -3
- package/dist/sensors/vl53l8/vl53l8.d.ts.map +1 -1
- package/dist/sensors/vl53l8/vl53l8.js +41 -39
- package/dist/sensors/vl53l8/vl53l8.js.map +1 -1
- package/dist/sensors/vl53lx/decode.d.ts +70 -0
- package/dist/sensors/vl53lx/decode.d.ts.map +1 -0
- package/dist/sensors/vl53lx/decode.js +108 -0
- package/dist/sensors/vl53lx/decode.js.map +1 -0
- package/dist/sensors/vl53lx/uld/arith.d.ts +23 -0
- package/dist/sensors/vl53lx/uld/arith.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/arith.js +42 -0
- package/dist/sensors/vl53lx/uld/arith.js.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/core.d.ts +345 -0
- package/dist/sensors/vl53lx/uld/bare/core.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/core.js +1085 -0
- package/dist/sensors/vl53lx/uld/bare/core.js.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/driver.d.ts +91 -0
- package/dist/sensors/vl53lx/uld/bare/driver.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/driver.js +206 -0
- package/dist/sensors/vl53lx/uld/bare/driver.js.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/hist.d.ts +180 -0
- package/dist/sensors/vl53lx/uld/bare/hist.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/hist.js +949 -0
- package/dist/sensors/vl53lx/uld/bare/hist.js.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/image.d.ts +53 -0
- package/dist/sensors/vl53lx/uld/bare/image.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/image.js +108 -0
- package/dist/sensors/vl53lx/uld/bare/image.js.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/imath.d.ts +39 -0
- package/dist/sensors/vl53lx/uld/bare/imath.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/imath.js +99 -0
- package/dist/sensors/vl53lx/uld/bare/imath.js.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/index.d.ts +22 -0
- package/dist/sensors/vl53lx/uld/bare/index.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/index.js +22 -0
- package/dist/sensors/vl53lx/uld/bare/index.js.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/nvm.d.ts +85 -0
- package/dist/sensors/vl53lx/uld/bare/nvm.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/nvm.js +148 -0
- package/dist/sensors/vl53lx/uld/bare/nvm.js.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/regs.d.ts +54 -0
- package/dist/sensors/vl53lx/uld/bare/regs.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/regs.js +496 -0
- package/dist/sensors/vl53lx/uld/bare/regs.js.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/tuning.d.ts +15 -0
- package/dist/sensors/vl53lx/uld/bare/tuning.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/bare/tuning.js +303 -0
- package/dist/sensors/vl53lx/uld/bare/tuning.js.map +1 -0
- package/dist/sensors/vl53lx/uld/base.d.ts +129 -0
- package/dist/sensors/vl53lx/uld/base.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/base.js +166 -0
- package/dist/sensors/vl53lx/uld/base.js.map +1 -0
- package/dist/sensors/vl53lx/uld/l0x.d.ts +306 -0
- package/dist/sensors/vl53lx/uld/l0x.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/l0x.js +1492 -0
- package/dist/sensors/vl53lx/uld/l0x.js.map +1 -0
- package/dist/sensors/vl53lx/uld/l1.d.ts +69 -0
- package/dist/sensors/vl53lx/uld/l1.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/l1.js +262 -0
- package/dist/sensors/vl53lx/uld/l1.js.map +1 -0
- package/dist/sensors/vl53lx/uld/l3.d.ts +25 -0
- package/dist/sensors/vl53lx/uld/l3.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/l3.js +51 -0
- package/dist/sensors/vl53lx/uld/l3.js.map +1 -0
- package/dist/sensors/vl53lx/uld/l4.d.ts +22 -0
- package/dist/sensors/vl53lx/uld/l4.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/l4.js +99 -0
- package/dist/sensors/vl53lx/uld/l4.js.map +1 -0
- package/dist/sensors/vl53lx/uld/link.d.ts +42 -0
- package/dist/sensors/vl53lx/uld/link.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/link.js +28 -0
- package/dist/sensors/vl53lx/uld/link.js.map +1 -0
- package/dist/sensors/vl53lx/uld/registry.d.ts +68 -0
- package/dist/sensors/vl53lx/uld/registry.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/registry.js +139 -0
- package/dist/sensors/vl53lx/uld/registry.js.map +1 -0
- package/dist/sensors/vl53lx/uld/vl53l1-die.d.ts +172 -0
- package/dist/sensors/vl53lx/uld/vl53l1-die.d.ts.map +1 -0
- package/dist/sensors/vl53lx/uld/vl53l1-die.js +431 -0
- package/dist/sensors/vl53lx/uld/vl53l1-die.js.map +1 -0
- package/dist/sensors/vl53lx/vl53lx.d.ts +323 -0
- package/dist/sensors/vl53lx/vl53lx.d.ts.map +1 -0
- package/dist/sensors/vl53lx/vl53lx.js +688 -0
- package/dist/sensors/vl53lx/vl53lx.js.map +1 -0
- package/dist/transport/webserial.d.ts +4 -0
- package/dist/transport/webserial.d.ts.map +1 -1
- package/dist/transport/webserial.js +58 -12
- package/dist/transport/webserial.js.map +1 -1
- package/package.json +9 -2
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* uld/bare/regs — the VL53LX register blocks, as ST's BareDriver sees them.
|
|
3
|
+
* Mirror of the Python `depz_sensor_sdk.vl53lx.uld.bare.regs`.
|
|
4
|
+
*
|
|
5
|
+
* The BareDriver does not touch registers one at a time. It keeps the device
|
|
6
|
+
* image in a handful of C structs (`VL53LX_static_config_t`, ...), each mapping
|
|
7
|
+
* onto one contiguous I2C block, and moves a whole block at a time. `BLOCKS`
|
|
8
|
+
* is that mapping: base address, byte length, whether the block is writable,
|
|
9
|
+
* and the field list with offset, width, signedness and the bit mask the C
|
|
10
|
+
* codec applies. Generated from the Python table (itself generated from
|
|
11
|
+
* `vl53lx_register_funcs.c`) — data, not hand-written: the masks and the
|
|
12
|
+
* reserved holes (general_config has one at offset 10) match the C driver.
|
|
13
|
+
*/
|
|
14
|
+
function F(name, off, width, signed, mask) {
|
|
15
|
+
return { name, off, width, signed, mask };
|
|
16
|
+
}
|
|
17
|
+
export const BLOCK_NAMES = [
|
|
18
|
+
"static_nvm_managed",
|
|
19
|
+
"customer_nvm_managed",
|
|
20
|
+
"static_config",
|
|
21
|
+
"general_config",
|
|
22
|
+
"timing_config",
|
|
23
|
+
"dynamic_config",
|
|
24
|
+
"system_control",
|
|
25
|
+
"system_results",
|
|
26
|
+
"core_results",
|
|
27
|
+
"debug_results",
|
|
28
|
+
"nvm_copy_data",
|
|
29
|
+
"patch_debug",
|
|
30
|
+
"gph_general_config",
|
|
31
|
+
"gph_static_config",
|
|
32
|
+
"gph_timing_config",
|
|
33
|
+
"fw_internal",
|
|
34
|
+
];
|
|
35
|
+
export const BLOCKS = {
|
|
36
|
+
static_nvm_managed: {
|
|
37
|
+
base: 0x0001,
|
|
38
|
+
size: 11,
|
|
39
|
+
writable: true,
|
|
40
|
+
fields: [
|
|
41
|
+
F("i2c_slave__device_address", 0, 1, false, 0x7F),
|
|
42
|
+
F("ana_config__vhv_ref_sel_vddpix", 1, 1, false, 0xF),
|
|
43
|
+
F("ana_config__vhv_ref_sel_vquench", 2, 1, false, 0x7F),
|
|
44
|
+
F("ana_config__reg_avdd1v2_sel", 3, 1, false, 0x3),
|
|
45
|
+
F("ana_config__fast_osc__trim", 4, 1, false, 0x7F),
|
|
46
|
+
F("osc_measured__fast_osc__frequency", 5, 2, false, null),
|
|
47
|
+
F("vhv_config__timeout_macrop_loop_bound", 7, 1, false, null),
|
|
48
|
+
F("vhv_config__count_thresh", 8, 1, false, null),
|
|
49
|
+
F("vhv_config__offset", 9, 1, false, 0x3F),
|
|
50
|
+
F("vhv_config__init", 10, 1, false, null),
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
customer_nvm_managed: {
|
|
54
|
+
base: 0x000D,
|
|
55
|
+
size: 23,
|
|
56
|
+
writable: true,
|
|
57
|
+
fields: [
|
|
58
|
+
F("global_config__spad_enables_ref_0", 0, 1, false, null),
|
|
59
|
+
F("global_config__spad_enables_ref_1", 1, 1, false, null),
|
|
60
|
+
F("global_config__spad_enables_ref_2", 2, 1, false, null),
|
|
61
|
+
F("global_config__spad_enables_ref_3", 3, 1, false, null),
|
|
62
|
+
F("global_config__spad_enables_ref_4", 4, 1, false, null),
|
|
63
|
+
F("global_config__spad_enables_ref_5", 5, 1, false, 0xF),
|
|
64
|
+
F("global_config__ref_en_start_select", 6, 1, false, null),
|
|
65
|
+
F("ref_spad_man__num_requested_ref_spads", 7, 1, false, 0x3F),
|
|
66
|
+
F("ref_spad_man__ref_location", 8, 1, false, 0x3),
|
|
67
|
+
F("algo__crosstalk_compensation_plane_offset_kcps", 9, 2, false, null),
|
|
68
|
+
F("algo__crosstalk_compensation_x_plane_gradient_kcps", 11, 2, true, null),
|
|
69
|
+
F("algo__crosstalk_compensation_y_plane_gradient_kcps", 13, 2, true, null),
|
|
70
|
+
F("ref_spad_char__total_rate_target_mcps", 15, 2, false, null),
|
|
71
|
+
F("algo__part_to_part_range_offset_mm", 17, 2, true, 0x1FFF),
|
|
72
|
+
F("mm_config__inner_offset_mm", 19, 2, true, null),
|
|
73
|
+
F("mm_config__outer_offset_mm", 21, 2, true, null),
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
static_config: {
|
|
77
|
+
base: 0x0024,
|
|
78
|
+
size: 32,
|
|
79
|
+
writable: true,
|
|
80
|
+
fields: [
|
|
81
|
+
F("dss_config__target_total_rate_mcps", 0, 2, false, null),
|
|
82
|
+
F("debug__ctrl", 2, 1, false, 0x1),
|
|
83
|
+
F("test_mode__ctrl", 3, 1, false, 0xF),
|
|
84
|
+
F("clk_gating__ctrl", 4, 1, false, 0xF),
|
|
85
|
+
F("nvm_bist__ctrl", 5, 1, false, 0x1F),
|
|
86
|
+
F("nvm_bist__num_nvm_words", 6, 1, false, 0x7F),
|
|
87
|
+
F("nvm_bist__start_address", 7, 1, false, 0x7F),
|
|
88
|
+
F("host_if__status", 8, 1, false, 0x1),
|
|
89
|
+
F("pad_i2c_hv__config", 9, 1, false, null),
|
|
90
|
+
F("pad_i2c_hv__extsup_config", 10, 1, false, 0x1),
|
|
91
|
+
F("gpio_hv_pad__ctrl", 11, 1, false, 0x3),
|
|
92
|
+
F("gpio_hv_mux__ctrl", 12, 1, false, 0x1F),
|
|
93
|
+
F("gpio__tio_hv_status", 13, 1, false, 0x3),
|
|
94
|
+
F("gpio__fio_hv_status", 14, 1, false, 0x3),
|
|
95
|
+
F("ana_config__spad_sel_pswidth", 15, 1, false, 0x7),
|
|
96
|
+
F("ana_config__vcsel_pulse_width_offset", 16, 1, false, 0x1F),
|
|
97
|
+
F("ana_config__fast_osc__config_ctrl", 17, 1, false, 0x1),
|
|
98
|
+
F("sigma_estimator__effective_pulse_width_ns", 18, 1, false, null),
|
|
99
|
+
F("sigma_estimator__effective_ambient_width_ns", 19, 1, false, null),
|
|
100
|
+
F("sigma_estimator__sigma_ref_mm", 20, 1, false, null),
|
|
101
|
+
F("algo__crosstalk_compensation_valid_height_mm", 21, 1, false, null),
|
|
102
|
+
F("spare_host_config__static_config_spare_0", 22, 1, false, null),
|
|
103
|
+
F("spare_host_config__static_config_spare_1", 23, 1, false, null),
|
|
104
|
+
F("algo__range_ignore_threshold_mcps", 24, 2, false, null),
|
|
105
|
+
F("algo__range_ignore_valid_height_mm", 26, 1, false, null),
|
|
106
|
+
F("algo__range_min_clip", 27, 1, false, null),
|
|
107
|
+
F("algo__consistency_check__tolerance", 28, 1, false, 0xF),
|
|
108
|
+
F("spare_host_config__static_config_spare_2", 29, 1, false, null),
|
|
109
|
+
F("sd_config__reset_stages_msb", 30, 1, false, 0xF),
|
|
110
|
+
F("sd_config__reset_stages_lsb", 31, 1, false, null),
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
general_config: {
|
|
114
|
+
base: 0x0044,
|
|
115
|
+
size: 22,
|
|
116
|
+
writable: true,
|
|
117
|
+
fields: [
|
|
118
|
+
F("gph_config__stream_count_update_value", 0, 1, false, null),
|
|
119
|
+
F("global_config__stream_divider", 1, 1, false, null),
|
|
120
|
+
F("system__interrupt_config_gpio", 2, 1, false, null),
|
|
121
|
+
F("cal_config__vcsel_start", 3, 1, false, 0x7F),
|
|
122
|
+
F("cal_config__repeat_rate", 4, 2, false, 0xFFF),
|
|
123
|
+
F("global_config__vcsel_width", 6, 1, false, 0x7F),
|
|
124
|
+
F("phasecal_config__timeout_macrop", 7, 1, false, null),
|
|
125
|
+
F("phasecal_config__target", 8, 1, false, null),
|
|
126
|
+
F("phasecal_config__override", 9, 1, false, 0x1),
|
|
127
|
+
F("dss_config__roi_mode_control", 11, 1, false, 0x7),
|
|
128
|
+
F("system__thresh_rate_high", 12, 2, false, null),
|
|
129
|
+
F("system__thresh_rate_low", 14, 2, false, null),
|
|
130
|
+
F("dss_config__manual_effective_spads_select", 16, 2, false, null),
|
|
131
|
+
F("dss_config__manual_block_select", 18, 1, false, null),
|
|
132
|
+
F("dss_config__aperture_attenuation", 19, 1, false, null),
|
|
133
|
+
F("dss_config__max_spads_limit", 20, 1, false, null),
|
|
134
|
+
F("dss_config__min_spads_limit", 21, 1, false, null),
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
timing_config: {
|
|
138
|
+
base: 0x005A,
|
|
139
|
+
size: 23,
|
|
140
|
+
writable: true,
|
|
141
|
+
fields: [
|
|
142
|
+
F("mm_config__timeout_macrop_a_hi", 0, 1, false, 0xF),
|
|
143
|
+
F("mm_config__timeout_macrop_a_lo", 1, 1, false, null),
|
|
144
|
+
F("mm_config__timeout_macrop_b_hi", 2, 1, false, 0xF),
|
|
145
|
+
F("mm_config__timeout_macrop_b_lo", 3, 1, false, null),
|
|
146
|
+
F("range_config__timeout_macrop_a_hi", 4, 1, false, 0xF),
|
|
147
|
+
F("range_config__timeout_macrop_a_lo", 5, 1, false, null),
|
|
148
|
+
F("range_config__vcsel_period_a", 6, 1, false, 0x3F),
|
|
149
|
+
F("range_config__timeout_macrop_b_hi", 7, 1, false, 0xF),
|
|
150
|
+
F("range_config__timeout_macrop_b_lo", 8, 1, false, null),
|
|
151
|
+
F("range_config__vcsel_period_b", 9, 1, false, 0x3F),
|
|
152
|
+
F("range_config__sigma_thresh", 10, 2, false, null),
|
|
153
|
+
F("range_config__min_count_rate_rtn_limit_mcps", 12, 2, false, null),
|
|
154
|
+
F("range_config__valid_phase_low", 14, 1, false, null),
|
|
155
|
+
F("range_config__valid_phase_high", 15, 1, false, null),
|
|
156
|
+
F("system__intermeasurement_period", 18, 4, false, null),
|
|
157
|
+
F("system__fractional_enable", 22, 1, false, 0x1),
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
dynamic_config: {
|
|
161
|
+
base: 0x0071,
|
|
162
|
+
size: 18,
|
|
163
|
+
writable: true,
|
|
164
|
+
fields: [
|
|
165
|
+
F("system__grouped_parameter_hold_0", 0, 1, false, 0x3),
|
|
166
|
+
F("system__thresh_high", 1, 2, false, null),
|
|
167
|
+
F("system__thresh_low", 3, 2, false, null),
|
|
168
|
+
F("system__enable_xtalk_per_quadrant", 5, 1, false, 0x1),
|
|
169
|
+
F("system__seed_config", 6, 1, false, 0x7),
|
|
170
|
+
F("sd_config__woi_sd0", 7, 1, false, null),
|
|
171
|
+
F("sd_config__woi_sd1", 8, 1, false, null),
|
|
172
|
+
F("sd_config__initial_phase_sd0", 9, 1, false, 0x7F),
|
|
173
|
+
F("sd_config__initial_phase_sd1", 10, 1, false, 0x7F),
|
|
174
|
+
F("system__grouped_parameter_hold_1", 11, 1, false, 0x3),
|
|
175
|
+
F("sd_config__first_order_select", 12, 1, false, 0x3),
|
|
176
|
+
F("sd_config__quantifier", 13, 1, false, 0xF),
|
|
177
|
+
F("roi_config__user_roi_centre_spad", 14, 1, false, null),
|
|
178
|
+
F("roi_config__user_roi_requested_global_xy_size", 15, 1, false, null),
|
|
179
|
+
F("system__sequence_config", 16, 1, false, null),
|
|
180
|
+
F("system__grouped_parameter_hold", 17, 1, false, 0x3),
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
system_control: {
|
|
184
|
+
base: 0x0083,
|
|
185
|
+
size: 5,
|
|
186
|
+
writable: true,
|
|
187
|
+
fields: [
|
|
188
|
+
F("power_management__go1_power_force", 0, 1, false, 0x1),
|
|
189
|
+
F("system__stream_count_ctrl", 1, 1, false, 0x1),
|
|
190
|
+
F("firmware__enable", 2, 1, false, 0x1),
|
|
191
|
+
F("system__interrupt_clear", 3, 1, false, 0x3),
|
|
192
|
+
F("system__mode_start", 4, 1, false, null),
|
|
193
|
+
],
|
|
194
|
+
},
|
|
195
|
+
system_results: {
|
|
196
|
+
base: 0x0088,
|
|
197
|
+
size: 44,
|
|
198
|
+
writable: true,
|
|
199
|
+
fields: [
|
|
200
|
+
F("result__interrupt_status", 0, 1, false, 0x3F),
|
|
201
|
+
F("result__range_status", 1, 1, false, null),
|
|
202
|
+
F("result__report_status", 2, 1, false, 0xF),
|
|
203
|
+
F("result__stream_count", 3, 1, false, null),
|
|
204
|
+
F("result__dss_actual_effective_spads_sd0", 4, 2, false, null),
|
|
205
|
+
F("result__peak_signal_count_rate_mcps_sd0", 6, 2, false, null),
|
|
206
|
+
F("result__ambient_count_rate_mcps_sd0", 8, 2, false, null),
|
|
207
|
+
F("result__sigma_sd0", 10, 2, false, null),
|
|
208
|
+
F("result__phase_sd0", 12, 2, false, null),
|
|
209
|
+
F("result__final_crosstalk_corrected_range_mm_sd0", 14, 2, false, null),
|
|
210
|
+
F("result__peak_signal_count_rate_crosstalk_corrected_mcps_sd0", 16, 2, false, null),
|
|
211
|
+
F("result__mm_inner_actual_effective_spads_sd0", 18, 2, false, null),
|
|
212
|
+
F("result__mm_outer_actual_effective_spads_sd0", 20, 2, false, null),
|
|
213
|
+
F("result__avg_signal_count_rate_mcps_sd0", 22, 2, false, null),
|
|
214
|
+
F("result__dss_actual_effective_spads_sd1", 24, 2, false, null),
|
|
215
|
+
F("result__peak_signal_count_rate_mcps_sd1", 26, 2, false, null),
|
|
216
|
+
F("result__ambient_count_rate_mcps_sd1", 28, 2, false, null),
|
|
217
|
+
F("result__sigma_sd1", 30, 2, false, null),
|
|
218
|
+
F("result__phase_sd1", 32, 2, false, null),
|
|
219
|
+
F("result__final_crosstalk_corrected_range_mm_sd1", 34, 2, false, null),
|
|
220
|
+
F("result__spare_0_sd1", 36, 2, false, null),
|
|
221
|
+
F("result__spare_1_sd1", 38, 2, false, null),
|
|
222
|
+
F("result__spare_2_sd1", 40, 2, false, null),
|
|
223
|
+
F("result__spare_3_sd1", 42, 1, false, null),
|
|
224
|
+
F("result__thresh_info", 43, 1, false, null),
|
|
225
|
+
],
|
|
226
|
+
},
|
|
227
|
+
core_results: {
|
|
228
|
+
base: 0x00B4,
|
|
229
|
+
size: 33,
|
|
230
|
+
writable: true,
|
|
231
|
+
fields: [
|
|
232
|
+
F("result_core__ambient_window_events_sd0", 0, 4, false, null),
|
|
233
|
+
F("result_core__ranging_total_events_sd0", 4, 4, false, null),
|
|
234
|
+
F("result_core__signal_total_events_sd0", 8, 4, true, null),
|
|
235
|
+
F("result_core__total_periods_elapsed_sd0", 12, 4, false, null),
|
|
236
|
+
F("result_core__ambient_window_events_sd1", 16, 4, false, null),
|
|
237
|
+
F("result_core__ranging_total_events_sd1", 20, 4, false, null),
|
|
238
|
+
F("result_core__signal_total_events_sd1", 24, 4, true, null),
|
|
239
|
+
F("result_core__total_periods_elapsed_sd1", 28, 4, false, null),
|
|
240
|
+
F("result_core__spare_0", 32, 1, false, null),
|
|
241
|
+
],
|
|
242
|
+
},
|
|
243
|
+
debug_results: {
|
|
244
|
+
base: 0x00D6,
|
|
245
|
+
size: 56,
|
|
246
|
+
writable: true,
|
|
247
|
+
fields: [
|
|
248
|
+
F("phasecal_result__reference_phase", 0, 2, false, null),
|
|
249
|
+
F("phasecal_result__vcsel_start", 2, 1, false, 0x7F),
|
|
250
|
+
F("ref_spad_char_result__num_actual_ref_spads", 3, 1, false, 0x3F),
|
|
251
|
+
F("ref_spad_char_result__ref_location", 4, 1, false, 0x3),
|
|
252
|
+
F("vhv_result__coldboot_status", 5, 1, false, 0x1),
|
|
253
|
+
F("vhv_result__search_result", 6, 1, false, 0x3F),
|
|
254
|
+
F("vhv_result__latest_setting", 7, 1, false, 0x3F),
|
|
255
|
+
F("result__osc_calibrate_val", 8, 2, false, 0x3FF),
|
|
256
|
+
F("ana_config__powerdown_go1", 10, 1, false, 0x3),
|
|
257
|
+
F("ana_config__ref_bg_ctrl", 11, 1, false, 0x3),
|
|
258
|
+
F("ana_config__regdvdd1v2_ctrl", 12, 1, false, 0xF),
|
|
259
|
+
F("ana_config__osc_slow_ctrl", 13, 1, false, 0x7),
|
|
260
|
+
F("test_mode__status", 14, 1, false, 0x1),
|
|
261
|
+
F("firmware__system_status", 15, 1, false, 0x3),
|
|
262
|
+
F("firmware__mode_status", 16, 1, false, null),
|
|
263
|
+
F("firmware__secondary_mode_status", 17, 1, false, null),
|
|
264
|
+
F("firmware__cal_repeat_rate_counter", 18, 2, false, 0xFFF),
|
|
265
|
+
F("gph__system__thresh_high", 22, 2, false, null),
|
|
266
|
+
F("gph__system__thresh_low", 24, 2, false, null),
|
|
267
|
+
F("gph__system__enable_xtalk_per_quadrant", 26, 1, false, 0x1),
|
|
268
|
+
F("gph__spare_0", 27, 1, false, 0x7),
|
|
269
|
+
F("gph__sd_config__woi_sd0", 28, 1, false, null),
|
|
270
|
+
F("gph__sd_config__woi_sd1", 29, 1, false, null),
|
|
271
|
+
F("gph__sd_config__initial_phase_sd0", 30, 1, false, 0x7F),
|
|
272
|
+
F("gph__sd_config__initial_phase_sd1", 31, 1, false, 0x7F),
|
|
273
|
+
F("gph__sd_config__first_order_select", 32, 1, false, 0x3),
|
|
274
|
+
F("gph__sd_config__quantifier", 33, 1, false, 0xF),
|
|
275
|
+
F("gph__roi_config__user_roi_centre_spad", 34, 1, false, null),
|
|
276
|
+
F("gph__roi_config__user_roi_requested_global_xy_size", 35, 1, false, null),
|
|
277
|
+
F("gph__system__sequence_config", 36, 1, false, null),
|
|
278
|
+
F("gph__gph_id", 37, 1, false, 0x1),
|
|
279
|
+
F("system__interrupt_set", 38, 1, false, 0x3),
|
|
280
|
+
F("interrupt_manager__enables", 39, 1, false, 0x1F),
|
|
281
|
+
F("interrupt_manager__clear", 40, 1, false, 0x1F),
|
|
282
|
+
F("interrupt_manager__status", 41, 1, false, 0x1F),
|
|
283
|
+
F("mcu_to_host_bank__wr_access_en", 42, 1, false, 0x1),
|
|
284
|
+
F("power_management__go1_reset_status", 43, 1, false, 0x1),
|
|
285
|
+
F("pad_startup_mode__value_ro", 44, 1, false, 0x3),
|
|
286
|
+
F("pad_startup_mode__value_ctrl", 45, 1, false, 0x3F),
|
|
287
|
+
F("pll_period_us", 46, 4, false, 0x3FFFF),
|
|
288
|
+
F("interrupt_scheduler__data_out", 50, 4, false, null),
|
|
289
|
+
F("nvm_bist__complete", 54, 1, false, 0x1),
|
|
290
|
+
F("nvm_bist__status", 55, 1, false, 0x1),
|
|
291
|
+
],
|
|
292
|
+
},
|
|
293
|
+
nvm_copy_data: {
|
|
294
|
+
base: 0x010F,
|
|
295
|
+
size: 49,
|
|
296
|
+
writable: true,
|
|
297
|
+
fields: [
|
|
298
|
+
F("identification__model_id", 0, 1, false, null),
|
|
299
|
+
F("identification__module_type", 1, 1, false, null),
|
|
300
|
+
F("identification__revision_id", 2, 1, false, null),
|
|
301
|
+
F("identification__module_id", 3, 2, false, null),
|
|
302
|
+
F("ana_config__fast_osc__trim_max", 5, 1, false, 0x7F),
|
|
303
|
+
F("ana_config__fast_osc__freq_set", 6, 1, false, 0x7),
|
|
304
|
+
F("ana_config__vcsel_trim", 7, 1, false, 0x7),
|
|
305
|
+
F("ana_config__vcsel_selion", 8, 1, false, 0x3F),
|
|
306
|
+
F("ana_config__vcsel_selion_max", 9, 1, false, 0x3F),
|
|
307
|
+
F("protected_laser_safety__lock_bit", 10, 1, false, 0x1),
|
|
308
|
+
F("laser_safety__key", 11, 1, false, 0x7F),
|
|
309
|
+
F("laser_safety__key_ro", 12, 1, false, 0x1),
|
|
310
|
+
F("laser_safety__clip", 13, 1, false, 0x3F),
|
|
311
|
+
F("laser_safety__mult", 14, 1, false, 0x3F),
|
|
312
|
+
F("global_config__spad_enables_rtn_0", 15, 1, false, null),
|
|
313
|
+
F("global_config__spad_enables_rtn_1", 16, 1, false, null),
|
|
314
|
+
F("global_config__spad_enables_rtn_2", 17, 1, false, null),
|
|
315
|
+
F("global_config__spad_enables_rtn_3", 18, 1, false, null),
|
|
316
|
+
F("global_config__spad_enables_rtn_4", 19, 1, false, null),
|
|
317
|
+
F("global_config__spad_enables_rtn_5", 20, 1, false, null),
|
|
318
|
+
F("global_config__spad_enables_rtn_6", 21, 1, false, null),
|
|
319
|
+
F("global_config__spad_enables_rtn_7", 22, 1, false, null),
|
|
320
|
+
F("global_config__spad_enables_rtn_8", 23, 1, false, null),
|
|
321
|
+
F("global_config__spad_enables_rtn_9", 24, 1, false, null),
|
|
322
|
+
F("global_config__spad_enables_rtn_10", 25, 1, false, null),
|
|
323
|
+
F("global_config__spad_enables_rtn_11", 26, 1, false, null),
|
|
324
|
+
F("global_config__spad_enables_rtn_12", 27, 1, false, null),
|
|
325
|
+
F("global_config__spad_enables_rtn_13", 28, 1, false, null),
|
|
326
|
+
F("global_config__spad_enables_rtn_14", 29, 1, false, null),
|
|
327
|
+
F("global_config__spad_enables_rtn_15", 30, 1, false, null),
|
|
328
|
+
F("global_config__spad_enables_rtn_16", 31, 1, false, null),
|
|
329
|
+
F("global_config__spad_enables_rtn_17", 32, 1, false, null),
|
|
330
|
+
F("global_config__spad_enables_rtn_18", 33, 1, false, null),
|
|
331
|
+
F("global_config__spad_enables_rtn_19", 34, 1, false, null),
|
|
332
|
+
F("global_config__spad_enables_rtn_20", 35, 1, false, null),
|
|
333
|
+
F("global_config__spad_enables_rtn_21", 36, 1, false, null),
|
|
334
|
+
F("global_config__spad_enables_rtn_22", 37, 1, false, null),
|
|
335
|
+
F("global_config__spad_enables_rtn_23", 38, 1, false, null),
|
|
336
|
+
F("global_config__spad_enables_rtn_24", 39, 1, false, null),
|
|
337
|
+
F("global_config__spad_enables_rtn_25", 40, 1, false, null),
|
|
338
|
+
F("global_config__spad_enables_rtn_26", 41, 1, false, null),
|
|
339
|
+
F("global_config__spad_enables_rtn_27", 42, 1, false, null),
|
|
340
|
+
F("global_config__spad_enables_rtn_28", 43, 1, false, null),
|
|
341
|
+
F("global_config__spad_enables_rtn_29", 44, 1, false, null),
|
|
342
|
+
F("global_config__spad_enables_rtn_30", 45, 1, false, null),
|
|
343
|
+
F("global_config__spad_enables_rtn_31", 46, 1, false, null),
|
|
344
|
+
F("roi_config__mode_roi_centre_spad", 47, 1, false, null),
|
|
345
|
+
F("roi_config__mode_roi_xy_size", 48, 1, false, null),
|
|
346
|
+
],
|
|
347
|
+
},
|
|
348
|
+
patch_debug: {
|
|
349
|
+
base: 0x0F20,
|
|
350
|
+
size: 2,
|
|
351
|
+
writable: true,
|
|
352
|
+
fields: [
|
|
353
|
+
F("result__debug_status", 0, 1, false, null),
|
|
354
|
+
F("result__debug_stage", 1, 1, false, null),
|
|
355
|
+
],
|
|
356
|
+
},
|
|
357
|
+
gph_general_config: {
|
|
358
|
+
base: 0x0F24,
|
|
359
|
+
size: 5,
|
|
360
|
+
writable: true,
|
|
361
|
+
fields: [
|
|
362
|
+
F("gph__system__thresh_rate_high", 0, 2, false, null),
|
|
363
|
+
F("gph__system__thresh_rate_low", 2, 2, false, null),
|
|
364
|
+
F("gph__system__interrupt_config_gpio", 4, 1, false, null),
|
|
365
|
+
],
|
|
366
|
+
},
|
|
367
|
+
gph_static_config: {
|
|
368
|
+
base: 0x0F2F,
|
|
369
|
+
size: 6,
|
|
370
|
+
writable: true,
|
|
371
|
+
fields: [
|
|
372
|
+
F("gph__dss_config__roi_mode_control", 0, 1, false, 0x7),
|
|
373
|
+
F("gph__dss_config__manual_effective_spads_select", 1, 2, false, null),
|
|
374
|
+
F("gph__dss_config__manual_block_select", 3, 1, false, null),
|
|
375
|
+
F("gph__dss_config__max_spads_limit", 4, 1, false, null),
|
|
376
|
+
F("gph__dss_config__min_spads_limit", 5, 1, false, null),
|
|
377
|
+
],
|
|
378
|
+
},
|
|
379
|
+
gph_timing_config: {
|
|
380
|
+
base: 0x0F36,
|
|
381
|
+
size: 16,
|
|
382
|
+
writable: true,
|
|
383
|
+
fields: [
|
|
384
|
+
F("gph__mm_config__timeout_macrop_a_hi", 0, 1, false, 0xF),
|
|
385
|
+
F("gph__mm_config__timeout_macrop_a_lo", 1, 1, false, null),
|
|
386
|
+
F("gph__mm_config__timeout_macrop_b_hi", 2, 1, false, 0xF),
|
|
387
|
+
F("gph__mm_config__timeout_macrop_b_lo", 3, 1, false, null),
|
|
388
|
+
F("gph__range_config__timeout_macrop_a_hi", 4, 1, false, 0xF),
|
|
389
|
+
F("gph__range_config__timeout_macrop_a_lo", 5, 1, false, null),
|
|
390
|
+
F("gph__range_config__vcsel_period_a", 6, 1, false, 0x3F),
|
|
391
|
+
F("gph__range_config__vcsel_period_b", 7, 1, false, 0x3F),
|
|
392
|
+
F("gph__range_config__timeout_macrop_b_hi", 8, 1, false, 0xF),
|
|
393
|
+
F("gph__range_config__timeout_macrop_b_lo", 9, 1, false, null),
|
|
394
|
+
F("gph__range_config__sigma_thresh", 10, 2, false, null),
|
|
395
|
+
F("gph__range_config__min_count_rate_rtn_limit_mcps", 12, 2, false, null),
|
|
396
|
+
F("gph__range_config__valid_phase_low", 14, 1, false, null),
|
|
397
|
+
F("gph__range_config__valid_phase_high", 15, 1, false, null),
|
|
398
|
+
],
|
|
399
|
+
},
|
|
400
|
+
fw_internal: {
|
|
401
|
+
base: 0x0F46,
|
|
402
|
+
size: 2,
|
|
403
|
+
writable: true,
|
|
404
|
+
fields: [
|
|
405
|
+
F("firmware__internal_stream_count_div", 0, 1, false, null),
|
|
406
|
+
F("firmware__internal_stream_counter_val", 1, 1, false, null),
|
|
407
|
+
],
|
|
408
|
+
},
|
|
409
|
+
};
|
|
410
|
+
/** Python `x % m` for a positive modulus (result in [0, m)). */
|
|
411
|
+
function mod(x, m) {
|
|
412
|
+
const r = x % m;
|
|
413
|
+
return r < 0 ? r + m : r;
|
|
414
|
+
}
|
|
415
|
+
/** Apply the field's mask and width, the way the C codec does (Python `_clip`). */
|
|
416
|
+
function clip(value, f) {
|
|
417
|
+
// Python: int(value); a signed field is taken mod 2^bits (two's complement),
|
|
418
|
+
// then the mask, then the width. An unsigned field's `&` on a negative
|
|
419
|
+
// Python int is the same mod-2^bits view, so one path serves both.
|
|
420
|
+
let v = mod(Math.trunc(value), 2 ** (f.width * 8));
|
|
421
|
+
if (f.mask !== null)
|
|
422
|
+
v = (v & f.mask) >>> 0;
|
|
423
|
+
return v;
|
|
424
|
+
}
|
|
425
|
+
function unsign(value, f) {
|
|
426
|
+
const bits = f.width * 8;
|
|
427
|
+
if (f.signed && value >= 2 ** (bits - 1))
|
|
428
|
+
return value - 2 ** bits;
|
|
429
|
+
return value;
|
|
430
|
+
}
|
|
431
|
+
function readBe(raw, off, width) {
|
|
432
|
+
let v = 0;
|
|
433
|
+
for (let i = 0; i < width; i++)
|
|
434
|
+
v = v * 256 + raw[off + i];
|
|
435
|
+
return v;
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* One register block's worth of device image, addressed by field name.
|
|
439
|
+
*
|
|
440
|
+
* `v` holds the field values exactly as the Python `RegBlock` does: a write
|
|
441
|
+
* stores the value as given (unclipped — Python keeps `int(value)`), a decode
|
|
442
|
+
* stores it masked and sign-extended; the mask/width are applied only on
|
|
443
|
+
* `encode()`. `v` is sealed, so writing a field the block does not have
|
|
444
|
+
* throws (ES modules are strict mode), as Python's `AttributeError` does.
|
|
445
|
+
* Fields not named in the block (the reserved holes) keep whatever bytes were
|
|
446
|
+
* read, so a read-modify-write round trip is byte-exact.
|
|
447
|
+
*/
|
|
448
|
+
export class RegBlock {
|
|
449
|
+
name;
|
|
450
|
+
block;
|
|
451
|
+
v;
|
|
452
|
+
raw;
|
|
453
|
+
constructor(name) {
|
|
454
|
+
this.name = name;
|
|
455
|
+
this.block = BLOCKS[name];
|
|
456
|
+
const v = {};
|
|
457
|
+
for (const f of this.block.fields)
|
|
458
|
+
v[f.name] = 0;
|
|
459
|
+
this.v = Object.seal(v);
|
|
460
|
+
this.raw = new Uint8Array(this.block.size);
|
|
461
|
+
}
|
|
462
|
+
decode(raw) {
|
|
463
|
+
if (raw.length < this.block.size) {
|
|
464
|
+
throw new RangeError(`${this.name}: ${raw.length} bytes, need ${this.block.size}`);
|
|
465
|
+
}
|
|
466
|
+
this.raw = raw.slice(0, this.block.size);
|
|
467
|
+
for (const f of this.block.fields) {
|
|
468
|
+
let value = readBe(raw, f.off, f.width);
|
|
469
|
+
if (f.mask !== null)
|
|
470
|
+
value = (value & f.mask) >>> 0;
|
|
471
|
+
this.v[f.name] = unsign(value, f);
|
|
472
|
+
}
|
|
473
|
+
return this;
|
|
474
|
+
}
|
|
475
|
+
encode() {
|
|
476
|
+
const buf = this.raw.slice();
|
|
477
|
+
for (const f of this.block.fields) {
|
|
478
|
+
let x = clip(this.v[f.name], f);
|
|
479
|
+
for (let i = f.width - 1; i >= 0; i--) {
|
|
480
|
+
buf[f.off + i] = x % 256;
|
|
481
|
+
x = Math.floor(x / 256);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
return buf;
|
|
485
|
+
}
|
|
486
|
+
get base() {
|
|
487
|
+
return this.block.base;
|
|
488
|
+
}
|
|
489
|
+
get size() {
|
|
490
|
+
return this.block.size;
|
|
491
|
+
}
|
|
492
|
+
items() {
|
|
493
|
+
return this.block.fields.map((f) => [f.name, this.v[f.name]]);
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
//# sourceMappingURL=regs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regs.js","sourceRoot":"","sources":["../../../../../src/sensors/vl53lx/uld/bare/regs.ts"],"names":[],"mappings":"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,CAAC,CAAC,mCAAmC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC1D,CAAC,CAAC,mCAAmC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC1D,CAAC,CAAC,mCAAmC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC1D,CAAC,CAAC,mCAAmC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC1D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,kCAAkC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACzD,CAAC,CAAC,8BAA8B,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;SACtD;KACF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,CAAC,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC5C,CAAC,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;SAC5C;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,CAAC,CAAC,+BAA+B,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACrD,CAAC,CAAC,8BAA8B,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACpD,CAAC,CAAC,oCAAoC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;SAC3D;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,CAAC,CAAC,mCAAmC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;YACxD,CAAC,CAAC,gDAAgD,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACtE,CAAC,CAAC,sCAAsC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC5D,CAAC,CAAC,kCAAkC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACxD,CAAC,CAAC,kCAAkC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;SACzD;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,CAAC,CAAC,qCAAqC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;YAC1D,CAAC,CAAC,qCAAqC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,qCAAqC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;YAC1D,CAAC,CAAC,qCAAqC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,wCAAwC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;YAC7D,CAAC,CAAC,wCAAwC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC9D,CAAC,CAAC,mCAAmC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACzD,CAAC,CAAC,mCAAmC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACzD,CAAC,CAAC,wCAAwC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;YAC7D,CAAC,CAAC,wCAAwC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC9D,CAAC,CAAC,iCAAiC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACxD,CAAC,CAAC,kDAAkD,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACzE,CAAC,CAAC,oCAAoC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,qCAAqC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;SAC7D;KACF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,CAAC,CAAC,qCAAqC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,uCAAuC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;SAC9D;KACF;CACF,CAAC;AAEF,gEAAgE;AAChE,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS;IAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,mFAAmF;AACnF,SAAS,IAAI,CAAC,KAAa,EAAE,CAAW;IACtC,6EAA6E;IAC7E,uEAAuE;IACvE,mEAAmE;IACnE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;QAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,MAAM,CAAC,KAAa,EAAE,CAAW;IACxC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,GAAe,EAAE,GAAW,EAAE,KAAa;IACzD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;QAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC;IAC5D,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,QAAQ;IAKE;IAJZ,KAAK,CAAQ;IACb,CAAC,CAAyB;IAC3B,GAAG,CAAa;IAExB,YAAqB,IAAe;QAAf,SAAI,GAAJ,IAAI,CAAW;QAClC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,GAA2B,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,GAAe;QACpB,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;gBAAE,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAE,EAAE,CAAC,CAAC,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBACzB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC;IACjE,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* uld/bare/tuning — ST's tuning parameters, as the BareDriver ships them.
|
|
3
|
+
* Mirror of the Python `depz_sensor_sdk.vl53lx.uld.bare.tuning` (generated
|
|
4
|
+
* from it — data, do not edit by hand).
|
|
5
|
+
*
|
|
6
|
+
* The preset modes read initial phases, timeouts, DSS targets and sigma
|
|
7
|
+
* thresholds out of `VL53LX_tuning_parm_storage_t`, which
|
|
8
|
+
* `VL53LX_init_tuning_parm_storage_struct()` fills from a header of 187
|
|
9
|
+
* defines. `TUNING` is that struct after initialisation, keyed by the C field
|
|
10
|
+
* name; `DEFAULTS` is the raw header, for the parameters the histogram
|
|
11
|
+
* post-processing reads directly without a `tp_` field of their own.
|
|
12
|
+
*/
|
|
13
|
+
export declare const TUNING: Readonly<Record<string, number>>;
|
|
14
|
+
export declare const DEFAULTS: Readonly<Record<string, number>>;
|
|
15
|
+
//# sourceMappingURL=tuning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuning.d.ts","sourceRoot":"","sources":["../../../../../src/sensors/vl53lx/uld/bare/tuning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqGnD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2LrD,CAAC"}
|