Glass lever: port the pod-build GAIT DETENT to the PadRIO throttle slew
Human re-test on the fresh build: zero-stop OK, but the lever could PARK inside
the walk/run hysteresis band (walkStrideLength@0x534 .. reverseSpeedMax@0x538)
where the gait SM has no stable state -- walk<->run hunt, EngineShiftFwd/Rev
retriggering ("mixed walk/run mode + repeated acceleration sample"). The
pod-build keyboard lever already snaps out of the band to the NEARER edge at
key-rest (mech4.cpp GAIT DETENT); the PadRIO slew channel lacked it.
Faithful port, not an invention: mech4.cpp publishes the band in lever units
every driven frame (gBTGaitDetentLo/Hi seam, same guards + the same +0.002
engage margin); L4PADRIO Poll() applies the identical nearer-edge snap to the
Throttle channel when the slew rests (no slew key held, no pad slew axis
deflected). Sweeping through the band while held stays continuous (the
authentic moving lever, one authentic shift).
Verified (DEV.EGG glass, graduated parks each ~0.10 of the sweep,
BT_GAIT_TRACE+BT_MPPR_TRACE): band [0.358026,0.50388) = demand 22.02-30.87;
in-band parks snap both directions (0.4137->lo, 0.465126->hi); no at-rest
sample in the band; exactly ONE walk->run clip (state 10) up and ONE run->walk
(state 14) down across the whole sweep; zero-stop unaffected; pod build
rebuilt + BT_AUTODRIVE smoke clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
1535e3e48d
commit
6ad1e074cc
@@ -94,6 +94,16 @@ copied from them.
|
||||
symptom, and V's edge is now [T2]. `BT_MPPR_TRACE` now prints mode/pedals/stick/turn/elev.
|
||||
Procedural rule: rebuild every live build dir after landing an input/engine commit.
|
||||
Detail: `docs/GLASS_COCKPIT.md` §2026-07-20 (later).
|
||||
- **2026-07-20 human re-test: GAIT DETENT ported to the PadRIO lever [T2].** The remaining
|
||||
"our detent is missing" (mixed walk/run mode + repeated accel sample) was the gait DEAD BAND
|
||||
([[locomotion]]): the pod-build keyboard lever snaps out of the walk/run hysteresis band at
|
||||
key-rest (mech4.cpp GAIT DETENT), and the PadRIO throttle slew lacked it. Ported faithfully:
|
||||
mech4.cpp publishes the band in lever units (`gBTGaitDetentLo/Hi` seam, +0.002 engage
|
||||
margin), `L4PADRIO.cpp` applies the identical nearer-edge snap when no throttle slew key/pad
|
||||
axis is active. Verified: parks at 0.414/0.465 snap to 0.358/0.504 (band = demand
|
||||
22.02-30.87), no at-rest sample in-band, exactly ONE up-shift + ONE down-shift clip across a
|
||||
full graduated sweep, zero-stop + pod build unaffected. Detail: `docs/GLASS_COCKPIT.md`
|
||||
§2026-07-20 (later still).
|
||||
|
||||
## Key Relationships
|
||||
- Extends: [[pod-hardware]] (RIO input path) · Uses: [[gauges-hud]] dev-gauge modes ·
|
||||
|
||||
@@ -125,7 +125,9 @@ the walk→run transition clip's exit speed — the run ENGAGE threshold, not a
|
||||
0x4a7041) → a demand parked between them cycles 7→10→14→7 forever ("gallop hunt"), firing the
|
||||
authored EngineShiftFwd/Rev audio each swing (Blackhawk: 22.02–30.87 = throttle 36–50%). Faithful
|
||||
mechanics — likely masked on real hardware by MECHANICAL lever detents ([[pod-hardware]] [T4]).
|
||||
Port: keyboard lever snaps out of the band at rest (mech4.cpp "GAIT DETENT" accommodation).
|
||||
Port: keyboard lever snaps out of the band at rest (mech4.cpp "GAIT DETENT" accommodation);
|
||||
the glass PadRIO throttle slew applies the SAME at-rest snap (L4PADRIO.cpp, band published in
|
||||
lever units via the mech4.cpp `gBTGaitDetentLo/Hi` seam — 2026-07-20 glass re-test) [T2].
|
||||
|
||||
## Turn-in-place (trn, state 4) — AUTHENTIC dispatcher decoded (task #64, 2026-07-14)
|
||||
**The entry dispatcher is NOT in the Ghidra decomp** — it lives in the master-perf gap
|
||||
|
||||
Reference in New Issue
Block a user