feat(sim): send UI_status (0x353) with UI_developmentCar to keep DIR dyno mode latched #22

Merged
outlandnish merged 2 commits from feat/dir-rotor-offset-dyno into main 2026-09-11 19:06:47 -05:00
Owner

The 2022.45.15 DIR gates dyno mode as a one-shot: after entering dyno, any drop-out latches
DI_dynoModeAvailable off for the ignition cycle unless UI_developmentCar (UI_status 0x353,
bit 40) is set. This adds UI_status to the UI node's 2022 variant with a development_car
knob -- it surfaces as a dash toggle (data-driven via UI_SETTINGS) and a di ui CLI arg, and
fixes the stale comment that claimed 0x353 is supervised-but-not-read.

Also on this branch: fix(uds) decode the StartRoutine response in odx.start_routine.

Full RE writeup: docs/private/dir-dyno-mode-gate.md. Tests: full suite green (golden inventory
updated to include 0x353).

🤖 Generated with Claude Code

The 2022.45.15 DIR gates dyno mode as a one-shot: after entering dyno, any drop-out latches DI_dynoModeAvailable off for the ignition cycle unless UI_developmentCar (UI_status 0x353, bit 40) is set. This adds UI_status to the UI node's 2022 variant with a `development_car` knob -- it surfaces as a dash toggle (data-driven via UI_SETTINGS) and a `di ui` CLI arg, and fixes the stale comment that claimed 0x353 is supervised-but-not-read. Also on this branch: fix(uds) decode the StartRoutine response in odx.start_routine. Full RE writeup: docs/private/dir-dyno-mode-gate.md. Tests: full suite green (golden inventory updated to include 0x353). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ROTOR/RESOLVER_LEARNING put START_ROUTINE_RESULTS in the StartRoutine (0x31 01)
response, not RequestRoutineResults (0x31 03, whose record is ROUTINE_STATUS /
LEARN_RESULT). odx.start_routine now decodes the start response per the routine's
start-subspec OUTPUT fields and returns it, so a script reading
startRoutineResult['results']['START_ROUTINE_RESULTS'] gets the routineStatusRecord
instead of a KeyError. routine_control returns the header-stripped record for every
subtype, so the start response aligns like results does. Stubs return {} to match
the dict contract; new test_odin_bench coverage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat(sim): send UI_status (0x353) with UI_developmentCar to keep DIR dyno mode latched
Some checks failed
Tests / test (pull_request) Has been cancelled
9619b76e69
The 2022.45.15 DIR gates dyno as a one-shot: once entered, any drop-out latches
DI_dynoModeAvailable off for the ignition cycle unless UI_developmentCar (UI_status
0x353, bit40) is set. Add UI_status to the UI node.s 2022 variant with a development_car
knob (surfaces as a UI_SETTINGS dash toggle + di ui CLI arg). Fix the stale comment that
claimed 0x353 is supervised-but-not-read.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
outlandnish/tm3diag!22
No description provided.