diff --git a/AGENTS.md b/AGENTS.md index e13254d..3ef26ce 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -74,7 +74,7 @@ Repository: `ssh://git@git.stinnesbeck.com:2222/nils/mg4.git` (remote `origin`), | Live data | on/off, ABRP API key and user token, upload frequency | | Server | URL, pairing by QR, ingest token, installation ID (read-only), config import | | Settings | full screen, voice key, Overview style with the accent colour beside it, the Mascot character (only for that style) (offered only for styles drawn in it, `OverviewStyle.usesAccent`; Retro and Terminal add "Original" for their own palette, `hasOriginal`), tyre unit, battery, charging price, version, update check, install from USB, About | -| Logs | adaptive cruise control debug log (`CruiseLog`: the raw driver-assistance properties from `EVHardware.readAccDebug`, once a second; a line on change and every 2 s while driving; last 600 in a file), update log (every install step, with the platform's words), upload log | +| Logs | ACC recorder (`AccRecorder`/`AccRecording`: every property and vendor getter via `VendorSurfaceProbe.capture`, again and again for 3 minutes, plus steering-wheel key broadcasts; lists what changed, rarest first; saved to the app and a USB stick), adaptive cruise control debug log (`CruiseLog`: the raw driver-assistance properties from `EVHardware.readAccDebug`, once a second; a line on change and every 2 s while driving; last 600 in a file), update log (every install step, with the platform's words), upload log | Key classes (`app/src/main/java/com/evsuite/abrp/`): `AbrpUploadService` (foreground service, 15 s tick), `TelemetryUploader` (+ `TelemetryQueue`, persisted), `TelemetryPayload` (server diff --git a/SPECS.md b/SPECS.md index 402c5fb..cd8c5d1 100644 --- a/SPECS.md +++ b/SPECS.md @@ -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//files/acc-recording-