App 2.32.0: an ACC recorder that records every value the head unit offers

The 2.31.1 log on the car showed the named assist properties constant
while ACC was engaged behind another car: they are not fed. The recorder
reads every property and vendor getter (read only, at most half the time
busy) for 3 minutes, plus steering-wheel key broadcasts, and lists what
changed, the rarest first. The recording is saved in the app and on a
USB stick if one is plugged in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
This commit is contained in:
2026-10-25 19:27:43 +01:00
co-authored by Claude Opus 5.5
parent 36cc417638
commit 2e6bb9cb83
9 changed files with 406 additions and 3 deletions
+16
View File
@@ -131,6 +131,22 @@ tyre pressures, GPS (lat, lon, elevation, heading) and the is_* flags. It does *
confirmed car facts, app structure, UI conventions, build/test/ship, documents. It replaces
upstream's EVABRPUploader text. The test emulator is now in the flake: `nix run .#car-emulator`
(Android 9 AOSP at 1920×720, 160 dpi; the car build installs as the system user — checked).
- 2026-10-25 — App 2.32.0 (branch `styles-retro-future`): the **ACC recorder** on the Logs tab.
The 2.31.1 log on the car (a drive with ACC engaged behind another car) showed every assist
property constant: `cc 0.00`, `ica 0`, `tja 1`, `sas 0`, `sam 0`, `obj 0.00`, `dist 0.00`,
`rel -128.00` (the field's minimum, i.e. no data). The `AAD_*` properties named in the head
unit's manager are not fed on this car. The recorder looks everywhere instead: for 3 minutes it
reads every value the head unit offers (`VendorSurfaceProbe.capture`: every CarPropertyManager
property and every value getter of the vendor objects, read only), waiting at least 2 s and at
least as long as the last capture took (at most half the time busy), and every
`com.saic.keyevent.hardkey.report` broadcast. `AccRecording` (pure, unit-tested) keeps the
first capture whole, then what changed and when, and per value how often and through which
values; the Logs tab shows the keys, then the changed values, the rarest first (the leads).
At the end the whole recording goes to `files/acc_recording.txt` and to the app's folder on
every removable volume (`Android/data/<package>/files/acc-recording-<time>.txt`). The ACC
buttons do nothing on the head unit's screen (owner). Emulator: the recorder starts, stops,
records a sent key broadcast and saves (its CarPropertyManager is not connected there, so no
values); the USB stick copy was not tried. Not tried on the car.
- 2026-10-25 — App 2.31.1 (branch `styles-retro-future`): the cruise control log now logs while
driving. 2.27.3 wrote a line only when the target speed changed, so on the car it showed one
line at the start. Now `CruiseLog` writes a line at once when a mode or the target changes and